Удаление предмета в мире

Версия Minecraft
1.11+
93
1
1
я при помощи setDead() удаляю предмет в мире, но он удаляет сразу стак, если кинуть стак, как это исправить?
 
Последнее редактирование:

timaxa007

Модератор
5,831
409
672
и как это правильно закодить
-_- Ну типа для твоей версии, я не знаю.
один предмет, удаляется 4 и как бы почему так происходит
Ты показываешь кусок кода. Где применяется, не ясно. Что ты сделал и что с ним связано, тоже не ясно.
Я показал код, который работает как надо у меня.
 
93
1
1
Я вродераньше показывал весь код и где оно применяется ну ладно, короче это файл блока:
package vixtor.block; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockRenderLayer; 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; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import javax.annotation.Nullable; public class BlockCircle extends Block { private AxisAlignedBB boundingBox = ZERO_AABB; private static final AxisAlignedBB ZERO_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); protected static final AxisAlignedBB CARPET_AABB = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.0625D, 1.0D); boolean circleIsNotIntact = true; public boolean applebool; public boolean diamondbool; public BlockCircle() { super(Material.WOOD); this.setRegistryName("block_circle"); this.setUnlocalizedName("blockcircle"); this.setCreativeTab(CreativeTabs.BUILDING_BLOCKS); } public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { return CARPET_AABB; } @SideOnly(Side.CLIENT) public boolean addDestroyEffects(World world, BlockPos pos, net.minecraft.client.particle.ParticleManager manager) { return false; } @SideOnly(Side.CLIENT) public BlockRenderLayer getBlockLayer() { return BlockRenderLayer.CUTOUT; } @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public boolean isFullCube(IBlockState state) { return false; } @Override public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { EntityItem apple = null, diamond = null; for (EntityItem i :worldIn.getEntitiesWithinAABB(EntityItem.class, getEntityBoundingBox().expand(2.5D, 2.6D, 2.5D).offset(new BlockPos(pos.getX(), pos.getY(), pos.getZ())))) { if (apple == null && i.getEntityItem().getItem() == Items.APPLE) apple = i; else if (diamond == null && i.getEntityItem().getItem() == Items.DIAMOND) diamond = i; if (apple != null && diamond != null) break; } if (apple != null && diamond != null) { apple.getEntityItem().stackSize -= 1; if (apple.getEntityItem().stackSize <= 0) { apple.setDead(); }else { apple.setEntityItemStack(apple.getEntityItem()); } diamond.getEntityItem().stackSize -= 1; if (diamond.getEntityItem().stackSize <= 0) { diamond.setDead(); }else { diamond.setEntityItemStack(diamond.getEntityItem()); } worldIn.setWorldTime(0); } return super.onBlockActivated(worldIn, pos, state, playerIn, hand, heldItem, side, hitX, hitY, hitZ); } public AxisAlignedBB getEntityBoundingBox() { return this.boundingBox; } }
вставляю через однострочный код, ибо обычный чот не работает
 
Сверху