public override void ProcessPacket(Guid sourcePlayerId, Packet packet, IProcessorContext context)
        {
            UpdateDisasterPacket   updateDisasterPacket = (UpdateDisasterPacket)packet;
            ClientProcessorContext processorContext     = (ClientProcessorContext)context;

            processorContext.Client.DisasterManager.OnUpdateDisaster(updateDisasterPacket.CurrentTime);
        }
        public void UpdateDisaster(float currentTime)
        {
            if (!AnyDisasterInProgress())
            {
                return;
            }

            Disaster disaster = this.disaster.Value;

            disaster.CurrentTime = currentTime;

            UpdateDisasterPacket updateDisasterPacket = new UpdateDisasterPacket(currentTime);

            server.SendPacketToAll(updateDisasterPacket);
        }
        public override void ProcessPacket(Guid sourcePlayerId, Packet packet, IProcessorContext context)
        {
            UpdateDisasterPacket   updateDisasterPacket = (UpdateDisasterPacket)packet;
            ServerProcessorContext processorContext     = (ServerProcessorContext)context;
            SimulationManager      simulationManager    = processorContext.Server.SimulationManager;
            DisasterManager        disasterManager      = processorContext.Server.DisasterManager;

            Player?simulationOwner = simulationManager.GetSimulationOwner();

            if (simulationOwner == null || sourcePlayerId != simulationOwner.Value.Id)
            {
                //Deny request if client isn't the simulation owner
                return;
            }

            disasterManager.UpdateDisaster(updateDisasterPacket.CurrentTime);
        }
        public void UpdateDisaster(float currentTime)
        {
            if (!AnyDisasterInProgress())
            {
                return;
            }

            Player?simulationOwner = client.SimulationManager.GetSimulationOwner();

            if (simulationOwner == null || simulationOwner.Value != client.LocalPlayer)
            {
                return; // Don't send the packet if we aren't the simulation owner
            }
            UpdateDisasterPacket updateDisasterPacket = new UpdateDisasterPacket(currentTime);

            client.SendPacket(updateDisasterPacket);
        }