Состояние блока

Версия Minecraft
1.12.2
API
Forge
16
1
0
Пытаюсь сделать алтарь из двух блоков в ширину. Сделал 3 переменные x, y, z. И когда ставлю блок надо в них записать кординаты. НО чтобы сделать их уникальными для каждого блока я создаю новый объект. И когда его ставлю фантомный блок, которого на самом деле нет. Вот код:
Java:
package com.example.examplemod.object.block;


import com.example.examplemod.init.BlockInit;
import com.example.examplemod.interfaces.ISetBlockXYZ;
import net.minecraft.block.Block;

import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;


public class AltarBlock extends Block implements ISetBlockXYZ {

    int x = 0;
    int y = 0;
    int z = 0;

    public TestContainerBlock() {
        super(Material.GROUND);
        setRegistryName("AltarBlock");
        setUnlocalizedName("AltarBlock");
        BlockInit.BLOCKS.add(this);
    }


    @Override
    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
        if (worldIn.isRemote) {
            this.setX(pos.getX() + 1);
            this.setY(pos.getY());
            this.setZ(pos.getZ());

            TestContainerBlock TestContainerBlock = new TestContainerBlock();
            TestContainerBlock.setX(pos.getX() + 1);
            TestContainerBlock.setY(pos.getY());
            TestContainerBlock.setZ(pos.getZ());
            worldIn.setBlockState(new BlockPos(pos.getX() + 1, pos.getY(), pos.getZ()),  TestContainerBlock.getDefaultState());


        }
        super.onBlockPlacedBy(worldIn, pos, state, placer, stack);
    }

    @Override
    public boolean removedByPlayer(IBlockState istate, World world, BlockPos pos, EntityPlayer player, boolean willHarvest) {
        if (world.isRemote) {
            world.setBlockState(new BlockPos(x, y, z), Blocks.AIR.getDefaultState());
        }
        return super.removedByPlayer(istate, world, pos, player, willHarvest);
    }

    @Override
    public void setX(int x) {
        this.x = x;
    }

    @Override
    public void setY(int y) {
        this.y = y;
    }

    @Override
    public void setZ(int z) {
        this.z = z;
    }


}
 
Сверху