Beispiel #1
0
        public void ServerAction(Lobby lobby, Server.Client client)
        {
            lock (lobby.entityCheckLock)
            {
                //Check for existing
                NetworkEntity[] networkEntities = lobby.NetworkEntities;
                for (int i = 0; i < networkEntities.Length; i++)
                {
                    if (networkEntities[i].ClientIndex == networkEntityData.ClientIndex && networkEntities[i].EntityIndex == networkEntityData.EntityIndex)
                    {
                        //Set data
                        networkEntityData.SetNetworkEntity(networkEntities[i], null);
                        return;
                    }
                }

                //None exist, create new
                lobby.AddNetworkEntity(networkEntityData.DeployNetworkEntity(null, null, lobby));
            }
        }
        public void ClientAction(GameSession gameSession)
        {
            if (gameSession.gameMap != null)
            {
                //Check for existing
                Entity[] entities = gameSession.gameMap.Entities;
                for (int i = 0; i < entities.Length; i++)
                {
                    if (entities[i] is NetworkEntity networkEntity)
                    {
                        if (networkEntity.ClientIndex == networkEntityData.ClientIndex && networkEntity.EntityIndex == networkEntityData.EntityIndex)
                        {
                            //Set data
                            networkEntityData.SetNetworkEntity(networkEntity, gameSession);
                            return;
                        }
                    }
                }

                //None exist, create new
                gameSession.gameMap.AddEntity(networkEntityData.DeployNetworkEntity(gameSession.LatestGameTime, gameSession, null));
            }
        }