/// <summary> /// Draw the current click to move target. /// </summary> /// <param name="spriteBatch">The sprite batch being drawn.</param> public void DrawPathTarget(SpriteBatch spriteBatch) { PathFindingController pathFindingController = this.GetOrCreate(Game1.currentLocation); NPC npc = pathFindingController.TargetNpc; if (npc is not null) { Game1.spriteBatch.Draw( Game1.mouseCursors, Game1.GlobalToLocal( Game1.viewport, npc.Position + new Vector2((npc.Sprite.SpriteWidth * 4 / 2) - (Game1.tileSize / 2), npc.GetBoundingBox().Height + ((!npc.IsMonster) ? 12 : 0) - (Game1.tileSize / 2))), new Microsoft.Xna.Framework.Rectangle(194, 388, 16, 16), Color.White, 0, Vector2.Zero, 4, SpriteEffects.None, 0.58f); } else if ((Game1.displayHUD || Game1.eventUp) && Game1.currentBillboard == 0 && Game1.gameMode == Game1.playingGameMode && !Game1.freezeControls && !Game1.panMode && !Game1.HostPaused) { if (Game1.activeClickableMenu is not null && pathFindingController.ClickedTile.X != -1) { pathFindingController.Reset(); } else if (Game1.player.canMove && pathFindingController.ClickedTile.X != -1 && pathFindingController.TargetNpc is null && pathFindingController.TargetFarmAnimal is null) { Vector2 vector = new Vector2( (pathFindingController.ClickedTile.X * Game1.tileSize) - Game1.viewport.X, (pathFindingController.ClickedTile.Y * Game1.tileSize) - Game1.viewport.Y); long ticks = DateTime.Now.Ticks; // Update frame every 125 ms. if (ticks - this.greenSquareLastUpdateTicks > 1250000) { this.greenSquareLastUpdateTicks = ticks; this.greenSquareAnimIndex++; if (this.greenSquareAnimIndex > 7) { this.greenSquareAnimIndex = 0; } } spriteBatch.Draw( PathFindingManager.targetTexture, vector + new Vector2(0f, -12f), new Rectangle(this.greenSquareAnimIndex * 16, 0, 16, 20), Color.White * Game1.mouseCursorTransparency, 0, Vector2.Zero, 4, SpriteEffects.None, 0.58f); }
// Use this for initialization void Start() { pathControl = GetComponent<PathFindingController>(); guilog = GetComponent<LogPanel>(); }