Example #1
0
        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) {}
            }
        }
Example #2
0
        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));
        }
Example #3
0
        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;
                }
            }
        }
Example #4
0
        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;
        }
Example #5
0
 public static Navmesh Create(Engine engine, ExplorationEngine explorator = null, bool verbose = false)
 {
     return(Current = new Navmesh(engine, explorator, verbose));
 }
Example #6
0
 public static Navmesh Create(MemoryContext engine, bool verbose = false)
 {
     return(Current = new Navmesh(engine, verbose));
 }
Example #7
0
 public static Navmesh Create(Engine engine, ExplorationEngine explorator = null, bool verbose = false)
 {
     return Current = new Navmesh(engine, explorator, verbose);
 }