package com.ismailkaygisiz.gamblingplus.block; import com.ismailkaygisiz.gamblingplus.GamblingPlusMod; import com.ismailkaygisiz.gamblingplus.item.ModItems; import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.DropExperienceBlock; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MapColor; import net.minecraftforge.eventbus.api.bus.BusGroup; 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 BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, GamblingPlusMod.MOD_ID); public static final RegistryObject RUBY_BLOCK = registerBlock("ruby_block", ()-> new Block(BlockBehaviour.Properties.of() .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "ruby_block"))))) .strength(.1f) .requiresCorrectToolForDrops() .sound(SoundType.IRON))); public static final RegistryObject RAW_RUBY_BLOCK = registerBlock("raw_ruby_block", ()-> new Block(BlockBehaviour.Properties.of() .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "raw_ruby_block"))))) .strength(.1f) .requiresCorrectToolForDrops())); public static final RegistryObject RUBY_ORE = registerBlock("ruby_ore", ()-> new DropExperienceBlock(UniformInt.of(2,4),BlockBehaviour.Properties.of() .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "ruby_ore"))))) .strength(.4f) .requiresCorrectToolForDrops())); public static final RegistryObject RUBY_DEEPSLATE_ORE = registerBlock("ruby_deepslate_ore", ()-> new DropExperienceBlock(UniformInt.of(3,6),BlockBehaviour.Properties.of() .setId((ResourceKey.create(Registries.BLOCK, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, "ruby_deepslate_ore"))))) .strength(.4f) .requiresCorrectToolForDrops() .sound(SoundType.DEEPSLATE))); public static void registerBlockItem(String name, RegistryObject block){ ModItems.ITEMS.register(name,()-> new BlockItem(block.get(), new Item.Properties() .setId(ResourceKey.create(Registries.ITEM, ResourceLocation.parse(String.format("%s:%s", GamblingPlusMod.MOD_ID, name)))) .useItemDescriptionPrefix())); } public static RegistryObject registerBlock(String name, Supplier block){ RegistryObject toReturn = BLOCKS.register(name,block); registerBlockItem(name, toReturn); return toReturn; } public static void register(BusGroup eventBus) { BLOCKS.register(eventBus); } }