Итем, в мире, левый кликtimaxa007 написал(а):1. Item или Block (установлен в мире или в инвентаре)?
2. ЛКМ или ПКМ?
Самое простое от Forge:evan написал(а):Итем, в мире, левый клик
public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity)
{
return false;
}
во-первых, правый клик , а во-вторых, мне нужно исчезновение предмета из инвентаря)timaxa007 написал(а):Самое простое от Forge:evan написал(а):Итем, в мире, левый клик
Другие функции зависит от того что надо. Прямого действия по ЛКМ, практически нет. Он только может взаимодействовать (удар по мобу или ломание блока).Код:public boolean onLeftClickEntity(ItemStack stack, EntityPlayer player, Entity entity) { return false; }
evan написал(а):во-первых, правый клик , а во-вторых, мне нужно исчезновение предмета из инвентаря)evan написал(а):Итем, в мире, левый клик
public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {
if (!player.capabilities.isCreativeMode) {
--is.stackSize;
}
return is;
}
Благодарю, слушай, что бы не создавать лишних тем, вопрос: как запомнить число, так что бы если вышел, а потом вошёл, оно сохранялось?timaxa007 написал(а):evan написал(а):во-первых, правый клик , а во-вторых, мне нужно исчезновение предмета из инвентаря)evan написал(а):Итем, в мире, левый кликКод:public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) { if (!player.capabilities.isCreativeMode) { --is.stackSize; } return is; }
Пожалуйста.evan написал(а):Благодарю
Через NBTTagCompound, нужны условия сохранения и загрузки NBT тегов.evan написал(а):вопрос: как запомнить число, так что бы если вышел, а потом вошёл, оно сохранялось?
Можно пример?)timaxa007 написал(а):Пожалуйста.evan написал(а):Благодарю
Через NBTTagCompound, нужны условия сохранения и загрузки NBT тегов.evan написал(а):вопрос: как запомнить число, так что бы если вышел, а потом вошёл, оно сохранялось?
Можно, но думаю готовый пример который у меня есть ты не поймёшь его целиком. Тут скорее всего нужно создать новый пример который тебе нужен, так как я не знаю какие условия тебе нужны.evan написал(а):Можно пример?)
Ну мне нужна лишь одна переменная в которой нужно менять лишь значение.timaxa007 написал(а):Можно, но думаю готовый пример который у меня есть ты не поймёшь его целиком. Тут скорее всего нужно создать новый пример который тебе нужен, так как я не знаю какие условия тебе нужны.evan написал(а):Можно пример?)
Пока-что придумал такой простой пример.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;
}
}
Благодарю, теперь я понял как с этим обращаться)timaxa007 написал(а):Пока-что придумал такой простой пример.evan написал(а):Ну мне нужна лишь одна переменная в которой нужно менять лишь значение.timaxa007 написал(а):Можно, но думаю готовый пример который у меня есть ты не поймёшь его целиком. Тут скорее всего нужно создать новый пример который тебе нужен, так как я не знаю какие условия тебе нужны.evan написал(а):Можно пример?)
типа:
Главный файл: int perm = 0;
Другой файл: perm = perm + 1;
и я захотел, узнал её значение, захотел, изменил.
[merge_posts_bbcode]Добавлено: 06.07.2014 14:51:10[/merge_posts_bbcode]Код: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; } }
Так как я примерно не понял, как именно тебе надо чтобы из главного файла в другой файл передавать.