Ломающийся ванила рычаг.

timaxa007

Модератор
5,831
409
672
Так измени под себя значение.
[merge_posts_bbcode]Добавлено: 27.10.2015 17:32:23[/merge_posts_bbcode]

Tsyklop написал(а):
Вот. Посмотри Jar файл. Всё ли нормально?
А что там должно быть не нормального?
 
107
0
timaxa007 написал(а):
Tsyklop написал(а):
Вот. Посмотри Jar файл. Всё ли нормально?
А что там должно быть не нормального?

Нуу не знаю. Мало ли.

И да Вот задумался... Возможно же это значение вынести в конфиг?
И ещё. Возможно сделать такое что, допустим, добавляешь в json файл какой-то механизм(допустим кнопку ту же): там прописывать сам блок, сколько максимальное раз использования, дроп?
 

timaxa007

Модератор
5,831
409
672
Tsyklop написал(а):
Возможно же это значение вынести в конфиг?
Да, можно.
Tsyklop написал(а):
Возможно сделать такое что, допустим, добавляешь в json файл какой-то механизм(допустим кнопку ту же): там прописывать сам блок, сколько максимальное раз использования, дроп?
Типа да. Но я не знаю как точно сделать это.
[merge_posts_bbcode]Добавлено: 27.10.2015 18:08:40[/merge_posts_bbcode]

Код:
    @EventHandler
    public void preInit(FMLPreInitializationEvent event) {

        Configuration cfg = new Configuration(new File("./config/", "lever.cfg"));
        cfg.load();
        String catMain = "main";
        Lever.max_used = cfg.get(catMain, "max_used", 16, "How many times have used this block?").getInt();
        cfg.save();

    }
В классе "Lever":
с
Код:
public static final int MAX_USED = 16;
на
Код:
public static int max_used;
В классе "EventLever":
с
Код:
if (ct.getLever(e.x, e.y, e.z).count_used <= Lever.MAX_USED)
на
Код:
if (ct.getLever(e.x, e.y, e.z).count_used <= Lever.max_used)
Вроде всё.
 
107
0
timaxa007 написал(а):
Типа да. Но я не знаю как точно сделать это.

Буду сам копаться уже..может сделаю..

Вау. фигеть.. однако. Спасибо огромное!
[merge_posts_bbcode]Добавлено: 27.10.2015 18:31:39[/merge_posts_bbcode]

Хочу добавить ToolTip для рычага.
Нашел и гугле такой способ:

Код:
    @Override
    public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean d)
    {
        {
            list.add("Tooltip stuff goes here");
        }
    }

Но мне пишет ошибку. что не так делаю? Пишу в классе Lever.
 

timaxa007

Модератор
5,831
409
672
Это добавляется в наш класс с унаследованным Item или в ItemBlock , а тебе скорее всего нужен эвент ItemTooltipEvent.
[merge_posts_bbcode]Добавлено: 27.10.2015 18:50:04[/merge_posts_bbcode]

И зачем тебе "ToolTip" в классе Lever?

[merge_posts_bbcode]Добавлено: 27.10.2015 18:56:27[/merge_posts_bbcode]

ItemTooltipEvent и addInformation, они могут показывать информацию о блоке (или предмете) который находиться в инвентаре. Тот "ToolTip", который был показан на видео о состояние рычага, это был мод "Waila". Нужно использовать его, если ты хочешь показывать оставшийся прочность рычага в мире.
Если я конечно правельно понял, зачем тебе нужен был "ToolTip".
 
2,955
12
Тимаха, плиз, не юзай велосипеды вроде получения папки конфигов.
 
107
0
timaxa007, не совсем то.. то что Вайла добавляет то одно. А вот знаешь есть в предметах из модов при нажатии на Шифт, к примеру, появляется описание. Вот типа такого только сделать для рычага.
[merge_posts_bbcode]Добавлено: 27.10.2015 22:22:02[/merge_posts_bbcode]

Dragon2488, а как правильно тогда?
 

timaxa007

Модератор
5,831
409
672
Dragon2488, извини, но я буду использовать подобное в своём моде.
Tsyklop, о подобном уже где-то писалось, но вот мой пример:
Код:
import org.lwjgl.input.Keyboard;
Код:
@SubscribeEvent
public void tipLever(ItemTooltipEvent tip) {
    if (tip.itemStack != null && tip.itemStack.getItem() == Item.getItemFromBlock(Blocks.lever)) {
        if (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) {
            tip.toolTip.add("Line 1.");
            tip.toolTip.add("Line 2.");
            tip.toolTip.add("Line 3.");
            tip.toolTip.add("Line 4.");
        } else tip.toolTip.add("Hold key SHIFT.");
    }
}
Он должен быть на клиентской стороне работать.
---
с
Код:
Configuration cfg = new Configuration(new File("./config/", "lever.cfg"));
на
Код:
Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());

[merge_posts_bbcode]Добавлено: 28.10.2015 4:52[/merge_posts_bbcode]

с
Код:
tip.toolTip.add("Line 1.");
на
Код:
tip.toolTip.add("Maximum Durability: " + Lever.max_used + ".");
 

timaxa007

Модератор
5,831
409
672
[youtube]BwUpwPURkYI[/youtube]
ДоАпгрейдил код, до того, что можно указав в конфиге блок и его прочность. Примерный вид:
Код:
durability_for_block {
    # Reserved slots.
    I:rsv_slot=6
    S:rsv_slot_0=minecraft:lever:28
    S:rsv_slot_1=minecraft:wooden_button:16
    S:rsv_slot_2=minecraft:stone_button:32
    S:rsv_slot_3=minecraft:noteblock:128
    S:rsv_slot_4=minecraft:trapdoor:32
    S:rsv_slot_5=modid:block:16
}
 

timaxa007

Модератор
5,831
409
672
Не выложу, а покажу:
[Ссылки удалены]
Это пока-что ещё не финал.
---UpDate 10.04.2016---
Ссылки устарели и были удалены.
 
Сверху