public WorldCell(int cell_x, int cell_y, int cell_z, WorldSectorLevel parent) { x = cell_x; y = cell_y; z = cell_z; this.parent = parent; renderData = new WorldCellRenderData (); }
public override void unrenderSectorLevel(WorldSectorLevel sectorLevel) { if (!sectorLevel.isRendered) { Debug.LogWarning ("Sector level is not rendered!"); } else { WorldCell[,] cells = sectorLevel.getAllCells (); for (int x = 0; x < GameSettings.LoadedConfig.SectorLength_Cells; ++x) { for (int z = 0; z < GameSettings.LoadedConfig.SectorLength_Cells; ++z) { unrenderCell (cells[x, z]); } } sectorLevel.isRendered = false; Debug.Log (sectorLevel.indexToString()+" was unrendered."); } }
public override void renderSectorLevel(WorldSectorLevel sectorLevel) { if (sectorLevel.isRendered) { Debug.LogWarning ("Sector level is already rendered!"); } else { WorldCell[,] cells = sectorLevel.getAllCells (); for (int x = 0; x < GameSettings.LoadedConfig.SectorLength_Cells; ++x) { for (int z = 0; z < GameSettings.LoadedConfig.SectorLength_Cells; ++z) { renderCell (cells[x, z]); } } sectorLevel.isRendered = true; Debug.Log (sectorLevel.indexToString()+" was rendered."); //debug lines debug_delimitSectorLevel (sectorLevel); } }
void serializeLevelData(SerializableLevel copyTo, WorldSectorLevel copyFrom) { // save index copyTo.y = copyFrom.y; // save level cells WorldCell[,] cells = copyFrom.getAllCells(); for (int i = 0; i < GameSettings.LoadedConfig.SectorLength_Cells*GameSettings.LoadedConfig.SectorLength_Cells; ++i) { copyTo.cells.Add(new SerializableCell()); int cx = i%GameSettings.LoadedConfig.SectorLength_Cells; int cz = Mathf.FloorToInt(i/GameSettings.LoadedConfig.SectorLength_Cells); serializeCellData(copyTo.cells[i], cells[cx, cz]); } }
public virtual void unrenderSectorLevel(WorldSectorLevel sectorLevel) { }
public static WorldSector GetSectorFromSectorLevel(WorldSectorLevel level) { return World.GetSector (level.x, level.z); }
static void updateBordersOnSurroundingSectors(WorldSectorLevel level) { WorldSector sector; sector = level.getParent ().getNeighborSector (NeighborDirections.N); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.S); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } sector = level.getParent ().getNeighborSector (NeighborDirections.NE); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.SW); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } sector = level.getParent ().getNeighborSector (NeighborDirections.E); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.W); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } sector = level.getParent ().getNeighborSector (NeighborDirections.SE); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.NW); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } sector = level.getParent ().getNeighborSector (NeighborDirections.S); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.N); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } sector = level.getParent ().getNeighborSector (NeighborDirections.SW); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.NE); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } sector = level.getParent ().getNeighborSector (NeighborDirections.W); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.E); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } sector = level.getParent ().getNeighborSector (NeighborDirections.NW); if (sector != null) { List<WorldCell> border = sector.levels.getLevel(level.y).getBorderCells(NeighborDirections.SE); for(int i = 0; i < border.Count; ++i) GenerateTerrainCellBorders(border[i]); } }
static void GenerateUndergroundTerrainBorders(WorldSectorLevel level) { /*WorldCell[,] cells = level.getAllCells(); for(int x_ind = 0; x_ind < GameSettings.LoadedConfig.SectorLength_Cells; ++x_ind) { for(int z_ind = 0; z_ind < GameSettings.LoadedConfig.SectorLength_Cells; ++z_ind) { } }*/ }
static void GenerateUndergroundTerrain(WorldSectorLevel level) { GenerateUndergroundTerrainBase (level); GenerateUndergroundTerrainBorders (level); }
static void GenerateTerrainBorders(WorldSectorLevel level) { WorldCell[,] cells = level.getAllCells(); for(int x_ind = 0; x_ind < GameSettings.LoadedConfig.SectorLength_Cells; ++x_ind) { for(int z_ind = 0; z_ind < GameSettings.LoadedConfig.SectorLength_Cells; ++z_ind) { GenerateTerrainCellBorders (cells[x_ind, z_ind]); } } }
static void GenerateSectorLevel(WorldSectorLevel level) { if (level.y == 0) { // is default (ground) level GenerateTerrain (level); } else if (level.y < 0) { // is underground level GenerateUndergroundTerrain (level); } }
// Debug functions void debug_delimitSectorLevel(WorldSectorLevel sectorLevel) { WorldCell[,] cells = sectorLevel.getAllCells (); int cell_width = GameSettings.LoadedConfig.CellLength_Pixels; Debug.DrawLine( new Vector3(cells[0,0].x*cell_width-cell_width/2, sectorLevel.y, cells[0,0].z*cell_width-cell_width/2), new Vector3(cells[0,0].x*cell_width-cell_width/2, sectorLevel.y, cells[9,9].z*cell_width+cell_width/2), Color.red, 10000f, false ); Debug.DrawLine( new Vector3(cells[0,0].x*cell_width-cell_width/2, sectorLevel.y, cells[9,9].z*cell_width+cell_width/2), new Vector3(cells[9,9].x*cell_width+cell_width/2, sectorLevel.y, cells[9,9].z*cell_width+cell_width/2), Color.red, 10000f, false ); Debug.DrawLine( new Vector3(cells[9,9].x*cell_width+cell_width/2, sectorLevel.y, cells[9,9].z*cell_width+cell_width/2), new Vector3(cells[9,9].x*cell_width+cell_width/2, sectorLevel.y, cells[0,0].z*cell_width-cell_width/2), Color.red, 10000f, false ); Debug.DrawLine( new Vector3(cells[9,9].x*cell_width+cell_width/2, sectorLevel.y, cells[0,0].z*cell_width-cell_width/2), new Vector3(cells[0,0].x*cell_width-cell_width/2, sectorLevel.y, cells[0,0].z*cell_width-cell_width/2), Color.red, 10000f, false ); }