diff --git a/src/resources/client_info/visitors/ObjectData.java b/src/resources/client_info/visitors/ObjectData.java index d596fb423..7993f35c1 100644 --- a/src/resources/client_info/visitors/ObjectData.java +++ b/src/resources/client_info/visitors/ObjectData.java @@ -43,6 +43,7 @@ public class ObjectData extends ClientData { public static final String APPEARANCE_FILE = "appearanceFilename"; public static final String ARRANGEMENT_FILE = "arrangementDescriptorFilename"; + public static final String CONTAINER_TYPE = "containerType"; public static final String VOLUME_LIMIT = "containerVolumeLimit"; public static final String DETAIL_STF = "detailedDescription"; public static final String OBJ_STF = "objectName"; diff --git a/src/resources/objects/building/BuildingObject.java b/src/resources/objects/building/BuildingObject.java index bab13ebbd..fb35c0c6f 100644 --- a/src/resources/objects/building/BuildingObject.java +++ b/src/resources/objects/building/BuildingObject.java @@ -36,6 +36,7 @@ public class BuildingObject extends TangibleObject { public BuildingObject(long objectId) { super(objectId, BaselineType.BUIO); + setOptionsBitmask(256); } } diff --git a/src/resources/objects/tangible/TangibleObject.java b/src/resources/objects/tangible/TangibleObject.java index 319ac78a7..c585ca8fb 100644 --- a/src/resources/objects/tangible/TangibleObject.java +++ b/src/resources/objects/tangible/TangibleObject.java @@ -47,6 +47,7 @@ public class TangibleObject extends SWGObject { private int pvpFactionId = 0; private boolean visibleGmOnly = false; private byte [] objectEffects = new byte[0]; + private int optionsBitmask = 128; public TangibleObject(long objectId) { super(objectId, BaselineType.TANO); @@ -143,7 +144,11 @@ public class TangibleObject extends SWGObject { public void setObjectEffects(byte [] objectEffects) { this.objectEffects = objectEffects; } - + + public void setOptionsBitmask(int optionsBitmask) { + this.optionsBitmask = optionsBitmask; + } + @Override public boolean equals(Object o) { return super.equals(o); @@ -161,11 +166,11 @@ public class TangibleObject extends SWGObject { bb.addArray(appearanceData); bb.addInt(0); // Component customization (Set, Integer) bb.addInt(0); //updates - bb.addInt(128); // Options Bitmask (128 = Attackable) // TODO: Fix this for buildings + bb.addInt(optionsBitmask); // Options Bitmask (128 = Attackable) // TODO: Fix this for buildings bb.addInt(0); // Generic Counter -- use count and incap timer bb.addInt(condition); bb.addInt(100); // maxHitPoints - bb.addBoolean(false); // isStatic + bb.addBoolean(true); // isVisible bb.incrementOperandCount(9); } diff --git a/src/services/objects/ObjectCreator.java b/src/services/objects/ObjectCreator.java index 09eacbaea..bf7f1ddff 100644 --- a/src/services/objects/ObjectCreator.java +++ b/src/services/objects/ObjectCreator.java @@ -93,15 +93,6 @@ public final class ObjectCreator { private static void addObjectAttributes(SWGObject obj, String template) { ObjectData attributes = (ObjectData) ClientFactory.getInfoFromFile(ClientFactory.formatToSharedFile(template)); - String stf = (String) attributes.getAttribute(ObjectData.OBJ_STF); - String detailStf = (String) attributes.getAttribute(ObjectData.DETAIL_STF); - Integer volumeLimit = (Integer) attributes.getAttribute(ObjectData.VOLUME_LIMIT); - - obj.setStf(stf); - if (detailStf != null) - obj.setDetailStf(detailStf); - if (volumeLimit != null) - obj.setVolume(volumeLimit); for (Entry e : attributes.getAttributes().entrySet()) { obj.setTemplateAttribute(e.getKey(), e.getValue()); @@ -111,8 +102,10 @@ public final class ObjectCreator { private static void setObjectAttribute(String key, String value, SWGObject object) { switch(key) { - case "volume": object.setVolume(Integer.valueOf(value)); break; - case "containerType": object.setContainerType(Integer.valueOf(value)); break; + case ObjectData.OBJ_STF: object.setStf(value); break; + case ObjectData.DETAIL_STF: object.setDetailStf(value); break; + case ObjectData.VOLUME_LIMIT: object.setVolume(Integer.valueOf(value)); break; + case ObjectData.CONTAINER_TYPE: object.setContainerType(Integer.valueOf(value)); break; default: break; } }