gpt4 book ai didi

java - 我的世界锻造模组 : Remove a block and place a new block

转载 作者:行者123 更新时间:2023-12-02 05:08:21 25 4
gpt4 key购买 nike

我目前正在制作《我的世界》锻造模组​​。有谁知道如何首先删除特定坐标上的 block ,然后在同一个地方放置一个新 block ?就像用新 block 替换旧 block 一样。

我将把它放在这段代码的中间:

if(player.getCurrentEquippedItem() != null)
{

if(hand.getItem() == Items.dirt)
{

}

}

Item.dirt 只是一个测试

所以如果玩家持有一个特定的元素(我现在使用泥土)并右键单击该 block ,就会发生一些事情。顺便说一句,我有更多的代码,当玩家右键单击该 block 时,就会发生这种情况。

我用 Google 搜索过,但没有找到任何东西。

最佳答案

如果具体的项目是自定义的,那就简单多了。

在您的自定义项目中,设置 onItemUse (用于右键单击)或 onItemClick (用于左键单击)函数:

public boolean onItemUse(ItemStack item, EntityPlayer player, World world,
// which block was in the target when clicked
int posx, int posy, int posz,
// where on the target block was clicked (0.0-1.0)
int side, float blockx, float blocky, float blockz)
{
if(world.isRemote) {
// can't do anything here as we don't own the world (client side)
return false;
}
// server side - here we can change the block

此函数传递被单击的 block 的坐标和世界对象。然后,您可以测试被单击的 block ,并对其执行任何操作(本示例将其设置为污垢):

rv = world.setBlock(posx,posy,posz,Blocks.dirt);

当然,如果您将其放置在自定义项目自己的 onItemUse 函数中,那么您不需要进行测试来确保该项目已配备,因为它必须是为了调用该函数。

关于java - 我的世界锻造模组 : Remove a block and place a new block,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27567906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com