protected override void OnRefresh(int interval) { base.OnRefresh(interval); Nav.D3.Navmesh navmesh_d3 = (m_Navmesh as Nav.D3.Navmesh); if (navmesh_d3.IsPlayerReady()) { try { var playerACDID = m_MemoryContext.DataSegment.ObjectManager.PlayerDataManager[m_MemoryContext.DataSegment.ObjectManager.Player.LocalPlayerIndex].ACDID; ACD player = playerACDID != -1 ? m_MemoryContext.DataSegment.ObjectManager.ACDManager.ActorCommonData[(short)playerACDID] : null; if (player == null) { return; } m_RenderCenter.X = player.Position.X; m_RenderCenter.Y = player.Position.Y; m_Navigator.CurrentPos = new Vec3(player.Position.X, player.Position.Y, player.Position.Z); } catch (Exception) {} } }
protected override void AddLegendEntries(ref List <LegendEntry> legend) { base.AddLegendEntries(ref legend); Nav.D3.Navmesh navmesh_d3 = (m_Navmesh as Nav.D3.Navmesh); legend.Add(new LegendEntry("A: Toggle auto clear navmesh", true, m_AutoClearOnLocationChange)); legend.Add(new LegendEntry("Ctrl+3: Toggle danger regions", true, navmesh_d3.DangerRegionsEnabled)); }
protected override void OnKey(KeyEventArgs e) { base.OnKey(e); Nav.D3.Navmesh navmesh_d3 = (m_Navmesh as Nav.D3.Navmesh); if (e.Control) { if (e.KeyCode == System.Windows.Forms.Keys.D3) { navmesh_d3.DangerRegionsEnabled = !navmesh_d3.DangerRegionsEnabled; e.Handled = true; } } else { if (e.KeyCode == System.Windows.Forms.Keys.A) { m_AutoClearOnLocationChange = !m_AutoClearOnLocationChange; e.Handled = true; } else if (e.KeyCode == System.Windows.Forms.Keys.H) { Vec3 result = null; m_Navmesh.RayTrace(new Vec3(m_RenderCenter.X, m_RenderCenter.Y, 1000), new Vec3(m_RenderCenter.X, m_RenderCenter.Y, -1000), MovementFlag.Walk, out result); if (result.IsEmpty) { result = new Vec3(m_RenderCenter.X, m_RenderCenter.Y, 0); } m_Explorer.HintPos = result; e.Handled = true; } } }
protected override void LoadDebugConfig() { base.LoadDebugConfig(); Nav.D3.Navmesh navmesh_d3 = (m_Navmesh as Nav.D3.Navmesh); if (navmesh_d3 == null) { return; } Ini.IniFile debug_ini = new Ini.IniFile("./debug.ini"); string[] allowed_areas_sno_id_str = debug_ini.IniReadValue("Navmesh", "allowed_areas_sno_id").Split(','); List <int> allowed_areas_sno_id = new List <int>(); foreach (string id in allowed_areas_sno_id_str) { if (id.Length > 0) { allowed_areas_sno_id.Add(int.Parse(id)); } } navmesh_d3.AllowedAreasSnoId = allowed_areas_sno_id; string[] allowed_grid_cells_id_str = debug_ini.IniReadValue("Navmesh", "allowed_grid_cells_id").Split(','); List <int> allowed_grid_cells_id = new List <int>(); foreach (string id in allowed_grid_cells_id_str) { if (id.Length > 0) { allowed_grid_cells_id.Add(int.Parse(id)); } } navmesh_d3.AllowedGridCellsId = allowed_grid_cells_id; }
public static Navmesh Create(Engine engine, ExplorationEngine explorator = null, bool verbose = false) { return(Current = new Navmesh(engine, explorator, verbose)); }
public static Navmesh Create(MemoryContext engine, bool verbose = false) { return(Current = new Navmesh(engine, verbose)); }
public static Navmesh Create(Engine engine, ExplorationEngine explorator = null, bool verbose = false) { return Current = new Navmesh(engine, explorator, verbose); }