[1.6.4]Как по клику удалить предмет из рук?

Статус
В этой теме нельзя размещать новые ответы.
200
0
Есть у меня предмет, по клику на него он должен исчезать.
функцию я знаю как сделать, а вот как заставить его исчезнуть не знаю
 

timaxa007

Модератор
5,831
409
672
1. Item или Block (установлен в мире или в инвентаре)?
2. ЛКМ или ПКМ?
 
200
0
timaxa007 написал(а):
1. Item или Block (установлен в мире или в инвентаре)?
2. ЛКМ или ПКМ?
Итем, в мире, левый клик
 

timaxa007

Модератор
5,831
409
672
evan написал(а):
Итем, в мире, левый клик
Самое простое от Forge:
Код:
    public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity)
    {
        return false;
    }
Другие функции зависит от того что надо. Прямого действия по ЛКМ, практически нет. Он только может взаимодействовать (удар по мобу или ломание блока).
 
200
0
timaxa007 написал(а):
evan написал(а):
Итем, в мире, левый клик
Самое простое от Forge:
Код:
    public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity)
    {
        return false;
    }
Другие функции зависит от того что надо. Прямого действия по ЛКМ, практически нет. Он только может взаимодействовать (удар по мобу или ломание блока).
во-первых, правый клик :D, а во-вторых, мне нужно исчезновение предмета из инвентаря)
 

timaxa007

Модератор
5,831
409
672
evan написал(а):
evan написал(а):
Итем, в мире, левый клик
во-первых, правый клик :D, а во-вторых, мне нужно исчезновение предмета из инвентаря)
Код:
public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
if (!player.capabilities.isCreativeMode) {
--is.stackSize;
}
return is;
}
 
200
0
timaxa007 написал(а):
evan написал(а):
evan написал(а):
Итем, в мире, левый клик
во-первых, правый клик :D, а во-вторых, мне нужно исчезновение предмета из инвентаря)
Код:
public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
if (!player.capabilities.isCreativeMode) {
--is.stackSize;
}
return is;
}
Благодарю, слушай, что бы не создавать лишних тем, вопрос: как запомнить число, так что бы если вышел, а потом вошёл, оно сохранялось?
 

timaxa007

Модератор
5,831
409
672
evan написал(а):
Пожалуйста.
evan написал(а):
вопрос: как запомнить число, так что бы если вышел, а потом вошёл, оно сохранялось?
Через NBTTagCompound, нужны условия сохранения и загрузки NBT тегов.
 
200
0
timaxa007 написал(а):
evan написал(а):
Пожалуйста.
evan написал(а):
вопрос: как запомнить число, так что бы если вышел, а потом вошёл, оно сохранялось?
Через NBTTagCompound, нужны условия сохранения и загрузки NBT тегов.
Можно пример?)
 

timaxa007

Модератор
5,831
409
672
evan написал(а):
Можно, но думаю готовый пример который у меня есть ты не поймёшь его целиком. Тут скорее всего нужно создать новый пример который тебе нужен, так как я не знаю какие условия тебе нужны.
 
200
0
timaxa007 написал(а):
evan написал(а):
Можно, но думаю готовый пример который у меня есть ты не поймёшь его целиком. Тут скорее всего нужно создать новый пример который тебе нужен, так как я не знаю какие условия тебе нужны.
Ну мне нужна лишь одна переменная в которой нужно менять лишь значение.
типа:
Главный файл: int perm = 0;
Другой файл: perm = perm + 1;
и я захотел, узнал её значение, захотел, изменил.
 

timaxa007

Модератор
5,831
409
672
evan написал(а):
timaxa007 написал(а):
evan написал(а):
Можно, но думаю готовый пример который у меня есть ты не поймёшь его целиком. Тут скорее всего нужно создать новый пример который тебе нужен, так как я не знаю какие условия тебе нужны.
Ну мне нужна лишь одна переменная в которой нужно менять лишь значение.
типа:
Главный файл: int perm = 0;
Другой файл: perm = perm + 1;
и я захотел, узнал её значение, захотел, изменил.
Пока-что придумал такой простой пример.
Код:
public class ItemCapsul extends Item {

public ItemCapsul(int id) {
super(id);
this.setCreativeTab(PackMining.proxy.tabMiningPack);
this.setHasSubtypes(true);
this.setMaxDamage(0);
this.setTextureName("capsul");
this.setUnlocalizedName("capsul");
}

public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
//if (!player.capabilities.isCreativeMode) {--is.stackSize;}

if (is.getTagCompound() != null) {
NBTTagCompound tag = new NBTTagCompound();

if (is.getTagCompound().hasKey("Perm")) {
System.out.println(is.getTagCompound().getInteger("Perm"));
tag.setInteger("Perm", is.getTagCompound().getInteger("Perm") + 1);
}

is.setTagCompound(tag);
} else {
addTag();
}

return is;
}

@SideOnly(Side.CLIENT)
public void getSubItems(int id, CreativeTabs table, List list){
list.add(addTag());
//list.add(new ItemStack(id, 1, 0));
}

private ItemStack addTag() {
ItemStack is = new ItemStack(PackMining.proxy.itemCapsul, 1, 0);
NBTTagCompound tag = new NBTTagCompound();
tag.setInteger("Perm", 0);
is.setTagCompound(tag);
return is;
}

}
[merge_posts_bbcode]Добавлено: 06.07.2014 14:51:10[/merge_posts_bbcode]

Так как я примерно не понял, как именно тебе надо чтобы из главного файла в другой файл передавать.
 
200
0
timaxa007 написал(а):
evan написал(а):
timaxa007 написал(а):
evan написал(а):
Можно, но думаю готовый пример который у меня есть ты не поймёшь его целиком. Тут скорее всего нужно создать новый пример который тебе нужен, так как я не знаю какие условия тебе нужны.
Ну мне нужна лишь одна переменная в которой нужно менять лишь значение.
типа:
Главный файл: int perm = 0;
Другой файл: perm = perm + 1;
и я захотел, узнал её значение, захотел, изменил.
Пока-что придумал такой простой пример.
Код:
public class ItemCapsul extends Item {

public ItemCapsul(int id) {
super(id);
this.setCreativeTab(PackMining.proxy.tabMiningPack);
this.setHasSubtypes(true);
this.setMaxDamage(0);
this.setTextureName("capsul");
this.setUnlocalizedName("capsul");
}

public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
//if (!player.capabilities.isCreativeMode) {--is.stackSize;}

if (is.getTagCompound() != null) {
NBTTagCompound tag = new NBTTagCompound();

if (is.getTagCompound().hasKey("Perm")) {
System.out.println(is.getTagCompound().getInteger("Perm"));
tag.setInteger("Perm", is.getTagCompound().getInteger("Perm") + 1);
}

is.setTagCompound(tag);
} else {
addTag();
}

return is;
}

@SideOnly(Side.CLIENT)
public void getSubItems(int id, CreativeTabs table, List list){
list.add(addTag());
//list.add(new ItemStack(id, 1, 0));
}

private ItemStack addTag() {
ItemStack is = new ItemStack(PackMining.proxy.itemCapsul, 1, 0);
NBTTagCompound tag = new NBTTagCompound();
tag.setInteger("Perm", 0);
is.setTagCompound(tag);
return is;
}

}
[merge_posts_bbcode]Добавлено: 06.07.2014 14:51:10[/merge_posts_bbcode]

Так как я примерно не понял, как именно тебе надо чтобы из главного файла в другой файл передавать.
Благодарю, теперь я понял как с этим обращаться)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху