diff --git a/assets/Data/creatures.json b/assets/Data/creatures.json index a51d9fd1..d069a356 100644 --- a/assets/Data/creatures.json +++ b/assets/Data/creatures.json @@ -106,7 +106,7 @@ "type" : "MELEE_WEAPON_SWING_ONE_HAND", "animationName" : "Armature|SwingWeapon", "damageStartFrame" : 30, - "damageEndFrame" : 50 + "damageEndFrame" : 120 } ], "healthSystem" : { diff --git a/src/main/java/electrosphere/game/server/world/datacell/ServerDataCell.java b/src/main/java/electrosphere/game/server/world/datacell/ServerDataCell.java index 4dbf25c6..fe252223 100644 --- a/src/main/java/electrosphere/game/server/world/datacell/ServerDataCell.java +++ b/src/main/java/electrosphere/game/server/world/datacell/ServerDataCell.java @@ -9,6 +9,7 @@ import electrosphere.game.server.character.Character; import electrosphere.game.server.world.virtualcell.VirtualCell; import electrosphere.main.Globals; import electrosphere.net.parser.net.message.NetworkMessage; +import java.util.LinkedList; import java.util.List; /** @@ -20,8 +21,8 @@ import java.util.List; */ public class ServerDataCell { - List loadedEntities; - List activePlayers; + List loadedEntities = new LinkedList(); + List activePlayers = new LinkedList(); /** @@ -94,7 +95,9 @@ public class ServerDataCell { */ public void broadcastNetworkMessage(NetworkMessage message){ for(Player player : activePlayers){ - player.addMessage(message); + if(player != Globals.serverPlayer){ + player.addMessage(message); + } } } diff --git a/src/main/java/electrosphere/game/state/MicroSimulation.java b/src/main/java/electrosphere/game/state/MicroSimulation.java index f5237472..f5d4cb2c 100644 --- a/src/main/java/electrosphere/game/state/MicroSimulation.java +++ b/src/main/java/electrosphere/game/state/MicroSimulation.java @@ -99,7 +99,9 @@ public class MicroSimulation { //clear collidable impulse lists Globals.collisionEngine.clearCollidableImpulseLists(); //data cell manager update - Globals.dataCellManager.updatePlayerPositions(); + if(Globals.dataCellManager != null){ + Globals.dataCellManager.updatePlayerPositions(); + } } public boolean isReady(){ diff --git a/src/main/java/electrosphere/net/server/Player.java b/src/main/java/electrosphere/net/server/Player.java index d8524b77..2163924e 100644 --- a/src/main/java/electrosphere/net/server/Player.java +++ b/src/main/java/electrosphere/net/server/Player.java @@ -19,7 +19,8 @@ public class Player { int simulationRadius = 3; Entity playerEntity; - public Player(){ + public Player(ServerConnectionHandler connectionHandler){ + this.connectionHandler = connectionHandler; idIncrementerLock.acquireUninterruptibly(); id = idIncrementer; idIncrementer++; diff --git a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java index faeb2058..76336c49 100644 --- a/src/main/java/electrosphere/net/server/ServerConnectionHandler.java +++ b/src/main/java/electrosphere/net/server/ServerConnectionHandler.java @@ -93,7 +93,7 @@ public class ServerConnectionHandler implements Runnable { ex.printStackTrace(); System.exit(1); } - Player newPlayerObject = new Player(); + Player newPlayerObject = new Player(this); Globals.playerManager.addPlayer(newPlayerObject); //spawn player in world Entity newPlayerCharacter = CreatureUtils.spawnBasicCreature("Human"); @@ -104,6 +104,7 @@ public class ServerConnectionHandler implements Runnable { newPlayerObject.setWorldX(Globals.serverWorldData.convertRealToChunkSpace(Globals.spawnPoint.x)); newPlayerObject.setWorldY(Globals.serverWorldData.convertRealToChunkSpace(Globals.spawnPoint.z)); Globals.dataCellManager.addPlayer(newPlayerObject); + Globals.dataCellManager.movePlayer(newPlayerObject, Globals.serverWorldData.convertRealToChunkSpace(Globals.spawnPoint.x), Globals.serverWorldData.convertRealToChunkSpace(Globals.spawnPoint.z)); //spawn player sword Entity sword = ItemUtils.spawnBasicItem("Katana"); AttachUtils.attachEntityToEntityAtBone(newPlayerCharacter, sword, "Bone.031");