//////////////// public override void SyncPlayer(int toWho, int fromWho, bool newPlayer) { if (Main.netMode == NetmodeID.Server) { PlayerDataNetData.SendToClients(this, toWho, fromWho); } else if (Main.netMode == NetmodeID.MultiplayerClient) { PlayerDataNetData.SendToServer(this); } }
///// internal void SyncFromNet(PlayerDataNetData payload) { this.TriggeredCutsceneIDs_Player = new HashSet <CutsceneID>(); int len = payload.ActivatedCutsceneModNames_Player.Length; for (int i = 0; i < len; i++) { string modName = payload.ActivatedCutsceneModNames_Player[i]; string className = payload.ActivatedCutsceneNames_Player[i]; this.TriggeredCutsceneIDs_Player.Add(new CutsceneID(modName, className)); } }
public override void SendClientChanges(ModPlayer clientPlayer) { var myclone = clientPlayer as CutsceneLibPlayer; bool isDesynced = !this.TriggeredCutsceneIDs_Player.SetEquals(myclone.TriggeredCutsceneIDs_Player); if (isDesynced) { if (Main.netMode == NetmodeID.Server) { PlayerDataNetData.SendToClients(this, -1, this.player.whoAmI); } else if (Main.netMode == NetmodeID.MultiplayerClient) { PlayerDataNetData.SendToServer(this); // server only? } } }