//////////////// private IntroMovieSet UpdateMovieSetFromNetwork(CutsceneUpdateProtocol netData) { var currScene = this.CurrentScene as Intro00_SettingScene; var myNetData = netData as IntroCutsceneUpdateProtocol; currScene.Set.InteriorCrewNPC = myNetData?.InteriorCrewNPC ?? -1; currScene.Set.ShipPropNPC = myNetData?.ShipPropNPC ?? -1; return(currScene.Set); }
protected override SceneBase CreateNextSceneFromNetwork(SceneID sceneId, CutsceneUpdateProtocol netData) { IntroMovieSet set = this.UpdateMovieSetFromNetwork(netData); if (sceneId.Equals(this.FirstSceneId)) { return(new Intro00_SettingScene(set)); } else if (sceneId.Equals(this.SecondSceneId)) { return(Intro01_PiratesScene.Create(this)); } return(null); }
internal void SetCurrentSceneFromNetwork_Internal(SceneID uid, CutsceneUpdateProtocol netData, bool sync) { this.CurrentScene.EndScene_Internal(this); this.CurrentScene = this.CreateNextSceneFromNetwork(uid, netData); this.CurrentScene.BeginScene_Internal(this); if (sync) { if (Main.netMode == NetmodeID.Server) { CutsceneUpdateProtocol.SendToClients(cutscene: this, ignoreWho: -1); } else if (Main.netMode == NetmodeID.MultiplayerClient) { CutsceneUpdateProtocol.Broadcast(cutscene: this); } } }
//////////////// internal bool SetCutsceneSceneFromNetwork( CutsceneID cutsceneId, Player playsFor, SceneID sceneId, CutsceneUpdateProtocol netData, bool sync) { Cutscene cutscene = this._CutscenePerPlayer.GetOrDefault(playsFor.whoAmI); if (cutscene == null) { return(false); } if (cutscene.UniqueId != cutsceneId) { return(false); } cutscene.SetCurrentSceneFromNetwork_Internal(sceneId, netData, sync); return(true); }
protected abstract SceneBase CreateNextSceneFromNetwork(SceneID sceneId, CutsceneUpdateProtocol data);