core/player/PlayerIsoMovement.cs
public class PlayerIsoMovement : NpcMovement {
	[Property] public BasePlayer Owner {get; set;}
	[Property] public Vector3 Hovered {get; set;}
	[Property, ReadOnly] public IsoWaypoint Waypoint {get; set;}

	protected override void OnAwake() {
		Waypoint = Scene.CreateObject().Components.Create<IsoWaypoint>();
		Waypoint.GameObject.SetParent(Owner.GameObject);
		base.OnAwake();
	}

	protected override void OnUpdate() {}
	public void Update() {
		Hovered = Grid.Snap(Owner.IsoCamera.MouseTarget());
		Waypoint.WorldPosition = Hovered;
		if (Input.Pressed("attack1") && Owner.Mouse.TargetLayer != PlayerMouse.Layer.Interface && Owner.Mouse.InteractMode == PlayerMouse.Mode.Move && !Input.Down("drag_camera")) {
			Goal = Hovered;
			Go();
		}
		base.OnUpdate();
	}
}