Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
4.0 kB
1
Indexable
Never
private Vector2Int CalculateReturnVec2(int offSetX, int offSetY, int MultiX, int MultiY)
    {
        double x = offSetX + _roomWidth - 1 - _roomWidth / 2.0 + MultiX;
        double y = offSetY + _roomHeight - 1 - _roomHeight / 2.0 + MultiY;
        int roundedX = (int)System.Math.Ceiling(x);
        int roundedY = (int)System.Math.Ceiling(y);

        return new Vector2Int(roundedX, roundedY);
    }

    private Vector3Int CalculateReturnVec3(int offSetX, int offSetY, int MultiX, int MultiY)
    {
        double x = offSetX + _roomWidth - 1 - _roomWidth / 2.0 + MultiX;
        double y = offSetY + _roomHeight - 1 - _roomHeight / 2.0 + MultiY;
        int roundedX = (int)System.Math.Ceiling(x);
        int roundedY = (int)System.Math.Ceiling(y);

        return new Vector3Int(roundedX, roundedY, (int)-0.5);
    }


    private void CreateCoridors(int offSetX, int offSetY, BiomeRegion region)
    {
        if (GetWallAtPosition(CalculateReturnVec2(offSetX, offSetY, 6, 1)))
        { //LEFT
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,4,0));
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,6,0)); //Removes 4 (the tiles wall) and 6 (the tile nex to yours)

            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,5,1),region);
            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,5,-1),region);

            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,4,0),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,5,0),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,6,0),GetWallAtPosition(CalculateReturnVec2(offSetX,offSetY,6,1)).biomeRegion);
        }
        if (GetWallAtPosition(CalculateReturnVec2(offSetX, offSetY, -6, 1)))
        { //RIGHT
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,-4,0));
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,-6,0));

            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,-5,1),region);
            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,-5,-1),region);

            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,-4,0),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,-5,0),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,-6,0),GetWallAtPosition(CalculateReturnVec2(offSetX,offSetY,-6,1)).biomeRegion);
        }
        if (GetWallAtPosition(CalculateReturnVec2(offSetX, offSetY, 1, 6)))
        { //UP
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,0,4));
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,0,6));

            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,1,5),region);
            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,-1,5),region);

            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,0,4),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,0,5),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,0,6),GetWallAtPosition(CalculateReturnVec2(offSetX,offSetY,1,6)).biomeRegion);
        }
        if (GetWallAtPosition(CalculateReturnVec2(offSetX, offSetY, 1, -6)))
        { //DOWN
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,0,-4));
            RemoveWallIfExists(CalculateReturnVec3(offSetX,offSetY,0,-6));  

            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,1,-5),region);
            PlaceWallAtPosition(CalculateReturnVec2(offSetX,offSetY,-1,-5),region);

            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,0,-4),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,0,-5),region);
            PlaceTileAtPosition(CalculateReturnVec2(offSetX,offSetY,0,-6),GetWallAtPosition(CalculateReturnVec2(offSetX,offSetY,1,-6)).biomeRegion);
        }
    }
Leave a Comment