コード例 #1
0
ファイル: WorldCell.cs プロジェクト: dav793/2D-SurvivalRPG
    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 ();
    }
コード例 #2
0
ファイル: Renderer2D.cs プロジェクト: dav793/2D-SurvivalRPG
    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.");

        }
    }
コード例 #3
0
ファイル: Renderer2D.cs プロジェクト: dav793/2D-SurvivalRPG
    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);

        }
    }
コード例 #4
0
    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]);
        }
    }
コード例 #5
0
 public virtual void unrenderSectorLevel(WorldSectorLevel sectorLevel)
 {
 }
コード例 #6
0
ファイル: World.cs プロジェクト: dav793/2D-SurvivalRPG
 public static WorldSector GetSectorFromSectorLevel(WorldSectorLevel level)
 {
     return World.GetSector (level.x, level.z);
 }
コード例 #7
0
    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]);
        }
    }
コード例 #8
0
    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) {

            }
        }*/
    }
コード例 #9
0
 static void GenerateUndergroundTerrain(WorldSectorLevel level)
 {
     GenerateUndergroundTerrainBase (level);
     GenerateUndergroundTerrainBorders (level);
 }
コード例 #10
0
 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]);
         }
     }
 }
コード例 #11
0
 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);
     }
 }
コード例 #12
0
ファイル: Renderer2D.cs プロジェクト: dav793/2D-SurvivalRPG
    // 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
        );
    }