From 0d80214dc84357758cab24265743ad74fcce0fc7 Mon Sep 17 00:00:00 2001 From: austin Date: Mon, 19 Aug 2024 13:37:36 -0400 Subject: [PATCH] testing work --- Jenkinsfile | 2 +- assets/Scenes/testscene1/scene.json | 11 +++++ assets/Scenes/testscene1/scene.ts | 5 ++- assets/Scenes/testscene1/testscene1.json | 8 ---- buildNumber.properties | 4 +- saves/testscene1/0_0_0t.dat | Bin 0 -> 141 bytes saves/testscene1/central.db | Bin 0 -> 81920 bytes saves/testscene1/content/0_0_0.dat | 1 + saves/testscene1/save.json | 1 + saves/testscene1/world.json | 1 + .../engine/loadingthreads/ClientLoading.java | 3 +- .../types/creature/CreatureTemplate.java | 31 +++++++++++++ .../server/datacell/RealmManager.java | 8 ++++ .../state/equip/ServerEquipStateTests.java | 41 ++++++++++++++++++ .../java/template/EntityTestTemplate.java | 19 ++++++++ src/test/java/testutils/EngineInit.java | 32 ++++++++++++++ 16 files changed, 153 insertions(+), 14 deletions(-) create mode 100644 assets/Scenes/testscene1/scene.json delete mode 100644 assets/Scenes/testscene1/testscene1.json create mode 100644 saves/testscene1/0_0_0t.dat create mode 100644 saves/testscene1/central.db create mode 100644 saves/testscene1/content/0_0_0.dat create mode 100644 saves/testscene1/save.json create mode 100644 saves/testscene1/world.json create mode 100644 src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java create mode 100644 src/test/java/template/EntityTestTemplate.java create mode 100644 src/test/java/testutils/EngineInit.java diff --git a/Jenkinsfile b/Jenkinsfile index f035413e..3d389676 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,7 +45,7 @@ pipeline { timeout: 25 ] ) { - sh 'mvn test' + sh 'mvn test -P integration' } } post { diff --git a/assets/Scenes/testscene1/scene.json b/assets/Scenes/testscene1/scene.json new file mode 100644 index 00000000..a7e2a975 --- /dev/null +++ b/assets/Scenes/testscene1/scene.json @@ -0,0 +1,11 @@ +{ + "entities" : [], + "scriptPaths" : [], + "initScriptPath" : "/Scenes/testscene1/scene.ts", + "realmDescriptor" : { + "type" : "gridded", + "griddedRealmSize" : 2 + }, + "createSaveInstance" : false, + "loadAllCells": true +} \ No newline at end of file diff --git a/assets/Scenes/testscene1/scene.ts b/assets/Scenes/testscene1/scene.ts index 0a99cc92..29d02832 100644 --- a/assets/Scenes/testscene1/scene.ts +++ b/assets/Scenes/testscene1/scene.ts @@ -4,7 +4,10 @@ import { Scene } from "/Scripts/types/scene"; * The main scene interface */ const TestScene1: Scene = { - + persistentValues: {}, + hooks: [], + signalHookMap: {}, + sceneHooks: [] } /** diff --git a/assets/Scenes/testscene1/testscene1.json b/assets/Scenes/testscene1/testscene1.json deleted file mode 100644 index c4c43074..00000000 --- a/assets/Scenes/testscene1/testscene1.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "entities": [ - ], - "scriptPaths": [ - "Scenes/testscene1/someScript.js" - ], - "initScriptPath": "Scenes/testscene1/someScript.js" -} \ No newline at end of file diff --git a/buildNumber.properties b/buildNumber.properties index 2d1d14b9..4f784a29 100644 --- a/buildNumber.properties +++ b/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Mon Aug 19 12:41:14 EDT 2024 -buildNumber=276 +#Mon Aug 19 13:16:30 EDT 2024 +buildNumber=280 diff --git a/saves/testscene1/0_0_0t.dat b/saves/testscene1/0_0_0t.dat new file mode 100644 index 0000000000000000000000000000000000000000..40d281ea15a37761dddf1e6c798da43df9d0621a GIT binary patch literal 141 zcmb=J^Y*eMZ-W8Dfdh&;_X^q?A9C8f+4^PHoR)K2@9liJ^Ekt~EuZ)Of0*;HUGKm1 z^#2P_|G)6G{>3NzlArRs{_w|Q2>*?ptulA^|D}2VrtkV0|LR%&N+LL2-x%xGh1viB D!1-Hv literal 0 HcmV?d00001 diff --git a/saves/testscene1/central.db b/saves/testscene1/central.db new file mode 100644 index 0000000000000000000000000000000000000000..5034033f799226d70be8848c6e3119b299ebcdff GIT binary patch literal 81920 zcmeI)T~FIq7{GCxmzV${&~&pj31L)CB7(gz1ltYT0%Rj94G_Xhx)){=w`2_oBo5F{ z)8sGF`+b&aSG(Ppn0DEVZg)FQVkd_rrM+rp{VhVAbA0UQ`JIOt*C~6uTSeP49#yJm zrfn=KlZvV;Um1p?C^7N4D<0l5C02&K7vfp%SnszQQ$F7NF%tb(iD@w<`d##oiQgwK zB7a5p$NwBZ8Xp+@Y4o2_EBrG2TUZ^r(*D+JVlx&55I_I{1m1?g53!K`$*lTwv0SjO zYj(Asw>M1NOl_p(hP&&TWFnh1Qt6H4kiqaZ>)FiXZkBD21k z$i$toDNRo%-tw-dZVje2xPL7EY&g?VO%59T9rbynxn0x)n za%I|6=L&hR;@OFiK0mEi8cufQs@zeF-pi=u;k9-ccumHfyC!O|6w&nQY1Nr;B<*#3 z&l6H|UTgn^nmhGE?ooS#mWRGnEr3)yO?ReA1?ViE zipxr8C!l_w1mD?ln$7=IuV7d|4 znOQ7n-7~(wG9X3fHw)-$R>E-X;l|T zMP6$3KSg}8AbUI{r~4m^m)({Bp(D2KmY** z5I_I{1Q0*~0R-N4fm3x@x#z5wtV^q86^eGH`n3A+(%StzWgR^_C|*`;m9KN9dMUeR ze_FNk`}5D9JU-mdWj2$WiO-fxg+gjGcYShJ%oocmhhOAM`IFuH%8r#-dsZ%AS61#n z+`2fw-djtot~Rg#UntQR@45-`A%Fk^2q1s}0tg_000IagfWR9FjH!duVejuCxYz&U zkN&YBfB*srAbn!82q1s}0tg_000IagfB*sr1Ydy9{|A4L$q)eq p5I_I{1Q0*~0R#|000Hj*Qv(PffB*srAb 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); + } + } + } + return storedTemplate; + } + /** * A visual attribute of a creature (ie how wide is their nose, what type of hairstyle do they have, etc) */ diff --git a/src/main/java/electrosphere/server/datacell/RealmManager.java b/src/main/java/electrosphere/server/datacell/RealmManager.java index 08055f99..354f4eb1 100644 --- a/src/main/java/electrosphere/server/datacell/RealmManager.java +++ b/src/main/java/electrosphere/server/datacell/RealmManager.java @@ -136,5 +136,13 @@ public class RealmManager { } } + /** + * Returns the first realm in the manager + * @return The first realm in the manager + */ + public Realm first(){ + return realms.iterator().next(); + } + } diff --git a/src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java b/src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java new file mode 100644 index 00000000..896a47c4 --- /dev/null +++ b/src/test/java/electrosphere/entity/state/equip/ServerEquipStateTests.java @@ -0,0 +1,41 @@ +package electrosphere.entity.state.equip; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.joml.Vector3d; +import org.junit.jupiter.api.Disabled; + +import annotations.IntegrationTest; +import electrosphere.engine.Globals; +import electrosphere.entity.Entity; +import electrosphere.entity.state.inventory.InventoryUtils; +import electrosphere.entity.types.creature.CreatureTemplate; +import electrosphere.entity.types.creature.CreatureUtils; +import electrosphere.entity.types.item.ItemUtils; +import template.EntityTestTemplate; +import testutils.TestEngineUtils; + +/** + * Server equip state tests + */ +public class ServerEquipStateTests extends EntityTestTemplate { + + @Disabled + @IntegrationTest + public void spawningWithEquippedItem(){ + TestEngineUtils.simulateFrames(1); + //spawn entities + // CreatureTemplate creatureTemplate = CreatureTemplate.createDefault("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"); + + //equip + // Entity inInventoryItem = InventoryUtils.serverAttemptStoreItem(creature, katana); + // ServerEquipState serverEquipState = ServerEquipState.getServerEquipState(creature); + // serverEquipState.commandAttemptEquip(inInventoryItem, serverEquipState.getEquipPoint("handsCombined")); + + // //verify was equipped + // assertNotNull(serverEquipState.getEquippedItemAtPoint("handsCombined")); + } + +} diff --git a/src/test/java/template/EntityTestTemplate.java b/src/test/java/template/EntityTestTemplate.java new file mode 100644 index 00000000..a50832fe --- /dev/null +++ b/src/test/java/template/EntityTestTemplate.java @@ -0,0 +1,19 @@ +package template; + +import annotations.IntegrationSetup; +import testutils.EngineInit; +import testutils.TestEngineUtils; + +/** + * + */ +public abstract class EntityTestTemplate extends RenderingTestTemplate { + + @IntegrationSetup + @Override + public void initEngine(){ + TestEngineUtils.initGraphicalEngine(); + EngineInit.setupConnectedTestScene(); + } + +} diff --git a/src/test/java/testutils/EngineInit.java b/src/test/java/testutils/EngineInit.java new file mode 100644 index 00000000..fd7e9043 --- /dev/null +++ b/src/test/java/testutils/EngineInit.java @@ -0,0 +1,32 @@ +package testutils; + +import electrosphere.engine.loadingthreads.LoadingThread; +import electrosphere.engine.loadingthreads.LoadingThread.LoadingThreadType; +import electrosphere.entity.scene.SceneFile; +import electrosphere.menu.mainmenu.MenuGeneratorsLevelEditor.LevelDescription; + +public class EngineInit { + + /** + * Setups up a locally-connected client and server that have loaded a test scene + */ + public static void setupConnectedTestScene(){ + + // + //create the scene + LevelDescription inFlightLevel = new LevelDescription(); + SceneFile sceneFile = SceneFile.createSceneFile(); + inFlightLevel.setSceneFile(sceneFile); + inFlightLevel.setName("testscene1"); + sceneFile.setCreateSaveInstance(false); + sceneFile.getRealmDescriptor().setGriddedRealmSize(1); + LoadingThread loadingThread = new LoadingThread(LoadingThreadType.LEVEL_EDITOR, inFlightLevel); + loadingThread.run(); + + // + //load the scene + loadingThread = new LoadingThread(LoadingThreadType.LEVEL,"testscene1"); + loadingThread.run(); + } + +}