예제 #1
0
        public static SynchedMissionObject ReadSynchedMissionObjectFromPacket(
            ref bool bufferReadValid)
        {
            MissionObject missionObject = GameNetworkMessage.ReadMissionObjectReferenceFromPacket(ref bufferReadValid);

            if (!bufferReadValid || missionObject == null)
            {
                return((SynchedMissionObject)null);
            }
            SynchedMissionObject synchedMissionObject = (SynchedMissionObject)missionObject;

            bufferReadValid = synchedMissionObject.ReadFromNetwork();
            return(synchedMissionObject);
        }
 protected internal override void OnInit()
 {
     this._flagHolder         = this.GameEntity.CollectChildrenEntitiesWithTag("score_stand").SingleOrDefault <GameEntity>().GetScriptComponents <SynchedMissionObject>().SingleOrDefault <SynchedMissionObject>();
     this._theFlag            = this._flagHolder.GameEntity.CollectChildrenEntitiesWithTag("flag_white").SingleOrDefault <GameEntity>().GetScriptComponents <SynchedMissionObject>().SingleOrDefault <SynchedMissionObject>();
     this._flagBottomBoundary = this.GameEntity.GetChildren().Single <GameEntity>((Func <GameEntity, bool>)(q => ((IEnumerable <string>)q.Tags).Contains <string>("flag_raising_bottom")));
     this._flagTopBoundary    = this.GameEntity.GetChildren().Single <GameEntity>((Func <GameEntity, bool>)(q => ((IEnumerable <string>)q.Tags).Contains <string>("flag_raising_top")));
     if (GameNetwork.IsServerOrRecorder)
     {
         MatrixFrame globalFrame = this._flagTopBoundary.GetGlobalFrame();
         this._flagHolder.SetGlobalFrameSynched(ref globalFrame);
     }
     this._flagDependentObjects = new List <SynchedMissionObject>();
     foreach (GameEntity gameEntity in Mission.Current.Scene.FindEntitiesWithTag("depends_flag_" + (object)this.FlagIndex).ToList <GameEntity>())
     {
         this._flagDependentObjects.Add(gameEntity.GetScriptComponents <SynchedMissionObject>().SingleOrDefault <SynchedMissionObject>());
     }
 }
예제 #3
0
 public void WriteSynchedMissionObjectToPacket(SynchedMissionObject value)
 {
     GameNetworkMessage.WriteMissionObjectReferenceToPacket((MissionObject)value);
     value?.WriteToNetwork();
 }
 public SynchronizeMissionObject(SynchedMissionObject missionObject) => this.MissionObject = missionObject;