public CellMgr(RegionMgr mgr, ushort offX, ushort offY) { Region = mgr; X = offX; Y = offY; Spawns = mgr.GetCellSpawn(offX, offY); }
public CellSpawns GetCellSpawn(ushort x, ushort y) { x = (ushort)Math.Min(MaxCellID - 1, x); y = (ushort)Math.Min(MaxCellID - 1, y); return(_cellSpawns[x, y] ?? (_cellSpawns[x, y] = new CellSpawns(RegionId, x, y))); }
public static CellSpawns GetRegionCell(ushort RegionId, ushort X, ushort Y) { X = (ushort)Math.Min(RegionMgr.MaxCellID - 1, X); Y = (ushort)Math.Min(RegionMgr.MaxCellID - 1, Y); if (!_RegionCells.ContainsKey(RegionId)) { _RegionCells.Add(RegionId, new CellSpawns[RegionMgr.MaxCellID, RegionMgr.MaxCellID]); } if (_RegionCells[RegionId][X, Y] == null) { CellSpawns Sp = new CellSpawns(RegionId, X, Y); _RegionCells[RegionId][X, Y] = Sp; } return(_RegionCells[RegionId][X, Y]); }