public void OnChunkLevelEnter(LevelChunkInteractiveObject nextLevelChunkInteractiveObject) { if (old == null) { this.old = nextLevelChunkInteractiveObject.GetTransitionableLevelFXType(); Debug.Log(MyLog.Format("SAME")); this.OnNewChunkLevel(this.old, this.current, forceInstantTransition: true); } else if (current == null) { if (this.old != nextLevelChunkInteractiveObject.GetTransitionableLevelFXType()) { this.current = nextLevelChunkInteractiveObject.GetTransitionableLevelFXType(); this.OnNewChunkLevel(this.old, this.current); } } else { if (this.current != nextLevelChunkInteractiveObject.GetTransitionableLevelFXType()) { this.old = this.current; this.current = nextLevelChunkInteractiveObject.GetTransitionableLevelFXType(); this.OnNewChunkLevel(this.old, this.current); } } }
public void OnChunkLevelEnter(LevelChunkInteractiveObject nextLevelChunkTracker) { if (!this.currentInsideTracker.Contains(nextLevelChunkTracker)) { this.currentInsideTracker.Add(nextLevelChunkTracker); this.CurrentTransitionableLevelFXTypeManager.OnChunkLevelEnter(nextLevelChunkTracker); } }
public void OnChunkLevelExit(LevelChunkInteractiveObject levelChunkTracker) { this.currentInsideTracker.Remove(levelChunkTracker); if (this.currentInsideTracker.Count == 1) { //If when there is only one chunk tracker, the current tracker considered is not the last one if (!this.CurrentTransitionableLevelFXTypeManager.IsCurrentChunkTrackerEqualsTo(this.currentInsideTracker[0])) { //we transition this.CurrentTransitionableLevelFXTypeManager.OnChunkLevelEnter(this.currentInsideTracker[0]); } } }
public LevelChunkTrackerSystem(LevelChunkInteractiveObject AssociatedLevelChunkInteractiveObject, LevelChunkInteractiveObjectDefinition LevelChunkInteractiveObjectDefinition, Action <CoreInteractiveObject> OnLevelChunkTriggerEnterAction, Action <CoreInteractiveObject> OnLevelChunkTriggerExitAction) { this.LevelChunkTrackerRange = new BoxRangeObjectV2(AssociatedLevelChunkInteractiveObject.InteractiveGameObject.InteractiveGameObjectParent, new BoxRangeObjectInitialization() { BoxRangeTypeDefinition = new BoxRangeTypeDefinition() { Center = LevelChunkInteractiveObjectDefinition.LocalCenter, Size = LevelChunkInteractiveObjectDefinition.LocalSize }, RangeTypeID = RangeTypeID.NOT_DISPLAYED, IsTakingIntoAccountObstacles = false }, AssociatedLevelChunkInteractiveObject, nameof(LevelChunkTrackerSystem.LevelChunkTrackerRange)); this.LevelChunkTrackerRange.RegisterPhysicsEventListener( new InteractiveObjectPhysicsEventListenerDelegated((InteractiveObjectPhysicsTriggerInfo) => InteractiveObjectPhysicsTriggerInfo.GetOtherInteractiveObjectTag().IsPlayer, OnLevelChunkTriggerEnterAction, OnLevelChunkTriggerExitAction) ); }
public LevelChunkTransitionFXSystem(LevelChunkInteractiveObject associatedPostProcessVolume) { this.TransitionableLevelFXType = associatedPostProcessVolume.InteractiveGameObject.InteractiveGameObjectParent.GetComponentInChildren <TransitionableLevelFXType>(); this.TransitionableLevelFXType.Init(); }
public void OnChunkLevelExit(LevelChunkInteractiveObject exitedLevelChunkTracker) { LevelChunkFXTransitionManager.Get().OnChunkLevelExit(exitedLevelChunkTracker); }
public void OnChunkLevelEnter(LevelChunkInteractiveObject enteredLevelChunkTracker) { LevelChunkFXTransitionManager.Get().OnChunkLevelEnter(enteredLevelChunkTracker); LevelManager.Get().OnChunkLevelEnter(enteredLevelChunkTracker); }
public void OnLevelChunkLoaded(LevelZoneChunkID levelZoneChunkID) { LevelChunkInteractiveObject.DestroyAllDestroyOnStartObjects(); LevelManager.Get().OnLevelChunkLoaded(levelZoneChunkID); }
public bool IsCurrentChunkTrackerEqualsTo(LevelChunkInteractiveObject compareChunkInteractiveObject) { return(this.current != null && this.current == compareChunkInteractiveObject.GetTransitionableLevelFXType()); }