Регистрация нажатия пкм на жидкость

Версия Minecraft
1.7.10
90
1
Здравствуйте. Пишу на 1.7.10. Подскажите как мне при нажатии пкм на свой блок определеным предметом, например ведром, определить что это было именно ведро а не что то другое? Метод onBlockActivated похоже не подходит.
 
3,005
192
592
RE: Регистрация нажатия пкм

Метод onBlockActivated подходит.
В методе
if (!worlds.isRemote) {
if (получаем предмет у игрока == Items.bucket) {
//Делаем то, что будет, если у игрока было ведро.
}
}
return true;
 
90
1
RE: Регистрация нажатия пкм

Doc написал(а):
Метод onBlockActivated подходит.
В методе
if (!worlds.isRemote) {
if (получаем предмет у игрока == Items.bucket) {
//Делаем то, что будет, если у игрока было ведро.
}
}
return true;

а для чего метод isRemote() ? часто его вижу просто


Doc написал(а):
Метод onBlockActivated подходит.
В методе
if (!worlds.isRemote) {
if (получаем предмет у игрока == Items.bucket) {
//Делаем то, что будет, если у игрока было ведро.
}
}
return true;

что то этот метод не работает при нажатии по блоку жидкости. Сделал свою жидкость. и хочу с ней взаимодействовать.
 
90
1
junkil335 написал(а):
Putnik написал(а):
а для чего метод isRemote() ? часто его вижу просто
Для проверки стороны клиент/сервер, чтобы код не выполнялся дважды.

а как собственно проверить нажатие на жидкость не подскажешь? приведенный выше метод для жикдости не работает(
 
90
1
Doc написал(а):
Жидкость это блок? Эм..
Facepalm

Ну тот полный блок жидкости, который можно установить и собрать ведром если ведром по нему нажать. И когда создаешь его наследуешь же от BlockFluidClassic. Как мне понять, что я нажал по жидкости? Какой метод использовать? и чтоб можно было понять каким предметом я нажал
 
90
1
Doc написал(а):
Посмотреть как реализовано в ведре, лаве и воде?

А в каких классах это можно глянуть? класса Lava или Water я найти не могу. И мне ведро как раз таки не нужно. Хочу написать аддон к моду. там уже есть ведро с жидкостью. но самой жидкости нет. Вот и хочу добавить саму жидкость.
 
3,005
192
592
Посмотри любой мод, который добавляет жидкость.
Посмотри точнее, как там сделано.
 
90
1
AlexSocol написал(а):
Какой ужас.
Это через эвент делается - FillBucketEvent, а блок проверяешь через event.target. Если тру - возвращаешь своё ведро, а блок меняешь на воздух world.setBlockToAir

А не подскажешь как такое с пузырьком сделать? этот эвент на него естессна не работает
 
1,057
50
234
УжОс
Код:
@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);
		}
	}
 
5,018
47
783
Сверху