From 263854aceea7d9f23b21aa86d9f2b6ed446637cf Mon Sep 17 00:00:00 2001 From: Gugle Date: Thu, 19 Mar 2026 17:10:52 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat(create):=20=E6=B7=BB=E5=8A=A0=E9=BD=BF?= =?UTF-8?q?=E8=BD=AE=E6=8A=A4=E7=AC=A6=E7=B1=BB=E5=9E=8B=E5=8F=8A=E5=85=B6?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 4 +- .../create/AnvilCraftCreateAddition.java | 16 +- .../AnvilCraftCreateAdditionClient.java | 3 +- .../addon/create/client/package-info.java | 7 + .../addon/create/data/lang/package-info.java | 7 + .../addon/create/data/package-info.java | 7 + .../create/init/AdditionAmuletTypes.java | 41 ++++++ .../addon/create/init/AdditionItems.java | 36 ++++- .../addon/create/init/package-info.java | 7 + .../BatchCrafterUnpackingHandler.java | 15 +- .../CreateBoilerHeaterProvider.java | 47 ++++++ .../create/integration/CreateIntegration.java | 137 ------------------ .../MechanicalBearingBlockEntityMixin.java | 4 +- .../addon/create/mixin/package-info.java | 7 + .../anvilcraft/addon/create/package-info.java | 7 + .../create/util/ChargeMovementBehaviour.java | 18 +-- .../addon/create/util/package-info.java | 7 + src/main/resources/pack.png | Bin 0 -> 109200 bytes .../templates/META-INF/neoforge.mods.toml | 2 +- 19 files changed, 204 insertions(+), 168 deletions(-) create mode 100644 src/main/java/dev/anvilcraft/addon/create/client/package-info.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/data/lang/package-info.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/data/package-info.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/init/AdditionAmuletTypes.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/init/package-info.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/integration/CreateBoilerHeaterProvider.java delete mode 100644 src/main/java/dev/anvilcraft/addon/create/integration/CreateIntegration.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/mixin/package-info.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/package-info.java create mode 100644 src/main/java/dev/anvilcraft/addon/create/util/package-info.java create mode 100644 src/main/resources/pack.png diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ec52311..8a243c9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,8 +2,8 @@ minecraft = "1.21.1" neoForge = "21.1.215" registrate = "MC1.21-1.3.0+62" -anvillib = "1.4.0+build.168" -anvilcraft = "1.5.0+pre-release.21" +anvillib = "1.4.0+build.172" +anvilcraft = "1.5.2+hotfix.1650" modDevGradle = "2.0.78" lombok = "8.7.1" create = "6.0.6-107" diff --git a/src/main/java/dev/anvilcraft/addon/create/AnvilCraftCreateAddition.java b/src/main/java/dev/anvilcraft/addon/create/AnvilCraftCreateAddition.java index 3507e12..0c189f5 100644 --- a/src/main/java/dev/anvilcraft/addon/create/AnvilCraftCreateAddition.java +++ b/src/main/java/dev/anvilcraft/addon/create/AnvilCraftCreateAddition.java @@ -1,17 +1,22 @@ package dev.anvilcraft.addon.create; import com.mojang.logging.LogUtils; +import com.simibubi.create.api.boiler.BoilerHeater; +import com.simibubi.create.api.packager.unpacking.UnpackingHandler; import com.tterrag.registrate.Registrate; import dev.anvilcraft.addon.create.data.AdditionDatagen; +import dev.anvilcraft.addon.create.init.AdditionAmuletTypes; import dev.anvilcraft.addon.create.init.AdditionBlocks; import dev.anvilcraft.addon.create.init.AdditionItemGroups; import dev.anvilcraft.addon.create.init.AdditionItems; +import dev.anvilcraft.addon.create.integration.BatchCrafterUnpackingHandler; +import dev.anvilcraft.addon.create.integration.CreateBoilerHeaterProvider; import dev.anvilcraft.lib.config.ConfigManager; +import dev.dubhe.anvilcraft.api.amulet.AmuletManager; import net.minecraft.resources.ResourceLocation; import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.Mod; -import org.jetbrains.annotations.NotNull; import org.slf4j.Logger; @Mod(AnvilCraftCreateAddition.MOD_ID) @@ -24,14 +29,19 @@ public class AnvilCraftCreateAddition { ); public static final Registrate REGISTRATE = Registrate.create(MOD_ID); - public AnvilCraftCreateAddition(@NotNull IEventBus modEventBus, @NotNull ModContainer modContainer) { + public AnvilCraftCreateAddition(IEventBus modEventBus, ModContainer modContainer) { AdditionItemGroups.register(modEventBus); AdditionBlocks.register(); AdditionItems.register(); AdditionDatagen.init(); + AdditionAmuletTypes.register(modEventBus); + BoilerHeater.REGISTRY.registerProvider(new CreateBoilerHeaterProvider()); + //noinspection UnstableApiUsage + UnpackingHandler.REGISTRY.registerProvider(BatchCrafterUnpackingHandler.INSTANCE); + AmuletManager.INSTANCE.registerAmulets(AdditionItems.COGWHEEL_AMULET::get); } - public static @NotNull ResourceLocation of(String path) { + public static ResourceLocation of(String path) { return ResourceLocation.fromNamespaceAndPath(MOD_ID, path); } } diff --git a/src/main/java/dev/anvilcraft/addon/create/client/AnvilCraftCreateAdditionClient.java b/src/main/java/dev/anvilcraft/addon/create/client/AnvilCraftCreateAdditionClient.java index f4fad80..f837f38 100644 --- a/src/main/java/dev/anvilcraft/addon/create/client/AnvilCraftCreateAdditionClient.java +++ b/src/main/java/dev/anvilcraft/addon/create/client/AnvilCraftCreateAdditionClient.java @@ -5,10 +5,9 @@ import net.neoforged.bus.api.IEventBus; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.Mod; -import org.jetbrains.annotations.NotNull; @Mod(value = AnvilCraftCreateAddition.MOD_ID, dist = Dist.CLIENT) public class AnvilCraftCreateAdditionClient { - public AnvilCraftCreateAdditionClient(@NotNull IEventBus modBus, @NotNull ModContainer container) { + public AnvilCraftCreateAdditionClient(IEventBus modBus, ModContainer container) { } } diff --git a/src/main/java/dev/anvilcraft/addon/create/client/package-info.java b/src/main/java/dev/anvilcraft/addon/create/client/package-info.java new file mode 100644 index 0000000..ffb4671 --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/client/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package dev.anvilcraft.addon.create.client; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/anvilcraft/addon/create/data/lang/package-info.java b/src/main/java/dev/anvilcraft/addon/create/data/lang/package-info.java new file mode 100644 index 0000000..63c19f9 --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/data/lang/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package dev.anvilcraft.addon.create.data.lang; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/anvilcraft/addon/create/data/package-info.java b/src/main/java/dev/anvilcraft/addon/create/data/package-info.java new file mode 100644 index 0000000..6dbab42 --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/data/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package dev.anvilcraft.addon.create.data; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/anvilcraft/addon/create/init/AdditionAmuletTypes.java b/src/main/java/dev/anvilcraft/addon/create/init/AdditionAmuletTypes.java new file mode 100644 index 0000000..1e13876 --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/init/AdditionAmuletTypes.java @@ -0,0 +1,41 @@ +package dev.anvilcraft.addon.create.init; + +import com.simibubi.create.AllDamageTypes; +import com.simibubi.create.content.kinetics.deployer.DeployerFakePlayer; +import dev.anvilcraft.addon.create.AnvilCraftCreateAddition; +import dev.dubhe.anvilcraft.api.amulet.type.AmuletType; +import dev.dubhe.anvilcraft.init.ModRegistries; +import dev.dubhe.anvilcraft.util.Util; +import net.minecraft.world.damagesource.DamageTypes; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredRegister; + +import java.util.Optional; + +public class AdditionAmuletTypes { + private static final DeferredRegister REGISTER = DeferredRegister.create(ModRegistries.AMULET_TYPE_KEY, AnvilCraftCreateAddition.MOD_ID); + + public static final DeferredHolder COGWHEEL = REGISTER.register( + "cogwheel", AmuletType.builder() + .obtainByDamage( + AllDamageTypes.CRUSH, + AllDamageTypes.CUCKOO_SURPRISE, + AllDamageTypes.DRILL, + AllDamageTypes.POTATO_CANNON, + AllDamageTypes.ROLLER, + AllDamageTypes.RUN_OVER, + AllDamageTypes.SAW + ) + .obtainOr((player, source) -> source.typeHolder().is(DamageTypes.PLAYER_ATTACK) && Optional.ofNullable(source.getEntity()) + .map(entity -> Util.instanceOfAny(entity, DeployerFakePlayer.class)) + .orElse(false)) + .immuneDamageFromObtain() + .amulet(AdditionItems.COGWHEEL_AMULET) + ::build + ); + + public static void register(IEventBus bus) { + REGISTER.register(bus); + } +} diff --git a/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java b/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java index e14e02d..cd8ddee 100644 --- a/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java +++ b/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java @@ -1,12 +1,46 @@ package dev.anvilcraft.addon.create.init; +import com.simibubi.create.AllItems; +import com.tterrag.registrate.util.entry.ItemEntry; import dev.dubhe.anvilcraft.AnvilCraft; +import dev.dubhe.anvilcraft.api.amulet.type.AmuletType; +import dev.dubhe.anvilcraft.init.item.ModItemGroups; +import dev.dubhe.anvilcraft.init.item.ModItems; +import dev.dubhe.anvilcraft.item.amulet.AmuletItem; +import dev.dubhe.anvilcraft.recipe.JewelCraftingRecipe; +import net.minecraft.core.Holder; +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.common.conditions.ModLoadedCondition; + +import static dev.anvilcraft.addon.create.AnvilCraftCreateAddition.REGISTRATE; + public class AdditionItems { static { - AnvilCraft.REGISTRATE.defaultCreativeTab(AdditionItemGroups.ADDON_ITEMS.getKey()); + REGISTRATE.defaultCreativeTab(AdditionItemGroups.ADDON_ITEMS.getKey()); } + public static final ItemEntry COGWHEEL_AMULET = REGISTRATE + .item( + "cogwheel_amulet", + properties -> new AmuletItem(properties) { + @Override + public Holder getType() { + return AdditionAmuletTypes.COGWHEEL; + } + } + ) + .properties(properties -> properties.stacksTo(1)) + .removeTab(ModItemGroups.ANVILCRAFT_INGREDIENTS.getKey()) + .recipe((ctx, provider) -> JewelCraftingRecipe.builder() + .withCondition(new ModLoadedCondition("create")) + .requires(ModItems.SILVER_INGOT, 1) + .requires(AllItems.PRECISION_MECHANISM, 16) + .result(new ItemStack(ctx.get())) + .save(provider) + ) + .register(); + public static void register() { } } diff --git a/src/main/java/dev/anvilcraft/addon/create/init/package-info.java b/src/main/java/dev/anvilcraft/addon/create/init/package-info.java new file mode 100644 index 0000000..612b59b --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/init/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package dev.anvilcraft.addon.create.init; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/anvilcraft/addon/create/integration/BatchCrafterUnpackingHandler.java b/src/main/java/dev/anvilcraft/addon/create/integration/BatchCrafterUnpackingHandler.java index f412d0f..7dc9454 100644 --- a/src/main/java/dev/anvilcraft/addon/create/integration/BatchCrafterUnpackingHandler.java +++ b/src/main/java/dev/anvilcraft/addon/create/integration/BatchCrafterUnpackingHandler.java @@ -19,7 +19,7 @@ import java.util.List; @SuppressWarnings("UnstableApiUsage") -public class BatchCrafterUnpackingHandler implements UnpackingHandler { +public class BatchCrafterUnpackingHandler implements UnpackingHandler, SimpleRegistry.Provider { public static final UnpackingHandler DEFAULT = (level, pos, state, side, items, orderContext, simulate) -> { BlockEntity targetBE = level.getBlockEntity(pos); if (!(targetBE instanceof BatchCrafterBlockEntity batchCrafter)) { @@ -120,14 +120,11 @@ public boolean unpack( return false; } - public static class Provider implements SimpleRegistry.Provider { - - @Override - public @Nullable UnpackingHandler get(Block object) { - if (object == ModBlocks.BATCH_CRAFTER.get()) { - return INSTANCE; - } - return null; + @Override + public @Nullable UnpackingHandler get(Block object) { + if (object == ModBlocks.BATCH_CRAFTER.get()) { + return INSTANCE; } + return null; } } diff --git a/src/main/java/dev/anvilcraft/addon/create/integration/CreateBoilerHeaterProvider.java b/src/main/java/dev/anvilcraft/addon/create/integration/CreateBoilerHeaterProvider.java new file mode 100644 index 0000000..581a077 --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/integration/CreateBoilerHeaterProvider.java @@ -0,0 +1,47 @@ +package dev.anvilcraft.addon.create.integration; + +import com.simibubi.create.api.boiler.BoilerHeater; +import com.simibubi.create.api.registry.SimpleRegistry; +import dev.dubhe.anvilcraft.block.HeaterBlock; +import dev.dubhe.anvilcraft.block.heatable.GlowingBlock; +import dev.dubhe.anvilcraft.block.heatable.IncandescentBlock; +import dev.dubhe.anvilcraft.block.heatable.RedhotBlock; +import dev.dubhe.anvilcraft.init.block.ModBlocks; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; + +public class CreateBoilerHeaterProvider implements SimpleRegistry.Provider { + private static final BoilerHeater HEATER = CreateBoilerHeaterProvider::heater; + private static final BoilerHeater REDHOT = new ConstantValueHeater(1); + private static final BoilerHeater GLOWING = new ConstantValueHeater(2); + private static final BoilerHeater INCANDESCENT = new ConstantValueHeater(3); + + private static float heater(Level level, BlockPos blockPos, BlockState blockState) { + if (blockState.is(ModBlocks.HEATER) && !blockState.getValue(HeaterBlock.OVERLOAD)) { + return 1; + } + return -1; + } + + @Override + public @Nullable BoilerHeater get(Block block) { + return switch (block) { + case HeaterBlock ignored -> HEATER; + case IncandescentBlock ignored -> INCANDESCENT; + case GlowingBlock ignored -> GLOWING; + case RedhotBlock ignored -> REDHOT; + default -> null; + }; + } + + private record ConstantValueHeater(float level) implements BoilerHeater { + + @Override + public float getHeat(Level level, BlockPos blockPos, BlockState blockState) { + return this.level; + } + } +} diff --git a/src/main/java/dev/anvilcraft/addon/create/integration/CreateIntegration.java b/src/main/java/dev/anvilcraft/addon/create/integration/CreateIntegration.java deleted file mode 100644 index 2383ae6..0000000 --- a/src/main/java/dev/anvilcraft/addon/create/integration/CreateIntegration.java +++ /dev/null @@ -1,137 +0,0 @@ -package dev.anvilcraft.addon.create.integration; - -import com.simibubi.create.AllDamageTypes; -import com.simibubi.create.AllItems; -import com.simibubi.create.api.boiler.BoilerHeater; -import com.simibubi.create.api.packager.unpacking.UnpackingHandler; -import com.simibubi.create.api.registry.SimpleRegistry; -import com.simibubi.create.content.kinetics.deployer.DeployerFakePlayer; -import com.tterrag.registrate.util.entry.ItemEntry; -import dev.anvilcraft.lib.integration.Integration; -import dev.dubhe.anvilcraft.AnvilCraft; -import dev.dubhe.anvilcraft.api.amulet.AmuletManager; -import dev.dubhe.anvilcraft.api.amulet.type.AmuletType; -import dev.dubhe.anvilcraft.block.HeaterBlock; -import dev.dubhe.anvilcraft.block.heatable.GlowingBlock; -import dev.dubhe.anvilcraft.block.heatable.IncandescentBlock; -import dev.dubhe.anvilcraft.block.heatable.RedhotBlock; -import dev.dubhe.anvilcraft.init.ModRegistries; -import dev.dubhe.anvilcraft.init.block.ModBlocks; -import dev.dubhe.anvilcraft.init.item.ModItemGroups; -import dev.dubhe.anvilcraft.init.item.ModItems; -import dev.dubhe.anvilcraft.item.amulet.AmuletItem; -import dev.dubhe.anvilcraft.recipe.JewelCraftingRecipe; -import dev.dubhe.anvilcraft.util.Util; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Holder; -import net.minecraft.world.damagesource.DamageTypes; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.neoforged.neoforge.common.conditions.ModLoadedCondition; -import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.registries.DeferredRegister; -import org.jetbrains.annotations.Nullable; - -import java.util.Optional; - -import static dev.dubhe.anvilcraft.AnvilCraft.REGISTRATE; - -@Integration("create") -public class CreateIntegration { - private static final BoilerHeater HEATER = CreateIntegration::heater; - private static final BoilerHeater REDHOT = new ConstantValueHeater(1); - private static final BoilerHeater GLOWING = new ConstantValueHeater(2); - private static final BoilerHeater INCANDESCENT = new ConstantValueHeater(3); - private static final DeferredRegister REGISTER = DeferredRegister.create(ModRegistries.AMULET_TYPE_KEY, AnvilCraft.MOD_ID); - - private static float heater(Level level, BlockPos blockPos, BlockState blockState) { - if (blockState.is(ModBlocks.HEATER) && !blockState.getValue(HeaterBlock.OVERLOAD)) { - return 1; - } - return -1; - } - - @SuppressWarnings("UnstableApiUsage") - public void apply() { - BoilerHeater.REGISTRY.registerProvider(new MyProvider()); - AnvilCraft.MOD_BUS.addListener(this::registerToTab); - UnpackingHandler.REGISTRY.registerProvider(new BatchCrafterUnpackingHandler.Provider()); - REGISTER.register(AnvilCraft.MOD_BUS); - AmuletManager.INSTANCE.registerAmulets(COGWHEEL_AMULET::get); - } - - private void registerToTab(BuildCreativeModeTabContentsEvent event) { - if (event.getTabKey().equals(ModItemGroups.ANVILCRAFT_TOOL.getKey())) { - event.insertAfter( - ModItems.ANVIL_AMULET.asStack(), - COGWHEEL_AMULET.asStack(), - CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS - ); - } - } - - private static class MyProvider implements SimpleRegistry.Provider { - @Override - public @Nullable BoilerHeater get(Block block) { - return switch (block) { - case HeaterBlock ignored -> HEATER; - case IncandescentBlock ignored -> INCANDESCENT; - case GlowingBlock ignored -> GLOWING; - case RedhotBlock ignored -> REDHOT; - default -> null; - }; - } - } - - private record ConstantValueHeater(float level) implements BoilerHeater { - - @Override - public float getHeat(Level level, BlockPos blockPos, BlockState blockState) { - return this.level; - } - } - - public static final ItemEntry COGWHEEL_AMULET = REGISTRATE - .item( - "cogwheel_amulet", - properties -> new AmuletItem(properties) { - @Override - public Holder getType() { - return COGWHEEL; - } - } - ) - .properties(properties -> properties.stacksTo(1)) - .removeTab(ModItemGroups.ANVILCRAFT_INGREDIENTS.getKey()) - .recipe((ctx, provider) -> JewelCraftingRecipe.builder() - .withCondition(new ModLoadedCondition("create")) - .requires(ModItems.SILVER_INGOT, 1) - .requires(AllItems.PRECISION_MECHANISM, 16) - .result(new ItemStack(ctx.get())) - .save(provider) - ) - .register(); - - private static final DeferredHolder COGWHEEL = REGISTER.register( - "cogwheel", AmuletType.builder() - .obtainByDamage( - AllDamageTypes.CRUSH, - AllDamageTypes.CUCKOO_SURPRISE, - AllDamageTypes.DRILL, - AllDamageTypes.POTATO_CANNON, - AllDamageTypes.ROLLER, - AllDamageTypes.RUN_OVER, - AllDamageTypes.SAW - ) - .obtainOr((player, source) -> source.typeHolder().is(DamageTypes.PLAYER_ATTACK) && Optional.ofNullable(source.getEntity()) - .map(entity -> Util.instanceOfAny(entity, DeployerFakePlayer.class)) - .orElse(false)) - .immuneDamageFromObtain() - .amulet(COGWHEEL_AMULET) - ::build - ); -} diff --git a/src/main/java/dev/anvilcraft/addon/create/mixin/MechanicalBearingBlockEntityMixin.java b/src/main/java/dev/anvilcraft/addon/create/mixin/MechanicalBearingBlockEntityMixin.java index 83a0455..33b07f4 100644 --- a/src/main/java/dev/anvilcraft/addon/create/mixin/MechanicalBearingBlockEntityMixin.java +++ b/src/main/java/dev/anvilcraft/addon/create/mixin/MechanicalBearingBlockEntityMixin.java @@ -13,6 +13,8 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; +import javax.annotation.Nullable; + /** * Mixin类用于修改 {@link MechanicalBearingBlockEntity} 的行为。 * 此类通过继承 {@link GeneratingKineticBlockEntity} 并实现接口来扩展原版逻辑, @@ -28,7 +30,7 @@ abstract class MechanicalBearingBlockEntityMixin extends GeneratingKineticBlockE * @return 被带动的机械装置实体,可能为null */ @Shadow - public abstract ControlledContraptionEntity getMovedContraption(); + public abstract @Nullable ControlledContraptionEntity getMovedContraption(); /** * 构造一个新的 {@code MechanicalBearingBlockEntityMixin} 实例。 diff --git a/src/main/java/dev/anvilcraft/addon/create/mixin/package-info.java b/src/main/java/dev/anvilcraft/addon/create/mixin/package-info.java new file mode 100644 index 0000000..7a1e53a --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/mixin/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package dev.anvilcraft.addon.create.mixin; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/anvilcraft/addon/create/package-info.java b/src/main/java/dev/anvilcraft/addon/create/package-info.java new file mode 100644 index 0000000..2ea4e84 --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package dev.anvilcraft.addon.create; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/java/dev/anvilcraft/addon/create/util/ChargeMovementBehaviour.java b/src/main/java/dev/anvilcraft/addon/create/util/ChargeMovementBehaviour.java index 0f6f71e..be99b6e 100644 --- a/src/main/java/dev/anvilcraft/addon/create/util/ChargeMovementBehaviour.java +++ b/src/main/java/dev/anvilcraft/addon/create/util/ChargeMovementBehaviour.java @@ -2,22 +2,17 @@ import com.simibubi.create.api.behaviour.movement.MovementBehaviour; import com.simibubi.create.content.contraptions.Contraption; -import com.simibubi.create.content.contraptions.ControlledContraptionEntity; -import com.simibubi.create.content.contraptions.bearing.MechanicalBearingBlockEntity; import com.simibubi.create.content.contraptions.bearing.StabilizedBearingMovementBehaviour; import com.simibubi.create.content.contraptions.behaviour.MovementContext; import dev.anvilcraft.addon.create.AnvilCraftCreateAddition; -import dev.anvilcraft.addon.create.mixin.ContraptionInvoker; import dev.dubhe.anvilcraft.api.chargecollector.ChargeCollectorManager; import dev.dubhe.anvilcraft.init.block.ModBlockTags; import dev.dubhe.anvilcraft.init.block.ModBlocks; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; import net.neoforged.bus.api.SubscribeEvent; @@ -25,7 +20,6 @@ import net.neoforged.neoforge.common.Tags; import net.neoforged.neoforge.event.server.ServerStartedEvent; import org.apache.commons.lang3.tuple.MutablePair; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.spongepowered.asm.mixin.Unique; @@ -45,7 +39,7 @@ public class ChargeMovementBehaviour implements MovementBehaviour { * @param context 移动上下文对象,包含世界、位置、状态等信息 */ @Override - public void tick(@NotNull MovementContext context) { + public void tick(MovementContext context) { Level level = context.world; double speed = context.motion.length(); BlockPos blockPos = BlockPos.containing(context.position); @@ -67,7 +61,7 @@ public void tick(@NotNull MovementContext context) { * @param blockPos 当前方块的位置 * @param speed 方块移动的速度大小 */ - public void magnetTick(@NotNull ChargeCollectorManager manager, @NotNull Level level, BlockPos blockPos, double speed) { + public void magnetTick(ChargeCollectorManager manager, Level level, BlockPos blockPos, double speed) { // 遍历六个方向查找相邻的金属方块并为其充能 for (Direction direction : Direction.values()) { BlockPos offsetPos = blockPos.relative(direction); @@ -88,7 +82,7 @@ public void magnetTick(@NotNull ChargeCollectorManager manager, @NotNull Level l * @param blockPos 当前方块的位置 * @param speed 方块移动的速度大小 */ - public void metalTick(@NotNull ChargeCollectorManager manager, @NotNull Level level, BlockPos blockPos, double speed) { + public void metalTick(ChargeCollectorManager manager, Level level, BlockPos blockPos, double speed) { // 遍历六个方向寻找相邻的磁铁方块,并将产生的电量传递给附近的集电器 int magnetCount = 0; for (Direction direction : Direction.values()) { @@ -128,7 +122,7 @@ public static void register(ServerStartedEvent event) { registered = true; } - private static @Nullable String registerBlock(@NotNull Block block) { + private static @Nullable String registerBlock(Block block) { MovementBehaviour behaviour = MovementBehaviour.REGISTRY.get(block); if (behaviour != null) { return null; @@ -153,7 +147,7 @@ public static void register(ServerStartedEvent event) { * @param state 方块的状态对象 * @return 如果是金属材料返回true,否则返回false */ - public static boolean isMetal(@NotNull BlockState state) { + public static boolean isMetal(BlockState state) { return state.is(Tags.Blocks.STORAGE_BLOCKS_COPPER) // 铜 || state.is(Tags.Blocks.STORAGE_BLOCKS_IRON) // 铁 || state.is(Tags.Blocks.STORAGE_BLOCKS_GOLD) // 金 @@ -187,7 +181,7 @@ public static boolean isMetal(@NotNull BlockState state) { } @Unique - public static float calculateStressApplied(@NotNull Contraption contraption) { + public static float calculateStressApplied(Contraption contraption) { float coefficient = 0.0f; // 遍历所有活动部件,查找具有ChargeMovementBehaviour的行为,并根据其位置累加系数 for (MutablePair actor : contraption.getActors()) { diff --git a/src/main/java/dev/anvilcraft/addon/create/util/package-info.java b/src/main/java/dev/anvilcraft/addon/create/util/package-info.java new file mode 100644 index 0000000..6e7e0d4 --- /dev/null +++ b/src/main/java/dev/anvilcraft/addon/create/util/package-info.java @@ -0,0 +1,7 @@ +@MethodsReturnNonnullByDefault +@ParametersAreNonnullByDefault +package dev.anvilcraft.addon.create.util; + +import net.minecraft.MethodsReturnNonnullByDefault; + +import javax.annotation.ParametersAreNonnullByDefault; diff --git a/src/main/resources/pack.png b/src/main/resources/pack.png new file mode 100644 index 0000000000000000000000000000000000000000..979351eadb575738eedbe89da40f498e7d73c111 GIT binary patch literal 109200 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 HXBYV&L9*Sx literal 0 HcmV?d00001 diff --git a/src/main/templates/META-INF/neoforge.mods.toml b/src/main/templates/META-INF/neoforge.mods.toml index a2ed8a7..323bcc0 100644 --- a/src/main/templates/META-INF/neoforge.mods.toml +++ b/src/main/templates/META-INF/neoforge.mods.toml @@ -25,7 +25,7 @@ displayName = "${mod_name}" #mandatory # A URL for the "homepage" for this mod, displayed in the mod UI displayURL = "https://docs.anvilcraft.dev/" #optional # A file name (in the root of the mod JAR) containing a logo for display -#logoFile="anvilcraft_addon_template.png" #optional +logoFile="pack.png" #optional # A text field displayed in the mod UI #credits="" #optional # A text field displayed in the mod UI From af374ec64fd2fdc4a262f4545fbe04b441e18101 Mon Sep 17 00:00:00 2001 From: Gugle Date: Thu, 19 Mar 2026 17:17:12 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat(readme):=20=E6=B7=BB=E5=8A=A0=20AnvilC?= =?UTF-8?q?raft=20Create=20Addition=20=E6=A8=A1=E7=BB=84=E7=9A=84=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E5=92=8C=E4=B8=AD=E6=96=87=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.en.md | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 180 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 353 insertions(+), 6 deletions(-) create mode 100644 README.en.md diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..934babf --- /dev/null +++ b/README.en.md @@ -0,0 +1,179 @@ +# AnvilCraft Create Addition + +English | [中文](./README.md) + +## Introduction + +AnvilCraft Create Addition is an extension mod designed for the Minecraft Forge modding ecosystem. It provides deep integration between **AnvilCraft** and **Create**, two excellent mods, offering players new possibilities for mechanical crafting, power transmission, and magical enchantments. + +## Mod Features + +### Core Functionality + +- **Cogwheel Amulet**: A unique item combining Create's precision mechanisms with AnvilCraft's amulet system +- **Create Mod Integration**: Deep integration with Create Mod, providing richer power and mechanical solutions +- **Amulet System Extension**: Extends AnvilCraft's amulet functionality through an amulet type system +- **Batch Crafter Unpacking**: Advanced unpacking solutions for Create's batch processing machines +- **Boiler Heater**: Additional boiler heating mechanisms +- **A new way of generating electricity**: Learn about the Faraday Disk Generator. + +### Key Features + +✨ **Deep Mod Integration** - Seamless fusion of AnvilCraft and Create mod features + +⚙️ **Power System Extension** - New power transmission and stress management mechanisms + +🛠️ **Crafting Enhancement** - More synthesis methods and crafting possibilities + +🎨 **Beautiful Design** - Carefully designed item and block aesthetics + +## Technical Information + +### Versions + +- **Mod Version**: 1.0.0 +- **Minecraft Version**: 1.21.1 +- **NeoForge Version**: 21.1.152+ +- **Java Version**: 21+ + +### Core Dependencies + +- **AnvilCraft**: 1.5.2+hotfix.1650 +- **Create**: 6.0.6-107 +- **AnvilLib**: 1.4.0+build.172 +- **Flywheel**: 1.0.4-30 +- **Ponder**: 1.0.56 + +## Installation Guide + +### Requirements + +1. **Minecraft**: 1.21.1 +2. **NeoForge**: 21.1.152 or higher +3. **Required Mods**: + - AnvilCraft + - Create + - AnvilLib (usually provided by AnvilCraft) + +### Installation Steps + +1. Download the latest `.jar` file +2. Place the JAR file in your `mods` folder +3. Ensure all required prerequisite mods are installed +4. Launch the game + +## Configuration + +The mod configuration file is located at `config/anvilcraft_create_addition-common.toml` + +### Configuration Options + +```toml +# The ratio of the relative linear speed of the copper block and the magnet +# to the amount of charge generated +chargeGeneratedEfficiency = 0.72 + +# The mysterious coefficient, perhaps related to the stress required by the generator +stressDissipationCoefficient = 1.76 +``` + +## Project Structure + +``` +AnvilCraft-Create-Addition/ +├── src/main/ +│ ├── java/dev/anvilcraft/addon/create/ +│ │ ├── init/ # Initialization modules (items, blocks, amulets, etc.) +│ │ ├── integration/ # Integration with other mods +│ │ ├── client/ # Client-side code +│ │ ├── data/ # Data generation +│ │ └── util/ # Utility classes +│ └── resources/ # Resource files +├── gradle/ # Gradle configuration +├── build.gradle # Build configuration +└── dependencies.gradle # Dependency definitions +``` + +## Development + +### Environment Setup + +This project uses **Gradle** as the build system and **NeoForge** as the mod loader. + +### Building the Project + +```bash +# Generate IDE configurations +./gradlew genSources + +# Build the mod +./gradlew build + +# Run development server +./gradlew runServer + +# Run development client +./gradlew runClient +``` + +### Code Style + +- Uses **Lombok** library to reduce boilerplate code +- Follows Java naming conventions +- Leverages Java 21 features + +## License + +### Code + +The code in this project is licensed under [LGPL-3.0](./LICENSE) by default. + +### Assets + +Non-code assets (such as textures, models, etc.) are licensed under [ASSET_LICENSE](./ASSETS_LICENSE) (ARR). + +## Contributing + +We welcome contributions from the community! If you want to contribute code or report issues: + +1. Fork this repository +2. Create your feature branch (`git checkout -b feature/AmazingFeature`) +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +## FAQ + +### Q: Can this mod be used standalone? +A: No, this is an extension mod and must be used together with AnvilCraft and Create. + +### Q: Which versions does this mod support? +A: Currently only supports Minecraft 1.21.1 and NeoForge 21.1.152+. + +### Q: How do I report a bug? +A: Please create an Issue in the GitHub repository with detailed steps to reproduce the problem. + +## Related Projects + +- [AnvilCraft](https://github.com/Anvil-Dev/AnvilCraft) - Core crafting and amulet system +- [Create](https://github.com/Creators-of-Create/Create) - Mechanical and power systems +- [AnvilLib](https://github.com/Anvil-Dev/AnvilLib) - Shared library + +## Acknowledgments + +Thanks to the following projects for inspiration and technical support: + +- Create Mod team +- AnvilCraft development team +- Dubhe Studio +- Anvil development team + +## Contact + +- **GitHub**: [AnvilCraft-Create-Addition](https://github.com/Anvil-Dev/AnvilCraft-Create-Addition) +- **Maintainers**: Anvil-Dev Team + +--- + +**Enjoy your game!** 🎮 + diff --git a/README.md b/README.md index b8c511f..61e059a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,177 @@ -## 使用许可 +# AnvilCraft Create Addition -* 除非另有说明,否则代码默认许可为 [LICENSE 文件(LGPL-3.0)](./LICENSE) -* 除非另有说明,否则非代码资产默认许可为 [ASSET_LICENSE 文件(ARR)](./ASSETS_LICENSE) +[English](./README.en.md) | 中文 -## License +## 简介 -* Code unless otherwise stated default to our [LICENSE file(LGPL-3.0)](./LICENSE) here -* Non-Code assets (Located here) go by our [ASSET_LICENSE file(ARR)](./ASSETS_LICENSE) here +AnvilCraft Create Addition 是一个为 Minecraft Forge 模组生态系统设计的扩展模组。它将 **AnvilCraft** 和 **Create** 两个优秀的模组深度融合,为玩家提供新的机械加工、动力传输和魔法工艺的可能性。 + +## 模组特性 + +### 核心功能 + +- **齿轮护符(Cogwheel Amulet)**:融合了 Create 精密机械与 AnvilCraft 护符系统的独特道具 +- **Create 模组集成**:与 Create Mod 的深度整合,提供更丰富的动力和机械解决方案 +- **护符系统扩展**:通过护符类型系统扩展 AnvilCraft 的护符功能 +- **批量加工解包**:支持 Create 批处理机器的高级解包方案 +- **锅炉加热器**:提供额外的锅炉加热方案 +- **全新发电方式**:法拉第圆盘发电机了解一下 + +### 主要特点 + +✨ **深度模组融合** - 无缝整合 AnvilCraft 和 Create 两个模组的优秀特性 + +⚙️ **动力系统扩展** - 新增的动力传输和应力管理机制 + +🛠️ **工艺增强** - 更多的合成方式和工艺可能性 + +🎨 **美观设计** - 精心设计的物品和方块外观 + +## 技术信息 + +### 版本 + +- **模组版本**: 1.0.0 +- **Minecraft 版本**: 1.21.1 +- **NeoForge 版本**: 21.1.152+ +- **Java 版本**: 21+ + +### 核心依赖 + +- **AnvilCraft**: 1.5.2+hotfix.1650 +- **Create**: 6.0.6-107 +- **AnvilLib**: 1.4.0+build.172 +- **Flywheel**: 1.0.4-30 +- **Ponder**: 1.0.56 + +## 安装指南 + +### 前置要求 + +1. **Minecraft**: 1.21.1 +2. **NeoForge**: 21.1.152 或更高版本 +3. **必需模组**: + - AnvilCraft + - Create + - AnvilLib(通常由 AnvilCraft 提供) + +### 安装步骤 + +1. 下载最新的 `.jar` 文件 +2. 将 JAR 文件放入你的 `mods` 文件夹 +3. 确保所有必需的前置模组已安装 +4. 启动游戏 + +## 配置 + +模组配置文件位于 `config/anvilcraft_create_addition-common.toml` + +### 可配置选项 + +```toml +# 相对线速度与充能量的效率比值 +chargeGeneratedEfficiency = 0.72 + +# 神秘系数,可能与发电机所需应力相关 +stressDissipationCoefficient = 1.76 +``` + +## 项目结构 + +``` +AnvilCraft-Create-Addition/ +├── src/main/ +│ ├── java/dev/anvilcraft/addon/create/ +│ │ ├── init/ # 初始化模块(物品、方块、护符等) +│ │ ├── integration/ # 与其他模组的集成 +│ │ ├── client/ # 客户端代码 +│ │ ├── data/ # 数据生成 +│ │ └── util/ # 工具类 +│ └── resources/ # 资源文件 +├── gradle/ # Gradle 配置 +├── build.gradle # 构建配置 +└── dependencies.gradle # 依赖定义 +``` + +## 开发 + +### 环境配置 + +本项目使用 **Gradle** 构建系统,采用 **NeoForge** 作为模组加载器。 + +### 构建项目 + +```bash +# 生成 IDE 配置 +./gradlew genSources + +# 构建模组 +./gradlew build + +# 运行开发服务器 +./gradlew runServer + +# 运行开发客户端 +./gradlew runClient +``` + +### 代码风格 + +- 使用 **Lombok** 库来减少样板代码 +- 遵循 Java 命名规范 +- 使用 Java 21 的特性 + +## 许可证 + +### 代码 + +本项目的代码默认采用 [LGPL-3.0](./LICENSE) 许可证。 + +### 资源 + +非代码资源(如纹理、模型等)采用 [ASSET_LICENSE](./ASSETS_LICENSE) 许可证(ARR)。 + +## 贡献 + +我们欢迎社区的贡献!如果你想贡献代码或报告问题: + +1. Fork 本仓库 +2. 创建你的功能分支 (`git checkout -b feature/AmazingFeature`) +3. 提交你的更改 (`git commit -m 'Add some AmazingFeature'`) +4. 推送到分支 (`git push origin feature/AmazingFeature`) +5. 开启一个 Pull Request + +## 常见问题 + +### Q: 这个模组可以单独使用吗? +A: 不可以,这是一个扩展模组,必须与 AnvilCraft 和 Create 一起使用。 + +### Q: 模组兼容哪些版本? +A: 目前仅支持 Minecraft 1.21.1 和 NeoForge 21.1.152+。 + +### Q: 我发现了一个 bug,怎样报告? +A: 请在 GitHub 仓库中创建一个 Issue,并详细描述问题的复现步骤。 + +## 相关项目 + +- [AnvilCraft](https://github.com/Anvil-Dev/AnvilCraft) - 核心工艺和护符系统 +- [Create](https://github.com/Creators-of-Create/Create) - 机械和动力系统 +- [AnvilLib](https://github.com/Anvil-Dev/AnvilLib) - 共享库 + +## 致谢 + +感谢以下项目的灵感和技术支持: + +- Create Mod 团队 +- AnvilCraft 开发团队 +- Dubhe 工作室 +- Anvil 开发团队 + +## 联系方式 + +- **GitHub**: [AnvilCraft-Create-Addition](https://github.com/Anvil-Dev/AnvilCraft-Create-Addition) +- **维护者**: Anvil-Dev 团队 + +--- + +**祝你游戏愉快!** 🎮 From 1c8b0ceb20e7015b3f2589f90650cdab15ad70a5 Mon Sep 17 00:00:00 2001 From: Gugle Date: Thu, 19 Mar 2026 17:23:09 +0800 Subject: [PATCH 3/5] feat(ci): update CI configuration for mod publishing and add version type --- .github/workflows/ci.yml | 30 +++++++++++++++++++++++++++++- gradle.properties | 4 ++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9a3e19f..35649ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,7 @@ jobs: env: CI_BUILD: true PR_BUILD: false + VERSION_TYPE: release steps: - name: checkout uses: actions/checkout@v4 @@ -28,7 +29,7 @@ jobs: uses: christian-draeger/read-properties@1.1.1 with: path: gradle.properties - properties: 'mod_id mod_name java_version upload' + properties: 'mod_id mod_name java_version modrinth_id curseforge_id upload' - name: Setup Java ${{ steps.properties.outputs.java_version }} uses: actions/setup-java@v3.6.0 @@ -72,3 +73,30 @@ jobs: with: mod: build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}.jar extra-mods: patchouli:1.21-87-neoforge anvilcraft:1.21.1-1.5.0+pre-release.21 create:1.21.1-6.0.6 + + - name: publish neoforge mc mod + uses: Kir-Antipov/mc-publish@v3.3 + if: ${{ steps.properties.outputs.upload }} + continue-on-error: true + with: + name: "${{ steps.properties.outputs.mod_name }} For NeoForge v${{ steps.version.outputs.version }}" + version: ${{ steps.version.outputs.version }} + game-versions: 1.21.1 + version-type: ${{ env.VERSION_TYPE }} + java: 21 + fail-mode: skip + + modrinth-id: ${{ steps.properties.outputs.modrinth_id }} + modrinth-token: ${{ secrets.MODRINTH_TOKEN }} + modrinth-featured: true + + curseforge-id: ${{ steps.properties.outputs.curseforge_id }} + curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} + + dependencies: | + create@mc1.21.1-6.0.7(required){modrinth:LNytGWDc}{curseforge:328085} + anvilcraft@1.21.1-1.5.0(required){modrinth:vuISAWPc}{curseforge:986251} + + files: | + build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}.jar + build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}-sources.jar diff --git a/gradle.properties b/gradle.properties index 5a83384..59f4b0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,8 +15,8 @@ parchment_minecraft_version=1.21.1 parchment_mappings_version=2024.11.17 ## Upload info upload=false -modrinth_id=xxxxx -curseforge_id=xxxxx +modrinth_id=R9QDTexW +curseforge_id=1489968 ## Mod info mod_id=anvilcraft_create_addition mod_name=AnvilCraftCreateAddition From fb5e9709022c991596393ce054852ad9eec7ce57 Mon Sep 17 00:00:00 2001 From: Gugle Date: Thu, 19 Mar 2026 17:41:10 +0800 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- .github/workflows/ci.yml | 10 +++++----- README.en.md | 2 +- README.md | 2 +- .../anvilcraft/addon/create/init/AdditionItems.java | 1 - 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35649ee..84bea7b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,7 +60,7 @@ jobs: path: build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}.jar - name: Publish to maven - if: ${{ steps.properties.outputs.upload }} + if: ${{ steps.properties.outputs.upload == 'true' }} run: ./gradlew publish env: MAVEN_URL: ${{ secrets.MAVEN_URL }} @@ -72,11 +72,11 @@ jobs: uses: Anvil-Dev/dedicated-server-launch-test@1.21.1-neoforge with: mod: build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}.jar - extra-mods: patchouli:1.21-87-neoforge anvilcraft:1.21.1-1.5.0+pre-release.21 create:1.21.1-6.0.6 + extra-mods: patchouli:1.21-87-neoforge anvilcraft:1.21.1-1.5.2+hotfix.1650 create:1.21.1-6.0.6-107 - name: publish neoforge mc mod uses: Kir-Antipov/mc-publish@v3.3 - if: ${{ steps.properties.outputs.upload }} + if: ${{ steps.properties.outputs.upload == 'true' }} continue-on-error: true with: name: "${{ steps.properties.outputs.mod_name }} For NeoForge v${{ steps.version.outputs.version }}" @@ -94,8 +94,8 @@ jobs: curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} dependencies: | - create@mc1.21.1-6.0.7(required){modrinth:LNytGWDc}{curseforge:328085} - anvilcraft@1.21.1-1.5.0(required){modrinth:vuISAWPc}{curseforge:986251} + create@mc1.21.1-6.0.6-107(required){modrinth:LNytGWDc}{curseforge:328085} + anvilcraft@1.21.1-1.5.2+hotfix.1650(required){modrinth:vuISAWPc}{curseforge:986251} files: | build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}.jar diff --git a/README.en.md b/README.en.md index 934babf..c54c228 100644 --- a/README.en.md +++ b/README.en.md @@ -4,7 +4,7 @@ English | [中文](./README.md) ## Introduction -AnvilCraft Create Addition is an extension mod designed for the Minecraft Forge modding ecosystem. It provides deep integration between **AnvilCraft** and **Create**, two excellent mods, offering players new possibilities for mechanical crafting, power transmission, and magical enchantments. +AnvilCraft Create Addition is an extension mod designed for the NeoForge modding ecosystem. It provides deep integration between **AnvilCraft** and **Create**, two excellent mods, offering players new possibilities for mechanical crafting, power transmission, and magical enchantments. ## Mod Features diff --git a/README.md b/README.md index 61e059a..5b7914a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## 简介 -AnvilCraft Create Addition 是一个为 Minecraft Forge 模组生态系统设计的扩展模组。它将 **AnvilCraft** 和 **Create** 两个优秀的模组深度融合,为玩家提供新的机械加工、动力传输和魔法工艺的可能性。 +AnvilCraft Create Addition 是一个为 NeoForge 模组生态系统设计的扩展模组。它将 **AnvilCraft** 和 **Create** 两个优秀的模组深度融合,为玩家提供新的机械加工、动力传输和魔法工艺的可能性。 ## 模组特性 diff --git a/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java b/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java index cd8ddee..0f661a8 100644 --- a/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java +++ b/src/main/java/dev/anvilcraft/addon/create/init/AdditionItems.java @@ -2,7 +2,6 @@ import com.simibubi.create.AllItems; import com.tterrag.registrate.util.entry.ItemEntry; -import dev.dubhe.anvilcraft.AnvilCraft; import dev.dubhe.anvilcraft.api.amulet.type.AmuletType; import dev.dubhe.anvilcraft.init.item.ModItemGroups; import dev.dubhe.anvilcraft.init.item.ModItems; From 0a0a5034c92a4abcda4f59f870ddf3e5fb4172af Mon Sep 17 00:00:00 2001 From: Gugle Date: Thu, 19 Mar 2026 17:56:40 +0800 Subject: [PATCH 5/5] fix(ci): update mod dependencies in CI configuration --- .github/workflows/ci.yml | 4 ++-- .github/workflows/release.yml | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84bea7b..31dd0d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,7 +72,7 @@ jobs: uses: Anvil-Dev/dedicated-server-launch-test@1.21.1-neoforge with: mod: build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}.jar - extra-mods: patchouli:1.21-87-neoforge anvilcraft:1.21.1-1.5.2+hotfix.1650 create:1.21.1-6.0.6-107 + extra-mods: patchouli:1.21-87-neoforge anvilcraft:1.21.1-1.5.2+hotfix.1650 create:1.21.1-6.0.6 - name: publish neoforge mc mod uses: Kir-Antipov/mc-publish@v3.3 @@ -94,7 +94,7 @@ jobs: curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} dependencies: | - create@mc1.21.1-6.0.6-107(required){modrinth:LNytGWDc}{curseforge:328085} + create@mc1.21.1-6.0.6(required){modrinth:LNytGWDc}{curseforge:328085} anvilcraft@1.21.1-1.5.2+hotfix.1650(required){modrinth:vuISAWPc}{curseforge:986251} files: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b227176..fbd82c4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -86,6 +86,10 @@ jobs: curseforge-id: ${{ steps.properties.outputs.curseforge_id }} curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }} + dependencies: | + create@mc1.21.1-6.0.6(required){modrinth:LNytGWDc}{curseforge:328085} + anvilcraft@1.21.1-1.5.2+hotfix.1650(required){modrinth:vuISAWPc}{curseforge:986251} + files: | build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}.jar build/libs/${{ steps.properties.outputs.mod_id }}-neoforge-${{ steps.version.outputs.version }}-sources.jar