diff --git a/main.py b/main.py index 56e4e09..18483c3 100644 --- a/main.py +++ b/main.py @@ -1,45 +1,7 @@ -from gdpc import Editor, Block, geometry, Transform -import networks.curve as curve -import numpy as np -from utils.JsonReader import JsonReader -from utils.YamlReader import YamlReader -from buildings.Building import Building +from world_maker.world_maker import * -from utils.functions import * +def main(): + world_maker() -editor = Editor(buffering=True) - -# get every differents buildings shapes -f = JsonReader('buildings\shapes.json') -shapes = f.data - -# get the random data for the buildings -y = YamlReader('params.yml') -random_data = y.data - -#move your editor to the position you wanna build on -transform = Transform((0,-60,110),rotation = 0) -editor.transform.push(transform) - -# clear the area you build on -geometry.placeCuboid(editor, (-5,0,-8), (25,100,25), Block("air")) - -# create a building at the relative position 0,0 with 20 blocks length and 20 blocks width, with a normal shape and 10 floors -building = Building(random_data["buildings"], (0, 0), (20,20), shapes[0]['matrice'], 10) -# build it with your custom materials -building.build(editor, ["stone_bricks","glass_pane","glass","cobblestone_wall","stone_brick_stairs","oak_planks","white_concrete","cobblestone","stone_brick_slab","iron_bars"]) - - - - - - -# # Get a block -block = editor.getBlock((0,48,0)) - -# # Build a cube -# geometry.placeCuboid(editor, (458, 92, 488), (468, 99, 471), Block("oak_planks")) - -# curve = curve.Curve([(396, 132, 740), (435, 138, 730), -# (443, 161, 758), (417, 73, 729)]) -# curve.compute_curve() \ No newline at end of file +if __name__ == '__main__': + rectangle_house_mountain,rectangle_building, skeleton_highway, skeleton_mountain = main() \ No newline at end of file diff --git a/world_maker/City.py b/world_maker/City.py index 6993016..e7d0fb4 100644 --- a/world_maker/City.py +++ b/world_maker/City.py @@ -1,8 +1,8 @@ -from District import District, Road -from Position import Position +from world_maker.District import District, Road +from world_maker.Position import Position from PIL import Image from random import randint -from data_analysis import handle_import_image, detect_mountain +from world_maker.data_analysis import handle_import_image, detect_mountain from typing import Union import numpy as np diff --git a/world_maker/District.py b/world_maker/District.py index e0cd15a..6de31ac 100644 --- a/world_maker/District.py +++ b/world_maker/District.py @@ -1,4 +1,4 @@ -from Position import Position +from world_maker.Position import Position from typing import Union from random import randint from PIL import Image diff --git a/world_maker/World.py b/world_maker/World.py index c771332..3fc41c0 100644 --- a/world_maker/World.py +++ b/world_maker/World.py @@ -1,7 +1,7 @@ from gdpc import Editor, geometry, lookup import numpy as np from PIL import Image -from Block import Block +from world_maker.Block import Block waterBiomes = [ "minecraft:ocean", diff --git a/world_maker/data/building.png b/world_maker/data/building.png index 9dc311c..2d26e98 100644 Binary files a/world_maker/data/building.png and b/world_maker/data/building.png differ diff --git a/world_maker/data/city_map.png b/world_maker/data/city_map.png index 1a5949c..c7a0dc1 100644 Binary files a/world_maker/data/city_map.png and b/world_maker/data/city_map.png differ diff --git a/world_maker/data/district.png b/world_maker/data/district.png index 96b3d4f..0fa7716 100644 Binary files a/world_maker/data/district.png and b/world_maker/data/district.png differ diff --git a/world_maker/data/mountain_map.png b/world_maker/data/mountain_map.png index 082c138..03ec375 100644 Binary files a/world_maker/data/mountain_map.png and b/world_maker/data/mountain_map.png differ diff --git a/world_maker/data/roadmap.png b/world_maker/data/roadmap.png index 3c976c0..f277263 100644 Binary files a/world_maker/data/roadmap.png and b/world_maker/data/roadmap.png differ diff --git a/world_maker/data/skeleton_highway.png b/world_maker/data/skeleton_highway.png index 221a5d9..e69f2eb 100644 Binary files a/world_maker/data/skeleton_highway.png and b/world_maker/data/skeleton_highway.png differ diff --git a/world_maker/data/skeleton_mountain.png b/world_maker/data/skeleton_mountain.png index 050fff0..3a2af61 100644 Binary files a/world_maker/data/skeleton_mountain.png and b/world_maker/data/skeleton_mountain.png differ diff --git a/world_maker/data/skeleton_mountain_area.png b/world_maker/data/skeleton_mountain_area.png index af563e2..3bfc866 100644 Binary files a/world_maker/data/skeleton_mountain_area.png and b/world_maker/data/skeleton_mountain_area.png differ diff --git a/world_maker/data_analysis.py b/world_maker/data_analysis.py index 6386d74..5b94e8d 100644 --- a/world_maker/data_analysis.py +++ b/world_maker/data_analysis.py @@ -1,8 +1,8 @@ -import World +from world_maker.World import World from PIL import Image, ImageFilter import numpy as np from scipy import ndimage -from Skeleton import Skeleton +from world_maker.Skeleton import Skeleton from typing import Union from random import randint import cv2 diff --git a/world_maker/pack_rectangle.py b/world_maker/pack_rectangle.py index 3611fc1..6f2a8b0 100644 --- a/world_maker/pack_rectangle.py +++ b/world_maker/pack_rectangle.py @@ -1,7 +1,7 @@ from PIL import Image import numpy as np from typing import Union -from data_analysis import handle_import_image +from world_maker.data_analysis import handle_import_image from random import randint diff --git a/world_maker/world_maker.py b/world_maker/world_maker.py index 8ea3510..8455aba 100644 --- a/world_maker/world_maker.py +++ b/world_maker/world_maker.py @@ -1,18 +1,18 @@ -import World +from world_maker.World import World from PIL import Image -from data_analysis import get_data,filter_negative, rectangle_2D_to_3D, skeleton_mountain_map, highway_map, filter_sobel, skeleton_highway_map, \ - smooth_sobel_water, subtract_map, detect_mountain -from City import City -from Position import Position +from world_maker.data_analysis import (get_data,filter_negative, rectangle_2D_to_3D, skeleton_mountain_map, highway_map, filter_sobel, skeleton_highway_map, \ + smooth_sobel_water, subtract_map, detect_mountain) +from world_maker.City import City +from world_maker.Position import Position from random import randint -from pack_rectangle import generate_building +from world_maker.pack_rectangle import generate_building -if __name__ == '__main__': - #world = World.World() - #heightmap, watermap, treemap = get_data(world) - #filter_sobel("./world_maker/data/heightmap.png").save('./world_maker/data/sobelmap.png') - smooth_sobel_water = smooth_sobel_water() - skeleton_highway_map(highway_map()) +def world_maker(): + world = World() + heightmap, watermap, treemap = get_data(world) + filter_sobel("./world_maker/data/heightmap.png").save('./world_maker/data/sobelmap.png') + smooth_sobel_water_map = smooth_sobel_water() + skeleton_highway = skeleton_highway_map(highway_map()) city = City() city.generate_district() city.loop_expend_district() @@ -21,13 +21,14 @@ if __name__ == '__main__': image_mountain_map = city.get_district_mountain_map() road = city.draw_roads(4) road.save('./world_maker/data/roadmap.png') - subtract_map(smooth_sobel_water, road).save('./world_maker/data/city_map.png') + subtract_map(smooth_sobel_water_map, road).save('./world_maker/data/city_map.png') subtract_map('./world_maker/data/city_map.png', './world_maker/data/skeleton_highway_area.png').save('./world_maker/data/city_map.png') subtract_map('./world_maker/data/city_map.png', './world_maker/data/mountain_map.png').save('./world_maker/data/city_map.png') rectangle_building = generate_building('./world_maker/data/city_map.png') rectangle_building = rectangle_2D_to_3D(rectangle_building) - skeleton_mountain_map(image_mountain_map) + skeleton_mountain = skeleton_mountain_map(image_mountain_map) subtract_map('./world_maker/data/mountain_map.png', './world_maker/data/skeleton_mountain_area.png').save('./world_maker/data/mountain_map.png') - subtract_map(smooth_sobel_water, filter_negative('./world_maker/data/mountain_map.png')).save('./world_maker/data/mountain_map.png') + subtract_map(smooth_sobel_water_map, filter_negative('./world_maker/data/mountain_map.png')).save('./world_maker/data/mountain_map.png') rectangle_mountain = generate_building('./world_maker/data/mountain_map.png') + return rectangle_building, rectangle_mountain, skeleton_highway, skeleton_mountain