mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-15 05:13:14 -04:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -21,7 +21,6 @@
|
||||
******************************************************************************/
|
||||
package resources.objects;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Comparator;
|
||||
@@ -45,7 +44,7 @@ import engine.resources.objects.SWGObject;
|
||||
|
||||
/* A SWGList element should extend Delta or implement IDelta */
|
||||
|
||||
public class SWGList<E> implements List<E>, Serializable {
|
||||
public class SWGList<E> extends Delta implements List<E> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@@ -54,7 +53,6 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
private byte viewType;
|
||||
private short updateType;
|
||||
private boolean addByte;
|
||||
protected transient Object objectMutex = new Object();
|
||||
private transient SWGObject object;
|
||||
|
||||
public SWGList() { }
|
||||
@@ -67,7 +65,8 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
}
|
||||
|
||||
public void init(SWGObject object) {
|
||||
objectMutex = new Object();
|
||||
super.init(object);
|
||||
|
||||
updateCounter = 0;
|
||||
this.object = object;
|
||||
|
||||
@@ -321,7 +320,7 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
if (!list.isEmpty()) {
|
||||
for (E element : list) {
|
||||
if (valid(element)) {
|
||||
IoBuffer buffer = Delta.createBuffer((newListData.length + Baseline.toBytes(element).length));
|
||||
IoBuffer buffer = createBuffer((newListData.length + Baseline.toBytes(element).length));
|
||||
buffer.put(newListData);
|
||||
buffer.put(Baseline.toBytes(element));
|
||||
newListData = buffer.array();
|
||||
@@ -330,7 +329,7 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(3 + newListData.length);
|
||||
IoBuffer buffer = createBuffer(3 + newListData.length);
|
||||
buffer.put((byte) 3);
|
||||
buffer.putShort((short) list.size());
|
||||
buffer.put(newListData);
|
||||
@@ -411,7 +410,7 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
byte[] object = Baseline.toBytes(o);
|
||||
size += object.length;
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put(objects);
|
||||
if (addByte) buffer.put((byte) 0);
|
||||
buffer.put(object);
|
||||
@@ -420,7 +419,7 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
objects = buffer.array();
|
||||
}
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(8 + size);
|
||||
IoBuffer buffer = createBuffer(8 + size);
|
||||
buffer.putInt(list.size());
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(objects);
|
||||
@@ -444,7 +443,7 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
|
||||
int size = 1 + ((useIndex) ? 2 : 0) + ((useData) ? data.length : 0);
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put((byte) type);
|
||||
if (useIndex) buffer.putShort((short) index);
|
||||
if (useData) buffer.put(data);
|
||||
@@ -456,7 +455,7 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
}
|
||||
|
||||
private void queue(byte[] data) {
|
||||
IoBuffer buffer = Delta.createBuffer((data.length + 8));
|
||||
IoBuffer buffer = createBuffer((data.length + 8));
|
||||
buffer.putInt(1);
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(data);
|
||||
@@ -471,7 +470,7 @@ public class SWGList<E> implements List<E>, Serializable {
|
||||
size += queued.length;
|
||||
}
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer((size + 8));
|
||||
IoBuffer buffer = createBuffer((size + 8));
|
||||
buffer.putInt(data.size());
|
||||
buffer.putInt(updateCounter);
|
||||
for (byte[] queued : data) buffer.put(queued);
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
******************************************************************************/
|
||||
package resources.objects;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -41,15 +40,15 @@ import engine.resources.objects.SWGObject;
|
||||
|
||||
/* A SWGMap element should extend Delta or implement IDelta */
|
||||
|
||||
public class SWGMap<K, V> implements Map<K, V>, Serializable {
|
||||
public class SWGMap<K, V> extends Delta implements Map<K, V> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Map<K, V> map = new TreeMap<K, V>();
|
||||
private transient int updateCounter = 0;
|
||||
private byte viewType;
|
||||
private short updateType;
|
||||
private boolean addByte;
|
||||
protected transient Object objectMutex = new Object();
|
||||
private transient SWGObject object;
|
||||
|
||||
public SWGMap() { }
|
||||
@@ -71,7 +70,8 @@ public class SWGMap<K, V> implements Map<K, V>, Serializable {
|
||||
}
|
||||
|
||||
public void init(SWGObject object) {
|
||||
objectMutex = new Object();
|
||||
super.init(object);
|
||||
|
||||
updateCounter = 0;
|
||||
this.object = object;
|
||||
|
||||
@@ -306,7 +306,7 @@ public class SWGMap<K, V> implements Map<K, V>, Serializable {
|
||||
byte[] value = Baseline.toBytes(entry.getValue());
|
||||
size += ((addByte) ? 1 : 0) + key.length + value.length;
|
||||
|
||||
IoBuffer buffer = Baseline.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put(objects);
|
||||
if (addByte) buffer.put((byte) 0);
|
||||
buffer.put(key);
|
||||
@@ -316,7 +316,7 @@ public class SWGMap<K, V> implements Map<K, V>, Serializable {
|
||||
objects = buffer.array();
|
||||
}
|
||||
|
||||
IoBuffer buffer = Baseline.createBuffer(8 + size);
|
||||
IoBuffer buffer = createBuffer(8 + size);
|
||||
buffer.putInt(map.size());
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(objects);
|
||||
@@ -343,7 +343,7 @@ public class SWGMap<K, V> implements Map<K, V>, Serializable {
|
||||
|
||||
int size = 1 + ((useIndex) ? (Baseline.toBytes(index).length) : 0) + ((useData) ? data.length : 0);
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put((byte) type);
|
||||
if (useIndex) buffer.put(Baseline.toBytes(index));
|
||||
if (useData) buffer.put(data);
|
||||
@@ -355,7 +355,7 @@ public class SWGMap<K, V> implements Map<K, V>, Serializable {
|
||||
}
|
||||
|
||||
private void queue(byte[] data) {
|
||||
IoBuffer buffer = Delta.createBuffer(data.length + 8);
|
||||
IoBuffer buffer = createBuffer(data.length + 8);
|
||||
buffer.putInt(1);
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(data);
|
||||
@@ -370,7 +370,7 @@ public class SWGMap<K, V> implements Map<K, V>, Serializable {
|
||||
size += queued.length;
|
||||
}
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer((size + 8));
|
||||
IoBuffer buffer = createBuffer((size + 8));
|
||||
buffer.putInt(data.size());
|
||||
buffer.putInt(updateCounter);
|
||||
for (byte[] queued : data) buffer.put(queued);
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
******************************************************************************/
|
||||
package resources.objects;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -39,15 +38,15 @@ import engine.resources.objects.Delta;
|
||||
import engine.resources.objects.IDelta;
|
||||
import engine.resources.objects.SWGObject;
|
||||
|
||||
public class SWGMultiMap<K, V> implements Multimap<K, V>, Serializable {
|
||||
public class SWGMultiMap<K, V> extends Delta implements Multimap<K, V> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Multimap<K, V> map = ArrayListMultimap.create();
|
||||
private transient int updateCounter = 0;
|
||||
private byte viewType;
|
||||
private short updateType;
|
||||
private boolean addByte;
|
||||
protected transient Object objectMutex = new Object();
|
||||
private transient SWGObject object;
|
||||
|
||||
public SWGMultiMap() { }
|
||||
@@ -69,7 +68,8 @@ public class SWGMultiMap<K, V> implements Multimap<K, V>, Serializable {
|
||||
}
|
||||
|
||||
public void init(SWGObject object) {
|
||||
objectMutex = new Object();
|
||||
super.init(object);
|
||||
|
||||
updateCounter = 0;
|
||||
this.object = object;
|
||||
|
||||
@@ -298,7 +298,7 @@ public class SWGMultiMap<K, V> implements Multimap<K, V>, Serializable {
|
||||
byte[] value = Baseline.toBytes(entry.getValue());
|
||||
size += ((addByte) ? 1 : 0) + key.length + value.length;
|
||||
|
||||
IoBuffer buffer = Baseline.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put(objects);
|
||||
if (addByte) buffer.put((byte) 0);
|
||||
buffer.put(key);
|
||||
@@ -308,7 +308,7 @@ public class SWGMultiMap<K, V> implements Multimap<K, V>, Serializable {
|
||||
objects = buffer.array();
|
||||
}
|
||||
|
||||
IoBuffer buffer = Baseline.createBuffer(8 + size);
|
||||
IoBuffer buffer = createBuffer(8 + size);
|
||||
buffer.putInt(map.size());
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(objects);
|
||||
@@ -337,7 +337,7 @@ public class SWGMultiMap<K, V> implements Multimap<K, V>, Serializable {
|
||||
|
||||
int size = 1 + ((useIndex) ? (Baseline.toBytes(index).length) : 0) + ((useData) ? data.length : 0);
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put((byte) type);
|
||||
if (useIndex) buffer.put(Baseline.toBytes(index));
|
||||
if (useData) buffer.put(data);
|
||||
@@ -349,7 +349,7 @@ public class SWGMultiMap<K, V> implements Multimap<K, V>, Serializable {
|
||||
}
|
||||
|
||||
private void queue(byte[] data) {
|
||||
IoBuffer buffer = Delta.createBuffer((data.length + 8));
|
||||
IoBuffer buffer = createBuffer((data.length + 8));
|
||||
buffer.putInt(1);
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(data);
|
||||
@@ -364,7 +364,7 @@ public class SWGMultiMap<K, V> implements Multimap<K, V>, Serializable {
|
||||
size += queued.length;
|
||||
}
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer((size + 8));
|
||||
IoBuffer buffer = createBuffer((size + 8));
|
||||
buffer.putInt(data.size());
|
||||
buffer.putInt(updateCounter);
|
||||
for (byte[] queued : data) buffer.put(queued);
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
******************************************************************************/
|
||||
package resources.objects;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
@@ -38,15 +37,15 @@ import engine.resources.objects.SWGObject;
|
||||
|
||||
/* A SWGSet element should extend Delta or implement IDelta */
|
||||
|
||||
public class SWGSet<E> implements Set<E>, Serializable {
|
||||
public class SWGSet<E> extends Delta implements Set<E> {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private TreeSet<E> set = new TreeSet<E>();
|
||||
private transient int updateCounter = 0;
|
||||
private byte viewType;
|
||||
private short updateType;
|
||||
private boolean addByte;
|
||||
protected transient Object objectMutex = new Object();
|
||||
private transient SWGObject object;
|
||||
|
||||
public SWGSet() { }
|
||||
@@ -68,7 +67,8 @@ public class SWGSet<E> implements Set<E>, Serializable {
|
||||
}
|
||||
|
||||
public void init(SWGObject object) {
|
||||
objectMutex = new Object();
|
||||
super.init(object);
|
||||
|
||||
updateCounter = 0;
|
||||
this.object = object;
|
||||
|
||||
@@ -83,130 +83,159 @@ public class SWGSet<E> implements Set<E>, Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized boolean add(E e) {
|
||||
if (valid(e)) {
|
||||
if (set.add(e)) {
|
||||
queue(item(1, e, null, true, false));
|
||||
public boolean add(E e) {
|
||||
synchronized(objectMutex) {
|
||||
if (valid(e)) {
|
||||
if (set.add(e)) {
|
||||
queue(item(1, e, null, true, false));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean addAll(Collection<? extends E> c) {
|
||||
synchronized(objectMutex) {
|
||||
List<byte[]> buffer = new ArrayList<byte[]>();
|
||||
|
||||
for (E e : c) {
|
||||
if (valid(e) && set.add(e)) {
|
||||
buffer.add(item(1, e, null, true, false));
|
||||
}
|
||||
}
|
||||
|
||||
if (buffer.size() > 0) {
|
||||
queue(buffer);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void clear() {
|
||||
synchronized(objectMutex) {
|
||||
set.clear();
|
||||
queue(item(2, null, null, false, false));
|
||||
}
|
||||
}
|
||||
|
||||
public boolean contains(Object o) {
|
||||
synchronized(objectMutex) {
|
||||
return set.contains(o);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean containsAll(Collection<?> c) {
|
||||
synchronized(objectMutex) {
|
||||
return set.containsAll(c);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
synchronized(objectMutex) {
|
||||
return set.isEmpty();
|
||||
}
|
||||
}
|
||||
|
||||
public Iterator<E> iterator() {
|
||||
synchronized(objectMutex) {
|
||||
return set.iterator();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean remove(Object e) {
|
||||
synchronized(objectMutex) {
|
||||
if (valid(e) && set.remove(e)) {
|
||||
queue(item(0, e, null, true, false));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public synchronized boolean addAll(Collection<? extends E> c) {
|
||||
List<byte[]> buffer = new ArrayList<byte[]>();
|
||||
|
||||
for (E e : c) {
|
||||
if (valid(e) && set.add(e)) {
|
||||
buffer.add(item(1, e, null, true, false));
|
||||
}
|
||||
}
|
||||
|
||||
if (buffer.size() > 0) {
|
||||
queue(buffer);
|
||||
return true;
|
||||
} else {
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized void clear() {
|
||||
set.clear();
|
||||
queue(item(2, null, null, false, false));
|
||||
}
|
||||
|
||||
public synchronized boolean contains(Object o) {
|
||||
return set.contains(o);
|
||||
}
|
||||
|
||||
public synchronized boolean containsAll(Collection<?> c) {
|
||||
return set.containsAll(c);
|
||||
}
|
||||
|
||||
public synchronized boolean isEmpty() {
|
||||
return set.isEmpty();
|
||||
}
|
||||
|
||||
public synchronized Iterator<E> iterator() {
|
||||
return set.iterator();
|
||||
}
|
||||
|
||||
public synchronized boolean remove(Object e) {
|
||||
if (valid(e) && set.remove(e)) {
|
||||
queue(item(0, e, null, true, false));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public synchronized boolean removeAll(Collection<?> c) {
|
||||
List<byte[]> buffer = new ArrayList<byte[]>();
|
||||
|
||||
for (Object o : c) {
|
||||
if (valid(o) && set.remove(o)) {
|
||||
buffer.add(item(0, o, null, true, false));
|
||||
public boolean removeAll(Collection<?> c) {
|
||||
synchronized(objectMutex) {
|
||||
List<byte[]> buffer = new ArrayList<byte[]>();
|
||||
|
||||
for (Object o : c) {
|
||||
if (valid(o) && set.remove(o)) {
|
||||
buffer.add(item(0, o, null, true, false));
|
||||
}
|
||||
}
|
||||
|
||||
if (buffer.size() > 0) {
|
||||
queue(buffer);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (buffer.size() > 0) {
|
||||
queue(buffer);
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized boolean retainAll(Collection<?> c) {
|
||||
public boolean retainAll(Collection<?> c) {
|
||||
synchronized(objectMutex) {
|
||||
return set.retainAll(c);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized int size() {
|
||||
return set.size();
|
||||
public int size() {
|
||||
synchronized(objectMutex) {
|
||||
return set.size();
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized Object[] toArray() {
|
||||
return set.toArray();
|
||||
public Object[] toArray() {
|
||||
synchronized(objectMutex) {
|
||||
return set.toArray();
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized <T> T[] toArray(T[] a) {
|
||||
return set.toArray(a);
|
||||
public <T> T[] toArray(T[] a) {
|
||||
synchronized(objectMutex) {
|
||||
return set.toArray(a);
|
||||
}
|
||||
}
|
||||
|
||||
public synchronized int getUpdateCounter() {
|
||||
return updateCounter;
|
||||
public int getUpdateCounter() {
|
||||
synchronized(objectMutex) {
|
||||
return updateCounter;
|
||||
}
|
||||
}
|
||||
|
||||
public Object getMutex() {
|
||||
return objectMutex;
|
||||
}
|
||||
|
||||
public synchronized byte[] getBytes() {
|
||||
byte[] objects = { };
|
||||
int size = 0;
|
||||
|
||||
for (Object o : set) {
|
||||
byte[] object = Baseline.toBytes(o);
|
||||
size += object.length;
|
||||
public byte[] getBytes() {
|
||||
synchronized(objectMutex) {
|
||||
byte[] objects = { };
|
||||
int size = 0;
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(size);
|
||||
for (Object o : set) {
|
||||
byte[] object = Baseline.toBytes(o);
|
||||
size += object.length;
|
||||
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put(objects);
|
||||
if (addByte) buffer.put((byte) 0);
|
||||
buffer.put(object);
|
||||
buffer.flip();
|
||||
|
||||
objects = buffer.array();
|
||||
}
|
||||
|
||||
IoBuffer buffer = createBuffer(8 + size);
|
||||
buffer.putInt(set.size());
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(objects);
|
||||
if (addByte) buffer.put((byte) 0);
|
||||
buffer.put(object);
|
||||
buffer.flip();
|
||||
|
||||
objects = buffer.array();
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(8 + size);
|
||||
buffer.putInt(set.size());
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(objects);
|
||||
buffer.flip();
|
||||
|
||||
return buffer.array();
|
||||
}
|
||||
|
||||
private boolean valid(Object o) {
|
||||
@@ -226,7 +255,7 @@ public class SWGSet<E> implements Set<E>, Serializable {
|
||||
|
||||
int size = 1 + ((useIndex) ? Baseline.toBytes(index).length : 0) + ((useData) ? data.length : 0);
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(size);
|
||||
IoBuffer buffer = createBuffer(size);
|
||||
buffer.put((byte) type);
|
||||
if (useIndex) buffer.put(Baseline.toBytes(index));
|
||||
if (useData) buffer.put(data);
|
||||
@@ -238,7 +267,7 @@ public class SWGSet<E> implements Set<E>, Serializable {
|
||||
}
|
||||
|
||||
private void queue(byte[] data) {
|
||||
IoBuffer buffer = Delta.createBuffer(data.length + 8);
|
||||
IoBuffer buffer = createBuffer(data.length + 8);
|
||||
buffer.putInt(1);
|
||||
buffer.putInt(updateCounter);
|
||||
buffer.put(data);
|
||||
@@ -253,7 +282,7 @@ public class SWGSet<E> implements Set<E>, Serializable {
|
||||
size += queued.length;
|
||||
}
|
||||
|
||||
IoBuffer buffer = Delta.createBuffer(size + 8);
|
||||
IoBuffer buffer = createBuffer(size + 8);
|
||||
buffer.putInt(data.size());
|
||||
buffer.putInt(updateCounter);
|
||||
for (byte[] queued : data) buffer.put(queued);
|
||||
|
||||
@@ -305,7 +305,7 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
|
||||
public void setPosture(byte posture) {
|
||||
synchronized(objectMutex) {
|
||||
switch (getPosture()) {
|
||||
switch (posture) {
|
||||
case resources.datatables.Posture.Invalid:
|
||||
setLocomotion(resources.datatables.Locomotion.Invalid);
|
||||
break;
|
||||
@@ -833,47 +833,52 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
}
|
||||
|
||||
public int getHealth() {
|
||||
synchronized(objectMutex) {
|
||||
return getAttribs().get(0);
|
||||
}
|
||||
return getAttribs().get(0);
|
||||
}
|
||||
|
||||
public void setHealth(int health) {
|
||||
if (health > getMaxHealth()) {
|
||||
health = getMaxHealth();
|
||||
}
|
||||
|
||||
if (getPosture() == 13) {
|
||||
synchronized(objectMutex) {
|
||||
stopIncapTask();
|
||||
setIncapTask(null);
|
||||
getAttribs().set(0, health);
|
||||
synchronized(objectMutex) {
|
||||
if (health > getMaxHealth()) {
|
||||
health = getMaxHealth();
|
||||
}
|
||||
|
||||
setPosture((byte) 0);
|
||||
setTurnRadius(1);
|
||||
setSpeedMultiplierBase(1);
|
||||
} else {
|
||||
synchronized(objectMutex) {
|
||||
getAttribs().set(0, health);
|
||||
if (health == getHealth()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (getPosture() == 13) {
|
||||
stopIncapTask();
|
||||
setIncapTask(null);
|
||||
}
|
||||
}
|
||||
|
||||
getAttribs().set(0, health);
|
||||
|
||||
synchronized(objectMutex) {
|
||||
if (getPosture() == 13) {
|
||||
setPosture((byte) 0);
|
||||
setTurnRadius(1);
|
||||
setSpeedMultiplierBase(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public int getAction() {
|
||||
synchronized(objectMutex) {
|
||||
return getAttribs().get(2);
|
||||
}
|
||||
return getAttribs().get(2);
|
||||
}
|
||||
|
||||
public void setAction(int action) {
|
||||
if (action > getMaxAction()) {
|
||||
action = getMaxAction();
|
||||
synchronized(objectMutex) {
|
||||
if (action > getMaxAction()) {
|
||||
action = getMaxAction();
|
||||
}
|
||||
|
||||
if (action == getAction()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
synchronized(objectMutex) {
|
||||
getAttribs().set(2, action);
|
||||
}
|
||||
getAttribs().set(2, action);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -882,35 +887,39 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
}
|
||||
|
||||
public int getMaxHealth() {
|
||||
synchronized(objectMutex) {
|
||||
return getMaxAttribs().get(0);
|
||||
}
|
||||
return getMaxAttribs().get(0);
|
||||
}
|
||||
|
||||
public void setMaxHealth(int maxHealth) {
|
||||
synchronized(objectMutex) {
|
||||
if (maxHealth == getMaxHealth()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (maxHealth < getHealth()) {
|
||||
setHealth(maxHealth);
|
||||
}
|
||||
|
||||
synchronized(objectMutex) {
|
||||
getMaxAttribs().set(0, maxHealth);
|
||||
}
|
||||
getMaxAttribs().set(0, maxHealth);
|
||||
}
|
||||
|
||||
public int getMaxAction() {
|
||||
synchronized(objectMutex) {
|
||||
return getMaxAttribs().get(2);
|
||||
}
|
||||
return getMaxAttribs().get(2);
|
||||
}
|
||||
|
||||
public void setMaxAction(int maxAction) {
|
||||
synchronized(objectMutex) {
|
||||
if (maxAction == getMaxAction()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (maxAction < getAction()) {
|
||||
setAction(maxAction);
|
||||
}
|
||||
|
||||
synchronized(objectMutex) {
|
||||
getMaxAttribs().set(2, maxAction);
|
||||
}
|
||||
getMaxAttribs().set(2, maxAction);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@@ -1073,7 +1082,7 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
this.performanceWatchee = performanceWatchee;
|
||||
}
|
||||
|
||||
setListenToId(performanceWatchee.getObjectID());
|
||||
setListenToId((performanceWatchee == null) ? 0L : performanceWatchee.getObjectID());
|
||||
}
|
||||
|
||||
public CreatureObject getPerformanceListenee() {
|
||||
|
||||
Reference in New Issue
Block a user