private void InitializeWorldGrid() { //0,0,0 is the center for (int k = (int)Mathf.Ceil((Math.Abs(zSize) / -2f)); k < (int)Mathf.Ceil((Math.Abs(zSize) / 2f)); k++) { for (int j = (int)Mathf.Ceil((Math.Abs(ySize) / -2f)); j < (int)Mathf.Ceil((Math.Abs(ySize) / 2f)); j++) { for (int i = (int)Mathf.Ceil((Math.Abs(xSize) / -2f)); i < (int)Mathf.Ceil((Math.Abs(xSize) / 2f)); i++) { GridBlock gridBlock = new GridBlock(i, j, k); if (isServer) { GameObject gameObject = (GameObject)Instantiate(blockPrefab, GridToWorldCoordinates(i, j - 1, k), Quaternion.identity); PlaceableObject plObject = gameObject.GetComponent <PlaceableObject>(); plObject.OccupyingSlot = PlaceableObject.Slot.Whole_Block; gridBlock.AddObject(gameObject); NetworkServer.Spawn(gameObject); } grid.Add(new Vector3(i, j, k), gridBlock); } } } }