public void ReceiveNetworkJunctionSwitch(Message message) { if (buffer.NotSyncedAddToBuffer(IsSynced, ReceiveNetworkJunctionSwitch, message)) { return; } using (DarkRiftReader reader = message.GetReader()) { Main.Log($"[CLIENT] < SWITCH_CHANGED"); while (reader.Position < reader.Length) { Switch switchInfo = reader.ReadSerializable <Switch>(); if (switchInfo.Id >= junctions.Length) { Main.Log($"Unidentified junction received. Skipping (ID: {switchInfo.Id})"); return; } Junction junction = junctions[switchInfo.Id]; if (switchInfo.SwitchToLeft && junction.selectedBranch == 0 || !switchInfo.SwitchToLeft && junction.selectedBranch == 1) { Main.Log($"Junction with ID {switchInfo.Id} already set to correct branch."); return; } IsChangeByNetwork = true; junction.Switch((Junction.SwitchMode)switchInfo.Mode); IsChangeByNetwork = false; } } }
public void ReceiveNetworkTurntableChange(Message message) { if (buffer.NotSyncedAddToBuffer(IsSynced, ReceiveNetworkTurntableChange, message)) { return; } using (DarkRiftReader reader = message.GetReader()) { //Main.Log($"[CLIENT] < TURNTABLE_ANGLE_CHANGED"); while (reader.Position < reader.Length) { Turntable turntableInfo = reader.ReadSerializable <Turntable>(); TurntableController turntable = turntables.FirstOrDefault(j => j.transform.position == turntableInfo.Position + WorldMover.currentMove); if (turntable) { SingletonBehaviour <CoroutineManager> .Instance.Run(RotateTurntableTowardsByNetwork(turntable, turntableInfo.Rotation)); } } } }