From d56d08204cfc29eea7a605430f0ec8e81a76a0b6 Mon Sep 17 00:00:00 2001 From: austin Date: Sun, 11 May 2025 15:47:31 -0400 Subject: [PATCH] creature template to object template --- docs/src/progress/renderertodo.md | 1 + .../character/CharacterDescriptionDTO.java | 8 +- .../ui/components/CharacterCustomizer.java | 7 +- .../menu/mainmenu/MenuCharacterCreation.java | 4 +- .../mainmenu/MenuGeneratorsMultiplayer.java | 4 +- .../mainmenu/MenuGeneratorsUITesting.java | 4 +- .../engine/loadingthreads/LoadingUtils.java | 4 +- .../entity/EntityDataStrings.java | 2 +- .../types/common/CommonEntityUtils.java | 53 ++++++++++ .../entity/types/creature/CreatureUtils.java | 76 +++---------- ...toryData.java => ObjectInventoryData.java} | 4 +- ...atureTemplate.java => ObjectTemplate.java} | 100 ++++++++++-------- .../net/client/protocol/EntityProtocol.java | 6 +- .../net/server/ServerConnectionHandler.java | 8 +- .../server/protocol/CharacterProtocol.java | 12 +-- .../serialization/ContentSerialization.java | 14 +-- .../server/entity/unit/UnitUtils.java | 5 +- .../server/macro/character/Character.java | 10 +- .../macro/character/CharacterUtils.java | 5 +- .../character/PlayerCharacterCreation.java | 6 +- .../server/service/CharacterService.java | 12 +-- .../simulation/chara/CharaInventoryUtils.java | 12 +-- .../entity/SpawnAllEntitiesTests.java | 5 +- .../entity/SpawningCreaturesTest.java | 7 +- .../state/attack/ServerAttackTreeTests.java | 7 +- .../collidable/ClientCollidableTreeTests.java | 5 +- .../collidable/ServerCollidableTreeTests.java | 5 +- .../state/equip/ClientEquipStateTests.java | 5 +- .../state/equip/ServerEquipStateTests.java | 7 +- .../movement/fall/ClientFallTreeTests.java | 9 +- .../movement/fall/ServerFallTreeTests.java | 9 +- .../combat/MeleeTargetingNodeTests.java | 5 +- .../test/testutils/TestEngineUtils.java | 5 +- .../test/testutils/TestViewportUtils.java | 5 +- 34 files changed, 231 insertions(+), 200 deletions(-) rename src/main/java/electrosphere/entity/types/creature/{CreatureInventoryData.java => ObjectInventoryData.java} (98%) rename src/main/java/electrosphere/entity/types/creature/{CreatureTemplate.java => ObjectTemplate.java} (51%) diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 1920f7bf..892b55f0 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1733,6 +1733,7 @@ Fix block generation thread filtering repairable structures Catch errors in pathfinding threads Remove old data classes Update default block cursor size +Creature template -> object template diff --git a/src/main/java/electrosphere/client/entity/character/CharacterDescriptionDTO.java b/src/main/java/electrosphere/client/entity/character/CharacterDescriptionDTO.java index aa13c274..79b5f38b 100644 --- a/src/main/java/electrosphere/client/entity/character/CharacterDescriptionDTO.java +++ b/src/main/java/electrosphere/client/entity/character/CharacterDescriptionDTO.java @@ -1,6 +1,6 @@ package electrosphere.client.entity.character; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; /** * Describes a character @@ -15,7 +15,7 @@ public class CharacterDescriptionDTO { /** * The character's template data */ - CreatureTemplate template; + ObjectTemplate template; /** * Gets the id of the character @@ -37,7 +37,7 @@ public class CharacterDescriptionDTO { * Gets the creature template for the character * @return The creature template */ - public CreatureTemplate getTemplate() { + public ObjectTemplate getTemplate() { return template; } @@ -45,7 +45,7 @@ public class CharacterDescriptionDTO { * Sets the creature template for the character * @param template The creature template */ - public void setTemplate(CreatureTemplate template) { + public void setTemplate(ObjectTemplate template) { this.template = template; } diff --git a/src/main/java/electrosphere/client/ui/components/CharacterCustomizer.java b/src/main/java/electrosphere/client/ui/components/CharacterCustomizer.java index 09a08e8d..6fb33a68 100644 --- a/src/main/java/electrosphere/client/ui/components/CharacterCustomizer.java +++ b/src/main/java/electrosphere/client/ui/components/CharacterCustomizer.java @@ -9,7 +9,8 @@ import org.joml.Vector4d; import electrosphere.client.entity.camera.CameraEntityUtils; import electrosphere.engine.Globals; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.game.data.creature.type.CreatureData; import electrosphere.game.data.creature.type.visualattribute.AttributeVariant; import electrosphere.game.data.creature.type.visualattribute.VisualAttribute; @@ -57,7 +58,7 @@ public class CharacterCustomizer { * @param race The race of the character * @return The panel component */ - public static Element createCharacterCustomizerPanel(String race, Consumer onConfirm){ + public static Element createCharacterCustomizerPanel(String race, Consumer onConfirm){ //figure out race data CreatureData selectedRaceType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(race); @@ -81,7 +82,7 @@ public class CharacterCustomizer { ActorStaticMorph staticMorph = new ActorStaticMorph(); //create creature template - CreatureTemplate template = CreatureTemplate.create(race); + ObjectTemplate template = ObjectTemplate.create(EntityType.CREATURE, race); //create scrollable ScrollableContainer scrollable = ScrollableContainer.createScrollable(); diff --git a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuCharacterCreation.java b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuCharacterCreation.java index ed788bf4..6a4164d1 100644 --- a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuCharacterCreation.java +++ b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuCharacterCreation.java @@ -6,7 +6,7 @@ import electrosphere.client.ui.menu.WindowUtils; import electrosphere.engine.Globals; import electrosphere.engine.loadingthreads.LoadingThread; import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.net.parser.net.message.CharacterMessage; import electrosphere.net.parser.net.message.TerrainMessage; import electrosphere.renderer.ui.elements.Button; @@ -96,7 +96,7 @@ public class MenuCharacterCreation { public static Element createCharacterCustomizationMenu(){ FormElement rVal = new FormElement(); - rVal.addChild(CharacterCustomizer.createCharacterCustomizerPanel(selectedRace, (CreatureTemplate template) -> { + rVal.addChild(CharacterCustomizer.createCharacterCustomizerPanel(selectedRace, (ObjectTemplate template) -> { Globals.clientConnection.queueOutgoingMessage(CharacterMessage.constructRequestCreateCharacterMessage(Utilities.stringify(template))); })); diff --git a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsMultiplayer.java b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsMultiplayer.java index 8e7c59da..cc84fa44 100644 --- a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsMultiplayer.java +++ b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsMultiplayer.java @@ -8,7 +8,7 @@ import electrosphere.client.ui.menu.mainmenu.worldgen.MenuWorldSelect; import electrosphere.engine.Globals; import electrosphere.engine.loadingthreads.LoadingThread; import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.net.NetUtils; import electrosphere.net.parser.net.message.CharacterMessage; import electrosphere.renderer.ui.elements.Button; @@ -63,7 +63,7 @@ public class MenuGeneratorsMultiplayer { createButton.addChild(createLabel); rVal.addChild(createButton); createButton.setOnClick(new ClickableElement.ClickEventCallback(){public boolean execute(ClickEvent event){ - WindowUtils.replaceMainMenuContents(CharacterCustomizer.createCharacterCustomizerPanel(selectedRace, (CreatureTemplate template) -> { + WindowUtils.replaceMainMenuContents(CharacterCustomizer.createCharacterCustomizerPanel(selectedRace, (ObjectTemplate template) -> { Globals.clientConnection.queueOutgoingMessage(CharacterMessage.constructRequestCreateCharacterMessage(Utilities.stringify(template))); })); return false; diff --git a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsUITesting.java b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsUITesting.java index a968a9e3..17778bf9 100644 --- a/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsUITesting.java +++ b/src/main/java/electrosphere/client/ui/menu/mainmenu/MenuGeneratorsUITesting.java @@ -23,7 +23,7 @@ import electrosphere.entity.EntityCreationUtils; import electrosphere.entity.state.inventory.InventoryUtils; import electrosphere.entity.state.inventory.RelationalInventoryState; import electrosphere.entity.state.inventory.UnrelationalInventoryState; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.game.data.common.CommonEntityType; import electrosphere.game.data.crafting.RecipeData; import electrosphere.game.data.creature.type.equip.EquipPoint; @@ -137,7 +137,7 @@ public class MenuGeneratorsUITesting { formEl.addChild(panel); } break; case "CharacterCustomizer": { - formEl.addChild(CharacterCustomizer.createCharacterCustomizerPanel("human", (CreatureTemplate template) ->{})); + formEl.addChild(CharacterCustomizer.createCharacterCustomizerPanel("human", (ObjectTemplate template) ->{})); } break; case "NaturalInventoryPanel": { Entity ent = EntityCreationUtils.TEST_createEntity(); diff --git a/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java b/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java index 308565be..d9fbc17e 100644 --- a/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java +++ b/src/main/java/electrosphere/engine/loadingthreads/LoadingUtils.java @@ -14,7 +14,7 @@ import electrosphere.auth.AuthenticationManager; import electrosphere.engine.Globals; import electrosphere.engine.threads.LabeledThread.ThreadLabel; import electrosphere.entity.types.EntityTypes.EntityType; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.game.data.creature.type.CreatureData; import electrosphere.game.data.creature.type.visualattribute.VisualAttribute; import electrosphere.logger.LoggerInterface; @@ -153,7 +153,7 @@ public class LoadingUtils { race = races.get(new Random().nextInt(races.size())); } CreatureData type = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(race); - CreatureTemplate template = CreatureTemplate.create(race); + ObjectTemplate template = ObjectTemplate.create(EntityType.CREATURE, race); for(VisualAttribute attribute : type.getVisualAttributes()){ if(attribute.getType().equals(VisualAttribute.TYPE_BONE)){ float min = attribute.getMinValue(); diff --git a/src/main/java/electrosphere/entity/EntityDataStrings.java b/src/main/java/electrosphere/entity/EntityDataStrings.java index 1ec70124..0151bd7d 100644 --- a/src/main/java/electrosphere/entity/EntityDataStrings.java +++ b/src/main/java/electrosphere/entity/EntityDataStrings.java @@ -77,7 +77,7 @@ public class EntityDataStrings { public static final String TREE_CLIENTJUMPTREE = "treeClientJumpTree"; public static final String TREE_SERVERJUMPTREE = "treeServerJumpTree"; public static final String FALL_TREE = "fallTree"; - public static final String CREATURE_TEMPLATE = "creatureTemplate"; + public static final String OBJECT_TEMPLATE = "objectTemplate"; public static final String FIRST_PERSON_TREE = "firstPersonTree"; diff --git a/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java b/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java index a3f79016..fcd30f94 100644 --- a/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java +++ b/src/main/java/electrosphere/entity/types/common/CommonEntityUtils.java @@ -66,6 +66,8 @@ import electrosphere.entity.state.rotator.ServerRotatorTree; import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.collision.CollisionObjUtils; import electrosphere.entity.types.creature.CreatureUtils; +import electrosphere.entity.types.creature.ObjectInventoryData; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.game.data.collidable.CollidableTemplate; import electrosphere.game.data.common.CommonEntityType; import electrosphere.game.data.creature.type.CreatureData; @@ -86,6 +88,7 @@ import electrosphere.game.data.item.Item; import electrosphere.net.parser.net.message.EntityMessage; import electrosphere.net.parser.net.message.NetworkMessage; import electrosphere.net.server.player.Player; +import electrosphere.net.synchronization.transport.StateCollection; import electrosphere.renderer.actor.Actor; import electrosphere.renderer.actor.ActorBoneRotator; import electrosphere.renderer.actor.ActorUtils; @@ -93,6 +96,8 @@ import electrosphere.server.datacell.Realm; import electrosphere.server.datacell.utils.ServerBehaviorTreeUtils; import electrosphere.server.datacell.utils.ServerEntityTagUtils; import electrosphere.server.entity.poseactor.PoseActor; +import electrosphere.server.entity.serialization.ContentSerialization; +import electrosphere.server.entity.serialization.EntitySerialization; import electrosphere.util.math.SpatialMathUtils; /** @@ -948,4 +953,52 @@ public class CommonEntityUtils { entity.putData(EntityDataStrings.ENTITY_SUBTYPE, subtype); } + /** + * Gets the template for the creature + * @param e The creature + * @return The template + */ + public static ObjectTemplate getObjectTemplate(Entity e){ + ObjectTemplate template = (ObjectTemplate)e.getData(EntityDataStrings.OBJECT_TEMPLATE); + if(template == null){ + return null; + } + ObjectInventoryData inventoryData = template.getInventoryData(); + inventoryData.clear(); + if(ServerEquipState.hasEquipState(e)){ + ServerEquipState serverEquipState = ServerEquipState.getEquipState(e); + for(String point : serverEquipState.equippedPoints()){ + Entity item = serverEquipState.getEquippedItemAtPoint(point); + EntitySerialization itemSerialized = ContentSerialization.constructEntitySerialization(item); + inventoryData.addEquippedItem(point, itemSerialized); + inventoryData.setEquippedId(point, item.getId()); + } + } + if(InventoryUtils.hasToolbarInventory(e)){ + RelationalInventoryState toolbarInventory = InventoryUtils.getToolbarInventory(e); + for(String slot : toolbarInventory.getSlots()){ + Entity slotItem = toolbarInventory.getItemSlot(slot); + if(slotItem != null){ + EntitySerialization itemSerialized = ContentSerialization.constructEntitySerialization(slotItem); + inventoryData.addToolbarItem(slot, itemSerialized); + inventoryData.setToolbarId(slot, slotItem.getId()); + } + } + } + if(InventoryUtils.hasNaturalInventory(e)){ + UnrelationalInventoryState toolbarInventory = InventoryUtils.getNaturalInventory(e); + int i = 0; + for(Entity item : toolbarInventory.getItems()){ + if(item != null){ + EntitySerialization itemSerialized = ContentSerialization.constructEntitySerialization(item); + inventoryData.addNaturalItem(itemSerialized); + inventoryData.setNaturalId(i, item.getId()); + i++; + } + } + } + template.setStateCollection(StateCollection.getStateCollection(e)); + return template; + } + } diff --git a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java index 8c091f1b..e50e9b70 100644 --- a/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java +++ b/src/main/java/electrosphere/entity/types/creature/CreatureUtils.java @@ -22,8 +22,6 @@ import electrosphere.entity.state.equip.ServerEquipState; import electrosphere.entity.state.equip.ServerToolbarState; import electrosphere.entity.state.idle.ClientIdleTree; import electrosphere.entity.state.inventory.InventoryUtils; -import electrosphere.entity.state.inventory.RelationalInventoryState; -import electrosphere.entity.state.inventory.UnrelationalInventoryState; import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree; import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree; import electrosphere.entity.types.EntityTypes.EntityType; @@ -37,7 +35,6 @@ import electrosphere.net.NetUtils; import electrosphere.net.parser.net.message.EntityMessage; import electrosphere.net.parser.net.message.NetworkMessage; import electrosphere.net.server.player.Player; -import electrosphere.net.synchronization.transport.StateCollection; import electrosphere.renderer.actor.Actor; import electrosphere.renderer.actor.ActorStaticMorph; import electrosphere.server.datacell.Realm; @@ -58,7 +55,7 @@ public class CreatureUtils { * @param template The creature template if applicable * @return The creature entity */ - public static Entity clientSpawnBasicCreature(String type, CreatureTemplate template){ + public static Entity clientSpawnBasicCreature(String type, ObjectTemplate template){ CreatureData rawType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(type); Entity rVal = EntityCreationUtils.createClientSpatialEntity(); @@ -73,7 +70,7 @@ public class CreatureUtils { Actor creatureActor = EntityUtils.getActor(rVal); //variants - CreatureTemplate storedTemplate = CreatureTemplate.create(rawType.getId()); + ObjectTemplate storedTemplate = ObjectTemplate.create(EntityType.CREATURE, rawType.getId()); if(rawType.getVisualAttributes() != null){ ActorStaticMorph staticMorph = null; for(VisualAttribute attributeType : rawType.getVisualAttributes()){ @@ -138,7 +135,7 @@ public class CreatureUtils { } } //set race - storedTemplate.creatureType = rawType.getId(); + storedTemplate.objectType = rawType.getId(); //store template on creature CreatureUtils.setCreatureTemplate(rVal, storedTemplate); @@ -153,13 +150,13 @@ public class CreatureUtils { * @param creature The creature * @param template The template */ - public static void clientApplyTemplate(Entity creature, CreatureTemplate template){ + public static void clientApplyTemplate(Entity creature, ObjectTemplate template){ // //must happen after the player is attached to the entity, or server won't send packet to add item to player's entity //now that creature has been spawned, need to create all attached items if(template != null){ if(template.getInventoryData() != null){ - CreatureInventoryData inventoryData = template.getInventoryData(); + ObjectInventoryData inventoryData = template.getInventoryData(); for(Entry toolbarItem : inventoryData.getToolbarItems()){ EntitySerialization serialization = toolbarItem.getValue(); String toolbarSlot = toolbarItem.getKey(); @@ -210,7 +207,7 @@ public class CreatureUtils { * @param template The creature template to use * @return The creature entity */ - public static Entity serverSpawnBasicCreature(Realm realm, Vector3d position, String type, CreatureTemplate template){ + public static Entity serverSpawnBasicCreature(Realm realm, Vector3d position, String type, ObjectTemplate template){ CreatureData rawType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(type); Entity rVal = EntityCreationUtils.createServerEntity(realm, position); @@ -230,7 +227,7 @@ public class CreatureUtils { //variants - CreatureTemplate storedTemplate = CreatureTemplate.create(rawType.getId()); + ObjectTemplate storedTemplate = ObjectTemplate.create(EntityType.CREATURE, rawType.getId()); if(rawType.getVisualAttributes() != null){ ActorStaticMorph staticMorph = null; for(VisualAttribute attributeType : rawType.getVisualAttributes()){ @@ -286,7 +283,7 @@ public class CreatureUtils { } } //set race - storedTemplate.creatureType = rawType.getId(); + storedTemplate.objectType = rawType.getId(); //store template on creature CreatureUtils.setCreatureTemplate(rVal, storedTemplate); @@ -312,13 +309,13 @@ public class CreatureUtils { * @param creature The creature * @param template The template */ - public static void serverApplyTemplate(Realm realm, Entity creature, CreatureTemplate template){ + public static void serverApplyTemplate(Realm realm, Entity creature, ObjectTemplate template){ // //must happen after the player is attached to the entity, or server won't send packet to add item to player's entity //now that creature has been spawned, need to create all attached items if(template != null){ if(template.getInventoryData() != null){ - CreatureInventoryData inventoryData = template.getInventoryData(); + ObjectInventoryData inventoryData = template.getInventoryData(); for(Entry toolbarItem : inventoryData.getToolbarItems()){ EntitySerialization serialization = toolbarItem.getValue(); String toolbarSlot = toolbarItem.getKey(); @@ -365,7 +362,7 @@ public class CreatureUtils { */ public static Entity clientCreateViewModel( String type, - CreatureTemplate template + ObjectTemplate template ){ CreatureData rawType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(type); Entity rVal = EntityCreationUtils.createClientSpatialEntity(); @@ -397,7 +394,7 @@ public class CreatureUtils { int id = creature.getId(); Vector3d position = EntityUtils.getPosition(creature); Quaterniond rotation = EntityUtils.getRotation(creature); - String template = Utilities.stringify(CreatureUtils.getCreatureTemplate(creature)); + String template = Utilities.stringify(CommonEntityUtils.getObjectTemplate(creature)); NetworkMessage message = EntityMessage.constructCreateMessage( id, EntityType.CREATURE.getValue(), @@ -543,53 +540,8 @@ public class CreatureUtils { return (ClientIdleTree)e.getData(EntityDataStrings.TREE_IDLE); } - public static void setCreatureTemplate(Entity e, CreatureTemplate template){ - e.putData(EntityDataStrings.CREATURE_TEMPLATE, template); - } - - /** - * Gets the template for the creature - * @param e The creature - * @return The template - */ - public static CreatureTemplate getCreatureTemplate(Entity e){ - CreatureTemplate template = (CreatureTemplate)e.getData(EntityDataStrings.CREATURE_TEMPLATE); - CreatureInventoryData inventoryData = template.getInventoryData(); - inventoryData.clear(); - if(ServerEquipState.hasEquipState(e)){ - ServerEquipState serverEquipState = ServerEquipState.getEquipState(e); - for(String point : serverEquipState.equippedPoints()){ - Entity item = serverEquipState.getEquippedItemAtPoint(point); - EntitySerialization itemSerialized = ContentSerialization.constructEntitySerialization(item); - inventoryData.addEquippedItem(point, itemSerialized); - inventoryData.setEquippedId(point, item.getId()); - } - } - if(InventoryUtils.hasToolbarInventory(e)){ - RelationalInventoryState toolbarInventory = InventoryUtils.getToolbarInventory(e); - for(String slot : toolbarInventory.getSlots()){ - Entity slotItem = toolbarInventory.getItemSlot(slot); - if(slotItem != null){ - EntitySerialization itemSerialized = ContentSerialization.constructEntitySerialization(slotItem); - inventoryData.addToolbarItem(slot, itemSerialized); - inventoryData.setToolbarId(slot, slotItem.getId()); - } - } - } - if(InventoryUtils.hasNaturalInventory(e)){ - UnrelationalInventoryState toolbarInventory = InventoryUtils.getNaturalInventory(e); - int i = 0; - for(Entity item : toolbarInventory.getItems()){ - if(item != null){ - EntitySerialization itemSerialized = ContentSerialization.constructEntitySerialization(item); - inventoryData.addNaturalItem(itemSerialized); - inventoryData.setNaturalId(i, item.getId()); - i++; - } - } - } - template.setStateCollection(StateCollection.getStateCollection(e)); - return template; + public static void setCreatureTemplate(Entity e, ObjectTemplate template){ + e.putData(EntityDataStrings.OBJECT_TEMPLATE, template); } diff --git a/src/main/java/electrosphere/entity/types/creature/CreatureInventoryData.java b/src/main/java/electrosphere/entity/types/creature/ObjectInventoryData.java similarity index 98% rename from src/main/java/electrosphere/entity/types/creature/CreatureInventoryData.java rename to src/main/java/electrosphere/entity/types/creature/ObjectInventoryData.java index b192fa35..54eea301 100644 --- a/src/main/java/electrosphere/entity/types/creature/CreatureInventoryData.java +++ b/src/main/java/electrosphere/entity/types/creature/ObjectInventoryData.java @@ -10,9 +10,9 @@ import java.util.Set; import electrosphere.server.entity.serialization.EntitySerialization; /** - * Inventory data for a creature template + * Inventory data for a object template */ -public class CreatureInventoryData { +public class ObjectInventoryData { /** * Toolbar items diff --git a/src/main/java/electrosphere/entity/types/creature/CreatureTemplate.java b/src/main/java/electrosphere/entity/types/creature/ObjectTemplate.java similarity index 51% rename from src/main/java/electrosphere/entity/types/creature/CreatureTemplate.java rename to src/main/java/electrosphere/entity/types/creature/ObjectTemplate.java index ff5ce073..109a0f67 100644 --- a/src/main/java/electrosphere/entity/types/creature/CreatureTemplate.java +++ b/src/main/java/electrosphere/entity/types/creature/ObjectTemplate.java @@ -4,29 +4,35 @@ import java.util.HashMap; import java.util.Map; import electrosphere.engine.Globals; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.game.data.creature.type.CreatureData; import electrosphere.game.data.creature.type.visualattribute.VisualAttribute; import electrosphere.net.synchronization.transport.StateCollection; /** - * The template used to construct the creature on the client + * The template used to construct the object on the client */ -public class CreatureTemplate { +public class ObjectTemplate { /** - * The type of the creature + * The type of the object */ - String creatureType; + String objectType; + + /** + * The category of entity + */ + EntityType entityType; /** * The attribute map for visual variants */ - private Map attributeMap = new HashMap(); + private Map attributeMap = new HashMap(); /** - * Data about the inventory of the creature + * Data about the inventory of the object */ - private CreatureInventoryData inventoryData = new CreatureInventoryData(); + private ObjectInventoryData inventoryData = new ObjectInventoryData(); /** * The collection of synchronized values @@ -34,13 +40,15 @@ public class CreatureTemplate { private StateCollection stateCollection; /** - * Creates the creature template - * @param creatureType The type of creature - * @return The creature template + * Creates the object template + * @param category The category of entity + * @param subtype The type of object + * @return The object template */ - public static CreatureTemplate create(String creatureType){ - CreatureTemplate rVal = new CreatureTemplate(); - rVal.creatureType = creatureType; + public static ObjectTemplate create(EntityType category, String subtype){ + ObjectTemplate rVal = new ObjectTemplate(); + rVal.entityType = category; + rVal.objectType = subtype; return rVal; } @@ -50,7 +58,7 @@ public class CreatureTemplate { * @param value The value of the attribute */ public void putAttributeValue(String attributeName, float value){ - attributeMap.put(attributeName,new CreatureTemplateAttributeValue(value)); + attributeMap.put(attributeName,new TemplateAttributeValue(value)); } /** @@ -59,7 +67,7 @@ public class CreatureTemplate { * @param value The value of the attribute */ public void putAttributeValue(String attributeName, String value){ - attributeMap.put(attributeName,new CreatureTemplateAttributeValue(value)); + attributeMap.put(attributeName,new TemplateAttributeValue(value)); } /** @@ -67,28 +75,28 @@ public class CreatureTemplate { * @param attributeName The name of the attribute * @return The value of the attribute */ - public CreatureTemplateAttributeValue getAttributeValue(String attributeName){ + public TemplateAttributeValue getAttributeValue(String attributeName){ return attributeMap.get(attributeName); } /** - * Gets the type of the creature - * @return The type of the creature + * Gets the type of the object + * @return The type of the object */ - public String getCreatureType(){ - return creatureType; + public String getObjectType(){ + return objectType; } /** - * Gets the inventory data for the creature + * Gets the inventory data for the object * @return The inventory data */ - public CreatureInventoryData getInventoryData(){ + public ObjectInventoryData getInventoryData(){ return this.inventoryData; } /** - * Gets the state collection for the creature + * Gets the state collection for the object * @return The collection of synchronized values */ public StateCollection getStateCollection(){ @@ -96,7 +104,7 @@ public class CreatureTemplate { } /** - * Sets the synchronized values for this creature + * Sets the synchronized values for this object * @param stateCollection The synchronized values */ public void setStateCollection(StateCollection stateCollection){ @@ -104,27 +112,29 @@ public class CreatureTemplate { } /** - * Creates a template for the creature with default values - * @param creatureType The type of creature + * Creates a template for the object with default values + * @param objectType The type of object * @return The basic template */ - public static CreatureTemplate createDefault(String creatureType){ - CreatureTemplate storedTemplate = CreatureTemplate.create(creatureType); - CreatureData rawType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(creatureType); - if(rawType.getVisualAttributes() != null){ - for(VisualAttribute attributeType : rawType.getVisualAttributes()){ - if(attributeType.getType().equals("remesh")){ - if(attributeType.getVariants() != null && attributeType.getVariants().size() > 0){ - //make sure stored template contains creature data - if(storedTemplate.getAttributeValue(attributeType.getAttributeId())==null){ - storedTemplate.putAttributeValue(attributeType.getAttributeId(), attributeType.getVariants().get(0).getId()); + public static ObjectTemplate createDefault(EntityType category, String objectType){ + ObjectTemplate storedTemplate = ObjectTemplate.create(category, objectType); + if(category == EntityType.CREATURE){ + CreatureData rawType = Globals.gameConfigCurrent.getCreatureTypeLoader().getType(objectType); + if(rawType.getVisualAttributes() != null){ + for(VisualAttribute attributeType : rawType.getVisualAttributes()){ + if(attributeType.getType().equals("remesh")){ + if(attributeType.getVariants() != null && attributeType.getVariants().size() > 0){ + //make sure stored template contains creature data + if(storedTemplate.getAttributeValue(attributeType.getAttributeId())==null){ + storedTemplate.putAttributeValue(attributeType.getAttributeId(), attributeType.getVariants().get(0).getId()); + } } } - } - if(attributeType.getType().equals("bone")){ - //make sure stored template contains creature data - float midpoint = (attributeType.getMaxValue() - attributeType.getMinValue())/2.0f + attributeType.getMinValue(); - storedTemplate.putAttributeValue(attributeType.getAttributeId(), midpoint); + if(attributeType.getType().equals("bone")){ + //make sure stored template contains creature data + float midpoint = (attributeType.getMaxValue() - attributeType.getMinValue())/2.0f + attributeType.getMinValue(); + storedTemplate.putAttributeValue(attributeType.getAttributeId(), midpoint); + } } } } @@ -132,9 +142,9 @@ public class CreatureTemplate { } /** - * A visual attribute of a creature (ie how wide is their nose, what type of hairstyle do they have, etc) + * A visual attribute of an object (ie how wide is their nose, what type of hairstyle do they have, etc) */ - public class CreatureTemplateAttributeValue { + public class TemplateAttributeValue { /** * The string value of the attribute @@ -150,7 +160,7 @@ public class CreatureTemplate { * Creates a float attribute * @param value The value */ - public CreatureTemplateAttributeValue(float value){ + public TemplateAttributeValue(float value){ this.value = value; } @@ -158,7 +168,7 @@ public class CreatureTemplate { * Creates a string attribute * @param variantId The string */ - public CreatureTemplateAttributeValue(String variantId){ + public TemplateAttributeValue(String variantId){ this.variantId = variantId; } diff --git a/src/main/java/electrosphere/net/client/protocol/EntityProtocol.java b/src/main/java/electrosphere/net/client/protocol/EntityProtocol.java index c320b261..9db4b67b 100644 --- a/src/main/java/electrosphere/net/client/protocol/EntityProtocol.java +++ b/src/main/java/electrosphere/net/client/protocol/EntityProtocol.java @@ -14,7 +14,7 @@ import electrosphere.entity.state.physicssync.ClientPhysicsSyncTree; import electrosphere.entity.types.EntityTypes; import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.common.CommonEntityUtils; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.types.foliage.FoliageUtils; import electrosphere.entity.types.item.ItemUtils; @@ -213,8 +213,8 @@ public class EntityProtocol implements ClientProtocolTemplate { */ static Entity spawnCreature(EntityMessage message){ LoggerInterface.loggerNetworking.DEBUG("[CLIENT] Spawn Creature " + message.getentityID() + " at " + message.getpositionX() + " " + message.getpositionY() + " " + message.getpositionZ()); - CreatureTemplate template = Utilities.deserialize(message.getcreatureTemplate(), CreatureTemplate.class); - Entity newlySpawnedEntity = CreatureUtils.clientSpawnBasicCreature(template.getCreatureType(),template); + ObjectTemplate template = Utilities.deserialize(message.getcreatureTemplate(), ObjectTemplate.class); + Entity newlySpawnedEntity = CreatureUtils.clientSpawnBasicCreature(template.getObjectType(),template); ClientEntityUtils.initiallyPositionEntity( newlySpawnedEntity, new Vector3d(message.getpositionX(),message.getpositionY(),message.getpositionZ()), diff --git a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java index ce7aa651..0f01b2fb 100644 --- a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java +++ b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java @@ -1,6 +1,6 @@ package electrosphere.net.server; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.engine.Globals; import electrosphere.logger.LoggerInterface; import electrosphere.net.parser.net.message.AuthMessage; @@ -90,7 +90,7 @@ public class ServerConnectionHandler implements Runnable { /** * the creature template associated with this player */ - CreatureTemplate currentCreatureTemplate; + ObjectTemplate currentCreatureTemplate; /** * the server protocol object associated with this player @@ -438,7 +438,7 @@ public class ServerConnectionHandler implements Runnable { * Sets the current creature template for the connection * @param currentCreatureTemplate The new creature template */ - public void setCreatureTemplate(CreatureTemplate currentCreatureTemplate){ + public void setCreatureTemplate(ObjectTemplate currentCreatureTemplate){ this.currentCreatureTemplate = currentCreatureTemplate; } @@ -446,7 +446,7 @@ public class ServerConnectionHandler implements Runnable { * Gets the current creature template for the connection * @return The current template */ - public CreatureTemplate getCurrentCreatureTemplate(){ + public ObjectTemplate getCurrentCreatureTemplate(){ return this.currentCreatureTemplate; } diff --git a/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java b/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java index fa8773b3..5ababefe 100644 --- a/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java +++ b/src/main/java/electrosphere/net/server/protocol/CharacterProtocol.java @@ -16,7 +16,7 @@ import electrosphere.entity.Entity; import electrosphere.entity.EntityUtils; import electrosphere.entity.ServerEntityUtils; import electrosphere.entity.types.EntityTypes.EntityType; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.game.data.creature.type.CreatureData; import electrosphere.game.data.creature.type.visualattribute.VisualAttribute; import electrosphere.net.parser.net.message.CharacterMessage; @@ -67,11 +67,11 @@ public class CharacterProtocol implements ServerProtocolTemplate races = Globals.gameConfigCurrent.getCreatureTypeLoader().getPlayableRaces(); @@ -137,7 +137,7 @@ public class CharacterProtocol implements ServerProtocolTemplate getInventoryContents(Character chara){ - CreatureTemplate template = chara.getCreatureTemplate(); + ObjectTemplate template = chara.getCreatureTemplate(); if(CharaMacroUtils.isMicroSim(chara)){ Entity creature = Globals.characterService.getEntity(chara); - template = CreatureUtils.getCreatureTemplate(creature); + template = CommonEntityUtils.getObjectTemplate(creature); } - CreatureInventoryData inventoryData = template.getInventoryData(); + ObjectInventoryData inventoryData = template.getInventoryData(); return inventoryData.getAllItems(); } diff --git a/src/test/java/electrosphere/entity/SpawnAllEntitiesTests.java b/src/test/java/electrosphere/entity/SpawnAllEntitiesTests.java index a7a00f88..2b3c47ab 100644 --- a/src/test/java/electrosphere/entity/SpawnAllEntitiesTests.java +++ b/src/test/java/electrosphere/entity/SpawnAllEntitiesTests.java @@ -6,8 +6,9 @@ import org.joml.Vector3d; import org.junit.jupiter.api.Disabled; import electrosphere.engine.Globals; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.common.CommonEntityUtils; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.types.foliage.FoliageUtils; import electrosphere.entity.types.item.ItemUtils; @@ -36,7 +37,7 @@ public class SpawnAllEntitiesTests extends EntityTestTemplate { CreatureTypeLoader creatureLoader = Globals.gameConfigCurrent.getCreatureTypeLoader(); for(CreatureData creature : creatureLoader.getTypes()){ - CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0.1,0.1,0.1), creature.getId(), CreatureTemplate.createDefault(creature.getId())); + CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0.1,0.1,0.1), creature.getId(), ObjectTemplate.createDefault(EntityType.CREATURE, creature.getId())); } ItemDataMap itemMap = Globals.gameConfigCurrent.getItemMap(); diff --git a/src/test/java/electrosphere/entity/SpawningCreaturesTest.java b/src/test/java/electrosphere/entity/SpawningCreaturesTest.java index e3898fd2..9f2bf687 100644 --- a/src/test/java/electrosphere/entity/SpawningCreaturesTest.java +++ b/src/test/java/electrosphere/entity/SpawningCreaturesTest.java @@ -6,7 +6,8 @@ import org.joml.Vector3d; import electrosphere.test.annotations.IntegrationTest; import electrosphere.engine.Globals; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.test.template.EntityTestTemplate; import electrosphere.test.testutils.TestEntityUtils; @@ -19,7 +20,7 @@ public class SpawningCreaturesTest extends EntityTestTemplate { //must wait on viewport testing, otherwise number of entities isn't going to be correct because the player character is spawning @IntegrationTest public void testSpawnCreature(){ - CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); assertEquals(1, TestEntityUtils.numberOfEntitiesInBox(new Vector3d(-1,-1,-1),new Vector3d(1,1,1))); } @@ -28,7 +29,7 @@ public class SpawningCreaturesTest extends EntityTestTemplate { public void testSpawnMultipleCreatures(){ int numberToSpawn = 100; for(int i = 0; i < numberToSpawn; i++){ - CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); } assertEquals(numberToSpawn, TestEntityUtils.numberOfEntitiesInBox(new Vector3d(-1,-1,-1),new Vector3d(1,1,1))); } diff --git a/src/test/java/electrosphere/entity/state/attack/ServerAttackTreeTests.java b/src/test/java/electrosphere/entity/state/attack/ServerAttackTreeTests.java index b86d6b66..1b4dcd52 100644 --- a/src/test/java/electrosphere/entity/state/attack/ServerAttackTreeTests.java +++ b/src/test/java/electrosphere/entity/state/attack/ServerAttackTreeTests.java @@ -14,7 +14,8 @@ import electrosphere.entity.state.inventory.InventoryUtils; import electrosphere.entity.state.movement.fall.ServerFallTree; import electrosphere.entity.state.movement.groundmove.ServerGroundMovementTree; import electrosphere.entity.state.movement.groundmove.ClientGroundMovementTree.MovementRelativeFacing; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.types.item.ItemUtils; import electrosphere.test.template.EntityTestTemplate; @@ -35,7 +36,7 @@ public class ServerAttackTreeTests extends EntityTestTemplate { TestEngineUtils.simulateFrames(1); //spawn on server - Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); Entity katana = ItemUtils.serverSpawnBasicItem(Globals.realmManager.first(), new Vector3d(0,0,0), "Katana2H"); //equip @@ -70,7 +71,7 @@ public class ServerAttackTreeTests extends EntityTestTemplate { TestEngineUtils.simulateFrames(1); //spawn on server - Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); Entity katana = ItemUtils.serverSpawnBasicItem(Globals.realmManager.first(), new Vector3d(0,0,0), "Katana2H"); //equip diff --git a/src/test/java/electrosphere/entity/state/collidable/ClientCollidableTreeTests.java b/src/test/java/electrosphere/entity/state/collidable/ClientCollidableTreeTests.java index 73413365..b9d85ce1 100644 --- a/src/test/java/electrosphere/entity/state/collidable/ClientCollidableTreeTests.java +++ b/src/test/java/electrosphere/entity/state/collidable/ClientCollidableTreeTests.java @@ -9,7 +9,8 @@ import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.entity.EntityTags; import electrosphere.entity.state.movement.fall.ClientFallTree; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.test.template.EntityTestTemplate; import electrosphere.test.testutils.TestEngineUtils; @@ -25,7 +26,7 @@ public class ClientCollidableTreeTests extends EntityTestTemplate { TestEngineUtils.simulateFrames(1); //spawn on server - CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); //wait for the creature to land TestEngineUtils.simulateFrames(3); diff --git a/src/test/java/electrosphere/entity/state/collidable/ServerCollidableTreeTests.java b/src/test/java/electrosphere/entity/state/collidable/ServerCollidableTreeTests.java index 310f1d37..ac76f409 100644 --- a/src/test/java/electrosphere/entity/state/collidable/ServerCollidableTreeTests.java +++ b/src/test/java/electrosphere/entity/state/collidable/ServerCollidableTreeTests.java @@ -8,7 +8,8 @@ import electrosphere.test.annotations.IntegrationTest; import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.entity.state.movement.fall.ServerFallTree; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.test.template.EntityTestTemplate; import electrosphere.test.testutils.TestEngineUtils; @@ -24,7 +25,7 @@ public class ServerCollidableTreeTests extends EntityTestTemplate { TestEngineUtils.simulateFrames(1); //spawn on server - Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); //wait for the creature to land TestEngineUtils.simulateFrames(3); diff --git a/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java b/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java index d7879419..8c76e295 100644 --- a/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java +++ b/src/test/java/electrosphere/entity/state/equip/ClientEquipStateTests.java @@ -16,7 +16,8 @@ import electrosphere.entity.EntityTags; import electrosphere.entity.state.attach.AttachUtils; import electrosphere.entity.state.inventory.InventoryUtils; import electrosphere.entity.state.inventory.UnrelationalInventoryState; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.types.item.ItemUtils; import electrosphere.test.template.EntityTestTemplate; @@ -39,7 +40,7 @@ public class ClientEquipStateTests extends EntityTestTemplate { TestEngineUtils.simulateFrames(1); //spawn entities - CreatureTemplate creatureTemplate = CreatureTemplate.createDefault("human"); + ObjectTemplate creatureTemplate = ObjectTemplate.createDefault(EntityType.CREATURE, "human"); Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", creatureTemplate); Entity katana = ItemUtils.serverSpawnBasicItem(Globals.realmManager.first(), new Vector3d(0,0,0), "Katana2H"); diff --git a/src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java b/src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java index dbb091b1..5ab5b634 100644 --- a/src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java +++ b/src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java @@ -13,7 +13,8 @@ import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.entity.state.attach.AttachUtils; import electrosphere.entity.state.inventory.InventoryUtils; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.entity.types.item.ItemUtils; import electrosphere.test.template.EntityTestTemplate; @@ -31,7 +32,7 @@ public class ServerEquipStateTests extends EntityTestTemplate { public void testServerEquipItem(){ TestEngineUtils.simulateFrames(1); //spawn entities - CreatureTemplate creatureTemplate = CreatureTemplate.createDefault("human"); + ObjectTemplate creatureTemplate = ObjectTemplate.createDefault(EntityType.CREATURE, "human"); Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", creatureTemplate); Entity katana = ItemUtils.serverSpawnBasicItem(Globals.realmManager.first(), new Vector3d(0,0,0), "Katana2H"); @@ -63,7 +64,7 @@ public class ServerEquipStateTests extends EntityTestTemplate { public void testServerFailEquipToOccupied(){ TestEngineUtils.simulateFrames(1); //spawn entities - CreatureTemplate creatureTemplate = CreatureTemplate.createDefault("human"); + ObjectTemplate creatureTemplate = ObjectTemplate.createDefault(EntityType.CREATURE, "human"); Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", creatureTemplate); Entity katana = ItemUtils.serverSpawnBasicItem(Globals.realmManager.first(), new Vector3d(0,0,0), "Katana2H"); Entity katana2 = ItemUtils.serverSpawnBasicItem(Globals.realmManager.first(), new Vector3d(0,0,0), "Katana2H"); diff --git a/src/test/java/electrosphere/entity/state/movement/fall/ClientFallTreeTests.java b/src/test/java/electrosphere/entity/state/movement/fall/ClientFallTreeTests.java index d3149026..0e5b6dc2 100644 --- a/src/test/java/electrosphere/entity/state/movement/fall/ClientFallTreeTests.java +++ b/src/test/java/electrosphere/entity/state/movement/fall/ClientFallTreeTests.java @@ -7,7 +7,8 @@ import org.joml.Vector3d; import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.entity.state.movement.jump.ClientJumpTree; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.test.annotations.IntegrationTest; import electrosphere.test.template.EntityTestTemplate; @@ -21,7 +22,7 @@ public class ClientFallTreeTests extends EntityTestTemplate { @IntegrationTest public void isFalling_AtRest_false(){ - Entity serverEntity = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(), "human", CreatureTemplate.createDefault("human")); + Entity serverEntity = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); Entity clientEntity = TestEngineUtils.getClientEquivalent(serverEntity); ClientFallTree clientFallTree = ClientFallTree.getFallTree(clientEntity); @@ -30,7 +31,7 @@ public class ClientFallTreeTests extends EntityTestTemplate { @IntegrationTest public void isFalling_AfterJump_true(){ - Entity serverEntity = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(), "human", CreatureTemplate.createDefault("human")); + Entity serverEntity = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); Entity clientEntity = TestEngineUtils.getClientEquivalent(serverEntity); ClientFallTree clientFallTree = ClientFallTree.getFallTree(clientEntity); @@ -43,7 +44,7 @@ public class ClientFallTreeTests extends EntityTestTemplate { @IntegrationTest public void isFalling_AfterLand_false(){ - Entity serverEntity = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(), "human", CreatureTemplate.createDefault("human")); + Entity serverEntity = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); Entity clientEntity = TestEngineUtils.getClientEquivalent(serverEntity); ClientFallTree clientFallTree = ClientFallTree.getFallTree(clientEntity); diff --git a/src/test/java/electrosphere/entity/state/movement/fall/ServerFallTreeTests.java b/src/test/java/electrosphere/entity/state/movement/fall/ServerFallTreeTests.java index e51454fc..de8fd9e0 100644 --- a/src/test/java/electrosphere/entity/state/movement/fall/ServerFallTreeTests.java +++ b/src/test/java/electrosphere/entity/state/movement/fall/ServerFallTreeTests.java @@ -8,7 +8,8 @@ import org.joml.Vector3d; import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.entity.state.movement.jump.ServerJumpTree; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.test.annotations.IntegrationTest; import electrosphere.test.template.EntityTestTemplate; @@ -22,7 +23,7 @@ public class ServerFallTreeTests extends EntityTestTemplate { @IntegrationTest public void isFalling_AtRest_false(){ - Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); ServerFallTree serverFallTree = ServerFallTree.getFallTree(creature); assertEquals(false, serverFallTree.isFalling()); @@ -30,7 +31,7 @@ public class ServerFallTreeTests extends EntityTestTemplate { @IntegrationTest public void isFalling_AfterJump_true(){ - Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); ServerFallTree serverFallTree = ServerFallTree.getFallTree(creature); ServerJumpTree serverJumpTree = ServerJumpTree.getServerJumpTree(creature); @@ -45,7 +46,7 @@ public class ServerFallTreeTests extends EntityTestTemplate { @IntegrationTest public void isFalling_AfterLand_false(){ - Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", CreatureTemplate.createDefault("human")); + Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); ServerFallTree serverFallTree = ServerFallTree.getFallTree(creature); ServerJumpTree serverJumpTree = ServerJumpTree.getServerJumpTree(creature); diff --git a/src/test/java/electrosphere/server/ai/nodes/actions/combat/MeleeTargetingNodeTests.java b/src/test/java/electrosphere/server/ai/nodes/actions/combat/MeleeTargetingNodeTests.java index 2fbca188..f67f1793 100644 --- a/src/test/java/electrosphere/server/ai/nodes/actions/combat/MeleeTargetingNodeTests.java +++ b/src/test/java/electrosphere/server/ai/nodes/actions/combat/MeleeTargetingNodeTests.java @@ -8,7 +8,8 @@ import electrosphere.test.annotations.IntegrationTest; import electrosphere.engine.Globals; import electrosphere.entity.Entity; import electrosphere.entity.ServerEntityUtils; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.server.ai.blackboard.Blackboard; import electrosphere.server.ai.nodes.AITreeNode.AITreeNodeResult; @@ -26,7 +27,7 @@ public class MeleeTargetingNodeTests extends EntityTestTemplate { //spawn test entities Entity swordsman = UnitUtils.spawnUnit(Globals.realmManager.first(), new Vector3d(0,0,0), "humanSwordsman"); - Entity target = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(1,0,0), "human", CreatureTemplate.createDefault("human")); + Entity target = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(1,0,0), "human", ObjectTemplate.createDefault(EntityType.CREATURE, "human")); //check if the swordsman can find a target Blackboard blackboard = new Blackboard(); diff --git a/src/test/java/electrosphere/test/testutils/TestEngineUtils.java b/src/test/java/electrosphere/test/testutils/TestEngineUtils.java index ae37feb7..effd276d 100644 --- a/src/test/java/electrosphere/test/testutils/TestEngineUtils.java +++ b/src/test/java/electrosphere/test/testutils/TestEngineUtils.java @@ -12,7 +12,8 @@ import electrosphere.engine.Globals; import electrosphere.engine.Main; import electrosphere.engine.loadingthreads.LoadingThread; import electrosphere.entity.Entity; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; +import electrosphere.entity.types.creature.ObjectTemplate; import electrosphere.net.server.ServerConnectionHandler; import electrosphere.server.datacell.utils.EntityLookupUtils; import electrosphere.server.macro.character.PlayerCharacterCreation; @@ -161,7 +162,7 @@ public class TestEngineUtils { * @return The entity */ public static void spawnPlayerEntity(){ - CreatureTemplate creatureTemplate = CreatureTemplate.createDefault("human"); + ObjectTemplate creatureTemplate = ObjectTemplate.createDefault(EntityType.CREATURE, "human"); ServerConnectionHandler serverConnection = Globals.server.getFirstConnection(); serverConnection.setCreatureTemplate(creatureTemplate); Character chara = Globals.characterService.createCharacter(creatureTemplate, serverConnection.getPlayerId()); diff --git a/src/test/java/electrosphere/test/testutils/TestViewportUtils.java b/src/test/java/electrosphere/test/testutils/TestViewportUtils.java index 70416c93..7b3b1a49 100644 --- a/src/test/java/electrosphere/test/testutils/TestViewportUtils.java +++ b/src/test/java/electrosphere/test/testutils/TestViewportUtils.java @@ -7,7 +7,8 @@ import org.joml.Vector3d; import electrosphere.engine.Globals; import electrosphere.engine.loadingthreads.LoadingThread; import electrosphere.entity.Entity; -import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.ObjectTemplate; +import electrosphere.entity.types.EntityTypes.EntityType; import electrosphere.entity.types.creature.CreatureUtils; import electrosphere.net.NetUtils; import electrosphere.net.server.ServerConnectionHandler; @@ -29,7 +30,7 @@ public class TestViewportUtils { */ public static Entity spawnPlayerCharacter(String creatureType){ //spawn creature - CreatureTemplate creatureTemplate = CreatureTemplate.createDefault(creatureType); + ObjectTemplate creatureTemplate = ObjectTemplate.createDefault(EntityType.CREATURE, creatureType); Entity creature = CreatureUtils.serverSpawnBasicCreature(Globals.realmManager.first(), new Vector3d(0,0,0), creatureType, creatureTemplate); //get required data