From dbcd05f0097da76f10738c5fc9758fa11241edc5 Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Tue, 12 May 2026 19:04:17 +0200 Subject: [PATCH 1/6] add DatapackLoader --- .../java/fr/openmc/core/OMCBootstrap.java | 20 ++------ .../bootstrap/integration/DatapackLoader.java | 49 +++++++++++++++++++ .../loot_table/cloud_castle/boss_spawner.json | 0 .../loot_table/cloud_castle/mob_spawner.json | 0 .../openmc/worldgen/biome/cloud_land.json | 0 .../openmc/worldgen/biome/glacite_grotto.json | 0 .../data/openmc/worldgen/biome/mud_beach.json | 0 .../openmc/worldgen/biome/sculk_plains.json | 0 .../openmc/worldgen/biome/soul_forest.json | 0 .../{datapack => datapacks}/pack.mcmeta | 0 10 files changed, 52 insertions(+), 17 deletions(-) create mode 100644 src/main/java/fr/openmc/core/bootstrap/integration/DatapackLoader.java rename src/main/resources/{datapack => datapacks}/data/openmc/loot_table/cloud_castle/boss_spawner.json (100%) rename src/main/resources/{datapack => datapacks}/data/openmc/loot_table/cloud_castle/mob_spawner.json (100%) rename src/main/resources/{datapack => datapacks}/data/openmc/worldgen/biome/cloud_land.json (100%) rename src/main/resources/{datapack => datapacks}/data/openmc/worldgen/biome/glacite_grotto.json (100%) rename src/main/resources/{datapack => datapacks}/data/openmc/worldgen/biome/mud_beach.json (100%) rename src/main/resources/{datapack => datapacks}/data/openmc/worldgen/biome/sculk_plains.json (100%) rename src/main/resources/{datapack => datapacks}/data/openmc/worldgen/biome/soul_forest.json (100%) rename src/main/resources/{datapack => datapacks}/pack.mcmeta (100%) diff --git a/src/main/java/fr/openmc/core/OMCBootstrap.java b/src/main/java/fr/openmc/core/OMCBootstrap.java index 773db3bad..ea4145bf2 100644 --- a/src/main/java/fr/openmc/core/OMCBootstrap.java +++ b/src/main/java/fr/openmc/core/OMCBootstrap.java @@ -1,5 +1,6 @@ package fr.openmc.core; +import fr.openmc.core.bootstrap.integration.DatapackLoader; import fr.openmc.core.bootstrap.integration.OMCLogger; import fr.openmc.core.hooks.itemsadder.ItemsAdderHook; import fr.openmc.core.registry.enchantments.CustomEnchantmentRegistry; @@ -7,16 +8,11 @@ import io.papermc.paper.plugin.bootstrap.BootstrapContext; import io.papermc.paper.plugin.bootstrap.PluginBootstrap; import io.papermc.paper.plugin.bootstrap.PluginProviderContext; -import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; import io.papermc.paper.registry.event.RegistryEvents; import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; import java.util.Locale; -import java.util.Objects; /** * Bootstrap Paper du plugin OpenMC. @@ -35,18 +31,8 @@ public class OMCBootstrap implements PluginBootstrap { public void bootstrap(@NotNull BootstrapContext context) { OMCLogger.setBootstrapLogger(context.getLogger()); - // ** LOAD DATAPACK ** - context.getLifecycleManager().registerEventHandler(LifecycleEvents.DATAPACK_DISCOVERY.newHandler( - event -> { - try { - URI uri = Objects.requireNonNull(getClass().getResource("/datapack")).toURI(); - - event.registrar().discoverPack(uri, "omc"); - } catch (URISyntaxException | IOException e) { - throw new RuntimeException(e); - } - } - )); + // ** LOAD DATAPACKS ** + DatapackLoader.loadAllInResource(context); // ** LOAD ITEMS ADDER NAMESPACES ** ItemsAdderHook.copyContentsToItemsAdder(context, "contents"); diff --git a/src/main/java/fr/openmc/core/bootstrap/integration/DatapackLoader.java b/src/main/java/fr/openmc/core/bootstrap/integration/DatapackLoader.java new file mode 100644 index 000000000..5e5f23b32 --- /dev/null +++ b/src/main/java/fr/openmc/core/bootstrap/integration/DatapackLoader.java @@ -0,0 +1,49 @@ +package fr.openmc.core.bootstrap.integration; + +import fr.openmc.core.utils.FilesUtils; +import io.papermc.paper.plugin.bootstrap.BootstrapContext; +import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.stream.Stream; + +@SuppressWarnings("UnstableApiUsage") +public class DatapackLoader { + /** + * Charge tout les datapacks qui sont dans la ressource resources/datapacks + */ + public static void loadAllInResource(BootstrapContext context) { + Path extractedDatapacks = extractDatapacks(); + + try (Stream paths = Files.list(extractedDatapacks)){ + paths.forEach(pathDir -> + context.getLifecycleManager().registerEventHandler(LifecycleEvents.DATAPACK_DISCOVERY.newHandler( + event -> { + try { + event.registrar().discoverPack(pathDir.toUri(), pathDir.getFileName().toString()); + } catch (IOException e) { + throw new RuntimeException(e); + } + }))); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * Extrait tout les datapacks dans un dossier temporaire "omc-datapacks" et retourne le path de ce dossier. + */ + public static Path extractDatapacks() { + try { + Path tempDir = Files.createTempDirectory("omc-datapacks"); + + FilesUtils.copyResourceFolder("datapacks", tempDir.toFile()); + + return tempDir; + } catch (IOException e) { + throw new RuntimeException("Failed to extract datapacks", e); + } + } +} diff --git a/src/main/resources/datapack/data/openmc/loot_table/cloud_castle/boss_spawner.json b/src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/boss_spawner.json similarity index 100% rename from src/main/resources/datapack/data/openmc/loot_table/cloud_castle/boss_spawner.json rename to src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/boss_spawner.json diff --git a/src/main/resources/datapack/data/openmc/loot_table/cloud_castle/mob_spawner.json b/src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/mob_spawner.json similarity index 100% rename from src/main/resources/datapack/data/openmc/loot_table/cloud_castle/mob_spawner.json rename to src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/mob_spawner.json diff --git a/src/main/resources/datapack/data/openmc/worldgen/biome/cloud_land.json b/src/main/resources/datapacks/data/openmc/worldgen/biome/cloud_land.json similarity index 100% rename from src/main/resources/datapack/data/openmc/worldgen/biome/cloud_land.json rename to src/main/resources/datapacks/data/openmc/worldgen/biome/cloud_land.json diff --git a/src/main/resources/datapack/data/openmc/worldgen/biome/glacite_grotto.json b/src/main/resources/datapacks/data/openmc/worldgen/biome/glacite_grotto.json similarity index 100% rename from src/main/resources/datapack/data/openmc/worldgen/biome/glacite_grotto.json rename to src/main/resources/datapacks/data/openmc/worldgen/biome/glacite_grotto.json diff --git a/src/main/resources/datapack/data/openmc/worldgen/biome/mud_beach.json b/src/main/resources/datapacks/data/openmc/worldgen/biome/mud_beach.json similarity index 100% rename from src/main/resources/datapack/data/openmc/worldgen/biome/mud_beach.json rename to src/main/resources/datapacks/data/openmc/worldgen/biome/mud_beach.json diff --git a/src/main/resources/datapack/data/openmc/worldgen/biome/sculk_plains.json b/src/main/resources/datapacks/data/openmc/worldgen/biome/sculk_plains.json similarity index 100% rename from src/main/resources/datapack/data/openmc/worldgen/biome/sculk_plains.json rename to src/main/resources/datapacks/data/openmc/worldgen/biome/sculk_plains.json diff --git a/src/main/resources/datapack/data/openmc/worldgen/biome/soul_forest.json b/src/main/resources/datapacks/data/openmc/worldgen/biome/soul_forest.json similarity index 100% rename from src/main/resources/datapack/data/openmc/worldgen/biome/soul_forest.json rename to src/main/resources/datapacks/data/openmc/worldgen/biome/soul_forest.json diff --git a/src/main/resources/datapack/pack.mcmeta b/src/main/resources/datapacks/pack.mcmeta similarity index 100% rename from src/main/resources/datapack/pack.mcmeta rename to src/main/resources/datapacks/pack.mcmeta From 55607036efdac28eb4b553b3ccdbe0ec6ab062cd Mon Sep 17 00:00:00 2001 From: iambibi_ <89582596+iambibi@users.noreply.github.com> Date: Tue, 12 May 2026 19:18:00 +0200 Subject: [PATCH 2/6] add omc_dream datapacks --- .../openmc/worldgen/biome/cloud_land.json | 25 -- .../openmc/worldgen/biome/glacite_grotto.json | 25 -- .../block/dripstone_replaceable_blocks.json | 7 + .../block/snow_layer_cannot_survive_on.json | 6 + .../data/omc_dream/dimension/dream.json | 93 ++++++ .../loot_table/cloud_castle/boss_spawner.json | 0 .../loot_table/cloud_castle/mob_spawner.json | 0 .../cloud_land/cloud_castle/part_1.nbt | Bin 0 -> 200655 bytes .../cloud_land/cloud_castle/part_2.nbt | Bin 0 -> 214180 bytes .../cloud_land/cloud_castle/part_3.nbt | Bin 0 -> 250309 bytes .../cloud_land/cloud_castle/part_4.nbt | Bin 0 -> 235208 bytes .../cloud_land/cloud_castle/part_5.nbt | Bin 0 -> 157163 bytes .../cloud_land/cloud_castle/part_6.nbt | Bin 0 -> 134554 bytes .../cloud_land/cloud_castle/part_7.nbt | Bin 0 -> 143567 bytes .../cloud_land/cloud_castle/part_8.nbt | Bin 0 -> 167660 bytes .../glacite_grotto/base_camp/part_1.nbt | Bin 0 -> 59347 bytes .../glacite_grotto/base_camp/part_2.nbt | Bin 0 -> 83215 bytes .../glacite_grotto/base_camp/part_3.nbt | Bin 0 -> 68132 bytes .../glacite_grotto/base_camp/part_4.nbt | Bin 0 -> 77491 bytes .../glacite_grotto/base_camp/part_5.nbt | Bin 0 -> 79323 bytes .../glacite_grotto/base_camp/part_6.nbt | Bin 0 -> 59508 bytes .../glacite_grotto/base_camp/part_7.nbt | Bin 0 -> 64781 bytes .../glacite_grotto/base_camp/part_8.nbt | Bin 0 -> 88003 bytes .../glacite_grotto/spike_normal_1.nbt | Bin 0 -> 1132 bytes .../glacite_grotto/spike_normal_2.nbt | Bin 0 -> 532 bytes .../glacite_grotto/spike_normal_3.nbt | Bin 0 -> 315 bytes .../glacite_grotto/spike_normal_4.nbt | Bin 0 -> 1566 bytes .../glacite_grotto/spike_vertical_1.nbt | Bin 0 -> 801 bytes .../glacite_grotto/spike_vertical_2.nbt | Bin 0 -> 1488 bytes .../glacite_grotto/spike_vertical_3.nbt | Bin 0 -> 738 bytes .../glacite_grotto/spike_vertical_4.nbt | Bin 0 -> 1028 bytes .../glacite_grotto/spike_vertical_5.nbt | Bin 0 -> 17041 bytes .../omc_dream/structure/mud_beach/rock_1.nbt | Bin 0 -> 240 bytes .../omc_dream/structure/mud_beach/rock_2.nbt | Bin 0 -> 473 bytes .../omc_dream/structure/mud_beach/rock_3.nbt | Bin 0 -> 412 bytes .../omc_dream/structure/mud_beach/rock_4.nbt | Bin 0 -> 363 bytes .../omc_dream/structure/mud_beach/rock_5.nbt | Bin 0 -> 2095 bytes .../omc_dream/structure/mud_beach/rock_6.nbt | Bin 0 -> 224 bytes .../omc_dream/structure/mud_beach/rock_7.nbt | Bin 0 -> 419 bytes .../structure/sculk_plains/tree_1.nbt | Bin 0 -> 101571 bytes .../structure/sculk_plains/tree_2.nbt | Bin 0 -> 13611 bytes .../structure/sculk_plains/tree_3.nbt | Bin 0 -> 25653 bytes .../structure/sculk_plains/tree_4.nbt | Bin 0 -> 12339 bytes .../structure/sculk_plains/tree_5.nbt | Bin 0 -> 17273 bytes .../soul_forest/cube_temple/part_1.nbt | Bin 0 -> 20926 bytes .../soul_forest/cube_temple/part_2.nbt | Bin 0 -> 19955 bytes .../soul_forest/cube_temple/part_3.nbt | Bin 0 -> 18980 bytes .../soul_forest/cube_temple/part_4.nbt | Bin 0 -> 20006 bytes .../soul_forest/cube_temple/part_5.nbt | Bin 0 -> 13552 bytes .../soul_forest/cube_temple/part_6.nbt | Bin 0 -> 12993 bytes .../soul_forest/cube_temple/part_7.nbt | Bin 0 -> 13509 bytes .../soul_forest/cube_temple/part_8.nbt | Bin 0 -> 14068 bytes .../structure/soul_forest/pillar.nbt | Bin 0 -> 7642 bytes .../structure/soul_forest/tree_1.nbt | Bin 0 -> 134843 bytes .../structure/soul_forest/tree_2.nbt | Bin 0 -> 228549 bytes .../structure/soul_forest/tree_3.nbt | Bin 0 -> 146196 bytes .../structure/soul_forest/tree_4.nbt | Bin 0 -> 101445 bytes .../tags/block/base_stone_dream.json | 6 + .../tags/block/snow_layer_detection.json | 10 + .../omc_dream/worldgen/biome/cloud_land.json | 29 ++ .../worldgen/biome/glacite_grotto.json | 56 ++++ .../omc_dream}/worldgen/biome/mud_beach.json | 24 +- .../worldgen/biome/sculk_plains.json | 38 ++- .../worldgen/biome/soul_forest.json | 24 +- .../glacite/geode/glacite_geode.json | 98 ++++++ .../glacite/ice_celling.json | 81 +++++ .../glacite/lake/glacite_lake.json | 17 ++ .../glacite/ores/coal_ores.json | 18 ++ .../glacite/snow_layers/layer1.json | 28 ++ .../glacite/snow_layers/layer2.json | 28 ++ .../glacite/snow_layers/layer3.json | 28 ++ .../density_function/dream_continents.json | 12 + .../density_function/dream_depth.json | 7 + .../terrains/base_terrain.json | 16 + .../terrains/bedrock_floor.json | 14 + .../terrains/cloud_terrain.json | 6 + .../density_function/terrains/dream_cave.json | 14 + .../terrains/dream_terrain.json | 14 + .../omc_dream/worldgen/noise/biome_noise.json | 6 + .../omc_dream/worldgen/noise/cave_noise.json | 9 + .../omc_dream/worldgen/noise/cloud_noise.json | 9 + .../worldgen/noise/smooth_basalt_noise.json | 6 + .../worldgen/noise/terrain_noise.json | 6 + .../noise_settings/main_settings.json | 198 ++++++++++++ .../glacite/geode/glacite_geode.json | 27 ++ .../placed_feature/glacite/ice_celling.json | 41 +++ .../glacite/lake/glacite_lake.json | 57 ++++ .../worldgen/placed_feature/glacite/ores.json | 27 ++ .../glacite/snow_layers/layer1.json | 117 ++++++++ .../glacite/snow_layers/layer2.json | 241 +++++++++++++++ .../glacite/snow_layers/layer3.json | 282 ++++++++++++++++++ .../glacite_grotto/spike_processor.json | 12 + .../mud_beach/big_rocks_processor.json | 13 + .../mud_beach/rocks_processor.json | 13 + .../old_creaking_tree_processor.json | 13 + .../soul_forest/soul_pillar_processor.json | 8 + .../soul_forest/soul_tree_processor.json | 13 + .../structure/cloud_land/cloud_castle.json | 19 ++ .../structure/glacite_grotto/base_camp.json | 19 ++ .../structure/glacite_grotto/spike.json | 20 ++ .../worldgen/structure/mud_beach/rocks.json | 19 ++ .../sculk_plains/old_creaking_tree.json | 19 ++ .../structure/soul_forest/cube_temple.json | 20 ++ .../structure/soul_forest/soul_pillar.json | 20 ++ .../structure/soul_forest/soul_tree.json | 19 ++ .../cloud_land/cloud_castle.json | 14 + .../glacite_grotto/base_camp.json | 14 + .../structure_set/glacite_grotto/spike_1.json | 18 ++ .../structure_set/glacite_grotto/spike_2.json | 18 ++ .../structure_set/glacite_grotto/spike_3.json | 18 ++ .../structure_set/mud_beach/rocks.json | 14 + .../sculk_plains/old_creaking_tree.json | 14 + .../soul_forest/cube_temple.json | 14 + .../soul_forest/soul_pillar.json | 14 + .../structure_set/soul_forest/soul_tree.json | 14 + .../cloud_land/cloud_castle/part_1.json | 14 + .../cloud_land/cloud_castle/part_2.json | 14 + .../cloud_land/cloud_castle/part_3.json | 14 + .../cloud_land/cloud_castle/part_4.json | 14 + .../cloud_land/cloud_castle/part_5.json | 14 + .../cloud_land/cloud_castle/part_6.json | 14 + .../cloud_land/cloud_castle/part_7.json | 14 + .../cloud_land/cloud_castle/part_8.json | 14 + .../glacite_grotto/base_camp/part_1.json | 14 + .../glacite_grotto/base_camp/part_2.json | 14 + .../glacite_grotto/base_camp/part_3.json | 14 + .../glacite_grotto/base_camp/part_4.json | 14 + .../glacite_grotto/base_camp/part_5.json | 14 + .../glacite_grotto/base_camp/part_6.json | 14 + .../glacite_grotto/base_camp/part_7.json | 14 + .../glacite_grotto/base_camp/part_8.json | 14 + .../template_pool/glacite_grotto/spike.json | 77 +++++ .../template_pool/mud_beach/rocks.json | 67 +++++ .../sculk_plains/old_creaking_tree.json | 50 ++++ .../soul_forest/cube_temple/part_1.json | 14 + .../soul_forest/cube_temple/part_2.json | 14 + .../soul_forest/cube_temple/part_3.json | 14 + .../soul_forest/cube_temple/part_4.json | 14 + .../soul_forest/cube_temple/part_5.json | 14 + .../soul_forest/cube_temple/part_6.json | 14 + .../soul_forest/cube_temple/part_7.json | 14 + .../soul_forest/cube_temple/part_8.json | 14 + .../soul_forest/soul_pillar.json | 14 + .../template_pool/soul_forest/soul_tree.json | 41 +++ .../resources/datapacks/omc_dream/pack.mcmeta | 8 + src/main/resources/datapacks/pack.mcmeta | 7 - 146 files changed, 2641 insertions(+), 88 deletions(-) delete mode 100644 src/main/resources/datapacks/data/openmc/worldgen/biome/cloud_land.json delete mode 100644 src/main/resources/datapacks/data/openmc/worldgen/biome/glacite_grotto.json create mode 100644 src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/dripstone_replaceable_blocks.json create mode 100644 src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/snow_layer_cannot_survive_on.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/dimension/dream.json rename src/main/resources/datapacks/{data/openmc => omc_dream/data/omc_dream}/loot_table/cloud_castle/boss_spawner.json (100%) rename src/main/resources/datapacks/{data/openmc => omc_dream/data/omc_dream}/loot_table/cloud_castle/mob_spawner.json (100%) create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_5.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_6.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_7.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_8.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_5.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_6.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_7.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/base_camp/part_8.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_normal_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_normal_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_normal_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_normal_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_vertical_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_vertical_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_vertical_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_vertical_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/glacite_grotto/spike_vertical_5.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/mud_beach/rock_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/mud_beach/rock_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/mud_beach/rock_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/mud_beach/rock_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/mud_beach/rock_5.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/mud_beach/rock_6.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/mud_beach/rock_7.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/sculk_plains/tree_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/sculk_plains/tree_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/sculk_plains/tree_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/sculk_plains/tree_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/sculk_plains/tree_5.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_5.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_6.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_7.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/cube_temple/part_8.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/pillar.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/tree_1.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/tree_2.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/tree_3.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/structure/soul_forest/tree_4.nbt create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/tags/block/base_stone_dream.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/tags/block/snow_layer_detection.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/biome/cloud_land.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/biome/glacite_grotto.json rename src/main/resources/datapacks/{data/openmc => omc_dream/data/omc_dream}/worldgen/biome/mud_beach.json (62%) rename src/main/resources/datapacks/{data/openmc => omc_dream/data/omc_dream}/worldgen/biome/sculk_plains.json (57%) rename src/main/resources/datapacks/{data/openmc => omc_dream/data/omc_dream}/worldgen/biome/soul_forest.json (66%) create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/configured_feature/glacite/geode/glacite_geode.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/configured_feature/glacite/ice_celling.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/configured_feature/glacite/lake/glacite_lake.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/configured_feature/glacite/ores/coal_ores.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/configured_feature/glacite/snow_layers/layer1.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/configured_feature/glacite/snow_layers/layer2.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/configured_feature/glacite/snow_layers/layer3.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/density_function/dream_continents.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/density_function/dream_depth.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/density_function/terrains/base_terrain.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/density_function/terrains/bedrock_floor.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/density_function/terrains/cloud_terrain.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/density_function/terrains/dream_cave.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/density_function/terrains/dream_terrain.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/noise/biome_noise.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/noise/cave_noise.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/noise/cloud_noise.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/noise/smooth_basalt_noise.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/noise/terrain_noise.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/noise_settings/main_settings.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/placed_feature/glacite/geode/glacite_geode.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/placed_feature/glacite/ice_celling.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/placed_feature/glacite/lake/glacite_lake.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/placed_feature/glacite/ores.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/placed_feature/glacite/snow_layers/layer1.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/placed_feature/glacite/snow_layers/layer2.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/placed_feature/glacite/snow_layers/layer3.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/processor_list/glacite_grotto/spike_processor.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/processor_list/mud_beach/big_rocks_processor.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/processor_list/mud_beach/rocks_processor.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/processor_list/sculk_plains/old_creaking_tree_processor.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/processor_list/soul_forest/soul_pillar_processor.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/processor_list/soul_forest/soul_tree_processor.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/cloud_land/cloud_castle.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/glacite_grotto/base_camp.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/glacite_grotto/spike.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/mud_beach/rocks.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/sculk_plains/old_creaking_tree.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/soul_forest/cube_temple.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/soul_forest/soul_pillar.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure/soul_forest/soul_tree.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/cloud_land/cloud_castle.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/glacite_grotto/base_camp.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/glacite_grotto/spike_1.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/glacite_grotto/spike_2.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/glacite_grotto/spike_3.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/mud_beach/rocks.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/sculk_plains/old_creaking_tree.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/soul_forest/cube_temple.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/soul_forest/soul_pillar.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/structure_set/soul_forest/soul_tree.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_1.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_2.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_3.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_4.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_5.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_6.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_7.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/cloud_land/cloud_castle/part_8.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_1.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_2.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_3.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_4.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_5.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_6.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_7.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/base_camp/part_8.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/glacite_grotto/spike.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/mud_beach/rocks.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/sculk_plains/old_creaking_tree.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_1.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_2.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_3.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_4.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_5.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_6.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_7.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/cube_temple/part_8.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/soul_pillar.json create mode 100644 src/main/resources/datapacks/omc_dream/data/omc_dream/worldgen/template_pool/soul_forest/soul_tree.json create mode 100644 src/main/resources/datapacks/omc_dream/pack.mcmeta delete mode 100644 src/main/resources/datapacks/pack.mcmeta diff --git a/src/main/resources/datapacks/data/openmc/worldgen/biome/cloud_land.json b/src/main/resources/datapacks/data/openmc/worldgen/biome/cloud_land.json deleted file mode 100644 index e160fa461..000000000 --- a/src/main/resources/datapacks/data/openmc/worldgen/biome/cloud_land.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "temperature": 0.8, - "downfall": 0.9, - "has_precipitation": false, - "temperature_modifier": "none", - "creature_spawn_probability": 0, - "effects": { - "sky_color": 10395294, - "fog_color": 0, - "water_color": 15068927, - "water_fog_color": 12895439, - "grass_color": 10137777, - "foliage_color": 12763842, - "particle": { - "options": { - "type": "small_gust" - }, - "probability": 0.01 - } - }, - "spawners": {}, - "spawn_costs": {}, - "carvers": [], - "features": [] -} \ No newline at end of file diff --git a/src/main/resources/datapacks/data/openmc/worldgen/biome/glacite_grotto.json b/src/main/resources/datapacks/data/openmc/worldgen/biome/glacite_grotto.json deleted file mode 100644 index 35ab702c6..000000000 --- a/src/main/resources/datapacks/data/openmc/worldgen/biome/glacite_grotto.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "temperature": 0.8, - "downfall": 0.9, - "has_precipitation": false, - "temperature_modifier": "none", - "creature_spawn_probability": 0, - "effects": { - "sky_color": 10137777, - "fog_color": 0, - "water_color": 15068927, - "water_fog_color": 12895439, - "grass_color": 10137777, - "foliage_color": 12763842, - "particle": { - "options": { - "type": "snowflake" - }, - "probability": 0.01 - } - }, - "spawners": {}, - "spawn_costs": {}, - "carvers": [], - "features": [] -} \ No newline at end of file diff --git a/src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/dripstone_replaceable_blocks.json b/src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/dripstone_replaceable_blocks.json new file mode 100644 index 000000000..55dab0c03 --- /dev/null +++ b/src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/dripstone_replaceable_blocks.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:snow", + "minecraft:snow_block" + ] +} \ No newline at end of file diff --git a/src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/snow_layer_cannot_survive_on.json b/src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/snow_layer_cannot_survive_on.json new file mode 100644 index 000000000..6fd5b190e --- /dev/null +++ b/src/main/resources/datapacks/omc_dream/data/minecraft/tags/block/snow_layer_cannot_survive_on.json @@ -0,0 +1,6 @@ +{ + "replace": true, + "values": [ + "barrier" + ] +} \ No newline at end of file diff --git a/src/main/resources/datapacks/omc_dream/data/omc_dream/dimension/dream.json b/src/main/resources/datapacks/omc_dream/data/omc_dream/dimension/dream.json new file mode 100644 index 000000000..e86662842 --- /dev/null +++ b/src/main/resources/datapacks/omc_dream/data/omc_dream/dimension/dream.json @@ -0,0 +1,93 @@ +{ + "type": "minecraft:overworld", + "generator": { + "type": "minecraft:noise", + "settings": "omc_dream:main_settings", + "biome_source": { + "type": "minecraft:multi_noise", + "biomes": [ + { + "biome": "omc_dream:cloud_land", + "parameters": { + "temperature": [-1, 1], + "humidity": 0, + "continentalness": [-1, 1], + "erosion": 0, + "weirdness": 0, + "depth": [ + -1.5, + 0.0625 + ], + "offset": 0 + } + }, + { + "biome": "omc_dream:mud_beach", + "parameters": { + "temperature": [-1, 1], + "humidity": 0, + "continentalness": [-1, 0.1], + "erosion": 0, + "weirdness": 0, + "depth": [ + 0.0626, + 0.73 + ], + "offset": 0 + } + }, + { + "biome": "omc_dream:glacite_grotto", + "parameters": { + "temperature": [-1, 1], + "humidity": 0, + "continentalness": [-1, 1], + "erosion": 0, + "weirdness": 0, + "depth": [ + 0.73, + 1.5 + ], + "offset": 0 + } + }, + { + "biome": "omc_dream:sculk_plains", + "parameters": { + "temperature": [ + 0, + 1 + ], + "humidity": 0, + "continentalness": [0.1, 1], + "erosion": 0, + "weirdness": 0, + "depth": [ + 0.0625, + 0.57 + ], + "offset": 0 + } + }, + { + "biome": "omc_dream:soul_forest", + "parameters": { + "temperature": [ + -1, + 0 + ], + "humidity": 0, + "continentalness": [0.1, 1], + "erosion": 0, + "weirdness": 0, + "depth": [ + 0.0625, + 0.57 + ], + "offset": 0 + } + } + ] + } + } +} \ No newline at end of file diff --git a/src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/boss_spawner.json b/src/main/resources/datapacks/omc_dream/data/omc_dream/loot_table/cloud_castle/boss_spawner.json similarity index 100% rename from src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/boss_spawner.json rename to src/main/resources/datapacks/omc_dream/data/omc_dream/loot_table/cloud_castle/boss_spawner.json diff --git a/src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/mob_spawner.json b/src/main/resources/datapacks/omc_dream/data/omc_dream/loot_table/cloud_castle/mob_spawner.json similarity index 100% rename from src/main/resources/datapacks/data/openmc/loot_table/cloud_castle/mob_spawner.json rename to src/main/resources/datapacks/omc_dream/data/omc_dream/loot_table/cloud_castle/mob_spawner.json diff --git a/src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_1.nbt b/src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..8741d0c4fbe54a25485ca367b75dc0b6e3f42e1d GIT binary patch literal 200655 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�DJ#7ImNEtaq~XG%8;spUa{G;%!6 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 QV0={ZY3g~AdfG$(54&7m(*OVf literal 0 HcmV?d00001 diff --git a/src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_2.nbt b/src/main/resources/datapacks/omc_dream/data/omc_dream/structure/cloud_land/cloud_castle/part_2.nbt new file mode 100644 index 0000000000000000000000000000000000000000..2217e0f3bd7fd1ecd0c6caf419c056d4e12cdd50 GIT binary patch literal 214180 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