예제 #1
0
        public override void ProcessPacket(NewDroneOrderPacket packet, NebulaConnection conn)
        {
            // Host does not need to know about flying drones of other players if he is not on the same planet
            if (IsHost)
            {
                if (GameMain.mainPlayer.planetId != packet.PlanetId)
                {
                    return;
                }

                Player player = playerManager.GetPlayer(conn);
                if (player != null)
                {
                    if (packet.Stage == 1 || packet.Stage == 2)
                    {
                        DroneManager.AddPlayerDronePlan(player.Id, packet.EntityId);
                    }
                    else if (packet.Stage == 3)
                    {
                        DroneManager.RemovePlayerDronePlan(player.Id, packet.EntityId);
                    }
                }
            }

            SimulatedWorld.UpdateRemotePlayerDrone(packet);
        }