コード例 #1
0
ファイル: EnvCell.cs プロジェクト: Cloudxtreme/ACE-1
        public new EnvCell GetVisible(uint cellID)
        {
            EnvCell envCell = null;

            VisibleCells.TryGetValue(cellID, out envCell);
            return(envCell);
        }
コード例 #2
0
        /// <summary>
        /// Returns a list of objects that are currently visible from a dungeon cell
        /// </summary>
        private List <PhysicsObj> GetVisibleObjects(EnvCell cell, VisibleObjectType type)
        {
            var visibleObjs = new List <PhysicsObj>();

            // add objects from current cell
            cell.AddObjectListTo(visibleObjs);

            // add objects from visible cells
            foreach (var envCell in cell.VisibleCells.Values)
            {
                if (envCell != null)
                {
                    envCell.AddObjectListTo(visibleObjs);
                }
            }

            // if SeenOutside, add objects from outdoor landblock
            if (cell.SeenOutside)
            {
                var outsideObjs = PhysicsObj.CurLandblock.GetServerObjects(true).Where(i => !(i.CurCell is EnvCell indoors) || indoors.SeenOutside);

                visibleObjs.AddRange(outsideObjs);
            }

            return(ApplyFilter(visibleObjs, type).Where(i => !i.DatObject && i.ID != PhysicsObj.ID).Distinct().ToList());
        }
コード例 #3
0
        public static new EnvCell GetVisible(int cellID)
        {
            EnvCell envCell = null;

            VisibleCellTable.TryGetValue(cellID, out envCell);
            return(envCell);
        }
コード例 #4
0
        public List <PhysicsObj> GetVisibleObjects(EnvCell cell)
        {
            var visibleObjs = new List <PhysicsObj>();

            foreach (var envCell in cell.VisibleCells.Values)
            {
                if (envCell == null)
                {
                    continue;
                }
                visibleObjs.AddRange(envCell.ObjectList);
            }

            return(visibleObjs.Distinct().ToList());
        }
コード例 #5
0
ファイル: ObjCell.cs プロジェクト: roidzilla/ACE
        public static ObjCell GetVisible(int cellID)
        {
            if (cellID == 0)
            {
                return(null);
            }

            if ((cellID & 0xFFFF) >= 0x100)
            {
                return(EnvCell.GetVisible(cellID));
            }
            else
            {
                return(LandCell.Get(cellID));
            }
        }
コード例 #6
0
        /// <summary>
        /// Returns a list of objects that are currently visible from a dungeon cell
        /// </summary>
        private List <PhysicsObj> GetVisibleObjects(EnvCell cell, VisibleObjectType type)
        {
            var visibleObjs = new List <PhysicsObj>();

            // add objects from current cell
            cell.AddObjectListTo(visibleObjs);

            // add objects from visible cells
            foreach (var envCell in cell.VisibleCells.Values)
            {
                if (envCell != null)
                {
                    envCell.AddObjectListTo(visibleObjs);
                }
            }

            return(ApplyFilter(visibleObjs, type).Where(i => !i.DatObject && i.ID != PhysicsObj.ID).Distinct().ToList());
        }
コード例 #7
0
        /// <summary>
        /// Returns a list of objects that are currently visible from a dungeon cell
        /// </summary>
        public List <PhysicsObj> GetVisibleObjects(EnvCell cell)
        {
            var visibleObjs = new List <PhysicsObj>();

            // add objects from current cell
            visibleObjs.AddRange(cell.ObjectList);

            // add objects from visible cells
            foreach (var envCell in cell.VisibleCells.Values)
            {
                if (envCell == null)
                {
                    continue;
                }

                visibleObjs.AddRange(envCell.ObjectList);
            }

            return(visibleObjs.Where(i => !i.DatObject && i.ID != PhysicsObj.ID).Distinct().ToList());
        }
コード例 #8
0
ファイル: Landblock.cs プロジェクト: PyrealMote/ACE
 public void release_visible_cells()
 {
     EnvCell.release_visible(StabList);
 }
コード例 #9
0
ファイル: Landblock.cs プロジェクト: PyrealMote/ACE
 public void grab_visible_cells()
 {
     EnvCell.grab_visible(StabList);
 }