protected override void Awake() { if (GetComponentInChildren <AnimEventHandler>() != null) { base.Awake(); if (m_Animation == null) { m_Animation = this.GetComponentInChildren <AnimHandler>(true); } if (m_AnimationEvents == null) { m_AnimationEvents = this.GetComponentInChildren <AnimEventHandler>(true); } m_old = true; } else { base.Awake(); if (m_animator == null) { m_animator = this.GetComponentInChildren <Animator>(true); } if (m_animatorControl == null) { m_animatorControl = this.GetComponentInChildren <AnimatorControl>(true); } if (m_eventHandler == null) { m_eventHandler = this.GetComponentInChildren <BaseEventHandler>(true); } m_animator.cullingMode = AnimatorCullingMode.AlwaysAnimate; } }
protected override void Awake() { base.Awake(); if (m_Animation == null) { m_Animation = this.GetComponent <AnimHandler>(true); } if (m_AnimationEvents == null) { m_AnimationEvents = this.GetComponent <AnimEventHandler>(true); } }
//// <summary> /// Applied before UpdateOffset runs. /// </summary> internal static bool Prefix(AnimEventHandler __instance) { var navigator = __instance.navigator; var pivotSymbolPosition = __instance.controller.GetPivotSymbolPosition(); var offset = navigator.NavGrid.GetNavTypeData(navigator.CurrentNavType). animControllerOffset; var baseOffset = __instance.baseOffset; var pos = __instance.transform.position; // Is the minus on x a typo? (Or is the plus on y the typo?) __instance.animCollider.offset = new Vector2(baseOffset.x + pivotSymbolPosition.x - pos.x - offset.x, baseOffset.y + pivotSymbolPosition.y - pos.y + offset.y); __instance.isDirty = Mathf.Max(0, __instance.isDirty - 1); return(false); }
public void UpdateHitEffectTarget() { if (!((UnityEngine.Object)hitEffect == (UnityEngine.Object)null)) { Workable workable = base.sm.workable.Get <Workable>(base.smi); Worker worker = base.sm.worker.Get <Worker>(base.smi); AnimEventHandler component = worker.GetComponent <AnimEventHandler>(); Vector3 targetPoint = workable.GetTargetPoint(); worker.GetComponent <Facing>().Face(workable.transform.GetPosition()); anims = GetAnimationStrings(workable, worker, "dig"); PlayLoop(); component.SetTargetPos(targetPoint); component.UpdateWorkTarget(workable.GetTargetPoint()); hitEffect.transform.SetPosition(targetPoint); } }
public void CreateHitEffect() { Worker worker = base.sm.worker.Get <Worker>(base.smi); Workable workable = base.sm.workable.Get <Workable>(base.smi); if (!((UnityEngine.Object)worker == (UnityEngine.Object)null) && !((UnityEngine.Object)workable == (UnityEngine.Object)null)) { if (Grid.PosToCell(workable) != Grid.PosToCell(worker)) { worker.Trigger(-673283254, null); } Diggable diggable = workable as Diggable; if ((bool)diggable) { Element targetElement = diggable.GetTargetElement(); worker.Trigger(-1762453998, targetElement); } if (!((UnityEngine.Object)hitEffectPrefab == (UnityEngine.Object)null)) { if ((UnityEngine.Object)hitEffect != (UnityEngine.Object)null) { DestroyHitEffect(); } AnimEventHandler component = worker.GetComponent <AnimEventHandler>(); Vector3 targetPoint = workable.GetTargetPoint(); component.SetTargetPos(targetPoint); hitEffect = GameUtil.KInstantiate(hitEffectPrefab, targetPoint, Grid.SceneLayer.FXFront2, null, 0); KBatchedAnimController component2 = hitEffect.GetComponent <KBatchedAnimController>(); hitEffect.SetActive(true); component2.sceneLayer = Grid.SceneLayer.FXFront2; component2.enabled = false; component2.enabled = true; component.UpdateWorkTarget(workable.GetTargetPoint()); } } }
protected override void OnSpawn() { animEventHandler = GetComponentInParent <AnimEventHandler>(); }