-
Notifications
You must be signed in to change notification settings - Fork 0
initial files for furnace block #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
05ca78e
ff15221
e5f7ae5
32cd980
152d88d
50d3a52
7a67138
9d46031
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,10 +1,14 @@ | ||
| package com.tcm.MineTale; | ||
|
|
||
| import com.tcm.MineTale.block.workbenches.screen.FurnaceWorkbenchScreen; | ||
| import com.tcm.MineTale.registry.ModMenuTypes; | ||
|
|
||
| import net.fabricmc.api.ClientModInitializer; | ||
| import net.minecraft.client.gui.screens.MenuScreens; | ||
|
|
||
| public class MineTaleClient implements ClientModInitializer { | ||
| @Override | ||
| public void onInitializeClient() { | ||
| // This entrypoint is suitable for setting up client-specific logic, such as rendering. | ||
| MenuScreens.register(ModMenuTypes.FURNACE_WORKBENCH_MENU, FurnaceWorkbenchScreen::new); | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| package com.tcm.MineTale.block.workbenches.screen; | ||
|
|
||
| import com.tcm.MineTale.block.workbenches.menu.FurnaceWorkbenchMenu; | ||
|
|
||
| import net.minecraft.client.gui.GuiGraphics; | ||
| import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; | ||
| import net.minecraft.client.renderer.RenderPipelines; | ||
| import net.minecraft.resources.Identifier; | ||
| import net.minecraft.world.entity.player.Inventory; | ||
| import net.minecraft.network.chat.Component; | ||
|
|
||
| public class FurnaceWorkbenchScreen extends AbstractContainerScreen<FurnaceWorkbenchMenu> { | ||
| private static final Identifier TEXTURE = | ||
| // Identifier.fromNamespaceAndPath(MineTale.MOD_ID, "textures/gui/container/furnace_workbench.png"); | ||
| Identifier.withDefaultNamespace("textures/gui/container/furnace.png"); | ||
|
Comment on lines
+3
to
+15
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Find the FurnaceWorkbenchScreen file
find . -name "FurnaceWorkbenchScreen.java" -type fRepository: CodeMonkeysMods/MineTale Length of output: 155 🏁 Script executed: #!/bin/bash
# Search for furnace_workbench texture asset
find . -name "*furnace_workbench*" -type f 2>/dev/nullRepository: CodeMonkeysMods/MineTale Length of output: 50 🏁 Script executed: #!/bin/bash
# Search for MineTale class with MOD_ID constant
find . -name "MineTale.java" -type fRepository: CodeMonkeysMods/MineTale Length of output: 114 🏁 Script executed: #!/bin/bash
# Look at the FurnaceWorkbenchMenu to verify the layout
find . -name "FurnaceWorkbenchMenu.java" -type fRepository: CodeMonkeysMods/MineTale Length of output: 149 🏁 Script executed: #!/bin/bash
cat -n ./src/client/java/com/tcm/MineTale/block/workbenches/screen/FurnaceWorkbenchScreen.javaRepository: CodeMonkeysMods/MineTale Length of output: 1937 🏁 Script executed: #!/bin/bash
cat -n ./src/main/java/com/tcm/MineTale/block/workbenches/menu/FurnaceWorkbenchMenu.javaRepository: CodeMonkeysMods/MineTale Length of output: 6355 🏁 Script executed: #!/bin/bash
cat -n ./src/main/java/com/tcm/MineTale/MineTale.java | head -50Repository: CodeMonkeysMods/MineTale Length of output: 1384 🏁 Script executed: #!/bin/bash
# Double-check for texture assets in the correct asset directory structure
find . -path "*/assets/*/textures/gui/container/*furnace*" -type f 2>/dev/nullRepository: CodeMonkeysMods/MineTale Length of output: 50 Custom GUI texture asset must be created to match the 2x2 output slot layout. The menu defines a 2x2 output grid (slots at coordinates 116/134 × 21/39), but the vanilla furnace texture only has a single output slot. Either create the custom texture asset at 🤖 Prompt for AI Agents |
||
|
|
||
| public FurnaceWorkbenchScreen(FurnaceWorkbenchMenu menu, Inventory inventory, Component title) { | ||
| super(menu, inventory, title); | ||
| } | ||
|
|
||
| @Override | ||
| protected void init() { | ||
| super.init(); | ||
| this.titleLabelX = (this.imageWidth - this.font.width(this.title)) / 2; | ||
| } | ||
|
|
||
| protected void renderBg(GuiGraphics guiGraphics, float f, int i, int j) { | ||
| int k = this.leftPos; | ||
| int l = this.topPos; | ||
| guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, k, l, 0.0F, 0.0F, this.imageWidth, this.imageHeight, 256, 256); | ||
| } | ||
|
|
||
| @Override | ||
| public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { | ||
| renderBackground(graphics, mouseX, mouseY, delta); | ||
| super.render(graphics, mouseX, mouseY, delta); | ||
| renderTooltip(graphics, mouseX, mouseY); | ||
| } | ||
|
Comment on lines
+1
to
+64
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: fd 'FurnaceWorkbenchScreen.java'Repository: CodeMonkeysMods/MineTale Length of output: 151 🏁 Script executed: rg -n --type=java 'FurnaceWorkbenchScreen' -C2Repository: CodeMonkeysMods/MineTale Length of output: 2288 🏁 Script executed: # Also check for source set configuration files
fd -e 'gradle' -e 'pom.xml' | head -20Repository: CodeMonkeysMods/MineTale Length of output: 96 🏁 Script executed: cat build.gradleRepository: CodeMonkeysMods/MineTale Length of output: 2416 🏁 Script executed: # Check if there are any other references to FurnaceWorkbenchScreen outside client code
rg 'FurnaceWorkbenchScreen' --type=java -lRepository: CodeMonkeysMods/MineTale Length of output: 204 Move client-only screen to src/client/java (architectural violation with split source sets).
🧰 Tools🪛 GitHub Actions: build[error] 1-39: Compilation failed due to missing Minecraft GUI classes and unresolved symbols. Errors include: cannot find symbol for net.minecraft.client.gui.GuiGraphics, net.minecraft.client.gui.screens.inventory.AbstractContainerScreen, net.minecraft.client.renderer.RenderPipelines, and many dependent members (e.g., GuiGraphics, AbstractContainerScreen, RenderPipelines, title/width/font fields). This indicates missing or incompatible Minecraft/LibGraft/Mixin APIs in the project setup. 🤖 Prompt for AI Agents |
||
| } | ||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -5,21 +5,29 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import org.jetbrains.annotations.Nullable; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import com.mojang.serialization.MapCodec; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import com.tcm.MineTale.block.workbenches.entity.CampfireWorkbenchEntity; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import com.tcm.MineTale.registry.ModBlockEntities; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.core.BlockPos; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.core.Direction; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.InteractionResult; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.entity.player.Player; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.BlockGetter; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.Level; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.block.Block; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.block.RenderShape; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.block.entity.BlockEntity; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.block.entity.BlockEntityType; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.block.state.BlockState; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.block.state.properties.ChestType; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.level.block.state.properties.DoubleBlockHalf; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.phys.BlockHitResult; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.phys.shapes.CollisionContext; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| import net.minecraft.world.phys.shapes.VoxelShape; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // ChestBlock | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public class CampfireWorkbench extends AbstractWorkbench<BlockEntity> { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public class CampfireWorkbench extends AbstractWorkbench<CampfireWorkbenchEntity> { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public static final boolean IS_WIDE = false; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public static final boolean IS_TALL = false; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -31,7 +39,7 @@ public CampfireWorkbench(Properties properties) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| super(properties, () -> ModBlockEntities.CAMPFIRE_WORKBENCH_BE, IS_WIDE, IS_TALL); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public CampfireWorkbench(Properties properties, Supplier<BlockEntityType<? extends BlockEntity>> supplier) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public CampfireWorkbench(Properties properties, Supplier<BlockEntityType<? extends CampfireWorkbenchEntity>> supplier) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // isWide = false, isTall = false (1x1 footprint) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| super(properties, supplier, IS_WIDE, IS_TALL); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -48,18 +56,45 @@ public RenderShape getRenderShape(BlockState state) { | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return RenderShape.MODEL; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| private static final VoxelShape SHAPE = Block.box(0, 0, 0, 16, 7, 16); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| @Override | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return SHAPE; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| @Nullable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| @Override | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // For a 1x1, we always create the Block Entity at this position. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return this.blockEntityType.get().create(pos, state); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // Only spawn the entity at the "Master" position (LOWER + LEFT or LOWER + SINGLE) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if (state.getValue(HALF) == DoubleBlockHalf.LOWER && state.getValue(TYPE) != ChestType.RIGHT) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return blockEntityType.get().create(pos, state); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return null; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| private static final VoxelShape SHAPE = Block.box(0, 0, 0, 16, 7, 16); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| @Override | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return SHAPE; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if (level.isClientSide()) return InteractionResult.SUCCESS; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // BlockPos masterPos = getMasterPos(state, pos); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // BlockEntity be = level.getBlockEntity(masterPos); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // if (be instanceof AbstractWorkbenchEntity) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // // Open UI or handle Recycling logic here | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // // Example: if player is holding a tool, try to recycle it | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // return InteractionResult.CONSUME; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| // } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return InteractionResult.PASS; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
116
to
+129
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: # First, let's look at the complete file to understand the context
cat src/main/java/com/tcm/MineTale/block/workbenches/CampfireWorkbench.javaRepository: CodeMonkeysMods/MineTale Length of output: 6334 🏁 Script executed: # Search for other uses of InteractionResult in the codebase to see patterns
rg "InteractionResult\.(SUCCESS|PASS|CONSUME)" --context 2 -A 1Repository: CodeMonkeysMods/MineTale Length of output: 1931 🏁 Script executed: # Check if there are other workbench implementations to compare
fd -e java "Workbench" | head -20Repository: CodeMonkeysMods/MineTale Length of output: 702 🏁 Script executed: cat src/main/java/com/tcm/MineTale/block/workbenches/AbstractWorkbench.java | head -200Repository: CodeMonkeysMods/MineTale Length of output: 9181 🏁 Script executed: # Find the useWithoutItem or similar interaction methods in AbstractWorkbench
rg -A 15 "useWithoutItem|use(" src/main/java/com/tcm/MineTale/block/workbenches/AbstractWorkbench.javaRepository: CodeMonkeysMods/MineTale Length of output: 156 🏁 Script executed: # Check if there are other similar incomplete implementations or patterns
rg "useWithoutItem" -B 2 -A 8 src/main/java/com/tcm/MineTale/block/workbenches/Repository: CodeMonkeysMods/MineTale Length of output: 2607 🏁 Script executed: # Look at FurnaceWorkbench to see if it has similar pattern
cat src/main/java/com/tcm/MineTale/block/workbenches/FurnaceWorkbench.javaRepository: CodeMonkeysMods/MineTale Length of output: 4458 Return The current code returns Suggested fix- if (level.isClientSide()) return InteractionResult.SUCCESS;
+ if (level.isClientSide()) return InteractionResult.PASS;📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public BlockPos getMasterPos(BlockState state, BlockPos pos) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BlockPos master = pos; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Direction facing = state.getValue(FACING); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if (state.getValue(HALF) == DoubleBlockHalf.UPPER) master = master.below(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if (state.getValue(TYPE) == ChestType.RIGHT) master = master.relative(facing.getCounterClockWise()); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| return master; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| package com.tcm.MineTale.block.workbenches; | ||
|
|
||
| import java.util.function.Supplier; | ||
|
|
||
| import org.jetbrains.annotations.Nullable; | ||
|
|
||
| import com.mojang.serialization.MapCodec; | ||
| import com.tcm.MineTale.block.workbenches.entity.FurnaceWorkbenchEntity; | ||
| import com.tcm.MineTale.registry.ModBlockEntities; | ||
|
|
||
| import net.minecraft.core.BlockPos; | ||
| import net.minecraft.world.level.Level; | ||
| import net.minecraft.world.level.block.RenderShape; | ||
| import net.minecraft.world.level.block.entity.BlockEntity; | ||
| import net.minecraft.world.level.block.entity.BlockEntityTicker; | ||
| import net.minecraft.world.level.block.entity.BlockEntityType; | ||
| import net.minecraft.world.level.block.state.BlockState; | ||
|
|
||
| public class FurnaceWorkbench extends AbstractWorkbench<FurnaceWorkbenchEntity> { | ||
| // Setting these to true creates the 2x2 multi-block footprint | ||
| private static final boolean IS_WIDE = true; | ||
| private static final boolean IS_TALL = true; | ||
|
|
||
| public static final MapCodec<FurnaceWorkbench> CODEC = simpleCodec(FurnaceWorkbench::new); | ||
|
|
||
| /** | ||
| * Standard constructor for registration. | ||
| */ | ||
| public FurnaceWorkbench(Properties properties) { | ||
| super(properties, () -> ModBlockEntities.FURNACE_WORKBENCH_BE, IS_WIDE, IS_TALL); | ||
| } | ||
|
|
||
| /** | ||
| * Flexible constructor allowing for specialized Block Entity Types. | ||
| */ | ||
| public FurnaceWorkbench(Properties properties, Supplier<BlockEntityType<? extends FurnaceWorkbenchEntity>> supplier) { | ||
| super(properties, supplier, IS_WIDE, IS_TALL); | ||
| } | ||
|
|
||
| @Override | ||
| public RenderShape getRenderShape(BlockState state) { | ||
| // Essential so that the 2x2 model is visible | ||
| return RenderShape.MODEL; | ||
| } | ||
|
|
||
| @Nullable | ||
| @Override | ||
| public <T extends BlockEntity> BlockEntityTicker<T> getTicker(Level level, BlockState state, BlockEntityType<T> type) { | ||
| // Only the Master block (Lower-Left) should tick to process smelting | ||
| // This helper ensures the logic only runs on the Server side for our specific BE | ||
| return createTickerHelper(type, ModBlockEntities.FURNACE_WORKBENCH_BE, (lvl, pos, st, be) -> { | ||
| if (be instanceof FurnaceWorkbenchEntity furnace) { | ||
| furnace.tick(lvl, pos, st); | ||
| } | ||
| }); | ||
| } | ||
|
|
||
| @Nullable | ||
| @Override | ||
| public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { | ||
| // AbstractWorkbench logic ensures only the Master block gets the entity. | ||
| // We override it here to point specifically to our Furnace entity. | ||
| return super.newBlockEntity(pos, state); | ||
| } | ||
|
|
||
| @Override | ||
| protected MapCodec<? extends FurnaceWorkbench> codec() { | ||
| return CODEC; | ||
| } | ||
|
|
||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: CodeMonkeysMods/MineTale
Length of output: 919
Consider replacing
loom_version=1.15-SNAPSHOTwith a stable release.All versions are available in Maven repositories:
loader_version=0.18.4✓fabric_api_version=0.141.2+1.21.11✓loom_version=1.15-SNAPSHOTexists, but stable versions 1.15.1, 1.15.2, and 1.15.3 are also availableUsing the SNAPSHOT version introduces build instability unnecessarily when stable releases are available. Pin to
1.15.3(or the latest stable release appropriate for your build).🤖 Prompt for AI Agents