From 7cf04ac6bf1bd4fcd4c43defc7e1ce12f6292aeb Mon Sep 17 00:00:00 2001 From: Waterpicker Date: Tue, 4 Jul 2023 09:14:39 -0500 Subject: [PATCH] I got data gen working again while making signicaint progress on fixing stuff proper. --- build.gradle | 15 +- common/build.gradle | 4 + .../org/dimdev/dimdoors/DimensionalDoors.java | 14 +- .../dimdev/dimdoors/api/util/Location.java | 8 +- .../dimdoors/api/util/TeleportUtil.java | 2 +- .../block/door/DimensionalDoorBlock.java | 5 +- .../client/DimensionalDoorsClient.java | 2 - .../dimdoors/enchantment/ModEnchants.java | 1 + .../dimdoors/entity/ai/MonolithAggroGoal.java | 2 +- .../dimdev/dimdoors/entity/stat/ModStats.java | 24 +- .../mixin/ServerPlayerEntityMixin.java | 4 +- .../pockets/generator/PocketGenerator.java | 3 +- .../modifier/DimensionalDoorModifier.java | 3 +- .../dimdoors/rift/targets/VirtualTarget.java | 16 +- .../dimdev/dimdoors/sound/ModSoundEvents.java | 4 +- .../classic/ruins/broken_pillars.json | 20 ++ .../classic/ruins/buggy_top_entry.json | 20 ++ .../ruins/collapsed_single_tunnel.json | 19 ++ .../classic/ruins/crumbled_hall.json | 29 ++ .../classic/ruins/door_totem_ruins.json | 19 ++ .../generators/classic/ruins/exit_cube.json | 19 ++ .../ruins/exit_ruins_with_hidden_door.json | 24 ++ .../classic/ruins/heart_of_disorder.json | 29 ++ .../classic/ruins/hot_suspense.json | 19 ++ .../generators/classic/ruins/jump_pass.json | 19 ++ .../generators/classic/ruins/rope_bridge.json | 19 ++ .../generators/classic/ruins/ruins_oh_no.json | 19 ++ .../classic/ruins/simple_drop_hall.json | 19 ++ .../classic/ruins/simple_small_t.json | 24 ++ .../classic/ruins/simple_stairs_down.json | 19 ++ .../classic/ruins/simple_stairs_up.json | 19 ++ .../classic/ruins/small_desert.json | 14 + .../classic/ruins/small_exit_prison.json | 19 ++ .../generators/classic/ruins/small_maze.json | 19 ++ .../generators/classic/ruins/small_pond.json | 14 + .../classic/ruins/spiral_hallway.json | 19 ++ .../classic/ruins/transfer_tunnel.json | 19 ++ .../classic/ruins/u_trap_right.json | 19 ++ .../generators/classic/ruins/u_turn_left.json | 19 ++ .../classic/ruins/u_turn_right.json | 19 ++ .../classic/ruins/broken_pillars.schem | Bin 0 -> 1418 bytes .../classic/ruins/buggy_top_entry.schem | Bin 0 -> 1524 bytes .../ruins/collapsed_single_tunnel.schem | Bin 0 -> 1030 bytes .../classic/ruins/crumbled_hall.schem | Bin 0 -> 1783 bytes .../classic/ruins/door_totem_ruins.schem | Bin 0 -> 1401 bytes .../schematic/classic/ruins/exit_cube.schem | Bin 0 -> 1072 bytes .../ruins/exit_ruins_with_hidden_door.schem | Bin 0 -> 1217 bytes .../classic/ruins/heart_of_disorder.schem | Bin 0 -> 5638 bytes .../classic/ruins/hot_suspense.schem | Bin 0 -> 1508 bytes .../schematic/classic/ruins/jump_pass.schem | Bin 0 -> 817 bytes .../schematic/classic/ruins/rope_bridge.schem | Bin 0 -> 2115 bytes .../schematic/classic/ruins/ruins_oh_no.schem | Bin 0 -> 1351 bytes .../classic/ruins/simple_drop_hall.schem | Bin 0 -> 1152 bytes .../classic/ruins/simple_small_t.schem | Bin 0 -> 520 bytes .../classic/ruins/simple_stairs_down.schem | Bin 0 -> 1066 bytes .../classic/ruins/simple_stairs_up.schem | Bin 0 -> 993 bytes .../classic/ruins/small_desert.schem | Bin 0 -> 1113 bytes .../classic/ruins/small_exit_prison.schem | Bin 0 -> 1100 bytes .../schematic/classic/ruins/small_maze.schem | Bin 0 -> 820 bytes .../schematic/classic/ruins/small_pond.schem | Bin 0 -> 1770 bytes .../classic/ruins/spiral_hallway.schem | Bin 0 -> 786 bytes .../classic/ruins/transfer_tunnel.schem | Bin 0 -> 1136 bytes .../classic/ruins/u_trap_right.schem | Bin 0 -> 884 bytes .../schematic/classic/ruins/u_turn_left.schem | Bin 0 -> 508 bytes .../classic/ruins/u_turn_right.schem | Bin 0 -> 500 bytes .../schematic/classic/ruins/unused/abc.schem | Bin 0 -> 3398 bytes .../ruins/unused/anchored_descent.schem | Bin 0 -> 1073 bytes .../classic/ruins/unused/arrow_hall.schem | Bin 0 -> 2470 bytes .../classic/ruins/unused/azers_dungeon.schem | Bin 0 -> 1892 bytes .../ruins/unused/diamond_tower_temple.schem | Bin 0 -> 1564 bytes .../ruins/unused/fake_tnt_trap_a.schem | Bin 0 -> 1203 bytes .../ruins/unused/fake_tnt_trap_b.schem | Bin 0 -> 2160 bytes .../pockets/virtual/dungeon/classic.json | 104 +++++++ .../resourcepacks/classic/pack.mcmeta | 6 + .../resources/resourcepacks/classic/pack.png | Bin 0 -> 4083 bytes .../pockets/generators/dungeon/beach.json | 23 ++ .../generators/dungeon/break_block_boom.json | 23 ++ .../generators/dungeon/cage_monolithless.json | 27 ++ .../generators/dungeon/chain_crossing.json | 19 ++ .../pockets/generators/dungeon/chain_t.json | 24 ++ .../dungeon/decaying_chain_tunnel.json | 19 ++ .../dungeon/freeroam_empty_street.json | 19 ++ .../dungeon/freeroam_graveyard.json | 15 + .../generators/dungeon/honey_parkour.json | 19 ++ .../pockets/generators/dungeon/lantredom.json | 31 ++ .../generators/dungeon/lantredom_end.json | 30 ++ .../generators/dungeon/lantredom_red.json | 24 ++ .../pockets/generators/dungeon/lava_trap.json | 15 + .../generators/dungeon/line_walker.json | 19 ++ .../generators/dungeon/long_corridor.json | 24 ++ .../generators/dungeon/mob_prison.json | 24 ++ .../generators/dungeon/monolith_cage.json | 14 + .../pockets/generators/dungeon/party.json | 19 ++ .../dungeon/random_arrow_chance.json | 23 ++ .../generators/dungeon/returning_eye.json | 19 ++ .../generators/dungeon/rising_hand.json | 14 + .../dungeon/river_road_twin_bridges.json | 19 ++ .../generators/dungeon/ruins_caged_warps.json | 19 ++ .../dungeon/ruins_camp_station.json | 24 ++ .../dungeon/ruins_corrupted_endportal.json | 23 ++ .../dungeon/ruins_deepslate_hub.json | 65 ++++ .../dungeon/ruins_diamond_tnt_trap_a.json | 14 + .../dungeon/ruins_diamond_tnt_trap_b.json | 14 + .../dungeon/ruins_elevator_tnt_trap.json | 19 ++ .../dungeon/ruins_fire_charge_timing.json | 23 ++ .../generators/dungeon/ruins_items4life.json | 23 ++ .../generators/dungeon/ruins_lava_trap.json | 15 + .../dungeon/ruins_long_stairwell_down.json | 19 ++ .../ruins_mansion_combination_puzzle.json | 24 ++ .../dungeon/ruins_multiple_warppoints.json | 19 ++ .../dungeon/ruins_pressure_plate_riddle.json | 23 ++ .../dungeon/ruins_push_into_void_trap.json | 14 + .../generators/dungeon/ruins_simple_door.json | 23 ++ .../dungeon/ruins_simple_door_trap.json | 23 ++ .../dungeon/ruins_simple_door_troll.json | 23 ++ .../ruins_small_pressure_plate_maze.json | 19 ++ .../dungeon/ruins_sprike_traps.json | 19 ++ .../dungeon/ruins_stairs_up_down_warp.json | 19 ++ .../dungeon/ruins_stairwell_up.json | 20 ++ .../dungeon/ruins_target_practise.json | 20 ++ .../generators/dungeon/schopophobia.json | 23 ++ .../generators/dungeon/silverfish_bridge.json | 19 ++ .../small_deepslatebricks_hallway.json | 23 ++ .../dungeon/small_endbrick_hallway.json | 23 ++ .../generators/dungeon/small_ice_hallway.json | 23 ++ .../dungeon/small_netherbricks_hallway.json | 23 ++ .../dungeon/small_prismarine_hallway.json | 23 ++ .../dungeon/small_purpurbricks_hallway.json | 23 ++ .../dungeon/small_red_sandstone_hallway.json | 23 ++ .../generators/dungeon/small_river.json | 23 ++ .../dungeon/small_sandstone_hallway.json | 23 ++ .../pockets/generators/dungeon/smile_6.json | 24 ++ .../dungeon/stone_brick_bridge.json | 19 ++ .../generators/dungeon/string_field.json | 23 ++ .../generators/dungeon/trap_rib_tunnel.json | 20 ++ .../generators/dungeon/upwards_pillars.json | 19 ++ .../dungeon/upwards_t_treasure.json | 25 ++ .../generators/dungeon/void_path_of_fear.json | 20 ++ .../generators/dungeon/void_railroad_a.json | 23 ++ .../generators/dungeon/void_railroad_b.json | 23 ++ .../pockets/generators/dungeon/void_why.json | 23 ++ .../generators/dungeon/void_whyless.json | 23 ++ .../generators/dungeon/waiting_room.json | 14 + .../generators/dungeon/white_fabric_maze.json | 25 ++ .../generators/example/purpur_hallway.json | 43 +++ .../pockets/generators/private/default.json | 45 +++ .../pockets/generators/public/default.json | 42 +++ .../data/dimdoors/pockets/groups/dungeon.json | 6 + .../data/dimdoors/pockets/groups/example.json | 6 + .../data/dimdoors/pockets/groups/private.json | 4 + .../data/dimdoors/pockets/groups/public.json | 4 + .../json/rift_data/default_dungeon.json | 13 + .../pockets/json/rift_data/escape.json | 6 + .../json/rift_data/pocket_entrance.json | 9 + .../json/rift_data/public_entrance.json | 5 + .../schematic/blank/blank_pocket_0.schem | Bin 0 -> 226 bytes .../schematic/blank/blank_pocket_1.schem | Bin 0 -> 448 bytes .../schematic/blank/blank_pocket_2.schem | Bin 0 -> 855 bytes .../schematic/blank/blank_pocket_3.schem | Bin 0 -> 1371 bytes .../schematic/blank/blank_pocket_4.schem | Bin 0 -> 2531 bytes .../schematic/blank/blank_pocket_5.schem | Bin 0 -> 3959 bytes .../schematic/blank/blank_pocket_6.schem | Bin 0 -> 5829 bytes .../schematic/blank/blank_pocket_7.schem | Bin 0 -> 8129 bytes .../pockets/schematic/dungeon/beach.schem | Bin 0 -> 2919 bytes .../schematic/dungeon/break_block_boom.schem | Bin 0 -> 1075 bytes .../schematic/dungeon/cage_monolithless.schem | Bin 0 -> 530 bytes .../schematic/dungeon/chain_crossing.schem | Bin 0 -> 825 bytes .../pockets/schematic/dungeon/chain_t.schem | Bin 0 -> 894 bytes .../dungeon/decaying_chain_tunnel.schem | Bin 0 -> 584 bytes .../dungeon/freeroam_empty_street.schem | Bin 0 -> 2808 bytes .../dungeon/freeroam_graveyard.schem | Bin 0 -> 2433 bytes .../schematic/dungeon/honey_parkour.schem | Bin 0 -> 1144 bytes .../dungeon/jungle_riddle_fixed.schem | Bin 0 -> 4898 bytes .../pockets/schematic/dungeon/lantredom.schem | Bin 0 -> 1629 bytes .../schematic/dungeon/lantredom_end.schem | Bin 0 -> 1509 bytes .../schematic/dungeon/lantredom_red.schem | Bin 0 -> 1461 bytes .../pockets/schematic/dungeon/lava_trap.schem | Bin 0 -> 2975 bytes .../schematic/dungeon/line_walker.schem | Bin 0 -> 534 bytes .../schematic/dungeon/long_corridor.schem | Bin 0 -> 1861 bytes .../schematic/dungeon/mob_prison.schem | Bin 0 -> 1980 bytes .../schematic/dungeon/monolith_cage.schem | Bin 0 -> 3165 bytes .../pockets/schematic/dungeon/party.schem | Bin 0 -> 1576 bytes .../dungeon/random_arrow_chance.schem | Bin 0 -> 1348 bytes .../schematic/dungeon/returning_eye.schem | Bin 0 -> 859 bytes .../schematic/dungeon/rising_hand.schem | Bin 0 -> 4869 bytes .../dungeon/river_road_twin_bridges.schem | Bin 0 -> 3115 bytes .../schematic/dungeon/ruins_caged_warps.schem | Bin 0 -> 2859 bytes .../dungeon/ruins_camp_station.schem | Bin 0 -> 988 bytes .../dungeon/ruins_corrupted_endportal.schem | Bin 0 -> 1100 bytes .../dungeon/ruins_deepslate_hub.schem | Bin 0 -> 826 bytes .../dungeon/ruins_diamond_tnt_trap_a.schem | Bin 0 -> 1203 bytes .../dungeon/ruins_diamond_tnt_trap_b.schem | Bin 0 -> 1193 bytes .../dungeon/ruins_elevator_tnt_trap.schem | Bin 0 -> 2579 bytes .../dungeon/ruins_fire_charge_timing.schem | Bin 0 -> 2061 bytes .../schematic/dungeon/ruins_items4life.schem | Bin 0 -> 3475 bytes .../schematic/dungeon/ruins_lava_trap.schem | Bin 0 -> 2963 bytes .../dungeon/ruins_long_stairwell_down.schem | Bin 0 -> 1524 bytes .../ruins_mansion_combination_puzzle.schem | Bin 0 -> 7799 bytes .../dungeon/ruins_multiple_warppoints.schem | Bin 0 -> 1342 bytes .../dungeon/ruins_pressure_plate_riddle.schem | Bin 0 -> 2183 bytes .../dungeon/ruins_push_into_void_trap.schem | Bin 0 -> 1021 bytes .../schematic/dungeon/ruins_simple_door.schem | Bin 0 -> 583 bytes .../dungeon/ruins_simple_door_trap.schem | Bin 0 -> 834 bytes .../dungeon/ruins_simple_door_troll.schem | Bin 0 -> 735 bytes .../ruins_small_pressure_plate_maze.schem | Bin 0 -> 1895 bytes .../dungeon/ruins_sprike_traps.schem | Bin 0 -> 2734 bytes .../dungeon/ruins_stairs_up_down_warp.schem | Bin 0 -> 875 bytes .../dungeon/ruins_stairwell_up.schem | Bin 0 -> 896 bytes .../dungeon/ruins_target_practise.schem | Bin 0 -> 2167 bytes .../schematic/dungeon/schopophobia.schem | Bin 0 -> 1440 bytes .../schematic/dungeon/silverfish_bridge.schem | Bin 0 -> 1033 bytes .../small_deepslatebricks_hallway.schem | Bin 0 -> 539 bytes .../dungeon/small_endbrick_hallway.schem | Bin 0 -> 541 bytes .../schematic/dungeon/small_ice_hallway.schem | Bin 0 -> 538 bytes .../dungeon/small_netherbricks_hallway.schem | Bin 0 -> 546 bytes .../dungeon/small_prismarine_hallway.schem | Bin 0 -> 533 bytes .../dungeon/small_purpurbricks_hallway.schem | Bin 0 -> 536 bytes .../dungeon/small_red_sandstone_hallway.schem | Bin 0 -> 537 bytes .../schematic/dungeon/small_river.schem | Bin 0 -> 787 bytes .../dungeon/small_sandstone_hallway.schem | Bin 0 -> 535 bytes .../pockets/schematic/dungeon/smile_6.schem | Bin 0 -> 671 bytes .../dungeon/stone_brick_bridge.schem | Bin 0 -> 1148 bytes .../schematic/dungeon/string_field.schem | Bin 0 -> 1858 bytes .../schematic/dungeon/trap_rib_tunnel.schem | Bin 0 -> 1470 bytes .../schematic/dungeon/upwards_pillars.schem | Bin 0 -> 986 bytes .../dungeon/upwards_t_treasure.schem | Bin 0 -> 1197 bytes .../schematic/dungeon/void_path_of_fear.schem | Bin 0 -> 1583 bytes .../schematic/dungeon/void_railroad_a.schem | Bin 0 -> 1844 bytes .../schematic/dungeon/void_railroad_b.schem | Bin 0 -> 1720 bytes .../pockets/schematic/dungeon/void_why.schem | Bin 0 -> 697 bytes .../schematic/dungeon/void_whyless.schem | Bin 0 -> 507 bytes .../schematic/dungeon/waiting_room.schem | Bin 0 -> 1047 bytes .../schematic/dungeon/white_fabric_maze.schem | Bin 0 -> 967 bytes .../schematic/example/purpur_hallway.schem | Bin 0 -> 536 bytes .../pockets/virtual/dungeon/default.json | 278 ++++++++++++++++++ .../pockets/virtual/private/default.json | 4 + .../pockets/virtual/public/default.json | 4 + .../resourcepacks/default/pack.mcmeta | 6 + .../resources/resourcepacks/default/pack.png | Bin 0 -> 3505 bytes fabric/build.gradle | 30 ++ .../datagen/AdvancementProvider.java | 4 +- .../dimdoors}/datagen/AdvancementTab.java | 2 +- .../dimdoors/datagen/BlockStateProvider.java | 175 +++++++++++ .../dimdoors}/datagen/BlockTagProvider.java | 60 ++-- .../datagen/ColoredFabricRecipeProvider.java | 2 +- .../dimdoors/datagen/DatagenInitializer.java | 27 ++ .../datagen/DimdoorsRecipeProvider.java | 7 +- .../dimdoors}/datagen/LimboDecayProvider.java | 4 +- .../dimdoors}/datagen/LootTableProvider.java | 0 .../datagen/TesselatingRecipeJsonBuilder.java | 5 +- .../datagen/TesselatingRecipeProvider.java | 5 +- .../dimdoors/DimensionalDoorsComponents.java | 16 +- .../DimensionalDoorModelVariantProvider.java | 51 ++++ .../client/DimensionalDoorsClientFabric.java | 2 + .../dimdoors/fabric/DimensionalDoorsImpl.java | 9 + .../fabric/DimensionalRegistryImpl.java | 3 +- fabric/src/main/resources/fabric.mod.json | 1 + forge/build.gradle | 21 +- .../src/main/datagen/BlockStateProvider.java | 156 ---------- .../src/main/datagen/DatagenInitializer.java | 24 -- .../dimdoors/forge/DimensionalDoorsImpl.java | 30 ++ gradle.properties | 2 +- 262 files changed, 3025 insertions(+), 297 deletions(-) create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/broken_pillars.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/buggy_top_entry.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/collapsed_single_tunnel.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/crumbled_hall.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/door_totem_ruins.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_cube.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_ruins_with_hidden_door.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/heart_of_disorder.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/hot_suspense.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/jump_pass.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/rope_bridge.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/ruins_oh_no.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_drop_hall.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_small_t.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_down.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_up.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_desert.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_exit_prison.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_maze.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_pond.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/spiral_hallway.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/transfer_tunnel.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_trap_right.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_left.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_right.json create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/broken_pillars.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/buggy_top_entry.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/collapsed_single_tunnel.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/crumbled_hall.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/door_totem_ruins.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/exit_cube.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/exit_ruins_with_hidden_door.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/heart_of_disorder.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/hot_suspense.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/jump_pass.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/rope_bridge.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/ruins_oh_no.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/simple_drop_hall.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/simple_small_t.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/simple_stairs_down.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/simple_stairs_up.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_desert.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_exit_prison.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_maze.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_pond.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/spiral_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/transfer_tunnel.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_trap_right.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_turn_left.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_turn_right.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/abc.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/anchored_descent.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/arrow_hall.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/azers_dungeon.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/diamond_tower_temple.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/fake_tnt_trap_a.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/fake_tnt_trap_b.schem create mode 100644 common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/virtual/dungeon/classic.json create mode 100644 common/src/main/resources/resourcepacks/classic/pack.mcmeta create mode 100644 common/src/main/resources/resourcepacks/classic/pack.png create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/beach.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/break_block_boom.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/cage_monolithless.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/chain_crossing.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/chain_t.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/decaying_chain_tunnel.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/freeroam_empty_street.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/freeroam_graveyard.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/honey_parkour.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/lantredom.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/lantredom_end.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/lantredom_red.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/lava_trap.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/line_walker.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/long_corridor.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/mob_prison.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/monolith_cage.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/party.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/random_arrow_chance.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/returning_eye.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/rising_hand.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/river_road_twin_bridges.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_caged_warps.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_camp_station.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_corrupted_endportal.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_deepslate_hub.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_diamond_tnt_trap_a.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_diamond_tnt_trap_b.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_elevator_tnt_trap.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_fire_charge_timing.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_items4life.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_lava_trap.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_long_stairwell_down.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_mansion_combination_puzzle.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_multiple_warppoints.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_pressure_plate_riddle.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_push_into_void_trap.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_simple_door.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_simple_door_trap.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_simple_door_troll.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_small_pressure_plate_maze.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_sprike_traps.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_stairs_up_down_warp.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_stairwell_up.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/ruins_target_practise.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/schopophobia.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/silverfish_bridge.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_deepslatebricks_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_endbrick_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_ice_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_netherbricks_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_prismarine_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_purpurbricks_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_red_sandstone_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_river.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/small_sandstone_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/smile_6.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/stone_brick_bridge.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/string_field.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/trap_rib_tunnel.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/upwards_pillars.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/upwards_t_treasure.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/void_path_of_fear.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/void_railroad_a.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/void_railroad_b.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/void_why.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/void_whyless.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/waiting_room.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/dungeon/white_fabric_maze.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/example/purpur_hallway.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/private/default.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/generators/public/default.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/groups/dungeon.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/groups/example.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/groups/private.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/groups/public.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/json/rift_data/default_dungeon.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/json/rift_data/escape.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/json/rift_data/pocket_entrance.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/json/rift_data/public_entrance.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_0.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_1.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_2.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_3.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_4.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_5.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_6.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_7.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/beach.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/break_block_boom.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/cage_monolithless.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/chain_crossing.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/chain_t.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/decaying_chain_tunnel.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/freeroam_empty_street.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/freeroam_graveyard.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/honey_parkour.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/jungle_riddle_fixed.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom_end.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom_red.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lava_trap.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/line_walker.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/long_corridor.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/mob_prison.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/monolith_cage.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/party.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/random_arrow_chance.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/returning_eye.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/rising_hand.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/river_road_twin_bridges.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_caged_warps.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_camp_station.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_corrupted_endportal.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_deepslate_hub.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_diamond_tnt_trap_a.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_diamond_tnt_trap_b.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_elevator_tnt_trap.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_fire_charge_timing.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_items4life.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_lava_trap.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_long_stairwell_down.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_mansion_combination_puzzle.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_multiple_warppoints.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_pressure_plate_riddle.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_push_into_void_trap.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door_trap.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door_troll.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_small_pressure_plate_maze.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_sprike_traps.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_stairs_up_down_warp.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_stairwell_up.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_target_practise.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/schopophobia.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/silverfish_bridge.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_deepslatebricks_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_endbrick_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_ice_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_netherbricks_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_prismarine_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_purpurbricks_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_red_sandstone_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_river.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_sandstone_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/smile_6.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/stone_brick_bridge.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/string_field.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/trap_rib_tunnel.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/upwards_pillars.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/upwards_t_treasure.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_path_of_fear.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_railroad_a.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_railroad_b.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_why.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_whyless.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/waiting_room.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/white_fabric_maze.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/example/purpur_hallway.schem create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/dungeon/default.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/private/default.json create mode 100644 common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/public/default.json create mode 100644 common/src/main/resources/resourcepacks/default/pack.mcmeta create mode 100644 common/src/main/resources/resourcepacks/default/pack.png rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/AdvancementProvider.java (83%) rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/AdvancementTab.java (99%) create mode 100644 fabric/src/main/datagen/org/dimdev/dimdoors/datagen/BlockStateProvider.java rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/BlockTagProvider.java (69%) rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/ColoredFabricRecipeProvider.java (96%) create mode 100644 fabric/src/main/datagen/org/dimdev/dimdoors/datagen/DatagenInitializer.java rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/DimdoorsRecipeProvider.java (96%) rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/LimboDecayProvider.java (99%) rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/LootTableProvider.java (100%) rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/TesselatingRecipeJsonBuilder.java (98%) rename {forge/src/main => fabric/src/main/datagen/org/dimdev/dimdoors}/datagen/TesselatingRecipeProvider.java (96%) create mode 100644 fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorModelVariantProvider.java delete mode 100644 forge/src/main/datagen/BlockStateProvider.java delete mode 100644 forge/src/main/datagen/DatagenInitializer.java diff --git a/build.gradle b/build.gradle index 3f1106fd..dce8879c 100644 --- a/build.gradle +++ b/build.gradle @@ -14,12 +14,19 @@ subprojects { silentMojangMappingsLicense() } + repositories { + maven { + name = 'ParchmentMC' + url = 'https://maven.parchmentmc.org' + } + } + dependencies { minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" - // The following line declares the mojmap mappings, you may use other mappings as well - mappings loom.officialMojangMappings() - // The following line declares the yarn mappings you may select this one as well. - // mappings "net.fabricmc:yarn:1.19.4+build.2:v2" + mappings loom.layered() { + officialMojangMappings() + parchment("org.parchmentmc.data:parchment-1.19.3:2023.03.12@zip") + } } } diff --git a/common/build.gradle b/common/build.gradle index cd5afa80..36a99401 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -49,6 +49,10 @@ sourceSets { } } +processResources { + exclude("*") +} + publishing { publications { mavenCommon(MavenPublication) { diff --git a/common/src/main/java/org/dimdev/dimdoors/DimensionalDoors.java b/common/src/main/java/org/dimdev/dimdoors/DimensionalDoors.java index 1973bd8d..10f8c625 100644 --- a/common/src/main/java/org/dimdev/dimdoors/DimensionalDoors.java +++ b/common/src/main/java/org/dimdev/dimdoors/DimensionalDoors.java @@ -130,16 +130,22 @@ public class DimensionalDoors { ServerPacketHandler.init(); + initBuiltinPacks(); + ReloadListenerRegistry.register(PackType.SERVER_DATA, PocketLoader.getInstance()); ReloadListenerRegistry.register(PackType.SERVER_DATA, LimboDecay.DecayLoader.getInstance()); ReloadListenerRegistry.register(PackType.SERVER_DATA, DoorRiftDataLoader.getInstance()); -// ResourceManagerHelper.registerBuiltinResourcePack(id("default"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().defaultPocketsResourcePackActivationType.asResourcePackActivationType()); TODO:Figure out how to do this multiplat -// ResourceManagerHelper.registerBuiltinResourcePack(id("classic"), dimDoorsMod, CONFIG_MANAGER.get().getPocketsConfig().classicPocketsResourcePackActivationType.asResourcePackActivationType()); + registerListeners(); SchemFixer.run(); } + @ExpectPlatform + private static void initBuiltinPacks() { + throw new RuntimeException(); + } + public static void registerRegistries() { Targets.registerDefaultTargets(); VirtualTarget.VirtualTargetType.register(); @@ -178,4 +184,8 @@ public class DimensionalDoors { public static DimensionalDoorItemRegistrar getDimensionalDoorItemRegistrar() { return dimensionalDoorItemRegistrar; } + + public static DimensionalDoorBlockRegistrar getDimensionalDoorBlockRegistrar() { + return dimensionalDoorBlockRegistrar; + } } diff --git a/common/src/main/java/org/dimdev/dimdoors/api/util/Location.java b/common/src/main/java/org/dimdev/dimdoors/api/util/Location.java index f8f4930b..42f77d27 100644 --- a/common/src/main/java/org/dimdev/dimdoors/api/util/Location.java +++ b/common/src/main/java/org/dimdev/dimdoors/api/util/Location.java @@ -15,13 +15,7 @@ import net.minecraft.world.level.material.FluidState; import org.dimdev.dimdoors.DimensionalDoors; public class Location { - public static final Codec CODEC = RecordCodecBuilder.create(instance -> { - return instance.group(Level.RESOURCE_KEY_CODEC.fieldOf("world").forGetter(location -> { - return location.world; - }), BlockPos.CODEC.fieldOf("pos").forGetter(location -> { - return location.pos; - })).apply(instance, Location::new); - }); + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group(Level.RESOURCE_KEY_CODEC.fieldOf("world").forGetter(location -> location.world), BlockPos.CODEC.fieldOf("pos").forGetter(location -> location.pos)).apply(instance, Location::new)); public final ResourceKey world; public final BlockPos pos; diff --git a/common/src/main/java/org/dimdev/dimdoors/api/util/TeleportUtil.java b/common/src/main/java/org/dimdev/dimdoors/api/util/TeleportUtil.java index b2074e04..2dc3c0aa 100644 --- a/common/src/main/java/org/dimdev/dimdoors/api/util/TeleportUtil.java +++ b/common/src/main/java/org/dimdev/dimdoors/api/util/TeleportUtil.java @@ -79,7 +79,7 @@ public final class TeleportUtil { ((ExtendedServerPlayNetworkHandler) (serverPlayer.connection)).getDimDoorsPacketHandler().syncPocketAddonsIfNeeded(world, new BlockPos((int) pos.x, (int) pos.y, (int) pos.z)); if (world.dimension() == ModDimensions.DUNGEON) { - serverPlayer.awardStat(ModStats.TIMES_BEEN_TO_DUNGEON.get()); + serverPlayer.awardStat(ModStats.TIMES_BEEN_TO_DUNGEON); } } else { if (entity.level.dimension().equals(world.dimension())) { diff --git a/common/src/main/java/org/dimdev/dimdoors/block/door/DimensionalDoorBlock.java b/common/src/main/java/org/dimdev/dimdoors/block/door/DimensionalDoorBlock.java index b54b0d7c..0580349d 100644 --- a/common/src/main/java/org/dimdev/dimdoors/block/door/DimensionalDoorBlock.java +++ b/common/src/main/java/org/dimdev/dimdoors/block/door/DimensionalDoorBlock.java @@ -56,15 +56,14 @@ public class DimensionalDoorBlock extends WaterLoggableDoorBlock implements Rift @Override public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { - if (world.isClientSide || entity instanceof ServerPlayer) { + if (world.isClientSide/* || entity instanceof ServerPlayer*/) { return; } onCollision(state, world, pos, entity, entity.position().subtract(((LastPositionProvider) entity).getLastPos())); - super.entityInside(state, world, pos, entity); } - @Override +// @Override public InteractionResult onAfterMovePlayerCollision(BlockState state, ServerLevel world, BlockPos pos, ServerPlayer player, Vec3 positionChange) { return onCollision(state, world, pos, player, positionChange); } diff --git a/common/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClient.java b/common/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClient.java index c471608e..e259b4af 100644 --- a/common/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClient.java +++ b/common/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClient.java @@ -19,8 +19,6 @@ import java.io.IOException; @Environment(EnvType.CLIENT) public class DimensionalDoorsClient { public static void init() { -// ModelLoadingRegistry.INSTANCE.registerVariantProvider((manager) -> new DimensionalDoorModelVariantProvider()); - MenuRegistry.registerScreenFactory(ModScreenHandlerTypes.TESSELATING_LOOM.get(), TesselatingLoomScreen::new); ModEntityTypes.initClient(); // ModFluids.initClient(); diff --git a/common/src/main/java/org/dimdev/dimdoors/enchantment/ModEnchants.java b/common/src/main/java/org/dimdev/dimdoors/enchantment/ModEnchants.java index b1712d6c..cec0cf5e 100644 --- a/common/src/main/java/org/dimdev/dimdoors/enchantment/ModEnchants.java +++ b/common/src/main/java/org/dimdev/dimdoors/enchantment/ModEnchants.java @@ -13,5 +13,6 @@ public class ModEnchants { public static RegistrySupplier STRING_THEORY_ENCHANTMENT = ENCHANTMENTS.register("string_theory", () -> new StringTheoryEnchantment(Enchantment.Rarity.UNCOMMON, EnchantmentCategory.WEARABLE, new EquipmentSlot[] {EquipmentSlot.FEET, EquipmentSlot.LEGS, EquipmentSlot.CHEST, EquipmentSlot.HEAD})); public static void init() { + ENCHANTMENTS.register(); } } diff --git a/common/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java b/common/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java index 3395dee6..d1c5a275 100644 --- a/common/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java +++ b/common/src/main/java/org/dimdev/dimdoors/entity/ai/MonolithAggroGoal.java @@ -97,7 +97,7 @@ public class MonolithAggroGoal extends Goal { this.mob.setAggro(0); this.target.teleportTo(this.target.getX(), this.target.getY() + 256, this.target.getZ()); this.target.level.playSound(null, new BlockPos(new Vec3i((int) this.target.position().x, (int) this.target.position().y, (int) this.target.position().z)), ModSoundEvents.CRACK.get(), SoundSource.HOSTILE, 13, 1); - this.target.awardStat(ModStats.TIMES_TELEPORTED_BY_MONOLITH.get()); + this.target.awardStat(ModStats.TIMES_TELEPORTED_BY_MONOLITH); ServerPacketHandler.get((ServerPlayer) this.target).sendPacket(new MonolithTeleportParticlesPacket()); } } diff --git a/common/src/main/java/org/dimdev/dimdoors/entity/stat/ModStats.java b/common/src/main/java/org/dimdev/dimdoors/entity/stat/ModStats.java index ee9be34a..fe533aef 100644 --- a/common/src/main/java/org/dimdev/dimdoors/entity/stat/ModStats.java +++ b/common/src/main/java/org/dimdev/dimdoors/entity/stat/ModStats.java @@ -1,30 +1,32 @@ package org.dimdev.dimdoors.entity.stat; import dev.architectury.registry.registries.DeferredRegister; -import dev.architectury.registry.registries.RegistrySupplier; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.stats.StatFormatter; -import net.minecraft.stats.Stats; import org.dimdev.dimdoors.DimensionalDoors; +import static net.minecraft.stats.Stats.CUSTOM; + public class ModStats { public static final DeferredRegister STATS = DeferredRegister.create(DimensionalDoors.MOD_ID, Registries.CUSTOM_STAT); - public static final RegistrySupplier DEATHS_IN_POCKETS = register("deaths_in_pocket", StatFormatter.DEFAULT); - public static final RegistrySupplier TIMES_SENT_TO_LIMBO = register("times_sent_to_limbo", StatFormatter.DEFAULT); - public static final RegistrySupplier TIMES_TELEPORTED_BY_MONOLITH = register("times_teleported_by_monolith", StatFormatter.DEFAULT); - public static final RegistrySupplier TIMES_BEEN_TO_DUNGEON = register("times_been_to_dungeon", StatFormatter.DEFAULT); + public static final ResourceLocation DEATHS_IN_POCKETS = register("deaths_in_pocket", StatFormatter.DEFAULT); + public static final ResourceLocation TIMES_SENT_TO_LIMBO = register("times_sent_to_limbo", StatFormatter.DEFAULT); + public static final ResourceLocation TIMES_TELEPORTED_BY_MONOLITH = register("times_teleported_by_monolith", StatFormatter.DEFAULT); + public static final ResourceLocation TIMES_BEEN_TO_DUNGEON = register("times_been_to_dungeon", StatFormatter.DEFAULT); - private static RegistrySupplier register(String string, StatFormatter statFormatter) { + private static ResourceLocation register(String string, StatFormatter statFormatter) { ResourceLocation resourceLocation = DimensionalDoors.id(string); - return STATS.register(string, () -> { - Stats.CUSTOM.get(resourceLocation, statFormatter); - return resourceLocation; - }); + Registry.register(BuiltInRegistries.CUSTOM_STAT, string, resourceLocation); + CUSTOM.get(resourceLocation, statFormatter); + return resourceLocation; } public static void init() { + STATS.register(); // just loads the class } } diff --git a/common/src/main/java/org/dimdev/dimdoors/mixin/ServerPlayerEntityMixin.java b/common/src/main/java/org/dimdev/dimdoors/mixin/ServerPlayerEntityMixin.java index 438af017..67e61610 100644 --- a/common/src/main/java/org/dimdev/dimdoors/mixin/ServerPlayerEntityMixin.java +++ b/common/src/main/java/org/dimdev/dimdoors/mixin/ServerPlayerEntityMixin.java @@ -135,9 +135,9 @@ public abstract class ServerPlayerEntityMixin extends PlayerEntityMixin { this.doOnDeathStuff(source, ci); if (ci.isCancelled()) { if (ModDimensions.isPocketDimension(this.level)) { - this.awardStat(ModStats.DEATHS_IN_POCKETS.get()); + this.awardStat(ModStats.DEATHS_IN_POCKETS); } - this.awardStat(ModStats.TIMES_SENT_TO_LIMBO.get()); + this.awardStat(ModStats.TIMES_SENT_TO_LIMBO); TeleportUtil.teleportRandom(this, ModDimensions.LIMBO_DIMENSION, 512); //noinspection ConstantConditions LimboEntranceSource.ofDamageSource(source).broadcast((Player) (Object) this, this.getServer()); diff --git a/common/src/main/java/org/dimdev/dimdoors/pockets/generator/PocketGenerator.java b/common/src/main/java/org/dimdev/dimdoors/pockets/generator/PocketGenerator.java index 1a6e524d..bc60c706 100644 --- a/common/src/main/java/org/dimdev/dimdoors/pockets/generator/PocketGenerator.java +++ b/common/src/main/java/org/dimdev/dimdoors/pockets/generator/PocketGenerator.java @@ -236,8 +236,7 @@ public abstract class PocketGenerator implements Weighted { - if (/*setupLootTables &&*/ blockEntity instanceof Container) { // comment in if needed - Container inventory = (Container) blockEntity; + if (/*setupLootTables &&*/ blockEntity instanceof Container inventory) { // comment in if needed if (inventory.isEmpty()) { if (blockEntity instanceof ChestBlockEntity || blockEntity instanceof DispenserBlockEntity) { TemplateUtils.setupLootTable(world, blockEntity, inventory, LOGGER); diff --git a/common/src/main/java/org/dimdev/dimdoors/pockets/modifier/DimensionalDoorModifier.java b/common/src/main/java/org/dimdev/dimdoors/pockets/modifier/DimensionalDoorModifier.java index fb13b008..c9385e1e 100644 --- a/common/src/main/java/org/dimdev/dimdoors/pockets/modifier/DimensionalDoorModifier.java +++ b/common/src/main/java/org/dimdev/dimdoors/pockets/modifier/DimensionalDoorModifier.java @@ -133,9 +133,10 @@ public class DimensionalDoorModifier extends AbstractLazyCompatibleModifier { BlockPos pocketOrigin = manager.getPocket().getOrigin(); BlockPos pos = new BlockPos((int) (xEquation.apply(variableMap) + pocketOrigin.getX()), (int) (yEquation.apply(variableMap) + pocketOrigin.getY()), (int) (zEquation.apply(variableMap) + pocketOrigin.getZ())); - BlockState lower = doorType.defaultBlockState().setValue(DimensionalDoorBlock.HALF, DoubleBlockHalf.UPPER).setValue(DimensionalDoorBlock.FACING, facing); + BlockState lower = doorType.defaultBlockState().setValue(DimensionalDoorBlock.HALF, DoubleBlockHalf.LOWER).setValue(DimensionalDoorBlock.FACING, facing); BlockState upper = doorType.defaultBlockState().setValue(DimensionalDoorBlock.HALF, DoubleBlockHalf.UPPER).setValue(DimensionalDoorBlock.FACING, facing); EntranceRiftBlockEntity rift = ModBlockEntityTypes.ENTRANCE_RIFT.get().create(pos, lower); + rift.setLevel(parameters.world()); if (doorData == null) { rift.setDestination(new IdMarker(manager.nextId())); diff --git a/common/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java b/common/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java index cd5cd54f..f0c337dd 100644 --- a/common/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java +++ b/common/src/main/java/org/dimdev/dimdoors/rift/targets/VirtualTarget.java @@ -82,19 +82,19 @@ public abstract class VirtualTarget implements Target { } public interface VirtualTargetType { - RegistrySupplier> AVAILABLE_LINK = register("dimdoors:available_link",RandomTarget::fromNbt, RandomTarget::toNbt, VirtualTarget.COLOR); + RegistrySupplier> AVAILABLE_LINK = register("dimdoors:available_link", RandomTarget::fromNbt, RandomTarget::toNbt, VirtualTarget.COLOR); RegistrySupplier> DUNGEON = register("dimdoors:dungeon", DungeonTarget::fromNbt, DungeonTarget::toNbt, VirtualTarget.COLOR); - RegistrySupplier> ESCAPE = register("dimdoors:escape", EscapeTarget::fromNbt, EscapeTarget::toNbt, VirtualTarget.COLOR); - RegistrySupplier> GLOBAL = register("dimdoors:global", GlobalReference::fromNbt, GlobalReference::toNbt, VirtualTarget.COLOR); + RegistrySupplier> ESCAPE = register("dimdoors:escape", EscapeTarget::fromNbt, EscapeTarget::toNbt, VirtualTarget.COLOR); + RegistrySupplier> GLOBAL = register("dimdoors:global", GlobalReference::fromNbt, GlobalReference::toNbt, VirtualTarget.COLOR); RegistrySupplier> LIMBO = register("dimdoors:limbo", a -> LimboTarget.INSTANCE, a -> new CompoundTag(), VirtualTarget.COLOR); - RegistrySupplier> LOCAL = register("dimdoors:local", LocalReference::fromNbt, LocalReference::toNbt, VirtualTarget.COLOR); - RegistrySupplier> PUBLIC_POCKET = register("dimdoors:public_pocket", PublicPocketTarget::fromNbt, PublicPocketTarget::toNbt, VirtualTarget.COLOR); - RegistrySupplier> POCKET_ENTRANCE = register("dimdoors:pocket_entrance", PocketEntranceMarker::fromNbt, PocketEntranceMarker::toNbt, VirtualTarget.COLOR); + RegistrySupplier> LOCAL = register("dimdoors:local", LocalReference::fromNbt, LocalReference::toNbt, VirtualTarget.COLOR); + RegistrySupplier> PUBLIC_POCKET = register("dimdoors:public_pocket", PublicPocketTarget::fromNbt, PublicPocketTarget::toNbt, VirtualTarget.COLOR); + RegistrySupplier> POCKET_ENTRANCE = register("dimdoors:pocket_entrance", PocketEntranceMarker::fromNbt, PocketEntranceMarker::toNbt, VirtualTarget.COLOR); RegistrySupplier> POCKET_EXIT = register("dimdoors:pocket_exit", a -> new PocketExitMarker(), a -> new CompoundTag(), VirtualTarget.COLOR); RegistrySupplier> PRIVATE = register("dimdoors:private", a -> new PrivatePocketTarget(), a -> new CompoundTag(), PrivatePocketExitTarget.COLOR); RegistrySupplier> PRIVATE_POCKET_EXIT = register("dimdoors:private_pocket_exit", a -> new PrivatePocketExitTarget(), a -> new CompoundTag(), PrivatePocketExitTarget.COLOR); - RegistrySupplier> RELATIVE = register("dimdoors:relative", RelativeReference::fromNbt, RelativeReference::toNbt, VirtualTarget.COLOR); - RegistrySupplier> ID_MARKER = register("dimdoors:id_marker", IdMarker::fromNbt, IdMarker::toNbt, VirtualTarget.COLOR); + RegistrySupplier> RELATIVE = register("dimdoors:relative", RelativeReference::fromNbt, RelativeReference::toNbt, VirtualTarget.COLOR); + RegistrySupplier> ID_MARKER = register("dimdoors:id_marker", IdMarker::fromNbt, IdMarker::toNbt, VirtualTarget.COLOR); RegistrySupplier> UNSTABLE = register("dimdoors:unstable", nbt -> new UnstableTarget(), t -> new CompoundTag(), VirtualTarget.COLOR); RegistrySupplier> NONE = register("dimdoors:none", nbt -> NoneTarget.INSTANCE, i -> new CompoundTag(), COLOR); Map, String> TRANSLATION_KEYS = new Object2ObjectArrayMap<>(); diff --git a/common/src/main/java/org/dimdev/dimdoors/sound/ModSoundEvents.java b/common/src/main/java/org/dimdev/dimdoors/sound/ModSoundEvents.java index 5fb7b065..9c3c2b30 100644 --- a/common/src/main/java/org/dimdev/dimdoors/sound/ModSoundEvents.java +++ b/common/src/main/java/org/dimdev/dimdoors/sound/ModSoundEvents.java @@ -2,11 +2,8 @@ package org.dimdev.dimdoors.sound; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; - import net.minecraft.core.registries.Registries; import net.minecraft.sounds.SoundEvent; -import net.minecraft.world.item.crafting.RecipeType; - import org.dimdev.dimdoors.DimensionalDoors; public final class ModSoundEvents { @@ -33,6 +30,7 @@ public final class ModSoundEvents { } public static void init() { + SOUND_EVENTS.register(); //just loads the class } } diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/broken_pillars.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/broken_pillars.json new file mode 100644 index 00000000..db9583c3 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/broken_pillars.json @@ -0,0 +1,20 @@ +{ + "type": "dimdoors:schematic", + "setup_loot": true, + "id": "classic/ruins/broken_pillars", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/buggy_top_entry.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/buggy_top_entry.json new file mode 100644 index 00000000..af0403a3 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/buggy_top_entry.json @@ -0,0 +1,20 @@ +{ + "type": "dimdoors:schematic", + "setup_loot": true, + "id": "classic/ruins/buggy_top_entry", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/collapsed_single_tunnel.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/collapsed_single_tunnel.json new file mode 100644 index 00000000..3983177e --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/collapsed_single_tunnel.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/collapsed_single_tunnel", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/crumbled_hall.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/crumbled_hall.json new file mode 100644 index 00000000..20e2384c --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/crumbled_hall.json @@ -0,0 +1,29 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/crumbled_hall", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + }, + { + "type": "dimdoors:rift_data", + "ids": [2], + "rift_data": "dimdoors:rift_data/default_dungeon" + }, + { + "type": "dimdoors:rift_data", + "ids": [3], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/door_totem_ruins.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/door_totem_ruins.json new file mode 100644 index 00000000..9c82a500 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/door_totem_ruins.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/door_totem_ruins", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1,2,3,4,5,6,7,8], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_cube.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_cube.json new file mode 100644 index 00000000..59886252 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_cube.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/exit_cube", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/escape" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_ruins_with_hidden_door.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_ruins_with_hidden_door.json new file mode 100644 index 00000000..0ad1a630 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/exit_ruins_with_hidden_door.json @@ -0,0 +1,24 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/exit_ruins_with_hidden_door", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/escape" + }, + { + "type": "dimdoors:rift_data", + "ids": [2], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/heart_of_disorder.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/heart_of_disorder.json new file mode 100644 index 00000000..fd78e890 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/heart_of_disorder.json @@ -0,0 +1,29 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/heart_of_disorder", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [2], + "rift_data": "dimdoors:rift_data/default_dungeon" + }, + { + "type": "dimdoors:rift_data", + "ids": [4], + "rift_data": "dimdoors:rift_data/default_dungeon" + }, + { + "type": "dimdoors:relative", + "point_a": 1, + "point_b": 3 + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/hot_suspense.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/hot_suspense.json new file mode 100644 index 00000000..3623ccee --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/hot_suspense.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/hot_suspense", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/escape" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/jump_pass.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/jump_pass.json new file mode 100644 index 00000000..4b554f86 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/jump_pass.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/jump_pass", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/rope_bridge.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/rope_bridge.json new file mode 100644 index 00000000..9e3066a5 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/rope_bridge.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/rope_bridge", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/ruins_oh_no.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/ruins_oh_no.json new file mode 100644 index 00000000..3d17f395 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/ruins_oh_no.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/ruins_oh_no", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_drop_hall.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_drop_hall.json new file mode 100644 index 00000000..e7c1e89c --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_drop_hall.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/simple_drop_hall", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_small_t.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_small_t.json new file mode 100644 index 00000000..fe17b7cf --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_small_t.json @@ -0,0 +1,24 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/heart_of_disorder", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + }, + { + "type": "dimdoors:rift_data", + "ids": [2], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_down.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_down.json new file mode 100644 index 00000000..2a8c4d6d --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_down.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/simple_stairs_down", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_up.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_up.json new file mode 100644 index 00000000..8b48b317 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/simple_stairs_up.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/simple_stairs_up", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_desert.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_desert.json new file mode 100644 index 00000000..38fe6496 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_desert.json @@ -0,0 +1,14 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/small_desert", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_exit_prison.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_exit_prison.json new file mode 100644 index 00000000..6c352a54 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_exit_prison.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/small_exit_prison", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/escape" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_maze.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_maze.json new file mode 100644 index 00000000..352832bd --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_maze.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/hot_suspense", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1, 2, 3], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_pond.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_pond.json new file mode 100644 index 00000000..5141c0c7 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/small_pond.json @@ -0,0 +1,14 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/small_pond", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/spiral_hallway.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/spiral_hallway.json new file mode 100644 index 00000000..2141e53a --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/spiral_hallway.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/spiral_hallway", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/transfer_tunnel.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/transfer_tunnel.json new file mode 100644 index 00000000..8987cabb --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/transfer_tunnel.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/spiral_hallway", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1, 2, 3], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_trap_right.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_trap_right.json new file mode 100644 index 00000000..e53b541c --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_trap_right.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/u_trap_right", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_left.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_left.json new file mode 100644 index 00000000..fd4698d8 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_left.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/u_turn_left", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_right.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_right.json new file mode 100644 index 00000000..84f74976 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/generators/classic/ruins/u_turn_right.json @@ -0,0 +1,19 @@ +{ + "type": "dimdoors:schematic", + "id": "classic/ruins/u_turn_right", + "builder": { + "type": "dimdoors:lazy_gen_pocket" + }, + "modifiers": [ + { + "type": "dimdoors:rift_data", + "ids": [0], + "rift_data": "dimdoors:rift_data/pocket_entrance" + }, + { + "type": "dimdoors:rift_data", + "ids": [1], + "rift_data": "dimdoors:rift_data/default_dungeon" + } + ] +} diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/broken_pillars.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/broken_pillars.schem new file mode 100644 index 0000000000000000000000000000000000000000..7a4b82702f3d85da78b3cf16e5edc95a4aef1835 GIT binary patch literal 1418 zcmd^<{W}u~0D$N6RTRZNxMV(xE=fX$w&i1(lbPGJY$9LV?sVEi7%Ps5rbL^y7Fu_+ z@JzlYrn5ZR4NYmg6)lO?=3|@Zq{E1Np1U9KPq_Do_j&(<7f3Y){KJ;^4i=#dvlb&V zz5-46l(>2D`i0doPweimyL~hRcllQLoZG&9$FW)l}4GV8zz0OH2<3+WE zb{~;Fn0!&`u$sLutR$w%Cs0_4?wi^(S?e#o)6eIG3h8ErIiZ1(0vo14`depxd7w?Z zpmy%e3wydvyJptgmo^LwA7q}`t5T=tJ<9dyib|1dqi<}awO-c9xa8ASv2+Ozf}E>4 zBAk|y*}-7u+%W9dp=D;j-3V2p`Tc;wD~kRLJf^N#wX z>{I*F-bDWL69Ve6CAV70^0kL>AS}qGHoJEZFcw!Cb0}KXc`-NhyK7K~fw%Jyv2nt& zhgGyf6eC>eN6|OmK1Ul~own*)kcqje$OKL!LJ01CI&!r~D+3;%HUsl9CX3ka82F}K zH1UbJ4(ZvBzabxKn0x7~%0W+d?3X8?ku@IAu<=W%(LT=AS_JH~heuW62O08Q^s$!6 z7MCTn+gYh=hiM6Y`Wztbg{_k1wen7nz-sG3b@i*+8-$BX#6j=Gg~e2<931eOs4R)< zj5x4nmo*d4WRynx9n8DM{SrqA;%hTaix?rJl+giJTNFvJUlV!p{hQTiEKC4^w@>l| zu#E(7>YM1Ev!n0Tp2w5V_s+bDXz{dc&%fkRE_Vu_5tI@V#9mp9LI40`t*8(w+HeHb z=1_kd2>-F8F5HIol=0Y+*H73gn2zY)>fHta9Bw~*^Z4nDK^^G|e4BeS7q2=yQ&tn4HaroxqBDARVGNodsmA6{yAAF@}kMkFG0!Ll+sb{Rp z6KS3y!b^5L57I3SfVf#P<6v@7vFXcLL&^m<&?)%J5axeU|DNW*wzV4ji-qB@L-z+r zt0mv4#`Ug7i!`b5+B1xlWV9?ZHQC4O*dt9B0lcPtu&Ln=4%(>PmFn`!Bk_p;!qs1ZUa?D7A>F_8)IFS zi?5F;-O0I_!Kd}By39`5y>voxXvJ7{BxULT29JL#Ugj49H<4}JZ}YVzCN{biOIlh{(kr52(psL+{Dx=BJx**@& nK@JUL>s}IXy(*l`KGq~Qc+6KQ6opY}7rl*}*H|mm)&TG~5frHL literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/buggy_top_entry.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/buggy_top_entry.schem new file mode 100644 index 0000000000000000000000000000000000000000..e35fdcc20364828307549bd2cd3a419df0dce256 GIT binary patch literal 1524 zcmdUv>01&80LC?@C1yT3Ew6C0rc4%jo0eDJWZoKHc#w!w)HKgMN_j*ciAUKiL{rNO z(V2jo3Z}M9CW01{S6EIHl@!4v^H|&Zuzz9ihxgO(dEXE3^SnAm2W0-yp6KrRgb8!? zejV>rl?er49D<-lKL^|WN;XF}R58vDzvk71k1$j(qUS^Ebd6k-C(_0vbYdEhr42#4 zS#%^K*a`DtPjLh;^;C8fiXEIhIvj0M1Y%dnciD3~1@m?18jIv>m`p{Kk^81=s1S#5 z2dg*0pGPKEMXEiyfq`92?Vy{Gj268e1%fjl?(s>O=lOfeV--+| z{^Px;w_L%NprYx_XZ3#D%?|BZnFo41?O4Yd9R&>~1O0$0V?@fS((Tkz1-U85Rr}*R z1@UV9GWADHVqrRnVarAaulrB_)Za)*Vc-jjEjkEMBVHQ}KxcQ2hq7>YvN0ivpRMu$ zJkHoWQ3D&TWKMRlB|-ySgDWp7T{*L}1=Ob4l2%{d?3tC>dZ_lIF>!v>q=w0=R<16} zJlj}ze0PknxysUW|s-PucB{c<*DNEnlS3^kkV|#ldtezmOQeZju=laV`(_rf&lAzoO^O=^$;M-F@(;6? z6c*~*Vy`|-ho;GMVf6!KuAn0P2gurOIm@#K8GyxJ78$yU)~wo*+M|nHQbCU|bSu%^ zlok(SNWD$Q=gn|Jiy9(w4AMo}i_N|19OM)u6-^r6SnGhzsugQ)YC zA=We)BQGbg`$Ib*Y(R-Nh@#p04LV0Rl#M;%HqjBq3&{g38b>keEros5)Xva%SSpD~ zj9Y3iwz57kJS62iQ!Cx5Pg-vUdBkWbBUsc~WW=IP^%1P-$ENUD95xFdW@+w=&A^9Q z`=Zz=q>#}E(qvcWTVd(hai9wiqc*%LTNt$<&~q#F;=aFYRInU)Ji-qfO&ZGHM?ASwuaK{E1xkXP19)8aDaLA0aFZ@IDAFvHBpyaYoF}= zzXkujy#IQ*r`2V#L3!VVMJv!BGSVC`;XITCz}H9u#~h^m+t6>K%8_y#V#JGdL*jM6 zwHG-3mxH4M!NPLt5mE7LPg%yVUyh9(vfu-qE=+r5eY4Dc{7-#w?U=pj64>#KAb!em zBXW4KUYLj5!@m*woaEZ~{!I3IZqu5WI_i{Nk*H?bGc!h3(pMRioFh&CrSh7rp>JILuVp++UhjhysLM( hQ3Q`{jT=7q=488YBob+tH-Q_$XOuej literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/collapsed_single_tunnel.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/collapsed_single_tunnel.schem new file mode 100644 index 0000000000000000000000000000000000000000..f1a936bcf313539dfe34d5aceb3844e6cd278834 GIT binary patch literal 1030 zcmb2|=3oGW|8H*`%zGRn((o|({*t##&afTPiQMpVnSa1aCn+{g6@kr7tWFnmYbHk& zzCE!oG`(yO6aS%E%?~@9n$bV~@4bSk)=HbaYYXk> z{$9m>{Pn|~0WtZpza(z0iq!dc>vMAbw~dpJuh+jgJ$Ju;@ux@Yw6$(8ySHP>uFUch z&&9g_^&8{zi+|aw%m07-<*)7RbAJoAr|gJ~zPnm?ea`)pldpe&)oXa__wjqz7see~ zDr0%`zuuPEn^z7S{}qmJE85sov_-#v9^dr8XWaEa{a)|%MgMf!=@Pxmmb%jG-sR1_ zTeEAnprC4m7Wck3PHsEFz2`SR_%E!iq;PI>ONtmM>YtKK5Nqei-y zSJZW0lg-`Ez3;MYZpD2O?tQ^`*`D5>{W@>jq)xxg{%x0EhVuW^>)-Y|J6Ka!IrnC6 z?#X+1YPh9WM%=T1H+Sd1g-NRxr|w$3GV35R!)8uKN*fn>r)ty;%@P6<{_NWh2wRgT!-Q%zQ)B60C|JUA^9K3E6ti5wm?v(eN zAJ}``%#BR?yT0rD`8n_Y=bxI+;N5R|H(&mg<0ZWx{2w=OFum>Zd%FCs!kf7V6AW(T zNkpFb)N&wUL&~sa2%>c0i=H=KA_sbu4tTAkUqJmdK8&yqc%u`h=G=LU`Q z-ODm}Pu?_R-tRKesFP2a<70nKzq>i0RpQs%!Sy;DtT a!=LA?SFgVRYkmDhdj_M{6i4$n3=9A;fh+C+ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/crumbled_hall.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/crumbled_hall.schem new file mode 100644 index 0000000000000000000000000000000000000000..77aaabe55b702b7ae7e207f2b9876b744686227e GIT binary patch literal 1783 zcmdUv`#;kQ1IO7M+Y@Cuy?k#gq>6FVR?QtmA9UJE?qvbfE zjO22<%;w89Y{s!PcBrioa&2;7_UL&%|HSkD>GRX)^V8=I%~MzUFN!&_=ao^1{i;_B zPq%Te>6@2^Xxh`_3IA3?5$(Ub_~2wytiHRA5AK*o0RC+X#(pymBYcT&+gLu8HF z^l9AXjZL*P+%NsbhtJV3$6(Y=m!8%4k5SvMx#+sGODPlvkvvk8%+laQD`e$Rt7OgO zCSA+CIJlJG9nz%<*T{4~xE0LwgbxS5m8BD2-1xd&0(~c&N`e`#m-G*Pj!fZX*0#(n ztWTh2NH&lC@&?vu{XLHIOm4a|MkO!g&b97QSS1r$hPxsF{e^>xFGe&woul+$&=x*y z(rCua6im+@L}EIWO?p-tzm>z4x+VLI({xcL318!fE1=JvFxds^QV~fNBL@WZod_E> zjJ%9IIgyh(v$1t>XXV6SwtXt0KC-%I+LcCHyKwAeYXGyy+#>%jJ+IMjDDM=-t;ey2 z4wL7TqaHqasBF6P_*RJ;EyXj`CrO4Nt%Mr<7?PVP?_~)b4#6?q;@WX4>n8U1Ulm)% zhxce?x%M1=ZEn3y1H9eHUy5+olhim6_l5Hsvs?D-q8+#vy-Ab3X~T@EKJ$=F!Tub* z`aT>cYoeZu!xWscG^O17OPtX@j*OX4=sPkNTZqKIsT@2(77sdBRfw$TBGaRGegfy>xl5C}??g!`#F&s`D@`tWKFS33nIW`Z zDYS|u%CK8}RT0TxKeHr;1-6zG!w_gDsBO;oUsB1cZmjktjY9iAhTC9mW}Gi~UP!aW zFAR=kVui1cZBom!Qo;Ov*Ef!kqSHqCn9i8m*APoM)cyN9`9cFHYyA48{TwPCiDsS; z(eJD-KK>X;Hl#zm{BnWBmxi^q?*Q*SUVR77*4)o4N{aBpl@sZ^V=RAGVN+{fbCK9C z%abf^qRZazBd&^004UcB=}r<3s+u4$+`G2^sCbf4w2Db>3OOz*z0i;fNA#1+R@9vN zVER!jR1#kb_$!jCA!`C}?G;^6+lM2J-D_SqZDE^_gY`GSVHX465*4S+7AaY8qFtq= zPFdHX1g}!VkHL3cbgWdNB6duuG85!7vLtiE{aFpmy=!IE5gn>;kH>nwtbpH~4iAtV zU~?<2CpAak`_DfJ5@)It3J~&7b@(W$f5xt<9R%JNP@DJ{0Gji3_FgQ6QiV%77|7+a zth5w@yF%HuGe(c^RS3s^oH;@xqh@A;$+h}x+o zy&Q6+H>rdOznSNBF?nsUC?pf@yhvFW?vV5HnDg7So2>i5lTnk?KUG?&Y@KGLv=4Rs z`DlPplA5AZ^Qt*C^3ZDb#V5DBZb52oRH~LVs1M;!J@DT#x|(I^CAL4^M(}Ru@1VM( z$9R6MmT2Qq`?wOmn;4dC8|RNCO0JsD_^A`@+@6DL(decfTD^wZfQQs^7^^KW6obHE zFr=?I3vdLgT3rDEU_|g-rI7IRp~m6i;Ueou<3;TT^C!C7Pm7~A>aM8{7yGLl7*LOT z1*#Lk@jRG{)^=f)g$i5QVL}h2s*2M-zZWD?qRBLr!QiHBb4_C6ZFFkZZ6Yy{^M5)6 z)!Js(c^~Lom@TqaaW*h87&eJeCw%jdM~BZhA(21j2e-;N6Z6$StXv{3O#V?I*b(&N zDZ{C99-% pV~>oK+HL8UQN|>q86-*Pz%iyb-T5obxy@JsZeePssVpif{RdwXWa|I` literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/door_totem_ruins.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/door_totem_ruins.schem new file mode 100644 index 0000000000000000000000000000000000000000..0ff98eedd7c22974886e34d25483c032ba955eb3 GIT binary patch literal 1401 zcmdUt>sJy60L87AtAmp*)0HOXj-qBh3bk3Ok(x>h8AC)*Wta!@nTVE-0bDez@oN`+Tom;TDsBV^o((;Wi=L z3nV0kPn*5N5yBg7kxiA!Rul}``148cZzBnjD22*)$dzuJbaBi0FKL5Lf98zU(4aWM z7ZzRqj{yG31_a@n(hfI0Zy?j39DmU85$+`PU1k`hRiG2ZUA>gstr&j${nrBM z8QQub)aVI+xmy;fq(K;3z$C32)H91;cs-ShYbqH(jip7jL9}1KJdG_#eGU(QdO#kQ zng#B~fy?=a6ykF?Y^m-=y4erX$d!@O%q)Fp{w9mn3>;E6CYcaGHMNWWv0m%g!jO`% zdv5;dmA}NS8Eqfc6_a~PS|2Qm&AA|Y>%v=`&LJUEvZUk}M55@_+8q|>ZZdz0H+EuW zd`VHpbJVG;C--)aF7PwOAk9>~-##)=L_BQW&M5p9R`7JHF{RYzprd3S5IiO^t4yz8 zOs&f!Z~7C&#(oU1dozANN0T7C=sb$#W?_a)m!DhT%)&9WnVhC^_|0ZR3PFS+*WvZe zKeoJyo2R9^kbE;7^*RkOQ@X{nzWAakPIK>&7cVB!lWw+HUV}c+7Ukf?G;JL%Cr$~u z>;}EyTz0Z-;=46q?!I6Icce}{hgGI=WkE)L#DA-PZYK8X#9-VdXxE^7{zYr87Q-#Ns|1IVr-UNPmq>TJlPLtjur+iDlwakJd!|q^(#ZyLb}(n z*6fnYAV^GKMF-oC_!p-~@QW=9j_AVtxM#BrQ zxNZzs-1*_Rhn%*j(eWC!^#I?Iy6ShbYn=tY zBwRNEIo~wmnyJHXU;6RKcnw3qNso65gZ(^pFGo>hV*j_H=oG{7v2qXC|t0*IbE?8g>g}$VtPuinAgNWh29pfRG+SMN;-<+|E#tE?T4 zW5Xyt1X6V4;p2dUp!{;X$v*1&_7L_MrF;0v@lZh$cQWg@MK$=^9{ BsSf}E literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/exit_cube.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/exit_cube.schem new file mode 100644 index 0000000000000000000000000000000000000000..d99e89afc4d028ad087073e10d75600d9586a82e GIT binary patch literal 1072 zcmb2|=3oGW|8H-d&b#d<((usv(kE9xvD}L}+$E2D=O1VYRPb#S%ec5^mTMqKa-oXg zGD{}Qw%M`wSM^`XoxecuWw*@gO(tJi?WF$OC!AQckH_<8iipI^?vzXQ`ChO0{yq6e zPszIW<}RxVCnMwLJUMsu?7_g7ZO567<+ix9sk^4OZZYme0_RnN@%oAi2FLFjko-1r~&%C_rO zM{oMPZTFk!bYrYtYDJn(9%~~>D_x_Gs z*Y%_KnXYAze&rPTeP8O`-`kS5MmFYX@&;G2&B@zn9Vv9otSREcR#kE9pR25SYw!P)&e6TO zc9PtD?(>tLaaI;BD?aSsT=uCX@AclvxosOwT3TbHZ_M5FaKAy>>XdHY|B;t$6ki{l zmwTB1)}qTL)n9d4)*ox*-)+8IbpOxFWhVY7stn%#Kg9n#h9kO{SH3LYO$w}G%YVNA zfsrrXe_(z$h4+7};iU=BI3xMR_B>SoeEVsV+5Q_+n-*B79Lmw5a4udaE>ef!JpDuAA(+m^OT zY*PHJe7vf=_k_+{bpArB{9)D9o0Ei(J9|HV((=PT-e7vZhukOe)DyN!o_obtT{-vi z{uON{t5+BAeQH`#88_$ou^YdhtT8#9x$M}?{gdX3PnC-@Es9L^oyz+7sRwU&R*lv5 ztYOY*uuK3TZ; zyUO2@P5liM~Tq_*@&Tz0d;iqOM%-(IWTyN*|_H2%`} z?ALahS+V=}e`udHZ{3=mTBpxQTF*Im9(|K-W7b@yf#KHOhcfA#7O-xm>=?#;h-t##!g+4{%nvT03y z-(Nh4l=xQsRODiPJ|`qfVB~z!xfZ@h?*7}LmUq!>`RZwlZ6ud=TKKwU8u1_z1%&j-Zh36W5D=Gts&J>6`8BRUNlZ9raVc@HR&9`mNZgieGcx zt<3LS%M)JdDY~o1s9)ut(NM-dHrl|?8`-pic%(u*UsB5>Abtb@9%26 zyd2$ZBd=~PMyc#vS

Y?xp_tTxeFK`0a0uT+J!o_+y#!iXP>6du!q|Dsv`E*KJmF znIdLtcCp%n^TGn#N!$8F{<@g`@!0lHAg#H-k}vV>l|(u_?<{!zIEHf__sgiFJj5KAmtEZ<~hPlyi!|IOb#%f<7{N(jWUvY!0^1qp_xrrlDD9t z*lB@d^Ryl|ivyO57Zx~ryD`fQ5#wOV2SLxiXt`i<`cg^1`c*LxxnjTnalN^CZj9yC z#qTamIacNwHJ5#__uY+GckQyeXQ{3K<7*Y|Xl_!(9` zXa0W?m;Lp)R%ri|FHe@)##*jkweVbyVNppsZ(_sj>lZTDwymFTTC>rS_x4)mtzn15 yPfN|a7vH?#UA*f%wURr_@7{M`9JPBj+mr3nr%(U?<8l4V`eF~ClXKrOFaQAhG(Q>u literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/heart_of_disorder.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/heart_of_disorder.schem new file mode 100644 index 0000000000000000000000000000000000000000..a14d055cc5880ca8940b727d66d79f8c35ae6106 GIT binary patch literal 5638 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/rope_bridge.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/rope_bridge.schem new file mode 100644 index 0000000000000000000000000000000000000000..328cd5f32a8c2e7d7739a6db6f6c41f1bc256cf2 GIT binary patch literal 2115 zcmcgtdpHvc8z&mlO67KPnI)H8XO5(;IY_ythm0B9+;V)wq}-zAJ|oQ`aw)!3;uE&Hc`mtJvm^QJ*V7OO7uoG6(qb{qO%O@`hntyzF)Kt2tpRl`x5jPLDh*RMkQdV;3#@jF&$cGP0l)v;T zT^FBR?C$gvlggEmZSL{Q=A`s((o=*Zsm5Qbus8!M+Y4`)ZmkAn~1u^w)b zBTfY(c);KZK+>VXRa>fH82HXq54y89g?8L9Yqu zE@rSfP5QK!<%)%jx2h3_vScaWn+E61uQDGd4fOLdk-g1<2Qbs37#&{TL|L`SmRT5$~S_}4@J+fM7E+22!rO>50k}ZSEZ?IQO z3`*e21UJti24+YFoa~){>}x-M?=9IGi3k#-A1QJ;Ovb9CTqlV(Gnl`#xp zk6b4%bh$TYhxpBbBTIX7y6#x%`v=`+gqUej8{WY$2dcY&7}8=;N5d}*sR6ef>UZPJ zL-9h}5#0*=!tRa*=MxVe9XG*N8;Iwx9n&0moSla*zsNPO3icw8qTXLzHFGv8JS60L zlh~-C*Ed-9&ctC?)mhr3LESj$YtnVA$yUpW?kT~*B!U<|f+SW2O8zKOCH*(NNJ{`+3VEp9O!~Qab)VXvYU2K+ zgVo2J@N)4Ip1Ckd&uwK%kf&|In1%pQryVU_w`n4csLOyn`7?ntR}RPbmy5?K_@Ui>vNvsRmgH|U%!H#^C^N)idB z=D_xjh5zVn29BEyX=szI(xiI2xLJkPs*`1oY{IvzMhclwI`7&Xq;0sEv4-|61++e< zJ6x|ifDdi{;&1ldehs-Bhi@i& zhBXyc3E_@IPuPLsn0`rE!54l@leS=t%UhtZmPn zZQ=vJ^+8)TCG1Cnol|yB+96pHK9$`bOYcCZPom_$zhFB_BOubEV*onAfg}d=A27&$C*|?(C|56wEXP0>@KJvT8J^l=&l^RfMiu-yM!`Vc3ZK_pDU2MIe5Aq3so6eG z9y;g3L$`epF9y01pyj+BJ@sb+H#(1TH}AA1^5n*|uuo5ybz_~BTM_^MFWi4NyL6pV zJe(PFk(d2E9pR_`*$G~IFu9He0QK}|>P*KgoPCk0S#!IEOI|!jVwVDYL%&dj@G@d4 z-#WV2u;DO4|G?J%C>y=;!LHBTbF>|@lIkcw4StVpZIlEH@wRemfS literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/ruins_oh_no.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/ruins_oh_no.schem new file mode 100644 index 0000000000000000000000000000000000000000..2adf9f4d2dee7006a5f366a4e81f77e574f69986 GIT binary patch literal 1351 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_desert.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_desert.schem new file mode 100644 index 0000000000000000000000000000000000000000..c7664d9abbf3921093dc935199b3cef2353f1a5e GIT binary patch literal 1113 zcmb2|=3oGW|8H-^=HCvHIPg)u?9%iphMB_6)+%{b!JIpsUWq97DmI!N(G!UA(Xi_E z7h2sXdvp1#s^jdB=Jg*ru5sKmW3E%s;kaLK-u$1grTR_(`0<;{+oR%Dru{3P9QphW z|FfkXGG9{5OBJT|r)TE5FO}T=SjBX+l7E|eq@mT(7U&`TsfSr!zlBUS{S* z>(y~HI%R8q9$o+MOP$X5b^f!rd^x@-B2Mk4j%L>;t2iAylgSJ1jrL4Bd}t0|_J^b# zw@f?9kfSqa%lZ16$)z0KsoTHo-wN3&FH>Iib?rRMo;*49TSnacEhk^y-C4NpOxMXL z@0Gt!E4!ArY2)LgZNE3xT)8pl<80~KlZ|A57XO=Fz2hHi$hs42?Jw4DjkcP7KK|vj zZ%LJRb}U`F_Rg=+J4f&EY5ljmy}?O;ntN~b>iq18`(HD+?s)4_Ht%N5qh&=Br{A65 zw&s%3`v01LJKyK*O}4x<^{@KZx%Q^#I{y4@7Z5~%i@!sb`&oVMew%jEN;-1+#Ybn~ z=9PZDeLXt&W7xKjd`o&GH8Qu}n3Q+x@~pjc|4d)BLbUt#%CK(N!qrzF?KpeyPm=Ds zsMWXENnJhqcG~XR_%Ci<+gPhlzd5E{YW;d!QsDO6xx4CbMlZh}VH$O)cl!pD)8e<^ zeaVXdH+9;2@v`YTXOCOw*6Cl!_W#_nr~l2f%XN>l{x$C3{md-39hQre}qj zZlC+r^_{KxZo=6=oc|8&pKRjKkz@V1k-xhAMpU%l#o0ceTMle9miw`xykqV0&;Rl+ z*(e%F=tz_)%l#;y^o+CdV8TIzOB04LLkR^e`hRoZo$5)Vi!bLFPv3PVthQd~*5tqG zt`F;s)MrlhhvkTiSHjl)ve`IQ_ijO5;H=15G9G{StoU<0>3{M4|6l%`Z?^5+=l|qi z?|HBIU7dx?^!El%6ixMibV)7#e^~trbIrA9Q#U$%SFzrFdb;i8v&)yM{X5M5?~>lx zUhi(3X&Sy+o7H2>4Yz+%@J#m%oN~2r7Ek&zo2^Sro-j|IJG=YU%Cl=W|NDDzhlab^ z&t?1e)L*~z=kV2M_R)F&E?%uND_?rjy)0r`^7V;xe{paAcWdI8I!|HqsfU?w{w%av cwAm z`jnxN-QDU^XL*9l`cs`qtc^8MeC2eEZ`KkJGkAh|Icr{M@O1^-85*d;M3~z5lZ0*TbA`K3~~8_gL*- zlUmR!`|jr&t4^aCYj*AH?)sW)r@7;~Qvtj6(<^7*_ie~vqTSN)_DuT#J6|8=WWsIq9=?};ZrCl=J1?A?&9YnStb@7m1$ zA0yYOZYteYxixm{HLoYn-R2*8z@PukanJMcP1-W~GcPAK%dFm0w+3%J=JZ?+MlRD}P<&;%`Mq%I1V`zsJ9AM$5_^ z^-bSS{W2HgdL?k@{16*Dr5rTG4^^VFQZ#VS?5^zear-C4p-ZDGd$ z&HirN+I}^+RChrmpNTpPFR!i?ugLL3mDIGIyyUdyD{@-_;E-{MVUxtI21cw zxNu?7MF(b(32kD%Y*H8I2$+~`$uPOl0CLDe*Ts!&gWD)bhJ%q0gkPS%wi%eZ_v<=| z8AbE0+WO7GY9(iy!rh6d=f3xPlpA$B_NCvRtw&EjJ{MP)A%0qIzVBJ{`cQwiO%rb! zrL=O+)E3H2|2%!2xB8yBk(E=@*jEP@G4ovYTl{mAlK-`(e`~e+{l9N^{jf~p=EC#G7OL*uwf5H*duQ{t yQ_C)|eiv{0cA4(o>yc8+Htkj1JO9|@OKnHP;;*Zh)zr*6wcpNbf9H?)3=9Cgs2W%R literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_maze.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/small_maze.schem new file mode 100644 index 0000000000000000000000000000000000000000..051982088331af77259dca2d4ff2b50b40b12af2 GIT binary patch literal 820 zcmV-41Izp$iwFP!00000|Ls~$Z`&{orR;oXy$on?J8j4Of&#&Stphe-!+P2d!(ga3 zod|WUKvt3Vw%@rw(@Bk!T9)lBaf$_l9#BNmqewoQOmpxEz=zQ#O;AewLhk@zID&qD z;KMRvHxcI|JHJYJcpcDLpiY7tmSQMqECVKZ8fc3jF%4Ndn=UbvlQ~V|X~LH%CUbR& z(*$EV;R{TsF-BH^>y`sAm|qq9$Rr0eLni$$C010PN{an30d>P(gD zZs&|rF68_m1@YSzq-FGOOYtqAN6&}TLU^je$Mj0DP;p+nK5dy<--olOPRS%sG0=%! zXNn}?LGLrBGdYJ>KJ>q#$QVy`(u(+qY&MrL?!)k%PWysN3h?GNI5;>sI5;>sI5;>Q z7s%e^GvVkGI&KisP!r9Om62MO42eey@XB5bs4M$UB(bmqSu!(YKIwQ|>3xL~b!YWq zkek)ou#(J|C6cWD+hn1%Hc3h=vkXrOHQdaTt8+^>=~dipatk#i*;L5PcCFJh)YiBy z!ph$!YtTrx0P&j!$?VWF*|0VHuSW4sq%|i+vSa66cXKrh1uJMVun zNCP)W4cWFHB*X6L2C4b~VC@F12CZ=qq`G7)j|U>HQ87p}=M`!Gh$zij<(Lt$Zx-`0 zyQD;x6WKzR%UbnaOsa3TC-;qMeQqT!n9mAKG&WsI5->&hH&!u z%Fu^YGRZI-sWX2Borp?0f^NtYF1p|gjI?zZx-)^8uGXEan1576ms{T%%AwNng-pN$;}@Oi-fQk7F)EjNa?;Y6t!$ z*RMhO>TmEE5WpLN_bGz2jXzAKplOJKV6i07)3S8hTh-{ab2Y2wRyF>?)Ofj?;lb4G y{%pL1sX5KnocygC54zu3q+e z582L_p--4mDr#CcXTHw4%*?Ww9foc9@%i$@=WqDDe||k)&&Tuec)e}tUvK#L{iPaK zC5$3=Y?|lcymD;V9t_nRj4b$fng4Pp3V{8XmPpCBh-k6GmeA8${LOm<-i<+l6#bdC z!qwPRVq;Wqi!8kOEdNpmTt&X`vp?_M~$}0B`m$*S>^I|m$ zUQSVT6BJM9hWROjbLeZ&ai*?PYrpmeT*0Q(li3JIkCb5>A?%LMYc2^Q+cWcpfr6BQ z<9=7usw+qqdHI!}UA({#|Jd)DZ$r@kQ7~K$P|}c~dTars(CB5YE%^2wWrM3{baiO9 z2egM^M>Co#)W{$B`UF3)SGK~&t!T0K%B>+$q?g9()WO}4hdw-2t@+-(@kMO#XWYK? z!>u#P$3=i@5g6XU|81|X)4E%vdGu;bMRG#aS<7nKqt#aY98`b;#9wiNZkH$WuNH(X zK-0Q2s(d-rKALTEGw4RsZ=U>S-bc;8!QKKq1sT@1_&Vta*tj@-?Pe$^?C$II+)&k3 z@0c$2z2}YLOz@K{Bw_oE;_a2|cABZ!WChuGYZ&p{m0h26>^n@;6=O;9YO3z9rz&m` z&!dnik%wm-&QiTk&Um?yG=}gt&vEn%TWO^)=_uxf}i0{Zm3<#vtY`s^OSxx zqYe^%bP+MV?eL%)Hm)gv7mY{{68dhtr=4gJ;=>&BriIoB`-Ps})`G^}4}H!}?SwYrU_awgaq%v`Y)-_CTpOP1anFlo3A>*v-Z zY$IxMA*=>!7N=)D@gB6%25D6s)x(U$U*VY^jF?ZzLvWAh7M_442Rem; zZ!Z#Rg|n%-_0}9!8E@^}d|#Ro!HVOQ$#d*~P^8F+DIJaShG9&}A94QMHMx^VBqrMDN8PIftyYaZIJx&-~KYfdDsp2~DM+Ale*F=66VEU(SY z3#dWwfV>j;$frZHgbSjj@Y#7urIVj+@govdRcAWG#%x4+3O`UneiB4PZ!|IBOWu9^ z#5VnA$=a)>6Da@BqphcjCiPRT5pm*n24h_jP-;H=1?AZ-&^bP@m|%9D{a^}(Lh-2Y zv6G#holV#p)Jn26aPRxA=DJa6k?U6=5Yl=t*j)Fwb$~GtSOqQwnq+Q9 zPJxU7fPUI(z(&DWRX1pN$>jJ~?Emc%AODXb27?)a#+OepJO4{8Ir8`UAk25MUqc`z z?#S)?wGRJRn04RvC%V5rd@`9V-A2p$1_%TaLLnwT5C~)lhTX6IS715Yg6<@~rCin1 z=h}O6c38UK8bwf>I*9t5Nie$cyji^2B-LhND@DK=rnIrx2JYOdQO)DFCQ_HcLK`Gr z)$IR--chz=r`|0=XIHD%aNdZDx7Wf)y4zE|CEqA^du}ePI3?jGU6>i@6D5WA4&VjL z1Ni&g=?)t{d-{<5rk0fWwM^4TL+8f}RxZ`SFJqf-l%F$HYNJpoBXv$4Wpbb)BYM9 zM*rpQkF)JjkFP8rioe!noQcLOLlkM+A740L{$v1VevBn#_!hn1GM2Y*k1VcL8!Zsh zjg^a$&ewovs7Jc3FFCdaDh0;~N9-8iv(*}mX=4CrQQpTQX+OJ>^d}5}@-6;Oaq}BC F{1e=7ZWRCk literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/spiral_hallway.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/spiral_hallway.schem new file mode 100644 index 0000000000000000000000000000000000000000..a59c191d02f7aea6983bca6764ed0a8d38aa98c6 GIT binary patch literal 786 zcmV+t1MU1DiwFP!00000|Ls{zZ`wc*9=w=`33*jbd#rNi)>|Z0DNUtTYSo;QR#9aw zc#KyuUbMRr$*n)Jm;Rm7T^>oOY_J0q>hd9kJ?s5u=JU+jVjTbi&N&THDf~ol0pOVf z<*|XlahFBd7SvZKeHw{1>f|PT>^cNbv@37JZXizeeKeYt1a&R zbeGd>*IY1}EcuNJ8UYRcX2|;}8iBTAGeloCcn_ndPeX}~o*6@LeAcH5MaVmyiN$!Y z5xAY_oe3UIxgW;96!&`zy1(i57IA+-;Pt~zl8Q&@%8<6M)LjpoEv^*r#?Q0}T>Lq+ zC76z1D$0bM#EMj^QK(}!8Bk3vm7uH>sCe=cfv;)EACA>ikF7bq#n3s4ZWmPZkyY z36w8TNX8?x!svnbXp(|T8LFoy>@%t;z{?(Nk&J@DJhP?cjX^f^76z&Gp0X#fEN=cE zkWp^SiY?x0Gb!3}G^Ij0&RnTFPYHazcyhxpNAKmJP|JNcY?9nbNOGDn_BCQBW5ZV` zhilP00fqX%*bSMAWRv7x65>-@UF+md?_K?g!7AUYGMRHHcpChbC1(k(lNY_0i=_JA z+vq3B=3;-{0jwT5u8gE^ILL9%TP%beH+;5NqC@@JVvBsC3iaXs!@Ec^#Za36|11ZJ z9#zxw6_xcRTIX8PMM1N~AdPKjffc3$H zqkBG#l%P=?UBP@+fRaheguQ}n3QNt#9xn#nKl2iAO>JA?~y70r*jL}F=*EH~E_nQq9 z)3pNGEMT6T@(l}T9t|Qk-S7t{*fRZkppuDzuU0$c52ePX3BP7yUPh9K%$*Bg=@3ck zi)de<!nakwMgg6F zkdMl9b1o&n!$*!yc;6->1zoGzChDW|%!GF*&yqvA{KACCqkUeG)HRu{mac0suEBNB zTe_}(6=)!T(vrL(>h*ECZb^~4#uhXJdocgEaL9gX{U2ku_FQ0bI z@vgQFOqdkpQzhS{+Bnr_blTZFF1URYZcwL3s*$wZoYC}d-e+teF!-5;E4kJS(C{4- zk^hg*C;qrU!kXKYvwV`{E79%N8DTEM1kKc!NL0~{(RbdZ~iOHTwgVe!_ zB8O9jjaZM}hoL*9T9BQVM8hOgnWSxMP~I(lB=&-lb;?UjQm{R3)^MhYYRok$m_rVm z)1o)-s`fC!;hK^}ejnB;jD)!GJPZR4$Fz0aHN*49Ji?IYK$3O@$}Cv!#<IX5*Hv>GvLf?go-rGYw# z)FecAmH)Luz``AYPXT-y5p;eLTRrU78SAKrgUp7}`08}-bY8~X`5s0_aFx_?{099y znFDsErtr8@Q+u6CMY!XdYm(}X?xr<9siLZ1C!Z9#+xq*sq~5K>d)!a#r`XD-U4&_Z z!(@zd>o_8+lu5F+I))1;gk40&qzGTzHnCN`wx7jsTfJk>BoP!znh-j~S(V5*yy?%jv}N-!2CzkBoGo~1AiHf#Fb zC-q^0y;S#PKcrG!a@3L3*F(t#^zYZ+3kw&_6}~487-+M!+W&wx#@Vbf(rW*Q z*1*}Unfwo|G0&c9leX3n=)d=u`j&6Q;1|z}nAB9;?e?>(e{Hv4zrf#?BNQI_7ytl1 CwLSp= literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_trap_right.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_trap_right.schem new file mode 100644 index 0000000000000000000000000000000000000000..89aa4dffea58cf4f9d432398d88a67945f1adfb1 GIT binary patch literal 884 zcmV-)1B?70iwFP!00000|J_$xPunmQK8brH<$ftJY0`c`Cao}bL8>NgOoCl`+8(MY zGR;Y2H6)Sas_?dd&g>+lDKyXvOw%k?>33p(=V~9v03cwTQV)f|uk-={o)}O~1q6=I znU5V#9dXFfjzr+2HDDauNF&kmB{cnj3%At|%`g}sZylIX(3gUU*=P%WwEJpl ze5zjGGNd0WGpYpkhIEl&o!+GtGDX_P3xU2Zqab)6%`~P;hg!HeXF@z>)*K1hCNQ{9 ze?WVa)Psl4wAyzFH1c6nDNsr4MJj7E?$2i7cB;?kY(CaAINKnwKh7WOd6o!x$8G0o z!}OSl3r4M6zAqBvcTMx4aNDd*!I&%m=8MAE8Z%~Vukfs@5O{vGI6{t5)aUY#CqvvG ziMm>|LEvz>CfR_Ni_{*8ZRAQb(o~7d5L?NHRRl`}P9}9DADG)mZgMb`W@`y=3*)>% zVC%+#mmPHa6zw9XtT+Yhv-O|i4!H?BRKB3!6|So4>JQ`*3w&j}d~uBG1cO=?7T&Af zc|--3b?^-49@>oP(T1KIMTiiRN7@ZUMo?)4m9G&|ER_sZYYRqwGVKYP!UvL#BDA=a zA!&<5%OsChv^*NlT+OlQ`kIzUS(Ma6({99UULUk{q$qilAzfc5WMhanN8W9XAWbhu zS#C)q@nQRK`k?1+(Pl+Mk9HEY`;b1|jS8#aVbH8T{Ilr48w;=$_lu9dV1i*}NSSUx z$(H@YfO04B0$v6p`zwi)a@jZ*sW+gP(GkjzRg}2y$XgxSAC!8DfSd;Ly*Br&*FZn9p^@>) z4;L;!V9?^s5gJsKTgvQ5@J4$uZ;WZZ(V_g4+3F5Zhst-yiBKqttE;PT^0_IW>+lEJ Kl!JE*5C8yKAgmDp literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_turn_left.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_turn_left.schem new file mode 100644 index 0000000000000000000000000000000000000000..ff83b3c7138ccd5a07977f876ff94b2ca193671b GIT binary patch literal 508 zcmV(j>e2jnj(gu&Lq1{>?s_ArJ~ z?2|2`NJdgf`_}(FJ2jqX27{(eq3s!Ce|NI)`%Z$p0)Rnr&J}u(U-<<9ObW<*2ZM`R zu4-efJ6$MKElb{%lPzlcc2;Pogy59xI!QTtNxg_RYpA@;`unNu!paNU5m z;miNAR)Ja1+RCQgmv(x`s*UsCqG}0)m;Y34s8)2h%8d8(HkHX4oc!G^=Z(fPFk3nb z#&l(0P&dAX=M3`iXq_}VL@4kHLq3?~aP&U#KI5L#33&@o&!Uk%WVDBdc(5BFMs|+yR#<-s=?MWlH=zfz(LJ3&{JDmc;eRyuSek#Zv{Lv8 yvLGwaz6UjMFg3-#YGO!#$U4jbQ^>vv;n0U)Y`5Dm+P$IYEBFlw0Gq?L3IG6AK>FAK literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_turn_right.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/u_turn_right.schem new file mode 100644 index 0000000000000000000000000000000000000000..7e3088d1e27856836e17b102c2ed4b2c2db25642 GIT binary patch literal 500 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/arrow_hall.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/arrow_hall.schem new file mode 100644 index 0000000000000000000000000000000000000000..299c99c5358177e77193c8ec97a09e15e9c35150 GIT binary patch literal 2470 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 UiW6>AXTphDB(2Kf4Noqw$^ZZW literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/azers_dungeon.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/azers_dungeon.schem new file mode 100644 index 0000000000000000000000000000000000000000..616ef0b233e433998ef049d81257f5f17a3eb203 GIT binary patch literal 1892 zcmd6m=|3BW1IDRQMHzK$)NDf8q|{YcT`PjR$`T1_i`G#`ObKPX@~ zs>E$3A?~P1q9xQ7Dp7a%eLmZp-=DDO#q;^TdR~1Wr3_)de{#;oz(N;nq;2Yr3gnE- z75x{Z{N1EXoSyan=A!4AR3VC~st9orMjJMzPE=S-flsLiXM<#zmHmD2X(YEloXvu*X^yMuBT5m$#{@{{*Ks2`sNSoXlcxKs>-NrngiGYLKUrB_t zRu(T@K0l5D>C-Z^3pPDWkX6{o=-UR42!oLL&Sh$BEjeU>#$5Hl66CWIpEsis;-M36 zm$B;}kvLu9E#Kv6q|N3>D=U%MvAS*Fy`;p*j+(UUIwEJ)rjR4Ev4Y6kXzd%Z#(5vuywl zC0Eas1Vs;&{t789=BWSWg-jz0o$`=C^FI#F zkiPw?yA<7`6n&eWs`;aop;OkZJa+PY{5+^ z#&&uKR}9)2S#uGqi(w0s*QZbJU=4RMv8~uxZp-0R?1prDo0YB0n+IS%Jhr@`+x5?_NrK7xdZ zbBd)nheRUPq*khzo3nbQ=LjWP9z19{US`s39L?0$rp|{??%I=5N@QR0N+`H^qm=|Dfzim{QA7^?@ znhlx*#eA&R$Eojj$6P~<pd)^4uUCB~ zlG_ei9GS%qGwX6H9FGQ#`;));5;|+P1MmTG`O3t&3XmI+O3RN0DC&;Tvh`cG)nGv# z_=~wiB$CDq)(vy`ZaVdWA^}+C7(=>wVBxA-}M;F4<$q)MtHTy99#U$ zw|e%ZT~-%rk?ZN4O*ekA6~4cglyCfQ0Q%5~$}mu}mu>LMAIpK(K}B=&9$lk{nMS;@ zNqw-Mn1RB)&ndhqejS3)Sk(1HyB7$iTZ~+g#h>@cgs#|8x7Lodsm*6Sl4>x~vvXpu ziuL?xLms@*CpvNDuAud=d&n1pn@^!Y%U8aHn?PtotzVL|dQhu(Uou!< zRN4}TyDTb;uZ5KflRQG84PM}}3)U{wz=32zT%fFaauY;B76=75TS(@$(i*(_YB7T8 zW%yZ?peSVazc=}RzWvRC9Yqm#HTMx__80g38fudmxlXdVV|8A? zHe}(?;=Y6V?7uX3lpvW15N}m$_x2mrOp`i9Z5`qdvq3(!{Djg;Jha{-tfYSL5a)Dapz^NOVoD*C!X93J z6NK~2FbE;CZR$I&nT0Qf`@Reeg?BHz{GKD{6%8_oCPNmsAvl1PT3X-^a*RDelN#eq bAx!A(lnxEE`k_yu#}d#oEl18KAK(7~Dt^cO literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/diamond_tower_temple.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/diamond_tower_temple.schem new file mode 100644 index 0000000000000000000000000000000000000000..755d5de03db05e659431419d919f527d1d1b9a94 GIT binary patch literal 1564 zcmZXSdpHw%7{@s@D;7%8A`XolL^07g>Bx}llF8g2R5oi{xwkPScc$8*VshD5Ny|Bp z<(5gITyn-%?udYGwkZHjiYMHi#dDE2X5C zp6?Iy)r*>;xw$3|tw?7`!4u84p^EKf*e*nylaE_+PuQ`*G;jlHX z%#f-gg==DZD=CPVL*gG6PH+>GYk`yTa? zF7kW|&)P~jU}kuBRa;}&xR&1Fdj1RQ<8r|B5Z*H39yA901>Nk@IZ5LSTiPnn{`76147Qb>Fqxe2&h$6W|Afxt#5^2- zeawY;G+m%+SrWm-F%P%km)1NjV7N|?B0j3+g%{M#wP)DPTQrAst^du-nitD8rfsa& zR$$DLA`+Rr!F3*}HIcJZiP3s5<31GWS+TSua*(-~6|2W70e8z&>j)Q=jyI?Zv`)bq zZi)!J%)=~BM(QHAM7BF#vTMs_KcZ<+v(TG)FA#l|2JOt9>H#G{=$^7{EdA~*g;K@y zGwOY_j3RL2=+2qJF0VV@niCOt4mY&jh*DifXC_8@k*f7G11X;o$=f2sJ@HK zH8I-50;0*&^?I_tQCV-*O@-JG%Z#tNU&Uf?I7&O5mFSexbwDP+~1a(O@t70f~Dcu3l-$!>AKdius7dG3E6M!`Z(Fy#S9&P3-hO zfK%2XD(Bza(9c=!i}6)6B8_mtEEGPgV{k^2BK7SjF8nhx7}w~ee7SeLQro;CyO5m= zS!k-yvi$TN%Y1*lm-~&20%~vh<_6Pcm|vfju5O3Np?ZX!8F_(zwf74KwWsphBHv2M zSwsWbv7I&Zl@6vn9erCqjl*(dUEoJ}J@TqHEZ#yQJ5X;{sp0YE0yEkE&p}WBJZ`_p7UByuN)@#Klu~`6%#{Uoe;qUL6i4K-6YF}En z4%*bGkjw=TJA@RS+#Mw!Nq|+c)PPqUJDJ_~lugu;F${K{D(>y0Ij~|1)|x zuO!T>L|tH7Hh%DV-D%uXpdqFsih>g;zPwGrX=IK%0M2)T#_pvlj$tQHL+HKJGAD#i z>*Xu+-3CVmD}gG_Szqvaat8-|m_60zv*av2>pj2R(qi_-6nB literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/fake_tnt_trap_a.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/fake_tnt_trap_a.schem new file mode 100644 index 0000000000000000000000000000000000000000..cb8f5f16ede492b69d7a58bcf59ec9e77b2101e8 GIT binary patch literal 1203 zcmb2|=3oGW|8HlW&XYD5Y3uhmDSk5U%d}MPl*hgE4y*`N@NE>!xVWIZOi+Y5%Gr~- zx1FiIZBpz#t^O<5H8f98n`0ptC1tICJ zue}w2cfytv-Q9O2qUX<>o@R3TipuBmP2GzwDX%`Jr@dz7ri49ms{;dl&x!3SJG@fs zc>2=F4C^_+X8&4qCE47hICgGtXyogMHd|iSlx_|1yM4(=?RxpYub*Fd{rZqv0>)@Af?uadpe5)#H=(;#6$-^x%q2r*w$#<^+wlx&(GO=<#6iNaDMw&xe{ty-|g6bdtd&wtw$HhdHhODzQ5dc z?dg8=e;$`UZ`~S@I@2=Q{c`kdnO)XXO7@6_CjQ-f&hPg&$yvGIa{VurOE3N%lb$Tf zwOHWA+)sNRU*cD>jb4A1U0d(Z^?UDk&DxP%OwOOWu%RL1bpM0&C>cV;b?%SA`o0Ju$Occ%5+b!+fyTbABYP-BV-E1ST zZY@Ts>|9~ZZ;S7x{`hRdzE6O?PM6>Qd87X0E$SSXV%JW5&#il2_tSy=Yb_m@7Clq@ z#jnXIwZ;9C*~Fv?CmQ8Xo|8Y6^Ks(2xpL22-Yht2vG(asAhFY2@ZX)hmFAUSCI~HX ztX9btmi&2;KSTN)=g&u5uJQd@E&RWD3Ip#ggg{$Jxln z8)YQ*fZ=(ILo=JMByT}OvC{&_=4m}_76&X9FD!8Mc4L-#Fh?Nc!UEOBjC=)t93~kT zCS7D;w@_!1GRZiZ(ZD=3jDw{f1f5`Q)n4*vk;&ql`ct)I7QWuMU-S2svr~g>U-kNA z=JYSQT6v-R%It`>t5+Yt`}tGQ`n=UecA@rrKa1B&J=s;}x-=$H%X1NjzbN~a(){PM z_ML-dWwFY#g>QVKUtO4}CH^Y+Z_xBxnf103($<%Lo=>c(cl|VV<>51b&L>zdsIPH& zw0+LJyI+=Tr-zzenyGuNPi|qGU$$w@?o|(0tFLd2TK#Z#DDV0A>m38$&sQoBwvxPX fZ~o)LwRc0==UzD2Zzn1Gm;ayQj-_+oF)#oCF^4TQ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/fake_tnt_trap_b.schem b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/schematic/classic/ruins/unused/fake_tnt_trap_b.schem new file mode 100644 index 0000000000000000000000000000000000000000..42c504dd5730336549c14f8200f2a13c3e7b1e3d GIT binary patch literal 2160 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 Wkj66bXyIPm4w%DJie~H!3H=Ln-6z!m literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/virtual/dungeon/classic.json b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/virtual/dungeon/classic.json new file mode 100644 index 00000000..a0bdc9a9 --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/data/dimdoors/pockets/virtual/dungeon/classic.json @@ -0,0 +1,104 @@ +[ + { + "id": "classic/ruins/broken_pillars", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/buggy_top_entry", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/collapsed_single_tunnel", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/crumbled_hall", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/door_totem_ruins", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/exit_cube", + "type": "dimdoors:id", + "weight": 2 + }, + { + "id": "classic/ruins/exit_ruins_with_hidden_door", + "type": "dimdoors:id", + "weight": 2 + }, + { + "id": "classic/ruins/heart_of_disorder", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/hot_suspense", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/jump_pass", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/rope_bridge", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/ruins_oh_no", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/simple_drop_hall", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/simple_small_t", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/simple_stairs_down", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/simple_stairs_up", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/small_desert", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/small_exit_prison", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/small_maze", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/small_pond", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/spiral_hallway", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/transfer_tunnel", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/u_trap_right", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/u_turn_right", + "type": "dimdoors:id" + }, + { + "id": "classic/ruins/u_turn_left", + "type": "dimdoors:id" + } +] diff --git a/common/src/main/resources/resourcepacks/classic/pack.mcmeta b/common/src/main/resources/resourcepacks/classic/pack.mcmeta new file mode 100644 index 00000000..51ac340f --- /dev/null +++ b/common/src/main/resources/resourcepacks/classic/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 12, + "description": "The pockets from classic Dimensional Doors" + } +} diff --git a/common/src/main/resources/resourcepacks/classic/pack.png b/common/src/main/resources/resourcepacks/classic/pack.png new file mode 100644 index 0000000000000000000000000000000000000000..57240fa9c0219a07aa0bfb02a3e4614009c8f569 GIT binary patch literal 4083 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_1.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_1.schem new file mode 100644 index 0000000000000000000000000000000000000000..0f102305dbccb9406788862270b915554ef26c10 GIT binary patch literal 448 zcmb2|=3oGW|8MVZ^kQ}tIQH?RteV8eEmQWimnmf|%vhRwBj(#A)swO@+dib$gg(~o zXzhqzyLvS&^;s=Rpj z-j?3q;r!okt+^JKCTzL)=C-TP!Xj0Zo;w9z`FQQc`ldt+6X662IRga2Z++lsKI`HC z=jVCz9%GSc<1A=78S7uMupsWu&MOH%4T&=t+-KbR+9J;N{ODj)a+uG6C;c4I(d=gs wgovwbu4vJxtZDChm!uojt$Mw8+oO9qT1QL&SC(7U>^ZGo>Cv)QtCWEO01f=sxc~qF literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_2.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_2.schem new file mode 100644 index 0000000000000000000000000000000000000000..6aeb15858b92ffc70031f10d24bfe74f405182ca GIT binary patch literal 855 zcmb2|=3oGW|8K8t%$r>*a_nJ!(!~x1H@9_))$Ugs8@bdZw67ORttE{c4fb=tt=}$x{pbI$yMBE?m{wa~{iERb zmy(*gpWhO9SN~7@y~FyAynp_?ZTbD}cYmF^zFnTL|M%U(>hh|cwle4Y^~_)I{$Klj z{{D#RuaElwK3=~3cj@NH@cr-l&$ll>em;I~{GT26dv@EeoxS?&SAKr~-QU-5TmE*} zkH_CtJtuuxT5iaByin$N;UD?D1rIFx9$UyA=M@3+WsX1I(b)7DC{iI~9-vis6RfPb za<@U=f)JZmM+$&yYR=tmEo5H$C{Vo(q_Fs&UXQefXup*qNdNrLWr=qjR#sf;dYj&i~V>&W$BxH$C70B&t4byc~6ybt?cgq#~;7=-h8y8Y~Mb+{X1{o zn>Q!c_q6`}WoL`_-a0d1Z`tOzRhIAU<^9)PpMAB+I`)kE<*MD)B|9Yi{}B>2Bz3%7N=S_=`^Z9HdX1|Z$bCQbZ zq%Z%=Kj=TS=z9!774mrvP$p2|hujWEm<*6x{eTUw(4y~sqx1vMx(LqWg)(5Y$6WvV z9H7v=y_FCFnd2WhMui}uGa3@3X=3Q-4n*$X$4){y;SDNimi*s$_~V1aziRf$Ebl*l kc)Pgx_SKc&OEy-2Ed2ia)w_4kw}0eznmpCI>moA)0DYvc%m4rY literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_4.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_4.schem new file mode 100644 index 0000000000000000000000000000000000000000..3822db44fc05d0af301445501094532a21b631cd GIT binary patch literal 2531 zcmb2|=3oGW|8FlF=Ebmzv_70J(ZR83Ns8bWO+i*xjgSC0;p3ibRQjIy9Avw}Z=K9~ z!a``#0=uAf?|%MEGs(YKb4l~vA;cgO#KKPtYwZ|;74Tm1U_ zxIOjtzaO6bynXp;^Yeb@)31k{KTp^9KcBx|zrTOIeEk01`*!ZyW4qVJ-ZJ+7J^QMP z!kW+f|Ns5|ule!Ak4OE(&DWn>-@jb^_~Q8WdG;~;_y7E{{K;F|Fcr@oCHC3rTmi~7FfvewI4>IybCvT_a8+Of+(2&Fil*p8&xrw zr+4_Qo{boqF(8?kw%M^2IkMjk1ko)y{PtPWRFFk$A0KjW!!T2NXGH3qH;0m6@Axng z!zFjz^ui>~cYnBHrB{=J;r{ItyF-rw-LtKaTV4{w+T16j*23a^G>~B-VKJJd5cy~{ z10hO{(c%J8G>;Y+qs0Z;^(__K6FP|O32z$g;8BM)Yrb?=SJeEw{k8k^>&Gv{kBj@q k@B33wy05;fu)O^H-M`P%%ggKkSN>tXWWZ^#tBsuj0QYF8%>V!Z literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_5.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_5.schem new file mode 100644 index 0000000000000000000000000000000000000000..50dfa97550ae4fd125ddeee0fc1b5bf9e61fbc3d GIT binary patch literal 3959 zcmb2|=3oGW|8K8s%!^?aXnp9-{pm)CV5t#P*2scl1mY zU_I(n+V!!fe)Fx}<@+Cre12o0*O$J3&b|2g=dat({bwP!&)$08zuylY{rGkD?ECe0 zH9LO)c=Yu5<*U0-Uw(V_?ANzHKYe}q^zPZKAJ4x&9=`wnow)eBbK~a6&&hiyCuh6U zV&4Dv_5b(&Kl$;=k3Yv>-!^}~{rJxcR6WA5*%thUpeFBf0) z{omoMyWjgizx?s)=X^fTNh%1m)6TQ)_~VZiHgf$~srv`c>)G((kOb@a_wn;)?*3-1 zx}k#gfBw8V^!Nd8TaG`Lx3}N@!Qw|-{Ui?T4gnhVV{eU4%}J1Z_B}l8&WKxG?x;F! z@%dvkT(G9|(Qv_@Ge^T^G+aQ1>}Wa|O$VdtV6?pf%LSw50W2g?n-inqG8!&}qnxBy ze+@PLqw;{QoO`Vo_C+AGkoz}A=ac$cl@m8vD z%5%`U#L9R7Q2D&=lF#PXS3D3|Zgsxz@uP}wk6(Vh`m^Ti-r6UY~w^ z%>RFnzI}UlHhljcyV!r<{*)9~)|M96{rmLg^xdydKYsiAc=P@B`RnxF`{|#LpS$k8 zoSf}Wi+vT(>;LcnfAHgzA3t`lo*jRFec$cw$1nZE%k$Ue=imGH`eA$i`gQfSrFMDq z<>uG?{q^nB_I$tRmp}fzZ!a@R#S;y^zs-KKz(R(v{qRGARJF~z-5(4JiB+vbbJd6M zOm-p4HSc2e#PX)R*0b@sV;~-vM3kPq!wZY_ug6x**paBW=Lo^T0fpb4Hs_~tU|%1O zspupepg=u4c-v3yjVXVa_^55?2O%ON0jNZpZ))|b}&afn4=xc z5#7NgqNV^TdAD%~Xk=|rsJ1{Ktev#v`)+pBU-9$P*{eSvzC8N( a@89|S^X2c||Nr^=M}0P-N0n0dMHm3vtYBLJ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_7.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/blank/blank_pocket_7.schem new file mode 100644 index 0000000000000000000000000000000000000000..f10a85eb50aff274b2cff30d48b67580629191c6 GIT binary patch literal 8129 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/break_block_boom.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/break_block_boom.schem new file mode 100644 index 0000000000000000000000000000000000000000..78dc01163a2c9a90a78d4ec566cef74ca3bf35ae GIT binary patch literal 1075 zcmV-31kC#%iwFP!00000|Ls}dZ`(EyKAZj#+p+VbX_}_(25fJG9@?%?#f$-M2eiY6 z7Td5q1cSg>Cz}XO3KR_|Z~I5~yuWcz87bM8l-Zu_Bt`@1fW-Pl-toJScM@zi0SGid zQI1;U&-4NSo;9I9xk2E^ArshB)Yq>SdZCsA-7!;miZs++VW1r7 zwIc%*^U`(3RwFL^{j>lNmnr#j1tr^g%freQRmaTrn7~(aTw||v9UT#PpLe(B)X^x& z?p1SH?k}7S-=(?l5ojlYC{tkj<(6uG+JBD;e7#hq8J!0N4wISjv@^we=b;%at)QV1 zEXyhy%V@Yw;EN=j`EPY{udR7-!x|siE?U3F9})OAt%qTC=?2V_JjDx*!khU|*7oFB zSkET}UaaOh3anp+z_Y|p3w=5gp|%f!gjGFIRr|ItLT{$N#64s#WMj>g~0 z+xYQ@ru(_GLXXUO`X<#l?UAPhzDrf390pWTo#+?!@=$u%jmPGsvwO2`Nk5L)*_Qp= zl4RPT4JbqHClq}>fG-Kue@7KEDePO>47^9n5q9d(cw=*YM>RDK^A{9WSYd?~R@gnZ zQu?}-zFq=K`9RKSc|e9+mi0ZgavEgvA<1Q>T1!BEYcXgv6Ob0JzSY`Z;M2|-dJ)KQ z%dozdPX{(_YnIzx6>n*0cdxdp&z*wJ_fM9=ej30M@F3r`)xp87Mq39w%x+1N>832Z zC5L%aDCL`WAHk!~t4nf&qnie}Hz3LMv$n^_DcYGgV+K6g44btq!)C507M zSYd?~HrE=^j()8FL1?BKhW5*Gg~0A_ii*%j^;Sx5Pq6IV7LZTUp26AITGjm7Z)%+e zR6l4OhEcdJD1Y!^_xh=I*0nZujb|UsJ7poT{c)s&k^YtS1?5rjCR9ACX%nhF$)&0S zQRqR$rP^1BBEGJi@exjLQyvWH_kTvtEe}J@1l3Fm0%hjKge&?oK-iz1(=g8+Qgv=f zmtdRnF})1mAxDh{w|uF3=)JYemzvNFlr-5{-Kx+*p^a!gJc-XiBEf2XB}YLRv+4L; zn$<-=nL(h#nK%!B!69YB3_ tHb0xAyxEkYdcr(CfVL6#qwj}kH6&M8SO1vLJ@ffD{0s8l`MAg;002*D7P$Zb literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/cage_monolithless.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/cage_monolithless.schem new file mode 100644 index 0000000000000000000000000000000000000000..b320d25f7a7ea2764fa1409280ee6959cde38982 GIT binary patch literal 530 zcmV+t0`2`DiwFP!00000|GiXEi_|a>o^7_<-L8k=!@Y~I1s{AnDT1D$aN;52JuFhP z?X(S>O-hp5JD>cc{+4yJ*Y0W$Q9LjZlKCdz%$H=67=S^1$t606@Ax$UL@`7?z@RI{ zw$R$xv$fRuCgW8`NVXLUbHhuQX}-z)f>p_Lp{f+QbxF--nM&QENooQyHKM9rq8n6c z$)&}l@lGsytK$xh)KxVgpGn8`UfJ8GxmWfXgOfv^GcF8a0fWa!Y){K_-paygwUYP+ zW%|r>Lk1s?>jZhTH8*zU)%7`*Hm**cX)&?79j14bBpnVEA9%vx`7v-_lXKYlK1$+l z8cZ$O@;BRJ3{H;`tkVj!wGsKof^PxLE>KmjhKND*35^w6d7Ktg25iDN%+c@Wr zlcX#7$2JK9MsaBfhGF`P72YKTBf@M1{*f>q{x{+8+X7DZ$NXA3;RM>4uwV|03$5Kp zzLp42Mx|h%+FCT7L3%09P_eZJm%uKyzgyP#iSKg=-WKq1#D^HB1zl8OIkD^d6YUc&5sSz2_% U&Ud@rcj{l^2fHyxsIHwATsU=`9u$hpXlrwLb{@jOtP;1)KZg0n!MxIrU0lWVYL zniAo~N=f{LMAG9aVQcSR%2!0(V42Z-2tHR#Px5q=TP6jzCssr7!s0r?(}}!N9zwpH zCYI3pC5Ykp;vO$6V&Y}Zel=qD5CrDvS2#%~`UCh(DLux8jMvMYr1f%{`cf$)4F#xiwQhHaQ={sU+jH= z;7b|rIX~96l7AVa|3d`N|8@CvDH)BsC3)ReWrfUJ2zp!R${pxxg=bscEXI^g@FmUs zOS6x9iPo|S$!I@%P;0q+H+E?)Z3IVm(6K^~unu4C?U$@NTU``$KSVG#de79RQ*spC zfiByO8ap@Byfc(+2TgFG`JS-3jCGZ@&WOk;XF4^t@s{ZLpxuJbEB(b!u*51dJ?*PV zE%)}fIEp^Uaq54Hqfc8c%+jbBQ-L%Uj&Z|jLEE^|DX=h$TRp6O7IjV|b4c9Isi+)_$lik9G@rYtB&>}Hkf@0}FFYm)|n52@DOm`8-g?gy^vI~tF zPq=6RQnOT_Za`x$2x04WeVQ!EMvap+#xK8v?nB*B%>&A?RBd0iW15?`p{{=r!0>kF z(lA(HaY2OY=6g6<;j8R~s6Tr|y>}xnW+Z&A;nf?UQ?7^OO*5(KbsL;_A&hVR5vHae zn-TRlFOu*da;QC84&!n;IM6t!p_-#lyU_d?MH!LW==%Elr+R*==Lh@-AWCmHHxB>+ D&4!Lc literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/chain_t.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/chain_t.schem new file mode 100644 index 0000000000000000000000000000000000000000..87ef62c600d333fe5c4252a11a221388edb20f20 GIT binary patch literal 894 zcmV-^1A+V>iwFP!00000|Gih;ZqqOnKC%1XbzApSo&l-XNKC4bU`QZ=m;kYh3WD1> zt+h0+99QkQ;)d7bA-Li#hMhQRO1!pP2bS78$LE~yeCNke8vqy@7bKuk(zj#*0FN3_ zH3AG@CoH5xL40`@Ngh&nAlUHAos%HwQxeHusD#~+3pwsdCG19gmTqU$o=<{^cIQM= z5%AH7dZ~mO)6WX9gyDl7CX$4SsPB^@3r9VT*Bz6;^YLrXfwnaL@FyB-p zPOesJ6mxly8tre{d^#I<E8?Lkv%Di6$U}zPwh5dUmYF z?c2bv?fMlAt);#q3%ccR@v*S`*u(I2Q@|!)R{JW3(_Hn5GW3adpw1A6j@5Uh4jl~d zmxpnK42UXMGL!l?PG&MGeKM5mhf&$+h>ie3c%GRGnV2RV6#WTE&AWsfKoY8{jc%_g=(c}*pAatk@dwIa&` zz{U71%fbRmt3=BtS}-vo8+EiXZO&4!Vno$ghL(J5wOYKb=S&-0@o4U;g;r&))nN8h z9tTOzGVX^K9-C$Dn8#sE$1xCTJ!(e@k7HY^c3Ww^)wUUf6;&!lk%_seiJVGiP-&m& zpVO=nt$nq_YUcLFZPPJ4oKCLyv*UP1P_gN4G6yOa+21_s(2D2&Whj|sG}7&b8&LAp zJ6kqG4!S{`p1OZnNTj-EFd(K)of?$% zd!<5=aGIPX zL#H!gGNoOwd^g|37pXIC+H^Ouf?W@!nfcDo_nrAkBLD``EebM*Zg33%Q3Qh;VDNIm zB_$d&bCndx8y(jCYAO1=1U3WZVu=<-^ zh4XuArP7b2w$I?AQHxw#%s)?&aIF8XsCVY}ok<@scyUCJmOjIo=85%r3|=*hB~aRY zIW17;PQ!_!0|u8(Vr7)1*wvg@;LL~qN0PZI+;$8;ldiau4!4f?#Ph;HFo5ulTa0To zXgy!yo_QX$%x2rl&Dh&x-Vx?)UyZSL9e7Z?*QD=x{g!zh*r_;n^zvFg1@5Q69S(MS zAMmnMyr-~Z-gdvkj*n|!O4^QhJg3~?t5PadO{Z2d|LH|>hRb*U& W&1Un{KELd91HS>O;G*M92LJ#Fza@GA literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/freeroam_empty_street.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/freeroam_empty_street.schem new file mode 100644 index 0000000000000000000000000000000000000000..1f45f4c08fd7c93f5c100b9002f1f8fa19e34550 GIT binary patch literal 2808 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 a`cJ|sIA!5HZEI6u6GS>E;5#Yq1pWkfVrIMm literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/freeroam_graveyard.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/freeroam_graveyard.schem new file mode 100644 index 0000000000000000000000000000000000000000..fc4c5cb73bd39ea709a1294647283cc93d8fc050 GIT binary patch literal 2433 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 HlobC5{yoCT literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom.schem new file mode 100644 index 0000000000000000000000000000000000000000..f87566554614e196f419261d56d9c9786228ea98 GIT binary patch literal 1629 zcmV-j2BP^NiwFP!00000|Lxk#kK05X!0~as*+(|LaOj0foRRjz1+|q{NTo<1f#?Yi z6^h(sl344tSGJdJZ(R99;om3@$!;DVKQeaw%J+j%6MKI7`7!gG8MOl;Ofh(8IWi38 zFV;sP#Iu1oTOBaP!^FOwc%C1;{@{4yn~^meMMp-rwkyZJH4R6$@42Hzi}zD&Y`e2- zX$9fc+;XPZ_jh;FznVt}<+UTH;gxqM-Rr641oG<6dyu}ItiC;1q4XVZHhVnsM|2(M zruevb_Q1Oj=cS~-FvXu)={@UaEBk{i>E6$D?%nnL$9s1cDfH9#ioN)P*-r}Ie8Fdb zTCm?0y!*Z>zI{scI{IB_o=-(#ws33f^K9)cCpwNIR_|!~OJl}X~q36oc2j3pw1kp)D^u+1U(w&8K@yZlu zzezu^J$KR3qZ2<$do~ZnS7+kl&El%xTA?M3zdez}SV}yf8ntKavh6x5XY6CEt#sL; z>lQoLnI5`%Hg{*8uvf4*hkG{>n;!EvLVF+&a4xn189e6_|H%ZEOW5 zR~}{TMg`rEUeq$QrxjMY^z|AU$w)>rmYdMn{h(^3{4d|xD(Pl5OwGU(?Tngn#gzIU zbM>5Z9l>}cBN@rqpo~Qrea-7MPTO#U8->53Ie?60BxBn$W-Tid&ua&^h4%L0Of&Gj zT^kl{jp%Ys9gk!rBN@Ayu^8i`!}G)LU*#SClF3L$G8WC4z2M5dmfQcQQH~DJD=pQ4 zVb$E4Lq;-^u?5Aq`b(@R<3RPVD~-V+Qz|naG9eksnAc9v&yjHzk!LBAYn_uj5M7}6 zGU);xQhn*ru5xARsP~-X`D1 zfb9cHlG1%HwW5G51*)88UEMz4@VSGGWL*FD9!D!m-bgLF)cjPt)kg=~wWek~M8Ym- ze0oE(qUxsr?b)ih4zB^~%UHwev2Mpu=bLbr5YqUj@(=>UyT$uu%H|bOrScNW$m<&@{@rq};Gj z!2mQ3bqQz=#v_13QPmgKhJ`u=;83V9z%io&0LY@K6N(KB)dWBm>I8r)QFDOf5g+gI z4GT2^I3A350NqBF1KKAxZetr3MmEqsj9UOG7j+e=&+ho!-LNn|f%-810HE!(D>+jD z@Wj|255u&Rz)@q;0RS`~vlY5%YgaN%Isr5c1sMQ|`KLCRS(-M1Sl#p5GUyFDHxEebJx!Qo75} zCm)=9xjJk)cXR8zzoIV#aXFDeXuDQud#)*Z_9E0c7boGTJ1M@H*tZkU^Mlv+WOQr! zH_{h|7+TJQ^(lBO9U02#`{mU0$8z%hB7O8tnD4wG`V}+!|AkonE&jRa{WKBJpMFoe zp>MfkIr8mkC=PHBqO^Mut9y7+`8}AW-NVb;?x9zDUwWB-4?WTU-JXPV@#<2X{yLoo bGF<+E@#W{wpZ|$I|116jqjwGZ(~$uHVxb(S literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom_end.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom_end.schem new file mode 100644 index 0000000000000000000000000000000000000000..970c588ab08f9a6bcf1db2cbada204cabe26bf60 GIT binary patch literal 1509 zcmV&WfZa$@rR`Q~rB>am z_M)mRV#YQKfe1*mx$9H()%qyCOpS7m8AAp<9^m^~trBzkahUltgeW5+Trv9Wg)+rz@6~&cNgm>T_OvC6PoDN!(83ia=08-A0PHK zH@e@h2NrEsG&x)QBZ(xE*v-UxoP!SEA6{Gm0~dru5=pF^SU%vYJeGU?rqPUbXI6I} z>ad_&*;{i+B$31x6kqeZXezPb>~HvjkVs#>L*tERgcwWsy!I+_<)A2X+C4EwSY1;s+?wB zeLmmvdk2XmK5qLJQw@b%$uT?7u&fXlJ4@K07am8Gga7Vz!? zs7BpO)NfemSwNW@cPq{Nuf$b>z_-Te`>8#bD9mTkXZZx zQEBU|6RNJ*%yGW%3i0j%D5LI~>i%PMjR)+ojk{HiJF?~&K#p(*3zZrG%%bjg1J@A%^r-5m>J1C^769~6KYNY_ z004Sa^;7kRg?bABdZ?e!L(2iscZxcwc*8=~1kiWXK^R7p1JHMhI;eQVLe&J&cho_& z1#J~TR}|N?;x{bRJ^)=oJp)we9RO@oSeFXluu#DO*oL|U*n|EEU{i|fOVJw^>JWfU zp}qipMg;&+rl3v~ykVi504PJ90ALa|2k4L0{=WK#g_;2L2mKvDw^8MQ_F3t-D{oln z*+BcyZvmiL)Ky@6UiQD2Z&>J`!1mDp0HE!(D>=6S;DPhJKaAJS1bU5|4gkP@+^x_> z&z?#~su_S~D98W+*nm4SOnCBSGA^13l%iMx001-0k2)Bx*uc4eJQ=Ddoa7G!};^S|!0GZH(#mw6*GoW^0C427FWKVNz%hVw+q==S@a)9_N>P4>czh43^TcFFy(QbDZW|S^hs1cfWSLF9tvP;_HX)$tX*_XeuX3Fw4XSjzKhb z4C3w>4vinfps{0kzqMm<8gEPQ*B`?`41W*&Y#~03#qO`OSt_%;4g7a=bMx==>$UhF L7Y+u3E1m%WPb2K) literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom_red.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/lantredom_red.schem new file mode 100644 index 0000000000000000000000000000000000000000..c0078af47d66dd12cd2345f8cc655f3caa6b2977 GIT binary patch literal 1461 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/line_walker.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/line_walker.schem new file mode 100644 index 0000000000000000000000000000000000000000..e016fb2180001396203be7499066eef6f18fc1f1 GIT binary patch literal 534 zcmV+x0_pu9iwFP!00000|Ls=6j?*v@oyJYmP1yr`*fVg>7pznv!6JbKVoz{bK{QP! ziB;E*99P}F@hf~9Kf$$(+iVwFL~hE`7MC`e|M7qrSI8)_sDP zNnhlDne|0?TiSW0ClUJ{@%Iw{ zd>|q?dgkLkM~8f9Ut!%kJ0QXRM>=B7I`=Nbe-PQ_a%@<4yUW22c4Ogom)_k+aj^f# zq7CE-ju%z%g?7?OYGTHM7`i!E#TdfOC}TqqT#mhW2w`c7^s?U_sVTKEs=C6bpLh_% zAm@*Q)abbA3J9cM+UY~rUDpIBt6zi6(+S!!S$;Ynpqk-zb58tiB_0n7V>8O1dwL#$ zxG=u53vLggeQWy=yvpHpwI69`QD>A|Sva@@4e-}AK&#==uQdb^zLz=wVonCods`F@ YIlsYtKL5<^3-_PEH&M|CQ~?YC02g=r9{>OV literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/long_corridor.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/long_corridor.schem new file mode 100644 index 0000000000000000000000000000000000000000..352864a614bba6104c02a99912bf647667a30fbc GIT binary patch literal 1861 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 V)n-QjVb|gD{(1V_#5c!}{R3+Q9u)up literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/party.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/party.schem new file mode 100644 index 0000000000000000000000000000000000000000..447ccb80a20dac757732ebf8587e9e7cff5098ee GIT binary patch literal 1576 zcmV+@2G{u?iwFP!00000|LvX4Zrer>$A_Y5$#VP=$99~gMFL-X@ug{dabXnsD3Aax z>Lx*pAP9(+xRMA{Ty?ps;uZz^aD9ZLuaoYQ5=Ds=X^EmOM>B?Kaeq6zvorIj;S*~B zI@HdHLxrF}k`Dmzpazw}fDV1j?pTa*@1*Xq#<@varW`Rlwo4nFG=*t%=9+58yC!Ma zZtIj1PaL<2(>(2UyObZdig_(%^Q-lUwzPi3U_sQJzAmV5YIEa#HH_4jHiP4=&|oTh{9vN z@Ox~%<31husFm;Na4~acf=K<;IO_O=)Ns4io;5dXI($AlnWI)PTbx{&4dymD6;#f- zr^C--jKB2=7k`X};~#g%N~yi~bl8iWy+_R^sdKv_k)gw#5J{&Ixi15bI1!aFw_#IP zjONHr+z;pU+qQ_TT+?B5bYNn0Iabl(n|OnG4ynHr7hQTBv&P=SfsFa|C@`hm%M`+fvVCd-y%$$y;a20-HL#N)yyv`c?~XU0$h|&VgEY zW2_v3q9WzcFZX~Ac2CU6PE@f$xkJTjm(SMarJ^=H$kq8do9GslVC@I$wnQ5q>QMQG za?fV2YHkT$P!&BqtibwH71(nk2!JpF4GrznH7(5$BSu^_Mgb#6e1kCx7%}1-j8VXO zacL?p>61TWI7Ulzd8_YbWy#*^CXUC}%;&95_b%ex$u=i8jCAh|oNMm|;iVDq+H_n| zmWZp>^_mtz;mjx=S|-+J^sWYbCLT=E>Uw3;ionBdH>TjhCuMOT-%9r0O!Xe_y>&I` z4s$*%cS1Xiok}XyNWs$5ux3oh%ElI-YO5mP?de!$Y$p**kS5>&PtfC7zKO{k*n(x7ZmYo;fzi#45NS% zBSryVL*(kZ#05pXS~#Oq3&SX2#E4PA*ATh7E^$E-uNKbe)WR?d7%^fL@HIrPu1j1{ z#H)ofI<+v20!EA&1$+&WtLqXM6!B`|j7}{Kqks`3Mgd<#7%}1- zj8VXd5#L~phKBaZ+B$6duN(c|6}GUcSCeCFH7Hv|kQx{b<}hx6&Z(tl8(_3JrEc)O ztlr=}7$#1)O}_hE-qc{jqMoo_B5dYXp{!nx3kTtASG&EsV>isM+>{E?;1+TEmYY?JVy=KV#~p#k%}#`FqLlRVcl*B5P7taN;(o$?c|q1%|If$@X1` z=hzMRv@Nqk_&MdXo#FoA4BP2v81va3`0T8M@lw!^U!{@;<<|}qn^ix?{m3h>d53Y+ z6U4PNFrKlVD>N9)J_u&tjlA2J+k(^`YStM$59ilF7o;Wk>yj4rs{Vep7f;U4-r_}G zw4J9fU%h$p{K;GV9sE`jQ4PI4@t*9sg4g7yTvd%G)d7b8ZfSY@hJFxV!^WRSLVh_q zIXe1lF!&XG77luC)^jZP3-PEFDF)3p>B;rRWGeB z;<=$M?76Ww$XsQH=f>f{=P=B6xp6_<^kgRtK8CGu@D;UYN@@v=Uu{dh@_GZ-erh&7 a`Opud`}gC=kN?QefABwxd&?tAf&c*g=@do) literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/random_arrow_chance.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/random_arrow_chance.schem new file mode 100644 index 0000000000000000000000000000000000000000..127b4bc83d196b32b644a3da82560348567d5ee7 GIT binary patch literal 1348 zcmV-K1-tqmiwFP!00000|Lt2#ZyPrd9*L6Hmi$QU*opH1QeS$}ArA*A0_c*YXwwH8 zv_W$aiY=oZtq85i1xY~`ivGV|`kPX6cO~uGlH9Bfq>cF*vb6k$A7_Tc5n#|w00PZ7 zG(xTMM|uhX51Qa*0|Xw87{{KZef?Z%)*DX!m?Y(WZ^)!MU1@D zr;);TEG8(;qUqCwYLt-(!`X;keTTqz3#W~-br<~!lh{S7bcdVAHWyM4I*J9EX6I2` ziSca6dXv~$!CM4QFA9fA!3*&u`e{Is)z1Qou>Y~~Y!G-|BA&-jvw+5NF`TW-Vl|wT7f_gY0aI{d;REDU# zSv6XI_aiDf=ll7SK6CvBfv*;VX`}N8NQ3UYzqQrC=w%-3X^fq;E!yeLOE!vp=PS`D zwo7j1>f>{lz^#R1TKp3sB13tFuZDmrGr$G^Q899TIrDm^z^{HjPBFkawlfR5QUl&z5i9K7qq|&;qB$zonnEy`n<&VJ6yy1yaKKY zM|bb7-O(+=Nudy92^`R92^`Rt^%8|o!qzknro&Rs-_vMHK7(z zO`A~fiAcyg5Q%}cu0uVPh&=sVdmoK48>Ue_powA=S^+A}cyf)9K$Y34l?|xbJE*WX zzaPi~e?;XFB~)OGMiV+!uP{Q5=DF1uvWLM-yS#Y<@@c6=okM;hMossK3@YN=jt20<~Wv zp$%g*a+tgO%wl_&lu9Wk6{x=yW3KB>Aex37(0C(k8sYZBJ`z0iCrF1Jm02>=t(4Q< z%l`|AOz)b`B&+2l?-V4hvjZweNy;-}Qcn2ZnH)$Ak)urNY_45PwRdw@_6wpjyZV&{ zhcwCu*C;1^a3;7|FqI3-yPC35k(d<9W}}?$-E(PB6LTU`>GaU-FS$W(Pxd#)1(UD0 zc&aOfW3!hXo2?DIsyX;ji`WRwleIm8)*r{(d^mo7eEerN_;lIe6F8a=zLnF5Q!$ng zqj7Ke#oXlanR(XVom@yPe2k?_@zM5JD#a;-~7swM7f}j-?6nmu?BFl95 zY%*lK8)m1Zz4PsSEZu2iYGRXVNyp44|0#s-{PyGQ&iRuI00X?5xzT7uV z#F>&&DV=~Ow!(5TnyYKVk5yMIpjUrgU6`w9k>pI@R#-0T!K{{JA(fe0tLk+Zvk}mX zg{o)O)&e@bt+vp4#-X86QDVLPX?^5upoer6Q2Pt3Lgtx~65g|^g^t>^_r~1PiO_;b zhlGKFvAv_VYJkCD*Ngyz!4+l%7!0m3BfwkB_4)C*?6h+5{khr!4(=K|!j{MK&pGPz z+*sh|gO0|MEb`KU0Iy(=7t}dh9*Zr4tp#pB=x8j-A}<{X@Cx>LL7lVZu~;Lx9%D%s zci~xHQLEM;sZ0S^Ii~zgg?d?>TT;Zo?=~QQo059X}ewS?R-^e~! zZs}BKT37bxY7akc)ho`Q#Z&yS8nN4XN&;5VUJ_rF<1DhSvu7j zBfuMBpTA4i;;p?g1lR?8yr3=_{|EMuEuHF&5nwPF0p396=F{T^1@9JHI@K8?z+f-} zyn)Kir^gEl-YvFtsxwA_!C(Y<1C^Ukj~5iYTWsl6XI$+7gTXt_2rw92VMc(#;0iMW z3XUa z@N`#ENS4M5GgORh)3j zn#=9|Bv%o~Z_VY)EecL^^9t4A`uygCL{B?Z{}9vR?0lSQC9;S^B@;~!?xFT*_we$5 l_fV(iR~ehv#qLwfu~Z7hMgydLUc6ZNylC=G`FZfcE;-5cyqb_a6;iv+PD{gLehWmd6?+|DnJfG zLHXwWFrQOXr_R}+PevQfE}0){I2jpgX;UoUX*~Pm$+z71^f$j)u?eUXq4Ll3-hfl2+X3_V;Xq-Q@Z@_i)o`HM)Wfk_B%g6dV= zfu@f?mvavi!mJIw$b_sOC(h(Fvav`o%V7xokKoA7Alorg6wW13^6A}l)W_79xjkh? ze>|wMyDu5BJtGv>;b@ITahK<15%2TLI?R!;MabPLla<7OH5UD$Bj2>nN5YxVK!SG5 z{hiP-`NN8yLmp5^QFXj-Wd=9!P!7vnmls!7=D#>)2g-VxYo>Eel4@(lU!C%i{D7;@ zD8FExw?0d}#9IG5 zIf>%RG3Tz$4SKZGDWZUM!eEKPi+;E(KXT8a_c8v<6Dj8UFhqKijY|p{QY{ZjnS?D3 z6zAD2U7HUDlUC$$9CiGSBx>MEt%fLLpKrCqmnpIWf81ef z4uyjv(C1#;f!Z&oSXm%P@6HpSt;ee$#CYmYk%Vb`A+roq?>x?X-plWqKpa8x_>D?+ zB_dc=fh~@z(d3o>L)~Zhovsc|#?sUVd+%m12yZ_Qt*Q3l z9D~1MU;?m2%)lkosdFfF^_U7fee7@yl0VwWVBs(?AGF+2!~fj4%H`%~1C)qoB{$uw zBe3fP=P(*x1JB`mBM*DAHQaNz?}^-L{xKFov^Bpu=Re(j4|aW~MX*;=iQ&y)IMV@5 ze@t@N4+NyZisKJV$*)%$Lg+&4v8x#)^UX7bU|(on-|TbmbyWsE|8SnaSy!EtYcMdE#d%tM?Y}mRq-ex-^ z(o+0R$-2lBc1L`d>{#VHA?}oM@p%q&n|uYWir~CLsRU|0g&~Mq|6v|u(pAg=tr5EDnw-r*ENq(u$wV49(as57m;*!k3`+D zeIt9w=E(8&K~hsxmu)qscxKyS9)2EF$wn=FYC?ZY*~n(Pzv!cmqwsrx)_Jt+_o%VS zk?WpaBdbL9iSkThKnZd4&6EUZ-o_(IFCgxFstjq{478FSg~Pbn0J9GGl8r*pgdoO9 zM1>mOvik$(H_cRDgZ2oVneSp9qc6m|8JMLGJrI1O73b9Pa(|GLoVrLOg-i}j!kf!C zRBRrGI}~UIzuDqDWMV{_vrfcB(pyvf$9pXNid;Da_~RQYst7v8`)7r<8NKl+qPqW*?M#M z-JKro3p?pA+gcPtalbkN^(~@3KaN+beWUfL?B@W!(Hvc59Et+akc}atLnz4duCLO7 zxW@|A>Thk4l9QjhsoJtw9_)Ti{lyh&A<>68vt&kO-L6g)nX=#th4u!C;jGO%P z6se%_TY#iAz3mj)RxBKIQ^n@vI9j6OUPLD;QCa*?ESTn?r;1PaqcNj|j7{uVb6~BY zUYRU&$NwZdfxTSXrDAi1M0Oj#s^Wfdo}H7f>?2v%S9*;zm$g;#Krp=jlC(dmZ#{Wq zggL|UzTYNAXwKIuj^RWc&wt$j$T+cEdokkY^hhL5M$2hgi#JdmyE#s)r#?WgePl5(ZM;~&O%O3q_nXI>Vf7M5| zowNzaR@(X-TfrKrm1f+b@&I*&Nh3a_pipP*!ddBtdD)#n3j+gT2X3FCX7@(oW=pe} zf9Mns@USK&6Y5owU~y)$-?jXE`l@&=?&lkta*vXkiRwWMLG|kp#>558;6d?*xP&1| zIoQD6mmo?6U$BB$59}7-BnX+tJ&FPys~C8tK&y+N-uuk*c!qCEr;h!B!?{p^jKA_d z;;(}BJtC|uKT&1OS9mI*LHNy;`v-%0*}y*Nws!cn-+zrucri;wK&Zz16M&J~WU-_CWxsY_FJO=`j( z=#{=kbGqXxG)Z3aG1}qsgzW913wXwg?9@YZAL>{|1%u`OeE9x=Ox~FVu1WxctY&kL z7erY1w(DOiJwhquRlMjlwF@c8ZZNF5HPY#F33=Jas2;I&XLj8cJ-t^6LBl90Jh0<* zo2eOoMswfF!~p*^)kYpxD}4nkV~^a#M&Ny^lo`Z?mB)MQhIZDJdal;GF5UVc+B8s# z=Awl-UsQ^!z3i$&3^F6j$GbyMxz{Da-&?s|a0SqUi-v-pzvvcKjOKn*Y3s4e*JFac3)n{u?+qv^C)@DZNOk?gtru=IHX zrP*o=j7YQ_OM^KEH{dx9#Z_?@B><3?&wH$cA;{irTVIQH9Ysx~9 z$63oIH7gyBa!veHW&2IUwIX2m<}0!0PNR{35+2cQZ$mAywaZ33D8P=y#fM|Zpr*(= z6=MB@Ix0MB5Kv8wwyj^;Rp+bc4|2=DvWZ@1w1?RG#*y{VLO>eGhKv42mmLGZlEB(3 zHony#aEr<@YbM?~A-g(PS-9OOo0aHZ0blUVZfzFe9lHGLF@*h>MnZ&Hm!7+#J&Nc# z50|7n!7RdW-Nz!; zE>ep%+vKFDgsM(r+tHdi-+FmiPTf0q{QJMWo5Y|ORwp! z4SRb1IisskWFzYo_>B>T?@FqU=6Nj3Cak?1oFklQz2Y45g(fS?a$^7Ht@R8PGyy># z-$5h34SB%wZXie@M{}%efKQ;WYZ+)0S5K`0BU&w^)85*sT;Ru<*KEjvj^E6$7MeLU ztz?$p+Cg@@m0HS{FXMyAf!(5py`fy0vV~+s7f!!KvYW`_}f0(U~GKI;YP-PCw z{qFO6zI8Sz27$;RbQdvExrA;j_=4TN@RYnrUAu?oySEHWs-nJWdQv!jOK^x8P4lHy zIIibdH#iSZ@gM4uHF5yXie{f773@=*!N%;AVz&6NP(sRu3e4a}t0_eAuxA;tKRn|8 zf^(*#@GRLl!MWx~y&`qgNdzI|g2G8CrifyWeP?uQiy-KBDSc1V-WcoXKT58ss1Q%E z>FLOQNG-8 zJNYVmNBoQQ5(@|UDQWR;_GaD5*gMp5=XX=rJdOdpOi(?BD5_h3I96q>bOZZraLs3r zfx31tC;M*1%PNRhs=p?80H2J&mjiWC3$vJtt@V>S_@14*RSO6`1QutnhPbuKJ%jTg znWdZ?2+$LSn~FnYowD-5z|ecijX#hRc7KQ|P2qFVmbtHqV)2JhCuZ*8Kz|sCO+V-) z9h7cn%ZCq}ij>Z6H-em(s-&Zc{fyZ;=Au4iSI|(UkS4=8Oc&xm{!11@dI5gYIVwpK zpr1nu`SvhU#)5dLT7b;zH;zWs*6|4?o7uRwyX)0a=c5!}FO%0}w?xe+}R3FB>jl&bDf|LCg>-T#AY9x$9>f&6i zZi!3(YXIV`y12Zl&~HlV4-^1%>FUfg3XD4MP4UV5v?X0oeE^WplV&3a1uc%j4W=NSE3&lfzi>hHoBg^5cFa|)BiT60EGWhaA^O@-rLkf!Wq_+fMSK1lwN1WO{g|f0PW_yaW04 zeZtTMua+0`XaDgNeq|mCBOXTu_Q+4{)$c7)JzROfE6xA5)~N8RXmP`ter3PJy=Cm4 zDoPw~*>`{(XFnZ;Z>#t_F->b-d|8Yx@CWO|wz1u%p9g&Stt)GdAuZ`lmY8{k-UG)h zk;9{1!&Z+`7{~V7X}ZfCzNPHsnFQ7PRv!uIWwk!G$wuOO*Zjek<nX`ZaMkNSc=AS-|YPxOl) ze{JoQ9UBwQ$G7q?N1o?S4M?wgkxW`?r(JHxI(2{T7Zo1mIw@i}85utvHzDJzL~L)* zV8uGzj&1utfkdhegdB(Z?g&vjM);Ah=yWqWU)kgeQWbyhch{a9oqY*G(}X3?pJ+xf z8-)jpcvg31Ts%(EqRLos;Agu`U69Ki0v&}Nan!EmXsYhj&(95Dw^!vpe<9+t@{r}! zwY07-FE7J?17u7qUtDX48JNBLoClE81;#E(#!d3H>{t9h3}H@3997z4U>9wh1-el& zcoa*bI=|qxBX)C^;Ke3f#eHKP;c+z>y?<@PvbAJ^oIL(2NjyQd!Fs(8`&qFMf%^aK z^A89`K$1e5|Dw{017WvP{>zDhmc6P;%v$1W7h;sU^I2_&FW&`$zy>3qqjDD+A|pOW z4#9bFsbRVu?CVEB9=p70DRCVi51cF;fzD1n=T0NC;7MJ1>ye z(+M+V-AKeTBrC}z$>%M|{DbsgKdnygJx#*vk;$27N}t!f2E#;71L%<>lg8$bK#-$- z52?eb4wJqbg|W``^ahhnujj3%7qgtN%YS{_diN0*EGM@}i&x`t+^(LFb#3ySA479I zplyxP;=Jrgdr~IL1ZkGy9Zh!nNmVV*|Lpo%7n%) zgb=a}MmY>-jAaJdGnyH@w>o`zuj~EretAE>zc0`I<+-l^|9?Nvb3fvVCw}?C;p&8A z0PVxM<6lm9->q0}k$kfPt)|{-vPiftICj?SRPYh3ZZ?O)P?27aG@s$6p)-D`G7L~J zYBn5O_40SJcIvd7iAmTjrzVX0fsAi&QM3q8iK=Q`u*S(k_f4{w*aC8I;j@f>4^g8x zyakmaUhbI~mSPCm&M}6EYbV!$>^o`l$)4V!@bl)LiJLTolz9OofscDDTWYLg*liuc#ue2+^|<8&c;*{$8q$CoKYHpfVrSkKnLc0sG+}I49}Ct zXCFLHX`Kpf-Te9%x{I0Fc zmMTlsLF{&9WS*gYs1?gSuQ_S>K94L?8RKN0Dmg&S9mMv|X*rmAZb*pd8{ih9`U%Mr z$xX#$RaNGfq`*yn9t7yJh7^!u%aSz@aIs>TFlfU_l}1qS`Cf9)TANNWT|l%yW04t) z`G^b-PnoK$v5nlE;AiEgxCpayq)983MZ|u;O4HPb^{0~+fbD0%c4OFmVmFk~u-^ka zXg!&_5$V$wUU$T}Y|)LvltJVk|Q4prf^bZg(%l;zk!ULHKE+ZE5Y9;jWGN!uGy7_rSAo+mrt=%n(g zU~-v2+TLm?WV+ZfS$2HnO+WRN{JUerl~JC#Gkub>V?B)Nw|mv*v;np$4bB^#tad0J(~-U#_v6;K3{co1`#c=5LrM>$Zsk)M?VPX_+OmjtZtk>fvLqyM99brjqBTPW}g z-$Sgf@?qFBMiTVt>TzICcgGGAFvF;6MKcbEL77GXtD9lj@u zqadw|>O&@2@ji{_U+@*_A3+cG1RtrTy$Nj&+rAftk1sU}Hs^j8WGRkPARTXjG+UTP zI7^2pRZNxC#Cp&#iX7b+DlzoxM|jMo%T?bRP}|7Y!ZRLBoT^Aj^`XBH7Pv`@ z+!-;Lm`po*ZAQolFLi{RJ6K7STs?m-pme&x|0J~P6_OCXA`F58vXWDmcYsS)C zTQ#n37}<=$qy7SJc7Iz*m(zKlaB`)qs@%I#(0jAg{e|y4xy=;MEiTY+^JrZK{b07% zgjd6&{^OlRz*3u3(BF(r}SqL;-f*sMVhNX#nbyq zr}ndE*e{}FQu=~2!lXV1vEzU`eI*D}jzVT-1LPB^DhAwV^#*8t>a(e0~^d*f6+YHS%7qT^!`$&3PolJ-HHzKePwl~ z)*!a+p{;to6E{gLGCAa=yk_zKiDx+n$Fms%=nBCwhD*Qz^W?}um0crtSkq`Cc4)^? z(Er#7KR)AEVJ=5=PLq&}{-#;ilnzb&2J&ya5|}Wh?QhLsXzx2UbdYXC{FR==m0l;j z{EOxOBIq6AK@V%gV@cw+hfw8Ik$3FzbMEqfCwlIywM{S8#;YbHTh9}@Q8@<%hu7-`d~_m zE;Q=T8mJ#O^MJfOvgEP<_eS_tWCajVABxA*Sj$UscZm&lB8ur$U{sj}XF`dIN8{jv zv(3GOt)1k}ER@QadoJm>Nt-8%N7D1N^DbZSc6 z42~BcH!JQ+uh)qf)L+`EL9g4LRwLT1B(}$xdz|3xn{@J>QgDGuDYeYpAvV8ypV4G1 z;va>${>%bV?tk^<3%$F^gVaKWh25a5Q(Ycm%zG+m>7+x7hx7?PiZoi+MM0Kr!C_uk z8^BK?sX=jM__-7HWd;S&?wc?`|2i}sKqb$4eub-#m&`B0<%nf|9q_`jlITf~GUFJxrMW$)xfV!sq0X5FUSvki$7g^Z}qa5QP zBAf~Fj&xcaoIrjgE=(_sSVl|55+TPZ_t#;`=l7)8UhVA0Zt^;C%Zb;oJG-qaBz}q^ z9|~>=3HxAKklA1-dyF?af9n!^D`uTrYpZ4cr#a`Bf?D5c0M_#owYbjmvoCkGwSQ-_ z@!z)ceq(JA-=T`;=;~}SQT}IUA%5P;HJb#~gYPs2{e0CcthhzKL&5yi9+B=g{ev}% zHi!neWkxAG`|FQshgkT(lpT^#3L;iu$G_pZ(Cqy>j&qyn`bwd2J*OgEK} pO76L83@G(1D=?;&AQ1apJDwqaR`ZAOui^}sjc%<7Y~hh#{sl>#JJA3D literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_caged_warps.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_caged_warps.schem new file mode 100644 index 0000000000000000000000000000000000000000..b5e8337e9c088d15481fdc79f4f4982e29c2ce13 GIT binary patch literal 2859 zcmaKuXE+-Q7snN~Zc(*MsZp_MRqWoPG*zKO5G$n(Em0~~lc?T%t)OPrig9bzj8(N_ z1){y%l8ZKIr=kc48Jlrii+`2Gfpup;0ekAEoukNQ8{-ofiU)iX?Z8?X2s%w&M z$Uuz2X!q)l)#V->IxXW)1gWh|)h(t5o?;TV!xVeF{_Uq~!(G1iAwPd9Ay^GkRzyo} zLLgCPk#>K6ar4DBi#ogpXVu5^0%Qa<;@t>C;IQFLzQNiH@(cE^PVC;6a5}_ znGSPO9*hE>=ChY3JUAwhL?2bdma=fMvdX+e{Wj^<)&M!mInBnBy7$1~L4c z^Arz7XB$k?7aKg3AEd32uwdAs_DAw0grJe*eQMQZ%wK7#Gjr&0?dkhRdZiugt#)N0Jn<%X_ha$JRS;<&E|k zAEnf(B!rK8{8&SL>6U3DG|kj;S!8V%YKCVuyx0j{T(t9rMeOcC*h_mhGAVX(Nte$0 zcVx7c7sPKk)qUwKm{e(oe#-ne%z}%OK_wbTpqzcEkTTMA+J80;$f39rr`m3*IM2#* zP@TIMD?;xotji@FZ=gZN+tgR_p9Nl%HTc`+FR)vk8*MFRx8&k<*`QzV_|T^pIV+y)C>&nZHq+ThmnYG zTNctqwhMKwx;hJaR~C4{L$@pKDeP9Cu%~QFU2iR04|Y^vc{4pJF+c)3#RiH%V*|N= zK?!b6Y;hmgF%twh*`%$#D5m=&s?;j@? zfc^eVM$5wnci~uMW2?)HiNMvcTVG00p(e|sTZ#s4pv>oOB(ml%6N6!QVe0&B8Cq)y zmkdD~=ZdxMKXV)8+=)Q(m3ZwKAE3NOdwURQQhd34QgdYdZCXC8j8hn=;kaM!@}k@l z&offMK}c2YlFo$q?JKqroE{j(%@NonC)lg&b@S`N9;8``3f`N+^luN!|2kGK?fyf# zf*m$Pv8kx^Ecj@J+hy7{fwz7i4@}c#7v~26#U!NJktHtzY^wtPFamkdWvR47n>I7B`C_DY( z{$koiOqnpc=8Lb*Pk;Qi64-Bt7lV_j1u>nlQv=6H0lO4R?D;LEW~=`L8E^NlwFK^v zW@u`;gBjk=90>E)f36!p3AVhWnp{W{Og0st%&+xxt_dav-tF5D!3ZX$LPF8(-A-8nd&oRs{bX`AHx~_;z;TK@zhuBM?b$P$d;U;*zL|JCz+eS&P`%9&u z;p%dMG8WB`nBc6FLznA6?dBK1UG)zQSXH$M8h(hOU>o4A)c&Rz8b?5i5;k1ldZtyV zYlg@`!$S!5hh?^AQ&Cr=BzaXm4lcCLFU!pxt4IVA(%e1Id`&g$eX9&oFfP(g?XxWV zTf8ZLPw+JJqC_C0&B{zk>&(fL*IZ86s79YM?8(44aWt@MaOo;C>K8NXHH$MnbIAGX z-cDQ!@QwB`{8et}y^E}d+C%-ilxt_S_7&hOh3EfR8@%xSx4jk;&5FlPrfPo$LY4iW zTl9a*sC}Gs-RX;bOkPnHC;0scuzA9>ro825^=AizD{J{(!S9Z2=iJI&-`O0mVi?#B z<&2W!r}s^hZ%?n3eWo8NYPu?e-#;2S9+Fshe&py5wA!qcjAJ+e*6vMi$02S&ICm!l zM6>!}M|Vs<$p;g)hVEJJNzPCg1()D!ZTE&?m>mAE9f*3a8q&E8{3=)&Jx+eRX zxOPFByMRoBw8H>gOIAltuMr}oyTFbIh%2SmI(_Cg(t%9zAzteczS6o@Oy@!Obf`;a zeAR~r-=7A-{tG+9s$K>fp7?-+95iynB%k|c=^mY~9Sc=UWI({YKkBYD5E03 zgx%DHgUoi)DS6k@bNaU4R)Z`$YQ=iD3$5y9S2%mmV=sUS?lX&ujc>d7)_<-~Bsm8jbUayoZiyNfxeWA@ z8}!gei&jbJOWKxP=^gWTwHF<)Ar3_ERtGs})Y2%nm^AqV)LwwFB^|XxgkZD7OtVcq z13De}b!^r?lqH|;S4AY|=JD@16`08pZ(n$<7Hg!zuV$3@@?^@Vi(kbZt%ye7z>M93 zN++nLfNU(o)u3=t;`HA)ZKSy)t71E^4livoiSBnXnblqPwO&0p2})XHorYZK02N5b zz7|4faOj2Odu?#LL#)2}Y2A7DIb^Cf7umxo#LEV6^yo^==LVqE*p_MSQV|} zr)dCAth`KK68}y(@EjHk*AFR9g3)IsG+uGc3IBPr5-y>XcG?LqD(3T05AASz${mhd zJ?}auydZRQNWRqgNn414nTbGLE`1@-yh}EzrsJF!$2wc2@kw{GLU4k_$C;R(Y&Knn z`U5N3BUeeT+Pf{bcxb=z>1s>8eU68m(pbx$5qHrI%3Ugw%SWhu*cM?RwV=pHb8%^Y zCI7{z=2WHmg&Z?TUV5BNCV!{uvlcyMs|yvh0fzTP;YN}<6wjN+cS#~++uB`n(Rng_ zJh?Q4z~`{Wi;lj$%qeVWu00*=hbJH84lgfLCAF&Z*@)L)d1Dg)}K zEPgll7Beb2G>Q{sOwCJ*tRi?VB-#>v%`*_PJALz5`a%2epA_EhcEkLyzvP{jixg8O zofM9m`$c6H`ZP3PXS$a4EEE=0Rjubri>IVnB^RbQ0Tvc7qpVj}uCOD9)uVHN1Nx49 z_1Vnt%~qd}AP-gnz_+}zB0|odpGD-)zV@roLiIh%U~wXPZ=IbUik7OTKRaS#`WL2! Bo&Ep- literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_camp_station.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_camp_station.schem new file mode 100644 index 0000000000000000000000000000000000000000..afeaf50ede744a1c6dda771f3b73300aa212b864 GIT binary patch literal 988 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 R5C8rH{{j0^_=$cT002NpP*MN@ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_diamond_tnt_trap_b.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_diamond_tnt_trap_b.schem new file mode 100644 index 0000000000000000000000000000000000000000..a9f3f6ec4e0360429d902c46404f21bd0c37793f GIT binary patch literal 1193 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_fire_charge_timing.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_fire_charge_timing.schem new file mode 100644 index 0000000000000000000000000000000000000000..4595f7bfee93c9ee45e2a5d99c88ad7e6aea4fe9 GIT binary patch literal 2061 zcmYk6dpHw%7{{Z7$mQgEM7o#|8;R(|sE$iCX=IF6)Ka;um|fgDJ!QvI$#E%{brRz+ zqlwKzOLEC=Ew>44T}X0 zs5rjUI=KYEeCf}&37;wa6M{*UhU_iB0^I||(CR_Yzg{rCL$mpFTL<8vZr371OcE0Y zHqw<1?t}INlasT!a$_?0-j@=BK z9f+g1w91v2&)GxEuz;AZ@o??#&q+H=5y}b*1)NbtXQ`lxfIaj_=XSQ9$IZ%hsruaw zBQwK~12(QBY8UY`Yjw?Mo|~iIsOfh`*eCvOjO`#S-Z;{j=9(3KINN3>S?wo_r~$bT z!=!vnW^O(NCL4DsjP_|1*fVRndak>wKiImuvLgys^=$8eJFM%r$I8|#9owcF{pBZQ zNbP`510CL}_Jis-D6!5sQQjOfwx|w=&b>yQ4jA*HW*nt!eGAhoi17!ZKVMrLf*HgF zSrXoH>c^^mLgWA^UNC(W8vUBpW3D5jJJm0}SXl?Eu*^bM;^N4a3rFIgwD)aOi#X+L zNy;nK<~_D5fgNc$OA83~PpDEIIv4H!JEW;)`zTY3uzds{-5s|=@uiB#$4q-Z`=%jA z3We_ppYg$}g1SNj?M{d((eNW4HcVIQ`;1py(Q{!${xYFL)y21}3o1_abeK|>0M7R= z_s6!r4(k;}PFh&%C++@1N%64Eev0LjX!q*t_qg*4z|un%y4H^}dfIB+MqKkLmo;74 zA-E%W&m>{_zJu^vxR6Nl?fwjKD1PbcI>op7DkYqXUoKJ&Us3K zZKW52X)#|ET$j5jpENjMY@)_HJEbNJj?Iq?!s(=Oc+{{rE>SnnyS+ohy&2Hz@@SDG z6rRsG-NrD_JL@oBDN+~2xoWYXH8g--78cYhbia$8 zNL}&|&%r%h=J1@lcH+H}3#}O6nxna-z);`rfzyYR;%kIKv*l~3kFl#Ch!*#I`>eFf zXGTh`f5i@W7BL9CHrHwP&IQ93Au^`DJ+Jdr3RbEnumR)An|WVlT|hz_w2^Wu4vqD@ zO|J0sDlXCs$zt9nrHQz`n3=BFzV7% zZ?{U7l(wRz1Mdh)o(I4u=k&<9t8AK1u<_-xfUm}GI5t1=5;Ll7*Xsp!Gl;QNNlgBYpho_@x7 zqvkq3YclOXzq7D^260nviG55Y{d$GP@VX!{>>+CyiN;?q{ryCcHXP?>N$&I3G*v>x z%XS2rsj$+$bA-97&g=4}a1Rkf%gARU2@@=GDx{k@zUUe$(>FD$k&k+{s!X6#{i)lT z@IEG7E2084a;+wnvKU^{ZPE)@aX{r)-$G>q_32l7Gy6eme&`Twnqy1%FeaY+>|#p- z5KiCEpuE-G<>wT_DYIe%B^C7JAsia=ttQYfrSAaEu`zvzUwH^5tS15ZEBzk#88SG$ z%Kb;hzw-Z!O(b?Tt`e*inE2qo9ATWd?~-)q8Avcl(tUQvk5KeYud&-CG?WOpN-!88!TOumi;%(S0C97m6Y0lc!I2j@)MUu zdFKNI?O}wque}$N>CP7qpR@k9p{r=KE4vizSkkGys&D_Fm0jvhdS7xvbcKD)ih#Ak T-YI0U>UQ5Y|70QHZQ1e<(la_U literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_items4life.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_items4life.schem new file mode 100644 index 0000000000000000000000000000000000000000..ad09540560c4d596fd3dac5ab12d64ab603b9957 GIT binary patch literal 3475 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

rS^kD_GS~y!;EV#zN4Nuh$ux+hQhbAd7^fyUY zwXbN*y&V+>r5)|03hyf2ud8Zj+Z6E~3&ao&N{rcR8Z>W%6-H`*SykcFeag{8B z1I!^rVeH-Q2%DT25<#D$l|=a>Q+^~|Q2NvxO$)6SgwjrG%Q9);VOYPCoTcHKp3_p> z^*_q}+!a4(WoSjA)HzcwVo)pZyE;@9Yr>$NwtG`l0uietOYQc9<&9tbae?!;z5mr-HiRC@xufRG`#KV?0z%`jZ+FxnDmb<3O+}!#aywdQ9*qfUizatPWIG0 z<}^XUmp%aa_#z6;JMF5DaK5b`v^2_To->?|m4VH?!Oui4jqoh~0bCC4u0rR>o z7Kh5|U+xI>HY;)SV@{hqY=H#L5Oq(4ZXt@e{td~z?W)@o+q@|nE zbX$T5*YOjBoS+mo!twG(8y_rRDG9X}E}Uuvqh@tshKSMiI|UtCvRlhc@7jsA%jbh4#4R_SlRQwYu>F%1u=mJ~!G8QihdZs}f? zJBSVUv|~BD(&mrNt%V{j>hmJ)?lfM>T*}U@2^*L5zvZPSR#GkbK795xZVgA+SSD`j zx%;y}zX`0_WFL()rU~QcqHO;-+W;Q0{i- z^z&s#$tI>9*OUgklbhP7z3&KsAI6()s7>=G%gT2YzQpdIBbE9G`bQeGu=f&~qYd(P z!u|gyxJX`7jgVHjlkBN3%ku^ zpXxT@ILp|jXfNp^gZ(UjPbR)+q9}vrMCv^PnUgYqV>B0Eb}bP4C3;G~k?t#cupGiy z!cqOk&tK||VOF*yH)kmOQe>$S&CWly29EGut(o*D-P9Jx?TGK$-vTE8*f-|+=d%89 zW;Q;I0=Nhf(!snVx#m@lzajXzo&O_k0IHKFE1NDv#K0Sdz2}XwdDcO#I~vON1rKri)QvOSw` z>Ag?sBTVB720vbeTu7C$gtF`;%7K*tN{AC}2KAokR zRj8nYEB3f=jL8z8ZP&*rfB)l3#_D3H4)Sb)IA{QmW}(dy1~Fl(rn-NnT)`O7$jMP` z--K7${_ftS{ds_GFiFxDmu5LcWk5n|ByE2_^uBDyiAuBiOr@zi>upwiRE8;CR!rHG zg+9yNbyF@xxp=KzlqNdXPC;%Fot8q2)Q0aPo>9k8MKivYB-gY^#)Elidcq#bGvX4y zSX17re7AsM)&w)2~*D+lf;A zibw7qcYYcch#1-gSnj;K6Mdn{MpP>fm1a$8fS9Z;CB%NE+db>pdA~7g9J9;*Jj!QR zZ1mPA3;V)?^F-LfiOq{jqvxPDfF(=U;#SY1phI}=WR3__Kv45eyeM^|iyD2k|yc^^l=3u<{^Ke(BMXGO>1qp?#cw8qdxW{Q9o|s|5 zddVtv--Rb7lsU1Rxf!I(t5*Y|MR`wa@xvmT&zi7juXwD%pj5@9B~ zN1dN?BlVrY2C9XnlD6^D7kcn&r5T~bmW5j@@GXc$eM^Iqhjs-~m6%bOBVrQTcrp6K z;O1h|HEt1nu3Xvk4eA}ZgJ;MHR94IM!jur|L8kuh6O1^L zo}T!JoPltePN)%@7onag^CTF4>pqCH+pT|%E3q~)T%gi~cQuMY*oP#kGT70Ci5~(< zZU8+Pi2Z&s^)K81!tVh0p-WG>ft4o9cpzzUOBwWz=FuuNF40`zaO)I z^#7L|;?+~W($@m~x3PT%u;4B^y*8;1|NP-=l&$ z*$PmhxVUY6$8-*scBV_YfrZ_`{9^n!jF7_o9cv<%N1TbJg@pBC1fso^S;Mpxnki!k z4^h4dtTFrE#Xm>P0BemtF>G`nHHW-*Ro;ZVj~^kgB_9k$9)Jb)RxxK1%7WNw>HV`> zsns;HEAm&K>D32Qm~TN})6_M$di(g_C=1`8nI8Myt1-7)-?J(wY&AeyGyoQ=ejYvS zHP*eTOcL!V08yUlKi8pc=dV3KIP(4Q`8Ru}Vm}WZ`WL>KqFMj| literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_long_stairwell_down.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_long_stairwell_down.schem new file mode 100644 index 0000000000000000000000000000000000000000..f1bb3a09ba08ff1d4c285fe9bf50a7e4c883f02c GIT binary patch literal 1524 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 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_multiple_warppoints.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_multiple_warppoints.schem new file mode 100644 index 0000000000000000000000000000000000000000..6bc9db13aa70d6ff9c4da181fb38f2c4fc74383c GIT binary patch literal 1342 zcmV-E1;P3siwFP!00000|Lt2}Z`(EyKZ%y@$cddlO`4{~*2g^r`v3ug0b2&F*oGB* zXdbpgU~JkJB8!5=AkEu8=)Oxv>QCg@6eCe;jWzlK2_>G6clRUjC=<2~fWUr_J;E6I z9e)CVH#YRr4g|LocQK(fjLxn+I=*)B%;7!G!u82G#8c+DA@v>c#9vc9cKzA;Es5Ca z9DCDqkKU5-bj~};xksk#lm^5NqTpS83{c)n`J#8xgP@^>jY=kZ-StX z^&Zt4EVZFjsvn<*O z&XyRO^ROP-V0U5x@LR87fL91Ulv!N4#}(FAw^G^EGBK>TE7jZ=UY1yU6kk6wzLchQ z*WL>R-!9L-8xe0kK}MCzwq6z4FIl7XHU+C*8LC@=w-Jn1g5$j>B{N6sZJ>wXa4BM5 z_?#&gqjTAAy+v1-jSiU5{f+oDHiz#J^gfU5^MzWbGUOsRlpG?x`BH^k z%whHULJBvO^eUWJgshscs-mwN@@Qk;J2Cmi3TClLqGiRcB@uOv9*C2co zi&kw(L#{R{2^%|7HugXq$H~~(kK28TmcT)A-S}FoNm1QEhWSEXV2f3CMM*ZJrL10i zRv~JJT&r%B)5_RD)wBd&Kfk&mho~DxuiuiZnj)083ay6fM$;vwoMO>Glc2`o#d*fXcV`jFOn$@i@t1{H!dp8e7U-@ zrllt;{s^P+umO?QI((+*8*-=*f=s>hD5N-#(mJXtKH*fHm?@lB#-$LcoG&~HR36W& zL}qp7i#;?A)iGwijV|Z%%7CjPvq)s7VyTu@%0SB(izmz=qBQGi-x3rXCF~Kp~lkr!BB%At8Qp-MR8^ zNZO6PV2*$Ihu_#Rn2?CMK4vcU5tweQ+J}z#aSiN0d==lFI13zJlMoEp#@;Qyi!O*q z7~%JWDGkSD@{=%c*kA`C4M->)v|vbl7Gi%)E|c%h3y+~Y3+YV|CEg6D9_7~kS^flq zq38P7(Vt|2U7w3UeAr;_}uJmaBez{&&~b@qp=#Fo1+ax zlLe6*4Q{SHckBeh7So%SO$3rnOSkc9IoV(|y~a~!lhO1WizeGR- A-~a#s literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_pressure_plate_riddle.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_pressure_plate_riddle.schem new file mode 100644 index 0000000000000000000000000000000000000000..1acca2e9bdc5a21903d4f083be71df234976a7e1 GIT binary patch literal 2183 zcmV;22zd7&iwFP!00000|LtA*Z`(!|e)32@+b;I$11FZ1qA+ZYTC5z>K*^crH1D_Hf;?|mmX8y^P8S&(1z`}ey?e> zGmXA8pl)-w;W=kf(SU}$e=zAUrD1)qk3K~W&cd0g-Xfmdn4KGl8d9vjrs z&zpyhj@~xyZZi;USWf$d8qJPwd7&^n^4+sQ=pKPT7U=5UzOb)PiuH9@*w-}zuL}t7 zMT%$rQN1tnx-8H;5L$RJU6->yT+iz=>r>Xiy^LOD;MW9>61~33X!7|y_M zcs(W=#)*I4r%lf{+b8E-pjpsoheDq%5vV1Ky6Lhqm~P%>8>tqI?gQb-JSA{%jH2(j z?cT9vhVJ9c&4O(o3fnFh9E3+g|2!nHl_(D7-nwkiJ$AA#%Q1TsDZ@i^XsFzr;&-kb5%4!e;}}*?g-ENt>IPTn7;F= zZG^MAk-A*)ir-HeB-yyF5O{FWr{jh+?aJGESGORhBv-dP1a73#iOxo_qw|qu=d_u1 zF&ZdB;5;vRnJ()>I(rS%Y$kiTJnAP*UpG_(B~0z9Kv|t&DaMv4xeKQ+3+6rX6@QPw zw)FZOb>-87tIB=Bs`6W!2@w`y4Yw!yl9?2dBxaQ$(OCc~ zGCj{vL!B!}Dk+d4@O&;QH&PTVni(mKkVQr?;{O;*F|w3LAmvJVnf+Ulkyhg`sXh7W z5Z2-^F{gkslIr0Y{D1p?e6p+S+@T8_*dNW!i~q-!+=B?vs9OUmP@ zm_0L6?SmROhXqRQ!&;sk;x~`Y%Qhf|dKOcVw0gZ15;TdDmijJfPD_4~+7$7|l1eE? zNkGzugv2aibNr+xFmKQWRPH7V&`DQ-7)HoU<|nXKh2#Y~Y+TH56bV<%Kf zsYsO4u9S^k=q$NSS|TNPf!y#>6eJ<$fJNVn$l8m?{)Q}66iP0Ew3RyCDy&peAeClD zx_L8)#FOEzTXE6t=oc-``G|e{_)fZL3`w+glc`ox^LVy7C68yTsf}I1=H^R^@QF&! z#C$qCe7fNFa&snM@Z6QHdK5}7pOl?sW0F{w^qE3)pKmLW?%h*pZql4NRw)?JaXB+R z(qYO}NIhSuE-T&at;aS(IB)!NV0;@vP! zu+CJPEovl{iJ-JP{AOme<=ffyuHf2tuFa|B0wtyIE`6PO`H3~$I}K)vhBERWeExRhDJ(bk6U(iokB_%&CsgMq?Vmee>ATMfV z9~H$pQ}W>zVh&i$e&*q$$4{P?pRFF%o{LE@;vJe&T^t1q-hV>U)%*Ztj-<=qs#MLH z___I|;EL^M4$+k5OqEbc&dDDjx$q>4L`ln2s%s;1<4D>?En#!%2aZIf5z__DB{oT) zTB;|H3dwpWb%B;@NfS1wrM)oK*lDSbsVK>sQ+%{3^*B;aWNN|>Wzrs3QJRv3m;+|F zpQ)66)kxnfkY1`NArJ_}Y@w9Ieo!GjR3YX5k0Oo(6%qo0Kp+qZ1OkCTAP@)y0)apv z5C{YUfj}UBGgyOK@E*$F*}mzU)T^?xauv#k?(0>kv>nTFD?nUoaCQYMU6)dO_dc_t5D`I-h|Eg-M*&LI@R41>Ou*w>DE9$ z_kN}p^(i}E?>KIo8b9&o*%6Rm9gnFH7(Rl_|4iocDlEM=U@O+6w(sh8o3>oD~Y*wNFpIzzajE>&a_C+db9=n1df+3O`h#+IO8kb@@P5U?b}Ao8db} zfp>Me>pEwBZ)nX%$8uQfb~j-V*sx6d#QQ5f)lHk7g5ZzzE;}}Tqn`te_w^lBUo(q; zZ#e^|`#1W|9~I+|p7B4Vxv~nCphHjzUhmEhIr$LQ|F!M2U$&37xBnd$9*is8ht0Uq z)Bj0#c6Q=(dlxEjvo}&N$u+w+EJ5XsY4|<3&;0e5PRFC%HRS#K_y1)-kJ!&w@IMZR JK#G%y005YiJ3{~f literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_push_into_void_trap.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_push_into_void_trap.schem new file mode 100644 index 0000000000000000000000000000000000000000..7c0fa071b6eb5457508d03e4c259f38e6dcd2ce0 GIT binary patch literal 1021 zcmVO+jz}JT=OfSIp(2|A2AJ=Nk5b}W z@*V&_GohVy7;rSA3{&7{?hj4ZEH~q`+!=Q^&3HB8Y{uE3+%6~ad9Flr3yF(CIm?xJXu#oO z05sjDP+xMorm-0g2 zSuYu@?9!%M4ocRI{NtuoF8bf*?(%jy!t4o~67C!D-JCF9c*{d#FIR-nQ49+M@kNr6qm*Ir>z|luqUm)S>k&GFN(fpS1r#5mL@{vZ#R{Q71f@ZPF*X|-F|uNoywozW zUev#IoiDDjK6_R&Mpw-kYc)ofg_h^Pm3yuB&aTL}yaxrd=f3_bl0C-{)Yrop>nDADa&q!0!sGRZ6}ClA_7seD)Lg?| zjlxD)`*B9 z3iU|3NBjwyhHubEiK^XkxEP@QTDwC0Em!by5XNe{ zj?a~M=FTk)==zim!{2d4C{sfaJ;t^;!*eo?D2#VJj4S~@PyV)dp#GB$hcnHoYfDf^ rs@vnA1Jyr+&^)KM^xz96~$s?S&Ia|Ry)o&#x|G9mx~COrWQ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door.schem new file mode 100644 index 0000000000000000000000000000000000000000..87e5a595cba53aea24c312306eb5d459c04d7c80 GIT binary patch literal 583 zcmV-N0=WGjiwFP!00000|Ls=YsuM8~p51i&v-MO^IQQPy7dTJ^J%WN_@xoplWJz~t zx1njWOj2s^d?IgrBp;;Cwx{jU9<)D*BAuH|z9jQ~GYL#$00D7dYV;o8%1;2$ilK1} z2mTSp0iUw>W-w&d(*N+>W&!2p2pmFZHcCrOYN{*+8GjN ztJy~;Xb8C2hLwsKV--)gnDf?PQW82hC3dv*c(W5n2$*GRQb}@GLv7P>B8!BPWD_Z| za{Pm4W9eYc-5Jx9wncH5y}oyGbQNsh;?xApf0xw0WTcAGp=m{@6?N}i?`IEB%>M43 z9+Q1jz~#@+a7Zd0J6;SRg!&sag&)CV0gVqxPFYjQ=7m>S@j={x*7HjEwe*r-$rm`= z+5Qg;{)Tgu!XOORz#)!UJGC9;7pI~P>rqncM@ii{jYBp!kCM8h`QLp2XFJVWaIx%O zFO64Tp^F&{W2j}^&0>gBt1U$!xQ$l3BZvw@G%LS0)Kk2Lr7lPE*=L@_(9Y0#Wu)h3 zDIiqKqfMy!d5Q37)9zK4OeBqw`05`>J(F{HjrKOYty}Ko zPuVgI`%MU6XK=aEyrxb_<(`jMrK?Kw2PzhvP_g^7dAM&jAw&a}@vo=Fg?*Rj4yzi9 V#bWV|$0s~~h3}Dm@drr^007%`9BTjo literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door_trap.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door_trap.schem new file mode 100644 index 0000000000000000000000000000000000000000..0e5c3552b56b3c7c5b2dfbe9bdf8afb1c96b32ce GIT binary patch literal 834 zcmV-I1HJqoiwFP!00000|Ls@XZWA#Ooy57c+cu>I@fC~Ia(Sr~A)rVgKwKW^Lxfgt zc6Qf_Yp-laA#Z#YpTuvJ@#fa0jR@&hykuT>XFPLed~ENI0{{lWCoa)B{J_5hz=HtV zQv-uhEG}ZLjXgP+x<80`8j&Ts5DNQ-Coa-_5P64Q!uvv{U8Rl7!i>wLJIr%5VMbQ$ zN=#g+b5z}gON(KyM`$pfY9sE@NS&rL%QvdyfWfyuj~Focyg(F2s}dPS*mW|DNVDZ^ zc-+I=F)uyd`poY!82>GMHFLc=|NS*r{^;5|%~pPQ<#oDB-QU+~pTXV&mkUESI#7=m zwn^!^L2HMGUL;MpcMYe*;PKTM(I1SXT=?J~es`#1@^)s3;k05;gAZ&lI9UWvBBBg= z+`Hl!+KjlG&cTgy>`pRxfaaQ9A1^&+tu;^C(Ne_vnl(ONir8MW#-~fa1lzYfGpp~r zo6pQW1~0D8C`a$ri&64%_jtB#e956NZVons_M6M&Fa{6*+`Z?9c8jIK8iOY{(Z;2W zoHqTeSIQ&Y9Ciol(0Y$5b(ufj?XPI8(8@0^4ZJ}=V+h)?{nA%=${nYVYYZFN$VTp3 zYPHq1+RC046<3keR?_OM(OhV)lGZM1Tie0Tvaxd9Zb@6cmg=OuFngsXgi5qdN!zak z^Io}Zs6xt+2Y0|kSv#x*<^CNoQI>W0=l|6}#n_6BsqS-n$9S)F7(Kd*fUVacbr=&-n8nqy(@NQ~xUzchurCsEZ4#Rp5EENae;dQY zdCjxbkr9cb@X2MuPr7o(YPVqQ=Gk;solPB@XCkJ%N{5L3m?RcGhwSq5@)tdi==l?V M1FvZwYdaGF0CVk~vj6}9 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door_troll.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_simple_door_troll.schem new file mode 100644 index 0000000000000000000000000000000000000000..a90a8e58dae1d8af5544d076532f98725b328523 GIT binary patch literal 735 zcmV<50wDb#iwFP!00000|Ls>xZxb;Po{h74Y???Q(KF&4B+iv0Bwi|rN5z32BD8X| zvl}ZLdu2Ncx$%4W8T+t8-nHmLw9bMbgQo^M{8i~|4$!3j^%TKvGj0YE2! z`a;0q-B?H*Xdc@mjghfRVmK8V`^b&$84+PuDs6{7NhjS*O;Purb&Z-VMN?epeI?V3 z!SS^QC)s9mIaqGa9XfMW2GdB4Bc-%CI!o1H6!Ih_Nw@+D6(5C8p&#>skV!8$-yQNa zCa?^3cSus~r5M|;%24)Vo|*+TMvL8)ThysalBL9=LtaV4FY<(^!?WX!P z89cedL#y;)*iVIBDf$fBg(4RkT>rzpdX*6b{iAgCV{k0@HJB=+%vLU$AB?(G@ zvUzPb{Q@kDQe$xVX9~`=7>o=ZdQgGddz6VC!XpOtFQ|=B($$gWbgmyl;zLr*4fhHhX zC4g!~lWYL~K&49iz-Y*J+CKP+MwD~DdX`RbA?9f|BO0U&6-#~$IF z{DMCLz&9;ej&C6N>A>|#pWy+2!H5%b>JxkHGO|Z-$a|sdkgiV|AN73kq#MvNVZF!Q zkRB$t#w6zbDNHvI+(`|NvFF*Gvi@jqfcvgL>?u={xQ<}#xCaiUEPV0Nqy2pw4{dSB zo>aFf-nS(osVqI}j<7fA9R>km-I2ISddwY;c$Wsm?+vgQ#y%1!z8Ygrm`8`hA+5@p8%Q_o5vBWkm~-48iD*f3H)kRjS!w4kf=^YW=rZc(hEeq= z8b?nWjK|R9HW55bnXW$&W{6{pOBv{C zH9bJEm9nQES|^a&%w8nQSV8byOBqor=KA#r!K>1ode+TXoS9Us2yUj9N&?e9sS=}> zk2QAdluFFbsGp%kgy2cq4aW^d?T}10Bzh-m<=noB;HlO~skuL^#I;%D^zrx0hY6Ycvj0TXPjZ7Nin02gtxizWe)h*vSVq9EljkV;~l{c&Im)8;z9;Qgc#NkXlvZj4jPh zUq!kA7u5lASx8zHznbc_S?FKfoCXPwks1wat$;hrk}gT6$|ZF`To!OZN9OYr=la*1 z;|2*Xs{`V)2$tq5r6q(Js70`fFoV=CC3UPkO|C`rk6D79lsIik0Xou+b|;w&I-Pc*f-6IyP14(sYfY>MUpmT`))<@W zuvA%uYjP7EEgRQMmyH|Z$GWKwOO-_=rQqneRWupI3Kr^swm7U^Rkn*247b(g?Om9h z7m#A?rl)r%wkD)?b-Auc>(iDZ1&ieyI?AVx_+75x=(t-t)yZwGbx$3ZDho+9jfGla zGaj|Fu`~E8a9-1M<=Rq3N_MPr`As*#?L2i_oLSp?r28kblqgutBk6X%P{B2w4^%6_7d@?XNOMI!B zrlk?BPk;ug934S{*_RChY^}i3 zTL-o#_K43J_WQ(U?ts^z5xp)D^0n)+g=Q1#Z#g*#RTLsq+a+&pgUWbB=PDlY?W%ad zDdN$BR={XLm>jS=tR)@)5WNcxWS1L5Mh}B9@@8$|QPH|TOc@B)JlEe3e6dg$|| z79fs?E6{jPWf);S^I|;ehVp%Ik#C)Xcg*G8Sw91JcCs%JWYizpBg_s|SascMFIJSc z7R#NT)4NkUgF#DDdv!6Qw0;Ke%rUhWBuZP0<<8Dx4%*E)y_;FLQ0&%HE!INHv9v%B64CP-(W&1mS!;QHc)(zxFEX$n1=uW literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_sprike_traps.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_sprike_traps.schem new file mode 100644 index 0000000000000000000000000000000000000000..d385f7c0c0cf169ca7052e49773d9752204cd72f GIT binary patch literal 2734 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 Bt_A=A literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_stairwell_up.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/ruins_stairwell_up.schem new file mode 100644 index 0000000000000000000000000000000000000000..8ee0bdb8115fbca554f8656b0cdf7d382e1ae162 GIT binary patch literal 896 zcmV-`1AqJ1ekfsL00!|}UZA!3 z8~+FZ&te$d84SK(3W;;gGyB3=B{7+4F~3es!Dk=rZHd!Vt!4#IZn#BVs65AXn(@Nm z?-Z%W;A1M5sZ!d!m=%g1zG}tc}4(48GY0pD%>L0@GwCi=kNq23KvCu(RtU)-Yu7-J$ZZs%(BZYDs5X z4o9r4&){MkoWhX@-HNemHC!rh8$xLhbrJiCb2QRQd^3a?ap~-AW~* z5BE^jiJ|Mq+6ZHC*|q z)i4XfGY`75?#8Y)3~E;NbkMN}U0F~E4Rz2kiVpJ%p_TR7g03Ni;Jn4JqY-qwp7U9P zj@nhU2Yrk>^k@(I82$S_+Jmm-d-RFa_C4D7=#KI|`b6?Q`b6?Q`b6^Y(I=Ac(I=Ac z(I-+{&;#G2yXoM6+@iG_UadXoW7GuafpxL5_hvO%9`xfn2ztD+_hvO%9`xfn2zqPR zFFok?Y6trCmY0{;(=>#O>MY(b(h4ik#N@FNu(!&c=VLUS)1%QJLiEbw(p1l#LHH_# zXM1M}X>u>+md6myRiShQOk?`vpY-|$QLYi)Q9%0Kn-wcue~frhF1VXQ506p`A|$s$ zNd}=v*Qt8$R3dz_Ih85WWXbh4YWf4`oEJCz*1W_5Ezo-cugyDLav|v!c|ibuCGm>iRv~t1 zjjAy8a}DTnv*!EMi58iq#~pM`p_$knnkNzqIuLuf8#gX#4BGA{gy>47?(`>teUoJd W?Om9^XnalMZ}&f_0 zYN%n69B)xArwTfhOtDnYyw6VzOaaKjW!1${yT5kDu%2z5+o)ZE|BS17_C?zy6n7K;0i9t9wwwtXD>ysV%Y`7;^0>pBvOPdVlIJS>A@h##L;R%h^ z#M9(v4#`le0&@a7;_bk7RSt53fA~~lTP>vVR+pUbC>wQHkC4JYcY7kvyE6NRPKX#J zi;Go$$}liA4zcF;%n@8n54~HPgBnHs>Le`%j3| z_4%l%T&A15!Aha(l?AuLy4e?e0_)R{WDH}4AQdT~V8Yl_vw1Y=mP`269SM?)9nQ>c zBVmvobz%>$n`6uLm3+o<-u{M16c47nY`ZF@@6cx=aWh|@cqGKD&K}K73Y*~BjGw?9 z2VJl6CBa;5Z_Q9HC-)PiTZqzQZ5<#oB}=bKbWyeWzT7P2oV!x}&|T`E{n@mIE3qbi z$}UK^O`vyGylv|%uQQ;jr6feeZ7MPNeRLUmiBS?waRn0(z8dSN)b!b|ppP&I>=>)- z=BGQKWZ!+fnN`iT^!7`krF$Pzd^{e*q6td5UtXMXN}15J93^!M3D?$!m#Ph;!#*%% zMWeszphiNEtTwEL5l}URWX?R~8d}!qRO<9khaKXn z<+sP_*Qn-idf#fn*3#<8Hptgbou%DRCMCQ)`kjQ6u~2NAgRNgry`rbB(2S$ACi;RfPJXLela@t^KgUlS*N9s-Ds z1@fTmn$=}c5z@r&&=44CZ|Mn)tSgW~;uZQ=cFFvbFmO{?8euhbOpFqW9nN+ERM z1!)mjK&r`XfX?lOoN8fz7g7x;VZUlcMeT2xAwEdEa5nUuJp!so^m?O--=4S;Wa@G2 zTL;Hk3y7x9i-9tvJa=f)l_F%__QSauJd)Ij(-mOf)H zx6E}MPvt0;ajuqejMtY<&d$SQ_K0&MUKE&Zbsi-vQMO?@|J~pA@w#FK!AZm2Cmxib z0IO9(9U4tGj|#By&0>`!X?H{(E@ng$5*7$c5oMgaYhZ}tx9Zjsqv)GAi~s>x{#QIX z35|apn~KnOxI}+lAWb{J|ANl;AIt%f=TfJ=_V{_-vHqB>IgzZW0?9FiWta(^Y^_|^ zb~~qatO4FxEy{SDm1JI1N34*e1pVuE74NLn9b$^wlsiv8$W2E}fv3R(`f`A-7nur4 zu8jP2tv5eYhsp?_6Xox&|DWr!4w621F3jzF&VHimVh` z&PoE}iv1O$`_ok~cK}u;Am-%^@lXCn{X)y?aX;Ak@?Mo#y9?s7Akb*w#eEaxjYOOH zF|9Z3)2}|79X*5lOK9D$u9!lqkl79keR?0muuLtN}Hu)TUL!#KkHZHdr1&7&PhpF1RRkYx}5qWnBOu75s% z-Sk-_ya83+LItjPKiuIVl0-1pjuH_AEFTV&L_rF19(*KcLfyF zEGUc|_+0efIC&&;W1ix}yoqttShYw@X^42O5=$bt;j~7y^_4&LKJsvVA0_$+)c({i znRNd5W*mTryFH=r!XY z{i~)TxYL8-xh-{r3%>QE2)Q>M#X>lM`p`NG; pZUZmP*|Y@HUflY%dZA@JZZLIo4z>ty*h$zCmbMx2=63Dc^)JQDF-ZUb literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/schopophobia.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/schopophobia.schem new file mode 100644 index 0000000000000000000000000000000000000000..4a0cfe7b60d0f70cb0cec6dc0a167c22e1fe5081 GIT binary patch literal 1440 zcmV;R1z-9fiwFP!00000|LxmNZ`(E)2k?hhoU~38bRDoyFbq57wp)N;K-U5*uwlgx z%V8J{#-eQ@ieyj<(%g337v8;6-fYW~Me4;O<^Ko5%IP}H!Zrm`G(fO4hPOis%HcqyTZ@fTEB%j7(Plmxb-Q({mpLoISLhvX) zn{$79;fHrZp3Reu;zD|}d3+WwL~t?Xek9Ho>6gNN`gF%*A^mVRd*1R-l97XY$=@y( zwUR${=-Zd%lYPfiekHw0@(pw7t}J6Azh2ANooFgwLx)aY(mCgzOtvK_@tftgD=wuc z((Qvd6`<$nf%?kM-l>m8ojWvqX(GnE*Y{ZJaivI9$L%=%$fLNfd4g*qhUHA=-6ZBcw$)0-pt9u66|_>RI=O0rfo(hw?vXQ#UYoq}P}r^CRSSx${dBPEa2WwNDkHTjfg&xBU`h zzA7U!Li!Q{klOu9D|>rPFxvB@7tHtoz*gN1$lB?miv?9!&kq2g2KUI&vNju+{vrtd zdv^UxWMiJIkj+dgO4(f7Nimx%S*bD|FHWVnj74SHR>u6JHE=4FWAqz|c2g{dByRQiq0RXTU z(A`6CVB(93F8~0*HW>E+000000000000000000000027knoi#P;pF;b5PPvFqEWJK zFrovO$9zP?N$7`iNRAY4y7!QVGbu#y`2OI^zZFlLxxbk6ha-;Y*cDOi1w8h`z@dTn z5c-M^;`@c5cdmEihM|nkJ$HP=<+YH+=nePp_C_LC)Pvb_4~I^DFSw5W6gS)plCLOT zyibQ=ATIg+!y%l{Vf3&k(Mj@po4#Jr;FC+=z2x~h>9O>taT1rK*X-qBZ6oBGsL6#)P!n8la? literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/silverfish_bridge.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/silverfish_bridge.schem new file mode 100644 index 0000000000000000000000000000000000000000..dc06f1808c49a3e30f016f88b80bbf6eea11c830 GIT binary patch literal 1033 zcmb2|=3oGW|8M8|=ifGyXpf&=H0Q)guAB^h=C(QPKZHdL*m7hyFiD5Kxggi%l%R4- zZIK7t(JN>Desk@8cRFp+f6r}G4OXxASXJM$IHJbolj={qX|3mF~U{U zwCI{NGvKgin5NrAj;{tYyDCIJX^0+PnWz*o@9YjSEw5vbL(l%!=}UH#&snVgCo8$& zV0iO=pXI-K>Q22_|J6YM`Q$xMwDuY>>)bxtd1>;*F!Q7tYUZoATkqvP+w?@1|6BBB z+vQJAgwsx*u+{Y13Q0`A?NzXxR0{FE!b7O8@s=^Mo0FY>{XW;eyW9DqjkX%`G)8wk|9=1Hex-YRneSizHL>FH z<%J3bH^VbHa!y`3Wx$fBSmvdB>f@$I#`zakcYTuI`IISI$(~`q?#w93wgb9Hmhy>y zxcSQb)8Dn_@9y88YdrhF*=R8ip2q!BIV{x&3|BWrZ?P24)`B>inc4Y)l#=;zwtS5b ziHY9J!rBxK3=CM-DHavyd}w2m7o)GTgoFeR9-cdCJdKTw(LF$?6m%PMah(c}_Ir`@ zZ^y;>WZkVID`#IVjV)qYx6|9!zEkL`@-ml%b?*Z6*R*tqzn^>hg`3XmN|U)C=KnkC z7bC@@bk*otl$zndbRb^i3Jjpb*rP7S!SFj(&FkKA8gE>7KVY6R3y zi67KY`|+md#_S_DPE*gaNB^<4UiR*FL)@C*!W+YEzO^n-S+TOo@`Cv6!{7U7J5R5A npOPRaZoOc!{b2*qs*8@#C*Rz)d-v}8m-fXQzKFl9WMBXQ;L`M3 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_deepslatebricks_hallway.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_deepslatebricks_hallway.schem new file mode 100644 index 0000000000000000000000000000000000000000..78b70d46d3b29ddbd553fc6c471f564c7b944a2d GIT binary patch literal 539 zcmV+$0_6Q4iwFP!00000|Ls=aYuhjozF2mWI&BzZ>|uXHp7&4)gRO%VHdgkqJd9y3 z_Sq3pBqJ$H^Va`7J2h^az{b|4-4B)n8Q-U~?z0PPey4Ito4 zA!mg#)}4-($)_1s86(+DYRWB^J~KGYLcpgIbE&H#q4R?Ys&Y85YqEn0gEUlB`hlrQ z4@*>z2DMp`rK0f`=*cQmRX50IrjZD^{84ggjo!(=pl@ZjvYOmAeJtQ)ljszsWeoPC zq(as`C`AIE-BK!uYNt3Z8(W!A9S5}by02||zi?jyB51!QUHJ)g1#~`=b<*g-n>XH2 zC>V}AaP%?|J425Eohvxl!Tt?v?byR$_s(x8VEv4?G12;7+#ll?Z)3?{$M5H{-@)&m zv4j0*b_6Ha^Z2#)(o1qFV^Iom!SgwVBsa>~1O(6i5S>6$St7lDkH>0G4UDRu;EOAE zQs@;dd89_q3l#tB{^O z5Emv09MPetniSI7vb3_H-3jz>Xphzk ziLD3i%9?rY)@=HvGMrskw-EyRO6sZmKr@t@w?c=xWTR<>%j+YyI`-(U9g83t$%1v< d6Q=UMEFJmgsOP-SSF2SIz5*E(I;1%a008L$2Q~lz literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_endbrick_hallway.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_endbrick_hallway.schem new file mode 100644 index 0000000000000000000000000000000000000000..bd3c2733b02489e02e7e4ec55efa67d688ffaeab GIT binary patch literal 541 zcmV+&0^1TM3IcFkj<^1*}q9giIYvBr7R{TEqNepJ&p8c#$cXe00HqGDsqlK;ynPgW9Za` zfJG)}nK8Dy9xIbh6D$&Dl9|+$TFhNyaGLmluQ{et7em6z4JN4ap)w1yg9(!~w6d7E zfhkE3b5s=#O20^1JzJn7t4vXBnQxqj5ODt|b!m-0kYCVNeqNT1+O!qzgBJSU~3s*-9GixAMY!@|tkj zf$kfh`wcn-=>C8+&N$-~&^o{o$-jnQr*sfeKZ1Qyw0SITS=|s{Xo%;%+}M<|w_cuS zAnuI!u7XFn7UXdO!EFZ5cju9I7IjLAmAPv{+n43jK0-Cnpqd!s(z2(wzTFY@w`q?y z&YRJLc45uDtTx&7b7fdv7Y`8v`bz3)^_gZUH81%NbIEMLvUHNO_^+lMVm?Lj(qF literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_ice_hallway.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_ice_hallway.schem new file mode 100644 index 0000000000000000000000000000000000000000..281014bb6726d6b0d9d45816be0f2560bfe24887 GIT binary patch literal 538 zcmV+#0_FW5iwFP!00000|Ls>zYui8&9cv{!StmY((*A`WeC#P;3T+B0v^4ZkA4(Au zX(TUR?~2tL$G7~v{wsGj{)l~OOAu+Bq6Z5*Z)f+-j1bI700Hs}HF-}T@dg085_%g# zz#><(+*((kUu&C9Q!GY_3e+_Xt8hs9##*2!r)^nonQt725ODK5b>*x%kYCVNeqL3L^`Ilvnl1N%7~9T5JC3?nbJ={3g~?yS1W76B|f;Mpav&BIDQkN zzCe!v@;kI>(W1puLFWK}g#HWoS%3#VyG^uDi_WjTpKO-#KArrhSw58h=d*l7xxR{@wJ}QhDKdY@bxVl68bs! z?aH9%Hd;WW!qv_Z#C};3ob9Fnm8UawQ*!)Yo}gafvc4c5-H7deVO>V~+aS*th$~w| z7$Slgk9oY}BZ%JT@O<|k8Sl_!lsZ-T4s=6WA?!!U1{!1|K~|2Z7Z=K%z+fBpcs*$_ z`p_+%omcfbnn9s0tDExPL%={QGp#?<43*)dP+?Bl8XDvB?uosMojtT-5hP=k^E~u| cL-|w`HTlg`uXtUqR;!or16@Yuhjsy|L`1aoP;V*vnwQAitmx23rSR*;v`b@-T*X zV_)0CiezMEY2NnFv#aKF(9v~SM+-S1?0a;rd#;SkaSR|JzC=aN(FeQ&fOZU>6(Qhz zCMTIOwmBUulU4~92{Xw=YDz8UE-_doKH*D_sno@guyKPDRX&{7HQ7PQBn=hiZeVKC z!yHvZgWAl-y%ZLQL*pxZtxJ!B|BDwUAb|FJ(uFG_7SQ=jwvk4ASv+x0 zz8^U5K=-v5c7_fCy5Hb{0}eRg7PNM7U)=w|jaqi5*VkaniPrD)9(*6+mWv*7AAin0 zq&^umjY zN6=r(9xWX(qX+H6nrYoE)%0^^xVkR383OuB>ZpCKj}iy9690B!mU(*OVf literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_prismarine_hallway.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_prismarine_hallway.schem new file mode 100644 index 0000000000000000000000000000000000000000..47878b568cf7513088c758893f6007bc7a313e78 GIT binary patch literal 533 zcmV+w0_y!AiwFP!00000|Ls;wi`y^|o>+F0Rk}Isp_l%F9`XwoLZRJ4pLFS=Ih0~1 z_Sg|oBqM2?=GK3njyBIip%3@5g$&quK8-cse3qG!00QJSY6^i~<0k;uV@*{U*@n!x zLhWhP*d;kCx84#1Ic@8DhkRffnSkZ@k}GG;SJ{`e%dTUFU(cQhIN#^FMCBM`r5+rx z#wou*$9_I_s+fBY=(OY9Qn9qv=V~dKfCRd)$kbs5Qb6w=Ij^jVQu4wxQuQo=?7`XN zNbCv&0`&TDvXiy5&XN6I_6C9d?a;K`$fo?1-(*6V0K#OW5$j0%Aq{u X*lzWbuNUj}`XPJ)AuzYui8&9evrcoERF~{0d)t37A5gLIW)cJ=BL%#6%iN zi`TniwZ`?WKePYFowXImh7{@=hoU5G|kuZ}?g`(78ZWE1@#1(waF%_y95!QBCqRdB9&&do+CTV0uQQD!d zNR4uoH4Q7bNm;X+qa`DCQQR}%SV!;&-G$L=r~RBBYcDC^x4VCk_gPgPW8{qw8UFf}a z%C68NK<_8CXwl+{;qBmv7?E2KI?k4peFQgffSVZN%5Y>iZrl+J?q!eH$(zxK zPGR({s@G};xzyZU6%Q2w45Uz#`ZG;YDBf}tX3JX97#FJ}wkGys---DUjYY=a2d`Ml aO`g|eo1~5+3=0C5qeHRq&ET<>efv}lpXLp`?NZ?5U1f zY_z0C&vr*ZEW^>L3oXBB2%he2n=G;^+6h_yE6-5Pap5kBtu}GqFOAKqcpchv2IAT{ z2(FLK*Qz0}U5Kv=c)q)jw6~~p%B(DX1nn?ZpnVV1z!B4=kT#b6rVVl@Fxb)_uN@&r zAKH~Qv&OC23`%9VyRP;X0tQOziTgxTl$y7K!aOoN&oM4mR~#tzTL&v_tn9EJ z$}npD?1(s$k(8ym4ffCNzv?7AZJIWvZjv@;_|rq`ujKc>@4Xz(-tQH}C6!C#nk-u^TjYXr8Y%alo@nP}TnEo4#~twCUaD#ns3 z6`Uoa+doxYjK-aaCJJptm%un=gHQ;m4ze8qjRT_uSFZ<53Le-UrxEQk9(R-&>R!7? zlc~N-sa?cy@|0DRh&aAfZ2sn*1;4S&&YjDz?XtI|`(c_c z<-SGW{J#8x_Gi*_Ay<{&C-83Coo)}6o-I<3Q|u`7oZJzCELXs?)88PlH!VPE!7(_K ztlL*+v2K3cFUVuvgI5H+A1D#42RMTU4^zEnn^mrMYF#>DM(W=f)(Iq R`NDjT;U7w$XV_IJ006tbeU|_L literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_sandstone_hallway.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/small_sandstone_hallway.schem new file mode 100644 index 0000000000000000000000000000000000000000..4b346489e93cffb37cf1096457a65cc512eb9f59 GIT binary patch literal 535 zcmV+y0_go8iwFP!00000|Ls<7i_<_5o+M3Q(z^;Oe(*Q+7aSBpPw+(X@Pqvz66TUg zvUIx}cDKZSyMJD1uer8@!kwj3jt+#)J~P>Q<{=4B0uVuRjgp+B&-fDnx(W1JAc7_r z^IU6VFK(pHW+|2_Bk5cy$_y4R)i_Ii!S@0)p~?xNb>j+UF_F3dO&w!wEC@mLw{;7sd#MnaIe`Hb-mZ@aRld^J{Kqq zctPOx7PE7$U6oo?xpi6*=Y#zO+vWTZf^{H-?k7^Et6&g8?;9B_wDMAN;sbdV;H(FO zx1QN0It1u<;1s8LauMvr0iZ)u-O08~xP_wNZ&k-Zb?287A2-#9LjRxYk-n>^c#<)I z^E*%QUOC|e*@Uq$flkgIA%Qs4Qkxhe_8-1FhPX6DYJK0ikqc^Jly!w~Zh4cyFlS#Q z6gsvb5ro1&8uX##mNmiijY|@FI!7}j!(ZDO$_AJAlGyqZ?}vpp8RhSMd)`5Gtu1&L z=Dm(@$ZH?Ms~lc!&Liavs*F-23Ku}vkL76}U>ewCngo*Cu)Q;0?ifb*w5MyA#xaC$ zY4oDDYc``oYVNMeZAAnlDb&nLXuQtJUfy`~ppC@&~;P005&M`(FS6 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/smile_6.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/smile_6.schem new file mode 100644 index 0000000000000000000000000000000000000000..af21bb721475b048a14bcc76657e12bf7d543c1d GIT binary patch literal 671 zcmV;Q0$}|giwFP!00000|Fu-jYTG~%o=BD*J538M&7~LNv!OH%Js3=B>Ocx9^&zx` zP{c|aNsBjHvs%|NrH~iw1N3RqS;<*juA7AZEC{~&`*vouGaUdIIwK}fYkbcx0ie}^ z)c2-OHFr2Ghv|RWBnY z4g@B;CnuN>5+(}lP2>y}#tUi2G%6v}^hWcU(rCJ{Yp>}uu1H6@?%9OqD1@8^2@4gE z$hPG|e;E*Elt?WpJ)hv9AW{70M$d((E9EjO*OEIf>@UefuA(d`c$%LpshQ?79~^8Z zZTwXah3V6u_s|6gnkSg2I)kC}DJdD^gBKJ=qpbIq~nkk0KuBc_Mn z0WXq5Di2&5D&y^emny`(!i`W&aiL~nlCjrUBy?aWreWoIxdUk2cp1744YO_Fv7LM# z2Nz6@QBi#ln3%D7F+|$2Nb*i1RfO?db3IAmj${GlIFz3$ps@|kyLe^!VXhU+BMcNz zbUmiIjPXiN@XBRI;wfJ019_arr=j$7seK{k*w{@a50}f-tWoM%`$S58%0hwQudVUo zc{o)Z<3KB9#Z+Of-d4RwkJf@|1$v)&Y&PHyG(RLsf!ah~UteF*_nq)7_z886K6U^A literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/stone_brick_bridge.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/stone_brick_bridge.schem new file mode 100644 index 0000000000000000000000000000000000000000..36d26c8d1b6ec79172b09c13271060fa9e7bdfd1 GIT binary patch literal 1148 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 Il9PD=01{^Kv;Y7A literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/upwards_t_treasure.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/upwards_t_treasure.schem new file mode 100644 index 0000000000000000000000000000000000000000..3d9a666ae083b49bca0d477adbde483ddbfed6bb GIT binary patch literal 1197 zcmV;e1XBASiwFP!00000|LvXKZre5#fR98w{!5x+!#Zrh&=>F%1TY4y9k2l%R%}Ce zQ4AVw(Y6ppG$GSF z5KRU;cz;U6@nAliG0~r@PBsYHSoZmhMXNY7zF=Y#b$1;)`XzynkB**XSxNY-2PDtw z?N)TXd;7sfFqu9!dW*ns`BylWG!XHAM9F9UcuHq%5KBRmkhwEA54)(LUi;H`wM*dr zL-N`L9C9i7-GfqV99S_2=GG(d>n67((2%N>5*?T0Rz8Y3OMTRD3p89$+#&F7CNHY< zibes8q&KE|_tZJ+x5d>axY|nHMc`)BH=3$Rx9UcI(p#zy!-9-n9OOWDJD=jf1%WSj z(q5u}^u|tYSl@TEi%CeesS(8@%*O>z8q`Dr|^-{B1c7HdLxL zi~`pfZ(Fp7w;ik)8)93{`xLREQmtVWxX#$kwtbv9_(1GFcC;aOdQMql_OO$Dk+6i5 z;A96ID%BcBfoqM|0_97Tet@?1sl~XX9$ojbqgNlnMX|}U%H86`4!~*bBAj`t94CJF zcKzONnSZjOz$KXEwX?$I0;diZD41d`@a4Y1rqSmt@D&P-0#|~|1ztH=q~L-0j0N8N zhHa=+YZwK7=D6JN1M#W;k?WL?J`9u0!GkN+8b*N;*AZuZ+s97EvO?@UadducL#0~7 zC@|tW;zI={aHVEu&4s&tx{KU~HaCP{9susl04Q~#sn%q#S)-Vc;7%>Wb zgq7>(6TYB`&kGwW)fz^D5hF%{kFaw6e8LwL@p)lGrCP%%Fk-|g@DWz7pHKLLB0eu{ zs8nkh1xAb*1wO*c5hF&70wYFTXN&?PMqFcz0wYFTV~h;nfk4cU<2>mFU$a z0RgVt;Qr*p%k_LLl7dDf=80e|!9osBWjTDK9=)UF;8vEy7pok;F3+J2owuCJ-{~-9 znUnl^G+{jQlH338&HI^pe6^hSdgoTb;6n3{z}NTC?ZL$_<8jR7a-{Rm{r&yF>Q%sh L9(op>r+feaB_>YI literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_path_of_fear.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_path_of_fear.schem new file mode 100644 index 0000000000000000000000000000000000000000..83f8f1cb955ca079ab817803fac868c9bd21aec1 GIT binary patch literal 1583 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 Obm%`GeKq(~)&KxbQ%AG_ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_why.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_why.schem new file mode 100644 index 0000000000000000000000000000000000000000..683edd79375e5b83837bb9460190f381c4bd931d GIT binary patch literal 697 zcmV;q0!IBGiwFP!00000|LvLIYZE~b$0xa5eq3y;J}7+Q zRE|k*?rzOy_t@Q#1`&Mn&o=H}+6JYdlGZBjCy?CE?9O*~c3&T5gZ z)SICp#buUJ(od0VdhY@UFi+Sdky7d1A(x|Zj9F|g@p;^sDJfz%<1Dt8QyV)+p7yz% zk?Q5vN`1w$-1KBYVi~_zIOmz##rm~1^`}L#mVP~elb`8J9DgUjEbXPphwI6&Tm7p2 z)Sr{cOb!nNXuKh%nH0`r9nZ*xgmwd3Ph4sTXb@n#0FTGx@pwEXl@)&c503vzs@I*s ze@3w8`r4&radm{(oq*@Js9$#i9*@W4@pwEQkLOR*f{n8O@>CdR80pB`f(U8}8jK(u zNiJ0gfuh9C4k64Gkyt+0hI~q=X5>YVd!Owff_6gMFoA|i5kQrdOPf%04MVtn-jZTT zJV7-k1r@k~e1>ytjOI}YjviW!6B!3DCM{U;l7*-V>cZb z%xr`LGtx~L0UiwU`Ci9JB=p|ZwBxVX&se)W*55Dr*ka=2;l f%d0fi^&NZz5hoH|KOX=9SkF$N literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_whyless.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/void_whyless.schem new file mode 100644 index 0000000000000000000000000000000000000000..24cbd05c10463e9406eb1f3289e87c5a79a61bf0 GIT binary patch literal 507 zcmV1~m z#2(usiew~(Y;OBs{fU0jZbwcwp-|`+w=4_$jIlH`(t94zQwAU)J4Z#{(?`4jfI$Ys zT|mIeQfewJR{nI3)=IKm!Ap)0ag-qz3D}f!SsG*A>0Fs&kz<{6B;Qx&(i)wIimw$G zQrA;wR=$}usH&+lYqFDuqcpX$Zv4cwq^A`sN0T-rsoc%h=*cQm*Ef-GK~hitRonLB zPX%23iQnMj7kX{%zoJk2(f93s%+KHh>Do8&Lcs6~StpGS8BV;Tuq7lzIC>qVouNmT z`~x2F*N6h*=mEEaI1H1!Q*pnL-nD>xiz7Jh{Ozsw(o1p~pVv5pq-4L#AT5kCHU+_6 z8cuQwX>E!0cAU)BigsaCZG*2ad6L1XB_WQqie%rr^A)U#R@5K=}_ES|k3Oy9p*HI0w3vPrE@=V<7q!r&&_G{I zQ`!%1IaYV0)8WdvlYNvE7s*$%2gvT(4^?C#7nGdl}&ApnE$ zgbTD5zvC|e;C=|fSislctTBls+8*ktqqF!dGL~oBoOXGf$+Yclw0c~0+Z|=C z>bFdf=h!w@^DOPzSFJe{bq4o~CTNr9F=^nme8Awt>9TNoqEz$q;x5Kuf4a*cj|7*r zL(J3zefB2P;=Y z)YH(Fxwp;W^C`1fXMLk&G~_}=CQD^8cBLAcH_7f5j7I5oXPo9e2FD9<^T8;kRx2nl zeWh%VE`^d98NoZJ_MFn6s6j_u5uJ4g4`vvgb6L#m4ug+NvmYxNYqS_q3KG<`wYr!y zE@fv z7k=EPPF>?|+hFi;Y9YxCd2dh`i{4UX(&8=JTBNSVJW37kLlxG(MVZ>3dx3(VQJYM; z*RV_i!GtvEn^{M8yzf1-raQ1?A3!JqJjeGJXt z4=qg&j}H%Dj)jlPgrAlPAI=G@&l1?0X&b3Sh60`Nf2R{dEum&JgnI1k*MU*r3!YXz z)rfL5uXV%#$6_w>9{=(WPrsQ^7oJIOsh4F?&HT{@)LcIdyOTaYOQJs4XQ-h98(a+e zxp|5LEfQ{am5wp-?pKQ8sg1)EjJO|6^r56KU&a{etZSh(!;RI*@FksaHRuFmI?Z*c zKeO2PB|Iy!vmZ--;KSMnDIs!;zWOWYrlCanF??HY6j*u}*^e_dQ$ R{7K*6@Gt64FEe--004G{2D$(M literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/white_fabric_maze.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/dungeon/white_fabric_maze.schem new file mode 100644 index 0000000000000000000000000000000000000000..f646445e0c41aea98739d8654c927d0098f837f4 GIT binary patch literal 967 zcmb2|=3oGW|8M8s&bwnK(3ZZ^*4nXwiL)yB3F|jb9v!YNoEMlhCv_|A)Zl8Iwj%b> zrX341a%!$`e;s{P@VkO{^(5ihSJ!<#&#L%QIlXPp&-IonpE7x8woZ(n`rqw z==M{&x%bbq22Y%|Us>)%iqX9E`^v?}!jDaU_a4nS*Lz{(EFTw(zKS_r^+xQn{druT znzOGQIiL3D&RYGgUNyUu-dcrTPqUi!$wKOQmfn|)S!cU8PMf?^a^*~qY5&}fxvyU= zJN{mbf6tyNe-5l=e^zEY+g4-yKKJ-lkF@I|x#ny9jd)ni&;9?xsV$v>-{*R$rFpHl zeN`)DHC1b4?~F$KmQv64)h0jAF8kId?Uz#1bTGmHdQ>})gv1TgwuZ(=e+lOU2M&Bc zvgX*0-v!PrXZVtrZ*25un|`~cR=sT2ExVdqOy8~@lQ_Mfd&b(ebL*#ms49QBx+U^m z#m;i>@*7fbZoZYhwRcAHy?u9IpP3e!^JwaMn}f0JyRGGJSL#+KRhO?9dwX-QadBAJ z?x~iaw=K$l5EN*ZoG(+$t|wa)pR=vFe0$68)Hk`7`ro2ftJRvj9I$m~Iyak>sg8^3 z-Sh%^rn27d>y-fqS{I2LvhXn8-yOYYZT4M(4-5TD+vayQaEBcbFksnZ{f(dVN5J~f zl2yh$jLsmT80TkYYlI98KKyUdwz?__@~PqjDWmO=1;s^nMDAD=JU5X;LPCORono=I zT%lv*>{j|JOGron+W%t;&{I4$ha{NT*z6K{nh(xf!~5drqn#JGcTRNcDw%P1Yx@=h^`*UgVjuqsXw}>*Lv5rYwvGf zdS6_6J;UT?@5KHx&A*|a?B(}~u%~C(-ja;F`<|!AYJO_Q{R_5>-~HC`YTd|}H~riF Tw{Nen|H8Xq@0UjNDh37s!Y|6W literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/example/purpur_hallway.schem b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/schematic/example/purpur_hallway.schem new file mode 100644 index 0000000000000000000000000000000000000000..c7510260005740626bf582c5fe30ec25f9b7255a GIT binary patch literal 536 zcmV+z0_Xi7iwFP!00000|HYNTZrd;nh8fF_V`shW(5J`~1PBUr9k2l#*3)(v27|R} zTZkhWvH~}^z3Sd#$4QFocGw|kwRV$=Vb!B1)yS%P@cb}wgbeOasdFX8U-CUY$nV?MOFs63_f=moxEOWT$d&O0 zehKld2V-z}w!Dx^*VE|FJoSA`GCxPZll!UoBLB2c6it9 z>1amSv^82AQdkzIrMW6M)fmFb z7+_!s&R`gVbqq%y$1tFsVt~mQ79I?KbzqbCbok;7!Q?&t@(i=dd-?=J0MR#Im_O2F a3G**y*^wSDSPzN#4SxX1K}8n03jhF1?*b?Q literal 0 HcmV?d00001 diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/dungeon/default.json b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/dungeon/default.json new file mode 100644 index 00000000..4cc2dc5c --- /dev/null +++ b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/dungeon/default.json @@ -0,0 +1,278 @@ +[ + { + "id": "dungeon/waiting_room", + "type": "dimdoors:id" + }, + { + "id": "dungeon/mob_prison", + "type": "dimdoors:id" + }, + { + "id": "dungeon/rising_hand", + "type": "dimdoors:id" + }, + { + "id": "dungeon/honey_parkour", + "type": "dimdoors:id" + }, + { + "id": "dungeon/stone_brick_bridge", + "type": "dimdoors:id" + }, + { + "id": "dungeon/upwards_pillars", + "type": "dimdoors:id" + }, + { + "id": "dungeon/party", + "type": "dimdoors:id" + }, + { + "id": "dungeon/monolith_cage", + "type": "dimdoors:id" + }, + { + "id": "dungeon/returning_eye", + "type": "dimdoors:id" + }, + { + "id": "dungeon/silverfish_bridge", + "type": "dimdoors:id" + }, + { + "id": "dungeon/upwards_t_treasure", + "type": "dimdoors:id" + }, + { + "id": "dungeon/trap_rib_tunnel", + "type": "dimdoors:id" + }, + { + "id": "dungeon/river_road_twin_bridges", + "type": "dimdoors:id" + }, + { + "id": "dungeon/white_fabric_maze", + "type": "dimdoors:id" + }, + { + "id": "dungeon/decaying_chain_tunnel", + "type": "dimdoors:id" + }, + { + "id": "dungeon/cage_monolithless", + "type": "dimdoors:id" + }, + { + "id": "dungeon/chain_t", + "type": "dimdoors:id" + }, + { + "id": "dungeon/line_walker", + "type": "dimdoors:id" + }, + { + "id": "dungeon/chain_crossing", + "type": "dimdoors:id" + }, + { + "id": "dungeon/smile_6", + "type": "dimdoors:id" + }, + { + "id": "dungeon/lantredom", + "type": "dimdoors:id" + }, + { + "id": "dungeon/lantredom_end", + "type": "dimdoors:id" + }, + { + "id": "dungeon/lantredom_red", + "type": "dimdoors:id" + }, + { + "id": "dungeon/void_path_of_fear", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_diamond_tnt_trap_b", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_multiple_warppoints", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_lava_trap", + "type": "dimdoors:id" + }, + { + "id": "dungeon/freeroam_graveyard", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_small_pressure_plate_maze", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_diamond_tnt_trap_a", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_elevator_tnt_trap", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_stairs_up_down_warp", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_corrupted_endportal", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_mansion_combination_puzzle", + "type": "dimdoors:id" + }, + { + "id": "dungeon/lava_trap", + "type": "dimdoors:id" + }, + { + "id": "dungeon/long_corridor", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_long_stairwell_down", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_stairwell_up", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_push_into_void_trap", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_sprike_traps", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_target_practise", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_camp_station", + "type": "dimdoors:id" + }, + { + "id": "dungeon/freeroam_empty_street", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_caged_warps", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_deepslatebricks_hallway", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_river", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_ice_hallway", + "type": "dimdoors:id" + }, + { + "id": "dungeon/void_whyless", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_items4life", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_simple_door", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_fire_charge_timing", + "type": "dimdoors:id" + }, + { + "id": "dungeon/schopophobia", + "type": "dimdoors:id" + }, + { + "id": "dungeon/random_arrow_chance", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_simple_door_troll", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_prismarine_hallway", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_endbrick_hallway", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_deepslate_hub", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_sandstone_hallway", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_purpurbricks_hallway", + "type": "dimdoors:id" + }, + { + "id": "dungeon/void_railroad_b", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_pressure_plate_riddle", + "type": "dimdoors:id" + }, + { + "id": "dungeon/break_block_boom", + "type": "dimdoors:id" + }, + { + "id": "dungeon/void_why", + "type": "dimdoors:id" + }, + { + "id": "dungeon/ruins_simple_door_trap", + "type": "dimdoors:id" + }, + { + "id": "dungeon/string_field", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_netherbricks_hallway", + "type": "dimdoors:id" + }, + { + "id": "dungeon/void_railroad_a", + "type": "dimdoors:id" + }, + { + "id": "dungeon/beach", + "type": "dimdoors:id" + }, + { + "id": "dungeon/small_red_sandstone_hallway", + "type": "dimdoors:id" + } +] diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/private/default.json b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/private/default.json new file mode 100644 index 00000000..0c138f73 --- /dev/null +++ b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/private/default.json @@ -0,0 +1,4 @@ +{ + "id": "private/default", + "type": "dimdoors:id" +} diff --git a/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/public/default.json b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/public/default.json new file mode 100644 index 00000000..bc1bd5a1 --- /dev/null +++ b/common/src/main/resources/resourcepacks/default/data/dimdoors/pockets/virtual/public/default.json @@ -0,0 +1,4 @@ +{ + "id": "public/default", + "type": "dimdoors:id" +} diff --git a/common/src/main/resources/resourcepacks/default/pack.mcmeta b/common/src/main/resources/resourcepacks/default/pack.mcmeta new file mode 100644 index 00000000..5b73cab3 --- /dev/null +++ b/common/src/main/resources/resourcepacks/default/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "pack_format": 12, + "description": "The default pockets for Dimensional Doors" + } +} diff --git a/common/src/main/resources/resourcepacks/default/pack.png b/common/src/main/resources/resourcepacks/default/pack.png new file mode 100644 index 0000000000000000000000000000000000000000..eed2b478bb701d3191a4021cbf544002c3a42b45 GIT binary patch literal 3505 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 literal 0 HcmV?d00001 diff --git a/fabric/build.gradle b/fabric/build.gradle index a6c0d56f..02002071 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -8,6 +8,18 @@ architectury { } loom { + runs { + data { + inherit client + name "Data Generation" + vmArg "-Dfabric-api.datagen" + vmArg "-Dfabric-api.datagen.output-dir=${file("src/main/generated")}" + vmArg "-Dfabric-api.datagen.modid=dimdoors" + + runDir "build/datagen" + } + } + accessWidenerPath = project(":common").loom.accessWidenerPath } @@ -74,6 +86,11 @@ processResources { filesMatching("fabric.mod.json") { expand "version": project.version } + + from(rootProject.file("common/src/main/resources")) { + include("**/**") + duplicatesStrategy = DuplicatesStrategy.WARN + } } shadowJar { @@ -106,6 +123,19 @@ components.java { } } +sourceSets { + main { + java { + srcDir "src/main/datagen" + } + resources { + srcDirs += [ + 'src/main/generated' + ] + } + } +} + publishing { publications { mavenFabric(MavenPublication) { diff --git a/forge/src/main/datagen/AdvancementProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/AdvancementProvider.java similarity index 83% rename from forge/src/main/datagen/AdvancementProvider.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/AdvancementProvider.java index 76e605c7..d281c73e 100644 --- a/forge/src/main/datagen/AdvancementProvider.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/AdvancementProvider.java @@ -1,4 +1,4 @@ -package datagen.org.dimdev.dimdoors.datagen; +package org.dimdev.dimdoors.datagen; import net.minecraft.advancements.Advancement; import net.minecraft.core.HolderLookup; @@ -16,6 +16,6 @@ public class AdvancementProvider extends net.minecraft.data.advancements.Advance } public static void generateAdvancement(HolderLookup.Provider arg, Consumer consumer) { - new datagen.org.dimdev.dimdoors.datagen.AdvancementTab().accept(consumer); + new AdvancementTab().accept(consumer); } } diff --git a/forge/src/main/datagen/AdvancementTab.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/AdvancementTab.java similarity index 99% rename from forge/src/main/datagen/AdvancementTab.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/AdvancementTab.java index 197609fc..8065c8d4 100644 --- a/forge/src/main/datagen/AdvancementTab.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/AdvancementTab.java @@ -1,4 +1,4 @@ -package datagen.org.dimdev.dimdoors.datagen; +package org.dimdev.dimdoors.datagen; import net.minecraft.advancements.Advancement; import net.minecraft.advancements.DisplayInfo; diff --git a/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/BlockStateProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/BlockStateProvider.java new file mode 100644 index 00000000..d48afea1 --- /dev/null +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/BlockStateProvider.java @@ -0,0 +1,175 @@ +package org.dimdev.dimdoors.datagen; + +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; +import net.minecraft.core.Direction; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.data.models.BlockModelGenerators; +import net.minecraft.data.models.ItemModelGenerators; +import net.minecraft.data.models.blockstates.MultiVariantGenerator; +import net.minecraft.data.models.blockstates.PropertyDispatch; +import net.minecraft.data.models.model.ModelTemplates; +import net.minecraft.data.models.model.TextureMapping; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.DripstoneThickness; +import org.dimdev.dimdoors.DimensionalDoors; +import org.dimdev.dimdoors.block.ModBlocks; +import org.dimdev.dimdoors.item.ModItems; + +public class BlockStateProvider extends FabricModelProvider { + public BlockStateProvider(FabricDataOutput dataGenerator) { + super(dataGenerator); + } + + @Override + public void generateBlockStateModels(BlockModelGenerators generator) { + generator.createDoor(ModBlocks.GOLD_DOOR.get()); + generator.createDoor(ModBlocks.STONE_DOOR.get()); + generator.createDoor(ModBlocks.QUARTZ_DOOR.get()); + registerDoor(generator, BuiltInRegistries.BLOCK.get(DimensionalDoors.id("block_ag_dim_minecraft_iron_door")), Blocks.IRON_DOOR); + registerDoor(generator, BuiltInRegistries.BLOCK.get(DimensionalDoors.id("block_ag_dim_dimdoors_gold_door")), ModBlocks.GOLD_DOOR.get()); + registerDoor(generator, BuiltInRegistries.BLOCK.get(DimensionalDoors.id("block_ag_dim_dimdoors_quartz_door")), ModBlocks.QUARTZ_DOOR.get()); + registerDoor(generator, BuiltInRegistries.BLOCK.get(DimensionalDoors.id("block_ag_dim_minecraft_oak_door")), Blocks.OAK_DOOR); + registerDoor(generator, BuiltInRegistries.BLOCK.get(DimensionalDoors.id("block_ag_dim_dimdoors_stone_door")), ModBlocks.STONE_DOOR.get()); + + + generator.woodProvider(ModBlocks.DRIFTWOOD_LOG.get()).log(ModBlocks.DRIFTWOOD_LOG.get()).wood(ModBlocks.DRIFTWOOD_WOOD.get()); + generator.family(ModBlocks.DRIFTWOOD_PLANKS.get()) + .fence(ModBlocks.DRIFTWOOD_FENCE.get()) + .fenceGate(ModBlocks.DRIFTWOOD_GATE.get()) + .button(ModBlocks.DRIFTWOOD_BUTTON.get()) + .slab(ModBlocks.DRIFTWOOD_SLAB.get()) + .stairs(ModBlocks.DRIFTWOOD_STAIRS.get()); + generator.createDoor(ModBlocks.DRIFTWOOD_DOOR.get()); + generator.createTrapdoor(ModBlocks.DRIFTWOOD_TRAPDOOR.get()); + + generator.family(ModBlocks.AMALGAM_BLOCK.get()) + .slab(ModBlocks.AMALGAM_SLAB.get()) + .stairs(ModBlocks.AMALGAM_STAIRS.get()); + generator.createDoor(ModBlocks.AMALGAM_DOOR.get()); + generator.createTrapdoor(ModBlocks.AMALGAM_TRAPDOOR.get()); + generator.createTrivialCube(ModBlocks.AMALGAM_ORE.get()); + generator.createTrivialCube(ModBlocks.RUST.get()); + + generator.createTrivialCube(ModBlocks.CLOD_ORE.get()); + generator.createTrivialCube(ModBlocks.CLOD_BLOCK.get()); + + generator.family(Blocks.GRAVEL) + .fence(ModBlocks.GRAVEL_FENCE.get()) + .button(ModBlocks.GRAVEL_BUTTON.get()) + .fenceGate(ModBlocks.GRAVEL_GATE.get()) + .slab(ModBlocks.GRAVEL_SLAB.get()) + .stairs(ModBlocks.GRAVEL_STAIRS.get()) + .wall(ModBlocks.GRAVEL_WALL.get()); + + generator.family(ModBlocks.DARK_SAND.get()) + .fence(ModBlocks.DARK_SAND_FENCE.get()) + .button(ModBlocks.DARK_SAND_BUTTON.get()) + .fenceGate(ModBlocks.DARK_SAND_GATE.get()) + .slab(ModBlocks.DARK_SAND_SLAB.get()) + .stairs(ModBlocks.DARK_SAND_STAIRS.get()) + .wall(ModBlocks.DARK_SAND_WALL.get()); + + generator.family(Blocks.CLAY) + .fence(ModBlocks.CLAY_FENCE.get()) + .fenceGate(ModBlocks.CLAY_GATE.get()) + .button(ModBlocks.CLAY_BUTTON.get()) + .slab(ModBlocks.CLAY_SLAB.get()) + .stairs(ModBlocks.CLAY_STAIRS.get()); + + + generator.family(ModBlocks.UNRAVELLED_FABRIC.get()) + .fence(ModBlocks.UNRAVELED_FENCE.get()) + .fenceGate(ModBlocks.UNRAVELED_GATE.get()) + .button(ModBlocks.UNRAVELED_BUTTON.get()) + .slab(ModBlocks.UNRAVELED_SLAB.get()) + .stairs(ModBlocks.UNRAVELED_STAIRS.get()); + + generator.family(Blocks.MUD) + .fence(ModBlocks.MUD_FENCE.get()) + .fenceGate(ModBlocks.MUD_GATE.get()) + .button(ModBlocks.MUD_BUTTON.get()) + .slab(ModBlocks.MUD_SLAB.get()) + .stairs(ModBlocks.MUD_STAIRS.get()); + + generator.family(Blocks.DEEPSLATE) + .slab(ModBlocks.DEEPSLATE_SLAB.get()) + .stairs(ModBlocks.DEEPSLATE_STAIRS.get()) + .wall(ModBlocks.DEEPSLATE_WALL.get()); + + generator.family(Blocks.RED_SAND) + .slab(ModBlocks.RED_SAND_SLAB.get()) + .stairs(ModBlocks.RED_SAND_STAIRS.get()) + .wall(ModBlocks.RED_SAND_WALL.get()); + + generator.family(Blocks.SAND) + .slab(ModBlocks.SAND_SLAB.get()) + .stairs(ModBlocks.SAND_STAIRS.get()) + .wall(ModBlocks.SAND_WALL.get()); + + generator.family(Blocks.END_STONE) + .slab(ModBlocks.END_STONE_SLAB.get()) + .stairs(ModBlocks.END_STONE_STAIRS.get()) + .wall(ModBlocks.END_STONE_WALL.get()); + + generator.family(Blocks.NETHERRACK) + .fence(ModBlocks.NETHERRACK_FENCE.get()) + .slab(ModBlocks.NETHERRACK_SLAB.get()) + .stairs(ModBlocks.NETHERRACK_STAIRS.get()) + .wall(ModBlocks.NETHERRACK_WALL.get()); + + generator.createTrivialCube(ModBlocks.DRIFTWOOD_LEAVES.get()); + generator.createCrossBlockWithDefaultItem(ModBlocks.DRIFTWOOD_SAPLING.get(), BlockModelGenerators.TintState.NOT_TINTED); //TODO: Decide if we need potted version + generator.createTrivialCube(ModBlocks.GRITTY_STONE.get()); + generator.family(ModBlocks.REALITY_SPONGE.get()); + + registerPointedDripstone(generator); + + } + + private void registerPointedDripstone(BlockModelGenerators generator) { + generator.skipAutoItemBlock(ModBlocks.UNRAVELED_SPIKE.get()); + PropertyDispatch.C2 doubleProperty = PropertyDispatch.properties(BlockStateProperties.VERTICAL_DIRECTION, BlockStateProperties.DRIPSTONE_THICKNESS); + for (DripstoneThickness thickness : DripstoneThickness.values()) { + doubleProperty.select(Direction.UP, thickness, generator.createPointedDripstoneVariant(Direction.UP, thickness)); + } + for (DripstoneThickness thickness : DripstoneThickness.values()) { + doubleProperty.select(Direction.DOWN, thickness, generator.createPointedDripstoneVariant(Direction.DOWN, thickness)); + } + generator.blockStateOutput.accept(MultiVariantGenerator.multiVariant(ModBlocks.UNRAVELED_SPIKE.get()).with(doubleProperty)); + } + + + public void registerDoor(BlockModelGenerators generator, Block doorBlock, Block textureSource) { + TextureMapping textureMap = TextureMapping.door(textureSource); + ResourceLocation identifier = ModelTemplates.DOOR_BOTTOM_LEFT.create(doorBlock, textureMap, generator.modelOutput); + ResourceLocation identifier2 = ModelTemplates.DOOR_BOTTOM_LEFT_OPEN.create(doorBlock, textureMap, generator.modelOutput); + ResourceLocation identifier3 = ModelTemplates.DOOR_BOTTOM_RIGHT.create(doorBlock, textureMap, generator.modelOutput); + ResourceLocation identifier4 = ModelTemplates.DOOR_BOTTOM_RIGHT_OPEN.create(doorBlock, textureMap, generator.modelOutput); + ResourceLocation identifier5 = ModelTemplates.DOOR_TOP_LEFT.create(doorBlock, textureMap, generator.modelOutput); + ResourceLocation identifier6 = ModelTemplates.DOOR_TOP_LEFT_OPEN.create(doorBlock, textureMap, generator.modelOutput); + ResourceLocation identifier7 = ModelTemplates.DOOR_TOP_RIGHT.create(doorBlock, textureMap, generator.modelOutput); + ResourceLocation identifier8 = ModelTemplates.DOOR_TOP_RIGHT_OPEN.create(doorBlock, textureMap, generator.modelOutput); + generator.createSimpleFlatItemModel(doorBlock.asItem()); + generator.blockStateOutput.accept(BlockModelGenerators.createDoor(doorBlock, identifier, identifier2, identifier3, identifier4, identifier5, identifier6, identifier7, identifier8)); + } + + @Override + public void generateItemModels(ItemModelGenerators itemModelGenerator) { + itemModelGenerator.generateFlatItem(ModItems.FUZZY_FIREBALL.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.FABRIC_OF_FINALITY.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.LIMINAL_LINT.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.ENDURING_FIBERS.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.RIFT_PEARL.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.AMALGAM_LUMP.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.CLOD.get(), ModelTemplates.FLAT_ITEM); + + itemModelGenerator.generateFlatItem(ModItems.GARMENT_OF_REALITY_BOOTS.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.GARMENT_OF_REALITY_CHESTPLATE.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.GARMENT_OF_REALITY_HELMET.get(), ModelTemplates.FLAT_ITEM); + itemModelGenerator.generateFlatItem(ModItems.GARMENT_OF_REALITY_LEGGINGS.get(), ModelTemplates.FLAT_ITEM); + } +} diff --git a/forge/src/main/datagen/BlockTagProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/BlockTagProvider.java similarity index 69% rename from forge/src/main/datagen/BlockTagProvider.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/BlockTagProvider.java index e5447591..69cdf90d 100644 --- a/forge/src/main/datagen/BlockTagProvider.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/BlockTagProvider.java @@ -1,23 +1,25 @@ package org.dimdev.dimdoors.datagen; +import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider; +import net.minecraft.core.Holder; import net.minecraft.core.HolderGetter; import net.minecraft.core.HolderLookup; -import net.minecraft.data.PackOutput; import net.minecraft.tags.BlockTags; +import net.minecraft.tags.TagKey; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import net.minecraftforge.common.data.BlockTagsProvider; -import net.minecraftforge.common.data.ExistingFileHelper; import org.dimdev.dimdoors.block.ModBlocks; import org.dimdev.dimdoors.tag.ModBlockTags; -import org.jetbrains.annotations.Nullable; import java.util.concurrent.CompletableFuture; +import java.util.stream.Stream; -public class BlockTagProvider extends BlockTagsProvider { +public class BlockTagProvider extends FabricTagProvider.BlockTagProvider { - public BlockTagProvider(PackOutput output, CompletableFuture lookupProvider, String modId, @Nullable ExistingFileHelper existingFileHelper) { - super(output, lookupProvider, modId, existingFileHelper); + public BlockTagProvider(FabricDataOutput output, CompletableFuture lookupProvider) { + super(output, lookupProvider); } @Override @@ -26,7 +28,7 @@ public class BlockTagProvider extends BlockTagsProvider { } protected void configure(HolderGetter.Provider arg) { - tag(ModBlockTags.DECAY_TO_AIR).add( + add(ModBlockTags.DECAY_TO_AIR, Blocks.COBWEB, ModBlocks.DRIFTWOOD_LEAVES.get(), ModBlocks.DRIFTWOOD_SAPLING.get(), @@ -36,45 +38,45 @@ public class BlockTagProvider extends BlockTagsProvider { Blocks.RAIL, ModBlocks.RUST.get(), ModBlocks.UNRAVELED_SPIKE.get()); - tag(ModBlockTags.DECAY_TO_RAIL).add( + add(ModBlockTags.DECAY_TO_RAIL, Blocks.ACTIVATOR_RAIL, Blocks.DETECTOR_RAIL, Blocks.POWERED_RAIL); - tag(ModBlockTags.DECAY_TO_GRITTY_STONE).add( + add(ModBlockTags.DECAY_TO_GRITTY_STONE, Blocks.INFESTED_STONE, Blocks.INFESTED_COBBLESTONE, Blocks.INFESTED_STONE_BRICKS, Blocks.INFESTED_MOSSY_STONE_BRICKS, Blocks.INFESTED_CRACKED_STONE_BRICKS, Blocks.INFESTED_CHISELED_STONE_BRICKS); - tag(ModBlockTags.DECAY_TO_SOLID_STATIC).add( + add(ModBlockTags.DECAY_TO_SOLID_STATIC, Blocks.BEDROCK, Blocks.END_PORTAL_FRAME, Blocks.COMMAND_BLOCK, Blocks.CHAIN_COMMAND_BLOCK, Blocks.REPEATING_COMMAND_BLOCK ); - tag(ModBlockTags.DECAY_UNRAVELED_FENCE).add( + add(ModBlockTags.DECAY_UNRAVELED_FENCE, ModBlocks.CLAY_FENCE.get(), ModBlocks.DARK_SAND_FENCE.get() ); - tag(ModBlockTags.DECAY_UNRAVELED_GATE).add( + add(ModBlockTags.DECAY_UNRAVELED_GATE, ModBlocks.CLAY_GATE.get(), ModBlocks.DARK_SAND_GATE.get() ); - tag(ModBlockTags.DECAY_UNRAVELED_BUTTON).add( + add(ModBlockTags.DECAY_UNRAVELED_BUTTON, ModBlocks.CLAY_BUTTON.get(), ModBlocks.DARK_SAND_BUTTON.get() ); - tag(ModBlockTags.DECAY_UNRAVELED_SLAB).add( + add(ModBlockTags.DECAY_UNRAVELED_SLAB, ModBlocks.CLAY_SLAB.get(), ModBlocks.DARK_SAND_SLAB.get() ); - tag(ModBlockTags.DECAY_UNRAVELED_STAIRS).add( + add(ModBlockTags.DECAY_UNRAVELED_STAIRS, ModBlocks.CLAY_STAIRS.get(), ModBlocks.DARK_SAND_STAIRS.get() ); - tag(ModBlockTags.DECAY_TO_GLASS_PANE).add( + add(ModBlockTags.DECAY_TO_GLASS_PANE, Blocks.GRAY_STAINED_GLASS_PANE, Blocks.BLACK_STAINED_GLASS_PANE, Blocks.ORANGE_STAINED_GLASS_PANE, @@ -92,7 +94,7 @@ public class BlockTagProvider extends BlockTagsProvider { Blocks.WHITE_STAINED_GLASS_PANE, Blocks.YELLOW_STAINED_GLASS_PANE ); - tag(ModBlockTags.DECAY_TO_RUST).add( + add(ModBlockTags.DECAY_TO_RUST, //REDSTONE VARIANTS Blocks.LIGHTNING_ROD, Blocks.LANTERN, @@ -102,38 +104,38 @@ public class BlockTagProvider extends BlockTagsProvider { Blocks.CAULDRON, Blocks.BELL ); - tag(ModBlockTags.DECAY_TO_UNRAVELED_SPIKE).add( + add(ModBlockTags.DECAY_TO_UNRAVELED_SPIKE, Blocks.END_ROD, Blocks.POINTED_DRIPSTONE ).addTag(BlockTags.FLOWER_POTS).addTag(BlockTags.CANDLES); tag(ModBlockTags.DECAY_TO_WITHER_ROSE).addTag(BlockTags.SMALL_FLOWERS).addTag(BlockTags.TALL_FLOWERS); - tag(ModBlockTags.DECAY_TO_CLAY).add( + add(ModBlockTags.DECAY_TO_CLAY, ModBlocks.AMALGAM_BLOCK.get(), Blocks.MUD, Blocks.TERRACOTTA, Blocks.BRICKS ); - tag(ModBlockTags.DECAY_CLAY_FENCE).add( + add(ModBlockTags.DECAY_CLAY_FENCE, ModBlocks.CLAY_FENCE.get(), ModBlocks.MUD_FENCE.get() ); - tag(ModBlockTags.DECAY_CLAY_GATE).add( + add(ModBlockTags.DECAY_CLAY_GATE, ModBlocks.CLAY_GATE.get(), ModBlocks.MUD_GATE.get() ); - tag(ModBlockTags.DECAY_CLAY_BUTTON).add( + add(ModBlockTags.DECAY_CLAY_BUTTON, ModBlocks.CLAY_BUTTON.get(), ModBlocks.MUD_BUTTON.get() ); - tag(ModBlockTags.DECAY_CLAY_SLAB).add( + add(ModBlockTags.DECAY_CLAY_SLAB, ModBlocks.CLAY_SLAB.get(), ModBlocks.MUD_SLAB.get() ); - tag(ModBlockTags.DECAY_CLAY_STAIRS).add( + add(ModBlockTags.DECAY_CLAY_STAIRS, ModBlocks.CLAY_STAIRS.get(), ModBlocks.MUD_STAIRS.get() ); - tag(ModBlockTags.DECAY_TO_DARK_SAND).add( + add(ModBlockTags.DECAY_TO_DARK_SAND, Blocks.AMETHYST_BLOCK, Blocks.GLASS, Blocks.GRAVEL, @@ -146,4 +148,10 @@ public class BlockTagProvider extends BlockTagsProvider { // tag(ModBlockTags.DECAY_DARK_SAND_WALL); // tag(ModBlockTags.DECAY_TO_AMALGAM); } + + private TagAppender add(TagKey tag, Block... blocks) { + var appender = tag(tag); + Stream.of(blocks).map(Block::builtInRegistryHolder).map(Holder.Reference::key).forEach(appender::add); + return appender; + } } diff --git a/forge/src/main/datagen/ColoredFabricRecipeProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/ColoredFabricRecipeProvider.java similarity index 96% rename from forge/src/main/datagen/ColoredFabricRecipeProvider.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/ColoredFabricRecipeProvider.java index 9206d679..c0c12cab 100644 --- a/forge/src/main/datagen/ColoredFabricRecipeProvider.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/ColoredFabricRecipeProvider.java @@ -1,4 +1,4 @@ -package datagen.org.dimdev.dimdoors.datagen; +package org.dimdev.dimdoors.datagen; import dev.architectury.registry.registries.RegistrySupplier; import net.minecraft.advancements.critereon.InventoryChangeTrigger; diff --git a/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/DatagenInitializer.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/DatagenInitializer.java new file mode 100644 index 00000000..c340d85d --- /dev/null +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/DatagenInitializer.java @@ -0,0 +1,27 @@ +package org.dimdev.dimdoors.datagen; + +import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint; +import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; +import net.minecraft.data.DataProvider; +import org.dimdev.dimdoors.DimensionalDoors; +import org.jetbrains.annotations.Nullable; + +public class DatagenInitializer implements DataGeneratorEntrypoint { + + @Override + public void onInitializeDataGenerator(FabricDataGenerator generator) { + var pack = generator.createPack(); + + pack.addProvider(BlockStateProvider::new); + pack.addProvider((DataProvider.Factory) DimdoorsRecipeProvider::new); + pack.addProvider((FabricDataGenerator.Pack.RegistryDependentFactory) AdvancementProvider::new); + pack.addProvider((DataProvider.Factory) org.dimdev.dimdoors.datagen.LootTableProvider::new); + pack.addProvider((DataProvider.Factory) org.dimdev.dimdoors.datagen.LimboDecayProvider::new); + pack.addProvider((FabricDataGenerator.Pack.RegistryDependentFactory) BlockTagProvider::new); + } + + @Override + public @Nullable String getEffectiveModId() { + return DimensionalDoors.MOD_ID; + } +} diff --git a/forge/src/main/datagen/DimdoorsRecipeProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/DimdoorsRecipeProvider.java similarity index 96% rename from forge/src/main/datagen/DimdoorsRecipeProvider.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/DimdoorsRecipeProvider.java index 8f813f5f..ca4a36ec 100644 --- a/forge/src/main/datagen/DimdoorsRecipeProvider.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/DimdoorsRecipeProvider.java @@ -1,4 +1,4 @@ -package datagen.org.dimdev.dimdoors.datagen; +package org.dimdev.dimdoors.datagen; import net.minecraft.advancements.critereon.InventoryChangeTrigger; import net.minecraft.core.registries.Registries; @@ -9,13 +9,12 @@ import net.minecraft.tags.TagKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Blocks; +import org.dimdev.dimdoors.DimensionalDoors; import org.dimdev.dimdoors.block.ModBlocks; import org.dimdev.dimdoors.item.ModItems; import java.util.function.Consumer; -import static org.dimdev.dimdoors.DimensionalDoors.id; - public class DimdoorsRecipeProvider extends RecipeProvider { private static final TagKey GOLD_INGOTS = TagKey.create(Registries.ITEM, new ResourceLocation("c", "gold_ingots")); private static final TagKey IRON_INGOTS = TagKey.create(Registries.ITEM, new ResourceLocation("c", "iron_ingots")); @@ -26,7 +25,7 @@ public class DimdoorsRecipeProvider extends RecipeProvider { } @Override - protected void buildRecipes(Consumer exporter) { + public void buildRecipes(Consumer exporter) { //TODO: Find out proper RecipeCategory for these? I just random added this to make it work. ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.STONE_DOOR.get()).pattern("XX").pattern("XX").pattern("XX").define('X', Blocks.STONE).unlockedBy("inventory_changed", InventoryChangeTrigger.TriggerInstance.hasItems(Blocks.STONE)).save(exporter, DimensionalDoors.id("stone_door")); ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModBlocks.GOLD_DOOR.get(), 3).pattern("XX").pattern("XX").pattern("XX").define('X', GOLD_INGOTS).unlockedBy("inventory_changed", InventoryChangeTrigger.TriggerInstance.hasItems(Items.GOLD_INGOT)).save(exporter, DimensionalDoors.id("gold_door")); diff --git a/forge/src/main/datagen/LimboDecayProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/LimboDecayProvider.java similarity index 99% rename from forge/src/main/datagen/LimboDecayProvider.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/LimboDecayProvider.java index 846ac935..be57937b 100644 --- a/forge/src/main/datagen/LimboDecayProvider.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/LimboDecayProvider.java @@ -20,6 +20,7 @@ import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Fluids; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.dimdev.dimdoors.DimensionalDoors; import org.dimdev.dimdoors.api.util.ResourceUtil; import org.dimdev.dimdoors.block.ModBlocks; import org.dimdev.dimdoors.tag.ModBlockTags; @@ -41,9 +42,6 @@ import java.util.function.BiConsumer; import java.util.function.Function; import java.util.stream.Stream; -import static net.minecraft.world.level.block.Blocks.*; -import static org.dimdev.dimdoors.DimensionalDoors.id; - public class LimboDecayProvider implements DataProvider { private static final Logger LOGGER = LogManager.getLogger(); private static final Gson GSON = (new GsonBuilder()).setPrettyPrinting().disableHtmlEscaping().create(); diff --git a/forge/src/main/datagen/LootTableProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/LootTableProvider.java similarity index 100% rename from forge/src/main/datagen/LootTableProvider.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/LootTableProvider.java diff --git a/forge/src/main/datagen/TesselatingRecipeJsonBuilder.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/TesselatingRecipeJsonBuilder.java similarity index 98% rename from forge/src/main/datagen/TesselatingRecipeJsonBuilder.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/TesselatingRecipeJsonBuilder.java index a429e64a..c1787706 100644 --- a/forge/src/main/datagen/TesselatingRecipeJsonBuilder.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/TesselatingRecipeJsonBuilder.java @@ -1,4 +1,4 @@ -package datagen.org.dimdev.dimdoors.datagen; +package org.dimdev.dimdoors.datagen; import com.google.common.collect.Lists; import com.google.common.collect.Maps; @@ -13,6 +13,7 @@ import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.CraftingRecipeBuilder; import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.data.recipes.RecipeBuilder; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.TagKey; @@ -28,8 +29,6 @@ import java.util.Map; import java.util.Set; import java.util.function.Consumer; -import static net.minecraft.data.recipes.RecipeBuilder.ROOT_RECIPE_ADVANCEMENT; - public class TesselatingRecipeJsonBuilder extends CraftingRecipeBuilder { private final RecipeCategory category; private final Item output; diff --git a/forge/src/main/datagen/TesselatingRecipeProvider.java b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/TesselatingRecipeProvider.java similarity index 96% rename from forge/src/main/datagen/TesselatingRecipeProvider.java rename to fabric/src/main/datagen/org/dimdev/dimdoors/datagen/TesselatingRecipeProvider.java index 6c20e09b..0ab285ed 100644 --- a/forge/src/main/datagen/TesselatingRecipeProvider.java +++ b/fabric/src/main/datagen/org/dimdev/dimdoors/datagen/TesselatingRecipeProvider.java @@ -1,5 +1,6 @@ -package datagen.org.dimdev.dimdoors.datagen; +package org.dimdev.dimdoors.datagen; +import net.minecraft.advancements.critereon.InventoryChangeTrigger.TriggerInstance; import net.minecraft.data.recipes.FinishedRecipe; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; @@ -9,8 +10,6 @@ import org.dimdev.dimdoors.item.ModItems; import java.util.function.Consumer; -import static net.minecraft.advancements.critereon.InventoryChangeTrigger.TriggerInstance.hasItems; - public class TesselatingRecipeProvider { public static void generate(Consumer exporter) { TesselatingRecipeJsonBuilder.create(ModItems.STABLE_FABRIC.get()).pattern("XX").pattern("XX").input('X', ModItems.WORLD_THREAD.get()).criterion("world_thread", TriggerInstance.hasItems(ModItems.WORLD_THREAD.get())).offerTo(exporter, DimensionalDoors.id("stable_fabric")); diff --git a/fabric/src/main/java/org/dimdev/dimdoors/DimensionalDoorsComponents.java b/fabric/src/main/java/org/dimdev/dimdoors/DimensionalDoorsComponents.java index c3313852..b0465234 100644 --- a/fabric/src/main/java/org/dimdev/dimdoors/DimensionalDoorsComponents.java +++ b/fabric/src/main/java/org/dimdev/dimdoors/DimensionalDoorsComponents.java @@ -6,24 +6,19 @@ import dev.onyxstudios.cca.api.v3.component.ComponentKey; import dev.onyxstudios.cca.api.v3.component.ComponentRegistryV3; import dev.onyxstudios.cca.api.v3.item.ItemComponentFactoryRegistry; import dev.onyxstudios.cca.api.v3.item.ItemComponentInitializer; -import dev.onyxstudios.cca.api.v3.level.LevelComponentFactoryRegistry; -import dev.onyxstudios.cca.api.v3.level.LevelComponentInitializer; +import dev.onyxstudios.cca.api.v3.world.WorldComponentFactoryRegistry; +import dev.onyxstudios.cca.api.v3.world.WorldComponentInitializer; import org.dimdev.dimdoors.item.ModItems; import org.dimdev.dimdoors.item.component.fabric.CounterComponentImpl; import org.dimdev.dimdoors.world.level.component.fabric.ChunkLazilyGeneratedComponentImpl; import org.dimdev.dimdoors.world.level.registry.fabric.DimensionalRegistryImpl; @SuppressWarnings("UnstableApiUsage") -public class DimensionalDoorsComponents implements LevelComponentInitializer, ItemComponentInitializer, ChunkComponentInitializer { +public class DimensionalDoorsComponents implements WorldComponentInitializer, ItemComponentInitializer, ChunkComponentInitializer { public static final ComponentKey DIMENSIONAL_REGISTRY_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(DimensionalDoors.id("dimensional_registry"), DimensionalRegistryImpl.class); public static final ComponentKey COUNTER_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(DimensionalDoors.id("counter"), CounterComponentImpl.class); public static final ComponentKey CHUNK_LAZILY_GENERATED_COMPONENT_KEY = ComponentRegistryV3.INSTANCE.getOrCreate(DimensionalDoors.id("chunk_lazily_generated"), ChunkLazilyGeneratedComponentImpl.class); - @Override - public void registerLevelComponentFactories(LevelComponentFactoryRegistry registry) { - registry.register(DIMENSIONAL_REGISTRY_COMPONENT_KEY, level -> new DimensionalRegistryImpl()); - } - @Override public void registerItemComponentFactories(ItemComponentFactoryRegistry registry) { registry.register(ModItems.RIFT_CONFIGURATION_TOOL.get(), COUNTER_COMPONENT_KEY, CounterComponentImpl::new); @@ -33,4 +28,9 @@ public class DimensionalDoorsComponents implements LevelComponentInitializer, It public void registerChunkComponentFactories(ChunkComponentFactoryRegistry registry) { registry.register(CHUNK_LAZILY_GENERATED_COMPONENT_KEY, chunk -> new ChunkLazilyGeneratedComponentImpl()); } + + @Override + public void registerWorldComponentFactories(WorldComponentFactoryRegistry worldComponentFactoryRegistry) { + worldComponentFactoryRegistry.register(DIMENSIONAL_REGISTRY_COMPONENT_KEY, level -> new DimensionalRegistryImpl()); + } } diff --git a/fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorModelVariantProvider.java b/fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorModelVariantProvider.java new file mode 100644 index 00000000..af0d8d68 --- /dev/null +++ b/fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorModelVariantProvider.java @@ -0,0 +1,51 @@ +package org.dimdev.dimdoors.client; + +import net.fabricmc.fabric.api.client.model.ModelProviderContext; +import net.fabricmc.fabric.api.client.model.ModelProviderException; +import net.fabricmc.fabric.api.client.model.ModelVariantProvider; +import net.minecraft.client.resources.model.ModelResourceLocation; +import net.minecraft.client.resources.model.UnbakedModel; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.Property; +import org.dimdev.dimdoors.DimensionalDoors; +import org.dimdev.dimdoors.block.door.DimensionalDoorBlockRegistrar; +import org.dimdev.dimdoors.item.door.DimensionalDoorItemRegistrar; +import org.jetbrains.annotations.Nullable; + +import java.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +public class DimensionalDoorModelVariantProvider implements ModelVariantProvider { + private static final ResourceLocation childItem = DimensionalDoors.id("item/child_item"); + + @Override + public @Nullable UnbakedModel loadModelVariant(ModelResourceLocation modelId, ModelProviderContext context) throws ModelProviderException { + ResourceLocation identifier = new ResourceLocation(modelId.getNamespace(), modelId.getPath()); + + DimensionalDoorBlockRegistrar blockRegistrar = DimensionalDoors.getDimensionalDoorBlockRegistrar(); + if (blockRegistrar.isMapped(identifier)) { + ResourceLocation mapped = blockRegistrar.get(identifier); + //ModelIdentifier newId = new ModelIdentifier(mapped, modelId.getVariant()); + //UnbakedModel model = context.loadModel(newId); + //if (model != null) return model; + + Block original = BuiltInRegistries.BLOCK.get(mapped); + Set originalProperties = original.getStateDefinition().getProperties().stream().map(Property::getName).collect(Collectors.toSet()); + + List variantArray = new ArrayList<>(); + for (String part : modelId.getVariant().split(",")) { + if (originalProperties.contains(part.split("=")[0])) variantArray.add(part); + } + String variant = String.join(",", variantArray); + ModelResourceLocation newId = new ModelResourceLocation(mapped, variant); + return context.loadModel(newId); + } else if (identifier.getPath().startsWith(DimensionalDoorItemRegistrar.PREFIX)) { + return context.loadModel(childItem); + } + return null; + } +} diff --git a/fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClientFabric.java b/fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClientFabric.java index 6c5a6fa1..dccf61ea 100644 --- a/fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClientFabric.java +++ b/fabric/src/main/java/org/dimdev/dimdoors/client/DimensionalDoorsClientFabric.java @@ -1,6 +1,7 @@ package org.dimdev.dimdoors.client; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry; public class DimensionalDoorsClientFabric implements ClientModInitializer { @@ -8,5 +9,6 @@ public class DimensionalDoorsClientFabric implements ClientModInitializer { public void onInitializeClient() { DimensionalDoorsClient.init(); DimensionRenderering.initClient(); + ModelLoadingRegistry.INSTANCE.registerVariantProvider((manager) -> new DimensionalDoorModelVariantProvider()); } } diff --git a/fabric/src/main/java/org/dimdev/dimdoors/fabric/DimensionalDoorsImpl.java b/fabric/src/main/java/org/dimdev/dimdoors/fabric/DimensionalDoorsImpl.java index 4f8c0655..94f3b1e8 100644 --- a/fabric/src/main/java/org/dimdev/dimdoors/fabric/DimensionalDoorsImpl.java +++ b/fabric/src/main/java/org/dimdev/dimdoors/fabric/DimensionalDoorsImpl.java @@ -1,11 +1,20 @@ package org.dimdev.dimdoors.fabric; +import net.fabricmc.fabric.api.resource.ResourceManagerHelper; +import net.fabricmc.fabric.api.resource.ResourcePackActivationType; import net.fabricmc.loader.api.FabricLoader; import java.nio.file.Path; +import static org.dimdev.dimdoors.DimensionalDoors.*; + public class DimensionalDoorsImpl { public static Path getConfigRoot() { return FabricLoader.getInstance().getConfigDir(); } + + public static void initBuiltinPacks() { + ResourceManagerHelper.registerBuiltinResourcePack(id("default"), FabricLoader.getInstance().getModContainer(MOD_ID).get(), ResourcePackActivationType.DEFAULT_ENABLED); + ResourceManagerHelper.registerBuiltinResourcePack(id("classic"), FabricLoader.getInstance().getModContainer(MOD_ID).get(), ResourcePackActivationType.DEFAULT_ENABLED); + } } diff --git a/fabric/src/main/java/org/dimdev/dimdoors/world/level/registry/fabric/DimensionalRegistryImpl.java b/fabric/src/main/java/org/dimdev/dimdoors/world/level/registry/fabric/DimensionalRegistryImpl.java index e894f8cb..0c2304eb 100644 --- a/fabric/src/main/java/org/dimdev/dimdoors/world/level/registry/fabric/DimensionalRegistryImpl.java +++ b/fabric/src/main/java/org/dimdev/dimdoors/world/level/registry/fabric/DimensionalRegistryImpl.java @@ -1,7 +1,6 @@ package org.dimdev.dimdoors.world.level.registry.fabric; import dev.onyxstudios.cca.api.v3.component.ComponentV3; -import net.minecraft.server.dedicated.DedicatedServer; import org.dimdev.dimdoors.DimensionalDoorsComponents; import org.dimdev.dimdoors.world.level.registry.DimensionalRegistry; @@ -9,6 +8,6 @@ import static org.dimdev.dimdoors.DimensionalDoors.getServer; public class DimensionalRegistryImpl extends DimensionalRegistry implements ComponentV3 { public static DimensionalRegistry instance() { - return DimensionalDoorsComponents.DIMENSIONAL_REGISTRY_COMPONENT_KEY.get(((DedicatedServer) getServer()).getProperties()); + return DimensionalDoorsComponents.DIMENSIONAL_REGISTRY_COMPONENT_KEY.get((getServer().overworld())); } } diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index c8da8ea6..a82e097b 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -32,6 +32,7 @@ "org.dimdev.dimdoors.DimensionalDoorsComponents" ], "fabric-datagen": [ + "org.dimdev.dimdoors.datagen.DatagenInitializer" ] }, "mixins": [ diff --git a/forge/build.gradle b/forge/build.gradle index 631cb52b..3eabfddc 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -8,15 +8,6 @@ architectury { } loom { - runs { - data { - data() - programArgs("--all", "--mod", "dimdoors") - programArgs("--output", project(":common").file("src/main/generated/resources").absolutePath) - programArgs("--existing", project(":common").file("src/main/resources").absolutePath) - } - } - accessWidenerPath = project(":common").loom.accessWidenerPath forge { @@ -71,6 +62,11 @@ processResources { filesMatching("META-INF/mods.toml") { expand "version": project.version } + + from(rootProject.file("common/src/main/resources")) { + include("**/**") + duplicatesStrategy = DuplicatesStrategy.WARN + } } shadowJar { @@ -103,13 +99,6 @@ components.java { } } -sourceSets { - main { - java { - srcDir "src/main/datagen" - } - } -} publishing { publications { diff --git a/forge/src/main/datagen/BlockStateProvider.java b/forge/src/main/datagen/BlockStateProvider.java deleted file mode 100644 index eb41eb9e..00000000 --- a/forge/src/main/datagen/BlockStateProvider.java +++ /dev/null @@ -1,156 +0,0 @@ -package datagen.org.dimdev.dimdoors.datagen; - -//public class BlockStateProvider extends FabricModelProvider { -// public BlockStateProvider(FabricDataOutput dataGenerator) { -// super(dataGenerator); -// } -// -// @Override -// public void generateBlockStateModels(BlockStateModelGenerator generator) { -// generator.registerDoor(ModBlocks.GOLD_DOOR); -// generator.registerDoor(ModBlocks.STONE_DOOR); -// generator.registerDoor(ModBlocks.QUARTZ_DOOR); -//// registerDoor(generator, Registries.BLOCK.get(DimensionalDoors.id("block_ag_dim_minecraft_iron_door")), Blocks.IRON_DOOR); -//// registerDoor(generator, Registries.BLOCK.get(DimensionalDoors.id("block_ag_dim_dimdoors_gold_door")), ModBlocks.GOLD_DOOR); -//// registerDoor(generator, Registries.BLOCK.get(DimensionalDoors.id("quartz_dimensional_door")), ModBlocks.QUARTZ_DOOR); -//// registerDoor(generator, Registries.BLOCK.get(DimensionalDoors.id("block_ag_dim_minecraft_oak_door")), Blocks.OAK_DOOR); -//// registerDoor(generator, Registry.BLOCK.get(Util.id("dungeon_door")), ModBlocks.STONE_DOOR); -// -// -// generator.registerLog(ModBlocks.DRIFTWOOD_LOG).log(ModBlocks.DRIFTWOOD_LOG).wood(ModBlocks.DRIFTWOOD_WOOD); -// generator.registerCubeAllModelTexturePool(ModBlocks.DRIFTWOOD_PLANKS) -// .fence(ModBlocks.DRIFTWOOD_FENCE) -// .fenceGate(ModBlocks.DRIFTWOOD_GATE) -// .button(ModBlocks.DRIFTWOOD_BUTTON) -// .slab(ModBlocks.DRIFTWOOD_SLAB) -// .stairs(ModBlocks.DRIFTWOOD_STAIRS); -// generator.registerDoor(ModBlocks.DRIFTWOOD_DOOR); -// generator.registerTrapdoor(ModBlocks.DRIFTWOOD_TRAPDOOR); -// -// generator.registerCubeAllModelTexturePool(ModBlocks.AMALGAM_BLOCK) -// .slab(ModBlocks.AMALGAM_SLAB) -// .stairs(ModBlocks.AMALGAM_STAIRS); -// generator.registerDoor(ModBlocks.AMALGAM_DOOR); -// generator.registerTrapdoor(ModBlocks.AMALGAM_TRAPDOOR); -// generator.registerSimpleCubeAll(ModBlocks.AMALGAM_ORE); -// generator.registerSimpleCubeAll(ModBlocks.RUST); -// -// generator.registerSimpleCubeAll(ModBlocks.CLOD_ORE); -// generator.registerSimpleCubeAll(ModBlocks.CLOD_BLOCK); -// -// generator.registerCubeAllModelTexturePool(Blocks.GRAVEL) -// .fence(ModBlocks.GRAVEL_FENCE) -// .button(ModBlocks.GRAVEL_BUTTON) -// .fenceGate(ModBlocks.GRAVEL_GATE) -// .slab(ModBlocks.GRAVEL_SLAB) -// .stairs(ModBlocks.GRAVEL_STAIRS) -// .wall(ModBlocks.GRAVEL_WALL); -// -// generator.registerCubeAllModelTexturePool(ModBlocks.DARK_SAND) -// .fence(ModBlocks.DARK_SAND_FENCE) -// .button(ModBlocks.DARK_SAND_BUTTON) -// .fenceGate(ModBlocks.DARK_SAND_GATE) -// .slab(ModBlocks.DARK_SAND_SLAB) -// .stairs(ModBlocks.DARK_SAND_STAIRS) -// .wall(ModBlocks.DARK_SAND_WALL); -// -// generator.registerCubeAllModelTexturePool(Blocks.CLAY) -// .fence(ModBlocks.CLAY_FENCE) -// .fenceGate(ModBlocks.CLAY_GATE) -// .button(ModBlocks.CLAY_BUTTON) -// .slab(ModBlocks.CLAY_SLAB) -// .stairs(ModBlocks.CLAY_STAIRS); -// -// -// generator.registerCubeAllModelTexturePool(ModBlocks.UNRAVELLED_FABRIC) -// .fence(ModBlocks.UNRAVELED_FENCE) -// .fenceGate(ModBlocks.UNRAVELED_GATE) -// .button(ModBlocks.UNRAVELED_BUTTON) -// .slab(ModBlocks.UNRAVELED_SLAB) -// .stairs(ModBlocks.UNRAVELED_STAIRS); -// -// generator.registerCubeAllModelTexturePool(Blocks.MUD) -// .fence(ModBlocks.MUD_FENCE) -// .fenceGate(ModBlocks.MUD_GATE) -// .button(ModBlocks.MUD_BUTTON) -// .slab(ModBlocks.MUD_SLAB) -// .stairs(ModBlocks.MUD_STAIRS); -// -// generator.registerCubeAllModelTexturePool(Blocks.DEEPSLATE) -// .slab(ModBlocks.DEEPSLATE_SLAB) -// .stairs(ModBlocks.DEEPSLATE_STAIRS) -// .wall(ModBlocks.DEEPSLATE_WALL); -// -// generator.registerCubeAllModelTexturePool(Blocks.RED_SAND) -// .slab(ModBlocks.RED_SAND_SLAB) -// .stairs(ModBlocks.RED_SAND_STAIRS) -// .wall(ModBlocks.RED_SAND_WALL); -// -// generator.registerCubeAllModelTexturePool(Blocks.SAND) -// .slab(ModBlocks.SAND_SLAB) -// .stairs(ModBlocks.SAND_STAIRS) -// .wall(ModBlocks.SAND_WALL); -// -// generator.registerCubeAllModelTexturePool(Blocks.END_STONE) -// .slab(ModBlocks.END_STONE_SLAB) -// .stairs(ModBlocks.END_STONE_STAIRS) -// .wall(ModBlocks.END_STONE_WALL); -// -// generator.registerCubeAllModelTexturePool(Blocks.NETHERRACK) -// .fence(ModBlocks.NETHERRACK_FENCE) -// .slab(ModBlocks.NETHERRACK_SLAB) -// .stairs(ModBlocks.NETHERRACK_STAIRS) -// .wall(ModBlocks.NETHERRACK_WALL); -// -// generator.registerSimpleCubeAll(ModBlocks.DRIFTWOOD_LEAVES); -// generator.registerTintableCross(ModBlocks.DRIFTWOOD_SAPLING, BlockStateModelGenerator.TintType.NOT_TINTED); //TODO: Decide if we need potted version -// generator.registerSimpleCubeAll(ModBlocks.GRITTY_STONE); -// generator.registerCubeAllModelTexturePool(ModBlocks.REALITY_SPONGE); -// -// registerPointedDripstone(generator); -// -// } -// -// private void registerPointedDripstone(BlockStateModelGenerator generator) { -// generator.excludeFromSimpleItemModelGeneration(ModBlocks.UNRAVELED_SPIKE); -// BlockStateVariantMap.DoubleProperty doubleProperty = BlockStateVariantMap.create(Properties.VERTICAL_DIRECTION, Properties.THICKNESS); -// for (Thickness thickness : Thickness.values()) { -// doubleProperty.register(Direction.UP, thickness, generator.getDripstoneVariant(Direction.UP, thickness)); -// } -// for (Thickness thickness : Thickness.values()) { -// doubleProperty.register(Direction.DOWN, thickness, generator.getDripstoneVariant(Direction.DOWN, thickness)); -// } -// generator.blockStateCollector.accept(VariantsBlockStateSupplier.create(ModBlocks.UNRAVELED_SPIKE).coordinate(doubleProperty)); -// } -// -// -// public void registerDoor(BlockStateModelGenerator generator, Block doorBlock, Block textureSource) { -// TextureMap textureMap = TextureMap.topBottom(textureSource); -// Identifier identifier = Models.DOOR_BOTTOM_LEFT.upload(doorBlock, textureMap, generator.modelCollector); -// Identifier identifier2 = Models.DOOR_BOTTOM_LEFT_OPEN.upload(doorBlock, textureMap, generator.modelCollector); -// Identifier identifier3 = Models.DOOR_BOTTOM_RIGHT.upload(doorBlock, textureMap, generator.modelCollector); -// Identifier identifier4 = Models.DOOR_BOTTOM_RIGHT_OPEN.upload(doorBlock, textureMap, generator.modelCollector); -// Identifier identifier5 = Models.DOOR_TOP_LEFT.upload(doorBlock, textureMap, generator.modelCollector); -// Identifier identifier6 = Models.DOOR_TOP_LEFT_OPEN.upload(doorBlock, textureMap, generator.modelCollector); -// Identifier identifier7 = Models.DOOR_TOP_RIGHT.upload(doorBlock, textureMap, generator.modelCollector); -// Identifier identifier8 = Models.DOOR_TOP_RIGHT_OPEN.upload(doorBlock, textureMap, generator.modelCollector); -// generator.registerItemModel(doorBlock.asItem()); -// generator.blockStateCollector.accept(BlockStateModelGenerator.createDoorBlockState(doorBlock, identifier, identifier2, identifier3, identifier4, identifier5, identifier6, identifier7, identifier8)); -// } -// -// @Override -// public void generateItemModels(ItemModelGenerator itemModelGenerator) { -// itemModelGenerator.register(ModItems.FUZZY_FIREBALL, Models.GENERATED); -// itemModelGenerator.register(ModItems.FABRIC_OF_FINALITY, Models.GENERATED); -// itemModelGenerator.register(ModItems.LIMINAL_LINT, Models.GENERATED); -// itemModelGenerator.register(ModItems.ENDURING_FIBERS, Models.GENERATED); -// itemModelGenerator.register(ModItems.RIFT_PEARL, Models.GENERATED); -// itemModelGenerator.register(ModItems.AMALGAM_LUMP, Models.GENERATED); -// itemModelGenerator.register(ModItems.CLOD, Models.GENERATED); -// -// itemModelGenerator.register(ModItems.GARMENT_OF_REALITY_BOOTS, Models.GENERATED); -// itemModelGenerator.register(ModItems.GARMENT_OF_REALITY_CHESTPLATE, Models.GENERATED); -// itemModelGenerator.register(ModItems.GARMENT_OF_REALITY_HELMET, Models.GENERATED); -// itemModelGenerator.register(ModItems.GARMENT_OF_REALITY_LEGGINGS, Models.GENERATED); -// } -//} diff --git a/forge/src/main/datagen/DatagenInitializer.java b/forge/src/main/datagen/DatagenInitializer.java deleted file mode 100644 index 8fd1e02e..00000000 --- a/forge/src/main/datagen/DatagenInitializer.java +++ /dev/null @@ -1,24 +0,0 @@ -package datagen.org.dimdev.dimdoors.datagen; - -import net.minecraft.data.DataGenerator; -import net.minecraft.data.DataProvider; -import net.minecraftforge.data.event.GatherDataEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -import org.dimdev.dimdoors.DimensionalDoors; - -@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, modid = DimensionalDoors.MOD_ID) -public class DatagenInitializer { - - @SubscribeEvent - public static void gatherData(GatherDataEvent event) { - DataGenerator generator = event.getGenerator(); - -// generator.addProvider(true, org.dimdev.dimdoors.datagen.BlockStateProvider::new); - generator.addProvider(true, (DataProvider.Factory) DimdoorsRecipeProvider::new); - generator.addProvider(true, (DataProvider.Factory) arg -> new AdvancementProvider(arg, event.getLookupProvider())); - generator.addProvider(true, (DataProvider.Factory) org.dimdev.dimdoors.datagen.LootTableProvider::new); - generator.addProvider(true, (DataProvider.Factory) org.dimdev.dimdoors.datagen.LimboDecayProvider::new); - generator.addProvider(true, (DataProvider.Factory) arg -> new org.dimdev.dimdoors.datagen.BlockTagProvider(arg, event.getLookupProvider(), event.getModContainer().getModId(), event.getExistingFileHelper())); - } -} diff --git a/forge/src/main/java/org/dimdev/dimdoors/forge/DimensionalDoorsImpl.java b/forge/src/main/java/org/dimdev/dimdoors/forge/DimensionalDoorsImpl.java index 99e8b61d..aef57ee9 100644 --- a/forge/src/main/java/org/dimdev/dimdoors/forge/DimensionalDoorsImpl.java +++ b/forge/src/main/java/org/dimdev/dimdoors/forge/DimensionalDoorsImpl.java @@ -1,6 +1,15 @@ package org.dimdev.dimdoors.forge; +import net.minecraft.network.chat.Component; +import net.minecraft.server.packs.PackType; +import net.minecraft.server.packs.PathPackResources; +import net.minecraft.server.packs.repository.Pack; +import net.minecraft.server.packs.repository.PackSource; +import net.minecraftforge.event.AddPackFindersEvent; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.fml.loading.FMLPaths; +import org.dimdev.dimdoors.DimensionalDoors; import java.nio.file.Path; @@ -8,4 +17,25 @@ public class DimensionalDoorsImpl { public static Path getConfigRoot() { return FMLPaths.CONFIGDIR.get(); } + + public static void initBuiltinPacks() { + FMLJavaModLoadingContext.get().getModEventBus().addListener(DimensionalDoorsImpl::addPackFinders); + } + + public static void addPackFinders(AddPackFindersEvent event) { + if (event.getPackType() == PackType.SERVER_DATA) { + var classicPack = createPack("classic", "Classic"); + var defaultPack = createPack("default", "Default"); + event.addRepositorySource((packConsumer) -> { + packConsumer.accept(classicPack); + packConsumer.accept(defaultPack); + }); + } + } + + public static Pack createPack(String id, String name) { + var resourcePath = ModList.get().getModFileById(DimensionalDoors.MOD_ID).getFile().findResource("resourcepacks", id); + return Pack.readMetaAndCreate("id", Component.literal("name"), false, + (path) -> new PathPackResources(path, resourcePath, false), PackType.SERVER_DATA, Pack.Position.BOTTOM, PackSource.BUILT_IN); + } } diff --git a/gradle.properties b/gradle.properties index 77e3fe7a..574b9096 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ architectury_version=8.1.79 fabric_loader_version=0.14.19 fabric_api_version=0.78.0+1.19.4 -forge_version=1.19.4-45.0.43 +forge_version=1.19.4-45.1.0 cardinal_components_version=5.1.0