public override void ProcessPacket(Guid sourcePlayerId, Packet packet, IProcessorContext context) { UpdateEnvironmentDataPacket updateEnvironmentDataPacket = (UpdateEnvironmentDataPacket)packet; ClientProcessorContext processorContext = (ClientProcessorContext)context; processorContext.Client.EnvironmentManager.OnUpdateEnvironmentData(updateEnvironmentDataPacket.Time, updateEnvironmentDataPacket.WindLevel, updateEnvironmentDataPacket.WindDirection); }
public void UpdateEnvironmentData(float time, float windLevel, Vector3D windDirection) { this.time = time; this.windLevel = windLevel; this.windDirection = windDirection; UpdateEnvironmentDataPacket updateEnvironmentDataPacket = new UpdateEnvironmentDataPacket(time, windLevel, windDirection); server.SendPacketToAll(updateEnvironmentDataPacket); }
public void UpdateEnvironmentData(float time, float windLevel, Vector3D windDirection) { 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 } UpdateEnvironmentDataPacket updateEnvironmentDataPacket = new UpdateEnvironmentDataPacket(time, windLevel, windDirection); client.SendPacket(updateEnvironmentDataPacket); }
public override void ProcessPacket(Guid sourcePlayerId, Packet packet, IProcessorContext context) { UpdateEnvironmentDataPacket updateEnvironmentDataPacket = (UpdateEnvironmentDataPacket)packet; ServerProcessorContext processorContext = (ServerProcessorContext)context; SimulationManager simulationManager = processorContext.Server.SimulationManager; EnvironmentManager environmentManager = processorContext.Server.EnvironmentManager; Player?simulationOwner = simulationManager.GetSimulationOwner(); if (simulationOwner == null || sourcePlayerId != simulationOwner.Value.Id) { //Deny request if client isn't the simulation owner return; } environmentManager.UpdateEnvironmentData(updateEnvironmentDataPacket.Time, updateEnvironmentDataPacket.WindLevel, updateEnvironmentDataPacket.WindDirection); }