added wallwithwindow
This commit is contained in:
		
							
								
								
									
										8
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.idea/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| # Default ignored files | ||||
| /shelf/ | ||||
| /workspace.xml | ||||
| # Editor-based HTTP Client requests | ||||
| /httpRequests/ | ||||
| # Datasource local storage ignored files | ||||
| /dataSources/ | ||||
| /dataSources.local.xml | ||||
							
								
								
									
										6
									
								
								.idea/inspectionProfiles/profiles_settings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/inspectionProfiles/profiles_settings.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| <component name="InspectionProjectProfileManager"> | ||||
|   <settings> | ||||
|     <option name="USE_PROJECT_PROFILE" value="false" /> | ||||
|     <version value="1.0" /> | ||||
|   </settings> | ||||
| </component> | ||||
							
								
								
									
										7
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.idea/misc.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,7 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="Black"> | ||||
|     <option name="sdkName" value="Python 3.11 (pythonProject)" /> | ||||
|   </component> | ||||
|   <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11" project-jdk-type="Python SDK" /> | ||||
| </project> | ||||
							
								
								
									
										8
									
								
								.idea/modules.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.idea/modules.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,8 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="ProjectModuleManager"> | ||||
|     <modules> | ||||
|       <module fileurl="file://$PROJECT_DIR$/.idea/pythonProject.iml" filepath="$PROJECT_DIR$/.idea/pythonProject.iml" /> | ||||
|     </modules> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										10
									
								
								.idea/pythonProject.iml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								.idea/pythonProject.iml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,10 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <module type="PYTHON_MODULE" version="4"> | ||||
|   <component name="NewModuleRootManager"> | ||||
|     <content url="file://$MODULE_DIR$"> | ||||
|       <excludeFolder url="file://$MODULE_DIR$/venv" /> | ||||
|     </content> | ||||
|     <orderEntry type="jdk" jdkName="Python 3.11" jdkType="Python SDK" /> | ||||
|     <orderEntry type="sourceFolder" forTests="false" /> | ||||
|   </component> | ||||
| </module> | ||||
							
								
								
									
										6
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="VcsDirectoryMappings"> | ||||
|     <mapping directory="" vcs="Git" /> | ||||
|   </component> | ||||
| </project> | ||||
							
								
								
									
										22
									
								
								WallWithDoor.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								WallWithDoor.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| from pyblockworld import World | ||||
| from wall import Wall | ||||
| class WallWithDoor(Wall): | ||||
|     __windowBlock:str | ||||
|     def __init__(self, x:float, y:float, z:float, block:str, window:str, world:World, width:int=10, height:int=5, rotated:bool=False): | ||||
|         super().__init__(x, y, z, block, world, width, height, rotated) | ||||
|         self.__windowBlock = window | ||||
|  | ||||
|     def build(self): | ||||
|         super().build() | ||||
|         x = super().getX() | ||||
|         y = super().getY() + 2 | ||||
|         z = super().getZ() / 2 | ||||
|  | ||||
|         super().getWorld().setBlocks( | ||||
|             x, | ||||
|             y, | ||||
|             z, | ||||
|             x, | ||||
|             y + 2, | ||||
|             z, | ||||
|             self.__windowBlock) | ||||
							
								
								
									
										37
									
								
								WallWithWindow.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								WallWithWindow.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| from pyblockworld import World | ||||
| from wall import Wall | ||||
| class WallWithWindow(Wall): | ||||
|     __windowBlock:str | ||||
|     def __init__(self, x:float, y:float, z:float, block:str, window:str, world:World, width:int=10, height:int=5): | ||||
|         super().__init__(x, y, z, block, world, width, height) | ||||
|         self.__windowBlock = window | ||||
|  | ||||
|     def build(self): | ||||
|         super().build() | ||||
|  | ||||
|         if super().getLength() < 6: | ||||
|             x = super().getX() | ||||
|             y = super().getY() + 2 | ||||
|             z = super().getZ() + 2 | ||||
|  | ||||
|             super().getWorld().setBlocks( | ||||
|                 x, | ||||
|                 y, | ||||
|                 z, | ||||
|                 x, | ||||
|                 y + 1, | ||||
|                 z + 2, | ||||
|                 self.__windowBlock) | ||||
|         else: | ||||
|             x = super().getX() | ||||
|             y = super().getY() + 2 | ||||
|             z = super().getZ() + 3 | ||||
|  | ||||
|             super().getWorld().setBlocks( | ||||
|                 x, | ||||
|                 y, | ||||
|                 z, | ||||
|                 x, | ||||
|                 y + (super().getHeight()-4), | ||||
|                 z + (super().getLength()-(super().getLength()/2)), | ||||
|                 self.__windowBlock) | ||||
							
								
								
									
										28
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								main.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| from pyblockworld import World | ||||
|  | ||||
| import WallWithDoor | ||||
| import wall | ||||
| import WallWithWindow | ||||
| import roof | ||||
|  | ||||
| # Nun werden beim Drücken der Taste ein paar Blöcke platziert. | ||||
| def b_key_pressed(world: World): | ||||
|     x, y, z = world.player_position() | ||||
|  | ||||
|     wall1 = wall.Wall(x=x, y=y, z=z, world=world, block="default:brick") | ||||
|     wall2 = wall.Wall(x=x, y=y, z=z, world=world, rotated=True, block="default:brick") | ||||
|     wall3 = WallWithWindow.WallWithWindow(x=x+10, y=y, z=z, block="default:brick", window="default:grass", world=world) | ||||
|     roof1 = roof.Roof(x, y + 5, z, "default:brick", world) | ||||
|  | ||||
|     print("wall1 constructed") | ||||
|     wall1.build() | ||||
|     print("wall2 constructed") | ||||
|     wall2.build() | ||||
|     print("wall3 constructed") | ||||
|     wall3.build() | ||||
|     print("wall4 constructed") | ||||
|     roof1.build() | ||||
|  | ||||
| world = World() | ||||
| world.build_key_pressed = b_key_pressed | ||||
| world.run() | ||||
							
								
								
									
										37
									
								
								roof.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								roof.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| from pyblockworld import World | ||||
|  | ||||
| class Roof: | ||||
|     __width:int | ||||
|     __height:int | ||||
|     __x:float | ||||
|     __y:float | ||||
|     __z:float | ||||
|     __world:World | ||||
|     __block:str | ||||
|  | ||||
|     def __init__(self, x:float, y:float, z:float, block:str, world:World, height=10, width=10): | ||||
|         self.__x = x | ||||
|         self.__y = y | ||||
|         self.__z = z | ||||
|         self.__width = width | ||||
|         self.__height = height | ||||
|         self.__world = world | ||||
|         self.__block = block | ||||
|  | ||||
|     def build(self): | ||||
|         self.__world.setBlocks(self.__x, self.__y, self.__z, self.__x + self.__width, self.__y, self.__z + self.__height, self.__block) | ||||
|  | ||||
|     def getWidth(self): | ||||
|         return self.__width | ||||
|  | ||||
|     def getHeight(self): | ||||
|         return self.__height | ||||
|  | ||||
|     def getX(self): | ||||
|         return self.__x | ||||
|  | ||||
|     def getY(self): | ||||
|         return self.__y | ||||
|  | ||||
|     def getZ(self): | ||||
|         return self.__z | ||||
							
								
								
									
										22
									
								
								wall.py
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								wall.py
									
									
									
									
									
								
							| @ -27,3 +27,25 @@ class Wall: | ||||
|             self.__world.setBlocks(self.__x, self.__y, self.__z, self.__x + self.__width, self.__y + self.__height, self.__z, self.__block) | ||||
|         else: | ||||
|             self.__world.setBlocks(self.__x, self.__y, self.__z, self.__x, self.__y + self.__height, self.__z + self.__length, self.__block) | ||||
|  | ||||
|     def getWidth(self): | ||||
|         return self.__width | ||||
|  | ||||
|     def getHeight(self): | ||||
|         return self.__height | ||||
|  | ||||
|     def getLength(self): | ||||
|         return self.__length | ||||
|  | ||||
|     def getWorld(self): | ||||
|         return self.__world | ||||
|  | ||||
|     def getX(self): | ||||
|         return self.__x | ||||
|     def getY(self): | ||||
|         return self.__y | ||||
|     def getZ(self): | ||||
|         return self.__z | ||||
|  | ||||
|     def getRotated(self): | ||||
|         return self.__rotated | ||||
		Reference in New Issue
	
	Block a user