From b009b0a198e556750f3a30dacb1c249bd50bb5b4 Mon Sep 17 00:00:00 2001 From: MehVahdJukaar Date: Sat, 2 Aug 2025 14:02:29 +0200 Subject: [PATCH] updated API stuff, bumped gradle and loom --- build.gradle | 4 +- common/build.gradle | 4 +- .../com/ordana/spelunkery/Spelunkery.java | 2 +- .../spelunkery/events/NetworkHandler.java | 14 +- .../items/AmethystTuningForkItem.java | 2 +- .../spelunkery/items/ParachuteItem.java | 8 +- .../loot_modifiers/ModLootOverrides.java | 838 +++++++++--------- fabric/build.gradle | 2 + .../spelunkery/fabric/PortalFluidBlock.java | 2 +- forge/build.gradle | 6 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 11 files changed, 448 insertions(+), 436 deletions(-) diff --git a/build.gradle b/build.gradle index c51c40b6..03e252c6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,6 @@ plugins { id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false + id "dev.architectury.loom" version "1.9-SNAPSHOT" apply false id "com.github.johnrengelman.shadow" version "7.1.2" apply false } @@ -21,10 +21,10 @@ subprojects { mappings loom.layered() { - it.parchment("org.parchmentmc.data:parchment-${rootProject.parchment_version}") it.officialMojangMappings { setNameSyntheticMembers(false) } + it.parchment("org.parchmentmc.data:parchment-${rootProject.parchment_version}") } } } diff --git a/common/build.gradle b/common/build.gradle index 71ff3b19..f0d6142f 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -8,7 +8,9 @@ loom { dependencies { modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" - modImplementation("curse.maven:selene-499980:5726768") + implementation(annotationProcessor("io.github.llamalad7:mixinextras-fabric:0.3.6")) + + modImplementation("curse.maven:selene-499980:6838880") modImplementation "dev.emi:emi-xplat-intermediary:${rootProject.emi_version}:api" } diff --git a/common/src/main/java/com/ordana/spelunkery/Spelunkery.java b/common/src/main/java/com/ordana/spelunkery/Spelunkery.java index 37f5f3cb..fcda7e13 100644 --- a/common/src/main/java/com/ordana/spelunkery/Spelunkery.java +++ b/common/src/main/java/com/ordana/spelunkery/Spelunkery.java @@ -43,7 +43,7 @@ public static void commonInit() { } initiated = true; - NetworkHandler.registerMessages(); + NetworkHandler.init(); CommonConfigs.init(); PlatHelper.addCommonSetup(Spelunkery::setup); diff --git a/common/src/main/java/com/ordana/spelunkery/events/NetworkHandler.java b/common/src/main/java/com/ordana/spelunkery/events/NetworkHandler.java index fa69c055..3fdb77d6 100644 --- a/common/src/main/java/com/ordana/spelunkery/events/NetworkHandler.java +++ b/common/src/main/java/com/ordana/spelunkery/events/NetworkHandler.java @@ -6,14 +6,14 @@ public class NetworkHandler { - public static final ChannelHandler CHANNEL = ChannelHandler.createChannel(Spelunkery.res("network")); + public static final ChannelHandler CHANNEL = ChannelHandler.builder(Spelunkery.MOD_ID) + .register(NetworkDir.PLAY_TO_CLIENT, + ClientBoundSendKnockbackPacket.class, ClientBoundSendKnockbackPacket::new) + .register(NetworkDir.PLAY_TO_CLIENT, + ClientBoundParticlePacket.class, ClientBoundParticlePacket::new) + .build(); - public static void registerMessages() { - CHANNEL.register(NetworkDir.PLAY_TO_CLIENT, - ClientBoundSendKnockbackPacket.class, ClientBoundSendKnockbackPacket::new); - - CHANNEL.register(NetworkDir.PLAY_TO_CLIENT, - ClientBoundParticlePacket.class, ClientBoundParticlePacket::new); + public static void init() { } } \ No newline at end of file diff --git a/common/src/main/java/com/ordana/spelunkery/items/AmethystTuningForkItem.java b/common/src/main/java/com/ordana/spelunkery/items/AmethystTuningForkItem.java index e7634e75..2f812d9a 100644 --- a/common/src/main/java/com/ordana/spelunkery/items/AmethystTuningForkItem.java +++ b/common/src/main/java/com/ordana/spelunkery/items/AmethystTuningForkItem.java @@ -279,7 +279,7 @@ public boolean poseRightArm(ItemStack itemStack, Humano } @Override - public void animateItemFirstPerson(LivingEntity entity, ItemStack stack, InteractionHand hand, PoseStack poseStack, float partialTicks, float pitch, float attackAnim, float handHeight) { + public void animateItemFirstPerson(Player entity, ItemStack stack, InteractionHand hand, HumanoidArm arm, PoseStack poseStack, float partialTicks, float pitch, float attackAnim, float handHeight) { //is using item if (tolling && entity.getUsedItemHand() == hand && entity.level() instanceof ClientLevel level) { diff --git a/common/src/main/java/com/ordana/spelunkery/items/ParachuteItem.java b/common/src/main/java/com/ordana/spelunkery/items/ParachuteItem.java index 13c83804..d8fc9fb7 100644 --- a/common/src/main/java/com/ordana/spelunkery/items/ParachuteItem.java +++ b/common/src/main/java/com/ordana/spelunkery/items/ParachuteItem.java @@ -245,7 +245,7 @@ public boolean poseRightArm(ItemStack itemStack, Humano } @Override - public void animateItemFirstPerson(LivingEntity entity, ItemStack stack, InteractionHand hand, PoseStack matrixStack, float partialTicks, float pitch, float attackAnim, float handHeight) { + public void animateItemFirstPerson(Player entity, ItemStack stack, InteractionHand hand, HumanoidArm arm, PoseStack poseStack, float partialTicks, float pitch, float attackAnim, float handHeight) { //is using item if (entity.isUsingItem() && entity.getUseItemRemainingTicks() > 0 && entity.getUsedItemHand() == hand && entity.getTicksUsingItem() < 60) { @@ -257,10 +257,10 @@ public void animateItemFirstPerson(LivingEntity entity, ItemStack stack, Interac float f15 = Mth.sin((timeLeft - 0.1F) * 1.3F); float f18 = f12 - 0.1F; float f20 = f15 * f18; - matrixStack.translate(0, f20 * 0.007F, 0); + poseStack.translate(0, f20 * 0.007F, 0); - matrixStack.translate(0, 0, f12 * 0.04F); - matrixStack.scale(1.0F, 1.0F, 1.0F + f12 * 0.2F); + poseStack.translate(0, 0, f12 * 0.04F); + poseStack.scale(1.0F, 1.0F, 1.0F + f12 * 0.2F); //matrixStack.mulPose(Vector3f.YN.rotationDegrees((float)k * 45.0F)); } } diff --git a/common/src/main/java/com/ordana/spelunkery/loot_modifiers/ModLootOverrides.java b/common/src/main/java/com/ordana/spelunkery/loot_modifiers/ModLootOverrides.java index 2b154f74..a2a78311 100644 --- a/common/src/main/java/com/ordana/spelunkery/loot_modifiers/ModLootOverrides.java +++ b/common/src/main/java/com/ordana/spelunkery/loot_modifiers/ModLootOverrides.java @@ -8,12 +8,15 @@ import net.mehvahdjukaar.moonlight.api.resources.ResType; import net.mehvahdjukaar.moonlight.api.resources.pack.DynServerResourcesGenerator; import net.mehvahdjukaar.moonlight.api.resources.pack.DynamicDataPack; +import net.mehvahdjukaar.moonlight.api.resources.pack.ResourceGenTask; +import net.mehvahdjukaar.moonlight.api.resources.pack.ResourceSink; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.repository.Pack; import net.minecraft.server.packs.resources.ResourceManager; import org.apache.logging.log4j.Logger; import java.util.List; +import java.util.function.Consumer; public class ModLootOverrides extends DynServerResourcesGenerator { @@ -32,38 +35,34 @@ public ModLootOverrides() { this.dynamicPack.addNamespaces("etcetera"); } + @Override public Logger getLogger() { return Spelunkery.LOGGER; } - @Override - public boolean dependsOnLoadedPacks() { - return true; - } - - public void overrideDataFile(ResourceManager manager, List list, String targetNamespace, String targetPath, String sourcePath, ResType resType) { + public void overrideDataFile(ResourceSink sink, ResourceManager manager, List list, String targetNamespace, String targetPath, String sourcePath, ResType resType) { for (var recipe : list) { ResourceLocation target = new ResourceLocation(targetNamespace, targetPath + recipe); ResourceLocation source = new ResourceLocation("spelunkery", sourcePath + recipe + ".json"); try (var bsStream = manager.getResource(source).orElseThrow().open()) { JsonElement bsElement = RPUtils.deserializeJson(bsStream); - dynamicPack.addJson(target, bsElement, resType); + sink.addJson(target, bsElement, resType); } catch (Exception ignored) { } } } - public void overrideDataFileGeneric(ResourceManager manager, List list, String targetNamespace, String targetPath, String sourcePath, ResType resType) { + public void overrideDataFileGeneric(ResourceSink sink, ResourceManager manager, List list, String targetNamespace, String targetPath, String sourcePath, ResType resType) { for (var recipe : list) { ResourceLocation target = new ResourceLocation(targetNamespace, targetPath + recipe + ".json"); ResourceLocation source = new ResourceLocation("spelunkery", sourcePath + recipe + ".json"); try (var bsStream = manager.getResource(source).orElseThrow().open()) { JsonElement bsElement = RPUtils.deserializeJson(bsStream); - dynamicPack.addJson(target, bsElement, resType); + sink.addJson(target, bsElement, resType); } catch (Exception ignored) { } @@ -71,465 +70,470 @@ public void overrideDataFileGeneric(ResourceManager manager, List list, String t } @Override - public void regenerateDynamicAssets(ResourceManager manager) { - - //recipes - var spelunkeryRecipeCrushingGems = List.of( - "smooth_basalt_diamond_ore", - "andesite_emerald_ore", - "sandstone_lapis_ore", - "calcite_redstone_ore", - "andesite_diamond_ore", - "andesite_lapis_ore", - "andesite_redstone_ore", - "granite_diamond_ore", - "granite_emerald_ore", - "granite_lapis_ore", - "granite_redstone_ore", - "diorite_diamond_ore", - "diorite_emerald_ore", - "diorite_lapis_ore", - "diorite_redstone_ore", - "tuff_diamond_ore", - "tuff_emerald_ore", - "tuff_lapis_ore", - "tuff_redstone_ore" - ); - - var createRecipeCrushingMetal = List.of( - "asurine", - "asurine_recycling", - "crimsite", - "crimsite_recycling", - "ochrum", - "ochrum_recycling", - "tuff", - "tuff_recycling", - "veridium", - "veridium_recycling", - "nether_gold_ore" - ); - - var createRecipeCrushingGems = List.of( - "deepslate_diamond_ore", - "deepslate_emerald_ore", - "deepslate_lapis_ore", - "deepslate_redstone_ore", - "diamond_ore", - "emerald_ore", - "lapis_ore", - "redstone_ore" - ); - - var createRecipeSplashingMetal = List.of( - "gravel", - "red_sand", - "soul_sand" - ); - - var oreganizedRecipeCrushingMetal = List.of( - "glance", - "glance_recycling" - ); - - var createRecipeCrushingLapis = List.of( - "lazurite" - ); - - - //loot tables - var vanillaLootGems = List.of( - "deepslate_diamond_ore", - "deepslate_emerald_ore", - "deepslate_lapis_ore", - "deepslate_redstone_ore", - "diamond_ore", - "emerald_ore", - "lapis_ore", - "redstone_ore" - ); - - var vanillaLootMetal = List.of( - "deepslate_iron_ore", - "deepslate_copper_ore", - "deepslate_gold_ore", - "nether_gold_ore", - "deepslate_coal_ore" - ); - - var spelunkeryLootGems = List.of( - "smooth_basalt_diamond_ore", - "sandstone_lapis_ore", - "calcite_redstone_ore", - - "andesite_diamond_ore", - "andesite_emerald_ore", - "andesite_lapis_ore", - "andesite_redstone_ore", - "granite_diamond_ore", - "granite_emerald_ore", - "granite_lapis_ore", - "granite_redstone_ore", - "diorite_diamond_ore", - "diorite_emerald_ore", - "diorite_lapis_ore", - "diorite_redstone_ore", - "tuff_diamond_ore", - "tuff_emerald_ore", - "tuff_lapis_ore", - "tuff_redstone_ore" - ); - - var spelunkeryLootMetal = List.of( - "tuff_coal_ore", - "tuff_copper_ore", - "tuff_gold_ore", - "tuff_iron_ore" - ); - - var sullysLootGems = List.of( - "deepslate_jade_ore" - ); - - var sullysLootSpelunkeryGems = List.of( - "andesite_jade_ore", - "granite_jade_ore", - "diorite_jade_ore", - "tuff_jade_ore" - ); - - var ditrLootGems = List.of( - "obsidian_diamond_ore" - ); - - - var oreganizedLootMetal = List.of( - "deepslate_lead_ore", - "deepslate_silver_ore" - ); - - var oreganizedLootSpelunkeryMetal = List.of( - "andesite_lead_ore", - "granite_lead_ore", - "diorite_lead_ore", - "tuff_lead_ore", - "andesite_silver_ore", - "granite_silver_ore", - "diorite_silver_ore", - "tuff_silver_ore" - ); - - var oreganizedLootSpelunkeryMetalNuggets = List.of( - "andesite_lead_ore", - "granite_lead_ore", - "diorite_lead_ore", - "tuff_lead_ore", - "andesite_silver_ore", - "granite_silver_ore", - "diorite_silver_ore", - "tuff_silver_ore" - ); - - var createLootMetal = List.of( - "deepslate_zinc_ore" - ); - - var createLootSpelunkeryMetal = List.of( - "andesite_zinc_ore", - "granite_zinc_ore", - "diorite_zinc_ore", - "tuff_zinc_ore" - ); - - var createLootSpelunkeryMetalNuggets = List.of( - "andesite_zinc_ore", - "granite_zinc_ore", - "diorite_zinc_ore", - "tuff_zinc_ore" - ); - - var etceteraLootMetalNuggets = List.of( - "bismuth_ore" - ); - - //misc - var vanillaLootSculk = List.of( - "sculk", - "sculk_vein" - ); - - var vanillaLootPiglins = List.of( - "piglin_bartering" - ); - - - var vanillaWorldgenStones = List.of( - "ore_andesite_upper", - "ore_andesite_lower", - "ore_granite_upper", - "ore_granite_lower", - "ore_diorite_upper", - "ore_diorite_lower", - "ore_tuff", - "ore_dirt", - "ore_gravel", - "ore_clay" - ); - - var vanillaWorldgenMoss = List.of( - "moss_patch", - "moss_patch_bonemeal", - "moss_vegetation" - ); - - var vanillaWorldgenPortabellas = List.of( - "dark_forest_vegetation" - ); - - //worldgen - var vanillaWorldgenMores = List.of( - "ore_coal", - "ore_coal_buried", - "ore_copper_large", - "ore_copper_small", - "ore_diamond_buried", - "ore_diamond_large", - "ore_diamond_small", - "ore_emerald", - "ore_gold", - "ore_gold_buried", - "ore_iron", - "ore_iron_small", - "ore_lapis", - "ore_lapis_buried", - "ore_redstone" - ); - - var createWorldgenMores = List.of( - "zinc_ore" - ); - - var oreganizedWorldgenMores = List.of( - "lead_ore", - "lead_ore_extra", - "silver_ore", - "silver_ore_low" - ); - - var sullysWorldgenMores = List.of( - "jade_ore" - ); - - - //gems - if (PlatHelper.isModLoaded("sullysmod")) { - - //enable spelunkery m'ores loot tables when sullys mod is loaded - overrideDataFile(manager, sullysLootSpelunkeryGems, - "spelunkery", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - } + public void regenerateDynamicAssets(Consumer executor) { + super.regenerateDynamicAssets(executor); + executor.accept((manager, sink) -> { + + + //recipes + var spelunkeryRecipeCrushingGems = List.of( + "smooth_basalt_diamond_ore", + "andesite_emerald_ore", + "sandstone_lapis_ore", + "calcite_redstone_ore", + "andesite_diamond_ore", + "andesite_lapis_ore", + "andesite_redstone_ore", + "granite_diamond_ore", + "granite_emerald_ore", + "granite_lapis_ore", + "granite_redstone_ore", + "diorite_diamond_ore", + "diorite_emerald_ore", + "diorite_lapis_ore", + "diorite_redstone_ore", + "tuff_diamond_ore", + "tuff_emerald_ore", + "tuff_lapis_ore", + "tuff_redstone_ore" + ); + + var createRecipeCrushingMetal = List.of( + "asurine", + "asurine_recycling", + "crimsite", + "crimsite_recycling", + "ochrum", + "ochrum_recycling", + "tuff", + "tuff_recycling", + "veridium", + "veridium_recycling", + "nether_gold_ore" + ); + + var createRecipeCrushingGems = List.of( + "deepslate_diamond_ore", + "deepslate_emerald_ore", + "deepslate_lapis_ore", + "deepslate_redstone_ore", + "diamond_ore", + "emerald_ore", + "lapis_ore", + "redstone_ore" + ); + + var createRecipeSplashingMetal = List.of( + "gravel", + "red_sand", + "soul_sand" + ); + + var oreganizedRecipeCrushingMetal = List.of( + "glance", + "glance_recycling" + ); + + var createRecipeCrushingLapis = List.of( + "lazurite" + ); + + + //loot tables + var vanillaLootGems = List.of( + "deepslate_diamond_ore", + "deepslate_emerald_ore", + "deepslate_lapis_ore", + "deepslate_redstone_ore", + "diamond_ore", + "emerald_ore", + "lapis_ore", + "redstone_ore" + ); + + var vanillaLootMetal = List.of( + "deepslate_iron_ore", + "deepslate_copper_ore", + "deepslate_gold_ore", + "nether_gold_ore", + "deepslate_coal_ore" + ); + + var spelunkeryLootGems = List.of( + "smooth_basalt_diamond_ore", + "sandstone_lapis_ore", + "calcite_redstone_ore", + + "andesite_diamond_ore", + "andesite_emerald_ore", + "andesite_lapis_ore", + "andesite_redstone_ore", + "granite_diamond_ore", + "granite_emerald_ore", + "granite_lapis_ore", + "granite_redstone_ore", + "diorite_diamond_ore", + "diorite_emerald_ore", + "diorite_lapis_ore", + "diorite_redstone_ore", + "tuff_diamond_ore", + "tuff_emerald_ore", + "tuff_lapis_ore", + "tuff_redstone_ore" + ); + + var spelunkeryLootMetal = List.of( + "tuff_coal_ore", + "tuff_copper_ore", + "tuff_gold_ore", + "tuff_iron_ore" + ); + + var sullysLootGems = List.of( + "deepslate_jade_ore" + ); + + var sullysLootSpelunkeryGems = List.of( + "andesite_jade_ore", + "granite_jade_ore", + "diorite_jade_ore", + "tuff_jade_ore" + ); + + var ditrLootGems = List.of( + "obsidian_diamond_ore" + ); + + + var oreganizedLootMetal = List.of( + "deepslate_lead_ore", + "deepslate_silver_ore" + ); + + var oreganizedLootSpelunkeryMetal = List.of( + "andesite_lead_ore", + "granite_lead_ore", + "diorite_lead_ore", + "tuff_lead_ore", + "andesite_silver_ore", + "granite_silver_ore", + "diorite_silver_ore", + "tuff_silver_ore" + ); + + var oreganizedLootSpelunkeryMetalNuggets = List.of( + "andesite_lead_ore", + "granite_lead_ore", + "diorite_lead_ore", + "tuff_lead_ore", + "andesite_silver_ore", + "granite_silver_ore", + "diorite_silver_ore", + "tuff_silver_ore" + ); + + var createLootMetal = List.of( + "deepslate_zinc_ore" + ); + + var createLootSpelunkeryMetal = List.of( + "andesite_zinc_ore", + "granite_zinc_ore", + "diorite_zinc_ore", + "tuff_zinc_ore" + ); + + var createLootSpelunkeryMetalNuggets = List.of( + "andesite_zinc_ore", + "granite_zinc_ore", + "diorite_zinc_ore", + "tuff_zinc_ore" + ); + + var etceteraLootMetalNuggets = List.of( + "bismuth_ore" + ); + + //misc + var vanillaLootSculk = List.of( + "sculk", + "sculk_vein" + ); + + var vanillaLootPiglins = List.of( + "piglin_bartering" + ); + + + var vanillaWorldgenStones = List.of( + "ore_andesite_upper", + "ore_andesite_lower", + "ore_granite_upper", + "ore_granite_lower", + "ore_diorite_upper", + "ore_diorite_lower", + "ore_tuff", + "ore_dirt", + "ore_gravel", + "ore_clay" + ); + + var vanillaWorldgenMoss = List.of( + "moss_patch", + "moss_patch_bonemeal", + "moss_vegetation" + ); + + var vanillaWorldgenPortabellas = List.of( + "dark_forest_vegetation" + ); + + //worldgen + var vanillaWorldgenMores = List.of( + "ore_coal", + "ore_coal_buried", + "ore_copper_large", + "ore_copper_small", + "ore_diamond_buried", + "ore_diamond_large", + "ore_diamond_small", + "ore_emerald", + "ore_gold", + "ore_gold_buried", + "ore_iron", + "ore_iron_small", + "ore_lapis", + "ore_lapis_buried", + "ore_redstone" + ); + + var createWorldgenMores = List.of( + "zinc_ore" + ); + + var oreganizedWorldgenMores = List.of( + "lead_ore", + "lead_ore_extra", + "silver_ore", + "silver_ore_low" + ); + + var sullysWorldgenMores = List.of( + "jade_ore" + ); + + + //gems + if (PlatHelper.isModLoaded("sullysmod")) { - if (CommonConfigs.ENABLE_ROUGH_GEMS.get()) { + //enable spelunkery m'ores loot tables when sullys mod is loaded + overrideDataFile(sink,manager, sullysLootSpelunkeryGems, + "spelunkery", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + } - //override vanilla loot tables to make gem ores drop rough gems - overrideDataFile(manager, vanillaLootGems, - "minecraft", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + if (CommonConfigs.ENABLE_ROUGH_GEMS.get()) { - //override spelunkery loot tables to make m'ores gem ores drop rough gems - overrideDataFile(manager, spelunkeryLootGems, - "spelunkery", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + //override vanilla loot tables to make gem ores drop rough gems + overrideDataFile(sink,manager, vanillaLootGems, + "minecraft", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - if (PlatHelper.isModLoaded("sullysmod")) { + //override spelunkery loot tables to make m'ores gem ores drop rough gems + overrideDataFile(sink,manager, spelunkeryLootGems, + "spelunkery", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - //override sullysmod loot tables to make gem ores drop rough gem shards - overrideDataFile(manager, sullysLootGems, - "sullysmod", "", - "overrides/loot_tables/sullysmod/", ResType.BLOCK_LOOT_TABLES); - } + if (PlatHelper.isModLoaded("sullysmod")) { - if (PlatHelper.isModLoaded("create")) { + //override sullysmod loot tables to make gem ores drop rough gem shards + overrideDataFile(sink,manager, sullysLootGems, + "sullysmod", "", + "overrides/loot_tables/sullysmod/", ResType.BLOCK_LOOT_TABLES); + } - //override create mod ore crushing recipes to create rough gems - overrideDataFile(manager, createRecipeCrushingGems, - "create", "crushing/", - "overrides/recipes/crushing/", ResType.RECIPES); + if (PlatHelper.isModLoaded("create")) { - //override spelunkery vanilla M'ores ore crushing recipes to create rough gems - overrideDataFile(manager, spelunkeryRecipeCrushingGems, - "spelunkery", "crushing/", - "overrides/recipes/crushing/", ResType.RECIPES); - } + //override create mod ore crushing recipes to create rough gems + overrideDataFile(sink,manager, createRecipeCrushingGems, + "create", "crushing/", + "overrides/recipes/crushing/", ResType.RECIPES); - if (PlatHelper.isModLoaded("ditr")) { + //override spelunkery vanilla M'ores ore crushing recipes to create rough gems + overrideDataFile(sink,manager, spelunkeryRecipeCrushingGems, + "spelunkery", "crushing/", + "overrides/recipes/crushing/", ResType.RECIPES); + } + + if (PlatHelper.isModLoaded("ditr")) { - //override ditr loot tables to mak gem ores drop rough gems - overrideDataFile(manager, ditrLootGems, - "ditr", "", - "overrides/loot_tables/ditr/", ResType.BLOCK_LOOT_TABLES); + //override ditr loot tables to mak gem ores drop rough gems + overrideDataFile(sink,manager, ditrLootGems, + "ditr", "", + "overrides/loot_tables/ditr/", ResType.BLOCK_LOOT_TABLES); + } } - } - //metals - if (PlatHelper.isModLoaded("oreganized") && !CommonConfigs.ENABLE_RAW_NUGGETS.get()) { + //metals + if (PlatHelper.isModLoaded("oreganized") && !CommonConfigs.ENABLE_RAW_NUGGETS.get()) { - //enable oreganized m'ores loot tables when oreganized mod is loaded - overrideDataFile(manager, oreganizedLootSpelunkeryMetal, - "spelunkery", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - } + //enable oreganized m'ores loot tables when oreganized mod is loaded + overrideDataFile(sink,manager, oreganizedLootSpelunkeryMetal, + "spelunkery", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + } - if (PlatHelper.isModLoaded("create") && !CommonConfigs.ENABLE_RAW_NUGGETS.get()) { + if (PlatHelper.isModLoaded("create") && !CommonConfigs.ENABLE_RAW_NUGGETS.get()) { - //enable create m'ores loot tables when create mod is loaded - overrideDataFile(manager, createLootSpelunkeryMetal, - "spelunkery", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - } + //enable create m'ores loot tables when create mod is loaded + overrideDataFile(sink,manager, createLootSpelunkeryMetal, + "spelunkery", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + } - if (PlatHelper.isModLoaded("etcetera") && !CommonConfigs.ENABLE_RAW_NUGGETS.get()) { + if (PlatHelper.isModLoaded("etcetera") && !CommonConfigs.ENABLE_RAW_NUGGETS.get()) { - overrideDataFile(manager, etceteraLootMetalNuggets, - "etcetera", "blocks/", - "overrides/loot_tables/etcetera/", ResType.BLOCK_LOOT_TABLES); - } + overrideDataFile(sink,manager, etceteraLootMetalNuggets, + "etcetera", "blocks/", + "overrides/loot_tables/etcetera/", ResType.BLOCK_LOOT_TABLES); + } - if (CommonConfigs.ENABLE_RAW_NUGGETS.get()) { + if (CommonConfigs.ENABLE_RAW_NUGGETS.get()) { - //override vanilla loot tables to make deepslate metal ores drop raw nuggets - overrideDataFile(manager, vanillaLootMetal, - "minecraft", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + //override vanilla loot tables to make deepslate metal ores drop raw nuggets + overrideDataFile(sink,manager, vanillaLootMetal, + "minecraft", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - //override spelunkery loot tables to make m'ores metal ores drop raw nuggets - overrideDataFile(manager, spelunkeryLootMetal, - "spelunkery", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + //override spelunkery loot tables to make m'ores metal ores drop raw nuggets + overrideDataFile(sink,manager, spelunkeryLootMetal, + "spelunkery", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - if (PlatHelper.isModLoaded("oreganized")) { + if (PlatHelper.isModLoaded("oreganized")) { - //override spelunkery loot tables to make oreganized mod compat m'ores metal ores drop raw nuggets - overrideDataFile(manager, oreganizedLootSpelunkeryMetalNuggets, - "spelunkery", "", - "overrides/loot_tables/oreganized/", ResType.BLOCK_LOOT_TABLES); + //override spelunkery loot tables to make oreganized mod compat m'ores metal ores drop raw nuggets + overrideDataFile(sink,manager, oreganizedLootSpelunkeryMetalNuggets, + "spelunkery", "", + "overrides/loot_tables/oreganized/", ResType.BLOCK_LOOT_TABLES); - //override oreganized loot tables to make deepslate metal ores drop raw nuggets - overrideDataFile(manager, oreganizedLootMetal, - "oreganized", "", - "overrides/loot_tables/oreganized/", ResType.BLOCK_LOOT_TABLES); - } + //override oreganized loot tables to make deepslate metal ores drop raw nuggets + overrideDataFile(sink,manager, oreganizedLootMetal, + "oreganized", "", + "overrides/loot_tables/oreganized/", ResType.BLOCK_LOOT_TABLES); + } - if (PlatHelper.isModLoaded("create")) { + if (PlatHelper.isModLoaded("create")) { - //override create loot tables to make deepslate metal ores drop raw nuggets - overrideDataFile(manager, createLootMetal, - "create", "", - "overrides/loot_tables/create/", ResType.BLOCK_LOOT_TABLES); + //override create loot tables to make deepslate metal ores drop raw nuggets + overrideDataFile(sink,manager, createLootMetal, + "create", "", + "overrides/loot_tables/create/", ResType.BLOCK_LOOT_TABLES); - //override spelunkery loot tables to make create mod compat m'ores metal ores drop raw nuggets - overrideDataFile(manager, createLootSpelunkeryMetalNuggets, - "spelunkery", "", - "overrides/loot_tables/create/", ResType.BLOCK_LOOT_TABLES); + //override spelunkery loot tables to make create mod compat m'ores metal ores drop raw nuggets + overrideDataFile(sink,manager, createLootSpelunkeryMetalNuggets, + "spelunkery", "", + "overrides/loot_tables/create/", ResType.BLOCK_LOOT_TABLES); - //override create mod stone types to create raw nuggets when crushed - overrideDataFile(manager, createRecipeCrushingMetal, - "create", "crushing/", - "overrides/recipes/crushing/", ResType.RECIPES); + //override create mod stone types to create raw nuggets when crushed + overrideDataFile(sink,manager, createRecipeCrushingMetal, + "create", "crushing/", + "overrides/recipes/crushing/", ResType.RECIPES); - //override create mod sand and gravel splashing to create raw nuggets - overrideDataFile(manager, createRecipeSplashingMetal, - "create", "splashing/", - "overrides/recipes/splashing/", ResType.RECIPES); + //override create mod sand and gravel splashing to create raw nuggets + overrideDataFile(sink,manager, createRecipeSplashingMetal, + "create", "splashing/", + "overrides/recipes/splashing/", ResType.RECIPES); - //override lazurite crushing to create raw gold nuggets - overrideDataFile(manager, createRecipeCrushingLapis, - "spelunkery", "crushing/", - "overrides/recipes/crushing/", ResType.RECIPES); + //override lazurite crushing to create raw gold nuggets + overrideDataFile(sink,manager, createRecipeCrushingLapis, + "spelunkery", "crushing/", + "overrides/recipes/crushing/", ResType.RECIPES); - if (PlatHelper.isModLoaded("oreganized")) { + if (PlatHelper.isModLoaded("oreganized")) { - //override glance crushing to create raw lead nuggets - overrideDataFile(manager, oreganizedRecipeCrushingMetal, - "oreganized", "create/crushing/", - "overrides/recipes/crushing/oreganized/", ResType.RECIPES); + //override glance crushing to create raw lead nuggets + overrideDataFile(sink,manager, oreganizedRecipeCrushingMetal, + "oreganized", "create/crushing/", + "overrides/recipes/crushing/oreganized/", ResType.RECIPES); + } } } - } - //misc - if (CommonConfigs.SCULK_SHEARING.get()) { + //misc + if (CommonConfigs.SCULK_SHEARING.get()) { - //make sculk blocks drop sculk veins when mined with shears - overrideDataFile(manager, vanillaLootSculk, - "minecraft", "", - "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); - } + //make sculk blocks drop sculk veins when mined with shears + overrideDataFile(sink,manager, vanillaLootSculk, + "minecraft", "", + "overrides/loot_tables/", ResType.BLOCK_LOOT_TABLES); + } - if (CommonConfigs.PIGLINS_GIVE_CRYING_OBSIDIAN.get()) { + if (CommonConfigs.PIGLINS_GIVE_CRYING_OBSIDIAN.get()) { - //make piglins not give you crying obsidian as barter loot - overrideDataFile(manager, vanillaLootPiglins, - "minecraft", "gameplay/", - "overrides/loot_tables/", ResType.LOOT_TABLES); - } + //make piglins not give you crying obsidian as barter loot + overrideDataFile(sink,manager, vanillaLootPiglins, + "minecraft", "gameplay/", + "overrides/loot_tables/", ResType.LOOT_TABLES); + } - //worldgen - if (CommonConfigs.STONE_STRIPE_FEATURES.get()) { + //worldgen + if (CommonConfigs.STONE_STRIPE_FEATURES.get()) { - //disable vanilla stone patches - overrideDataFileGeneric(manager, vanillaWorldgenStones, - "minecraft", "worldgen/placed_feature/", - "overrides/worldgen/placed_feature/", ResType.GENERIC); - } + //disable vanilla stone patches + overrideDataFileGeneric(sink,manager, vanillaWorldgenStones, + "minecraft", "worldgen/placed_feature/", + "overrides/worldgen/placed_feature/", ResType.GENERIC); + } - if (CommonConfigs.ENABLE_SPOROPHYTES.get()) { + if (CommonConfigs.ENABLE_SPOROPHYTES.get()) { - //make sporophytes generate instead of tall grass in lush caves - overrideDataFileGeneric(manager, vanillaWorldgenMoss, - "minecraft", "worldgen/configured_feature/", - "overrides/worldgen/configured_feature/", ResType.GENERIC); - } + //make sporophytes generate instead of tall grass in lush caves + overrideDataFileGeneric(sink,manager, vanillaWorldgenMoss, + "minecraft", "worldgen/configured_feature/", + "overrides/worldgen/configured_feature/", ResType.GENERIC); + } - if (CommonConfigs.DARK_FOREST_PORTABELLAS.get()) { + if (CommonConfigs.DARK_FOREST_PORTABELLAS.get()) { - //make large portabellas generate in dark forests - overrideDataFileGeneric(manager, vanillaWorldgenPortabellas, - "minecraft", "worldgen/configured_feature/", - "overrides/worldgen/configured_feature/", ResType.GENERIC); - } + //make large portabellas generate in dark forests + overrideDataFileGeneric(sink,manager, vanillaWorldgenPortabellas, + "minecraft", "worldgen/configured_feature/", + "overrides/worldgen/configured_feature/", ResType.GENERIC); + } - if (CommonConfigs.ENABLE_MORES.get()) { + if (CommonConfigs.ENABLE_MORES.get()) { - //enable M'ores ores to generate - overrideDataFileGeneric(manager, vanillaWorldgenMores, - "minecraft", "worldgen/configured_feature/", - "overrides/worldgen/configured_feature/", ResType.GENERIC); + //enable M'ores ores to generate + overrideDataFileGeneric(sink,manager, vanillaWorldgenMores, + "minecraft", "worldgen/configured_feature/", + "overrides/worldgen/configured_feature/", ResType.GENERIC); - if (PlatHelper.isModLoaded("create")) { - //enable create compat M'ores ores to generate - overrideDataFileGeneric(manager, createWorldgenMores, - "create", "worldgen/configured_feature/", - "overrides/worldgen/configured_feature/create/", ResType.GENERIC); - } + if (PlatHelper.isModLoaded("create")) { + //enable create compat M'ores ores to generate + overrideDataFileGeneric(sink,manager, createWorldgenMores, + "create", "worldgen/configured_feature/", + "overrides/worldgen/configured_feature/create/", ResType.GENERIC); + } - if (PlatHelper.isModLoaded("sullysmod")) { - //enable sullysmod compat M'ores ores to generate - overrideDataFileGeneric(manager, sullysWorldgenMores, - "sullysmod", "worldgen/configured_feature/", - "overrides/worldgen/configured_feature/sullysmod/", ResType.GENERIC); - } + if (PlatHelper.isModLoaded("sullysmod")) { + //enable sullysmod compat M'ores ores to generate + overrideDataFileGeneric(sink,manager, sullysWorldgenMores, + "sullysmod", "worldgen/configured_feature/", + "overrides/worldgen/configured_feature/sullysmod/", ResType.GENERIC); + } - if (PlatHelper.isModLoaded("oreganized")) { - //enable oreganized compat M'ores ores to generate - overrideDataFileGeneric(manager, oreganizedWorldgenMores, - "oreganized", "worldgen/configured_feature/", - "overrides/worldgen/configured_feature/oreganized/", ResType.GENERIC); + if (PlatHelper.isModLoaded("oreganized")) { + //enable oreganized compat M'ores ores to generate + overrideDataFileGeneric(sink,manager, oreganizedWorldgenMores, + "oreganized", "worldgen/configured_feature/", + "overrides/worldgen/configured_feature/oreganized/", ResType.GENERIC); + } } - } + }); } + } \ No newline at end of file diff --git a/fabric/build.gradle b/fabric/build.gradle index 29b07ab4..41cd4548 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -23,6 +23,8 @@ dependencies { modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" + include(implementation(annotationProcessor("io.github.llamalad7:mixinextras-fabric:0.3.6"))) + annotationProcessor 'net.fabricmc:sponge-mixin:0.12.5+mixin.0.8.5' modLocalRuntime "dev.emi:emi-fabric:${rootProject.emi_version}" modImplementation("curse.maven:selene-499980:5726768") diff --git a/fabric/src/main/java/com/ordana/spelunkery/fabric/PortalFluidBlock.java b/fabric/src/main/java/com/ordana/spelunkery/fabric/PortalFluidBlock.java index 2d708e3d..fcf38a3e 100644 --- a/fabric/src/main/java/com/ordana/spelunkery/fabric/PortalFluidBlock.java +++ b/fabric/src/main/java/com/ordana/spelunkery/fabric/PortalFluidBlock.java @@ -4,6 +4,7 @@ import com.ordana.spelunkery.reg.ModSoundEvents; import com.ordana.spelunkery.reg.ModTags; import com.ordana.spelunkery.utils.LevelHelper; +import net.mehvahdjukaar.moonlight.api.resources.pack.DynServerResourcesGenerator; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.core.registries.Registries; @@ -41,7 +42,6 @@ public int setTickCounter(int tick) { @Override public ItemStack pickupBlock(LevelAccessor level, BlockPos pos, BlockState state) { Optional> registry = level.registryAccess().registry(Registries.DIMENSION_TYPE); - if (registry.isPresent() && level.dimensionType() == registry.get().get(BuiltinDimensionTypes.END) && level.getMinBuildHeight() + 3 >= pos.getY() && !CommonConfigs.END_OCEAN_BUCKETABLE.get()) { return ItemStack.EMPTY; } diff --git a/forge/build.gradle b/forge/build.gradle index 490652b3..87119acc 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -115,8 +115,12 @@ dependencies { shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } implementation 'org.jetbrains:annotations:22.0.0' + compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:0.3.6")) + implementation(include("io.github.llamalad7:mixinextras-forge:0.3.6")) - modImplementation("curse.maven:selene-499980:5726772") + //modRuntimeOnly("com.teamabnormals.blueprint:blueprint:1.20.1-7.1.3") + modImplementation("curse.maven:selene-499980:6838882") + modLocalRuntime("curse.maven:blueprint-382216:6329107") modLocalRuntime "dev.emi:emi-forge:${rootProject.emi_version}" } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index db4c3260..77e5f2a9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file