Merge remote-tracking branch 'origin/main' into road and fix delete function
235
House.py
@@ -89,7 +89,7 @@ class House:
|
|||||||
for _ in range(3):
|
for _ in range(3):
|
||||||
print("Rectangle n°", _ + 1, "en cours de création")
|
print("Rectangle n°", _ + 1, "en cours de création")
|
||||||
|
|
||||||
for a in range(100000):
|
for a in range(10000):
|
||||||
if depth > 7:
|
if depth > 7:
|
||||||
new_depth = np.random.randint(5, depth - 2)
|
new_depth = np.random.randint(5, depth - 2)
|
||||||
elif depth == 7:
|
elif depth == 7:
|
||||||
@@ -146,7 +146,7 @@ class House:
|
|||||||
self.skeleton.append((new_x, new_z, new_width, new_depth, height))
|
self.skeleton.append((new_x, new_z, new_width, new_depth, height))
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
print("Failed to place rectangle after 1000 attempts.")
|
print("Failed to place rectangle after 100000 attempts.")
|
||||||
|
|
||||||
def delete(self):
|
def delete(self):
|
||||||
for x in range(self.coordinates_min[0], self.coordinates_max[0]):
|
for x in range(self.coordinates_min[0], self.coordinates_max[0]):
|
||||||
@@ -260,7 +260,7 @@ class House:
|
|||||||
n = 3
|
n = 3
|
||||||
else:
|
else:
|
||||||
|
|
||||||
if width < depth:
|
if width > depth:
|
||||||
n = width // 4
|
n = width // 4
|
||||||
else:
|
else:
|
||||||
n = depth // 4
|
n = depth // 4
|
||||||
@@ -269,37 +269,39 @@ class House:
|
|||||||
z_plan3d = z - self.coordinates_min[2]
|
z_plan3d = z - self.coordinates_min[2]
|
||||||
|
|
||||||
print(width, depth, n)
|
print(width, depth, n)
|
||||||
|
|
||||||
if width < depth:
|
if width < depth:
|
||||||
|
|
||||||
if n > 1:
|
if n > 1 :
|
||||||
for k in range(n - 1):
|
for k in range(n):
|
||||||
for i in range(-1, depth + 1):
|
for i in range(-1, depth + 1):
|
||||||
for y in range(-1, width // 2 + 1):
|
for y in range(-1, width // 2 + 1 - k):
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + y + k + 3), self.roof)
|
self.editor.placeBlock((x + y + k + 2, self.coordinates_max[1] + k , z + i), self.roof)
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + depth - y - 4 - k),
|
self.editor.placeBlock((x + width - y - 1 - k - 2, self.coordinates_max[1] + k, z + i), self.roof)
|
||||||
self.roof)
|
else:
|
||||||
if width % 2 == 0:
|
if width % 2 == 0:
|
||||||
for i in range(-1, depth + 1):
|
for i in range(-1, depth + 1):
|
||||||
self.editor.placeBlock((x + width // 2 + 1, self.coordinates_max[1] + n - 1, z + i),
|
for y in range(2):
|
||||||
self.roof)
|
self.editor.placeBlock((x+ width//2 -1 + y, self.coordinates_max[1] + n -1, z + i), self.roof)
|
||||||
for i in range(-1, depth + 1):
|
else:
|
||||||
self.editor.placeBlock((x + width // 2, self.coordinates_max[1] + n - 1, z + i), self.roof)
|
for i in range(-1, depth + 1):
|
||||||
|
self.editor.placeBlock((x + width // 2, self.coordinates_max[1] + n - 1, z + i), self.roof)
|
||||||
else:
|
else:
|
||||||
if n > 1:
|
if n > 1:
|
||||||
for k in range(n - 1):
|
for k in range(n ):
|
||||||
for i in range(-1, width + 1):
|
for i in range(-1, width + 1):
|
||||||
for y in range(-1, depth // 2 + 1):
|
for y in range(-1, depth // 2 + 1 - k):
|
||||||
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 + y + k + 2 ), self.roof)
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + depth - y - 3 - k),
|
self.editor.placeBlock((x + i, self.coordinates_max[1] + k, z + depth - y -1- k - 2),self.roof)
|
||||||
self.roof)
|
else:
|
||||||
if depth % 2 == 0:
|
if depth % 2 == 0:
|
||||||
for i in range(-1, width + 1):
|
for i in range(-1, width + 1):
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + n - 1, z + depth // 2 + 1), self.roof)
|
for y in range(2):
|
||||||
for i in range(-1, width + 1):
|
self.editor.placeBlock((x + i, self.coordinates_max[1] + n - 1, z + depth // 2 -1 +y ), self.roof)
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + n - 1, z + depth // 2), self.roof)
|
else:
|
||||||
|
for i in range(-1, width + 1):
|
||||||
|
self.editor.placeBlock((x + i, self.coordinates_max[1] + n - 1, z + depth // 2), self.roof)
|
||||||
|
|
||||||
print('-----------------------------------')
|
print('-----------------------------------')
|
||||||
|
|
||||||
for i in range(-1, width + 1):
|
for i in range(-1, width + 1):
|
||||||
@@ -363,35 +365,35 @@ class House:
|
|||||||
for j in range(-1, depth + 1):
|
for j in range(-1, depth + 1):
|
||||||
if i != -1:
|
if i != -1:
|
||||||
if h % 1 == 0:
|
if h % 1 == 0:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j),
|
||||||
Block(self.blocks["roof_slab"], {"type": "top"}))
|
Block(self.blocks["roof_slab"], {"type": "top"}))
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j),
|
self.editor.placeBlock((x + width - 1 - i,math.ceil(self.coordinates_max[1] + h), z + j),
|
||||||
Block(self.blocks["roof_slab"], {"type": "top"}))
|
Block(self.blocks["roof_slab"], {"type": "top"}))
|
||||||
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j] = True
|
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j] = True
|
||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j] = True
|
||||||
|
|
||||||
if j == -1:
|
if j == -1:
|
||||||
|
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j - 1),
|
self.editor.placeBlock((x + i,math.ceil(self.coordinates_max[1] + h), z + j - 1),
|
||||||
self.celling)
|
self.celling)
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j - 1),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j - 1),
|
||||||
self.celling)
|
self.celling)
|
||||||
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j - 1] = True
|
||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j - 1] = True
|
||||||
elif j == depth:
|
elif j == depth:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j + 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j + 1),
|
||||||
self.celling)
|
self.celling)
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j + 1),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j + 1),
|
||||||
self.celling)
|
self.celling)
|
||||||
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j + 1] = True
|
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j + 1] = True
|
||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j + 1] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j + 1] = True
|
||||||
else:
|
else:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h - 0.5, z + j), self.roof)
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h-0.5), z + j), self.roof)
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h - 0.5, z + j),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h-0.5), z + j),
|
||||||
self.roof)
|
self.roof)
|
||||||
|
|
||||||
self.grid3d[x_plan3d + i, round(height + h + 0.5), z_plan3d + j] = True
|
self.grid3d[x_plan3d + i, round(height + h + 0.5), z_plan3d + j] = True
|
||||||
@@ -400,14 +402,14 @@ class House:
|
|||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h - 0.5), z_plan3d + j] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h - 0.5), z_plan3d + j] = True
|
||||||
|
|
||||||
if j == -1:
|
if j == -1:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j - 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j - 1),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h - 1, z + j - 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h-1), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + width - 1 - i, self.coordinates_max[1] + h - 1, z + j - 1),
|
(x + width - 1 - i, math.ceil(self.coordinates_max[1] + h-1), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
|
|
||||||
self.grid3d[x_plan3d + i, round(height + h - 1), z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + i, round(height + h - 1), z_plan3d + j - 1] = True
|
||||||
@@ -416,14 +418,14 @@ class House:
|
|||||||
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j - 1] = True
|
||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j - 1] = True
|
||||||
elif j == depth:
|
elif j == depth:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j + 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j + 1),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h - 1, z + j + 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h-1), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + width - 1 - i, self.coordinates_max[1] + h - 1, z + j + 1),
|
(x + width - 1 - i, math.ceil(self.coordinates_max[1] + h-1), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
|
|
||||||
self.grid3d[x_plan3d + i, round(height + h - 1), z_plan3d + j + 1] = True
|
self.grid3d[x_plan3d + i, round(height + h - 1), z_plan3d + j + 1] = True
|
||||||
@@ -432,43 +434,43 @@ class House:
|
|||||||
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j + 1] = True
|
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j + 1] = True
|
||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j + 1] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j + 1] = True
|
||||||
else:
|
else:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
|
|
||||||
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j] = True
|
self.grid3d[x_plan3d + i, round(height + h), z_plan3d + j] = True
|
||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h), z_plan3d + j] = True
|
||||||
|
|
||||||
if j == -1:
|
if j == -1:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j - 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j - 1),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
if not self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j - 1]:
|
if not self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j - 1]:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h - 1, z + j - 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h-1), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j - 1] = True
|
||||||
if not self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j - 1]:
|
if not self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j - 1]:
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + width - 1 - i, self.coordinates_max[1] + h - 1, z + j - 1),
|
(x + width - 1 - i, math.ceil(self.coordinates_max[1] + h-1), z + j - 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j - 1] = True
|
||||||
|
|
||||||
self.grid3d[x_plan3d + i, round(height + h - 1), z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + i, round(height + h - 1), z_plan3d + j - 1] = True
|
||||||
self.grid3d[x_plan3d + width - 1 - i, round(height + h - 1), z_plan3d + j - 1] = True
|
self.grid3d[x_plan3d + width - 1 - i, round(height + h - 1), z_plan3d + j - 1] = True
|
||||||
elif j == depth:
|
elif j == depth:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h, z + j + 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + width - 1 - i, self.coordinates_max[1] + h, z + j + 1),
|
self.editor.placeBlock((x + width - 1 - i, math.ceil(self.coordinates_max[1] + h), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
if not self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j + 1]:
|
if not self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j + 1]:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] + h - 1, z + j + 1),
|
self.editor.placeBlock((x + i, math.ceil(self.coordinates_max[1] + h-1), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j + 1] = True
|
self.grid3d[x_plan3d + i, height + h - 1, z_plan3d + j + 1] = True
|
||||||
if not self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j + 1]:
|
if not self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j + 1]:
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + width - 1 - i, self.coordinates_max[1] + h - 1, z + j + 1),
|
(x + width - 1 - i, math.ceil(self.coordinates_max[1] + h-1), z + j + 1),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j + 1] = True
|
self.grid3d[x_plan3d + width - 1 - i, height + h - 1, z_plan3d + j + 1] = True
|
||||||
|
|
||||||
@@ -483,125 +485,125 @@ class House:
|
|||||||
for j in range(-1, width + 1):
|
for j in range(-1, width + 1):
|
||||||
if i != -1:
|
if i != -1:
|
||||||
if h % 1 == 0:
|
if h % 1 == 0:
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
Block(self.blocks["roof_slab"], {"type": "top"}))
|
Block(self.blocks["roof_slab"], {"type": "top"}))
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
Block(self.blocks["roof_slab"], {"type": "top"}))
|
Block(self.blocks["roof_slab"], {"type": "top"}))
|
||||||
|
|
||||||
self.grid3d[x_plan3d + j, round(height + h), z_plan3d + 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
|
self.grid3d[x_plan3d + j, round(height + h), z_plan3d + depth - 1 - i] = True
|
||||||
|
|
||||||
if j == -1:
|
if j == -1:
|
||||||
self.editor.placeBlock((x + j - 1, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
self.celling)
|
self.celling)
|
||||||
self.editor.placeBlock((x + j - 1, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
self.celling)
|
self.celling)
|
||||||
|
|
||||||
self.grid3d[x_plan3d + j - 1, round(height + h), z_plan3d + 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), z_plan3d + depth - 1 - i] = True
|
||||||
elif j == width:
|
elif j == width:
|
||||||
self.editor.placeBlock((x + j + 1, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
self.celling)
|
self.celling)
|
||||||
self.editor.placeBlock((x + j + 1, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
self.celling)
|
self.celling)
|
||||||
|
|
||||||
self.grid3d[x_plan3d + j + 1, round(height + h), z_plan3d + 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), z_plan3d + depth - 1 - i] = True
|
||||||
|
|
||||||
else:
|
else:
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h - 0.5, z + i), self.roof)
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h - 0.5), z + i), self.roof)
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h - 0.5, z + depth - 1 - i),
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h - 0.5), z + depth - 1 - i),
|
||||||
self.roof)
|
self.roof)
|
||||||
|
|
||||||
self.grid3d[j, round(height + h + 0.5), i] = True
|
self.grid3d[x_plan3d+j, round(height + h + 0.5),z_plan3d+ 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+ depth - 1 - i] = True
|
||||||
self.grid3d[j, round(height + h - 0.5), i] = True
|
self.grid3d[x_plan3d+j, round(height + h - 0.5),z_plan3d+ 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+depth - 1 - i] = True
|
||||||
|
|
||||||
if j == -1:
|
if j == -1:
|
||||||
self.editor.placeBlock((x + j - 1, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j - 1, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j - 1, self.coordinates_max[1] + h - 1, z + i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h - 1), z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + j - 1, self.coordinates_max[1] + h - 1, z + depth - 1 - i),
|
(x + j - 1, math.ceil(self.coordinates_max[1] + h-1), z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
|
|
||||||
self.grid3d[j, round(height + h), i] = True
|
self.grid3d[x_plan3d+j-1, round(height + h),z_plan3d+ i] = True
|
||||||
self.grid3d[j, round(height + h), depth - 1 - i] = True
|
self.grid3d[x_plan3d+j-1, round(height + h), z_plan3d+depth - 1 - i] = True
|
||||||
self.grid3d[j, round(height + h - 1), i] = True
|
self.grid3d[x_plan3d+j-1, round(height + h - 1),z_plan3d+ i] = True
|
||||||
self.grid3d[j, round(height + h - 1), depth - 1 - i] = True
|
self.grid3d[x_plan3d+j-1, round(height + h - 1), z_plan3d+depth - 1 - i] = True
|
||||||
elif j == width:
|
elif j == width:
|
||||||
self.editor.placeBlock((x + j + 1, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j + 1, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j + 1, self.coordinates_max[1] + h - 1, z + i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h-1), z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + j + 1, self.coordinates_max[1] + h - 1, z + depth - 1 - i),
|
(x + j + 1, math.ceil(self.coordinates_max[1] + h-1), z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
|
|
||||||
self.grid3d[j, round(height + h), i] = True
|
self.grid3d[x_plan3d+j+1, round(height + h),z_plan3d+ i] = True
|
||||||
self.grid3d[j, round(height + h), depth - 1 - i] = True
|
self.grid3d[x_plan3d+j+1, round(height + h),z_plan3d+ depth - 1 - i] = True
|
||||||
self.grid3d[j, round(height + h - 1), i] = True
|
self.grid3d[x_plan3d+j+1, round(height + h - 1), z_plan3d+i] = True
|
||||||
self.grid3d[j, round(height + h - 1), depth - 1 - i] = True
|
self.grid3d[x_plan3d+j+1, round(height + h - 1),z_plan3d+ depth - 1 - i] = True
|
||||||
else:
|
else:
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
Block(self.blocks["roof_slab"], {"type": "bottom"}))
|
||||||
|
|
||||||
self.grid3d[j, round(height + h), i] = True
|
self.grid3d[x_plan3d+j, round(height + h), z_plan3d+i] = True
|
||||||
self.grid3d[j, round(height + h), depth - 1 - i] = True
|
self.grid3d[x_plan3d+j, round(height + h), z_plan3d+depth - 1 - i] = True
|
||||||
|
|
||||||
if j == -1:
|
if j == -1:
|
||||||
self.editor.placeBlock((x + j - 1, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j - 1, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
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, self.coordinates_max[1] + h - 1, z + i),
|
self.editor.placeBlock((x + j - 1, math.ceil(self.coordinates_max[1] + h-1) , z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.grid3d[j, height + h - 1, i] = True
|
self.grid3d[x_plan3d+j-1, height + h - 1, z_plan3d+i] = True
|
||||||
if not self.grid3d[j, height + h - 1, depth - 1 - i]:
|
if not self.grid3d[x_plan3d+j-1, height + h - 1, z_plan3d+depth - 1 - i]:
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + j - 1, self.coordinates_max[1] + h - 1, z + depth - 1 - i),
|
(x + j - 1, math.ceil(self.coordinates_max[1] + h-1) , z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
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[x_plan3d+j-1, round(height + h), z_plan3d+i] = True
|
||||||
self.grid3d[j, round(height + h), depth - 1 - i] = True
|
self.grid3d[x_plan3d+j-1, round(height + h),z_plan3d+ depth - 1 - i] = True
|
||||||
elif j == width:
|
elif j == width:
|
||||||
self.editor.placeBlock((x + j + 1, self.coordinates_max[1] + h, z + i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
||||||
self.editor.placeBlock((x + j + 1, self.coordinates_max[1] + h, z + depth - 1 - i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h), z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "bottom"}))
|
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, self.coordinates_max[1] + h - 1, z + i),
|
self.editor.placeBlock((x + j + 1, math.ceil(self.coordinates_max[1] + h-1), z + i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
Block(self.blocks["celling_slab"], {"type": "top"}))
|
||||||
self.grid3d[j, height + h - 1, i] = True
|
self.grid3d[x_plan3d+j+1, height + h - 1, z_plan3d+i] = True
|
||||||
if not self.grid3d[j, height + h - 1, depth - 1 - i]:
|
if not self.grid3d[x_plan3d+j+1, height + h - 1,z_plan3d+ depth - 1 - i]:
|
||||||
self.editor.placeBlock(
|
self.editor.placeBlock(
|
||||||
(x + j + 1, self.coordinates_max[1] + h - 1, z + depth - 1 - i),
|
(x + j + 1, math.ceil(self.coordinates_max[1] + h-1), z + depth - 1 - i),
|
||||||
Block(self.blocks["celling_slab"], {"type": "top"}))
|
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[x_plan3d+j+1, round(height + h), z_plan3d+i] = True
|
||||||
self.grid3d[j, round(height + h), depth - 1 - 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[x_plan3d+j, round(height + h), z_plan3d+i] = True
|
||||||
self.grid3d[j, round(height + h), depth - 1 - i] = True
|
self.grid3d[x_plan3d+j, round(height + h),z_plan3d+ depth - 1 - i] = True
|
||||||
|
|
||||||
if i != -1:
|
if i != -1:
|
||||||
h += 0.5
|
h += 0.5
|
||||||
|
|
||||||
QUARTZ_SLAB = Block(self.blocks["celling_slab"], {"type": "top"})
|
QUARTZ_SLAB = Block(self.blocks["celling_slab"], {"type": "top"})
|
||||||
|
|
||||||
for i in range(-2, width + 2):
|
for i in range(-2, width + 2):
|
||||||
@@ -615,7 +617,7 @@ class House:
|
|||||||
else:
|
else:
|
||||||
if j == -2 or j == depth + 1:
|
if j == -2 or j == depth + 1:
|
||||||
self.editor.placeBlock((x + i, self.coordinates_max[1] - 1, z + j), QUARTZ_SLAB)
|
self.editor.placeBlock((x + i, self.coordinates_max[1] - 1, z + j), QUARTZ_SLAB)
|
||||||
|
|
||||||
def putCelling(self):
|
def putCelling(self):
|
||||||
for k in range(0, len(self.skeleton)):
|
for k in range(0, len(self.skeleton)):
|
||||||
x, z, width, depth, height = self.skeleton[k]
|
x, z, width, depth, height = self.skeleton[k]
|
||||||
@@ -790,7 +792,7 @@ class House:
|
|||||||
|
|
||||||
def placeEntrance(self):
|
def placeEntrance(self):
|
||||||
wall = self.WallFacingDirection()
|
wall = self.WallFacingDirection()
|
||||||
print(wall)
|
|
||||||
self.entranceWall = wall
|
self.entranceWall = wall
|
||||||
match self.direction:
|
match self.direction:
|
||||||
case "W":
|
case "W":
|
||||||
@@ -1069,8 +1071,7 @@ class House:
|
|||||||
self.editor.placeBlock((i, y_min, y), self.gardenOutline)
|
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 + 1, y), self.gardenOutline)
|
||||||
self.editor.placeBlock((i, y_min + 2, y), self.gardenOutline)
|
self.editor.placeBlock((i, y_min + 2, y), self.gardenOutline)
|
||||||
else:
|
|
||||||
print(i, y)
|
|
||||||
case _:
|
case _:
|
||||||
self.editor.placeBlock((i, y_min - 1, y), self.garden_floor)
|
self.editor.placeBlock((i, y_min - 1, y), self.garden_floor)
|
||||||
|
|
||||||
@@ -1118,8 +1119,8 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
house.build()
|
house.build()
|
||||||
|
|
||||||
new_coordinates_min = (coordinates_max[0] + 10, coordinates_min[1], coordinates_min[2])
|
new_coordinates_min = (coordinates_max[0] + 20, coordinates_min[1], coordinates_min[2])
|
||||||
new_coordinates_max = (coordinates_max[0] + 10 + 24, coordinates_max[1], coordinates_max[2])
|
new_coordinates_max = (coordinates_max[0] + 10 + 40, coordinates_max[1], coordinates_max[2])
|
||||||
coordinates_min = new_coordinates_min
|
coordinates_min = new_coordinates_min
|
||||||
coordinates_max = new_coordinates_max
|
coordinates_max = new_coordinates_max
|
||||||
|
|
||||||
|
|||||||
2
main.py
@@ -20,7 +20,7 @@ def main():
|
|||||||
origin = ((buildArea.begin).x, (buildArea.begin).z)
|
origin = ((buildArea.begin).x, (buildArea.begin).z)
|
||||||
|
|
||||||
remove_trees('./world_maker/data/heightmap.png', './world_maker/data/treemap.png',
|
remove_trees('./world_maker/data/heightmap.png', './world_maker/data/treemap.png',
|
||||||
'./world_maker/data/smooth_sobel_watermap.png')
|
'./world_maker/data/smooth_sobel_watermap.png')
|
||||||
smooth_terrain('./world_maker/data/heightmap.png',
|
smooth_terrain('./world_maker/data/heightmap.png',
|
||||||
'./world_maker/data/heightmap_smooth.png', './world_maker/data/smooth_sobel_watermap.png')
|
'./world_maker/data/heightmap_smooth.png', './world_maker/data/smooth_sobel_watermap.png')
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 89 B After Width: | Height: | Size: 254 B |
|
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 324 B |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 231 B After Width: | Height: | Size: 78 B |
|
Before Width: | Height: | Size: 608 B After Width: | Height: | Size: 775 B |
|
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 114 B |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 290 B After Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 91 B |
|
Before Width: | Height: | Size: 547 B After Width: | Height: | Size: 775 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 798 B |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 254 B |