diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockMonsterhoarder.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockMonsterhoarder.java index 5971a2b..c49d459 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockMonsterhoarder.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/blocks/BlockMonsterhoarder.java @@ -7,9 +7,12 @@ import de.jottyfan.minecraft.quickiefabric.blockentity.MonsterHoarderBlockEntity import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockEntityProvider; +import net.minecraft.block.BlockRenderType; import net.minecraft.block.BlockState; import net.minecraft.block.Material; import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityTicker; +import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.loot.context.LootContext.Builder; @@ -28,12 +31,22 @@ public class BlockMonsterhoarder extends Block implements BlockEntityProvider { public BlockMonsterhoarder() { super(FabricBlockSettings.of(Material.WOOD).hardness(2.5f).luminance(20)); } - + @Override public BlockEntity createBlockEntity(BlockPos pos, BlockState blockState) { return new MonsterHoarderBlockEntity(pos, blockState); } + @Override + public BlockRenderType getRenderType(BlockState state) { + return BlockRenderType.MODEL; + } + + @Override + public BlockEntityTicker getTicker(World world, BlockState state, BlockEntityType type){ + return checkType(type, QuickieBlocks.MONSTERHOARDER, (world1, pos, state1, be) -> MonsterHoarderBlockEntity.tick(world1, pos, state1, be)); + } + @Override public List getDroppedStacks(BlockState state, Builder builder) { List list = new ArrayList<>(); diff --git a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java index d0903d5..41e93b6 100644 --- a/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java +++ b/src/main/java/de/jottyfan/minecraft/quickiefabric/init/RegistryManager.java @@ -6,6 +6,8 @@ import java.util.List; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import de.jottyfan.minecraft.quickiefabric.blockentity.MonsterHoarderBlockEntity; +import de.jottyfan.minecraft.quickiefabric.blockentity.QuickieFabricBlockEntity; import de.jottyfan.minecraft.quickiefabric.blocks.QuickieBlocks; import de.jottyfan.minecraft.quickiefabric.container.BackpackScreenHandler; import de.jottyfan.minecraft.quickiefabric.event.BreakBlockCallback; @@ -15,11 +17,15 @@ import de.jottyfan.minecraft.quickiefabric.tools.QuickieTools; import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; import net.fabricmc.fabric.api.loot.v1.FabricLootPoolBuilder; import net.fabricmc.fabric.api.loot.v1.event.LootTableLoadingCallback; +import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.fabricmc.fabric.api.registry.FuelRegistry; import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry; import net.minecraft.block.Block; import net.minecraft.block.Blocks; import net.minecraft.block.ComposterBlock; +import net.minecraft.block.entity.BlockEntity; +import net.minecraft.block.entity.BlockEntityType; +import net.minecraft.block.entity.BlockEntityType.Builder; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; @@ -151,21 +157,21 @@ public class RegistryManager { Registry.register(Registry.ITEM, new Identifier(QUICKIEFABRIC, name), item); } -// public static final BlockEntityType registerBlockEntity(String name, -// BlockEntityType supplier, Block... blocks) { -// String fullname = new StringBuilder().append(QUICKIEFABRIC).append(":").append(name).toString(); -// Builder builder = BlockEntityType.Builder.create(supplier, blocks); -// BlockEntityType blockEntityType = builder.build(null); -// return Registry.register(Registry.BLOCK_ENTITY_TYPE, fullname, blockEntityType); -// } + public static final BlockEntityType registerBlockEntity(String name, + FabricBlockEntityTypeBuilder.Factory supplier, Block... blocks) { + String fullname = new StringBuilder().append(QUICKIEFABRIC).append(":").append(name).toString(); + Builder builder = FabricBlockEntityTypeBuilder.create(supplier, blocks); + BlockEntityType blockEntityType = builder.build(null); + return Registry.register(Registry.BLOCK_ENTITY_TYPE, fullname, blockEntityType); + } @SuppressWarnings("unchecked") public static final void registerBlockEntities() { -// LOGGER.debug("registering quickiefabric block entities"); + LOGGER.debug("registering quickiefabric block entities"); // QuickieFabricBlockEntity.ITEMHOARDER = (BlockEntityType) registerBlockEntity( // "itemhoarderblockentity", ItemHoarderBlockEntity::new, QuickieBlocks.ITEMHOARDER); -// QuickieFabricBlockEntity.MONSTERHOARDER = (BlockEntityType) registerBlockEntity( -// "monsterhoarderblockentity", MonsterHoarderBlockEntity::new, QuickieBlocks.MONSTERHOARDER); + QuickieFabricBlockEntity.MONSTERHOARDER = (BlockEntityType) registerBlockEntity( + "monsterhoarderblockentity", MonsterHoarderBlockEntity::new, QuickieBlocks.MONSTERHOARDER); // QuickieFabricBlockEntity.EMPTYLAVAHOARDER = (BlockEntityType) registerBlockEntity( // "emptylavahoarderblockentity", EmptyLavaHoarderBlockEntity::new, QuickieBlocks.EMPTYLAVAHOARDER, // QuickieBlocks.LAVAHOARDER);