diff --git a/House.py b/House.py index d9fdf8a..122ec00 100644 --- a/House.py +++ b/House.py @@ -260,7 +260,7 @@ class House: n = 3 else: - if width < depth: + if width > depth: n = width // 4 else: n = depth // 4 @@ -273,11 +273,11 @@ class House: if width < depth: if n > 1 : - for k in range(n-1): + for k in range(n): for i in range(-1, depth + 1): for y in range(-1, width // 2 + 1 - k): - self.editor.placeBlock((x + y + k, self.coordinates_max[1] + k , z + i), self.roof) - self.editor.placeBlock((x + width - y - 1 - k, self.coordinates_max[1] + k, z + i), self.roof) + self.editor.placeBlock((x + y + k + 2, self.coordinates_max[1] + k , z + i), self.roof) + self.editor.placeBlock((x + width - y - 1 - k - 2, self.coordinates_max[1] + k, z + i), self.roof) else: if width % 2 == 0: for i in range(-1, depth + 1): @@ -291,8 +291,8 @@ class House: for k in range(n ): for i in range(-1, width + 1): for y in range(-1, depth // 2 + 1 - k): - self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + y + k ), self.roof) - self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + depth - y -1- k),self.roof) + self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + y + k + 2 ), self.roof) + self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + depth - y -1- k - 2),self.roof) else: if depth % 2 == 0: for i in range(-1, width + 1): @@ -483,7 +483,6 @@ class House: h = 0 for i in range(-1, depth // 2): for j in range(-1, width + 1): - print( self.coordinates_max[1] + h) if i != -1: if h % 1 == 0: self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + i), @@ -520,10 +519,10 @@ class House: self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h - 0.5), z + depth - 1 - i), self.roof) - self.grid3d[j, round(height + h + 0.5), i] = True - self.grid3d[j, round(height + h + 0.5), depth - 1 - i] = True - self.grid3d[j, round(height + h - 0.5), i] = True - self.grid3d[j, round(height + h - 0.5), depth - 1 - i] = True + self.grid3d[x_plan3d+j, round(height + h + 0.5),z_plan3d+ i] = True + self.grid3d[x_plan3d+j, round(height + h + 0.5),z_plan3d+ depth - 1 - i] = True + self.grid3d[x_plan3d+j, round(height + h - 0.5),z_plan3d+ i] = True + self.grid3d[x_plan3d+j, round(height + h - 0.5), z_plan3d+depth - 1 - i] = True if j == -1: self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + i), @@ -536,10 +535,10 @@ class House: (x + j - 1, math.ceil(self.coordinates_max[1] + h-1), z + depth - 1 - i), Block(self.blocks["celling_slab"], {"type": "top"})) - self.grid3d[j, round(height + h), i] = True - self.grid3d[j, round(height + h), depth - 1 - i] = True - self.grid3d[j, round(height + h - 1), i] = True - self.grid3d[j, round(height + h - 1), depth - 1 - i] = True + self.grid3d[x_plan3d+j-1, round(height + h),z_plan3d+ i] = True + self.grid3d[x_plan3d+j-1, round(height + h), z_plan3d+depth - 1 - i] = True + self.grid3d[x_plan3d+j-1, round(height + h - 1),z_plan3d+ i] = True + self.grid3d[x_plan3d+j-1, round(height + h - 1), z_plan3d+depth - 1 - i] = True elif j == width: self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + i), Block(self.blocks["celling_slab"], {"type": "bottom"})) @@ -551,56 +550,56 @@ class House: (x + j + 1, math.ceil(self.coordinates_max[1] + h-1), z + depth - 1 - i), Block(self.blocks["celling_slab"], {"type": "top"})) - self.grid3d[j, round(height + h), i] = True - self.grid3d[j, round(height + h), depth - 1 - i] = True - self.grid3d[j, round(height + h - 1), i] = True - self.grid3d[j, round(height + h - 1), depth - 1 - i] = True + self.grid3d[x_plan3d+j+1, round(height + h),z_plan3d+ i] = True + self.grid3d[x_plan3d+j+1, round(height + h),z_plan3d+ depth - 1 - i] = True + self.grid3d[x_plan3d+j+1, round(height + h - 1), z_plan3d+i] = True + self.grid3d[x_plan3d+j+1, round(height + h - 1),z_plan3d+ depth - 1 - i] = True else: self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + i), Block(self.blocks["roof_slab"], {"type": "bottom"})) self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i), Block(self.blocks["roof_slab"], {"type": "bottom"})) - self.grid3d[j, round(height + h), i] = True - self.grid3d[j, round(height + h), depth - 1 - i] = True + self.grid3d[x_plan3d+j, round(height + h), z_plan3d+i] = True + self.grid3d[x_plan3d+j, round(height + h), z_plan3d+depth - 1 - i] = True if j == -1: self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + i), Block(self.blocks["celling_slab"], {"type": "bottom"})) self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i), Block(self.blocks["celling_slab"], {"type": "bottom"})) - if not self.grid3d[j, height + h - 1, i]: + if not self.grid3d[x_plan3d+j-1, height + h - 1, z_plan3d+i]: self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h-1) , z + i), Block(self.blocks["celling_slab"], {"type": "top"})) - self.grid3d[j, height + h - 1, i] = True - if not self.grid3d[j, height + h - 1, depth - 1 - i]: + self.grid3d[x_plan3d+j-1, height + h - 1, z_plan3d+i] = True + if not self.grid3d[x_plan3d+j-1, height + h - 1, z_plan3d+depth - 1 - i]: self.editor.placeBlock( (x + j - 1, math.ceil(self.coordinates_max[1] + h-1) , z + depth - 1 - i), Block(self.blocks["celling_slab"], {"type": "top"})) - self.grid3d[j, height + h - 1, depth - 1 - i] = True + self.grid3d[x_plan3d+j-1, height + h - 1, z_plan3d+depth - 1 - i] = True - self.grid3d[j, round(height + h), i] = True - self.grid3d[j, round(height + h), depth - 1 - i] = True + self.grid3d[x_plan3d+j-1, round(height + h), z_plan3d+i] = True + self.grid3d[x_plan3d+j-1, round(height + h),z_plan3d+ depth - 1 - i] = True elif j == width: self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + i), Block(self.blocks["celling_slab"], {"type": "bottom"})) self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i), Block(self.blocks["celling_slab"], {"type": "bottom"})) - if not self.grid3d[j, height + h - 1, i]: + if not self.grid3d[x_plan3d+j+1, height + h - 1,z_plan3d+ i]: self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h-1), z + i), Block(self.blocks["celling_slab"], {"type": "top"})) - self.grid3d[j, height + h - 1, i] = True - if not self.grid3d[j, height + h - 1, depth - 1 - i]: + self.grid3d[x_plan3d+j+1, height + h - 1, z_plan3d+i] = True + if not self.grid3d[x_plan3d+j+1, height + h - 1,z_plan3d+ depth - 1 - i]: self.editor.placeBlock( (x + j + 1, math.ceil(self.coordinates_max[1] + h-1), z + depth - 1 - i), Block(self.blocks["celling_slab"], {"type": "top"})) - self.grid3d[j, height + h - 1, depth - 1 - i] = True + self.grid3d[x_plan3d+j+1, height + h - 1,z_plan3d+ depth - 1 - i] = True - self.grid3d[j, round(height + h), i] = True - self.grid3d[j, round(height + h), depth - 1 - i] = True + self.grid3d[x_plan3d+j+1, round(height + h), z_plan3d+i] = True + self.grid3d[x_plan3d+j+1, round(height + h), z_plan3d+depth - 1 - i] = True - self.grid3d[j, round(height + h), i] = True - self.grid3d[j, round(height + h), depth - 1 - i] = True + self.grid3d[x_plan3d+j, round(height + h), z_plan3d+i] = True + self.grid3d[x_plan3d+j, round(height + h),z_plan3d+ depth - 1 - i] = True if i != -1: h += 0.5 @@ -618,7 +617,7 @@ class House: else: if j == -2 or j == depth + 1: self.editor.placeBlock((x + i, self.coordinates_max[1] - 1, z + j), QUARTZ_SLAB) - + def putCelling(self): for k in range(0, len(self.skeleton)): x, z, width, depth, height = self.skeleton[k] @@ -793,7 +792,7 @@ class House: def placeEntrance(self): wall = self.WallFacingDirection() - print(wall) + self.entranceWall = wall match self.direction: case "W": @@ -1072,8 +1071,7 @@ class House: self.editor.placeBlock((i, y_min, y), self.gardenOutline) self.editor.placeBlock((i, y_min + 1, y), self.gardenOutline) self.editor.placeBlock((i, y_min + 2, y), self.gardenOutline) - else: - print(i, y) + case _: self.editor.placeBlock((i, y_min - 1, y), self.garden_floor) @@ -1121,8 +1119,8 @@ if __name__ == "__main__": house.build() - new_coordinates_min = (coordinates_max[0] + 10, coordinates_min[1], coordinates_min[2]) - new_coordinates_max = (coordinates_max[0] + 10 + 24, coordinates_max[1], coordinates_max[2]) + new_coordinates_min = (coordinates_max[0] + 20, coordinates_min[1], coordinates_min[2]) + new_coordinates_max = (coordinates_max[0] + 10 + 40, coordinates_max[1], coordinates_max[2]) coordinates_min = new_coordinates_min coordinates_max = new_coordinates_max diff --git a/world_maker/data/heightmap.png b/world_maker/data/heightmap.png index 7cb99c5..6ad91b7 100644 Binary files a/world_maker/data/heightmap.png and b/world_maker/data/heightmap.png differ diff --git a/world_maker/data/highwaymap.png b/world_maker/data/highwaymap.png index 82d7a29..d096227 100644 Binary files a/world_maker/data/highwaymap.png and b/world_maker/data/highwaymap.png differ diff --git a/world_maker/data/smooth_sobel_watermap.png b/world_maker/data/smooth_sobel_watermap.png index 0043cf4..11fcd3e 100644 Binary files a/world_maker/data/smooth_sobel_watermap.png and b/world_maker/data/smooth_sobel_watermap.png differ diff --git a/world_maker/data/sobelmap.png b/world_maker/data/sobelmap.png index ec0328d..61223a5 100644 Binary files a/world_maker/data/sobelmap.png and b/world_maker/data/sobelmap.png differ diff --git a/world_maker/data/treemap.png b/world_maker/data/treemap.png index 79761f8..e67b092 100644 Binary files a/world_maker/data/treemap.png and b/world_maker/data/treemap.png differ diff --git a/world_maker/data/watermap.png b/world_maker/data/watermap.png index b66ed1c..61223a5 100644 Binary files a/world_maker/data/watermap.png and b/world_maker/data/watermap.png differ