Posted January 27, 20232 yr So I attempted to make a custom Leaves Block, everything works, except that the hardness, no matter what I do decides to stay at the same hardness as a grass block instead of any leaves. Why cant I change it? My full ModBlocks file (Leaf is LEAVES_ROWAN) package net.darealboy.magic.block; import net.darealboy.magic.Magic; import net.darealboy.magic.block.custom.ModFlammableRotatedPillarBlock; import net.darealboy.magic.item.ModCreativeModeTab; import net.darealboy.magic.item.ModItems; import net.darealboy.magic.world.feature.tree.RowanTreeGrower; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.Item; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.*; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; import java.util.function.Supplier; public class ModBlocks { public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, Magic.MOD_ID); //Blocks public static final RegistryObject<Block> ALTAR_BLOCK = registerBlock("altar_block", () -> new Block(BlockBehaviour.Properties.of(Material.STONE).strength(1.5f).requiresCorrectToolForDrops()), ModCreativeModeTab.MAGIC_TAB); /* ROWAN_WOODS------------------------------------------------------------------------------------------------------------------------------------------------------------------------ / ROWAN_WOODS------------------------------------------------------------------------------------------------------------------------------------------------------------------------ / ROWAN_WOODS------------------------------------------------------------------------------------------------------------------------------------------------------------------------ */ public static final RegistryObject<Block> LOG_ROWAN = registerBlock("log_rowan", () -> new ModFlammableRotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.OAK_LOG) .requiresCorrectToolForDrops()), ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> WOOD_ROWAN = registerBlock("wood_rowan", () -> new ModFlammableRotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.OAK_WOOD) .requiresCorrectToolForDrops()), ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> STRIPPED_LOG_ROWAN = registerBlock("stripped_log_rowan", () -> new ModFlammableRotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_OAK_LOG) .requiresCorrectToolForDrops()), ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> STRIPPED_WOOD_ROWAN = registerBlock("stripped_wood_rowan", () -> new ModFlammableRotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_OAK_WOOD) .requiresCorrectToolForDrops()), ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> SAPLING_ROWAN = registerBlock("sapling_rowan", () -> new SaplingBlock(new RowanTreeGrower(), BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING)), ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> PLANKS_ROWAN = registerBlock("planks_rowan", () -> new Block(BlockBehaviour.Properties.copy(Blocks.OAK_PLANKS) .requiresCorrectToolForDrops()) { @Override public boolean isFlammable(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return true; } @Override public int getFlammability(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 5; } @Override public int getFireSpreadSpeed(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 20; } }, ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> LEAVES_ROWAN = registerBlock("leaves_rowan", () -> new LeavesBlock(BlockBehaviour.Properties.copy(Blocks.OAK_LEAVES) .requiresCorrectToolForDrops()) { @Override public boolean isFlammable(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return true; } @Override public int getFlammability(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 30; } @Override public int getFireSpreadSpeed(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 60; } }, ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> SLAB_ROWAN = registerBlock("slab_rowan", () -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SLAB) .requiresCorrectToolForDrops()) { @Override public boolean isFlammable(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return true; } @Override public int getFlammability(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 5; } @Override public int getFireSpreadSpeed(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 20; } }, ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> FENCE_ROWAN = registerBlock("fence_rowan", () -> new FenceBlock(BlockBehaviour.Properties.copy(Blocks.OAK_FENCE) .requiresCorrectToolForDrops()) { @Override public boolean isFlammable(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return true; } @Override public int getFlammability(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 5; } @Override public int getFireSpreadSpeed(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 20; } }, ModCreativeModeTab.MAGIC_TAB); public static final RegistryObject<Block> STAIR_ROWAN = registerBlock("stair_rowan", () -> new StairBlock(() -> ModBlocks.PLANKS_ROWAN.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.OAK_STAIRS) .requiresCorrectToolForDrops()) { @Override public boolean isFlammable(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return true; } @Override public int getFlammability(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 5; } @Override public int getFireSpreadSpeed(BlockState state, BlockGetter level, BlockPos pos, Direction direction) { return 20; } }, ModCreativeModeTab.MAGIC_TAB); /* ROWAN_WOODS------------------------------------------------------------------------------------------------------------------------------------------------------------------------ / ROWAN_WOODS------------------------------------------------------------------------------------------------------------------------------------------------------------------------ / ROWAN_WOODS------------------------------------------------------------------------------------------------------------------------------------------------------------------------ */ private static <T extends Block>RegistryObject<T> registerBlock(String name, Supplier<T> block, CreativeModeTab tab) { RegistryObject<T> toReturn = BLOCKS.register(name, block); registerBlockItem(name, toReturn, tab); return toReturn; } private static <T extends Block> RegistryObject<Item> registerBlockItem(String name, RegistryObject<T> block, CreativeModeTab tab) { return ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties().tab(tab))); } public static void register(IEventBus eventBus) { BLOCKS.register(eventBus); } }
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.