Пытаюсь сделать алтарь из двух блоков в ширину. Сделал 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;
}
}