public void Init() { gridArraySize = Mathf.CeilToInt(ConVar.Server.worldsize / (float)GRID_SIZE); _plugin.Puts($"Created grid of {gridArraySize} by {gridArraySize}"); itemGrid = new ItemChunk[gridArraySize, gridArraySize]; _drawTimer?.Destroy(); _drawTimer = _plugin.timer.Every(drawDelay, DrawChunks); }
public ItemChunk GetGrid(Vector3 position, bool createIfEmpty = true) { if (itemGrid == null) { return(null); } int x = Mathf.Clamp(((int)position.x + halfSize) / GRID_SIZE, 0, gridArraySize - 1); int y = Mathf.Clamp(((int)position.z + halfSize) / GRID_SIZE, 0, gridArraySize - 1); //_plugin.Puts($"({x},{y})"); ItemChunk grid = itemGrid[x, y]; if (grid == null) { if (!createIfEmpty) { return(null); } grid = new ItemChunk(x, y); itemGrid[x, y] = grid; } return(grid); }