Doc написал(а):Метод onBlockActivated подходит.
В методе
if (!worlds.isRemote) {
if (получаем предмет у игрока == Items.bucket) {
//Делаем то, что будет, если у игрока было ведро.
}
}
return true;
Doc написал(а):Метод onBlockActivated подходит.
В методе
if (!worlds.isRemote) {
if (получаем предмет у игрока == Items.bucket) {
//Делаем то, что будет, если у игрока было ведро.
}
}
return true;
Для проверки стороны клиент/сервер, чтобы код не выполнялся дважды.Putnik написал(а):а для чего метод isRemote() ? часто его вижу просто
junkil335 написал(а):Для проверки стороны клиент/сервер, чтобы код не выполнялся дважды.Putnik написал(а):а для чего метод isRemote() ? часто его вижу просто
Doc написал(а):Жидкость это блок? Эм..
Facepalm
Doc написал(а):Посмотреть как реализовано в ведре, лаве и воде?
AlexSocol написал(а):Какой ужас.
Это через эвент делается - FillBucketEvent, а блок проверяешь через event.target. Если тру - возвращаешь своё ведро, а блок меняешь на воздух world.setBlockToAir
@SubscribeEvent
public void onBucketFill(FillBucketEvent event)
{
World world = event.world;
MovingObjectPosition pos = event.target;
Block block = world.getBlock(pos.blockX, pos.blockY, pos.blockZ);
int meta = world.getBlockMetadata(pos.blockX, pos.blockY, pos.blockZ);
if (block == BRFluids.BlockUnknowWater && meta == 0)
{
world.setBlockToAir(pos.blockX, pos.blockY, pos.blockZ);
event.result = new ItemStack(BRItems.UnknowWaterBucket, 1, 0);
event.setResult(Result.ALLOW);
}
}
Doc написал(а):Жидкость это блок? Эм..
Facepalm