Untitled
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