package terraflora.terravolt.terraflora.init;
import java.util.function.Function;
import com.google.common.base.Supplier;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.Material;
import net.minecraft.world.level.material.MaterialColor;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
import terraflora.terravolt.terraflora.terraflora;
public class BlockInit {
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, terraflora.MOD_ID);
public static final DeferredRegister<Item> ITEMS = ItemInit.ITEMS;
public static final RegistryObject<Block> SAKURA_LOG = register("sakura_log",
() -> new Block(BlockBehaviour.Properties.of(Material.WOOD, MaterialColor.COLOR_PURPLE ).strength(3.0f).sound(SoundType.WOOD)),
object -> () -> new BlockItem(object.get(),new Item.Properties().tab(terraflora.TERRAFLORA)));
public static final RegistryObject<Block> SAKURA_LEAVS = register("sakura_leaves",
() -> new Block(BlockBehaviour.Properties.of(Material.LEAVES, MaterialColor.COLOR_PURPLE ).strength(1.0f).sound(SoundType.GRASS)),
object -> () -> new BlockItem(object.get(), new Item.Properties().tab(terraflora.TERRAFLORA)));
private static <T extends Block> RegistryObject<T> registerBlock(final String name,
final Supplier<? extends T> block) {
return BLOCKS.register(name, block);
}
private static <T extends Block> RegistryObject<T> register(final String name, final Supplier<? extends T> block,
Function<RegistryObject<T>, Supplier<? extends Item>> item) {
RegistryObject<T> obj = registerBlock(name, block);
ITEMS.register(name, item.apply(obj));
return obj;
}}