From 575a20c7976e5f8376d7a840a9007e25abadc65a Mon Sep 17 00:00:00 2001 From: Motschen Date: Mon, 20 Jul 2020 20:30:59 +0200 Subject: [PATCH] v2.0.0 - Summer Update --- gradle.properties | 2 +- .../motschen/decorative/DecorativeClient.java | 27 +- .../motschen/decorative/DecorativeMain.java | 8 + .../motschen/decorative/Part.java | 22 ++ .../motschen/decorative/PoolShape.java | 23 ++ .../decorative/block/FireHydrant.java | 2 +- .../motschen/decorative/block/Guardrail.java | 34 -- .../motschen/decorative/block/Lamp.java | 1 + .../decorative/block/PoolSprinkler.java | 96 ++++++ .../motschen/decorative/block/PoolWall.java | 120 +++++++ .../decorative/block/RotatableBlock.java | 2 - .../motschen/decorative/block/ShowerHead.java | 98 ++++++ .../motschen/decorative/block/Sign.java | 9 - .../decorative/block/SlidingDoor.java | 2 - .../decorative/block/Springboard.java | 235 +++++++++++++ .../decorative/block/TrafficCone.java | 13 - .../motschen/decorative/block/WaterPump.java | 9 +- .../blockentity/PoolSprinklerBlockEntity.java | 32 ++ .../blockentity/ShowerHeadBlockEntity.java | 32 ++ .../decorative/entity/BathTireEntity.java | 129 ++++++++ .../decorative/entity/BeachBallEntity.java | 126 +++++++ .../entity/client/model/BathTireModel.java | 39 +++ .../entity/client/model/BeachBallModel.java | 42 +++ .../client/model/DuckBathTireModel.java | 47 +++ .../client/renderer/BeachBallRenderer.java | 23 ++ .../renderer/BlackBathTireRenderer.java | 22 ++ .../client/renderer/BlueBathTireRenderer.java | 22 ++ .../renderer/BrownBathTireRenderer.java | 22 ++ .../client/renderer/CyanBathTireRenderer.java | 22 ++ .../client/renderer/DuckBathTireRenderer.java | 23 ++ .../client/renderer/GrayBathTireRenderer.java | 22 ++ .../renderer/GreenBathTireRenderer.java | 22 ++ .../renderer/LightBlueBathTireRenderer.java | 22 ++ .../renderer/LightGrayBathTireRenderer.java | 22 ++ .../client/renderer/LimeBathTireRenderer.java | 22 ++ .../renderer/MagentaBathTireRenderer.java | 22 ++ .../renderer/OrangeBathTireRenderer.java | 22 ++ .../client/renderer/PinkBathTireRenderer.java | 22 ++ .../renderer/PurpleBathTireRenderer.java | 22 ++ .../client/renderer/RedBathTireRenderer.java | 22 ++ .../renderer/WhiteBathTireRenderer.java | 23 ++ .../renderer/YellowBathTireRenderer.java | 22 ++ .../motschen/decorative/init/BathTires.java | 91 +++++ .../decorative/init/BlockEntities.java | 20 ++ .../decorative/init/LogsWithAxes.java | 1 - .../motschen/decorative/init/Pool.java | 42 +++ .../motschen/decorative/init/Signs.java | 1 - .../decorative/item/BathTireItem.java | 71 ++++ .../blockstates/pool_sprinkler.json | 8 + .../decorative/blockstates/pool_wall.json | 16 + .../decorative/blockstates/shower_head.json | 8 + .../decorative/blockstates/springboard.json | 12 + src/main/resources/assets/decorative/icon.png | Bin 173386 -> 42438 bytes .../assets/decorative/lang/de_de.json | 30 +- .../assets/decorative/lang/en_us.json | 28 +- .../models/block/pool_sprinkler.json | 69 ++++ .../decorative/models/block/pool_wall.json | 22 ++ .../models/block/pool_wall_corner.json | 34 ++ .../models/block/road_white_long.json | 10 +- .../models/block/road_white_short.json | 10 +- .../decorative/models/block/shower_head.json | 47 +++ .../models/block/sliding_door_bottom.json | 2 +- .../block/sliding_door_bottom_open.json | 2 +- .../models/block/sliding_door_top.json | 2 +- .../models/block/sliding_door_top_open.json | 2 +- .../models/block/springboard_back.json | 147 +++++++++ .../models/block/springboard_front.json | 122 +++++++ .../decorative/models/item/bath_tire.json | 106 ++++++ .../decorative/models/item/beach_ball.json | 108 ++++++ .../models/item/black_bath_tire.json | 6 + .../models/item/blue_bath_tire.json | 6 + .../models/item/brown_bath_tire.json | 6 + .../models/item/cyan_bath_tire.json | 6 + .../models/item/duck_bath_tire.json | 214 ++++++++++++ .../models/item/gray_bath_tire.json | 6 + .../models/item/green_bath_tire.json | 6 + .../models/item/light_blue_bath_tire.json | 6 + .../models/item/light_gray_bath_tire.json | 6 + .../models/item/lime_bath_tire.json | 6 + .../models/item/magenta_bath_tire.json | 6 + .../models/item/orange_bath_tire.json | 6 + .../models/item/pink_bath_tire.json | 6 + .../models/item/pool_sprinkler.json | 3 + .../decorative/models/item/pool_wall.json | 3 + .../models/item/purple_bath_tire.json | 6 + .../decorative/models/item/red_bath_tire.json | 6 + .../decorative/models/item/shower_head.json | 3 + .../decorative/models/item/springboard.json | 310 ++++++++++++++++++ .../models/item/white_bath_tire.json | 6 + .../models/item/yellow_bath_tire.json | 6 + .../decorative/textures/block/ceilingfan.png | Bin 146 -> 179 bytes .../textures/block/road_white_long.png | Bin 223 -> 290 bytes .../textures/block/road_white_short.png | Bin 197 -> 283 bytes .../decorative/textures/block/shower_head.png | Bin 0 -> 612 bytes .../decorative/textures/entity/beach_ball.png | Bin 0 -> 694 bytes .../textures/entity/duck_bath_tire.png | Bin 0 -> 1156 bytes .../loot_tables/blocks/pool_sprinkler.json | 19 ++ .../loot_tables/blocks/pool_wall.json | 19 ++ .../loot_tables/blocks/shower_head.json | 19 ++ .../loot_tables/blocks/springboard.json | 28 ++ .../loot_tables/entities/black_bath_tire.json | 24 ++ .../loot_tables/entities/blue_bath_tire.json | 24 ++ .../loot_tables/entities/brown_bath_tire.json | 24 ++ .../loot_tables/entities/cyan_bath_tire.json | 24 ++ .../loot_tables/entities/duck_bath_tire.json | 24 ++ .../loot_tables/entities/gray_bath_tire.json | 24 ++ .../loot_tables/entities/green_bath_tire.json | 24 ++ .../entities/light_blue_bath_tire.json | 24 ++ .../entities/light_gray_bath_tire.json | 24 ++ .../loot_tables/entities/lime_bath_tire.json | 24 ++ .../entities/magenta_bath_tire.json | 24 ++ .../entities/orange_bath_tire.json | 24 ++ .../loot_tables/entities/pink_bath_tire.json | 24 ++ .../entities/purple_bath_tire.json | 24 ++ .../loot_tables/entities/red_bath_tire.json | 24 ++ .../loot_tables/entities/white_bath_tire.json | 24 ++ .../entities/yellow_bath_tire.json | 24 ++ .../de_de/categories/pool.json | 5 + .../entries/decoration_guide/beach_ball.json | 18 + .../decoration_guide/black_bath_tire.json | 18 + .../decoration_guide/blue_bath_tire.json | 18 + .../decoration_guide/brown_bath_tire.json | 18 + .../decoration_guide/cyan_bath_tire.json | 18 + .../decoration_guide/duck_bath_tire.json | 18 + .../decoration_guide/gray_bath_tire.json | 18 + .../decoration_guide/green_bath_tire.json | 18 + .../light_blue_bath_tire.json | 18 + .../light_gray_bath_tire.json | 18 + .../decoration_guide/lime_bath_tire.json | 18 + .../decoration_guide/magenta_bath_tire.json | 18 + .../decoration_guide/orange_bath_tire.json | 18 + .../decoration_guide/pink_bath_tire.json | 18 + .../decoration_guide/pool_sprinkler.json | 18 + .../entries/decoration_guide/pool_wall.json | 18 + .../decoration_guide/purple_bath_tire.json | 18 + .../decoration_guide/red_bath_tire.json | 18 + .../entries/decoration_guide/shower_head.json | 18 + .../entries/decoration_guide/springboard.json | 18 + .../decoration_guide/white_bath_tire.json | 18 + .../decoration_guide/yellow_bath_tire.json | 18 + .../en_us/categories/pool.json | 5 + .../entries/decoration_guide/beach_ball.json | 18 + .../decoration_guide/black_bath_tire.json | 18 + .../decoration_guide/blue_bath_tire.json | 18 + .../decoration_guide/brown_bath_tire.json | 18 + .../decoration_guide/cyan_bath_tire.json | 18 + .../decoration_guide/duck_bath_tire.json | 18 + .../decoration_guide/gray_bath_tire.json | 18 + .../decoration_guide/green_bath_tire.json | 18 + .../light_blue_bath_tire.json | 18 + .../light_gray_bath_tire.json | 18 + .../decoration_guide/lime_bath_tire.json | 18 + .../decoration_guide/magenta_bath_tire.json | 18 + .../decoration_guide/orange_bath_tire.json | 18 + .../decoration_guide/pink_bath_tire.json | 18 + .../decoration_guide/pool_sprinkler.json | 18 + .../entries/decoration_guide/pool_wall.json | 18 + .../decoration_guide/purple_bath_tire.json | 18 + .../decoration_guide/red_bath_tire.json | 18 + .../entries/decoration_guide/shower_head.json | 18 + .../entries/decoration_guide/springboard.json | 18 + .../decoration_guide/white_bath_tire.json | 18 + .../decoration_guide/yellow_bath_tire.json | 18 + .../data/decorative/recipes/beach_ball.json | 23 ++ .../decorative/recipes/black_bath_tire.json | 17 + .../decorative/recipes/blue_bath_tire.json | 17 + .../decorative/recipes/brown_bath_tire.json | 17 + .../decorative/recipes/cyan_bath_tire.json | 17 + .../decorative/recipes/gray_bath_tire.json | 17 + .../decorative/recipes/green_bath_tire.json | 17 + .../recipes/light_blue_bath_tire.json | 17 + .../recipes/light_gray_bath_tire.json | 17 + .../decorative/recipes/lime_bath_tire.json | 17 + .../decorative/recipes/magenta_bath_tire.json | 17 + .../decorative/recipes/orange_bath_tire.json | 17 + .../decorative/recipes/pink_bath_tire.json | 17 + .../decorative/recipes/pool_sprinkler.json | 16 + .../data/decorative/recipes/pool_wall.json | 18 + .../decorative/recipes/purple_bath_tire.json | 17 + .../decorative/recipes/red_bath_tire.json | 17 + .../data/decorative/recipes/shower_head.json | 20 ++ .../data/decorative/recipes/springboard.json | 19 ++ .../decorative/recipes/white_bath_tire.json | 17 + .../decorative/recipes/yellow_bath_tire.json | 17 + src/main/resources/fabric.mod.json | 4 +- 185 files changed, 4756 insertions(+), 100 deletions(-) create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/Part.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/PoolShape.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/block/PoolSprinkler.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/block/PoolWall.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/block/Springboard.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/PoolSprinklerBlockEntity.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/ShowerHeadBlockEntity.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/BathTireEntity.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/BeachBallEntity.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BathTireModel.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BeachBallModel.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/DuckBathTireModel.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BeachBallRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlackBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlueBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BrownBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/CyanBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/DuckBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GrayBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GreenBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightBlueBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightGrayBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LimeBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/MagentaBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/OrangeBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PinkBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PurpleBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/RedBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/WhiteBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/YellowBathTireRenderer.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/init/BathTires.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/init/BlockEntities.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/init/Pool.java create mode 100644 src/main/java/eu/midnightdust/motschen/decorative/item/BathTireItem.java create mode 100644 src/main/resources/assets/decorative/blockstates/pool_sprinkler.json create mode 100644 src/main/resources/assets/decorative/blockstates/pool_wall.json create mode 100644 src/main/resources/assets/decorative/blockstates/shower_head.json create mode 100644 src/main/resources/assets/decorative/blockstates/springboard.json create mode 100644 src/main/resources/assets/decorative/models/block/pool_sprinkler.json create mode 100644 src/main/resources/assets/decorative/models/block/pool_wall.json create mode 100644 src/main/resources/assets/decorative/models/block/pool_wall_corner.json create mode 100644 src/main/resources/assets/decorative/models/block/shower_head.json create mode 100644 src/main/resources/assets/decorative/models/block/springboard_back.json create mode 100644 src/main/resources/assets/decorative/models/block/springboard_front.json create mode 100644 src/main/resources/assets/decorative/models/item/bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/beach_ball.json create mode 100644 src/main/resources/assets/decorative/models/item/black_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/blue_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/brown_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/cyan_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/duck_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/gray_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/green_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/light_blue_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/light_gray_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/lime_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/magenta_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/orange_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/pink_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/pool_sprinkler.json create mode 100644 src/main/resources/assets/decorative/models/item/pool_wall.json create mode 100644 src/main/resources/assets/decorative/models/item/purple_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/red_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/shower_head.json create mode 100644 src/main/resources/assets/decorative/models/item/springboard.json create mode 100644 src/main/resources/assets/decorative/models/item/white_bath_tire.json create mode 100644 src/main/resources/assets/decorative/models/item/yellow_bath_tire.json create mode 100644 src/main/resources/assets/decorative/textures/block/shower_head.png create mode 100644 src/main/resources/assets/decorative/textures/entity/beach_ball.png create mode 100644 src/main/resources/assets/decorative/textures/entity/duck_bath_tire.png create mode 100644 src/main/resources/data/decorative/loot_tables/blocks/pool_sprinkler.json create mode 100644 src/main/resources/data/decorative/loot_tables/blocks/pool_wall.json create mode 100644 src/main/resources/data/decorative/loot_tables/blocks/shower_head.json create mode 100644 src/main/resources/data/decorative/loot_tables/blocks/springboard.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/black_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/brown_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/cyan_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/duck_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/green_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/light_blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/light_gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/lime_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/magenta_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/orange_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/pink_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/purple_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/red_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/white_bath_tire.json create mode 100644 src/main/resources/data/decorative/loot_tables/entities/yellow_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/categories/pool.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/beach_ball.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/black_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/brown_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/cyan_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/duck_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/green_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/light_blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/light_gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/lime_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/magenta_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/orange_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/pink_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/pool_sprinkler.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/pool_wall.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/purple_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/red_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/shower_head.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/springboard.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/white_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/de_de/entries/decoration_guide/yellow_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/categories/pool.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/beach_ball.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/black_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/brown_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/cyan_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/duck_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/green_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/light_blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/light_gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/lime_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/magenta_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/orange_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/pink_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/pool_sprinkler.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/pool_wall.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/purple_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/red_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/shower_head.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/springboard.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/white_bath_tire.json create mode 100644 src/main/resources/data/decorative/patchouli_books/decoration_guide/en_us/entries/decoration_guide/yellow_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/beach_ball.json create mode 100644 src/main/resources/data/decorative/recipes/black_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/brown_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/cyan_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/green_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/light_blue_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/light_gray_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/lime_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/magenta_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/orange_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/pink_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/pool_sprinkler.json create mode 100644 src/main/resources/data/decorative/recipes/pool_wall.json create mode 100644 src/main/resources/data/decorative/recipes/purple_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/red_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/shower_head.json create mode 100644 src/main/resources/data/decorative/recipes/springboard.json create mode 100644 src/main/resources/data/decorative/recipes/white_bath_tire.json create mode 100644 src/main/resources/data/decorative/recipes/yellow_bath_tire.json diff --git a/gradle.properties b/gradle.properties index 1af88fc..bcefbf5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.8.8+build.202 # Mod Properties - mod_version = 1.0.0 + mod_version = 2.0.0 maven_group = eu.midnightdust.motschen archives_base_name = decorative diff --git a/src/main/java/eu/midnightdust/motschen/decorative/DecorativeClient.java b/src/main/java/eu/midnightdust/motschen/decorative/DecorativeClient.java index 748f3f7..659c7af 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/DecorativeClient.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/DecorativeClient.java @@ -1,19 +1,44 @@ package eu.midnightdust.motschen.decorative; +import eu.midnightdust.motschen.decorative.entity.client.renderer.*; +import eu.midnightdust.motschen.decorative.init.BathTires; +import eu.midnightdust.motschen.decorative.init.Pool; import eu.midnightdust.motschen.decorative.init.Signs; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; +import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.client.color.block.BlockColorProvider; -import net.minecraft.client.color.item.ItemColorProvider; import net.minecraft.client.render.RenderLayer; public class DecorativeClient implements ClientModInitializer { @Override public void onInitializeClient() { + EntityRendererRegistry.INSTANCE.register(Pool.BEACH_BALL, (dispatcher, context) -> new BeachBallRenderer(dispatcher)); + + EntityRendererRegistry.INSTANCE.register(BathTires.WHITE_BATH_TIRE, (dispatcher, context) -> new WhiteBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.ORANGE_BATH_TIRE, (dispatcher, context) -> new OrangeBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.MAGENTA_BATH_TIRE, (dispatcher, context) -> new MagentaBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.LIGHT_BLUE_BATH_TIRE, (dispatcher, context) -> new LightBlueBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.YELLOW_BATH_TIRE, (dispatcher, context) -> new YellowBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.LIME_BATH_TIRE, (dispatcher, context) -> new LimeBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.PINK_BATH_TIRE, (dispatcher, context) -> new PinkBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.GRAY_BATH_TIRE, (dispatcher, context) -> new GrayBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.LIGHT_GRAY_BATH_TIRE, (dispatcher, context) -> new LightGrayBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.CYAN_BATH_TIRE, (dispatcher, context) -> new CyanBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.PURPLE_BATH_TIRE, (dispatcher, context) -> new PurpleBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.BLUE_BATH_TIRE, (dispatcher, context) -> new BlueBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.BROWN_BATH_TIRE, (dispatcher, context) -> new BrownBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.GREEN_BATH_TIRE, (dispatcher, context) -> new GreenBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.RED_BATH_TIRE, (dispatcher, context) -> new RedBathTireRenderer(dispatcher)); + EntityRendererRegistry.INSTANCE.register(BathTires.BLACK_BATH_TIRE, (dispatcher, context) -> new BlackBathTireRenderer(dispatcher)); + + EntityRendererRegistry.INSTANCE.register(BathTires.DUCK_BATH_TIRE, (dispatcher, context) -> new DuckBathTireRenderer(dispatcher)); + + registerBlockColor(DecorativeMain.BirdBath, Blocks.WATER); BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(),DecorativeMain.RoadWhiteShort); BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(),DecorativeMain.RoadWhiteLong); diff --git a/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java b/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java index 56d45b6..2ceaa6f 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/DecorativeMain.java @@ -20,7 +20,10 @@ public class DecorativeMain implements ModInitializer { public static final ItemGroup IndoorGroup = FabricItemGroupBuilder.build(new Identifier(MOD_ID, "indoor"), () -> new ItemStack(DecorativeMain.Television)); public static final ItemGroup TrafficGroup = FabricItemGroupBuilder.build(new Identifier(MOD_ID, "traffic"), () -> new ItemStack(DecorativeMain.TrafficCone)); public static final ItemGroup GardenGroup = FabricItemGroupBuilder.build(new Identifier(MOD_ID, "garden"), () -> new ItemStack(LogsWithAxes.OakLogWithAxe)); + public static final ItemGroup PoolGroup = FabricItemGroupBuilder.build(new Identifier(MOD_ID, "pool"), () -> new ItemStack(Pool.BEACH_BALL_ITEM)); public static final EnumProperty PROGRAM = EnumProperty.of("program", Program.class); + public static final EnumProperty POOL_SHAPE = EnumProperty.of("shape", PoolShape.class); + public static final EnumProperty PART = EnumProperty.of("part", Part.class); public static Block RockyAsphalt = new Block(FabricBlockSettings.copyOf(Blocks.COAL_ORE)); public static Block Road = new Block(FabricBlockSettings.copyOf(Blocks.STONE)); public static Block RoadWhiteShort = new RotatableBlock(); @@ -38,9 +41,11 @@ public class DecorativeMain implements ModInitializer { public static Block BirdBath = new BirdBath(); public static Block ChristmasTree = new ChristmasTree(); public static Block ChristmasLights = new ChristmasLights(); + public static Block ShowerHead = new ShowerHead(); @Override public void onInitialize() { + BlockEntities.init(); // Traffic // Registry.register(Registry.BLOCK, new Identifier("decorative","rocky_asphalt"), RockyAsphalt); Registry.register(Registry.ITEM, new Identifier("decorative","rocky_asphalt"), new BlockItem(RockyAsphalt, new Item.Settings().group(DecorativeMain.TrafficGroup))); @@ -66,6 +71,7 @@ public class DecorativeMain implements ModInitializer { Registry.register(Registry.BLOCK, new Identifier("decorative","water_pump"), WaterPump); Registry.register(Registry.ITEM, new Identifier("decorative","water_pump"), new BlockItem(WaterPump, new Item.Settings().group(DecorativeMain.GardenGroup))); LogsWithAxes.init(); + Pool.init(); //Furniture// Registry.register(Registry.BLOCK, new Identifier("decorative","kitchen_tiles"), KitchenTiles); @@ -76,6 +82,8 @@ public class DecorativeMain implements ModInitializer { Registry.register(Registry.ITEM, new Identifier("decorative","old_television"), new BlockItem(OldTelevision, new Item.Settings().group(DecorativeMain.IndoorGroup))); Registry.register(Registry.BLOCK, new Identifier("decorative","ceilingfan"), CeilingFan); Registry.register(Registry.ITEM, new Identifier("decorative","ceilingfan"), new BlockItem(CeilingFan, new Item.Settings().group(DecorativeMain.IndoorGroup))); + Registry.register(Registry.BLOCK, new Identifier("decorative","shower_head"), ShowerHead); + Registry.register(Registry.ITEM, new Identifier("decorative","shower_head"), new BlockItem(ShowerHead, new Item.Settings().group(DecorativeMain.IndoorGroup))); Registry.register(Registry.BLOCK, new Identifier("decorative","sliding_door"), SlidingDoor); Registry.register(Registry.ITEM, new Identifier("decorative","sliding_door"), new BlockItem(SlidingDoor, new Item.Settings().group(DecorativeMain.IndoorGroup))); Registry.register(Registry.BLOCK, new Identifier("decorative","christmas_tree"), ChristmasTree); diff --git a/src/main/java/eu/midnightdust/motschen/decorative/Part.java b/src/main/java/eu/midnightdust/motschen/decorative/Part.java new file mode 100644 index 0000000..bbb73ca --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/Part.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative; + +import net.minecraft.util.StringIdentifiable; + +public enum Part implements StringIdentifiable { + FRONT("front"), + BACK("back"); + + private final String name; + + Part(String name) { + this.name = name; + } + + public String toString() { + return this.name; + } + + public String asString() { + return this.name; + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/PoolShape.java b/src/main/java/eu/midnightdust/motschen/decorative/PoolShape.java new file mode 100644 index 0000000..ff0be62 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/PoolShape.java @@ -0,0 +1,23 @@ +package eu.midnightdust.motschen.decorative; + +import net.minecraft.util.StringIdentifiable; + +public enum PoolShape implements StringIdentifiable { + STRAIGHT("straight"), + INNER_LEFT("inner_left"), + INNER_RIGHT("inner_right"); + + private final String name; + + PoolShape(String name) { + this.name = name; + } + + public String toString() { + return this.name; + } + + public String asString() { + return this.name; + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/FireHydrant.java b/src/main/java/eu/midnightdust/motschen/decorative/block/FireHydrant.java index 0410bca..c4df968 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/FireHydrant.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/FireHydrant.java @@ -33,7 +33,7 @@ public class FireHydrant extends HorizontalFacingBlock { } public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { ItemStack itemStack = player.getStackInHand(hand); - if (!itemStack.isEmpty()) { + if (!itemStack.isEmpty() && hand==Hand.MAIN_HAND) { if (itemStack.getItem() == Items.BUCKET) { if (!world.isClient) { if (!player.abilities.creativeMode) { diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/Guardrail.java b/src/main/java/eu/midnightdust/motschen/decorative/block/Guardrail.java index 8801167..f51aec8 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/Guardrail.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/Guardrail.java @@ -2,23 +2,14 @@ package eu.midnightdust.motschen.decorative.block; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateManager; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; -import net.minecraft.world.World; import net.minecraft.world.WorldView; public class Guardrail extends HorizontalFacingBlock { @@ -31,31 +22,6 @@ public class Guardrail extends HorizontalFacingBlock { super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH)); } - public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - ItemStack itemStack = player.getStackInHand(hand); - if (!itemStack.isEmpty()) { - if (itemStack.getItem() == Items.BUCKET) { - if (!world.isClient) { - if (!player.abilities.creativeMode) { - itemStack.decrement(1); - if (itemStack.isEmpty()) { - player.setStackInHand(hand, new ItemStack(Items.WATER_BUCKET)); - } else if (!player.inventory.insertStack(new ItemStack(Items.WATER_BUCKET))) { - player.dropItem(new ItemStack(Items.WATER_BUCKET), false); - } - } - world.playSound(null, pos, SoundEvents.ITEM_BUCKET_FILL, SoundCategory.BLOCKS, 1.0F, 1.0F); - } - return ActionResult.SUCCESS; - } - else { - return ActionResult.PASS; - } - } - if (itemStack.isEmpty()) { - return ActionResult.PASS; - } return ActionResult.PASS; - } @Override public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) { diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/Lamp.java b/src/main/java/eu/midnightdust/motschen/decorative/block/Lamp.java index 99ca6d8..6770590 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/Lamp.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/Lamp.java @@ -20,6 +20,7 @@ public class Lamp extends RedstoneLampBlock { public Lamp() { super(FabricBlockSettings.copy(Blocks.REDSTONE_LAMP).nonOpaque().sounds(BlockSoundGroup.STONE)); } + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { world.setBlockState(pos, state.with(LIT, Boolean.valueOf(!state.get(LIT)))); world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 0.5f); diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/PoolSprinkler.java b/src/main/java/eu/midnightdust/motschen/decorative/block/PoolSprinkler.java new file mode 100644 index 0000000..60d7748 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/PoolSprinkler.java @@ -0,0 +1,96 @@ +package eu.midnightdust.motschen.decorative.block; + +import eu.midnightdust.motschen.decorative.block.blockentity.PoolSprinklerBlockEntity; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.*; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import net.minecraft.world.WorldView; + +public class PoolSprinkler extends HorizontalFacingBlock implements BlockEntityProvider { + + private static final VoxelShape NORTH_SHAPE; + private static final VoxelShape EAST_SHAPE; + private static final VoxelShape SOUTH_SHAPE; + private static final VoxelShape WEST_SHAPE; + public static final BooleanProperty POWERED = DoorBlock.POWERED; + + public PoolSprinkler() { + super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); + this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(POWERED, Boolean.FALSE)); + } + + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + world.setBlockState(pos, state.with(POWERED, Boolean.valueOf(!state.get(POWERED)))); + world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 0.5f); + return ActionResult.SUCCESS; + } + + @Override + public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) { + return super.getPlacementState(itemPlacementContext) + .with(FACING, itemPlacementContext.getPlayerFacing().getOpposite()) + .with(POWERED, Boolean.FALSE); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING); + builder.add(POWERED); + } + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { + switch (state.get(FACING)) { + case NORTH: return NORTH_SHAPE; + case EAST: return EAST_SHAPE; + case SOUTH: return SOUTH_SHAPE; + case WEST: return WEST_SHAPE; + default: return super.getOutlineShape(state, view, pos, context); + } + } + static { + VoxelShape post = createCuboidShape(7, 0, 0, 9, 13, 2); + VoxelShape upper = createCuboidShape(7, 9.65, -6.2, 9, 13, 1); + VoxelShape shape = VoxelShapes.union(post, upper); + + NORTH_SHAPE = shape; + WEST_SHAPE = rotate(Direction.EAST, Direction.NORTH, shape); + EAST_SHAPE = rotate(Direction.EAST, Direction.SOUTH, shape); + SOUTH_SHAPE = rotate(Direction.EAST, Direction.WEST, shape); + } + private static VoxelShape rotate(Direction from, Direction to, VoxelShape shape) { + VoxelShape[] buffer = new VoxelShape[]{ shape, VoxelShapes.empty() }; + + int times = (to.getHorizontal() - from.getHorizontal() + 4) % 4; + for (int i = 0; i < times; i++) { + buffer[0].forEachBox((minX, minY, minZ, maxX, maxY, maxZ) -> buffer[1] = VoxelShapes.union(buffer[1], VoxelShapes.cuboid(1-maxZ, minY, minX, 1-minZ, maxY, maxX))); + buffer[0] = buffer[1]; + buffer[1] = VoxelShapes.empty(); + } + + return buffer[0]; + } + public boolean canPlaceAt(BlockState state, WorldView worldView, BlockPos pos) { + return !worldView.isAir(pos.down()); + } + @Override + public BlockEntity createBlockEntity(BlockView world) { + return new PoolSprinklerBlockEntity(); + } + +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/PoolWall.java b/src/main/java/eu/midnightdust/motschen/decorative/block/PoolWall.java new file mode 100644 index 0000000..f6d1f2e --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/PoolWall.java @@ -0,0 +1,120 @@ +package eu.midnightdust.motschen.decorative.block; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.PoolShape; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.*; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.DirectionProperty; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; + +public class PoolWall extends HorizontalFacingBlock implements Waterloggable { + public static final DirectionProperty FACING = DoorBlock.FACING; + public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; + public static final EnumProperty SHAPE = DecorativeMain.POOL_SHAPE; + private static final VoxelShape NORTH_SHAPE; + private static final VoxelShape EAST_SHAPE; + private static final VoxelShape SOUTH_SHAPE; + private static final VoxelShape WEST_SHAPE; + private static final VoxelShape NORTH_WEST_CORNER_SHAPE; + private static final VoxelShape SOUTH_WEST_CORNER_SHAPE; + private static final VoxelShape NORTH_EAST_CORNER_SHAPE; + private static final VoxelShape SOUTH_EAST_CORNER_SHAPE; + + + public PoolWall() { + super(FabricBlockSettings.copy(Blocks.STONE_STAIRS).nonOpaque().sounds(BlockSoundGroup.STONE)); + this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(SHAPE, PoolShape.STRAIGHT).with(WATERLOGGED, false)); + } + + @Override + public FluidState getFluidState(BlockState blockState_1) { + return blockState_1.get(WATERLOGGED) ? Fluids.WATER.getStill(true) : super.getFluidState(blockState_1); + } + + public BlockState getPlacementState(ItemPlacementContext ctx) { + BlockPos blockPos = ctx.getBlockPos(); + FluidState fluidState = ctx.getWorld().getFluidState(blockPos); + BlockState blockState = this.getDefaultState().with(FACING, ctx.getPlayerFacing().getOpposite()).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER); + return blockState.with(SHAPE, getPoolShape(blockState, ctx.getWorld(), blockPos)); + } + + private static PoolShape getPoolShape(BlockState state, BlockView view, BlockPos pos) { + Direction direction = state.get(FACING).getOpposite(); + BlockState blockState2 = view.getBlockState(pos.offset(direction.getOpposite())); + if (isPoolWall(blockState2)) { + Direction direction3 = blockState2.get(FACING).getOpposite(); + if (direction3.getAxis() != (state.get(FACING).getOpposite()).getAxis() && getSide(state, view, pos, direction3)) { + if (direction3 == direction.rotateYCounterclockwise()) { + return PoolShape.INNER_LEFT; + } + + return PoolShape.INNER_RIGHT; + } + } + + return PoolShape.STRAIGHT; + } + + private static boolean getSide(BlockState state, BlockView view, BlockPos pos, Direction dir) { + BlockState blockState = view.getBlockState(pos.offset(dir)); + return !isPoolWall(blockState) || blockState.get(FACING) != state.get(FACING); + } + + public static boolean isPoolWall(BlockState state) { + return state.getBlock() instanceof PoolWall; + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING,SHAPE,WATERLOGGED); + } + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { + switch (state.get(FACING)) { + case NORTH: switch (state.get(SHAPE)) { case STRAIGHT: return NORTH_SHAPE; case INNER_LEFT: return NORTH_WEST_CORNER_SHAPE; case INNER_RIGHT: return NORTH_EAST_CORNER_SHAPE;} + case EAST: switch (state.get(SHAPE)) { case STRAIGHT: return EAST_SHAPE; case INNER_LEFT: return NORTH_EAST_CORNER_SHAPE; case INNER_RIGHT: return SOUTH_EAST_CORNER_SHAPE;} + case SOUTH: switch (state.get(SHAPE)) { case STRAIGHT: return SOUTH_SHAPE; case INNER_LEFT: return SOUTH_EAST_CORNER_SHAPE; case INNER_RIGHT: return SOUTH_WEST_CORNER_SHAPE;} + case WEST: switch (state.get(SHAPE)) { case STRAIGHT: return WEST_SHAPE; case INNER_LEFT: return SOUTH_WEST_CORNER_SHAPE; case INNER_RIGHT: return NORTH_WEST_CORNER_SHAPE;} + default: return super.getOutlineShape(state, view, pos, context); + } + } + static { + VoxelShape base = createCuboidShape(0, 0, 15, 16, 16, 16); + VoxelShape corner = createCuboidShape(15, 0, 0, 16, 16, 16); + VoxelShape corner_shapes = VoxelShapes.union(base, corner); + + NORTH_SHAPE = base; + WEST_SHAPE = rotate(Direction.EAST, Direction.NORTH, base); + EAST_SHAPE = rotate(Direction.EAST, Direction.SOUTH, base); + SOUTH_SHAPE = rotate(Direction.EAST, Direction.WEST, base); + NORTH_WEST_CORNER_SHAPE = corner_shapes; + SOUTH_WEST_CORNER_SHAPE = rotate(Direction.EAST, Direction.NORTH, corner_shapes); + NORTH_EAST_CORNER_SHAPE = rotate(Direction.EAST, Direction.SOUTH, corner_shapes); + SOUTH_EAST_CORNER_SHAPE = rotate(Direction.EAST, Direction.WEST, corner_shapes); + } + private static VoxelShape rotate(Direction from, Direction to, VoxelShape shape) { + VoxelShape[] buffer = new VoxelShape[]{ shape, VoxelShapes.empty() }; + + int times = (to.getHorizontal() - from.getHorizontal() + 4) % 4; + for (int i = 0; i < times; i++) { + buffer[0].forEachBox((minX, minY, minZ, maxX, maxY, maxZ) -> buffer[1] = VoxelShapes.union(buffer[1], VoxelShapes.cuboid(1-maxZ, minY, minX, 1-minZ, maxY, maxX))); + buffer[0] = buffer[1]; + buffer[1] = VoxelShapes.empty(); + } + + return buffer[0]; + } + +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/RotatableBlock.java b/src/main/java/eu/midnightdust/motschen/decorative/block/RotatableBlock.java index e50b516..987129b 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/RotatableBlock.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/RotatableBlock.java @@ -8,9 +8,7 @@ import net.minecraft.block.HorizontalFacingBlock; import net.minecraft.item.ItemPlacementContext; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.state.StateManager; -import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.world.WorldView; public class RotatableBlock extends HorizontalFacingBlock { diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java b/src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java new file mode 100644 index 0000000..a41bcdb --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/ShowerHead.java @@ -0,0 +1,98 @@ +package eu.midnightdust.motschen.decorative.block; + +import eu.midnightdust.motschen.decorative.block.blockentity.ShowerHeadBlockEntity; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.*; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import net.minecraft.world.WorldView; + +public class ShowerHead extends HorizontalFacingBlock implements BlockEntityProvider { + + private static final VoxelShape NORTH_SHAPE; + private static final VoxelShape EAST_SHAPE; + private static final VoxelShape SOUTH_SHAPE; + private static final VoxelShape WEST_SHAPE; + public static final BooleanProperty POWERED = DoorBlock.POWERED; + + public ShowerHead() { + super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); + this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(POWERED, Boolean.FALSE)); + } + + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + world.setBlockState(pos, state.with(POWERED, Boolean.valueOf(!state.get(POWERED)))); + world.playSound(player, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.2f, 0.5f); + return ActionResult.SUCCESS; + } + + @Override + public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) { + return super.getPlacementState(itemPlacementContext) + .with(FACING, itemPlacementContext.getPlayerFacing().getOpposite()) + .with(POWERED, Boolean.FALSE); + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING); + builder.add(POWERED); + } + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { + switch (state.get(FACING)) { + case NORTH: return NORTH_SHAPE; + case EAST: return EAST_SHAPE; + case SOUTH: return SOUTH_SHAPE; + case WEST: return WEST_SHAPE; + default: return super.getOutlineShape(state, view, pos, context); + } + } + static { + VoxelShape pipe = createCuboidShape(7, 12, 8.75, 9, 14, 16); + VoxelShape pivot_pipe = createCuboidShape(7, 12, 8.25, 9, 13, 11); + VoxelShape pivot_pipe2 = createCuboidShape(7, 10.5, 7.25, 9, 12, 11); + VoxelShape head = createCuboidShape(4, 9.75, 5, 12, 11.25, 13); + VoxelShape shape = VoxelShapes.union(pipe, head, pivot_pipe, pivot_pipe2); + + NORTH_SHAPE = shape; + WEST_SHAPE = rotate(Direction.EAST, Direction.NORTH, shape); + EAST_SHAPE = rotate(Direction.EAST, Direction.SOUTH, shape); + SOUTH_SHAPE = rotate(Direction.EAST, Direction.WEST, shape); + } + private static VoxelShape rotate(Direction from, Direction to, VoxelShape shape) { + VoxelShape[] buffer = new VoxelShape[]{ shape, VoxelShapes.empty() }; + + int times = (to.getHorizontal() - from.getHorizontal() + 4) % 4; + for (int i = 0; i < times; i++) { + buffer[0].forEachBox((minX, minY, minZ, maxX, maxY, maxZ) -> buffer[1] = VoxelShapes.union(buffer[1], VoxelShapes.cuboid(1-maxZ, minY, minX, 1-minZ, maxY, maxX))); + buffer[0] = buffer[1]; + buffer[1] = VoxelShapes.empty(); + } + + return buffer[0]; + } + public boolean canPlaceAt(BlockState state, WorldView worldView, BlockPos pos) { + return !worldView.isAir(pos.north()) | !worldView.isAir(pos.east()) | !worldView.isAir(pos.south()) | !worldView.isAir(pos.west()); + } + @Override + public BlockEntity createBlockEntity(BlockView world) { + return new ShowerHeadBlockEntity(); + } + +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/Sign.java b/src/main/java/eu/midnightdust/motschen/decorative/block/Sign.java index 0e033e8..7835372 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/Sign.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/Sign.java @@ -2,23 +2,14 @@ package eu.midnightdust.motschen.decorative.block; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; -import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateManager; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; -import net.minecraft.world.World; import net.minecraft.world.WorldView; public class Sign extends HorizontalFacingBlock { diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/SlidingDoor.java b/src/main/java/eu/midnightdust/motschen/decorative/block/SlidingDoor.java index 34946c2..4a9b705 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/SlidingDoor.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/SlidingDoor.java @@ -4,7 +4,6 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; import net.minecraft.block.enums.DoorHinge; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemPlacementContext; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; @@ -17,7 +16,6 @@ import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; -import net.minecraft.world.WorldView; public class SlidingDoor extends DoorBlock { diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/Springboard.java b/src/main/java/eu/midnightdust/motschen/decorative/block/Springboard.java new file mode 100644 index 0000000..da1b425 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/Springboard.java @@ -0,0 +1,235 @@ +package eu.midnightdust.motschen.decorative.block; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.Part; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.*; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.EnumProperty; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; +import net.minecraft.world.WorldView; + +public class Springboard extends HorizontalFacingBlock { + private static final VoxelShape NORTH_SHAPE_FRONT; + private static final VoxelShape EAST_SHAPE_FRONT; + private static final VoxelShape SOUTH_SHAPE_FRONT; + private static final VoxelShape WEST_SHAPE_FRONT; + private static final VoxelShape NORTH_SHAPE_BACK; + private static final VoxelShape EAST_SHAPE_BACK; + private static final VoxelShape SOUTH_SHAPE_BACK; + private static final VoxelShape WEST_SHAPE_BACK; + private static final EnumProperty PART = DecorativeMain.PART; + + public Springboard() { + super(FabricBlockSettings.copy(Blocks.STONE).nonOpaque().sounds(BlockSoundGroup.STONE)); + this.setDefaultState(this.stateManager.getDefaultState().with(FACING, Direction.NORTH).with(PART, Part.BACK)); + } + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + ItemStack itemStack = player.getStackInHand(hand); + if (!world.isClient) { + if (itemStack.isEmpty() && hand==Hand.MAIN_HAND) { + switch (state.get(PART)) { + case FRONT: + if (player.getY() >= pos.getY()+0.1 && player.squaredDistanceTo(pos.getX(), pos.getY(), pos.getZ()) <= 1.0) { + player.addStatusEffect(new StatusEffectInstance(StatusEffects.LEVITATION, 10, 10)); + return ActionResult.SUCCESS; + } + else return ActionResult.FAIL; + default: + return ActionResult.FAIL; + } + } + else return ActionResult.FAIL; + } + else return ActionResult.FAIL; + } + @Override + public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) { + return super.getPlacementState(itemPlacementContext) + .with(FACING, itemPlacementContext.getPlayerFacing()) + .with(PART, Part.BACK); + } + + @Override + public void onPlaced(World arg, BlockPos pos, BlockState state, LivingEntity arg4, ItemStack arg5) { + switch (state.get(PART)) { + case BACK: switch (state.get(FACING)) { + case NORTH: + if (!arg.getBlockState(pos.north()).isAir()) { + arg.breakBlock(pos, true); + } + else { + arg.setBlockState(pos.north(), state.with(PART, Part.FRONT).with(FACING, Direction.NORTH)); + } + return; + case EAST: + if (!arg.getBlockState(pos.east()).isAir()) { + arg.breakBlock(pos, true); + } + else { + arg.setBlockState(pos.east(), state.with(PART, Part.FRONT).with(FACING, Direction.EAST)); + } + return; + case SOUTH: + if (!arg.getBlockState(pos.south()).isAir()) { + arg.breakBlock(pos, true); + } + else { + arg.setBlockState(pos.south(), state.with(PART, Part.FRONT).with(FACING, Direction.SOUTH)); + } + return; + case WEST: + if (!arg.getBlockState(pos.west()).isAir()) { + arg.breakBlock(pos, true); + } + else { + arg.setBlockState(pos.west(), state.with(PART, Part.FRONT).with(FACING, Direction.WEST)); + } + return; + default: + return; + } + default: return; + } + } + @Override + public void onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { + switch (state.get(PART)) { + case BACK: switch (state.get(FACING)) { + case NORTH: + if (world.getBlockState(pos.north()).contains(PART)) { world.breakBlock(pos.north(), true);} + return; + case EAST: + if (world.getBlockState(pos.east()).contains(PART)) { world.breakBlock(pos.east(), true);} + return; + case SOUTH: + if (world.getBlockState(pos.south()).contains(PART)) { world.breakBlock(pos.south(), true);} + + return; + case WEST: + if (world.getBlockState(pos.west()).contains(PART)) { world.breakBlock(pos.west(), true);} + return; + default: + return; + } + case FRONT: switch (state.get(FACING)) { + case NORTH: + if (world.getBlockState(pos.south()).contains(PART)) { world.breakBlock(pos.south(), true); } + return; + case EAST: + if (world.getBlockState(pos.west()).contains(PART)) { world.breakBlock(pos.south(), true); } + return; + case SOUTH: + if (world.getBlockState(pos.north()).contains(PART)) { world.breakBlock(pos.south(), true); } + return; + case WEST: + if (world.getBlockState(pos.east()).contains(PART)) { world.breakBlock(pos.south(), true); } + return; + default: + return; + } + default: return; + } + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(FACING); + builder.add(PART); + } + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) { + switch (state.get(FACING)) { + case NORTH: switch (state.get(PART)) { case FRONT: return NORTH_SHAPE_FRONT; case BACK: return NORTH_SHAPE_BACK;} + case EAST: switch (state.get(PART)) { case FRONT: return EAST_SHAPE_FRONT; case BACK: return EAST_SHAPE_BACK;} + case SOUTH: switch (state.get(PART)) { case FRONT: return SOUTH_SHAPE_FRONT; case BACK: return SOUTH_SHAPE_BACK;} + case WEST: switch (state.get(PART)) { case FRONT: return WEST_SHAPE_FRONT; case BACK: return WEST_SHAPE_BACK;} + default: return super.getOutlineShape(state, view, pos, context); + } + } + static { + //long_plank + VoxelShape front1 = createCuboidShape(1, 2, 0, 15, 3, 28); + VoxelShape back1 = createCuboidShape(1, 2, -16, 15, 3, 12); + //plank-y + VoxelShape front2 = createCuboidShape(1, 1, 21, 15, 2, 30); + VoxelShape back2 = createCuboidShape(1, 1, 5, 15, 2, 14); + //plank--y + VoxelShape front3 = createCuboidShape(1, 0, 23, 15, 1, 32); + VoxelShape back3 = createCuboidShape(1, 0, 7, 15, 1, 16); + //lower_siding + VoxelShape front4left = createCuboidShape(0, 0, 8, 1, 1, 32); + VoxelShape back4left = createCuboidShape(0, 0, -8, 1, 1, 16); + VoxelShape front4right = createCuboidShape(15, 0, 8, 16, 1, 32); + VoxelShape back4right = createCuboidShape(15, 0, -8, 16, 1, 16); + //upper_siding + VoxelShape front5left = createCuboidShape(0, 6, 9, 1, 7, 31); + VoxelShape back5left = createCuboidShape(0, 6, -7, 1, 7, 15); + VoxelShape front5right = createCuboidShape(15, 6, 9, 16, 7, 31); + VoxelShape back5right = createCuboidShape(15, 6, -7, 16, 7, 15); + //siding_front + VoxelShape front6left = createCuboidShape(0, 1, 31, 1, 6, 32); + VoxelShape back6left = createCuboidShape(0, 1, 15, 1, 6, 16); + VoxelShape front6right = createCuboidShape(15, 1, 31, 16, 6, 32); + VoxelShape back6right = createCuboidShape(15, 1, 15, 16, 6, 16); + //siding_back + VoxelShape front7left = createCuboidShape(0, 1, 8, 1, 6, 9); + VoxelShape back7left = createCuboidShape(0, 1, -8, 1, 6, -7); + VoxelShape front7right = createCuboidShape(15, 1, 8, 16, 6, 9); + VoxelShape back7right = createCuboidShape(15, 1, -8, 16, 6, -7); + //dot_front + VoxelShape front8left = createCuboidShape(0, 5, 30, 1, 6, 31); + VoxelShape back8left = createCuboidShape(0, 5, 14, 1, 6, 15); + VoxelShape front8right = createCuboidShape(15, 5, 30, 16, 6, 31); + VoxelShape back8right = createCuboidShape(15, 5, 14, 16, 6, 15); + //dot_back + VoxelShape front9left = createCuboidShape(0, 5, 9, 1, 6, 10); + VoxelShape back9left = createCuboidShape(0, 5, -7, 1, 6, -6); + VoxelShape front9right = createCuboidShape(15, 5, 9, 16, 6, 10); + VoxelShape back9right = createCuboidShape(15, 5, -7, 16, 6, -6); + //union + VoxelShape front = VoxelShapes.union(front1, front2, front3, front4left, front4right, front5left, front5right, front6left, front6right, front7left, front7right, front8left, front8right, front9left, front9right); + VoxelShape back = VoxelShapes.union(back1, back2, back3, back4left, back4right, back5left, back5right, back6left, back6right, back7left, back7right, back8left, back8right, back9left, back9right); + + NORTH_SHAPE_FRONT = front; + WEST_SHAPE_FRONT = rotate(Direction.EAST, Direction.NORTH, front); + EAST_SHAPE_FRONT = rotate(Direction.EAST, Direction.SOUTH, front); + SOUTH_SHAPE_FRONT = rotate(Direction.EAST, Direction.WEST, front); + NORTH_SHAPE_BACK = back; + WEST_SHAPE_BACK = rotate(Direction.EAST, Direction.NORTH, back); + EAST_SHAPE_BACK = rotate(Direction.EAST, Direction.SOUTH, back); + SOUTH_SHAPE_BACK = rotate(Direction.EAST, Direction.WEST, back); + } + private static VoxelShape rotate(Direction from, Direction to, VoxelShape shape) { + VoxelShape[] buffer = new VoxelShape[]{ shape, VoxelShapes.empty() }; + + int times = (to.getHorizontal() - from.getHorizontal() + 4) % 4; + for (int i = 0; i < times; i++) { + buffer[0].forEachBox((minX, minY, minZ, maxX, maxY, maxZ) -> buffer[1] = VoxelShapes.union(buffer[1], VoxelShapes.cuboid(1-maxZ, minY, minX, 1-minZ, maxY, maxX))); + buffer[0] = buffer[1]; + buffer[1] = VoxelShapes.empty(); + } + + return buffer[0]; + } + + public boolean canPlaceAt(BlockState state, WorldView worldView, BlockPos pos) { + return !worldView.isAir(pos.down()); + } + +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/TrafficCone.java b/src/main/java/eu/midnightdust/motschen/decorative/block/TrafficCone.java index 1ada744..b0f7ec2 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/TrafficCone.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/TrafficCone.java @@ -2,23 +2,10 @@ package eu.midnightdust.motschen.decorative.block; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemPlacementContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; import net.minecraft.sound.BlockSoundGroup; -import net.minecraft.sound.SoundCategory; -import net.minecraft.sound.SoundEvents; -import net.minecraft.state.StateManager; -import net.minecraft.util.ActionResult; -import net.minecraft.util.Hand; -import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; -import net.minecraft.world.World; import net.minecraft.world.WorldView; public class TrafficCone extends Block { diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/WaterPump.java b/src/main/java/eu/midnightdust/motschen/decorative/block/WaterPump.java index 0ff890c..e105103 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/block/WaterPump.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/WaterPump.java @@ -2,18 +2,11 @@ package eu.midnightdust.motschen.decorative.block; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.*; -import net.minecraft.block.entity.BannerBlockEntity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.fluid.WaterFluid; import net.minecraft.item.*; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.potion.PotionUtil; -import net.minecraft.potion.Potions; -import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; -import net.minecraft.stat.Stats; import net.minecraft.state.StateManager; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; @@ -38,7 +31,7 @@ public class WaterPump extends HorizontalFacingBlock { } public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { ItemStack itemStack = player.getStackInHand(hand); - if (!itemStack.isEmpty()) { + if (!itemStack.isEmpty() && hand==Hand.MAIN_HAND) { if (itemStack.getItem() == Items.BUCKET) { if (!world.isClient) { if (!player.abilities.creativeMode) { diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/PoolSprinklerBlockEntity.java b/src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/PoolSprinklerBlockEntity.java new file mode 100644 index 0000000..bc7022c --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/PoolSprinklerBlockEntity.java @@ -0,0 +1,32 @@ +package eu.midnightdust.motschen.decorative.block.blockentity; + +import eu.midnightdust.motschen.decorative.block.PoolSprinkler; +import eu.midnightdust.motschen.decorative.init.BlockEntities; +import eu.midnightdust.motschen.decorative.init.Pool; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.util.Tickable; +import net.minecraft.util.math.BlockPos; + +public class PoolSprinklerBlockEntity extends BlockEntity implements Tickable { + + public PoolSprinklerBlockEntity() { + super(BlockEntities.PoolSprinklerBlockEntity); + } + + @Override + public void tick() { + BlockPos pos = this.pos; + BlockState state = this.world.getBlockState(pos); + if (world != null && state.get(PoolSprinkler.POWERED) == true) { + switch (state.get(PoolSprinkler.FACING)) { + case NORTH: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()+0.5,pos.getY()+0.5,pos.getZ()-0.34,1,1,1); return; + case EAST: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()+1.34,pos.getY()+0.5,pos.getZ()+0.5,1,1,1); return; + case SOUTH: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()+0.5,pos.getY()+0.5,pos.getZ()+1.34,1,1,1); return; + case WEST: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()-0.34,pos.getY()+0.5,pos.getZ()+0.5,1,1,1); return; + default: return; + } + } + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/ShowerHeadBlockEntity.java b/src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/ShowerHeadBlockEntity.java new file mode 100644 index 0000000..5a06de4 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/block/blockentity/ShowerHeadBlockEntity.java @@ -0,0 +1,32 @@ +package eu.midnightdust.motschen.decorative.block.blockentity; + +import eu.midnightdust.motschen.decorative.block.PoolSprinkler; +import eu.midnightdust.motschen.decorative.init.BlockEntities; +import eu.midnightdust.motschen.decorative.init.Pool; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.particle.ParticleTypes; +import net.minecraft.util.Tickable; +import net.minecraft.util.math.BlockPos; + +public class ShowerHeadBlockEntity extends BlockEntity implements Tickable { + + public ShowerHeadBlockEntity() { + super(BlockEntities.ShowerHeadBlockEntity); + } + + @Override + public void tick() { + BlockPos pos = this.pos; + BlockState state = this.world.getBlockState(pos); + if (world != null && state.get(PoolSprinkler.POWERED) == true) { + switch (state.get(PoolSprinkler.FACING)) { + case NORTH: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()+0.5,pos.getY()+0.5,pos.getZ()+0.625,1,1,1); return; + case EAST: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()+0.375,pos.getY()+0.5,pos.getZ()+0.5,1,1,1); return; + case SOUTH: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()+0.5,pos.getY()+0.5,pos.getZ()+0.375,1,1,1); return; + case WEST: world.addParticle(ParticleTypes.DRIPPING_WATER,pos.getX()+0.625,pos.getY()+0.5,pos.getZ()+0.5,1,1,1); return; + default: return; + } + } + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/BathTireEntity.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/BathTireEntity.java new file mode 100644 index 0000000..f02a6ed --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/BathTireEntity.java @@ -0,0 +1,129 @@ +package eu.midnightdust.motschen.decorative.entity; + +import net.minecraft.block.BlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.passive.PigEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.fluid.Fluid; +import net.minecraft.item.ItemStack; +import net.minecraft.sound.SoundEvent; +import net.minecraft.tag.Tag; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; + +public class BathTireEntity extends PigEntity { + public BathTireEntity(EntityType entityType, World world) { + super(entityType, world); + } + + @Override + protected int getCurrentExperience(PlayerEntity player) { + return 0; + } + + @Override + protected SoundEvent getAmbientSound() { + return null; + } + + @Override + protected SoundEvent getHurtSound(DamageSource source) { + return null; + } + + @Override + protected SoundEvent getDeathSound() { + return null; + } + + protected void playStepSound(BlockPos pos, BlockState state) { + } + + @Override + public boolean canEat() { + return false; + } + + @Override + protected void swimUpward(Tag fluid) { + if (this.getNavigation().canSwim()) { + super.swimUpward(fluid); + } else { + this.setVelocity(this.getVelocity().add(0.0D, 0.7D, 0.0D)); + } + + } + + @Override + public double getHeightOffset() { + return 0.0D; + } + + @Override + public boolean canWalkOnFluid(Fluid fluid) { + return true; + } + + @Override + public float getSaddledSpeed() { + return 0; + } + + @Override + protected void initGoals() { } + + @Override + public boolean canBeRiddenInWater() { + return true; + } + + @Override + protected int computeFallDamage(float fallDistance, float damageMultiplier) { + return 0; + } + + @Override + public boolean cannotDespawn() { + return true; + } + + @Override + protected boolean movesIndependently() { + return false; + } + + @Override + public boolean canMoveVoluntarily() { + return false; + } + + @Override + public boolean canBeControlledByRider() { + return true; + } + + @Override + public ActionResult interactAt(PlayerEntity player, Vec3d hitPos, Hand hand) { + if(!player.getEntityWorld().isClient && player.getStackInHand(hand)== ItemStack.EMPTY && hand==Hand.MAIN_HAND) + { + player.startRiding(this,true); + return ActionResult.SUCCESS; + } + return ActionResult.FAIL; + } + + @Override + public void updatePassengerPosition(Entity passenger) { + if(this.getPrimaryPassenger() instanceof PlayerEntity) + { + passenger.updatePosition(this.getX(),this.getY(),this.getZ()); + } + } + + +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/BeachBallEntity.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/BeachBallEntity.java new file mode 100644 index 0000000..0daf59b --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/BeachBallEntity.java @@ -0,0 +1,126 @@ +package eu.midnightdust.motschen.decorative.entity; + +import eu.midnightdust.motschen.decorative.init.Pool; +import net.minecraft.block.BlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.passive.PigEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.fluid.Fluid; +import net.minecraft.item.ItemStack; +import net.minecraft.sound.SoundEvent; +import net.minecraft.tag.Tag; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; + +public class BeachBallEntity extends PigEntity { + public BeachBallEntity(EntityType entityType, World world) { + super(entityType, world); + } + + @Override + protected int getCurrentExperience(PlayerEntity player) { + return 0; + } + + @Override + protected SoundEvent getAmbientSound() { + return null; + } + + @Override + protected SoundEvent getHurtSound(DamageSource source) { + return null; + } + + @Override + protected SoundEvent getDeathSound() { + return null; + } + + protected void playStepSound(BlockPos pos, BlockState state) { + } + + @Override + public boolean canEat() { + return false; + } + + @Override + protected void swimUpward(Tag fluid) { + this.setVelocity(this.getVelocity().add(0.0D, 1.0D, 0.0D)); + } + + @Override + public double getHeightOffset() { + return 0.0D; + } + + @Override + public boolean canWalkOnFluid(Fluid fluid) { + return true; + } + + @Override + public float getSaddledSpeed() { + return 0; + } + + @Override + protected void initGoals() { } + + @Override + public boolean canBeRiddenInWater() { + return true; + } + + @Override + protected int computeFallDamage(float fallDistance, float damageMultiplier) { + return 0; + } + + @Override + public boolean cannotDespawn() { + return true; + } + + @Override + protected boolean movesIndependently() { + return false; + } + + @Override + public boolean canMoveVoluntarily() { + return false; + } + + @Override + public boolean canBeControlledByRider() { + return true; + } + + @Override + public ActionResult interactAt(PlayerEntity player, Vec3d hitPos, Hand hand) { + if(!player.getEntityWorld().isClient && player.getStackInHand(hand)== ItemStack.EMPTY && hand==Hand.MAIN_HAND && player.isSneaking()) + { + remove(); + player.setStackInHand(hand, new ItemStack(Pool.BEACH_BALL_ITEM)); + return ActionResult.SUCCESS; + } + return ActionResult.FAIL; + } + + @Override + public void updatePassengerPosition(Entity passenger) { + if(this.getPrimaryPassenger() instanceof PlayerEntity) + { + passenger.updatePosition(this.getX(),this.getY(),this.getZ()); + } + } + + +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BathTireModel.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BathTireModel.java new file mode 100644 index 0000000..7041214 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BathTireModel.java @@ -0,0 +1,39 @@ +package eu.midnightdust.motschen.decorative.entity.client.model; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.util.math.MatrixStack; + +public class BathTireModel extends EntityModel { + private final ModelPart body; + + public BathTireModel() { + textureWidth = 16; + textureHeight = 16; + + body = new ModelPart(this); + body.setPivot(0.0F, 24.0F, 0.0F); + body.setTextureOffset(0, 0).addCuboid(6.0F, -9.0F, -11.0F, 4.0F, 4.0F, 16.0F, 0.0F, false); + body.setTextureOffset(0, 0).addCuboid(-10.0F, -9.0F, -11.0F, 4.0F, 4.0F, 16.0F, 0.0F, false); + body.setTextureOffset(0, 0).addCuboid(-8.0F, -8.99F, -13.0F, 16.0F, 4.0F, 4.0F, 0.0F, false); + body.setTextureOffset(0, 0).addCuboid(-8.0F, -8.99F, 3.0F, 16.0F, 4.0F, 4.0F, 0.0F, false); + } + + @Override + public void setAngles(BathTireEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch){ + //previously the render function, render code was moved to a method below + } + + @Override + public void render(MatrixStack matrixStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ + body.render(matrixStack, buffer, packedLight, packedOverlay); + } + + public void setRotationAngle(ModelPart modelRenderer, float x, float y, float z) { + modelRenderer.pivotX = x; + modelRenderer.pivotY = y; + modelRenderer.pivotZ = z; + } +} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BeachBallModel.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BeachBallModel.java new file mode 100644 index 0000000..32a683c --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/BeachBallModel.java @@ -0,0 +1,42 @@ +package eu.midnightdust.motschen.decorative.entity.client.model; + +import eu.midnightdust.motschen.decorative.entity.BeachBallEntity; +import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.util.math.MatrixStack; + +public class BeachBallModel extends EntityModel { + private final ModelPart body; + + public BeachBallModel() { + textureWidth = 64; + textureHeight = 64; + + body = new ModelPart(this); + body.setPivot(0.0F, 24.0F, 0.0F); + body.setTextureOffset(0, 22).addCuboid(-4.0F, -1.0F, -4.0F, 8.0F, 1.0F, 8.0F, 0.0F, false); + body.setTextureOffset(0, 22).addCuboid(-4.0F, -12.0F, -4.0F, 8.0F, 1.0F, 8.0F, 0.0F, false); + body.setTextureOffset(0, 48).addCuboid(-6.0F, -10.0F, -4.0F, 1.0F, 8.0F, 8.0F, 0.0F, false); + body.setTextureOffset(20, 48).addCuboid(5.0F, -10.0F, -4.0F, 1.0F, 8.0F, 8.0F, 0.0F, false); + body.setTextureOffset(0, 33).addCuboid(-4.0F, -10.0F, -6.0F, 8.0F, 8.0F, 1.0F, 0.0F, false); + body.setTextureOffset(20, 33).addCuboid(-4.0F, -10.0F, 5.0F, 8.0F, 8.0F, 1.0F, 0.0F, false); + body.setTextureOffset(0, 0).addCuboid(-5.0F, -11.0F, -5.0F, 10.0F, 10.0F, 10.0F, 0.0F, false); + } + + @Override + public void setAngles(BeachBallEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch){ + //previously the render function, render code was moved to a method below + } + + @Override + public void render(MatrixStack matrixStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ + body.render(matrixStack, buffer, packedLight, packedOverlay); + } + + public void setRotationAngle(ModelPart modelRenderer, float x, float y, float z) { + modelRenderer.pivotX = x; + modelRenderer.pivotY = y; + modelRenderer.pivotZ = z; + } +} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/DuckBathTireModel.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/DuckBathTireModel.java new file mode 100644 index 0000000..1252300 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/model/DuckBathTireModel.java @@ -0,0 +1,47 @@ +package eu.midnightdust.motschen.decorative.entity.client.model; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import net.minecraft.client.model.ModelPart; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.util.math.MatrixStack; + +public class DuckBathTireModel extends EntityModel { + private final ModelPart body; + + public DuckBathTireModel() { + textureWidth = 64; + textureHeight = 64; + + body = new ModelPart(this); + body.setPivot(0.0F, 19.0F, 0.0F); + body.setTextureOffset(0, 9).addCuboid(6.0F, -3.0F, -8.0F, 4.0F, 3.0F, 16.0F, 0.0F, false); + body.setTextureOffset(0, 37).addCuboid(-10.0F, -3.0F, -8.0F, 4.0F, 3.0F, 16.0F, 0.0F, false); + body.setTextureOffset(0, 57).addCuboid(-8.0F, -2.99F, -10.0F, 16.0F, 3.0F, 4.0F, 0.0F, false); + body.setTextureOffset(0, 29).addCuboid(-8.0F, -2.99F, 6.0F, 16.0F, 3.0F, 4.0F, 0.0F, false); + body.setTextureOffset(50, 0).addCuboid(-2.0F, -8.0F, -10.0F, 4.0F, 5.0F, 3.0F, 0.0F, false); + body.setTextureOffset(46, 11).addCuboid(-2.999F, -10.0F, -12.0F, 6.0F, 5.0F, 3.0F, 0.0F, false); + body.setTextureOffset(15, 31).addCuboid(-2.499F, -10.5F, -12.001F, 5.0F, 1.0F, 3.0F, 0.0F, false); + body.setTextureOffset(58, 20).addCuboid(-0.999F, -8.0F, -13.0F, 2.0F, 2.0F, 1.0F, 0.0F, false); + body.setTextureOffset(58, 20).addCuboid(-1.999F, -7.0F, -13.0F, 1.0F, 1.0F, 1.0F, 0.0F, false); + body.setTextureOffset(53, 21).addCuboid(-1.999F, -10.0F, -12.5F, 1.0F, 1.0F, 1.0F, 0.0F, false); + body.setTextureOffset(53, 21).addCuboid(1.001F, -10.0F, -12.5F, 1.0F, 1.0F, 1.0F, 0.0F, false); + body.setTextureOffset(58, 20).addCuboid(1.001F, -7.0F, -13.0F, 1.0F, 1.0F, 1.0F, 0.0F, false); + } + + @Override + public void setAngles(BathTireEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch){ + //previously the render function, render code was moved to a method below + } + + @Override + public void render(MatrixStack matrixStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ + body.render(matrixStack, buffer, packedLight, packedOverlay); + } + + public void setRotationAngle(ModelPart modelRenderer, float x, float y, float z) { + modelRenderer.pivotX = x; + modelRenderer.pivotY = y; + modelRenderer.pivotZ = z; + } +} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BeachBallRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BeachBallRenderer.java new file mode 100644 index 0000000..9fe3bac --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BeachBallRenderer.java @@ -0,0 +1,23 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.entity.BeachBallEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BeachBallModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class BeachBallRenderer extends MobEntityRenderer { + + public BeachBallRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BeachBallModel(), 0.5F); + } + + @Override + public Identifier getTexture(BeachBallEntity entity) { + return new Identifier(DecorativeMain.MOD_ID, "textures/entity/beach_ball.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlackBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlackBathTireRenderer.java new file mode 100644 index 0000000..1b8ceab --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlackBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class BlackBathTireRenderer extends MobEntityRenderer { + + public BlackBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/black_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlueBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlueBathTireRenderer.java new file mode 100644 index 0000000..d19a4ab --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BlueBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class BlueBathTireRenderer extends MobEntityRenderer { + + public BlueBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/blue_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BrownBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BrownBathTireRenderer.java new file mode 100644 index 0000000..f688226 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/BrownBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class BrownBathTireRenderer extends MobEntityRenderer { + + public BrownBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/brown_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/CyanBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/CyanBathTireRenderer.java new file mode 100644 index 0000000..d231fd7 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/CyanBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class CyanBathTireRenderer extends MobEntityRenderer { + + public CyanBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/cyan_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/DuckBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/DuckBathTireRenderer.java new file mode 100644 index 0000000..1075baf --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/DuckBathTireRenderer.java @@ -0,0 +1,23 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.BeachBallEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BeachBallModel; +import eu.midnightdust.motschen.decorative.entity.client.model.DuckBathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class DuckBathTireRenderer extends MobEntityRenderer { + + public DuckBathTireRenderer(EntityRenderDispatcher dispatcher) { super(dispatcher, new DuckBathTireModel(), 0.5F); } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier(DecorativeMain.MOD_ID, "textures/entity/duck_bath_tire.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GrayBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GrayBathTireRenderer.java new file mode 100644 index 0000000..9008586 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GrayBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class GrayBathTireRenderer extends MobEntityRenderer { + + public GrayBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/gray_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GreenBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GreenBathTireRenderer.java new file mode 100644 index 0000000..1385fc8 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/GreenBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class GreenBathTireRenderer extends MobEntityRenderer { + + public GreenBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/green_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightBlueBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightBlueBathTireRenderer.java new file mode 100644 index 0000000..5fb3024 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightBlueBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class LightBlueBathTireRenderer extends MobEntityRenderer { + + public LightBlueBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/light_blue_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightGrayBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightGrayBathTireRenderer.java new file mode 100644 index 0000000..576f221 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LightGrayBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class LightGrayBathTireRenderer extends MobEntityRenderer { + + public LightGrayBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/light_gray_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LimeBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LimeBathTireRenderer.java new file mode 100644 index 0000000..6fbe6c2 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/LimeBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class LimeBathTireRenderer extends MobEntityRenderer { + + public LimeBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/lime_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/MagentaBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/MagentaBathTireRenderer.java new file mode 100644 index 0000000..b42548c --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/MagentaBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class MagentaBathTireRenderer extends MobEntityRenderer { + + public MagentaBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/magenta_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/OrangeBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/OrangeBathTireRenderer.java new file mode 100644 index 0000000..1a5be8e --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/OrangeBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class OrangeBathTireRenderer extends MobEntityRenderer { + + public OrangeBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/orange_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PinkBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PinkBathTireRenderer.java new file mode 100644 index 0000000..d296d82 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PinkBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class PinkBathTireRenderer extends MobEntityRenderer { + + public PinkBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/pink_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PurpleBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PurpleBathTireRenderer.java new file mode 100644 index 0000000..271d0e3 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/PurpleBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class PurpleBathTireRenderer extends MobEntityRenderer { + + public PurpleBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/purple_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/RedBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/RedBathTireRenderer.java new file mode 100644 index 0000000..f68bd04 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/RedBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class RedBathTireRenderer extends MobEntityRenderer { + + public RedBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/red_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/WhiteBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/WhiteBathTireRenderer.java new file mode 100644 index 0000000..6b6ca38 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/WhiteBathTireRenderer.java @@ -0,0 +1,23 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class WhiteBathTireRenderer extends MobEntityRenderer { + + public WhiteBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/white_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/YellowBathTireRenderer.java b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/YellowBathTireRenderer.java new file mode 100644 index 0000000..af5770c --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/entity/client/renderer/YellowBathTireRenderer.java @@ -0,0 +1,22 @@ +package eu.midnightdust.motschen.decorative.entity.client.renderer; + +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.entity.client.model.BathTireModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRenderDispatcher; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.util.Identifier; + +@Environment(EnvType.CLIENT) +public class YellowBathTireRenderer extends MobEntityRenderer { + + public YellowBathTireRenderer(EntityRenderDispatcher dispatcher) { + super(dispatcher, new BathTireModel(), 0.5F); + } + + @Override + public Identifier getTexture(BathTireEntity entity) { + return new Identifier("minecraft", "textures/block/yellow_concrete.png"); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/init/BathTires.java b/src/main/java/eu/midnightdust/motschen/decorative/init/BathTires.java new file mode 100644 index 0000000..24cbb6f --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/init/BathTires.java @@ -0,0 +1,91 @@ +package eu.midnightdust.motschen.decorative.init; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.entity.BathTireEntity; +import eu.midnightdust.motschen.decorative.item.BathTireItem; +import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; +import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder; +import net.minecraft.entity.EntityDimensions; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnGroup; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.mob.MobEntity; +import net.minecraft.item.Item; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; + +public class BathTires { + public static final EntityType WHITE_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","white_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType ORANGE_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","orange_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType MAGENTA_BATH_TIRE= + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","magenta_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType LIGHT_BLUE_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","light_blue_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType YELLOW_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","yellow_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType LIME_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","lime_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType PINK_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","pink_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType GRAY_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","gray_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType LIGHT_GRAY_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","light_gray_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType CYAN_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","cyan_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType PURPLE_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","purple_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType BLUE_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","blue_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType BROWN_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","brown_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType GREEN_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","green_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType RED_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","red_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + public static final EntityType BLACK_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","black_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + + public static final EntityType DUCK_BATH_TIRE = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","duck_bath_tire"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT,BathTireEntity::new).dimensions(EntityDimensions.fixed(1.5f,1)).trackable(100,4).build()); + + public static void init() { + Registry.register(Registry.ITEM, new Identifier("decorative","white_bath_tire"), new BathTireItem(WHITE_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(WHITE_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","orange_bath_tire"), new BathTireItem(ORANGE_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(ORANGE_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","magenta_bath_tire"), new BathTireItem(MAGENTA_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(MAGENTA_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","light_blue_bath_tire"), new BathTireItem(LIGHT_BLUE_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(LIGHT_BLUE_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","yellow_bath_tire"), new BathTireItem(YELLOW_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(YELLOW_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","lime_bath_tire"), new BathTireItem(LIME_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(LIME_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","pink_bath_tire"), new BathTireItem(PINK_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(PINK_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","gray_bath_tire"), new BathTireItem(GRAY_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(GRAY_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","light_gray_bath_tire"), new BathTireItem(LIGHT_GRAY_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(LIGHT_GRAY_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","cyan_bath_tire"), new BathTireItem(CYAN_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(CYAN_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","purple_bath_tire"), new BathTireItem(PURPLE_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(PURPLE_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","blue_bath_tire"), new BathTireItem(BLUE_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(BLUE_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","brown_bath_tire"), new BathTireItem(BROWN_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(BROWN_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","green_bath_tire"), new BathTireItem(GREEN_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(GREEN_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","red_bath_tire"), new BathTireItem(RED_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(RED_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + Registry.register(Registry.ITEM, new Identifier("decorative","black_bath_tire"), new BathTireItem(BLACK_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(BLACK_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + + Registry.register(Registry.ITEM, new Identifier("decorative","duck_bath_tire"), new BathTireItem(DUCK_BATH_TIRE, new Item.Settings().group(DecorativeMain.PoolGroup))); + FabricDefaultAttributeRegistry.register(DUCK_BATH_TIRE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 2.0D)); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/init/BlockEntities.java b/src/main/java/eu/midnightdust/motschen/decorative/init/BlockEntities.java new file mode 100644 index 0000000..ac59c19 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/init/BlockEntities.java @@ -0,0 +1,20 @@ +package eu.midnightdust.motschen.decorative.init; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.block.blockentity.PoolSprinklerBlockEntity; +import eu.midnightdust.motschen.decorative.block.blockentity.ShowerHeadBlockEntity; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; + +public class BlockEntities { + + public static BlockEntityType PoolSprinklerBlockEntity; + public static BlockEntityType ShowerHeadBlockEntity; + + public static void init() { + PoolSprinklerBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier("decorative","pool_sprinkler_blockentity"), BlockEntityType.Builder.create(PoolSprinklerBlockEntity::new, Pool.PoolSprinkler).build(null)); + ShowerHeadBlockEntity = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier("decorative","shower_head_blockentity"), BlockEntityType.Builder.create(ShowerHeadBlockEntity::new, DecorativeMain.ShowerHead).build(null)); + + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/init/LogsWithAxes.java b/src/main/java/eu/midnightdust/motschen/decorative/init/LogsWithAxes.java index 1e6c2b6..6a16248 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/init/LogsWithAxes.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/init/LogsWithAxes.java @@ -1,7 +1,6 @@ package eu.midnightdust.motschen.decorative.init; import eu.midnightdust.motschen.decorative.DecorativeMain; -import eu.midnightdust.motschen.decorative.block.Lamp; import eu.midnightdust.motschen.decorative.block.LogWithAxe; import net.minecraft.block.Block; import net.minecraft.item.BlockItem; diff --git a/src/main/java/eu/midnightdust/motschen/decorative/init/Pool.java b/src/main/java/eu/midnightdust/motschen/decorative/init/Pool.java new file mode 100644 index 0000000..bf8eb28 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/init/Pool.java @@ -0,0 +1,42 @@ +package eu.midnightdust.motschen.decorative.init; + +import eu.midnightdust.motschen.decorative.DecorativeMain; +import eu.midnightdust.motschen.decorative.block.PoolSprinkler; +import eu.midnightdust.motschen.decorative.block.PoolWall; +import eu.midnightdust.motschen.decorative.block.Springboard; +import eu.midnightdust.motschen.decorative.entity.BeachBallEntity; +import eu.midnightdust.motschen.decorative.item.BathTireItem; +import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; +import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityDimensions; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnGroup; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.mob.MobEntity; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; + +public class Pool { + + public static final EntityType BEACH_BALL = + Registry.register(Registry.ENTITY_TYPE,new Identifier("decorative","beach_ball"), FabricEntityTypeBuilder.create(SpawnGroup.AMBIENT, BeachBallEntity::new).dimensions(EntityDimensions.fixed(0.9f,0.9f)).trackable(100,4).build()); + public static Item BEACH_BALL_ITEM = new BathTireItem(BEACH_BALL, new Item.Settings().group(DecorativeMain.PoolGroup)); + public static Block PoolWall = new PoolWall(); + public static Block Springboard = new Springboard(); + public static Block PoolSprinkler = new PoolSprinkler(); + + public static void init() { + Registry.register(Registry.BLOCK, new Identifier("decorative","pool_wall"), PoolWall); + Registry.register(Registry.ITEM, new Identifier("decorative","pool_wall"), new BlockItem(PoolWall, new Item.Settings().group(DecorativeMain.PoolGroup))); + Registry.register(Registry.BLOCK, new Identifier("decorative","springboard"), Springboard); + Registry.register(Registry.ITEM, new Identifier("decorative","springboard"), new BlockItem(Springboard, new Item.Settings().group(DecorativeMain.PoolGroup))); + Registry.register(Registry.BLOCK, new Identifier("decorative","pool_sprinkler"), PoolSprinkler); + Registry.register(Registry.ITEM, new Identifier("decorative","pool_sprinkler"), new BlockItem(PoolSprinkler, new Item.Settings().group(DecorativeMain.PoolGroup))); + Registry.register(Registry.ITEM, new Identifier("decorative","beach_ball"), BEACH_BALL_ITEM); + FabricDefaultAttributeRegistry.register(BEACH_BALL, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 100000.0D).add(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, -10D)); + BathTires.init(); + } +} diff --git a/src/main/java/eu/midnightdust/motschen/decorative/init/Signs.java b/src/main/java/eu/midnightdust/motschen/decorative/init/Signs.java index 1cf75b9..b194018 100644 --- a/src/main/java/eu/midnightdust/motschen/decorative/init/Signs.java +++ b/src/main/java/eu/midnightdust/motschen/decorative/init/Signs.java @@ -1,7 +1,6 @@ package eu.midnightdust.motschen.decorative.init; import eu.midnightdust.motschen.decorative.DecorativeMain; -import eu.midnightdust.motschen.decorative.block.LogWithAxe; import eu.midnightdust.motschen.decorative.block.Sign; import net.minecraft.block.Block; import net.minecraft.item.BlockItem; diff --git a/src/main/java/eu/midnightdust/motschen/decorative/item/BathTireItem.java b/src/main/java/eu/midnightdust/motschen/decorative/item/BathTireItem.java new file mode 100644 index 0000000..4d24291 --- /dev/null +++ b/src/main/java/eu/midnightdust/motschen/decorative/item/BathTireItem.java @@ -0,0 +1,71 @@ +package eu.midnightdust.motschen.decorative.item; + +import com.google.common.collect.Maps; +import java.util.Map; +import net.minecraft.block.FluidBlock; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnReason; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.stat.Stats; +import net.minecraft.util.Hand; +import net.minecraft.util.TypedActionResult; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.RayTraceContext; +import net.minecraft.world.World; + +public class BathTireItem extends Item { + private static final Map, BathTireItem> SPAWN_EGGS = Maps.newIdentityHashMap(); + private final EntityType type; + + public BathTireItem(EntityType type, Item.Settings settings) { + super(settings); + this.type = type; + SPAWN_EGGS.put(type, this); + } + + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + ItemStack itemStack = user.getStackInHand(hand); + HitResult hitResult = rayTrace(world, user, RayTraceContext.FluidHandling.SOURCE_ONLY); + if (hitResult.getType() != HitResult.Type.BLOCK) { + return TypedActionResult.pass(itemStack); + } else if (world.isClient) { + return TypedActionResult.success(itemStack); + } else { + BlockHitResult blockHitResult = (BlockHitResult)hitResult; + BlockPos blockPos = blockHitResult.getBlockPos(); + if (!(world.getBlockState(blockPos).getBlock() instanceof FluidBlock)) { + return TypedActionResult.pass(itemStack); + } else if (world.canPlayerModifyAt(user, blockPos) && user.canPlaceOn(blockPos, blockHitResult.getSide(), itemStack)) { + EntityType entityType = this.getEntityType(itemStack.getTag()); + if (entityType.spawnFromItemStack(world, itemStack, user, blockPos.up(1), SpawnReason.SPAWN_EGG, false, false) == null) { + return TypedActionResult.pass(itemStack); + } else { + if (!user.abilities.creativeMode) { + itemStack.decrement(1); + } + + user.incrementStat(Stats.USED.getOrCreateStat(this)); + return TypedActionResult.success(itemStack); + } + } else { + return TypedActionResult.fail(itemStack); + } + } + } + + public EntityType getEntityType(CompoundTag tag) { + if (tag != null && tag.contains("EntityTag", 10)) { + CompoundTag compoundTag = tag.getCompound("EntityTag"); + if (compoundTag.contains("id", 8)) { + return EntityType.get(compoundTag.getString("id")).orElse(this.type); + } + } + + return this.type; + } +} diff --git a/src/main/resources/assets/decorative/blockstates/pool_sprinkler.json b/src/main/resources/assets/decorative/blockstates/pool_sprinkler.json new file mode 100644 index 0000000..0e1dd28 --- /dev/null +++ b/src/main/resources/assets/decorative/blockstates/pool_sprinkler.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=south": { "model": "decorative:block/pool_sprinkler", "y": 270 }, + "facing=west": { "model": "decorative:block/pool_sprinkler", "y": 0 }, + "facing=north": { "model": "decorative:block/pool_sprinkler", "y": 90 }, + "facing=east": { "model": "decorative:block/pool_sprinkler", "y": 180 } + } +} diff --git a/src/main/resources/assets/decorative/blockstates/pool_wall.json b/src/main/resources/assets/decorative/blockstates/pool_wall.json new file mode 100644 index 0000000..887f3b1 --- /dev/null +++ b/src/main/resources/assets/decorative/blockstates/pool_wall.json @@ -0,0 +1,16 @@ +{ + "variants": { + "facing=east,shape=straight": { "model": "decorative:block/pool_wall" }, + "facing=west,shape=straight": { "model": "decorative:block/pool_wall", "y": 180, "uvlock": true }, + "facing=south,shape=straight": { "model": "decorative:block/pool_wall", "y": 90, "uvlock": true }, + "facing=north,shape=straight": { "model": "decorative:block/pool_wall", "y": 270, "uvlock": true }, + "facing=east,shape=inner_left": { "model": "decorative:block/pool_wall_corner" }, + "facing=west,shape=inner_left": { "model": "decorative:block/pool_wall_corner", "y": 180, "uvlock": true }, + "facing=south,shape=inner_left": { "model": "decorative:block/pool_wall_corner", "y": 90, "uvlock": true }, + "facing=north,shape=inner_left": { "model": "decorative:block/pool_wall_corner", "y": 270, "uvlock": true }, + "facing=east,shape=inner_right": { "model": "decorative:block/pool_wall_corner", "y": 90, "uvlock": true }, + "facing=west,shape=inner_right": { "model": "decorative:block/pool_wall_corner", "y": 270, "uvlock": true }, + "facing=south,shape=inner_right": { "model": "decorative:block/pool_wall_corner", "y": 180, "uvlock": true }, + "facing=north,shape=inner_right": { "model": "decorative:block/pool_wall_corner" } + } +} diff --git a/src/main/resources/assets/decorative/blockstates/shower_head.json b/src/main/resources/assets/decorative/blockstates/shower_head.json new file mode 100644 index 0000000..f3a817c --- /dev/null +++ b/src/main/resources/assets/decorative/blockstates/shower_head.json @@ -0,0 +1,8 @@ +{ + "variants": { + "facing=south": { "model": "decorative:block/shower_head", "y": 90 }, + "facing=west": { "model": "decorative:block/shower_head", "y": 180 }, + "facing=north": { "model": "decorative:block/shower_head", "y": 270 }, + "facing=east": { "model": "decorative:block/shower_head" } + } +} diff --git a/src/main/resources/assets/decorative/blockstates/springboard.json b/src/main/resources/assets/decorative/blockstates/springboard.json new file mode 100644 index 0000000..4f2b18d --- /dev/null +++ b/src/main/resources/assets/decorative/blockstates/springboard.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,part=back": { "model": "decorative:block/springboard_back", "y": 90 }, + "facing=north,part=front": { "model": "decorative:block/springboard_front", "y": 90 }, + "facing=east,part=back": { "model": "decorative:block/springboard_back", "y": 180 }, + "facing=east,part=front": { "model": "decorative:block/springboard_front", "y": 180 }, + "facing=south,part=back": { "model": "decorative:block/springboard_back", "y": 270 }, + "facing=south,part=front": { "model": "decorative:block/springboard_front", "y": 270 }, + "facing=west,part=back": { "model": "decorative:block/springboard_back" }, + "facing=west,part=front": { "model": "decorative:block/springboard_front" } + } +} diff --git a/src/main/resources/assets/decorative/icon.png b/src/main/resources/assets/decorative/icon.png index 218d6c21f806ec0d5c1be125bd132d61ccbdb5dc..fdc792b91f543de00831f541c25d0d6bfafd51ff 100644 GIT binary patch literal 42438 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 ^dEhe%+j>1qZGffsS%U%ko%OUUeoVY0TiJW zuSPjsDGt3vQ7yHr$=5-n6wr`x@g0&6ZkoK-6!Bz|Q>uNlajzJc>wZqeHGcjhcQqz9 zZ0W3)%*l_EBEnIj6teDo&_}2M_pa88V7+*~LRF|Fp2CtYqw;x*uEqoU)r=@5xm>;b zE~%T4qAZ9nv2l^ErfCC&bD4;jE5cLXmpH*uW>e3nJ}?t;DsrFb5Kc(LWE1?+ox%*m zVg0pc$M5rNAJNWELqPA>;dbz|SRq3#Pi$=J?y?b(odI*G#O>47dB8sJ)?+_z&-KQ+ z@i)K2rQV0@!N=Q(!Dth8c56j8?%kMQ5uE!8^AJ~K#}E>8$$Wb|%PAlPf@wuI$WQnzfqo>XWQjCdnrGfbLfj4E8=O`4pAYJ^QM zZo8?SN;nf1Z32EpE5{QrZTrWStw`!GU8Hn%?G4Ro67!_ebasY6~<6gqTTr??Y3N z0Av-rt2(s~OJV7^AyW*d4w6&N1zjR6#`i4jRf-U4K*OK=h< zBLl)2q2dfxNKFU1^ciTJJg5ty(TJtAij77E*dC?u3g8AAF>JJ9)ma)TD^211EhxlR zIlo#e6t1|DG~*wY&3qgMr?7IqPVB`pJZ0o0VPKQ;)0aUm{niLYU{Y4Ed=lK)#BhxL z!~JtXM(v#(PHF8W=#`8axn!H?Rm+lEu6SIQLrccTLIzc7^cJxOgL9}Zw^T$>;8+uA zGbOe+Y$apFhH|okfH7Y7b@e98Mve4=UQ;?MVrwu!y;(+D?z^6_5}+X_My2!pdGQpE z>C}5QeeBfZa>&!}dOz+a#<0HiEzr5%#)QMH8sR`BR|BHSLq)I8pUO~%(ScCOJr_hq zN(xgR;L~^Br<*zmk+R)kTC-*(p*B-lOPH_fN-3XbA-R8 zsj$b2Ny9h8;o1+}W>d;RN{bgXg{~3QE6T})pEOA`=15SIhJwk^k%Zqj79sM-s*p@M zYSHtzEborT^<#HZQD#aB<3s%<5wKq_+XXlMn&u9jZ|rl1V9+n^2P$X>7nKp|8poi+ z$nu-%;)R5+OqTNZ2xWBs@n5_ll*Ps()n;O@?X2}p`)>Mr&%39eJVF4#j8TI`Gb z8OOl;lfT8jg!t5DN_IOj7R^|RrQ(O7_*EE5b{Yit)~x$Tbn#OxIi>(B*j8zq&}zZ* zLly09bju z_jIXA;|C?Eteck82?eY-h^Z5BH`r3jlqKz=vHF@~F7PgP>HzJflfSRKJ3kpOrsZyi z9|%g_)ygqCDptxJA{g}2iU4*%D>KcC#tKBLL)3AJ^*Ll9KAik11o1$5hPIi|Ew4V@ z6(^hlaC~RyzDfuFY&f8zxJAt^E!8vjzovS!dAaZmxV`<_>xFcgoFHzuoUTMpt0O5E zq9VNQzClxvmcufn2*N;rHGq}kXVgkp=8036HoSa_SrtiUiL97m+Wrfor9Y(nRYo-w zGwuagX;?^KXevi}RB2b^ec!_)rPctT+mb$rXhG+dmz|H`wLJ>9*)gVJMN*PRn#E4OADn;?sF>|^V?!6N0 z`(bfq+1$&=Q&z~<)ZKiWpzPWiG!_xx7xq9(HOd$?RV|Ywx6~nBdut;U+3H)64 zdjeNlptAC3Fz}PJw9PX5hV})-lfTjhY&iM^I1GWmVftMBN_I-ClB6^#bAliP<;>Bf zmg(L*0@wqKn}ZLna3{}@ZCaL$sy6ywr874}m<^5&y|)21OlhpV1DTU57}jNMG&uqF zM_dJ+i~nwpRbp5-7FUKMFt~WRe*L4QZ}+(E;)AGYiI71e0u}y#mu{N)il0ozh>Ya% zA9?KA<-LTXH(}L>M%40T%GfZ-`cE$uT5 zq80R<3Vq4K3v%9{ToK&#IezTD677A747|7zJqLi^FTd(ue7H!kzMRKfLA|n4Ob}!B zc;xjI;rN<;=$p$`k>qD#;A@}I)*uv5 z+Xy{rHgphKH)pfh>k?MdfNL;-X40sKBbOS1s*Ez~j08+IFhgX~%BKs{Q2ntGl}naP za01EI=w(SEO?65TE+h2|UXY(8M><|vl6sB>9-?>^m5I)8RBXCdZZa3O3jcKwvcS^^ zEq+2TMrGtZYEl|)@UiAk;;cdK`h1n9Su-gjn-@%G=qTx!MJg9LcTs!;)lKo1 z&(%`bRmJqFHGOkx+St-V-&)*XYCShM*ViXS_@cS?lwiAkg(c%s6%21KhO<%`U6N9j z8EH()t{TCL?29dnkP|*4+p8yrNiJk-n+(a=h&>xHHnl0V{wy@KyE`{Gm)-e%^K2SN z@JqG5eVnzMzkhCdk8*mQQLoGHGvLO1o(T-tac=g8Kb7bEL3+Kg+9^KkAX>?5$W=9f z|C&v05TJ$pt4Y%ZSfb22oE~Y<`3(&aeW9fn8?)jtq759!(4iz6mNrF7Q%3yIe+T0f@d6>0L|oBZP&sNE8JP%;#%#dJzuO97 zmnCdKphsBSf0V|GS^07tS#cVxb)o2re43{Ooc#kvqg3Y1S_9Ha55O92cOzzE~!uVY@QZtgL61D9sq9=A=J;{<&RcRzp-mQgEEE znciKa9#MqyD7ACn2<|*X|E+u5pf6X->c=;gsqd+Dp*vr* zEy?Iahm&HVh0ZejAMgz&O8baaERN>zD%gQ#5<%whlq$bvn?W&N6S26t#r<}FYRR$d zUr~2K$;Ch+N(*C=kY@*aM@d?kNQK!^RtDtrW`Zo+ABBgJ7*6%@KLBphbu=7u39}VP zFG&~+dU7ZX+vDU}6TUePUV8z09H2tiO1#GcN|?{aSO1Y8rcnpK-{}3vOnja`f9coj zeQ0UQJ^%py7Okj$XtCL$w&m6Wb{5r@j2q0VlN+#P0~q%X!)T6Q9!}!-Ft(j`S|*mc z+_Gx@;62CyQyAgpZg2OuL3;VEgaVg&>yfs*8U(cDhbh$~z`<&yBW8J1`f%cXF1 z!ctl3kuslFl$e5iNdu0KHS`^`8f>!^L=@WJEMg4z{RZ(a%WDr z&@UeoAgfM_sDw&D^`}wa+d!RlBt1!m4iz|WuRtiOzKee;;ZZd(> zEFf`Alzfg4jW$}|08j#zW&j#%(JNLBI0quUZsKFsqF7OxS3uOgV27$g(nJtg=E}v2q5(Tg|8No!i1DW|9Bm ztCt9yM+!y*85t`a__nG&d$dy_G#sjxSys7{QYB{@R$u(e}82o?s%4)nug6YfJ5 zF>8WxGK0Lra{P3EFw5;%C^vdhILl0nzIiV$De?CiVBcOT079_8U{kxq@t`V$nsd5N z+gfDC4pp}d@|^D(Nb0eP5~_2b9mj?yK}-ZMD|rp=Gksp>cNI!s6=I#S&UwLOS5I?= z!o_1hP;#d=%bQwz0?r1)0SH>g0uw5tIu_uGe*BlL4qz@{oZ#2Ja3}c6%Qce(oV%e` z_f39ei$*}0b0|6w*P(S*lo$r-a%Bq`gd;yU4_dR4tgQ5*B(<6H&4S*7e9_cR?6J9Vo~6`)-^{N^(&cMW`U+ zswu=(e!qtH1GMLl8@oMSpJH{p(P>h%YM;MF$))zL!&gQcH%h&#S?+)KZ-v1{{BXK^ z!y%l?U&?50B{or#Km;Zwp|>kI6wd}v9Xdt9sR~GY4Qp@q_xJBH57-H5L|E&kDt2vy z*`KwF;*metU$;zR*A5-lZk&8xlAiX0)($yTo4R|mjzNwJgJ)B`j_}{epdTns*Q1TD zqj})!AKdfwR#T);YP;B zKK(*&2rHwie4Cd9A##Y=;eFWB`wn=xEC>`t=c4qeoFm*qKH{%1sTJ7I_z*^&0VEZF z)sfL->Fb@_&UCA-6G;u@D^jcGAtX^LbjvAnTj zCiv&Z#|X0SgrnfmJEV4TWM9{PJuRwN_n|WYfC`gy<_Wo60-&nS&d%0X&Mbu9DerZH zjD`&~f8%20VO5%ybs%Y)@oP(;bl}{EKKU;DeQ$`PdQn- zDf`+&``*$x+M;jTC>rynOM$QEmouAJz&G2O%V-htE-3-s8+$8vZ`av~zG)Gr$1!^>*(3|g?56Tq zXOEj#b{2zf)04;~M12J29oz4>cLpPGeiyH;y?uEd5>Qv3?O)&11AjPn^1Fz`?RjXy z{c6&yX1PX5J9CZd--@lu&K~YT6hn?bwaNFFN70=)G)o5WJ~SkjJ?^GwXec@@TWu*f8I+LZF4+5I|YalZpXqTSUwxZ zy%K$g;m1pX2e$z)RL{FFV~_d1fq{W9XQyj5s`KNHi3v>+A5^Yge^AI5@KHOzS90D| z8H(PO*17^AmMjt(O{vRhza^123B;E~1G!iRTE$v=NG;p#PGCpYzJYH!T*&R(a!5qI ze)v@+Mn66sqhrPrGd(-tg|4WJ{tunoOX@8)6>OrQ3jthHrKIOtiLW$cTD;Gm%pYcO zU~s9pH#SsYjTPB4r9kr+T?0FEL&vIx-9}-d^^rr_ zQJuy<{V^%L!?BZc?Sgo~*Dz`Y$N;$%^eZH*P!wI!FTS}W+fhwxx~X91quRxW1*!D4 zDQUTFKE3-G-C`te2@8F#_TVCPnMZ!=iBH5n0}*S`5PS!*%1mMCx8q*GoH(gT6zEy0 z%)*vSg#jm*GoN%=u|t68 za38%OjU{CTR%8C68XX>1C?HlFZi-Map_i zJ0ZK4RZgQoGh5rrBRq{NP!$P!tG03=26JkGuDzmmLMH|Gz@P8~=14FL0$1wO^oEe9 zH}o#1NDoV?N=D|$J>{Kp8g;%V1RVclnY!oAGZV?DVQE!%=M?AO`5_PeY@^%rc(Jy- zySubB{#osPaYI+5D*zCknsWOOT@9!u9v9ns-R@^gUookV##yoMTSEWTi%_VQVZOs* zMKX9`UsmU~o2D;UV(xU!%%XcgmkcFz{5`{ol;qGYCA}_q0(ZeDClS96w#X~tl-(#c6fO@+Nz1{<3<{U zX4w4>$yc0uZhaPnV$8ubR!G~2@Qs;(8vr_VnG->(ORD(x4gBt+)eyQ6s}fqNkn_&n zS&%BG-8};ZQmUqkHF5GZCs|7NRD!w7N--*eJb96Hz_(ooBZYgjyOq7=_!zoGyX@NA zK8n;21kn{MB%HiC0KOT|K+-bmj1ct&pYv{Mx;P-muj_^n1IdaU_3TDn?X9h??&p*V z_~TisdeaE(ZNu4`DM7(<@eOhyI}mGiriu=8I4AzD_ITR%x$L+$g4UECMMBX(klvIX z9^GiyKg0F}EA#{@lxZpVf?!KZa)Q=&cjL;+DrGi`myHd65&*c#zp- zkS}!9@yaxmgXVGA?dRWUfkS4y^xPS?QS#|5|RslgYu&}Fqe#2c6!}@oQD}ByI zvKz;~=@lOeO`MFBS`f;?(g0t{=QOf|W<$IoN!FJ{(j!R?1`Nh{3Y{5S*ufLLSD4^a zK{lDCysxLt!GCP0vvuz$FY;7UxiKR$92B(d?Cf&@{S$BjxDJ5v@SE%J%gs%WH6&$H zz1Ja{D@umVb(T`IpenFPw!uTQ$NvCtL6E+ow%cvJE5PFjDuAzn$E(fKfH}JgYA#X7 zV)h;Ykh35q$lO6q4YGilB$citB8pJ!RARl$QRbk_>FpG33X_UZVggkL%;_dn+fhYr zIDyeCWaYt=A@U{8I`78x)2>5UJPdYC`T%J_-NP2@kzf8rlN$QAAk;&0;%G|N;HcL# zSftCqvnKdW)?^ow*@9DuPAvqbtWj10FHeh{MA4pvs!upzLe8gD>9Q9K~ZTPWTM1>hTCr%YJh|cv>Y%!v^24xvk!dw z=_km;!LZY6EjH~{qkhjmG{k+ztFOKOkN?p>dhM;Zd`2}MK6s!&9}Uaw|5aF-SYP|t zP>KHQQlrO)%NE92->CFh)^ny3%9vt2D()^KdxfkY`q-V5Gr# zL}}FT7MYSyl(`T{Uj>0gnFA);k*ESyMxG2DrMJI6@K~q~C$kzXS%T`y?r{_2ipjLb zDGFkVqV(j5+5k+qn>2plmMZWX2=P>LjA8TyRHrc424IbHG6W%)b7)|bGKtb?ga9zf z8ma_$ALkSq5aTZ6oWPT%x`1Rk0Lk31bq{)1p1X4P+__GtZRF(85f%QkLH47ao(lIK9~T1xI|j!uPhEEe;?r`EhWEwtXR#)S8&DKT*}TkQ?*YguN?1w>lBWqdV$LD! zQc)92kk32_X9*GLX$(>UGFD%gO!kvvqiw_O@5S<5W&`O^oF_1to}R$GUv4SPY3xiI zM?^DJ`j2GAH!Z}5qWjhWNy(2BuJvIIPcp8f3Z<&D1h56$4v;>MJNGE9PWgsUy_swLdwiah|kto5Ryu??C28 zq~GgxyWRc0y-L;!BsfFZnan=mT{P%T9%aW7cdt6ZE zY;F!^F65L;6%|Bq1~x5=v?XCy40ml==`MTF>N36fJDN(qn>o)wgkBddC@D&}hj?Z?mh=69Sd{cHfcfSq7_ zo1aX}<>h5=nQ>lUUw`5H^*7#n>-vowZ@u%*&DUOCU0K`R+hfzPCi+}0)tbh~kcLZ4 z#wQYj|1rX*XKrx{f&sZKgxLgNGyUhJXK}yiCIgh0Wd!M7V+YAO6BvIA2(vn)OBy-C zB#4wx338T6vLI^?k+n%mz%vrkB+0co1*@;zU`iL*sQn5O?IqcCn2V3F*X5*w16e{t zsD)sGG&W@`c#VS?!AMFI$3q0%Xvjly9>`Q812WA(@~dEmwZv=uB>*lnNwaJsRK+X7=hc)rYs*ewH>X59nQ>`dWl8*ztZMOMh#p8f| z<=ocR_M=C=g98{g1|AgXHuB2K%8M_(^x4n6``cgn%G&DM&wuu_U;Oo7w_0txU9n6P zP)GmpSMJlV5DtcQx8Y#dO}{iB)N>) z86cLU7|evpZax{TRla28xk>{Vi0Wro%+SeqS{@K1FImD2gv+Ee8nAQ6TrD^+=E!*r zkWH;+dL!$oB1oLWb56*UKo`_8n|uBTDIYz0^znxuKDd9s*Xwb6!U6{gy1l+VBJAz{ zAt9+|O5M-hEG&cD4H|HS5?{hR zLs|tU0t5NUMU_ugNFEOHk_o402%UC&V`JkdKl#a@{pp_$`~B-LzKE*W5}4RlI;wM5 zLUe3KH>_0iBvW!!?st;)NfE(ZXE7Q=v^Eg>>?$L!njt`4acUAZ1>vKUA~J*Q0?)l^ z4Ha}Qo&gvct?2>elA52aKuMi}x^VT1fnrS?3SF)`P7r=2fTDf%$*^i+^$N z?%g}LZvFgcKW9t8mn@|!$&jSt(#xm4N4-c>4&c1VJN2w` z3PoF=MN_jz{>>s*e1GNhZv+fmoRnvKMk?SGF=@BAw}1ZApZ?1~`ICR~-~D&?(*L48 zn_j$hX`b4vCpV^O4!Ow`a(IUDH-p+`gjT6xRoH8|-dc-MsY@MRFfUI5AD&f&Ndh2* zQr3XT8ITVpRfiBJAh{N~gG4`g;w3{QQJFw<{73w!j3)qO6FqJmlBrfQFy2n`W3mvS zmKSab3UmL7JJaZ(AQFKjK#W@^vIXQb1K}h8fEaf%M4qr(^?vUuK|tjWOKnE=JE`=f zCO~NgM@xF}o*`lU9)N5B zRYLgXBoLXS8XlzE$H+Zvp-K@{=1_u2sn%6%a9>@S#mhN7>ov#MDxem@;_WAHmM-4_ zG(FA7TjHF-^P8#$C=jqt%7l>-x1=6q>5C-%fP$Sn|c+9Y?i$aj7kz5 zk`0#CPs)s7LH4Q_j2%gHr0yJhVA_AA}^=LUo1^$DEKSwag5m`vGQbuh(NjuCA?h4-Wq9PybDu+mz&(;Q5SW zkP&=Vo0^jdx-P^^06OpT(FKBvCk#+3S>4?{f#e_&O0vNdLxew|b>3Q*HT>;b)+JIj zBtZ%}qynW3OuPvkkd4;osvxEW!fUOy{wi3wQRiYX_#C*V{L(VETCVq5(ct)DszVn7}UP=m?Omw2F|_YbNFrU_I_DF&Hn%%xWs%15SgaeUh9)8+9)_YO*-+vR>J%qH#xzU#e z+aql0vjyD3s7gLKtM(kuk58(fU`ytQc$0~5ACmVvtnamUm#PQIy{k*;V*3(Zs}px;$eXVYS1vra^MbEwcl2s4LK{<8)$Y5c`Zhb0G|Ux^bS zljJz^sbU6vtnGLPI{|p2HXIE`fa5sH`~5zPGF{l;-@kqP_SU_7#d2wb$)I{NlewoU z26+q(CS?EzfDk-a1c0O>tE+$~NErn2f|y8^!!8Z7vepq{L0p6!$y)Mv4vy+7FY&Hs5vRf1Pa-H*vt0Z zmGryKh0#*GMZ1QB0V{NV2Y`z*Bv`1e^7gZUyE3BI8NH~wyu2cw(lf9t^jQ2ks9||| zd1K>5Z#1}i_3G&}r+MN`Ls2&l(*`GjS~!Xa(=pU4S%KxR&!hZW*If24`E!hq|2PUV zNk^j2Q)&6ZQc$ci$*nf?ao1~44`?+Q=ZA86j4Crfd_e8+wRUoTW@A+Yf?_^DMFZx= zd{y|GY@qGEUhl_$^<&7G^VTOneEQg&XJqryL(VUd#5$znFFC9s%!yimor0tY#cgcK z-?fQpT!l3*i%Pem^Fy61A$l%VD5-zzh?e^Z%-c2_eRuYt5ZvT8lQM)g2Nma|Ry&4) zn)m`T5k5OZ85YFM%m%n-T+|PgZ*S&)t&ZVW~*vQA{SmQ7q>Ya=9jDdMJ zX%lR~Y$tfeX$z?3mHd#|Ks`0A6IQ`*qzivDhx;`E36#Nr+;bYVMojY*ndi)bH7zlPN|`w$OoZl2$P%K|&yn490uqunE)~6* z?q1$xS18?Av)u|aDUo~%q+lsPSrFVmOjPKJG&rmU)qB|Ki2M>L13`vBX>E0w2TS&1 z!(Yd-7kpZaqfT?7-LxBCe<6t5alaogpb#NtNEU0kt?<6qTXv>StJP_@d93D6AKvbC z7Z%#>wr>dwy?%Fbk%vor?(X(_d;9yJe){QaufKZg)G56J7E6hZliy=X5IGCxHTiOo zFj7EOXLJn&@*U24V1QY>Suxp%xnZpouziC^FRLCpCiN94UsWEfN4T#T@qxH zAV>`)wm$PzP*<&gb>yGr6M*zUqNf0dd>{fcsiYf6!jsh?!jUO0b#V?TBnaj-Jx>Ls z8XtlLAFtGSD6h`eN4bsYesC25`|BD0N1EW**4B6w7z_v9 zuKg_zw=VIM2>a9UjmG}|et$4xzqxhm_TJteNi?T**ckijFM&gq9)WQJZzgeUtJ+y% zie6L^VRaR$ql}g}L(L)Qv~1IB2}E5fwO_hE%(e^Lt$`=OAl_o02r0V*)k~{X)@Oy% z=utB0lFOh0Ptl#ZaQysCUmKG}`!kczJ@*`QRl}9TdzgmN2h|``AZKQK25?KuN(FM5 z5&N4%`Vwy}C5Tx4;Qme>Kl4m#zmac-F4;i5tCWJ)uLvR;E$P%LTpN-L>p8i4G)FmO$5CGkTu-1+@F^!wmi!eI0 zKkB`*va+_e-tYGg4!SJ&sO$=@R(m*N#cwXHtSl|BP#5yXiIX3G`0>?iS1(??Fc=KH zCOb%|GS(5P$AB`Gg$n9a94^IiL#`4PY^2$ob-y~RGU28NOTyp>6uYP*_)@_8y z1~k9(BN>hhMTa~cIs-|m1BudE!cA$t*9GT?`4uLqQ{YbNmbrirXaankM6;;^lb#CX zdeV_R4x)Ezvjmgp8=R+ts!%O+fU&k0G5txGN7$RMzFK+-RDeh)CY%3uh6=dP7*d0@ z6m>|6>X1C12vit{2>qxo_ol=;90SpeDlu2$)Xedz75!F|8ok1ua*UcPYswT%l`M~&rv|B&l|y#dF7 z=Sh=Z0=;0B*FeFj0fJr#IygAk-rgp*(`ox(>1eO6tgB-yDu#1rzn9mtI<0T1vB7uwhS~v7Z@GlaHgM0t@gE2|}_J)}$2bJgAui zX=D?aIdK4MeFe@NsvSu$0m)z&sz3XOUz7mSLn;k&pVB3bvy#*zPa;ntXC#Agb~-KD zK%_Ou9gJ|!gvmy-fZJBbV7VF{EMN)zSF{vm?$}|yGGicAee!nr3hC7)6<$W}FZAnm z6#f@+3qNJB8YbaQx1TO2t9cd~L70L8;if)$7NgB$vB3(x*l0ILgMNS5UORdD#?9+D z-)gj$AKky(-{0*tM)oTLX;f0BIY`M^X#mv__!*KSIz>4!fjm7!!U|=UUeS<$U?|qQBnzMfkV>_Aj`7LC~5& z3d`cz)L={&R-mK;xk(VD$}>?}+j6y(4Zc3VbC@)wMjQ^Dush3Gt>wZcYu=M^-kfwH zYn>Oy?*RzWI1ph`!h~8y@Ojh>D1X&WOo=bJ1QfyrsbXcp=4&7VD^~hMg!>q27m};C zE7%#=9Xh;?FnSZi;)4I~0DktLT86{^XgIJ?tHDB;OrFz*MPpjj5+!LV5gYy{fM-n$ zuJL|I_9nYlM9Y*AYAx^67iFP!IPA0lZ=Fl21YHc2_S>A+$3-@h)wQ)ov&EIuYIl}bxyNq}`izMk ztyZVs8*Hp^tgo;4x;^`Y@S{cihYZQ$;;B<7&uyMP91S0DKYaA?!QSJ?7cX77{^AX) zr53CBZwcvgN~fRo{#Xq}21+VWGsLTe$w_MktIOfg?oi$Cu6FI< zM(Jz1IhoCuEQ^|iJP}le3MMuHSgYKDT!Kisl|Y9nBZ(lj7Nm+Yc{_4dR>2ATX=`Ya z7zaTrJV7R;3)>Hm^I<7Yu=%;{i?X@$=*CDuehskb~eszKL5gv z<<*Vuyfz+gQuK$iWbqfmez~7;F$*2m`0=3Sz29PTVG$HJ-uF+{juBao;h=7V`Kg7=~L%6&z(Gd>coi+ zMg6Vg$c44ufsxVRgfJbEAy)G$;C+H5XHPm7ICAT64l`PKETm?q3)zHZc;<-Ab5s!% zb>JUEc>H+#SHJqz&f}eQGv|kmK`{bF`xBVkVh|`p5D)M{m2)saq!>`^BOXW)NnTt3 zvo^49as8R#5Q)Zr#Y!(hd{`~gLC5v+m;|eTvaKLY;-!|555YW;r$T^8L8^E`JY0-J zM#_`g5ir9$5g?|~j78sjp;+_e2cs#{b(OCA#%6vFeCVSudAN)#f(K4c0Fp9z2}asN zZy_QhHUt&?ceyO&fHa;|l#M32*qzMLTW3{`M)&XD8a%!=8XT}<_xio=0XOJ-i_OJ$ zo8H(4(6mRLabuJjo0n;250kp@U?^I+`NNMvw^3`3^A|7g?Cg-7J%gp6yOfI;EXYr}X*{avV~hZL0z?4pGIk z%FoPUVlZQp{%oPK0lEr~g61v)(~|z3K6B>Z{l#D0yLXp~9h2W2SSYln6igtPTyRTb zK&a#tL`slcg-k-C9CkW3Xvs{3=XVGs-WaN!!w7XK++v0 zHJ}wzx24uyhXtEIg)P>CGa3A=AS4k&$=YTFbKcU%2H;}~Yqc1hPuV03ta@myk1iX0 zDKrPob;*LlfsuargNNl8pFuoA)l>sZ;qHXl@AcYe8+Z;d33AZy9_;OG-@P^LZQD2X zq?AL(pxt6kCTMs#8s^t|O6d0m{0w#C?Qfwld6-zZuA z?f1ME8{6BD{Q9Am!=+AVb;W*Rc;7xSwD;itgLbF$+8eLo@2URQV3(GSb$uITo%V|S z6Cm=;ld$RoQ_Vml=gBrd@>&AVq>A78xt=dS&EQJZ25{o!iNE~!e|h)L-DDesIXsb0 zT5u(SQUaMJ1F7az+)r_r$A|K(vmr(@c1XdD1O^FW0{1 zZP4%Y(AaD?7DmH`e(!M59re5P3&y_^`;b2S(m$|iWE~mTrQM5?4SvhT@Jde zek0HY>DR)MUCKq-NQAqy~+TJeFbAUpv) zs-R{7P9ANP{tv)yJl zr{>|vUfpLrTGqkAYU{9V?^@`Ou?!a$nD_nRkb`@FR{D0z;kB#rfbIZBg(ej0_gs?tY@>(d7cX?_~)ti**kegbVsAqww8iAcan}J9T z#gh$4K9Qb1G!izdN5kf3qrr4V9t}s=UU=c`=2>QTtkL%F)_kd|P&XqS!LEg(@2CQD zc;*lpC4e-!E*7B1r7FG_v8gC3$Hbe!WRV}RsywMmpe&M0z(-L@pWYN9Ic081ca+o& z@X0xROn1-<)KVj@@f@}uY6x^|Z|?`N{1v2kFeOlFt2wa@j_!q};wsgnxXo8Hu%t5w z5Tph~N-)`qEQCE z%RD7)-MeRBJa;%;U0Hqc#*O8bl^!==i;a_~PF=lvl>sJ$Dm@lTtCC1T{G3qiJR!$Q zI~8`W?8Mm++BATgns#=Lmc||E!n0{xR%0n))D`mlW0}5}(&qbMh13>oc zj}Y}VEh9{A+>@jKP+Ar{OHlxh1Ht?X$OMq{#;7cWsBw%+%R`t2{ELK*W$wpqv2O4L zU>jSbF&GUwyEu$S?ZJS>-#$C6SC&aquz&0B-TnP8IR^a! ztN+DI7fI_CJ|RlWpP%EoMo*Y?Av~3h z4H0vP_kw!yM6U;_{ zHIHEXyI@Z7-|U!N$CKEIfVZ-w3OHHgjp4t2FOU75mP32PgXi1DMsqM+=(Lx3o*fRF zw7tPSf2)C=oAid={&#pDpd~y!kl(9Rvn`>3zg(PR%->tZ4aCaI%HH0d zy)Q7bk9)G9udlB!Ep_hPxx@DG#v89+xNz>Hk3PD8|DOF;^r6jVo)YfgfAGmCpZ@l5 z{~f)r;ME-)YDD#YTJa_FNYwh<%%HROL;91nGhnwDX>1YfT^4JsBXPwXG^MURB|KSA zYeABzy*8m7bV!}Esq|NKy0og!hF@_O<$@(~dI~(hHEj-9dln7{g8>t-)9Kv1ckh#r zKHk~cVUpXqu_SgVS|Idb0aU36nZFIMg^|ZA)a?zD&L5&5HtF%SSU)kALWk@+qJC1Q zid^;@V61l*?{7o6ua`xX4~+Zx0UGHOM-++ov`L0f7m4-Gmcs@6Xp>$7V!0j?-L#L1 z+Ss@q$A#gj&wjvqZMiI)pW##tMGH=K`=0r?3)xaScd^pi8}i8Z5~@WVpp!?B!aW1gzR zN5Wh~t*#yie!V2vNpkgwBy(2b*#^S_-g~=yw{G3Kee0GUMmf`DiMj-fD8S4Yqf$b$ zO*A-{ZSlv;?!QLdfpInJPpdwwG$0>Ao=IT?(Dk1* zN68~VYMH8FU7?J+C5M_rq((3x6L67OkrZj5olFfAlqafyNw=kiD%pKm&Mcf2(w04Y z$yL%c4U0?X&l=4S_hs32i#H%iMXM}} zK9)K*skK(Ad)ea44`ayd9fxu^lXJL_!mJrIoW3&6XaOt>zWFSU?8}?|>)6QDYPEfA zXd=%A_D38cIiLdG06R-0W?4rX44Ad{Juz#?;ymIY@>kKw(zdz`7mQS8MwY0pvxp{VZ+25i#J~U)@3ArHn z$l8(g0#zo5th0Qq&uD5-P8qdaATXgIp#KUEx&Tn?oXcp50xoY~|l=RBkuUd;Ss zG?ELGGS&)f+88EJWRvVyi0gBKCs7)!{wtn$AsbvUIs>WRF*HkK&7_0@ zxtnBphG3VBwVBPsz9-!@8)5AAeFt~ za9{aqh|B~04 zvuE3#&hFmcNnif=_V*v}?$EdW{e!i&HGCgFe8}^G{aWzqYQNtn&+aa_T=<{jnP7kK z;Ki4&pE!AfJEOcA3B(7P%XP@kQbIa?v7{C#c}kUA$t2J)_1b1mN?EuexGBj;BK#}P zKJbZ*W&|?>>RoNip9aTDSPV){$RugivF4kf3IhUqE9 z2Xy?=9T>r4e9Fi_hwPTa(jeQzxE(gV>bsEqJ)e?iW#lvldGgE|atDBe`w-6UIc*>R zewo~WJd-jBc+C$_k{Blq%EsWZi0ixnCZEkef9cEqI}|I3@po(OeO-V3XW^iGKoA2= z2)FR|X7gf$g?@c~qup5|!QS5f_M`3PCA+m}p0BR0b7`%uZ&1;rN821f{pruHUVY(} zS6-%7tE={1p`YBkb8qVb`J>V@isl)-xk)Zy!&X`1O9&tR^^!P}nZ%Q7Ey^uKWsX^5 zKY+5%gHoytHm2;Z=@F28b2Q9baHQLuP^u@+MtJ^~Ok|@w))&3pIv*GbMI}7}F2NuA z)08&Q=IH}l0^u$HRdy=T{msV4Ny}lA!LA(~OfG7d0Ex-!DtK#0R;f%Pff$udF6~z9 z;NXD!As8+JD)rA#+b`vlSN?JaTz8I%2IN8x`PZ62DRT~6E@ca+5UPlAnGN#dHqCQ} z$$=?3RNc%_N7At2a6rkh%0a_{>?8a z`~;T`gnRNaDIrufOmc3bWamP_K_!e#AcR`zm3##PQyh|GSeSF1aR#R#ZMTytfGRLO zxvysiGOlauYx@TW+{3i&v7l+y5Zr7&eDsK&kHDMBV`lg?! zK<1NO{o454YnA7b@XfU5LTb@A)HHN7}^Mau9#WDqE zAGi59tsV?{jy8^;Vpr5GTp7H_`jSRkoX?)rM6i=xXwQ&D>5J+c|;!wgW z#Fv~WK}D&$YNckFG>HM^MkPOEI`Ho-n*?)YkvW2kIs1rugu%81dtDxA1dK6}{{)s> zVeo#8ial}MBzPZpb0aJ-FS88{dVMyPR=fSPpZ?tcLcqyRXZhN-=gyx$%UM&^W1w11PDZH? zW}aHU>(5gLJF9*qeKIik+@Xqc3qi{2JY_!qRp%TttzMBFm?e1P}`i*ORe)}=4z&#=I@z6G3EUdcgbp$FdN*^FzaYpzu&)q|Nbw3@r!gl z7Y`r6Rg)=ojRYx~QYx^dj*umA#a(^wxmR9(nVp6W0EQYNv2s27#hYG@#bmXP>otP^ zInSf4m5y8xq~?Gm5J6=Qf5~}1;GLujlq;ZC)&gq?Q-CQsRNc%_oQz3^^~)GcTHV5A zq-hNe8vpGq8n3}MQzD8J75(g zdqfQ|@#vtCK={Xwf*_K~Ck9z_U2ykQDJ>t^D<-3ZUXN{HX=U}G+uJ|ra=*|0`|9c{ z`vK16I5_Ac-@SYH-o1O>g9EN8?r1vg_Kh1iHa9oB2i-@H9x=sxy}tdX*r0#n1VU#)~=baVl@RN1~ibTmXmQKo$OJG14E{#m0 zs!-MtIMhgy0r7H}3Dw1Ui%M+~g|D=58vm4dCJDWtmd6E?IK~(75lCJ$-7z`}XJMW( z@oCv(#;&ccGtmF?fB640)jbn4VWLXa078xVAOtS~qhe(ID*+BG_L+WPtP=N~?NL>{&W+I9Z?=EV!=@|j%&4T$$PSN-;q^XI+OxtkB3 zXzVX}o($BPq$<=r9XV=4YRL=?FNM8O?HLnmQzV`1oCGEH$v~2MR?lOBR5oaqmFv-z z)B!V1g~nOaQp{{vEq=uK%Zga9#=fjHEe#FX8_U?)j>}m z2D#>fWMz~P))Gn^Kw44ifHj0^AWe9R0VG%cNG{$XHPsHnD#4dydr8MVC}0=u1M_Jr zT0*lJ3K!t4;$2U`=q=PSVM2A77>tB~Ggd*E)Gw7vA5HR31OLS|s08y%Vv)n&5R;rT z%M6fP{wu-U_yY|fCGcjlQ&Qu2gpuWApPOA+?6f;jd%JtY5{D1FKxb)*d!=r-$41cU zEU}a?u@9`QU~RS9wn+?mxE`@p42DCP%a<>6lXddc=~iR$V1EzKYuB!AZ}05!tkCIn zd%d$~&b;#S4R#bYcnojZSPme^Q2@ot+-(j-BFQ4FAg#tnvVm!(DRAArmDbLil=|0a^JFeK94k zJ0*L%`*5ovX{I9Bf{45SXXVAWsKA_T({NC)Oh$M!luD|36bZ*x1k;Oz)_Q}qg7qZc z>IJ(=@K@29h7^S>nQS3;)rJdUlr{-B+JE39*;v#kECJiV#>Pgs+hxN>B@uz{MmDeA z{sW#z_3NWbh`mFlUkI@Kl%-C4ed9!<**ZArc9uH(`}^s^*`BEz{eiu>x#F7v zj7sYD1~iBLE*r_p>hjsM=ct$GiW4VJ(#`et)k~KyE-x+NTmw%&A>^>m!K(=gF4s9f z1?Y>GgNd4s1kUo0Qs>b&;Qv2+{{d)Oa+UYuCx;vQcJApgsV8Wn0?GpdNeCe%Ku87= zL=Ym%1YrzF1V7n^2RxZ){~aFBCJ5Vr4Yq}_4cN~h85^O1(r8l8XkyPy=Xm4E=lp-) zTD9x$6YlLBXYTa$*SqVkTD5A`sG_(A#F5g}^@sun}vvr5CDH=>wJ!9p(_G$G@O%@7f+r zyPWXwkLR-oQjjFtugM_|R)}C?;f*X2E*Bz6)Fc;^JcQ}+=;BjAz>`BH$>T)CKy)OK zN$VMg8PF%-Q4907LXODp%Hx786)8{`*08+L zYI=1`2la{^Xr-2hx?q@7ql)IW)ni8bPnUk->+u=6EGmcAu$weVK*iy4sJ#y2CM>uT3liPWbi!C2$m}gZ|8Q8l1X!*by1s96&it9 zaTRZ{QL|(-Bd+gq<1Gzw5SVq&aR%tKzy#!LZ9}cWBp+_CWMfJ2rAT5X2_G4vtyU8n zmpU~y1*g+#S1J|%7`ENk^RG56WWB;Z^u{M9(2TYhz34@+fBoyPx#k*5u`=@%=68o2 zaJ)Edh>HaJ*&MMjc!fyvMXOpZm&(Ovvng+G?*hUkSkNp9`1+@wdg|=i)8(?BB}K`u zUAtyyXA8OVp4|rspMK)xsS_7Z9>4I^(UYf6UhKAWmEy!eTdfsT#cMI#8XJO*P`ko$ zxmu`)0{L7-x=}W%9!%>%sfZq16OOygh_SJ;7r*4iQ`@&QdO~svj3qGa>%mBQhbEP! zIsuvd4XOHLyHpn;T;dWoqi^K}0%=HBFR?Qiowx?Ad(Mv-V0v^JAQPwr&arTD;Z1`i z44}7APB)}`A_@SQ4re-&Xn6QX7yp#oE2SidsZ@4TCdiX0ug(<8D(@W9lTVM6xC~!S#Dn` zl^4n5$B*B0&pn^}+~>SdAdhb+Cpd(z-!!Pu@$s>3liN696idai@iF#D`GUSwK`)fc z)qVT+-*EW4>6vNv^E-F$+_r7f&I;`^t3au8=-?s5ShrY6SQu`+@kW*eJ$2XU9z1aM z!GqUKPtS~1$ESAem>8d`*Qil`a@)3iq01Ua=@{c?EP{$)+c19!s1#1oL$G+WnO$A_k}vXGBD%=Vz46lYmZR%u9if8tWdpVSBU zU{O{AR!Y((ZX_`{&Sbv~L3MQWG{9s}4`Gs$0j?8xHzDlu_*SP8a2dBY-D?h5?BA{3 zdS}m`efsHRtyX8-wrz;{SA$8VIF1MswxU63)m)}rsnQ;~e6C!n;L4Fes#+au;M!YF zP5>9rUud^mSVy~Yro}pXY5!FR>h-$52CTP1s7B>-nSso_>NM*+w@>Zav$Igl?bxyX z;`B6X^=`&k^x)i-DBa zf6{!>RJWYaqj9=Ljze`z@nba7z@rExc?tWJI5b{UN&qx=T4En!Ssr!7s1s2p^7R>j z#~tZp4Uf-SIKg#Q)cvrvQ$LCYBOxE_Zw)N78w4g2~~3vBiz2#WJ6kc3+|XS&z|(4NKj z<_NQqCyGDyTQqof#7xPe8J;&p(4gK?Stx;^6jMcRt!ie4>>(7(ibF<=Q@35xCjsql zkAae3SYQjE!HJX9Y_}HbwYHXxUa3^%5YV=B36^v_y*+#PPESvx2Nz!~7S5eLS8vo2 zo1b48tMm@+-!VQ>Sy;H(YBj3W!p@yjd-v_)5OVS2xniMk`0(`{IINYEMs!dw>jDw0 zgxVq1C9Y?Yvl{fN3WH=VdRB{+`Ijor(+NikUMhD4?Vs8vuQ=OkaLKxisD#Bg&>jtU zn?e4W94Fl`-hKDn+&qKa&GXs8*p8v|2}yF=XN@x*&WZ8>VnDz-fJ9FZX(^yO5DB1N z`2al0iHOMeC>f*8615K zI_;?r6_Dx%{yWq7NJF ztv-4kifKjzMR*pxKRb6!YIm3td5#GB%-n7_A%p>1KP68ycFXv6jA^#~i6v88L>@h} zv$LqhzzY{HkgHHs-kT2Zebp=Py!N_-7pKo1d-{p1_V4C2z#34g7CWtGquw5$9N)Eb zr`>B>8c7{j1+SfaTGGc*`fL5UDwrnk8U8OexDy)=D^AM2mz_BRo!meFyA?rBVZsp08$5Z0_Rv5^bdnnUjTw4gYyYvG;$(h7KAjOM=St}B9>^P1rU?- z@^nI2O7WQ_E^31caV%RTK-7gE(~PR%WTOnjj@I6`Z5s}k9euOer0sFjBzgAOJDvqX zJ8V5!ulM=jsl7oUU?SsUk#M@x?iTXJe6G-J=)Im})iFIOWIqf*4Ll=Cd>H_^e(b@F zdcB52N0ZMI1UPw^>o3qY`uQ2mVR^9EJ{PE3SM7$(%`N~(6OT{A(JaF>V$rHy<=JHuK{=0VVe&pfD&~W|X>rg@#w|@}>Q83K8 z6jT-E)3(lPw&s1VweR9XAd7in25Lh=YZG2Vd8kU-90O6mq$7o8m4VnMD{35@61oO3 z#G%C)X)A9iom>{hB2v)fszQEgkONvA14u?iz7APZx;j>I zxWVHa-~|CJ$5Z3l;=Ueu71(_c;$eO3jU>Yn_$YKq=MZJV*s)`WuK{M6DoYUQG{`tM zHby-cY750u@!-LOMEzrAETwjC3_v;jdcDrh{rvg!Cr5F z-;oT8)qx%X*6`{~LbawLNNf;d|AzQTP!+$Hl43NGiUZ-gl!2k8R^BX#d&r9wpL_{%9LnO4h?0MAKb8Iwf~`;)9}26_8`7; zNnKLATuzVE;NRI?<4--+z5fFH2Os8Bf?Z0Y2hBsTyN~u~bl-jL!quJ0aA122qCns4QYPETM;`rG3 z-o1OTyZ$O`lV+rRIcUN`^P*b@R z(x_Jh4MUx@SnCzRx2eYa9O`@yhgmN6HY5zLOGN1vRXo*nRwHux8}S#Z*+ z&JU3UF7I?&zzOF7Xx}%)q%;zNFlez5;UOsjNm5;&Fb(HKzN8I$3drN>0^ksJj>#`# zm`M~S1TE;a3lNTk^qLF>MGm2KQF11)$ImR?;<{`?*?v_$ECl)fQqp{sJK#9sd?dKo zJlIJR&&Z(3=<828+Jcbs@OplcwUg0qw`Yg`AC#V0^5C?E~^`Dr}uGroP9a zUr;fH?DyOHg%xWoyg%K}rjdj~xrF;&n5lO=?OvyT>#f(n@I^OYyl{qZj|} z5{ywc)a=mR`vZzb8Rc4xipl_Bk9dhmDX_bGw7*Wt^R)##WXRX+i@Ww>IOHKv?%toH zfZvH?1!}eR!!M%k>%KHnr`=*v*|mN5HP>E0H#=Wn(A(k~%@&nmeWR~(#S+t&EqFeJ%04~14kaa=bj_8GYfn6>?2#PS)bZ9weR5mR=4-q6HjFG zg+qt-vj)iW{w@xH>6gPAa51_PL}3*WF2$0&3LaezP!tdtvWrgcubmXDq$Br`vEL}(!3W&N_i7*{P6mTMqfm9E@M)EwSByuEY5oo{+jRo0!clIJ& z+@0_MqQWTYjSu7noCTblmWWAUKnrj_APLK&(vY0=@ko#wD1*xj{)JO@rh#5$P%Xx^ z$VYk48{y0W^zor>F|mjov~m1jxcZ=Fx$DbRx^7-yi$i)tae1F8>~%O(NY=8!QvWKY zm&Hrs{VlIP_fbyo2D=5H?PllZr}tg8``zFBUElI8Z##ST^g|DR2{%~CSLpwqx?W$= zs@Lm2AXJvMmzjaDcg?cRhXP(5<#_*2yIm}o@v5`4vxw^V8nKRDPpe(6RvGJFDbzyX zd08abycdcEoPD#Yw?|L{%a`h+HGrsoIq&S5v+bt74D1!f*ONXrKF%t|!p13~SS*pX z-R;;tA-#BOVWB=ZyO7TnC&nixr?#=`9=`F0U3+((Id|^D`HRPnpPXN)?LV+@`*wZh zO|@AD*6xAEKI@A`&QgfElJ<8PS5ZP!WOW)E6qf|uVK5!840N;ECp)931A|6- z$}(k=#C1ureypM?2I?z&jpKxM6aRexi@zF-%wl?VMS4{$fqKh+z7%?5a^k*w?>~0@ zxb31A^STUxh;Y6Gn$&a{`2fP}>l_cI&cr+=%~2krNG3%%2QV4aQ3o8)8{#QA({zMf zPJ`e<(nw1{1a8VEhciRO-~yIU@GQ%~bAb>Crk1Q8vl0ePABLv_mmi5BDxk+zS(fE< zX(;({N|59vRn8bUXv(o#l%eBX*l4%IhDwyXRncnmWE?OcpwiP|Y^>VqG;y!&yIZYJ zu~p}#}oVz-jPSt~~95zD(lkZJO5!ASm^!Cq$<5j4p zl$^=vU#$k64tsomlLYP$N7Q2hI}<3(Y-ycO5vekE07(RnJQzv~$>C2F^+_N{k-VQqAIR ziPQ@Qjcu|kQ`?8WE?YZX2^EyO#mmwb5z113Sp1T>loGFni!bt-T@(><6qNEcME)!{YE|$ae zsAsfaCYII)lxmrVJI_;{7)DxP5TTl=94&wiAVh}X`T;a8M_nA^z{7uNYb@n*9W*RH zGSs3Eu?VDE&8D6}$aYVhJbmoxlMF}PE9&VIvZuQS!lUxz31{23ZN8#o284guOBeex zFg-ne_Uu`E|Gsj;WQ)yM$3Y`$FZI;MpClF%!cJG;`SPzSmrBL4vGKh97^F;5@8k-_ z0;>X5YPDO&2`yP~G}%Duj!&Zw6Jv^{BDSID;>8P%dNY^Jw_Bb0xj7OSYW0U7dGyi8 zpJ2f`u>T;ZkaBhG?78WkJGWnb^?r^Kn1oJm=M^C>xlArkLiuuGW)IV6zQdmLz$h;x3rLrOH)uBC|SRuS|()P#G zKx8`5%yd9GBlpRpM^BtM;WGlbKrC0LBuMi?6pjQ)3k<-d^j{{Lm}gwfLVby*?y<9Z zTV^FF2oEDOO+-YQG))+o>YT6uM8s69{c;PyQdm+z zZ2sFVC+7@;6p9_47<|3ymz&V#ghG&Hln$rRl^PX`hFKQ%f2pAN=ipc?)e63^-R?FT zE&Y6SL7zwI`OAJwJxWMF;$C;}-pxiE_l>s&`eiQL%lrKq)&OX{zCUG;-)meYsB2oS|`d(|^pwNWA@Szi-_k`1aF1Su1fldL(+C6*0LM? zn&;=|>a}`Hw}@KfV-tEVs#I=wJEcm6(}_NG*Bd2zwOV7_w#mJF_e^b@@DDZyD!w9E zlLmSzVD$1bBqjpUhB$Or0vBFp#;y)NfR-rTDy$?GDtj+wq0=K*aKw+)UYuIfh-g6MM35Aye%i5=<<1*$ zHH(s_$BGh+wd4Yj2rP*Kfx%BXJWA-+$I3f15)sbvip2^$f9cu|GMz)HzqSDIC*cUL z*-}U7jGSmd8qV~J48fF!KO;cNmOcneGUsWr==44059N6_}^9%I`K z!`NMR%B6CZ#h}q>_hv-kOU_@Mtyapn z-f|etnB*1lDqk9id8;ljzl=;;g9)g)7YW~vdG{_`gmtm^SBP&Eh7_8ix&l2kB}apl zOPS_69U7ZHqDN+Ff>Js%)h!}&<}4MH`|GHMO>%P4kj9N=gir&vorci zW4ak#%tN1g0D-iOb4*rnep+S-@Ri8_bQTED!kmwJof&1)P|hXb0>c@@0$?%$G=Zmu zcnaiq6%H2z&Wx#W(qS6TK`e$2_?83*JtCb0Tujuc3Pea?6g3o#NEwy-I$u??QZD`gpxkUI0Q3@_ZZZpGl-<&NzxlV>4x+5ugyR?WHV z3=8DH4P+5cEXUIr9xQ-*lO3c@1|lT z84yFmj-5N%$k*x(eXXHfhNif47tT{AR-uF)7DpWN>2X->>~;xD)e7rAXNg@qcd`9% zHe0L{?QU;uta|;mhxEqMR9iVgcnMewA{wI0V=1x7PY8;37|FDRr~m3(8w1P0axDu} zw^-;%cq)=hi)ox0L>rcDH`wr&)YJ#5O^GhK46Lf<6Sx)WJk}P&+5<+^WySD{xaEXi z5eGAZ>4tLlI_J)wJAUlA7sM2ZB|=0v2hhSE^`-_c0Gu9RreU3_Des^xl(<58DmYb; z$+IO2(Fo5TOJ53URUrH#SeolmM_?JEYUi7ULS!=4opz+NyI4A-v4=rlAmvpKqZW8n zSuNR_jsclrAdv37evlbHtvn)C<>{X~$LPqkLY=2{?>PzapRy>-Kdy~NMIyms+_Z*_ z1f5RP32m#hd3&`E>i`2{@%&(fn^fr6zCrLrn@_IMHWWfNH zN@e@@?f7McVUiIUJhf#q7dD z4K3A5h1!q>%@l{>&4$*e$+2;*Mx9={QegpTcG|6G8{yg6`T6NP#Nt(ro#g14KZqE{h1}vYNg3L06 zxM3g~aA{=$)+o9{+^2zIxb7=4asXuTE5fxq$Bp+fX^eFtT@ewKl+AF`Ww?%wjm^!@ z-Fwfy?jc=UK$`Sua|T2~WV&PuM5Vz~J#<8l6JChtwweN}VKv7F2`<*(;caah zLEjqVP|gH_H3V`7%77#slMiO`N0HP;ox~JhULa_Xbqu}eTXrP^a(GIY?vdF(;bD?1 znf$7MS1MG33{xJjb~e}T`1}2d6?`*-(7hNX8`C&2O$|PZ@$r}qX`|X5NM#n90iCX zR%_Je=jN$l6`$U0w7YFqA63C#?xyOngyi*T>E!rCwNkCu8)M^RtZ^v8pjj|8%VKfh zz(LlP)2B~2>b2W$yU|OJHbA5?%n@M5CK@R)jFDm}S$aR~_6XLO>T2gl%0SCon_tQd z7fAK2uzapd>NL2GA(DcaUfPP(^np5RtcU!IFrBMx`B5Mz*PwPlYkDag1h0s98QrAY zt!z*xCmD>N|IFtZm(KSdq;QZf-8qp)%;^ER7!wGZ?1>mW{>!bw46uZNWaN02J<+#t zMq>}Or-X7nG5}991Nzi!b#clQ2xU=<FdL^qKwaB zT(^f0?Pc@DY`#DOvWjYa;Q@OYeL+l8KHBu(95jEuA>h$$#^JxbDn7m0)LS`=#S&|C zkTUx%pFFay+2Ly}p5#qetJT<#o1|>kU3=TwyAn!nH}fc1J_K@YPamMA65u>w7-5++tR2wtCwCqM^dF)uGJP!pE*qxD1t&Urrm5- z%a!d@Q^j(La|5!ib|=%xOjgIos@0kK84d!Ka*1nZ=HjX2$2o-DcH7NFRZ>!S2!}^O zidrQ5uryz-Xie!_ylX~aDGdooR^EQGer=-DW{-ed0vKbFj_|x52Ah}F){ntPOXiMz z+$z-c!73cC#l=9gJYla7gOLx&V6AnKBylt!8vWt1l&EX4ucml|mzD%lPKj%W$A{S7sbFy^AXM+Xqn5(KW< z>4a4r{=gM7x=fl7ZI6gMrH(RPNSKGEDf9BoV$hiS_N?Voab#deOvL-!b<*YzlDv*4 zsSw5Jgik7t*li}SXZO&VQ5%S2Fx}}B^&&_D$`5R~U$}6=2RE*N`}XY|e&HaKFBXdS zz94A!L`V`M2~;sQ>hRn8aG2%6>u(0>wG%4c)(7$;iA=p-Cp-42#cYI>OnFo9h-6y29XodD2V|&&=R#+MDGQuHTg3x2Mx9;)s8tWD-4kKN)pt(y z>s$(+Dhq=*UDTk&;gP&7T!xS zwYv68WX!7tN}QkPz%gH&KX>kIwNl+SwM|NL**$yr?%c8SvB!?S%fm|aIHF`a3$#aL)z$~MM@EWR zueJoCmPxHQN^J`LO}&9&z%s&pa86&Ge*DqLeLBFmp(0{<0f<(yoviSP8AYqvnlV zp7X_Y&Cq(Ta!E*LS-2iThclM~0%^5r0tAcvURDlwr&Jm33qY1Nz*t^)m(?sI&NvF& zaMNU)=2SI(4e%rgY19`2^x1$kC!m`Ufa8FJfCJjICs@?)VuYT{3=2_020CRi?%A!w zFY5ht;fpXqk#!2ja56wx_kvpfSg09{LaEeS=u}m!rR5W7fT&GM>|^RS%Yr^~(;9=8 zMx)LGLkfogQYfs|?##~4+;ro0WA;5{#0Efll;Oo_goxF@XLr8SOG3F9|De+*Cy?Ec zenVq~j(jVfoSN-b+ zZ6r2ap@C7#umytQ-yav(Yo)q`AuV1)q%q8K*ysp}Mr(SQ0`U~aZtaIj^zqX+ zIFhKkFU=puKq{5h4lZi+$q76fX(xb7hDZv|R31ZQ0@oRtkamUCz>2hF<(ho9lh>hC z8&&$VR-lK_3vzlHARs$Z7DmEpxnP;<+g<^UxNB1VLtxLWfWu~qfSs4!I@KCF&mSBLMfbGDDCD^a{NrN1Vu*C~bo7`}C!=2* zlNtGZuG?;ru~yeIP$^f)(r7eW%|@|YJa}NAKd6c&%K%mUcS_BkmUsRT$YN5eoti*$ zi<0KZ63!AD29Xkr+Ja^?N8~byHV=!LjuA8%7G5!^zx7xI{R^AcP@;*f8eVZjsE+I8 zKP+Rc1L)#fzn)QG7&GRW5uA6K4xjt%=UPquTnA?RL;zj|Rc^?JVUB@{!}lbOVjIc9 z>w1C@KNILfBC?1uP*cn#8gvHkC=8^^M>&X~H>!3-rh}+62Vg0ShPq@#LuGDPM5oPI{_u9FEA=&gh>fef6NR`pQ*W))gX9|(G~`6x(Jp>lwGRCbdqax&Lu5e z3YHy3y6n7YMry>asN$D^>qDU{b7=B}^fdr&Ugb>yhWX%RB(nuMaNt0p7=D-!SVh(V zGRkBFI?$v)9`^)EJmUzRO>MErc8j*BH4hSNt9mDJ{s0g`%!Sj0gXjQfDWJt0W(s^$hr7gz&an~!=^=HZ$YdVSZH_fo(l4y-=8 zaQz3bKFFYD@MC%y+uqcx1JzF3iw^C6Ld+6Yu2hW{b@l5VfHiP{N7GDbJznChSS#;% zry&NgJTnqrfYZ(-OaR@-MAD=DW!DKwE5pPR=O;3@KOBNeN;Ejf0W+0Xup)w0z&SC= zi8M?qXovzSrpzIU9`FPV)-52IcoXx9_L+vcM&*;BmNC7`Bd7(jvOs$5hD^C!#t}2} z{C2!cdTK=EppCqyvro!Pan}Y+M@V*gjca>p&(&97U8~jR=jZX%b8~YK969ngfAcqZ zXI#8zWbZBI;>Y@$d`+HNYwh8?Aqo- zTM;x*$v%N-ciOBhG+tfbD4uUNS)YoPN@3r=J=>-xyY^-X888Irjz}|81HCk;1mQ^K zGFY8QS4u8$!BT3M;m6in9?OeGJx+TVi8KbHO95>|DT13r4z zz@p9?P^lDW#n1>dBvE2Ot0Tk>fn}D51;FDFi62=MS_#ZfCjDG6U0(e}o5G$x39tpAuV@Vc zbCruO%d-RQBJR{~&9Fhzj`FZmW%nr8-8rNU6-wtz0vO|-E zd@i4>HR^2kapG*}wYK##4R4<9j+O}Z52V1QvIT`PNWf|1N;FDXIu&^(UX=L;G~l-2^Suf#p)eLQ5dmCuM4Ku zeZ}I4T^%;UjA1Zn8D`7^_F;SW?)hJT`M=stz0w>D8TkxIn{mN@&yvs{E(sDn-NhuG zmXFB}Pc{%)yo^JuiJxS#`4<)$lXs~AX-je3eh?M_2MIA;6(~5JOLiC{(`<95hoK-x zw8o@ZX_2ujY`4UrX1E$UCeb5d@4|>r zhPdPiV9^iu{EHp~!Z(vo84#1Cvh=!oLj>M3Z{Pkv5a+9HvuUH4R=Zos>QhrLeDK8! z7cQJXj}c?l>W=N(4_$Ljd2H<5`SV!i9#cA9zw%2B{|T`nX$}4FW;(5IUGI{^F&FZk zZV$pLCh2@8yLa#2TW+~!W@cu3db*uF^ zhijCE08d>;U;s-=deO_Ma=wc#Z_)skm85ZiO@qFvu@OM29voP;+6^{CV3u|CYpuem zlczWw`z@=q_fLloHHtU*Xppp+%fVP??2`+g^AU8<%wlEBhy*U+ zHk?eKsFL$(N*8lrD4`g3g`8pNQiR$aM9o%6$R3%l z*^|8HM7^L07XzN;86%&lbDZ|PPJ4)L7{gelOp^SM*-U@gm!z_JcEa`vi&uq8&<|1w z$6k%2PK1+GSqp&uRUy)5rRYFp8-Gk_G#eK$PS8c~Yw-|e zIa}getu~u(xKx0xO+K%T?8G_t*XngREH|^Wvn&8)B;2)Y7wd!`)M@L9eHxM_N005W zAXB3GeUxBBs8rIxM(C3aw;aL-v9$mhb6MS2-GAWLTW_WAtZ=r3bU9EIwYQ=Webd-l zE>kKNDiwVWan)7(7Ut{aO69IA)=PU*FDl%!YFfjTv zF0W@Lsi<8>EG7-h!0{{6BQ1=G0!}XhTE^i@l_6|BmdtWV1dTq!%mfV-t2i)`QShYY zE45abDSG=lfL>UrJ$dxWnduqq@fl~P35W&CV7Z+bzQEA*3^njth-(}{91~O9YKAG< zFFXem#KnTPM3~tpXOX~V+zk@-B$E}O`%VDBGk_3J!I|m&5hOXE&=HvfF#e*X6Dlte zhT}{Hei`ioBtdwX7Ivm%Kvf!%3E^2xaFH2_rRWq#?P^i&b8V|jXfi0y`|S}wHd}?w zYI*|NGP4M1MNpSWQkVW}qb<|eKI7==9k}v|t@ix#d;KKO}xLx#*jg9Ttv7^)OOl_Y+ zNt>f@yCZW^&(?!d+p0AjynA(Q40}{5K_;jIs-M$B9CL0}p`=fY@$>as{mkhz3$+E^ z^vkfrryRX0h*sIXa~H(+si|E%caj&YCdS9>wZ`=H%teWWo0|IK7w%?`_@2i5We70c z&e6tD3G$hMLXp_?@J9(0D`syV7BU)65SeQV@mVGr5j}KfG zxyeEY6IHIHMpl#r00iE(W#75I>Z+@5x#bqhf<0CpBfApwd8QkC?}hpTMIgUzY8#T3 zv1+YeYc?9#VM??4T(*d{c5Yx5K((z~;fw{y>pEq)!TAxU##hAb?A+YL4?leR)G29} zTFompWF}M07Y^({P_0xZCMNdm*)usY$uh{a~aU57`Uic znq8@g+8Cg`?ExovHVqzOh&8btTG-tJ_Xi8br=@SLy8Q%!&T|nbw=g*(NaN$DB zULDm%9Cn3(DU~aw5~X414L4rzoeoqPba^C+ zt{HByo9djUK(hoYjhG9_e))(=;aZuieWNx!xf_|hZ-wffsX|HEHL~?sL?&nN z)<7g*^i|tLEj>uc`|5U)I#>~w05WL5uTK>80!SRQ4I^C)du7V#%TOpI5uXdl!g?Ux zW)g+s5EH{x8X-}VAUIwSo1UINar{KPrN?Zhr)R4i0`hs*hC)8qYK5;Em&;|w!@|PC z%*;%^UdIC0BUQRrl;=pP702pMHO(Zguf92AwqS;6mWsp}2Qned>XmckqLiY&ZB(Bv zwD9~*fN_L`C&~<`E(H^erGsF=8dL$d!LMPAGL+L4DR~jNI zjAV{RtYRt$eIfXkC0(3Kvld7(Hv~3e!^Z%O+jHm6ojh@JZg!60O{&Trg4?n@tQvhn zM5Fl>>H@%%2=(FK(5)IwLKr}pxa&mJ{-)rmJ^|DE0h~U)BnN7f;bm_uT<7vtP=lGk zfY?&@42bn3mBm#0A7KTR!^?N{Q;WF1cC*DWQ(kr#VaH+q9bZi6Y6BQFtMlOd5JZxp z35O`I+yq8LstWpT8Qsm-cPykIl#0btslre~J39fKH@Q(!p5fJUMN90wWUUotyD#8#|OsArK< zgEK*zj)=luoXezXCxE0ANh;_ZXy8dsM1G_RK@@YQ6HZ4CG6@IAoD6b33}Y*;?%j)! z1llySkg)v=be5ByiRbbf!b;Ef^cLj|8xFcWU%YRrIS8CRdk$eL zPhqv%{Dt%9F$v?(ojI#h5~uP`XZwyF*B!nNvCV+&RHyZwFw%%~a>>a_Q&2UsyM_V6 z8Y*xcX}TZL7=NPHFHh2#QiG<*I3P}QfH*%L z-bP0F-wlBm1@wiOUT^Q-y^lWf=+UD`8NCDLJ75}HS)4NrQesxq?UErUAv0niy9w#) zZwdw{;Udd(nVb+65;)(Z&XzK<6xCBeD#Ku+eei6`ZA4@aAj+%&lEgEFh-GxOfT+V$ zBS<2I9~;Qr3vOl6=9mg#$~_q(C#v;mI!q@yCrw9Hz&Xf+tX^ASGHOt{MLav92K7KrFPOu1V+C- z6nVRBERtp%p;9jGNZ97D-)5Sz`wOj3OtCMMW zd(GC=*hCRWpUsv_#T`4gzu@MZ4;?r#UaiW->Xi^2SQ_nSbLQfO16N)3n!E10^Y+^@ z@$|`4Pd@gfpH!&Ah6A@{-(kP4L50C@eKABh2^#g+%cgl3Qs znP~86I&?rAR6%PmHK;c(f1#bPiitm{CvwtEj{<1)MB0TN&>qz$)^4&Bbz!1-d%Jf+ z*<@7DSz}u(P`hlw_wi_NHCv1jwz|7^?P8Zrfw({whjJAwg5lL|cgc)%CT4!#6bq`a zq%c56Dhp<4r>@UW_FN$>C1Mm{rM8Q-~U*TTZQbv^RBDa4@7Gqe!!AHUR1 z8*C*}H=>Z!0*K;lwv@^DTJ7=57&Bq}_Nkq_cG7|8PMv<>zWZioX7ou#PmdTi8;ufY zkX&x8QrR{!e*F0Hhacqx(4vMn-*$7!ZcM2SHx#ar-j4JzXxsr}5HaIO4KU-iETRG4 zQ%{}wpbdAbqaq+LL)u#(V;Q@N@F0pN-)6K8GoEOFY_<|Cs$n7*l_EgOSelgb>f_k!6bA4QZI2hV4pA8N_PR3XYRgQgPhrZshi zs7EtY+DxI^Q1x@jyoiLOK|2I#(1z2N9AlVjCU<%PK!F$LaDAqC5uP*vaxIlKfK>Gq zmE*GPp$m-$N=pn#6OJ_BXkE4dI76wfBx(x@hR7j|@F+=ciGwJi3wY-_tt8V;qFsH! zoI<&(XDhW$?y!pU2Um5+9e3{8y>nrHZhCqe9YK+)qGUPiq!FaT(g-QjOGtJEDi~Y3 zI9z)Y2CkrYI!L8M84O5!R3ZsNl2r;oqmx0&KriZCp_@yrSUGzm3S#8-QhXsKES1U! z4<0;x`0&}YXUI4{K8`;Bv3Pw?4R=qCthESat)Mt6u!E~yDlv5$3pE`5{{8zWrzVd* z{q!gQ`V&W=e3ErY$1UZ~6bprMj^E?sk3RD7z4zYx#FJ0f>UFN^i!)#L$}g*qRZVJ5 zNP3gz2*eP)l{`$tIw+}O0%r!0h0BXrTK@_`cUVJ?u*Bg#XvAVKKMPnvO}&-++G-di zdOCHwl*-s9eT@S>(wG%kI1K-=jmdfL?Ac?-jx(2&)|NKr2m*vK&94eZLK6sZTK4;T zjAe#58sIP`2yJ3|uHbEA7O@f+6hoj^Nd!_5&#pmunt5FyQHHM6uqF(g08|G9w98ta z;lldh@&i~Z7kqPMLgYB0W9bpj=dXo}hB@K1=OBz6N1Bcpka57FTu%alYjAtqQ9=*~ z8?8ZY^$t26Wa!veTiNU8^)}56hX7EmlrEepY`_q9MJTaEdm5g z<5LzTi7<!pGY#eU{+&Dg_VoWF`=HDNL6ba!sw zaqz1BtRFMe(7E@qSrLBdil%q7S%b zOZS!`l=n%u((+hVkop1!iBo|a0VmCbUV)uypp#a`Wiz~Y@7{gk;>8EN(+ z&LS+g`-lOk(P<^89P<8M#78UuPFTi4YnDPZ-Qm%ta#_mYKE;@lPv=dC31nX6NG?SW zaMJK@h)ECwHm8%){0L{JlC%y-hVmq^c%jqQ9cp&6twxhx>$Y1Q9&up|4h986u8v`0 z4pu%yS#42SYy?wgf?`5w1ZY)&4r>p5^5a#Vmb8EdE>Thw1O+G?Q8rvnz{YS}Ht4%u zZM~H<)5E7@lbvzH%TMsjgp69F^^F02S0I;V%YW|NIl{v?9G;q*I(FUZf0(lRijd_=$iq(UbEe3ciK4{px8&DW0k5F zr<`76$9jtOSbX@#>nEr5aGurCDzgTV(c8_m7;6!U*~=mJljTndqjr?eH320uaw%in z&P$rQS%?j|0&L&{;J9?%Ns6i7DXW3Tuzlb(KR3^jmu;N6YxD&3R3m0WYOyzS1f?3- zhjF$>6=PWQ!CvLUkVe3_Q^4h8Mi7|}r)ldE3xFjWdpHReOr?i7I_y^U-~s?tc!C)9 zq@{qBfiie>sa){=1Q6nhq=z(+@s>iLW(cPV()pa9M%qH>goq)gdQ!CCkxp`WT)klS zSS;ZKc(zcp{Y7=B-NKpD@{M|({V>}H+^jufsoY^Cshi26br}LL51>30OGXlC>uvea zr;m66`wzw^TW*rQeH=+GbT^;T=26&Wq0=42$!mP9)oz7UB(3~hquClCANS)b!jqGe zl#VJwL>u+S+}s>4zFMv7%#+Em9?Z;4H=9i@DDwIk<{(Dt+8dEo74CG4`CPl%nw^^DSd$SmnvpY}CC<=w&)r1N1r%~7MbR^ovDkuMVoIp2zy45Hpw*{IB?(< zuXqI;LBPa-!%5e&AS=L$gd>>*eHi9gHUd%3ScJJ1yS1R0Wb8k6>stV@Lvjh6840gg zjHWT1F%rYD6g$WyNSJaxF-l0yopv^Vi8?0|P7~M$Ho*B2aA<4S7U4;;I7gZ$DK@=x z`UvZ6BSXt90-xJu!7q{e`P6zZ=p06{qE5EP0P^TKx;CP~(4ij!oXT2*F9kUBrVP#vr8+$r~pPiGI# zO2A;n%c~al8;-VH@7gaGbjHTUI28M5!rm@cu2)OIiK8l4D0Xcbs8+`o78dlv2^yrJ zZwF{sqv~6m=*f3Aku4tjc-glM+A@_&c~(1p7omfNd#~EFZE9P(3!FCbOTlyb#?3E> z^HGs-R-(;Sgor^;=2%B8YF-CuYQm)~fgc-TCDv{{ywFP(9h+#Nt%l)k$A4-r(WNzO zz-Z82LZN_+Db%$Rc>|-@-82Ia$9?a;_vv6tew*4TLPjdZ>eJ~_4;jhqv97)L+Pm($ z>(nW|UmCtAF{s^rc{K8Ys%A9AB8^FjKnhAU_E1t-0DKOSoAzYP!(4U&h(!{5s*8;T zVu3Q4f?*TYOvYDIROqERhz2SFsRjv}_+nWu;PgPgz%zK}kdRad!V>$kc@q5%?WvA| zsKM^3B?;+_Xz6tI(qj=FJ=)*WPoUr;tGLKktAU6-BZ8JQ_-D(jd&W84H@6gB?yM=! zw%zb4%JbPDngJFNOo5O?Nh1t&Z>By?gui?b49T z;^OiCxOhT1eqSC{(j$|??*Wv{`bsbaKAluO2xNdxpc%?C*O5^fe}+}xPh$xBEC2Nh z?OY*SfJqTrBUKIlQZuaURf;82u!$k7uTQtzD4Dr9bM19kAH4b?W?;M_wu1=b9=Qaf z7(_x#nf}OxK&=3lUyeV-4VHUF*)Ii@c)gtN10zBWZ3wKTkRC1TH_SB<+VC>gXn5m5 zs7Z(HAAmKxs-uW2H!M@TOIJJ%*LkTd=%iH{{~G6&3Xc1WcYo3B;=guI>TBt+%7xwu zFa<&q(^zKYKla#TY^0(9dX`!MA~fGqy%q(;!h(=wkEo^^*7??wWJnrQERjr>z6Ag* zO7zo?IJ^en#Xz_iaDIsN1HL&XA#xlZ1s-()7-Y7l0095=Nklp<@0s=?PCpYcF@GPIHMvZo}RqpFy^Kb}|hu~orpXU0J5I|7NRrp&9LsONQ#WD+rL z_>&K^NL0bvm{+EzrY0vR8S%4ob2!#ot!9sh3e16^jT1vh4>fa5Oib7oro)&X7ms!1yMc=U7=LKf|h+v0JHKveX|U+u+?l=UWy}$nv-Pjv*^^D zP5L!g$e%lV?waebzWSPLOxB^g$FbvT?7!>lhcgi!NHwEFLy^KIi&PhjTpE^NR}^2& zW?I$&uULpkpUg{f`mhwg56MUn)@oHiRJCF~i%qixZ14n!<8cCL?^>~vvc$AAu^hxo z5RF9D$_!>;GhZ0z3-b#PKlE_j9+)Pp83Q3Z8K}$xgl&q187JG!U>Kct>-_oiPe1+i z*|TSvO7H;!%r(oc%}daiu9^Wd5=h01JjiOWg#s5#loo^0l2u;&=YEH)Zvk*o^9vzA zMmYhPv`!4eWys~B69E1&j31JaB=k}u2J-gP$SFeKH#o zs?TiugTqp58C+qM0iMyMy}5Kr3W6;|y-q9J9e;a`bFnx-KZjtElK~4gUebOBE8Mt} zD_67U@+DIu^Sr@HBexOQpw6M1sw!R)Im%PHEHR5u7Re@83sSyV5W};F@q$JOMs}rA zAst`OexG5=Db>Fui~yGS+kSAt$S@foU=~Y-wjGV_-O&tU{Y+S~P{K^@?tN1uYphDL zx7)JD!TsA81v0f-oxOaiq~9v*v^#lyS4@w7vNq`P9}3daAh1SYHnnZFF*sMMRMcL* zUUh72=T7}nm{)`n4UkqcHdx1nghhc-7?lc3x7U=S#`Bg<6?6$;gw0VsE!2k5mAGZkx6A(ovw(i=l>&6B;)OZRp#yiGx_+=U4$ekB#lP>{V*zxZy0w|!}k-&NBF@8A) zE-zFCj#Y}a+C10p-MenO>Beo_ww*X}yi_ggIU2pnP5THHqfZ&y(xe+vswvs^%>ye) zhG#Q!o%T7Z&o^1?O|4XAKp5Nbw%)ev->D^p-|)Hf&O5OaW;+?3w!7DZo^s%FY8^_+ z7bq0vY9}tHVY|&VAhnRqm-4w{F2jOH6Xy##7L;-+Qz&+61=cS$W2HtCrFZ3tlx)(TLso;7ywg2tiHKo z#+7LxL!g#`RUypxz%nRq15yJcl_dVkiVkq$6=z`z%DHsAbF*`gJp3^8LQcWvI7txE zeSwfC)Iy+vnVtM+HX#Xo-l0>3lE`k;Sz}C5zu?H}Sm=ajahU#4q7@NJ6w4r%&2_Sd z49;|4>N~q(cx8}>raWhcoI`NoCoew;Twa`c*N|G8I#f1l8;<`@_O&G;I zFMwk*(&@}dqn1r>N^y`BX+N1r3O#BIxImKq5#Jb#WhqJ9I<3E8QDuM|LyeRvW&|N` z7`;Kv6hIRuCShx?aNyvP1=BVsNOswA-xKYHD9dmT{!AmgI63J9DUks76P> z1+PLwH`z9v?KDcvozqf;$h`DbFM0br-nwJw_E@h7Eqe%2h#6q8SOla_2{uI2{0MX^ zx2hsK@N~M7w5RH?J>Ue98to3Wrwou5BS5so)@gGtY79px*StYQI(LBL0052ojHnPwJN=l_sJXKJ)TfZ+2jR|X(5MKh;AU2K?P=XDsaL-5e<-au* ze~?w_N>DHYZg8|sd6nyu1|u*xJF87np}+y)mw)M3ke{5KWTG)d7Z#X1>OKTbrBq3C zs%71Z_qlXs z=`B)iY^nR{#anN^^@ba6z~{)jlh=l)?;J%~E@BKH`zOBf2A~uZ_xu)fBwegKAZant zj6aD&v607(+NY%D^A|3D^kaX?zIl9nqSxkpP`&oLgZuaIvsG2z-)Ro?%uuoy6di+(igQlYSX-VO?6r_)sxl;?O+W^k(7(t>5CUX z_nFVJs7RP18qKTrUv>MPx3wBAwUJ7YG(9Q>XwZ_GZFk$-w@)3u;hMdBcbG9F5W34F zLdp(r{8ZX#NWtR#RPnt`d8}HVn6R}#>)%5UJw$U{wRf*its%GyFHE#S3aS6m2A<@m8FG5S84aYhw&%T^`*DIZoX2x3QSd|qz;rlSB5eT^y z*KRg)Ox!jc0}Fs84K62%#3?L;fm{w6Xy3kl-}#;2`SoA_^=?)QF6OzEDN(?mw2nTQ z%!q+A|1IzM)^~l+_e^b{lGCTX!aCq{ zt`DwzITH{Vl}yHj?dGLrEQPX?6XL~-(|_^Nzx>S){o8V-%*1Ne+t*)v?Kl6eZ+P>Y z-ayyc=tqeHRf2e?$B|TgEp58>1dAkfpLODcM;`kAAN~=XIOWhL3}tGnx2<(L&IE|z zgD8DsVxrN~7a-vP6hiv~0Ko}BWvDQ$?s6Dtwc2;ydB?YZ>o>ph6)#oks!6Dxa{cHFPxp3<=|qB-rU8DhYlRL_L^&~zJplO2HHH6z5l@nXXX~h zw@n6?ecj>O16S?9RoS>mARGD^gNSKM78fzxErSR;mXYh7yKwQ|2OnbXx0rTRr%#{m zwp*|Ns;@MGB{8zmX}YADWb7%MO*>mHKheI=?#tiiFV6}4Y zDD-+~FJ6550f@W+4r$8USv+eR+{b^>4l_`x6g;eYV= zKXBDmR|Sb@8?!UBzxiAL`WJuo*9yf#z1eEiT6f-Y$KQGH4}Isie{+ynC5{|<@Q#@d*Sv+y{ z$>06=|Nf?%Zt^JO>hVV(D-?1+`QG0wcwT>E#5vC*IF1CWAF&;wsd7BZ zZ3S@BYN9_lCksMiIFX zQ(n`gab`nJuG%F4@=LYzB~h<8TAdbaF`FeDyx}CoFm-{g25O3N)Y_vo4&!{y)h8p} zA#FAyxzO9T-(%R~ux&x#`98NePSyfEhL6$^PdteOnqh`ah_4>(WEK@d+2CJ~!cBsk zv}kGyK2IYJoL&;hCXNmSokhL9oE7YE?LXB5-Ge~u9ixbVzE-K zjund~H2J`ASY9>an!!O?YYbZDLiF8eP8K$JpF>#p5TYgh($EaN=NLAi#}+Hkm|#o- zk8Ut*+-`Ar_4^^FO}nrayF@EdOHwQqNy5eKmOdI$VQbI1cxx~}m>{}rI$maZ@x%fqbIYIXZ=x;^HvFTT&t&L+9S`2d2|f+WBiU`s=yioP~M zeGa!KxLI5_pc1HWJpH+XjWbuR5y!AFW2kkGreNInakEQ`u^7%L49>k-S+R&Y~D7L(}Vn_a{0RJ zuRnP8p>n0%(#sfd`Jp$JOV51@L|HHhQG!G+rISx}oTn`=4iyr}tp=Na!hqMdBo|R-xR|CE zIx}P>3kWR9g(#sb0eznVcrl(Z5-#I}bAZ!cB#3mHc-FCf`}W&!zx|d3H{Ep8KKsz$ z%-bqPj)FRsp0rP3ISO#C-BcST0$mn+5WP$Q28Z5Wm(8|W9z^SL&w*8(u7@auuafC` z3lHmJumpzN}*eyn}i4+8USY=vvf!>8)vgtf_N zGZ={Bp?ikFGDHc%9-EGUL8z(gLJo;t3Qm}ZIvd})$8dCy?FeR{p=S_;rH}89{K7H zQ>FLAdesflGowg4Ozj#CB%2=qbPTg+K_RsMY*ly@gckAfBP>pVE7)Mr-tl^VAdV}W zZ~-1A^wcP01amW_ItM5ZNhz^3*0NtC8=>?*Z+ha{1`Te`a040~4H_sRlH3NgK_aG~ z35ce@BJN4)P}y|Paf8Qzyg%w0u7R=Tp*8P0W9$_?cj5DH!!dXZ2o@!cEXIfV2(0w&qZ=L^MRSuePj61((bl)i6-t_rH3K1e`G)?RZiV>jxoziCjvB=F

&r3)@&3Id$JWg+Wr zHw(S>tfdd-{^bef|GWC(tnPXq1Er^|!_;L8QA@2^14yM2@W1YYVdC*EO8_)U$Uy5p z4bEOs2?J8?=(#u&RtputVAQRD+`dX@9}$i#TNhS&AvBSi;R>!`qv3-rL~N=$$0noC z70t>B7jpqcAvBZpmPq(;JPWZAw}4!Ah@{|5%eIICPFgI6TN8uor(%leMq z>gF=tLUv8}>=M}Ltc%r#CiJ`i?)SylN5m>bzb9iWhM4B=?PZA8Q2HnM;Pdl=1E%Fz zJ!}DC3DRf3rX0wfx&>Pu*#6uw^a`Fs2vaf{T47cIIV(8@&BSDmX!_W?V1n`(F^35# z6Aa_|eM_eQYW#`YL2d}?NFaqW$tFQ!aU=-0Cfqba5pMq$b2hkUoUSN!mU>Zd?pQ~Y znmg~?HE0iCkY}f-h~mi^InY`KGWv>~B6?IzztqT)Aoa^%*{jIMTY=OedqC(X(ly>1obEFVJF0nz$AK_Gb1a zVbOM1l~7Tm{nGDv3}T?L0k}abHw7kx&xc`nuC)O(>h=1C3m49vJ9j<>qSMpU{^Y+~k#6DLocToq3BUyFG9>EjnK%+N=2)Y(G2lhvF1*KrF-VyvqmPWybvRg7sJZ$1nozfE7|tJgjl`nBLam0i>m1>m z2YQpaGcz+YyDUhapPz57^(Cg8gRoHzu`LhU`P8Y?=~;Xtx#EmIb@CKAbLI@*?CjaI z&IBj$7o?sFViEA4dg>`U(Fd42WS@?JsMB&;q|jRC@D&=&F3EdC2JRwT8yAabv*Eqi z3E)yH1lpam6fD0fGj)W{k7zU+S6_YgPyh5!|L_n0us>S9S}?)>?9cw}-~QX*!|9s_ zN~DS^`i2{Bc+Y#@^OBdmB#5paAN=44-}k=vjgODZ+hntIb2C5i13&chKmW7WUVCkj zSS3F5na}?0&;P<-fBdhlkAf>yD{&=_!yoSskK*REZYvdU>B51X$n@4$!EqF4DGTYsD&VKdO zER>ykMW?-`S;lb)&``0XNj6h&)L;4Xm;Rlf_}g!O)7O}`)d5%a2mj%Z-v6^77^_w& zp5mtGX21FE-}sxq{!clh1ff;p%-OU5`uBeC;K4)KOjONlzn-RMR&BlIN5h37T!sh) zSu9Z?HPIshnqt?sZFk&$`=P6^w)EBEp(95gdgRgBT8;K~PNUg;&8uI1`13`a`m2wB@{{ptE^PIlUhHrCI^^D+J74*VSG@AouQuMQ@yMf({f9sLqr-;}dz8^~ z^ym|en7{MmKkl5>0%!T3{^*Z)?b>C-U=V8aPV3IwZolJ&FAS_z;-N1+{Hf1;CN>Lu zs(rh5-FC|h4zBg57yj(O{r4Yw&yP-DoTgz5`AVy;?`txX*sJL$mzvFDzEEZ#RVp01 z_Ub$Dyz|JBBlq5WFJqFCgOem28yjO4@iB%%2vySv#uY9aJ_5esAYs>q&51QY;C|FblU#@Wc%@y1Y#s;hL@=^yFp9;0-7x) zDtEj9-ru{!>6D0shBGk z7>O()?6r0GD3r5Cm^qY1OM1UBycy+duP@y?GdoXc+PvXZH@)ddou1so8VPF@t{`JW z#m-3~mp7-CvlYP_zin#jhMR6ae8Y{&b;IEs4if^SZ@BJ;!?)gc`^EW%FWhra$hH>P z7AIZ_Zym4=1sB?M+i_jGo&oIGvE%TKH!yoU-A-*`q1mXnTMbUuc!N%>-DtHM^~U)N z(^p-!|9jv4z3+ej```G+H?r^KIJvN}zyg3HfG{V}2d2LUUa!aUKoMloJz;wggQKyJ zJhhEAyM|;kmYGDBsM+KMBi6>R;Gv96Z9d33#)>>296mrg11BNk#*gUe;byUhkDy4EM#Erv0 z>Vgvr+13K{`+XNp6Vld%WC7sf5J2c^w<;JnK%?<7Xv0-B$t6 z=q4FMh)ie`7ZC?`fG4aLroRuaYRw8AW>NHy@|vMx689S9)&WcILY@Uiw@uGJd%-2aGKsf~^^Wp%(M zhLANyUv)g2CZDAeC^96r6@X!cZd)3Q_lXTe5u|-Q*P4*>*Ieqzkg#5))dtOWZCC*t z1NP>J4jsUob2wyf6qqO2tB=U6ZFE}|B6s}wiU0DS|I5Gl7ysg8ANv?90rKALHlmgs zha@39Jw08o*V(GlWr451HfQviuAb(!8?|9W?=ns}2RPHqat`!*I=&C+O2e74)GY|N z4O4yTb=p$a2z(;PHb0=SXxrJ&381(6hbTeIF5L(sUKdlL69S!0$b#=(F6iS>EirPC zYei7i4|juHA#TG0rbZ`a>B&qsG1@N@vezNK)9r;HCQ$3?DIyLFdXckdSrdW{G-8Mr4Qe9t_E>9w=D9l4UXMo8_Q%Z5-5* zR+kNgbf&J2HF(_^8yh=t;K0=ODdudmKHq6J+cwc#cE_S+E}`CRo<4K-Q=j_eAN;`| zeEQR$_Geg_=JWQD0(-BNuULc+D&Mg&A6YZ}!&F*!4tle_Xs4FeWvgHI_}K>08P8Tn6akjPu}^o~YNG z=o>LomxWrvmPfDZ5aR4YMqW^hp)Z%#>3ZN$7H|ypv_}V>g%q%_WHxu-*DrN*I$4AzJ2Z@uHL_Y{~@J{ zCL9KQW*1`&2Zif*?++bD9hcn&g3|a4P!o*=xgwN3VfMZ91$c4aoTukOl+D2_AM?@{e zq6_FdCF?M!CEJ*iU{R_qEPVb8U;N$Q`+YGpnOduP$8ER2_s4$Z```UN(zSY^?WM2& zs|IU=UA+=+VPXCi zFMsjh`LQ2*^VfcLC~q~;Q$YXmkKg|bzcf~@*p?edC z{mM6e`zv1dqHlQ9SM1!eO(*oF$MaI~8*~ur(|#m;nFqada^jBLZ#{JNTE>r_0($h( z*;+k5@Wk=(HLt$w@ZmK+1$6Pkg$Evd@X@1B;x+=ypv7BHe}^VzVjg+mfgMv*KlUR( z;+)mukw+i>4<8MS*Rvw7zow{4xLfKHz}b^m?$)#}Yt zXU|SnN~Lm%-Twmndbd_{S#!l6A80XWsF!W(BH@B-k{E)+$V0W#Q^mh`%9>;h0M;-)cd z;}?LOeI8h=&98F-pxvmrx88=}^yxGI`rrQUFaFZ6K(n6M0&v^<7l83fN$U?g3%V?y z3x@z(0JMc?ucTWkT)_%H_@#)BGp1Hew}#v5-uapFX^S|#d5_yRzZ8b`(O zKiO*j66S)_Du5Kdyl}LMRUu zMAispM1qn{bIQQ*)=RePN_7rmX!=y^-c-!+34?D^LUGTFR+FOZ6N z(X5YgX$niHT?(CEp{0k=a1bSyUUIM)w>vFVluAW=lB8HF<^2>&nB!oo?_ITe-8H|f z&W^FgVy;ju6iWq`oKgjPJ(J0XU#pwRec`^x&YYj7NkhVFpdn5#NYx;m?+C2)TwEI% zf{Rz+Z6N63Ks|S{3C*$|FbtUZaqe%F3t;+(v1OnjLbhMN%M>)9)uCy)n8U1-c?o=N zuuOJA_bmYAF^NUEB8L|oM3)5_omip#vQW`xx-PG~Sr67Z5R@HLaXX2@TWe&grq+OF zq)fEZ%aoSq@EabpdpW`l{& zU}4rC+FL8g?^^WN=2I?TSVwJTOCg_Ui}%I*AH8s4hV|5%bJb8Cmxdc0A{zp%PLh^BIEQfY8e9MfL++F=FV$g!D}^grA7p@s zlpYs9Ly%YxP^*n+xU;5fD?vB-B8XAvb+ss&?c@Z|1cT;eOJRyRV(7&VY-U&sTJ4rT zUP^9ITDg+gs}_#LXXL;0s?=Z~K{H#0l$V>zU( z7}j9Q8R988e+@dHEnHauoE z^_?<$cU) z5ZE%zGGHr#009%#Qn^m^^ok+2Jm?R-u^x3;)zZ6-bbIT`V`omBKA+E1g~d%okh>Jn zz%^1nX_Ix_mwPsFWf^!*pw(*Gy`}KvPsGTfxIAo>j=+c$z%Vqi4ND0;1E6He4|W8E zq_x58qBbx%bBjS!ls}1y>s_E!OHF#MBOs?6Eroos#LmB)&9D-5v)O#HST0v5w@vNY zx3_5DZv+zVUjW?oCsA7i5>fxVYGgC^$unR9kit&*S;}=)8C8UwSdN`IbNcK>b9}S_ z%gf@i+9fXuuYQQ6U^aWwN>x3(pb>nv_hle(*MU(B$$FZ?^j(47{PEEh;t7U1mxSvX z#)uPuO$x!8z(pN_^^5~^D82ve6Oz^j&re8AaWqD6xnbuW0qhH$#MjyWs8GH6ugC1| z4r8m+Y1$q>mn-PoUd1w;3p3MC9Y29I4G!3Y5Ml=M)^36D)BuaExl^o?nL@FY%jp}E z($me@5)%a00%_5JDHaP)Jbn7%$B)m~_3kazUKjmNy;pP~@LVHhEQwLX5L%C|&jL1f z0Z3ocy>_5ru~R@`KmWiEtlidw*CC!lXqtY6wAG+*0azZ4@<2WN*gBRx7oodAx_Y^M zPCo}RH;+Ov1>UVJ*z?%*Ke2=meA{y!uW(HgOe;WP+y8)#s$ zDdY;dY(d^>eZZ=*v8ui(qo)&dj~+e#xqBXl2+1Zu_+0ee&jZjSjI!t0y|s-6!2A)4n%slWR>P-=0Z8HJ`NiMuRG_isCeEC!_ zFTyPdvX_FZig1o6tpjL?m&F6ty#gfgnmVDux0Nv1A99CluQd%uf5tsUTt>U0oV-p2 z%;a9S(QICvo(aDSY0ZKxPTwsQ0{d!Yn{k>N6?E8JqhQ04l4n?JO*Wbf- zX9|V(fp+HHh3O}coeD__tnNUCQ3I>Wh>fSog!vL!gV=K8=b3~r1AeJH*9U8D$6~(# z$n|Xro=c$Cw$suaOpiKmmtnYMgbTxra84S1{@t?;BP3r6K{|nRJZT+3gItnb0pf-d zHUKu^eULe03n9x68>_;lrm%30P@ClocvYOX{I%ZlQ!EwqC3XLZR zjBtH7hl*A!)wzYn-48tGLubfPHIKO)8R9z(5E5f@KeHd!L02GbU^{rjqcC*M^QVoe ztW|vR6zhIz}~9YVTfgW`1N)! z(<|icMdu|}0DT`ho9)=m^LD#c>$Dqr)`nibhr_p9K{OjWTlQ;?YXc^5G|6kT&RWv6 zuF#HeJ)Mk>E@v2yxfshN%I9b28}~o*)I!aEeQESy#t;DkYw>`Pm?Wn;TNY;GbHL6O zB5C>VdbR}5Ie4uhn7Phj>@hE#P6K`v){sp=)cL@pX-KK3c^r7QVMIr{6kIHgkgz^r znp+40OVIW(km~?CZ8`DAMdy|pTvl@@t*)ZiV<0`!)oaSNr`KrEeVkUiQ!bY|7PMRK zh1voR-d_DyXf*0-c|1IxU5_HLXlPfSvtg!@PTM~>UIQqLDzXYu zv~E)s3al&?84&!K_1RdnI zFfdU^pyUeN=Qz{@fqY(o$;G^L-%Hh*9cqE4+rU$8v<8puoRB<(HBQ&%L8*b-I4o0# zbt0vC>kX}>A!X!-SjQnkI(0us-Wvy*%{3Z&HF>!rzYj4pGu`R5ckSB6<{#0Hz8Bo! z)WBMh7$Jv3&Pt^;RvlycWF65@9Iy_o&t)@m3VQu$v0kr1mx_IFDqKB!cC5%}^LB*E z^vdPZ-aR{WMZMaZHVsnC!iNX5iNHC}EnH6C|M>>rm@+FF!_lGp8sGx!hi>?y7Yfx5 zv@ZkCHWH);6^7-7R|^#O6DZ#>{fVg?Y4AosCjfnn$=150A79jDUeDr6=1!Y6fDN{8 z{ugktl}e>*_xy2>S`x;_tCQQto2`1SHqS<%El7_oNSi^@$@lC&A!AZ+63rBf`h|*e zsi>bF#G%?7L)X)Ws##BNI$tW(>Wxe`R~@Uar@k~FN1b9pkNp%1#oKN^{A1tuj(_pN zpZ&%+fAuZ5-a0lufpQ=GOG9IxaSf%WPnLmXz-(z?V!U7O%YfeecV#hn?f}0}$Pfh# zK1LlJ&B0N_Ps21B&&U85ChFN;gUK!;JkbZG~28QICcE@{K5im{N*ou*<0WG);sUK zLtanr0_Zc|9NFwABK6se9!|xsE+>OVv(eFwcDjbsgnnx`l(kBjhHSoAXf~VmMw4}^ z-R{iJ&XE!%Ru4ujKRhb zWuOAAh3Q^?0I4yVj8_9u=L3(Xp_@vq5>Za9A)z!zreaW9gO}85wKnAU0DkG0{!jZo z05t@9P|l7O5B0$h{-f8w{k|q66{|Ntzwm{-@BZ^Y|EL!8T&~t= z+a}0> zf?IF-{O3P^_uXH}cWLcTtJP*-k=4uMWH-kFjs)1L+yCq!3VN)F0a`O}~K2fs!akB?8h@P#jY?1?A8?9Q8h^Pl|^<30$j5|2Li)VqG< z7rybWZ#sP4!CP;>rc%nEI(6pE>C+c4UYwtsV|-3cO^r{Cv(nH9w!8P9N%zhmeD2X9 z7F+B)s9oE(-EsTvhpxWbl2(Vs-vbCANBQpoyz20EYyUlf`}KPOM+*g+%9wLLNc-zj zq4dB5_pkH!0RHg9AHM$Z_0W_;XC0-`Ty7n|2XOK~{n1Bu?%v%$YXWFzM(mxpZP@Pt zu=p2qxowk^lT+KAGXVQ=ivP=v3PFCU%b?2UvU4-DPdxF&-0a-zUiaFUzU-v~KgqB{ zpz4}yt~q=5tS?S9tlzC+*FwvToD@DBfj1o?oX7;jO{%4DRSSS)Kxte69HbI$G#XT3 zoeRKk{nl?MKM11*z}G+;;)O4~^MfD!AnhAOSC0>V@Ymk=zKvV}{^oB!^Zxh$++ThC zuXSIY*1%Am$kY^m5OXFw=?w0J_OnT8QU((U{i?Wrz6w>Hw!WwZkJh;T_S@e3V}JYm z-u=CjSv@{~_r0(9sy7$P6*fJ^N_BGkRHcw_TsS{FH_Pt6(W(~;#ltsTf7OAjjvYIG z_U!3QOP_(_?lA^~+%qu(WnNeQQYQh%d!d-m7Z;kXSHAqEKlS53`1NmE%MZd#&&>Ye zAN|SCe&E+i<FSAx@L&i$J|_{clH`7Nz>>)e@h zXU?8If9~Ae>?~7=9-$K3w{IVxn4pRdt0wuDn+1pw#)r_gvtwx)Tz}Pry5Oeg-bPiz}&Ic|WX~N+8Bj64oBqVSSxgsJTI0svu z@TB#?^?3b3;D*vdWNq;5t{*_-0mNDl!fxL#JuWh$9Vo*d!Uss@bYsOY-CReKl+eVg zVmJI`vFp*2!HHt6pnE#Kd?!=r=8J{O_|&eecJAI^tycB&g=}tYY=W|m9)04opZo0T z(a{_$A!j(Z?U3zIYLZ=~FL&APSRqFebs^)+s`1sZ?k?p2dff*KX}I z4~CO<-v-zm#=KoVB-R0RgaIGhc_U#x9Ol2B04kNrE;b#bF0jL{OJeu#-TSWEw|DQJ z9ou)@{DPZb^x_v!ZnIw@U5EW%cW(rToS=cJN|fp8t(0ynXv-b4$Ed@_0DPc^CW0aW zfrRF{oi&`}%m|NqW{30B^o9e?)H$UeV!frMvnQ4E*c#zRI?Tn$anny}5J$|dces3n zOu^^kTlG|B-n^3Z0EENXT`QDT@BGmV66$RD8_fmwKJyEd*=lxL%@$>=DL51tiwm`R z{6C9;`FedG;NwD(UJuLcB|_OwS6>NkHrvgH-nyXM%WDN=l5(hNyVJS%o_kK6K2@z& z)>GeRv-Q}ckKcFCJx@IL*xcM492!&2I0Wko9lxl!oi(-9fa8_LG8Y3b85$}D&q5_E zTocIJU)F|Td8h0{Dn!-|FUxeU7qq8cQl(Z|@1n9Kk|LIbcZz)z=hE;2##Ws+7$2)f zr@Ce^9i%ha`|1lkz22Asf(c1+l!6SYM7=neAUKWW*y?<__0$<6?x_XhgmN~P)1%Ki zyq>fvVPMJBK&&6B9$K$btfI5Hl5U_O!yjibg8!0r>r?d+2=Ft^gc{7(;H|d z)gR$p5AvCIG1DF^w91`}GsnJk`tb*9_1RvxsW<1hTisSWOB*+Pt+{5gs|SxXcv|{a zFnMKjHiw626=0xsNXm3`g-kBr>UI}0y?PEmvyLW2U8_OmtL2I9?6_uZaZXWhicwiE7508b6lYk;-0&bHRv zp`DkQ`*CE1_@z)Pml!{o$60c0VuE=U64nI9qeht~Zt%SfJova7oD5T0iH4Y}@jQf} z$HsqJ06H5#4F@ErRd^oH>``Sf5cSZL2K2flqiUT`0nyW+{`9B+{Leo+Gc&`K^kTit ziHV7C{^qyee*5h%xdwdjga7D#@B5ibMJFk0&APJA4}p&yIr1C7@tgPDbFXgf>xIUH zUc;cavCmE|roVPPS1+4$Cngy@X^vLCaAEq$gAZC8XK~xN-+t>){Me6t-}ioxWnMMD z^yp(h{NDG|7dd;Rhthl9POt5c^l0>mi3JRl;M#)6giD$?J|TiOZ|LIsLytUi;o=20 z&CPc2)vtKfPrdg&Z&}-iz|*t;=|BJXpa13m-`LoAzEo(z&^U*m_s^;+$TC!Ton>0|yB5EWUN24t68F<(ar2T3{Av~eWBjVerD9537H zSP}$GlA=I_OJdeK7Xb9k&(F`!&YJ$dim|%v-o0ybax%nM4}T1_T&_Z6ZN0wm13&PC zKmYSTx8?<4dV2cNM<2a-@uKO&+L1k>@w7OmBxW)9F%DaB(J(VJ`_Yg6rXJ+R<^ZC2Y%S)q*q$D~E=T47#Lg2~&DKrNEtwsURZsCOs z=l{jO`mN7=?z5dPXSLp|U-_z^{)r!X%bUJB$gKu5Gjo6Vkw5)~U-`#3-SmQ+Zn^c* z$B!O)=+STb+OPUoAN)BVX=?zdt*4)Sl5>{^WYXk|$Rf~Wlaa1kgjG<4^$jA5q$L@F z=Pq8nFgGuky|D{`frHv>UUk>u!)sgsSi0w!Jacm+YZpPw-~q-bCQ6HM$zB~cd;w^+ zn&;1*Gtw=$36cPVtLzcR#&j}U6MO++s}9Xki;-W+<#ukL+P-~<3-lwFPUzENIUrHg zof-X32F|%$sa}2cp|$N`@Siu_aKrKA$EhuD*N;A-H_e&roM9gj!iVS6L_>X4k25|! z2`IBoZ8`JRo&X@EBUOe;^_A+;^`8JX6}|v)0`Mpc!1sUu5B$O}{QR01fDH!=z;FE4 zhyITb{30#Rd7{y5-gfH?e*8z@^L_7L;|XBHF*`f=w}0ZN{_CIqS-s7)?cDW>SH15i zf9&hu{52tYHHZtqi(d5NuYBF>zi`iefA#Ud`MTG=>UaLh2iCj*Y${k??!Etk`@i(1 zl6j&{SOA)@dG*>)0M8gUd;!>Oq!$3TI_-Anz@9xXy5o*L`}VoO76A(Yt;zzx2_R=n zh&y@_t(Hu;&zzYZenZTsiTiMqS_G0#AdhE8CT8gqbtf)&Zg3`m4-h7dNdv?%EbCT> zSIX%~Y!TG!b^1x~>(NV@OZIs(*B0`IHCfnZgKRgN?SAtLc1febfXQV$z20L_JpPGK zed^&yA8B>kWqoBKq;EAe8V%|jhkxK+!E*%ipLV%V!`p_0Ee6cP?_-{ivFL<-NADpV zXFBZ}hd~kxfUg;r!|wWeHV3Rg8A85f0RSOxh#V(|;bL1B0~PeY7H%O}pXjrG`@lc1 zdo^3FVQt9i!6kiU*I@t!{wkqIK)Wm?h1x><$OB(Ged-(?M3wzM{T2k~QFB)17?nSH zJ|gj@&nehM(iP%c5)3e=z}VQ>`1m-4Z`%unLZwoLY2V<{@RMigUjUqTxE=^r3tuqO zbl-N8xQ9-x8E(XL2#n_f_u{5>OTf+qX~18J%jFn>Fd8CQ z1HxG#0y(+=1Vjh+Mm#o%=YOi?C9p;({=)-{Bz zzXSbTg72j5!*ai#3rLJ!^KgA8;Li4|zxws>eCIn~@PZc*btjAihQKqF%X*zJuDsc7 z`Z#odt8tltsAUN+ydxJO#|Zyic5ndzw(1Bmr-NvqMlArt90$UI+G23SGz9dnco{$R z*~zmH9DZJdw43qoU2VNRCIcjwEf%u+6&F4Fu+~F>K1j&)a+T~WUv~RX{pff8*!R8T zjbHW3Ls#wg@w%0v`CzjKdZ}5kA}}5qj?WPXnnLuY$@Sc+!4_Yybd#o=`Ru1Z```cD ze}DR^r|joh3z~8n`FbC6fZ^u^@Db=^(&0>q^bnPQw`kvI03fD$W=EQX0Ek3H%szl& z$t{A!TFirRdW8MYBCt#sF16R`>6Ob`{INSEZxt{+irIWIn=AIRY(N5cwP?56d-v@4 zuJ3sBcYpg^zU7;~=EZm1I6pJ}^wY;nTkrX?k$!t1 zZmyoK==T2i|Ng5#`tXMzedJLhc;QaFgEuafN`4>!5Nzjd^vThO%qgV(wj)OS766r& z+VZ>KkJ+4F3JAE8h>);V;TF27ZtRxZY?@*EQkK3MO6c*e)v)w?rjY9uioJ3rQ!4k? z`aZZ;vwq#d-9Pgq?|S7+Zo6>d;v^_Z-7= zeqsxN36xBtt-fB-lG#kV8@~MPckKxoW_|-FdTg9C1kvS3pay6^`gZy*Avco(%s^er z^~AhxmNO%<)!_9tdxgl^Lcky)ug7D$Sv?Meom;Iv^LhnvrdTSDPZcM&=Zb52^DW3_ zGo5zp?78!gKlb>2_ul)^ks}u_T+kkPYtPV40aXrHU|hjQf>xz%eJW`-=}$=7V$h3! zibelw2rl04+v|}7qS5t(vf-6`DlDV|C-CL*ItJP{)TP{}%dfj?~ zE1xgo{W%jLz#Q>uvSvp;_&oqvA(FtC8i(gu25~t8&WXgci;sTvW3PJEU0?mxU&HnK z*S~@Aw}1OX#bVh_1wn30AvvJRzN8l{VXFXpI+;wf-EML~37-V4@fMKZ)4Xv0JmZZh zni)$zAh#;i8y!7Jy(I_F6)XkDlrEcH{t}el79D1I`S2ZJPRA{M9Skr*I-L##A>N-k z0tfhfS*?rcy9ETuA3-u4!Vq79YGlabW_cFZ@T}wP*|VSi^d~=I_>|$Pr=H?Gg?U@V z!ckBI;`#joVc>2V&~z-K`C_?HC}(m71|fEav{k}8f^i&a=Wkimx?{y`{i@;lWWTkHl{p2iY2Pk)H{pxB7jWJp8u3L06t%wwt5JjcO+agjll(A z03n}YAesh>obX(ZG=Gag3uOwy(B$*&t!AyBi`U*n2I{iWx}{9Ss#2+1Dvei4)k3a_ zZ4AkfwkCLYgvi!Lt5+P)P2X1j#LcBo?I}FLRO)8ftgWMe7=ByzYtNS*Qe#ZBDv(ET7z{N~F z$ODgVCCH>;oYjah&4Kp1Y$eDrx?ZqfF?4f7;#PpnDe9@@T*1d9jp!+tJ*a3ox3ItP z$nE97dO`71*XF;N@73Dfbv(0_%%&^20tdUkHXD9>^|E#c=I&Vv@Cs>%Oep7IbYw)c-1V=jPgLe?Pg8&e#HkK0voV+~5eSK_6$UA#GlugE!bhuqmI*7V!f4PP@}; z>qQQn2I5R{&+LvGP9z8i;8{G$iHN?}K?BbKTzkw3U=qS{0Z(#*g@6?2J5xq?ItLCM zc<+1P`+eW{eN;v&RtfZ^4OkC8@{x~x_jiBy*w{pfC)FYJHLTgJzw2G!`_n)DQ`cOx zme=`i1O{t*=IpuO|AYVZkN?@f%v&QY%+KF^k^JHOQh1X8Gn(pS<@*8LW& z8m>MmOULGH=Ir^4zwp6-{^x)F*Sw|74eQD%NmboxD z_rQ@OpS}Bwj2!FqUZdH%@$lg{y!I>Ifz!MiU?Wh0b z(7FG+TiB7`b4xbg{@Bs4-EsA+U-E)UuWhH7=Wi@3O%LP22ai1Z_!IN>hFaFPWzAOW zu2;PLx=ngHd8lAC%7_8`BopM8!DEj<{^9@ppRd1u@paHoJ@q7A_#^Lmk8@Uy#d4Qv zu$5p`r81d^A9>_6pZ`Mid$`oSJ9pf2(@pyi9B|GGuyVsfWyrv$nzEcrG?^2g=tLh{ zt=1hcdhy9qr%HtqiO~~EuG>!U>7Ac;$j-SWBs{zTxIwN+ntYf+$JD z!VdVJG%N-p6F>teBGcTV@04?TdyLwRhRT!7)yWiGPQTTq?|_lB%g&$d9L*4Ag5}J; z=Jm)88FSfQ7Ij&BUm%*PX`)}6V5&sDsZ(Dl$#h!wR*8=NC>Uj9kAAwxg=0HAoiFKI z$XO0Xxl%4)>~tB#`Z@SYxl*3kRVYuix(jpl*=7r=YP&~Y6>mDc_v>E&@^5|f>*U3A zx!Kv-lP6A`K7D$Ac9tSsIm9q%AO;?VLYoX#&$WA{ePh#aIrKlP`6f+5iVLqAv|=Hf zt7dBVw9fwXxmMdphl0bw^?9fZCJ8S*F+SQU=SH zYB|>$`^%?a+Uyn!xh_fiXna}oefyRUf%bsQo3VCiKrWg@^;M8X2tuN45Mx;zu$GOf z%V;zvpXB?`BmggDITZlzhabB3fW3AUz?d-n48Y!djK#&&%WicQm56)b=x$h-`c@Eo06S{ zg_;_(OC8)oFFD)oXgWlQbxF%jjLrR&K*aJ*~V0HRzEi%Jjv=H zt(9!Hn!WJv=j)$uqN8<+x`)&O;Qcf0-sGFA6JJy5&3C&aUPH$aX%pnPUzaOSWb=hg zzG{ZKb^Z~EI-J#Ora8uv@Wrz?AD`P(%(e4bW`XG#h5lwS4K{a{X|Z)dc3L>B+?m0_ zgz?}hOMzh~iv=Wo(rNA+Cv@9N>Y%oB$)L@M^;AEpONcs>VHTl!YT{qwYqY@3@-<*Z zR-suxUtX^l^0|8-e)7M5?9)#^eR8~*=c>(4*XCzwIp)^F!hEjVL7J@=px>D<%6?I!+6;*`f zN_Ud$M^UH81{_*WpAkw*PY-x$`LBwFmd@+p~RoX6}i{AHQ(^{OrsO ztC1|X)&Q|7MnPNtW=D?_y?XZ-rb@GWE9Z7sE|9>fLsec4RFJm(*>0nE;dkfRqc

  • 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 z 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 delta 115 zcmdnYIEhiQGr-TCmrII^fq{Y7)59eQNV5R300$e8G~9OY^F&1r&piwbe0vzD?kVyF z3aWd$IEH8hC-12J{jFXgt$|5R!qS+TEV&j2Y O7(8A5T-G@yGywo^%^z(5 diff --git a/src/main/resources/assets/decorative/textures/block/road_white_long.png b/src/main/resources/assets/decorative/textures/block/road_white_long.png index 909a4a62123e454b5440fb37e5d9fef45665a36b..87ce6619c17d69835bd2de824e794463b63b81e8 100644 GIT binary patch delta 226 zcmcc5xQJg(z0>+2gC7#JBEZr{Fr*REZA_Uzfe ze?L$iR-kf4t#_iGM18fVi(`nyWzn;ad`yZ0E*BR`J`%g-vb}_t-GQgj`l2w0_y?}E zck?aQ{r9%hS-OFd&xF^xxHWW|`NaiImp2DZXgS^EG-LY)?=ulczxsb=bBvDTl}pfh zEFkb{lcP}4x7rCVz8s4UABjD+s!%_d@c-ZBb^i?CMszIl3I5K^vX4*j@yl2Hn?Nq~ MboFyt=akR{06d>l?EnA( delta 179 zcmV;k08Ia)0^b3U7zqdl0000V^Z#LyAs~MVa7bBm000iZ000iZ0XPLyBme*abV)=( zR5(wil2Hl(AqYfmBj{+|xr+r+E(88;>B799GH`O#q^feG_pWO#X{{xD`taC!CFg9n zGp+!Bk8lNQt)Yl3Fvj34Ai0!c(V4J`lm#TuIW0O9RzURt{wWK4Z?1wrgcc%P0Zbo& h+5;q0W5g=^h`fLwD;-cbl79dI002ovPDHLkV1mTOLy!Of diff --git a/src/main/resources/assets/decorative/textures/block/road_white_short.png b/src/main/resources/assets/decorative/textures/block/road_white_short.png index 8a0b5fe3e4f036b9b78c773535883bfa91ef8d82..4c5804618c17f489c5905378f75e07ac27319af2 100644 GIT binary patch delta 239 zcmX@gIGbsL1SbnK0|Ud`yN`kg(z0>+2gC7#JBEZr{Fr*REZA_Uzfe ze?L$iR-kf4trsZ4S>O>_%)r10RL8fU(SkKt1t?hJ>Eak7aapwYAnzdq0ha5p58N)F zSn>Os$ODNV%1fI=9C$D6Z`pi*=0&A52GbWr7hK48FVSpaR9~TYXho{Nh|=+=$Ad1; zm^XhO^O1;ejXW#v^k<%N*>0Y(!gT+>Nf&spC$C7*E_tcA=0ckKr)kHfJ~#DcJbcMt X;mh-J%SDM=kaIm<{an^LB{Ts5A--C- delta 153 zcmbQubd+&|1Sba@0|SHn=l_Wl6&30^3p^r=85sBufG}g$wN6f;WR$0iV~BZUfsfE zT)is!j6-PgDoNJgJ$+#tu31?hynEis<%nVPe{qJq_D6E{S{LuI18rgOboFC(S?83{ F1ORh6I=lb? diff --git a/src/main/resources/assets/decorative/textures/block/shower_head.png b/src/main/resources/assets/decorative/textures/block/shower_head.png new file mode 100644 index 0000000000000000000000000000000000000000..c9246b1986cd929e798ff0290e2d8df607ef97d1 GIT binary patch literal 612 zcmV-q0-ODbP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T2wNR+-|p3(=^p)vk89W{eF+}#bOcsyjP0I0H7#^G@(E- ze8k8B=*peX=Vc5q84Dec$KX7l&!H%j0!@0kT!O?;BVS=)Hk-9f0&)y^&>T=+5d##| z-mX@wu;}4%hzwXJ?A|M{6oWGWG?k{bAV$MF2SV`~&|XS1DaH2teXy;c1}rnFM&H51 zJ)my;BS+8|W)hUI~&n;WOAgF|u4PKWBgmb>nHzv8}WWNs1Y5 z*Qa=304Z2TQVhvgdhfe(Z zQZ`R-4q$Vwj?_D`0VOCP=%pNp=W_gdsT!kaz$T|aJePw%*PJkDV5}JM6JY0x_}mo8 z=+(aiUGfti*+@O_*wVf9KIwzc&{NqZMf#+BUn(aB8?$vn0|Z~$FAv`FO$**{ZPh~` y{R(nmk!KD2Sk8_Oq!!Cf2Z;IjSbnb>RMig=)+AEKxgaJ00000)%7?`|0T^vIy;@-}>8+h1&=Xmb42e(vre3{7k zV5(`toK0-&Q<>x@CwG3Ep|rqdQI~$-RkMT3F1_yywph*hSNW&&%KY2cJTqo3yIT|T zV|MXx_4_x^m!@0gz23E1X#c8JzZ%bUuzpzo?)tqE`T*AKWkC)>fu07TE1xrl$nj6*6b^hFXKJUeh&dpv8*A3Qx7FZeY zcZBJJ8hgjmvfBF{f4vS~FV(&Gur}9hF6*(N*-W!P*LlB}V3!n#-sZGqrS12>(;mD@ z{SalqcwyC17Khbh!VGJp*qA=}a@^n1a-^(6vG{&I=aKe>*{-#mD#i`77Csc4dTH7$ z*^M8AX3aM|A~|7Idgk8gZbr;}?fV3s7=sQg+uS*FEPS>0$%ZQ@{i;4`_fA$j7}C7? z3)>5cB*viZ(yToplZqMg+k&z_GgJzfzR1z;3DZ?$h}t@XA>-;K5eC2VKdV1YXL5i4!F#%8;C#kM=FY`?AI|(;H$ABs zqH3|jVxu=7Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizyJUazyWI3i3tDz1Q|(0K~#8N?V3$) z)G!!^GZjAvU`bR|JW1L| zvf?<7sVDcpJXqb%w8dXHf42SDVKtxbyHU@yi zfy8=5$QYu6gbA}U03_VS3SARio1Fm>Oz5KbTOh8!9&$MBn~pJ3!~jHls5zw#ID6MN zcmDad-}FHv&Aj%$cmyc?i|z!w#Mi<_@)qzY)VwF9rbBN7QsTV>HIP6?pCfo5luwy3 z$Rb!HA_#lZkFUEs!1#PW#{}I=DrNvKd#VMa&huWK-U{{nK8hG1!94V?4=#ZleRa_u zDI=d71eNPp#DLnu1<%xepY-v4(|r1n?~6pU4(RWKq7iUR5Z}CL6ZvR@`sn2tG1xvp zWkYR*crHh+>RSC%P$zeNavP!2^fo}RAsqIpAVbDvz}e~lugvqy<)YZ%0x9uuECUuR zX&hJj*3XaPMUh1i5Uq4 zn?_f4;~y0%x?WA-ZK$r=7ehzT+5j@~!6~8{Lig%Ar0U$2ng*O4+A;4OBN#=;IwF>N zT~FGg)}r?!ICXXm(5l{ted`1BJ-0or{nqFVxI?Cgqc1Zg@-fja$1#wN0EuT_=8VW) zqx`}OT)SPOsK~TpdZU%7fb^SbEi>NKufPK?|x`P{V zb4&M?Cw)4&{m}8@e0f?Q7;7HLa05W4LQ=zv3apWK58Zc!OdK=*351Inel(AAI z0#ZDfH6RirV(bhS0gqE)6$Mi;VK4)xLJifsg2Q>xsE#JTJOl2|bZGb*+OR%D0 zDy+W=N`yk#zt7amcyBX@>X3X&4aN4OD7gD6BoJgms?0^Y5#Yc5xshH6^y~ECUxgpP33mK4)D;mP z?w}Fe7ex`;@kprs4RObS?_c`=IGRJ@?}CqQK=w7rNO}@ph9FOVO?X~H5$$u{*OA)n z7!U;r38drRc|^G|q57aUxleBz@OF;H_J4#xozyXhgi!~f0wYqRDTBOC-KTq0CsO^V zF&Cc;Yp#xsnSLe%(