Иконка ресурса

Set Title

timaxa007

Модератор
5,831
409
672
Java:
public class AnnotationHooks {

    @Hook
    public static void createDisplay(ForgeHooksClient clazz) {
        Config.init(new File(Minecraft.getMinecraft().mcDataDir, "/config/" + SetTitleMod.MODID + ".cfg"));
    }

}
И убрать Config.init(event.getSuggestedConfigurationFile()); в preInit'е.
 
Последнее редактирование:

timaxa007

Модератор
5,831
409
672
timaxa007 обновил(а) ресурс Set Title новой записью:

Set Title 1.2

Теперь это уже не только setTitle, но setIcon и очень плохой setCursor.

Использованы хуки от @GloomyFolken 'а. Ему отдельное спасибо.

(github.com) set_title - исходники
setTitle-1.2.jar - компилированный код

Кастомный курсор не имеет полного функционала, т.е. нету: типа анимации курсора и других действий (как это сделано в чужом моде по названием...

Узнать больше об этом обновлении...
 

timaxa007

Модератор
5,831
409
672
Задержка в обновлении было из-за проверки хуков от @GloomyFolken'а и то что я только несколько дней назад начал польновать этими хуками.
Нужно было проверить будут-ли работать две библиотеки* с хуками. И работали они нормально. Не знаю как там будут работать с чужими модами, которые тоже используют эти хуки или подобные ASM коды. Но на клиенте работало нормально.
* Почему две библиотеки, а не два мода - Ну типа один всё-таки мод - и это setTitle, а второй просто не отображается как мод, но он модифицирует ванильный код. Работоспособность к обоих была нормальная.
 
338
14
110
Вставлю свои пять копеек. :)
В крайнем случае, это не реквест, а просто идея, а от последних плохо ещё никому не было на моей памяти.
Мне кажется, раз уж этот мод и так предоставляет хорошую возможность кастомизации заголовка окна, курсора и иконки, было бы также очень неплохо пойти чуточку дальше и добавить в него возможность менять загрузочные экраны(вход в мир, подключение к серверу) под себя. Например, заменить эту надоедливую грязь на фиксированную не-мозаичную картинку(или несколько - случайным образом), дабы сделать нормальный сплеш-скрин. Тогда будет совсем не мод, а золото!
 

timaxa007

Модератор
5,831
409
672
заменить эту надоедливую грязь
Рефлексия.
Java:
    public static void optionsBackground() {
        if (optionsBackground == null) return;
        try {
            Field field = ReflectionHelper.findField(Gui.class, "optionsBackground", "field_110325_k", "b");

            if (field != null) {
                field.setAccessible(true);

                int modifiers = field.getModifiers();
                Field modifierField = field.getClass().getDeclaredField("modifiers");
                modifiers = modifiers & ~Modifier.FINAL;
                modifierField.setAccessible(true);
                modifierField.setInt(field, modifiers);

                field.set(null, new ResourceLocation(optionsBackground));
                field.setAccessible(false);
            }
        }
        catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException | SecurityException e) {e.printStackTrace();}
    }
optionsBackground = textures/blocks/planks_oak.png



А древесина тёмная из-за того, что ванильно накладываться затемнение заднего фона.
(github.com) change_custom_view_client
---
не-мозаичную картинку
Тут скорее всего будет лучше сделать свои Gui, с нужными настройками.
... и даже возможно какой-нибудь API. Проблема может возникнуть с совместимостью с какими нибудь модами, к примеру OptiFine, хотя я не знаю как там устроена замена и добавлений кнопок для различных настроек.
Возможность полностью протестировать
 
338
14
110
Большое спасибо за предоставленный образец, а также спасибо за идею.
 

timaxa007

Модератор
5,831
409
672
@Deco20-19, пожалуйста.
Что за идея?
 
17
3
Без проскакивания оригинального названия 1.12.2
Только не бейте
hook 1.12.2:
    // изменение названия окна со старта
    @Hook(returnCondition = ReturnCondition.ALWAYS)
    @SideOnly(Side.CLIENT)
    public static void createDisplay(Minecraft clazz) throws LWJGLException {
        Display.setResizable(true);
        Display.setTitle(TYTMOD.WINDOW_TITLE);
        try {
            Display.create((new PixelFormat()).withDepthBits(24));
        } catch (LWJGLException lwjglexception) {
            DisplayMode displaymode = Display.getDesktopDisplayMode();
            Display.setDisplayMode(displaymode);
            Display.create();
        }
    }
 
1,057
50
234
Ну только допиши, что хуклибу фолкена нужно юзать.
 
Сверху