Своя дверь

Версия Minecraft
1.12.2
166
2
46
Либо я так и не научился искать, либо гайдов/туториалов по созданию кастомной двери нет.
Буду очень признателен, если кто нибудь даст ссылку на гайд, либо пример кода.
Код ванильной двери мучаю уже три дня, не хватает базовых знаний понять что к чему.
(java учу, но прикладного опыта мало)
Заранее спасибо, кто откликнется
 
Последнее редактирование:
Решение
какой еще итем блок. Там обычный предмет, который блок ставит.
Java:
public class SovietDoor extends BlockDoor{

    public SovietDoor(String name, Material materialIn) {
        super(materialIn);
        this.setUnlocalizedName(name);
        this.setRegistryName(name);
    }
    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        if (this.blockMaterial == Material.IRON)
        {
            return false;
        }
        else
        {
            BlockPos blockpos = state.getValue(HALF) == BlockDoor.EnumDoorHalf.LOWER ? pos : pos.down();
            IBlockState iblockstate =...
5,018
47
783
не надо мучать код ванильной двери. Просто сделай блок extends BlockDoor и все.
 
5,018
47
783
какой еще итем блок. Там обычный предмет, который блок ставит.
Java:
public class SovietDoor extends BlockDoor{

    public SovietDoor(String name, Material materialIn) {
        super(materialIn);
        this.setUnlocalizedName(name);
        this.setRegistryName(name);
    }
    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        if (this.blockMaterial == Material.IRON)
        {
            return false;
        }
        else
        {
            BlockPos blockpos = state.getValue(HALF) == BlockDoor.EnumDoorHalf.LOWER ? pos : pos.down();
            IBlockState iblockstate = pos.equals(blockpos) ? state : worldIn.getBlockState(blockpos);

            if (iblockstate.getBlock() != this)
            {
                return false;
            }
            else
            {
                Minecraft mc = Minecraft.getMinecraft();
                state = iblockstate.cycleProperty(OPEN);
                worldIn.setBlockState(blockpos, state, 10);
                worldIn.markBlockRangeForRenderUpdate(blockpos, pos);
                worldIn.playSound(mc.player, pos, RegSounds.openhermodoor, SoundCategory.BLOCKS, 1.0F, 1.0F);
                return true;
            }
        }
    }
    @Override
    public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
    {
        return new ItemStack(this.getItem());
    }

    private Item getItem()
    {
        return RegItems.soviet_door;
    }
}

Код:
public class SovietDoorItem extends ItemDoor {

    public SovietDoorItem(String name, Block block) {
        super(block);
        this.setUnlocalizedName(name);
        this.setRegistryName(name);
        this.setCreativeTab(SovietCore.tabMain);
    }
    
}
 
166
2
46
Всё бы хорошо, но блок и итем отказываются регистрироваться.

Регистрация по учебнику (BlockRegister/ItemRegister)
public static Item DARK_PLASTIC_DOOR_ITEM = new DarkPlasticDoorItem("dark_plastic_door_item");
public static Block DARK_PLASTIC_DOOR = new DarkPlasticDoor("dark_plastic_door");
 
Последнее редактирование:
Сверху