public new EnvCell GetVisible(uint cellID) { EnvCell envCell = null; VisibleCells.TryGetValue(cellID, out envCell); return(envCell); }
/// <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()); }
public static new EnvCell GetVisible(int cellID) { EnvCell envCell = null; VisibleCellTable.TryGetValue(cellID, out envCell); return(envCell); }
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()); }
public static ObjCell GetVisible(int cellID) { if (cellID == 0) { return(null); } if ((cellID & 0xFFFF) >= 0x100) { return(EnvCell.GetVisible(cellID)); } else { return(LandCell.Get(cellID)); } }
/// <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()); }
/// <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()); }
public void release_visible_cells() { EnvCell.release_visible(StabList); }
public void grab_visible_cells() { EnvCell.grab_visible(StabList); }