Untitled
unknown
plain_text
a year ago
4.0 kB
11
Indexable
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);
}
}Editor is loading...
Leave a Comment