Skip to content

Commit

Permalink
Make not crash on server
Browse files Browse the repository at this point in the history
  • Loading branch information
jiink committed Apr 18, 2024
1 parent e651d3f commit 9c99555
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
package jiink.smeltinginapinch;

import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.screen.ingame.HandledScreens;

@Environment(EnvType.CLIENT)
public class SmeltingInAPinchClient implements ClientModInitializer {

@Override
public void onInitializeClient() {
// This entrypoint is suitable for setting up client-specific logic, such as rendering.

// Make sure screen handler and screen are linked together
HandledScreens.register(SmeltingInAPinch.WOODEN_FURNACE_SCREEN_HANDLER, WoodenFurnaceScreen::new);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,10 @@ public WoodenFurnaceScreen(WoodenFurnaceScreenHandler handler, PlayerInventory i
@Override
protected void init() {
super.init();
titleY = 1000;
playerInventoryTitleY = 1000;
// titleY = 1000;
// playerInventoryTitleY = 1000;
// Center the title
titleX = (backgroundWidth - textRenderer.getWidth(title)) / 2;
}

@Override
Expand Down
18 changes: 9 additions & 9 deletions src/main/java/jiink/smeltinginapinch/SmeltingInAPinch.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType;
import net.minecraft.block.Block;
import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.client.gui.screen.ingame.HandledScreens;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroups;
Expand Down Expand Up @@ -59,12 +58,16 @@ public class SmeltingInAPinch implements ModInitializer {
new Identifier(MOD_ID, "wooden_furnace_block_entity"),
FabricBlockEntityTypeBuilder.create(WoodenFurnaceBlockEntity::new, WOODEN_FURNACE_BLOCK).build()
);
public static final ScreenHandlerType<WoodenFurnaceScreenHandler> WOODEN_FURNACE_SCREEN_HANDLER;

static {
WOODEN_FURNACE_SCREEN_HANDLER = Registry.register(
Registries.SCREEN_HANDLER,
new Identifier(MOD_ID, "wooden_furnace_screen_handler"),
new ExtendedScreenHandlerType<>(WoodenFurnaceScreenHandler::new)
);
}

public static final ScreenHandlerType<WoodenFurnaceScreenHandler> WOODEN_FURNACE_SCREEN_HANDLER = Registry.register(
Registries.SCREEN_HANDLER,
new Identifier(MOD_ID, "wooden_furnace_screen_handler"),
new ExtendedScreenHandlerType<>(WoodenFurnaceScreenHandler::new)
);
@Override
public void onInitialize() {
// This code runs as soon as Minecraft is in a mod-load-ready state.
Expand All @@ -76,8 +79,5 @@ public void onInitialize() {
content.addAfter(Items.BLAST_FURNACE, WOODEN_FURANCE_BLOCK_ITEM);
content.addAfter(Items.TORCH, DEMO_BLOCK_ITEM);
});

// Make sure screen handler and screen are linked together
HandledScreens.register(SmeltingInAPinch.WOODEN_FURNACE_SCREEN_HANDLER, WoodenFurnaceScreen::new);
}
}
15 changes: 2 additions & 13 deletions src/main/java/jiink/smeltinginapinch/WoodenFurnaceBlockEntity.java
Original file line number Diff line number Diff line change
@@ -1,39 +1,29 @@
package jiink.smeltinginapinch;

import java.util.Optional;

import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory;
import net.minecraft.block.BlockState;
import net.minecraft.block.HorizontalFacingBlock;
import net.minecraft.block.RedstoneTorchBlock;
import net.minecraft.block.entity.AbstractFurnaceBlockEntity;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.Inventories;
import net.minecraft.inventory.SimpleInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.recipe.Recipe;
import net.minecraft.recipe.RecipeEntry;
import net.minecraft.recipe.RecipeType;
import net.minecraft.recipe.SmeltingRecipe;
import net.minecraft.screen.FurnaceScreenHandler;
import net.minecraft.screen.PropertyDelegate;
import net.minecraft.screen.ScreenHandler;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.state.property.BooleanProperty;
import net.minecraft.state.property.DirectionProperty;
import net.minecraft.state.property.Properties;
import net.minecraft.text.Text;
import net.minecraft.util.collection.DefaultedList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraft.world.World.ExplosionSourceType;

import java.util.Optional;

public class WoodenFurnaceBlockEntity extends BlockEntity implements ExtendedScreenHandlerFactory, ImplementedInventory {

Expand Down Expand Up @@ -203,5 +193,4 @@ private boolean canInsertAmountIntoOutputSlot(ItemStack result) {
private boolean isOutputSlotEmptyOrReceivable() {
return this.getStack(OUTPUT_SLOT).isEmpty() || this.getStack(OUTPUT_SLOT).getCount() < this.getStack(OUTPUT_SLOT).getMaxCount();
}

}
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
package jiink.smeltinginapinch;

import net.minecraft.block.entity.BlockEntity;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.PlayerInventory;
import net.minecraft.inventory.Inventory;
import net.minecraft.inventory.SimpleInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketByteBuf;
import net.minecraft.recipe.AbstractCookingRecipe;
import net.minecraft.recipe.RecipeType;
import net.minecraft.recipe.SmeltingRecipe;
import net.minecraft.screen.ArrayPropertyDelegate;
import net.minecraft.screen.PropertyDelegate;
import net.minecraft.screen.ScreenHandler;
import net.minecraft.screen.ScreenHandlerType;
import net.minecraft.screen.slot.Slot;
import net.minecraft.world.World;

Expand Down

0 comments on commit 9c99555

Please sign in to comment.