public IEnumerator PathToRoutine(IntVector2 location) { List <IntVector2> path = Parent.FindPath(this, location); if (path == null) { yield break; } foreach (IntVector2 target in path) { yield return(StartCoroutine(StepRoutine(OrthoDirExtensions.DirectionOf(target - GetComponent <MapEvent>().Position)))); } }
private OrthoDir CalculateDirection() { OrthoDir normalDir = Parent().GetComponent <CharaEvent>().facing; MapCamera cam = Application.isPlaying ? Global.Instance().Maps.Camera : FindObjectOfType <MapCamera>(); if (!cam || !dynamicFacing) { return(normalDir); } Vector3 ourScreen = cam.GetCameraComponent().WorldToScreenPoint(parentEvent.transform.position); Vector3 targetWorld = MapEvent3D.TileToWorldCoords(parentEvent.positionXY + normalDir.XY()); Vector3 targetScreen = cam.GetCameraComponent().WorldToScreenPoint(targetWorld); Vector3 delta = targetScreen - ourScreen; return(OrthoDirExtensions.DirectionOf(new Vector2(delta.x, -delta.y))); }
public OrthoDir DirectionTo(MapEvent other) { return(OrthoDirExtensions.DirectionOf(other.PositionPx - PositionPx)); }
public void FaceToward(IntVector2 pos) { facing = OrthoDirExtensions.DirectionOf(pos - GetComponent <MapEvent>().positionXY); }