Не работает кастомный Boundbox

Версия Minecraft
1.12.2
1,031
19
87
Сделал кастомный boundbox для своего блока по модели, но он не работает, тобишь boundbox обычный квадратный.
Код:
public class BlockSacredPlate extends Block {
    
    public static final float HARDNESS = 5.0F;
    public static final String TOOL_CLASS = "pickaxe";
    public static final int TOOL_LEVEL = 3;
    public static final float LIGHT_LEVEL = 7.0F;
    public static final String REGISTRY_NAME = "sacred_plate";
    public static final float RESISTANCE = 50.0F;
    public static final String LOCALIZATION_KEY = ExcaliburCraft.MOD_ID + "." + BlockSacredPlate.REGISTRY_NAME;

    public BlockSacredPlate() {
        
        super(Material.IRON);
        
        //this.setCreativeTab(tab)
        this.setHardness(HARDNESS);
        this.setHarvestLevel(TOOL_CLASS, TOOL_LEVEL);
        this.setLightLevel(LIGHT_LEVEL);
        this.setRegistryName(REGISTRY_NAME);
        this.setResistance(RESISTANCE);
        this.setSoundType(SoundType.METAL);
        this.setUnlocalizedName(LOCALIZATION_KEY);
        
    }
    
    @Override
    public boolean isOpaqueCube(IBlockState state) {
        
        return false;
        
    }
    
    @Override 
    public boolean isFullCube(IBlockState state) {   
        
        return false; 
        
    }
    
    private static final AxisAlignedBB[] SACRED_PLATE_AABB = new AxisAlignedBB[] {
            
            new AxisAlignedBB(0.125, 0.0, 0.4375, 0.4375, 0.875, 0.75),
            new AxisAlignedBB(0.25, 0.75, 0.4375, 0.75, 0.875, 0.5625)
            
        };
    
    @Override
    public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState) {
        
        addCollisionBoxToList(pos, entityBox, collidingBoxes, SACRED_PLATE_AABB[0]);
        addCollisionBoxToList(pos, entityBox, collidingBoxes, SACRED_PLATE_AABB[1]);
        
    }

    public AxisAlignedBB getBoundingBox(IBlockState blockState, IBlockAccess source, BlockPos position) {

        return FULL_BLOCK_AABB;
        
    }

}
Код:
{
    "textures": {
        "1": "excaliburcraft:blocks/sacred_plate",
        "particle": "excaliburcraft:blocks/sacred_plate"
    },
    "elements": [
        {
            "from": [2, 0, 7],
            "to": [14, 12, 9],
            "faces": {
                "north": {"uv": [2, 4, 14, 16], "texture": "#1"},
                "east": {"uv": [0, 4, 2, 16], "texture": "#1"},
                "south": {"uv": [2, 4, 14, 16], "texture": "#1"},
                "west": {"uv": [14, 4, 16, 16], "texture": "#1"},
                "up": {"uv": [2, 0, 14, 2], "texture": "#1"},
                "down": {"uv": [2, 0, 14, 2], "texture": "#1"}
            }
        },
        {
            "from": [4, 12, 7],
            "to": [12, 14, 9],
            "faces": {
                "north": {"uv": [4, 2, 12, 4], "texture": "#1"},
                "east": {"uv": [12, 2, 14, 4], "texture": "#1"},
                "south": {"uv": [4, 2, 12, 4], "texture": "#1"},
                "west": {"uv": [2, 2, 4, 4], "texture": "#1"},
                "up": {"uv": [4, 0, 12, 2], "texture": "#1"},
                "down": {"uv": [4, 2, 12, 4], "texture": "#1"}
            }
        }
    ],
    "display": {
        "thirdperson_righthand": {
            "scale": [0.325, 0.325, 0.325],
            "translation": [0, -1.5, -1],
            "rotation": [0, -95, 0]
        },
        "thirdperson_lefthand": {
            "scale": [0.3249, 0.3249, 0.3249],
            "translation": [0, -1.5, -1],
            "rotation": [0, -95, 0]
        },
        "head": {
            "translation": [0, 7.5, -2],
            "rotation": [90, 0, 180]
        },
        "ground": {
            "translation": [0, 7, 0]
        },
        "fixed": {
            "translation": [0, 1, 0]
        },
        "gui": {
            "translation": [0, 1, 0]
        }
    }
}
 
683
3
21
Ты возвращаешь полный блок а нужно вернуть свой блок допустим MY_BLOCK_AABB но до этого ты его должен сделать и указать в нём границы бокса

тебе нужно возвращать SACRED_PLATE_AABB
 
683
3
21
У меня есть вопрос повлияет ли как-то если ты сделашь это после getBoudingBox?
Java:
@Override
    public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState) {
        
        addCollisionBoxToList(pos, entityBox, collidingBoxes, SACRED_PLATE_AABB[0]);
        addCollisionBoxToList(pos, entityBox, collidingBoxes, SACRED_PLATE_AABB[1]);
        
    }
 
2,932
44
598
У меня вот так:
Код:
package com.garik.snowplusplus.block;

import java.util.List;

import javax.annotation.Nullable;

import com.garik.snowplusplus.item.register.ItemRegister;

import net.minecraft.block.Block;
import net.minecraft.block.BlockSnow;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.init.PotionTypes;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionUtils;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class PuddlePlusPlus extends Block {

    public PuddlePlusPlus(String name) {
        super(Material.SNOW);
        this.setRegistryName(name);
        this.setUnlocalizedName(name);
        this.setHardness(1963);
    }

    @Override
    public boolean isOpaqueCube(IBlockState state) {
        return false;
    }

    @Override
    public boolean isFullCube(IBlockState state) {
        return false;
    }

    private static final AxisAlignedBB[] PuddlePlusPlusAABB = new AxisAlignedBB[] {
            new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0D, 1.0D)
    };
    
    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
        
        ItemStack potionstack = PotionUtils.addPotionToItemStack(new ItemStack(Items.POTIONITEM), PotionTypes.WATER);
        IBlockState statet = Blocks.AIR.getDefaultState();
        
        if (player.getHeldItem(EnumHand.MAIN_HAND).getItem() == Items.GLASS_BOTTLE) {
            
        worldIn.setBlockState(pos, statet);
        player.inventory.clearMatchingItems(new ItemStack(Items.GLASS_BOTTLE).getItem(), -1, 1, null);
        player.inventory.addItemStackToInventory(potionstack);
        
        }
        
            return false;
            
    }
    
    @Override
    public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState) {
        addCollisionBoxToList(pos, entityBox, collidingBoxes, PuddlePlusPlusAABB[0]);
    }

    public AxisAlignedBB getBoundingBox(IBlockState blockState, IBlockAccess source, BlockPos position) {

        return new AxisAlignedBB(0.0f, 0.0f, 0.0f, 1.0f, 0.0625f, 1.0f);
    }
    
}
 
1,031
19
87
3,005
192
592
private static final AxisAlignedBB[] SACRED_PLATE_AABB = new AxisAlignedBB[] { new AxisAlignedBB(0.125, 0.0, 0.4375, 0.4375, 0.875, 0.75), new AxisAlignedBB(0.25, 0.75, 0.4375, 0.75, 0.875, 0.5625) };
У тебя тут 2 AABB, а нужно укзаывать 1.
У того же хоппера может быть куча моделей, ибо он "угольный", но у него 1 большая, потому что нету возможности сделать несколько.
Это можно сделать в 1.13+, ибо там изменения в боксах произошли.
 
3,005
192
592
5,018
47
783
Класс указывать только для того чтобы тебе удобнее было видеть откуда он. На рабочесть\нерабочесть это не влияет никак.

ТС, шагом марш читать учебник. Ты задаешь массив(зачем то) и возвращаешь переменную, которой нет.

Кажется, он не понимает.
Java:
public AxisAlignedBB getBoundingBox(IBlockState blockState, IBlockAccess source, BlockPos position) {
      return SACRED_PLATE_AABB[0];
}
Ты зачем детей говнокодерству учишь?:)
Он же так и не поймет что это. Будет копировать везде, и еще не дай бог, начнет учить кого нибудь.прям как я
 
3,005
192
592
Сверху