From cac866551007f03f42d7358df08000708bf4f423 Mon Sep 17 00:00:00 2001 From: m1919810 Date: Wed, 19 Nov 2025 06:16:53 +0800 Subject: [PATCH] initial commit --- .../infinitylib/machines/CraftingBlock.java | 3 ++- .../infinitylib/machines/MachineRecipeType.java | 4 ++++ .../infinitylib/machines/TickingMenuBlock.java | 17 +++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/mooy1/infinitylib/machines/CraftingBlock.java b/src/main/java/io/github/mooy1/infinitylib/machines/CraftingBlock.java index c7642de5..3498c7c0 100644 --- a/src/main/java/io/github/mooy1/infinitylib/machines/CraftingBlock.java +++ b/src/main/java/io/github/mooy1/infinitylib/machines/CraftingBlock.java @@ -53,9 +53,10 @@ protected void craft(Block b, BlockMenu menu, Player p) { if (menu.fits(recipe.output, layout.outputSlots())) { ItemStack output = recipe.output.clone(); onSuccessfulCraft(menu, output); + p.sendMessage(ChatColor.GREEN + "已合成: " + ItemUtils.getItemName(output)); menu.pushItem(output, layout.outputSlots()); recipe.consume(input); - p.sendMessage(ChatColor.GREEN + "已合成: " + ItemUtils.getItemName(output)); + } else { p.sendMessage(ChatColor.GOLD + "空间不足!"); } diff --git a/src/main/java/io/github/mooy1/infinitylib/machines/MachineRecipeType.java b/src/main/java/io/github/mooy1/infinitylib/machines/MachineRecipeType.java index 0895dcee..9ab4b2f7 100644 --- a/src/main/java/io/github/mooy1/infinitylib/machines/MachineRecipeType.java +++ b/src/main/java/io/github/mooy1/infinitylib/machines/MachineRecipeType.java @@ -27,6 +27,7 @@ public MachineRecipeType(String key, ItemStack item) { public void register(ItemStack[] recipe, ItemStack result) { callbacks.forEach(c -> c.accept(recipe, result)); recipes.put(recipe, result); + super.register(recipe, result); } public void sendRecipesTo(BiConsumer callback) { @@ -34,4 +35,7 @@ public void sendRecipesTo(BiConsumer callback) { callbacks.add(callback); } + public void unregister(ItemStack[] recipe, ItemStack result) { + recipes.remove(recipe, result); + } } diff --git a/src/main/java/io/github/mooy1/infinitylib/machines/TickingMenuBlock.java b/src/main/java/io/github/mooy1/infinitylib/machines/TickingMenuBlock.java index 07c50667..db0a54fd 100644 --- a/src/main/java/io/github/mooy1/infinitylib/machines/TickingMenuBlock.java +++ b/src/main/java/io/github/mooy1/infinitylib/machines/TickingMenuBlock.java @@ -16,6 +16,7 @@ @ParametersAreNonnullByDefault public abstract class TickingMenuBlock extends MenuBlock { + private int tickCount = 0; public TickingMenuBlock(ItemGroup category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) { super(category, item, recipeType, recipe); @@ -35,11 +36,27 @@ public void tick(Block b, SlimefunItem item, Config data) { } } + @Override + public void uniqueTick() { + TickingMenuBlock.this.updateMachineTickCount(); + TickingMenuBlock.this.uniqueTick(); + } }); } protected abstract void tick(Block b, BlockMenu menu); + private void updateMachineTickCount(){ + ++this.tickCount; + } + + protected int machineTickCount(){ + return this.tickCount; + } + + protected void uniqueTick(){ + + } protected boolean synchronous() { return false; }