From 436f38c068e51612d7e50f8ab7490e26dbf66dd5 Mon Sep 17 00:00:00 2001 From: Eclairsombre Date: Sun, 21 Apr 2024 21:18:47 +0200 Subject: [PATCH] Add House.py --- House.py | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ main.py | 8 ++--- 2 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 House.py diff --git a/House.py b/House.py new file mode 100644 index 0000000..dfa39b2 --- /dev/null +++ b/House.py @@ -0,0 +1,89 @@ +from gdpc import Editor, Block, geometry +import networks.curve as curve +import numpy as np + + +class House : + def __init__(self, editor,startX, startY, startZ, endX, endY, endZ): + self.editor = editor + self.startX = startX + self.startY = startY + self.startZ = startZ + self.endX = endX + self.endY = endY + self.endZ = endZ + + + def placeGround(self): + for x in range(self.startX, self.endX): + for z in range(self.startZ, self.endZ): + self.editor.placeBlock((x, self.startY, z), Block("stone")) + + def placeWall(self): + for x in range(self.startX, self.endX+1): + for y in range(self.startY, self.endY): + self.editor.placeBlock((x, y, self.startZ), Block("oak_planks")) + self.editor.placeBlock((x, y, self.endZ), Block("oak_planks")) + for z in range(self.startZ, self.endZ+1): + for y in range(self.startY, self.endY): + self.editor.placeBlock((self.startX, y, z), Block("oak_planks")) + self.editor.placeBlock((self.endX, y, z), Block("oak_planks")) + + def placeRoof(self): + for x in range(self.startX, self.endX+1): + for z in range(self.startZ, self.endZ+1): + self.editor.placeBlock((x, self.endY, z), Block("stone")) + + def placeDoor(self,direction="north"): + if direction == "north": + x = (self.startX + self.endX) // 2 + self.editor.placeBlock((x, self.startY, self.startZ), Block("air")) + self.editor.placeBlock((x, self.startY+1, self.startZ), Block("air")) + self.editor.placeBlock((x, self.startY+2, self.startZ), Block("air")) + elif direction == "south": + x = (self.startX + self.endX) // 2 + self.editor.placeBlock((x, self.startY, self.endZ), Block("air")) + self.editor.placeBlock((x, self.startY+1, self.endZ), Block("air")) + self.editor.placeBlock((x, self.startY+2, self.endZ), Block("air")) + elif direction == "west": + z = (self.startZ + self.endZ) // 2 + self.editor.placeBlock((self.startX, self.startY, z), Block("air")) + self.editor.placeBlock((self.startX, self.startY+1, z), Block("air")) + self.editor.placeBlock((self.startX, self.startY+2, z), Block("air")) + elif direction == "east": + z = (self.startZ + self.endZ) // 2 + self.editor.placeBlock((self.endX, self.startY, z), Block("air")) + self.editor.placeBlock((self.endX, self.startY+1, z), Block("air")) + self.editor.placeBlock((self.endX, self.startY+2, z), Block("air")) + + def placeHouse(self): + self.clearInside() + self.placeGround() + self.placeWall() + self.placeRoof() + self.placeDoor() + + def clearInside(self): + for x in range(self.startX+1, self.endX): + for y in range(self.startY+1, self.endY): + for z in range(self.startZ+1, self.endZ): + self.editor.placeBlock((x, y, z), Block("air")) + + def clear(self): + for x in range(self.startX, self.endX+1): + for y in range(self.startY, self.endY+1): + for z in range(self.startZ, self.endZ+1): + self.editor.placeBlock((x, y, z), Block("air")) + +if __name__ == "__main__": + editor = Editor(buffering=True) + house = House(editor, 17, -58, 8, 30, -50, 20) + house.placeHouse() + #house.clear() + editor.flushBuffer() + + + + + + diff --git a/main.py b/main.py index 1f43c45..742c224 100644 --- a/main.py +++ b/main.py @@ -8,7 +8,7 @@ editor = Editor(buffering=True) # block = editor.getBlock((0,48,0)) # # Place a block -# editor.placeBlock((394, 132, 741), Block("stone")) +editor.placeBlock((-5, -58, 0), Block("stone")) # # Build a cube # geometry.placeCuboid(editor, (458, 92, 488), (468, 99, 471), Block("oak_planks")) @@ -17,6 +17,6 @@ curve = curve.Curve([(396, 132, 740), (435, 138, 730), (443, 161, 758), (417, 73, 729)]) curve.compute_curve() -for point in curve.computed_points: - print(point) - editor.placeBlock(point, Block("stone")) +#for point in curve.computed_points: +# print(point) +# editor.placeBlock(point, Block("stone"))