/// <summary> /// On RangeObject destroyed, every <see cref="RangeIntersectionCalculator"/> in <see cref="AllRangeIntersectionCalculatorV2"/> that references the /// <paramref name="RangeObjectV2"/> must be destroyed. /// </summary> private void OnRangeObjectDestroyed(RangeObjectV2 RangeObjectV2) { List <RangeIntersectionCalculator> RangeIntersectionCalculatorsToDestroy = null; for (var i = 0; i < this.AllRangeIntersectionCalculatorV2.Count; i++) { var currentIntersectionCalculator = this.AllRangeIntersectionCalculatorV2[i]; if (currentIntersectionCalculator.GetAssociatedRangeObject() == RangeObjectV2) { if (RangeIntersectionCalculatorsToDestroy == null) { RangeIntersectionCalculatorsToDestroy = new List <RangeIntersectionCalculator>(); } RangeIntersectionCalculatorsToDestroy.Add(currentIntersectionCalculator); } } if (RangeIntersectionCalculatorsToDestroy != null) { foreach (var rangeIntersectionCalculatorToDestroy in RangeIntersectionCalculatorsToDestroy) { rangeIntersectionCalculatorToDestroy.OnDestroy(); this.AllRangeIntersectionCalculatorV2.Remove(rangeIntersectionCalculatorToDestroy); } } }
public void OnRangeObjectDestroyed(RangeObjectV2 RangeObjectV2) { if (this.OnRangeObjectDestroyedEvent != null) { this.OnRangeObjectDestroyedEvent.Invoke(RangeObjectV2); } }
private void OnRangeObjectCreated(RangeObjectV2 RangeObjectV2) { var rangeTypeID = RangeObjectV2.RangeObjectInitialization.RangeTypeID; if (rangeTypeID != RangeTypeID.NOT_DISPLAYED) { if (!rangeRenderDatas.ContainsKey(rangeTypeID)) { rangeRenderDatas[rangeTypeID] = new Dictionary <int, AbstractRangeRenderData>(); } if (RangeObjectV2.GetType() == typeof(SphereRangeObjectV2)) { var SphereRangeObjectRenderingDataProvider = new SphereRangeObjectRenderingDataProvider((SphereRangeObjectV2)RangeObjectV2, rangeTypeID); var addedRange = new SphereGroundEffectManager(RangeTypeConfiguration.ConfigurationInherentData[rangeTypeID], SphereRangeObjectRenderingDataProvider); addedRange.OnRangeCreated(SphereRangeObjectRenderingDataProvider); rangeRenderDatas[rangeTypeID].Add(SphereRangeObjectRenderingDataProvider.BoundingCollider.GetInstanceID(), new CircleRangeRenderData(addedRange)); } else if (RangeObjectV2.GetType() == typeof(BoxRangeObjectV2)) { var BoxRangeObjectRenderingDataProvider = new BoxRangeObjectRenderingDataProvider((BoxRangeObjectV2)RangeObjectV2, rangeTypeID); var addedRange = new BoxGroundEffectManager(RangeTypeConfiguration.ConfigurationInherentData[rangeTypeID], BoxRangeObjectRenderingDataProvider); addedRange.OnRangeCreated(BoxRangeObjectRenderingDataProvider); rangeRenderDatas[rangeTypeID].Add(BoxRangeObjectRenderingDataProvider.BoundingCollider.GetInstanceID(), new BoxRangeRenderData(addedRange)); } else if (RangeObjectV2.GetType() == typeof(RoundedFrustumRangeObjectV2)) { var RoundedFrustumRangeObjectRenderingDataProvider = new FrustumRangeObjectRenderingDataProvider((RoundedFrustumRangeObjectV2)RangeObjectV2, rangeTypeID); var addedRange = new RoundedFrustumGroundEffectManager(RangeTypeConfiguration.ConfigurationInherentData[rangeTypeID], RoundedFrustumRangeObjectRenderingDataProvider); addedRange.OnRangeCreated(RoundedFrustumRangeObjectRenderingDataProvider); rangeRenderDatas[rangeTypeID].Add(RoundedFrustumRangeObjectRenderingDataProvider.BoundingCollider.GetInstanceID(), new RoundedFrustumRenderData(addedRange)); } } }
public void OnRangeObjectCreated(RangeObjectV2 RangeObjectV2) { if (this.OnRangeObjectAllCreatedEvent != null) { this.OnRangeObjectAllCreatedEvent.Invoke(RangeObjectV2); } }
protected ARangeObjectRenderingDataProvider(RangeObjectV2 rangeObjectV2Ref, RangeTypeID RangeTypeID) { RangeObjectV2Ref = rangeObjectV2Ref; this.RangeTypeID = RangeTypeID; this.BoundingCollider = rangeObjectV2Ref.RangeGameObjectV2.BoundingCollider; this.ObstacleListener = rangeObjectV2Ref.GetObstacleListener(); }
public FrustumRangeObjectPositioningSystem(FrustumV2 Frustum, RangeObjectV2 RoundedFrustumRangeObjectV2) : base(RoundedFrustumRangeObjectV2) { Frustum.CalculateFrustumWorldPositionyFace(out FrustumPointsPositions LocalFrustumPointPositions, new TransformStruct { WorldPosition = Vector3.zero, WorldRotationEuler = Vector3.zero, LossyScale = Vector3.one }); this.RangeFrustumWorldPositioning = new RangeFrustumWorldPositioning { LocalFrustumPositions = LocalFrustumPointPositions }; }
public InteractiveIntersectionListenerDelegated(RangeObjectV2 associatedRangeObject, Func <InteractiveObjectTag, bool> InteractiveObjectSelectionGuardAction, Action <CoreInteractiveObject> OnInterestedNothingAction = null, Action <CoreInteractiveObject> OnJustIntersectedAction = null, Action <CoreInteractiveObject> OnJustNotIntersectedAction = null, Action <CoreInteractiveObject> OnTriggerEnterSuccessAction = null, Action <CoreInteractiveObject> OnTriggerExitSuccessAction = null) : base(associatedRangeObject) { this.OnInterestedNothingAction = OnInterestedNothingAction; this.OnJustIntersectedAction = OnJustIntersectedAction; this.OnJustNotIntersectedAction = OnJustNotIntersectedAction; this.OnTriggerEnterSuccessAction = OnTriggerEnterSuccessAction; this.OnTriggerExitSuccessAction = OnTriggerExitSuccessAction; this.InteractiveObjectSelectionGuardAction = InteractiveObjectSelectionGuardAction; }
public RangeIntersectionV2Listener_Delegated(RangeObjectV2 associatedRangeObject, InteractiveObjectTagStruct InteractiveObjectSelectionGuard, Action <CoreInteractiveObject> OnInterestedNothingAction = null, Action <CoreInteractiveObject> OnJustIntersectedAction = null, Action <CoreInteractiveObject> OnJustNotIntersectedAction = null, Action <CoreInteractiveObject> OnTriggerEnterSuccessAction = null, Action <CoreInteractiveObject> OnTriggerExitSuccessAction = null) : base(associatedRangeObject) { this.OnInterestedNothingAction = OnInterestedNothingAction; this.OnJustIntersectedAction = OnJustIntersectedAction; this.OnJustNotIntersectedAction = OnJustNotIntersectedAction; this.OnTriggerEnterSuccessAction = OnTriggerEnterSuccessAction; this.OnTriggerExitSuccessAction = OnTriggerExitSuccessAction; this.InteractiveObjectSelectionGuard = InteractiveObjectSelectionGuard; }
private void OnRangeObjectDestroyed(RangeObjectV2 RangeObjectV2) { if (RangeObjectV2.RangeObjectInitialization.RangeTypeID != RangeTypeID.NOT_DISPLAYED) { rangeRenderDatas[RangeObjectV2.RangeObjectInitialization.RangeTypeID][RangeObjectV2.RangeGameObjectV2.BoundingCollider.GetInstanceID()].OnRangeDestroyed(); rangeRenderDatas[RangeObjectV2.RangeObjectInitialization.RangeTypeID].Remove(RangeObjectV2.RangeGameObjectV2.BoundingCollider.GetInstanceID()); if (rangeRenderDatas[RangeObjectV2.RangeObjectInitialization.RangeTypeID].Count == 0) { rangeRenderDatas.Remove(RangeObjectV2.RangeObjectInitialization.RangeTypeID); } } }
public RangeIntersectionCalculator(RangeObjectV2 RangeObject, CoreInteractiveObject TrackedInteractiveObject) { this.AssociatedRangeObject = RangeObject; this.TrackedInteractiveObject = TrackedInteractiveObject; this.sightModuleMovementChangeTracker = new BlittableTransformChangeListenerManager(true, true); this.inRangeCollidersMovementChangeTracker = new BlittableTransformChangeListenerManager(true, true); this.RangeIntersectionCalculatorV2UniqueID = _rangeIntersectionCalculatorManager.OnRangeIntersectionCalculatorV2ManagerCreation(this); RangeIntersectionCalculationManagerV2.ManualCalculation(new List <RangeIntersectionCalculator>() { this }, forceCalculation: true); }
private void CommontInit(RangeObjectInitialization RangeObjectInitialization, RangeObjectV2 RangeObjectV2, CoreInteractiveObject AssociatedInteractiveObject, string objectName) { this.assocaitedRangeObject = RangeObjectV2; this.RangeGameObject = new GameObject(objectName); if (this.attachedGameObject != null) { this.RangeGameObject.transform.parent = this.attachedGameObject.transform; } this.RangeGameObject.transform.localRotation = Quaternion.identity; this.RangeGameObject.transform.localPosition = Vector3.zero; var rigidbody = this.RangeGameObject.AddComponent <Rigidbody>(); rigidbody.useGravity = false; rigidbody.isKinematic = true; this.InteractiveInteractiveObjectPhysicsListener = this.RangeGameObject.AddComponent <InteractiveInteractiveObjectPhysicsListener>(); this.InteractiveInteractiveObjectPhysicsListener.Init(AssociatedInteractiveObject); }
public static RangeObjectV2 FromRangeObjectInitialization(RangeObjectInitialization RangeObjectInitialization, GameObject parent) { RangeObjectV2 rangeObjectV2 = null; if (RangeObjectInitialization.GetType() == typeof(SphereRangeObjectInitialization)) { rangeObjectV2 = new SphereRangeObjectV2(parent, (SphereRangeObjectInitialization)RangeObjectInitialization, null); } else if (RangeObjectInitialization.GetType() == typeof(BoxRangeObjectInitialization)) { rangeObjectV2 = new BoxRangeObjectV2(parent, (BoxRangeObjectInitialization)RangeObjectInitialization, null); } else if (RangeObjectInitialization.GetType() == typeof(FrustumRangeObjectInitialization)) { rangeObjectV2 = new FrustumRangeObjectV2(parent, (FrustumRangeObjectInitialization)RangeObjectInitialization, null); } else if (RangeObjectInitialization.GetType() == typeof(RoundedFrustumRangeObjectInitialization)) { rangeObjectV2 = new RoundedFrustumRangeObjectV2(parent, (RoundedFrustumRangeObjectInitialization)RangeObjectInitialization, null); } return(rangeObjectV2); }
protected AInteractiveIntersectionListener(RangeObjectV2 associatedRangeObject) { this.associatedRangeObject = associatedRangeObject; }
public RangeGameObjectV2(GameObject attachedGameObject, RoundedFrustumRangeObjectInitialization FrustumRangeObjectInitialization, RangeObjectV2 RangeObjectV2, CoreInteractiveObject AssociatedInteractiveObject, string objectName) { this.attachedGameObject = attachedGameObject; this.CommontInit(FrustumRangeObjectInitialization, RangeObjectV2, AssociatedInteractiveObject, objectName); this.BoundingCollider = RangeObjectBoundingColliderBuilder.BuildBoundingCollider(FrustumRangeObjectInitialization, this); }
private void OnRangeObjectDestroyed(RangeObjectV2 rangeObjectV2) { RangeObjects.Remove(rangeObjectV2); }
private void OnRangeObjectCreated(RangeObjectV2 rangeObjectV2) { RangeObjects.Add(rangeObjectV2); rangeObjectV2.RegisterOnRangeObjectDestroyedEventListener(this.OnRangeObjectDestroyed); }
public RangeObstacleListenerSystem(RangeObjectV2 rangeObjectV2Ref, RangeObjectV2PhysicsEventListenerComponent rangeObjectV2PhysicsEventListenerComponent) : base(rangeObjectV2Ref) { this.ObstacleListener = new ObstacleListenerSystem(new Func <TransformStruct>(() => rangeObjectV2Ref.GetTransform())); this.RangeObstaclePhysicsEventListener = new RangeObstaclePhysicsEventListener(this.ObstacleListener); rangeObjectV2PhysicsEventListenerComponent.AddPhysicsEventListener(this.RangeObstaclePhysicsEventListener); }
public RangeExternalPhysicsOnlyListenersSystem(RangeObjectV2 rangeObjectV2Ref, RangeObjectV2PhysicsEventListenerComponent rangeObjectV2PhysicsEventListenerComponent) : base(rangeObjectV2Ref) { this._rangeObjectV2PhysicsEventListenerComponent = rangeObjectV2PhysicsEventListenerComponent; }
protected ARangeObjectSystem(RangeObjectV2 rangeObjectV2Ref) { RangeObjectV2Ref = rangeObjectV2Ref; }
protected ARangeIntersectionV2Listener(RangeObjectV2 associatedRangeObject) { this.associatedRangeObject = associatedRangeObject; }
private void OnRangeObjectCreated(RangeObjectV2 rangeObjectV2) { RangeObjects.Add(rangeObjectV2); }
public RangeIntersectionV2System(RangeObjectV2 rangeObjectV2Ref) : base(rangeObjectV2Ref) { }
public RangeObstacleListenerSystem(RangeObjectV2 rangeObjectV2Ref, InteractiveInteractiveObjectPhysicsListener interactiveInteractiveObjectPhysicsListener) : base(rangeObjectV2Ref) { this.ObstacleListener = new ObstacleListenerSystem(new Func <TransformStruct>(() => rangeObjectV2Ref.GetTransform())); this._interactiveObstaclePhysicsEventListener = new InteractiveObstaclePhysicsEventListener(this.ObstacleListener); interactiveInteractiveObjectPhysicsListener.AddPhysicsEventListener(this._interactiveObstaclePhysicsEventListener); }
public RangeExternalPhysicsOnlyListenersSystem(RangeObjectV2 rangeObjectV2Ref, InteractiveInteractiveObjectPhysicsListener interactiveInteractiveObjectPhysicsListener) : base(rangeObjectV2Ref) { this._interactiveInteractiveObjectPhysicsListener = interactiveInteractiveObjectPhysicsListener; }