using System;
using System.Collections.Generic;
using UnityEngine;
// Filename : CMoveAgent.cs
// Creator : ported/simplified from C++ (AutoPFImp/AutoMoveImp/MoveAgent.*)
// Date : 2026/01/09
namespace AutoMove
{
///
/// Minimal MoveAgent: loads movemap and provides A* path on layer0 rmap.
/// 最小 MoveAgent:加载 movemap,并在第0层 rmap 上执行 A* 路径搜索。
///
public class CMoveAgent
{
// Debug switch (enable temporarily while validating routes).
// 调试开关(验证寻路时可临时开启)。
// NOTE: must not be const, otherwise Unity compiler warns about unreachable code.
// 注意:不要用 const,否则 Unity 编译会报“不可达代码”警告。
private static bool DEBUG_AUTOPF = false;
public abstract class BrushTest
{
// from.y/to.y store DH in original engine.
// 原版中 from.y/to.y 存储 DH(相对地形高度差)。
public abstract bool Collide(Vector3 from, Vector3 to);
}
private readonly CMoveMap m_pMoveMap = new CMoveMap();
private Vector3 m_vOriginOverride;
private Vector2Int m_ptStart;
private Vector2Int m_ptGoal;
private int m_iLayerStart;
private int m_iLayerGoal;
private readonly List m_path3D = new List(1024);
public bool Load(string basePathNoExt, Func resolver, Vector3? originOverride)
{
// basePathNoExt corresponds to "maps\\