package com.tiedup.remake.v2;

import com.tiedup.remake.core.TiedUpMod;
import com.tiedup.remake.v2.blocks.PetBedBlock;
import com.tiedup.remake.v2.blocks.PetBowlBlock;
import com.tiedup.remake.v2.blocks.PetCageBlock;
import com.tiedup.remake.v2.blocks.PetCagePartBlock;
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.MapColor;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;

/**
 * V2 Block Registration.
 * Registers OBJ-rendered blocks like pet bowls and beds.
 */
public class V2Blocks {

    public static final DeferredRegister<Block> BLOCKS =
        DeferredRegister.create(ForgeRegistries.BLOCKS, TiedUpMod.MOD_ID);

    // PET FURNITURE

    public static final RegistryObject<Block> PET_BOWL = BLOCKS.register(
        "pet_bowl",
        () ->
            new PetBowlBlock(
                BlockBehaviour.Properties.of()
                    .mapColor(MapColor.METAL)
                    .strength(1.0f)
                    .sound(SoundType.METAL)
                    .noOcclusion()
            )
    );

    public static final RegistryObject<Block> PET_BED = BLOCKS.register(
        "pet_bed",
        () ->
            new PetBedBlock(
                BlockBehaviour.Properties.of()
                    .mapColor(MapColor.WOOL)
                    .strength(0.5f)
                    .sound(SoundType.WOOL)
                    .noOcclusion()
            )
    );

    public static final RegistryObject<Block> PET_CAGE = BLOCKS.register(
        "pet_cage",
        () ->
            new PetCageBlock(
                BlockBehaviour.Properties.of()
                    .mapColor(MapColor.METAL)
                    .strength(2.0f)
                    .sound(SoundType.METAL)
                    .noOcclusion()
            )
    );

    public static final RegistryObject<Block> PET_CAGE_PART = BLOCKS.register(
        "pet_cage_part",
        () ->
            new PetCagePartBlock(
                BlockBehaviour.Properties.of()
                    .mapColor(MapColor.METAL)
                    .strength(2.0f)
                    .sound(SoundType.METAL)
                    .noOcclusion()
                    .noLootTable() // Only master drops the cage item
            )
    );
}
