Minecraft 在 1.8 中移除了 world.setblock
Minecraft removed world.setblock in 1.8
我在 1.7.10 中有这个,没有错误直到在 1.8 中他们删除了 world.setblock
@Override
public ItemStack onItemRightClick(ItemStack itemStack, World world,
EntityPlayer entityPlayer) {
if(entityPlayer.capabilities.isCreativeMode||entityPlayer.inventory.consumeInventoryItem(Items.sugar))
{
//play sound stuff com.example.examplemod.SoundHandler.onEntityPlay("fizz", Event.player.worldObj, Event.player, 1, 1);
if (!world.isClient)
{
Vec3 look = entityPlayer.getLookVec();
world.setBlock((int) (entityPlayer.posX + look.xCoord * 5),
(int) (entityPlayer.posY + look.yCoord * 5),
(int) (entityPlayer.posZ + look.zCoord * 5),
Block.getBlockById(79));
}
}
return itemStack;
}
现在,我如何在 1.8 中在玩家面对的方向设置方块,如果方块挡住了路,请将其替换为冰块。另外我如何在每次单击左键时播放声音
在 1.8 中,您使用 BlockState 而不是 setblock。
// Get the reference to the block we want to place
Block blk = Blocks.furnace;
// Make a position.
BlockPos pos0 = new BlockPos(pos.getX()+1, (pos.getY()+1) , pos.getZ());
// Get the default state(basically metadata 0)
IBlockState state0=blk.getDefaultState();
// set the block
world.setBlockState(pos0, state0);
我建议你多读一些关于方块状态的文章。
您应该听听 PlayerInteractEvent 来播放您的声音。播放声音的方法有多种,因此您只需 google 选择要使用的方法即可。
@SubscribeEvent
public void playerdidsomething(PlayerInteractEvent event)
{
}
我在 1.7.10 中有这个,没有错误直到在 1.8 中他们删除了 world.setblock
@Override
public ItemStack onItemRightClick(ItemStack itemStack, World world,
EntityPlayer entityPlayer) {
if(entityPlayer.capabilities.isCreativeMode||entityPlayer.inventory.consumeInventoryItem(Items.sugar))
{
//play sound stuff com.example.examplemod.SoundHandler.onEntityPlay("fizz", Event.player.worldObj, Event.player, 1, 1);
if (!world.isClient)
{
Vec3 look = entityPlayer.getLookVec();
world.setBlock((int) (entityPlayer.posX + look.xCoord * 5),
(int) (entityPlayer.posY + look.yCoord * 5),
(int) (entityPlayer.posZ + look.zCoord * 5),
Block.getBlockById(79));
}
}
return itemStack;
}
现在,我如何在 1.8 中在玩家面对的方向设置方块,如果方块挡住了路,请将其替换为冰块。另外我如何在每次单击左键时播放声音
在 1.8 中,您使用 BlockState 而不是 setblock。
// Get the reference to the block we want to place
Block blk = Blocks.furnace;
// Make a position.
BlockPos pos0 = new BlockPos(pos.getX()+1, (pos.getY()+1) , pos.getZ());
// Get the default state(basically metadata 0)
IBlockState state0=blk.getDefaultState();
// set the block
world.setBlockState(pos0, state0);
我建议你多读一些关于方块状态的文章。
您应该听听 PlayerInteractEvent 来播放您的声音。播放声音的方法有多种,因此您只需 google 选择要使用的方法即可。
@SubscribeEvent
public void playerdidsomething(PlayerInteractEvent event)
{
}