Хочу сделать чтобы можно было смотреть только от первого лица

Версия Minecraft
1.7.10
API
Forge
Здраствуйте, хочу убрать вид от второго и третьего лица, оставить только от первого, пытался убрать бинд. Если знаете как что-то подобное сделать прошу помочь, буду очень благодарен.
 
Решение
Здраствуйте, хочу убрать вид от второго и третьего лица, оставить только от первого, пытался убрать бинд. Если знаете как что-то подобное сделать прошу помочь, буду очень благодарен.
Кратко опишу принцип работы - в главном классе майна, есть некоторый список кнопок (который хранится как массив), и прямой модификацией этого массива (1 элемент убрать, другой добавить) можно сделать такое.
На 1.7 кода у меня нет, поделюсь своим решением на 1.12 (принцип тот-же), лень переписывать класс, кину как есть

Java:
@SideOnly(Side.CLIENT)
public class KeyHandler extends KeyBinding {
    //инстансируй это на стороне клиента где-то
    public KeyHandler(String group, String lore, int i, boolean modify){
        super(lore, i, group)...
Здраствуйте, хочу убрать вид от второго и третьего лица, оставить только от первого, пытался убрать бинд. Если знаете как что-то подобное сделать прошу помочь, буду очень благодарен.
Кратко опишу принцип работы - в главном классе майна, есть некоторый список кнопок (который хранится как массив), и прямой модификацией этого массива (1 элемент убрать, другой добавить) можно сделать такое.
На 1.7 кода у меня нет, поделюсь своим решением на 1.12 (принцип тот-же), лень переписывать класс, кину как есть

Java:
@SideOnly(Side.CLIENT)
public class KeyHandler extends KeyBinding {
    //инстансируй это на стороне клиента где-то
    public KeyHandler(String group, String lore, int i, boolean modify){
        super(lore, i, group);
        if(modify){
            modifyKeyBind(this);
        }
        ClientRegistry.registerKeyBinding(this);
        MinecraftForge.EVENT_BUS.register(this);
    }

    //тут модификация кнопки
    private static void modifyKeyBind(KeyHandler openKey){
        for(int i = 0; i< Minecraft.getMinecraft().gameSettings.keyBindings.length; i++){
            KeyBinding defKeyBind = Minecraft.getMinecraft().gameSettings.keyBindings[i];

            if(defKeyBind.getKeyCodeDefault()==openKey.getKeyCodeDefault()){
                defKeyBind.setKeyCode(0); //<- в этом случае, она никогда не включится
                Minecraft.getMinecraft().gameSettings.keyBindings[i] = openKey;
                return;
            }
        }
    }


    @SubscribeEvent
    public void onKey(InputEvent.KeyInputEvent event) {
        if(isPressed()){
            //логика при жмяке
        }
    }
}
 
Кратко опишу принцип работы - в главном классе майна, есть некоторый список кнопок (который хранится как массив), и прямой модификацией этого массива (1 элемент убрать, другой добавить) можно сделать такое.
На 1.7 кода у меня нет, поделюсь своим решением на 1.12 (принцип тот-же), лень переписывать класс, кину как есть

Java:
@SideOnly(Side.CLIENT)
public class KeyHandler extends KeyBinding {
    //инстансируй это на стороне клиента где-то
    public KeyHandler(String group, String lore, int i, boolean modify){
        super(lore, i, group);
        if(modify){
            modifyKeyBind(this);
        }
        ClientRegistry.registerKeyBinding(this);
        MinecraftForge.EVENT_BUS.register(this);
    }

    //тут модификация кнопки
    private static void modifyKeyBind(KeyHandler openKey){
        for(int i = 0; i< Minecraft.getMinecraft().gameSettings.keyBindings.length; i++){
            KeyBinding defKeyBind = Minecraft.getMinecraft().gameSettings.keyBindings[i];

            if(defKeyBind.getKeyCodeDefault()==openKey.getKeyCodeDefault()){
                defKeyBind.setKeyCode(0); //<- в этом случае, она никогда не включится
                Minecraft.getMinecraft().gameSettings.keyBindings[i] = openKey;
                return;
            }
        }
    }


    @SubscribeEvent
    public void onKey(InputEvent.KeyInputEvent event) {
        if(isPressed()){
            //логика при жмяке
        }
    }
}
Не совсем понял что мне стоит сделать тут, и надо ли добавлять его Main P.S я еще зеленый в этом по этому могли бы об этом более подробно, нечего особо не умею еще. Где указать нужный мне бинд?
 
Не совсем понял что мне стоит сделать тут
Исправить ошибки совместимости (если есть) и инстансировать где-то, не важно где (главное что на стороне клиента), и (скорее всего) не важно в какое время. (попробуй в инит-е) И все. (9, 10 и 27 строка) делают всю остальную работу за тебя. Даже сохранять в переменную не надо (если обратного не требует задача), тупо вызывай new.
 
как и где инстанировать
.. Ладно. new KeyHandler("группа", "описание", Keyboard.КНОПКА, true \*если истинно - то оно переопределит Keyboard.КНОПКА, иначе создаст новую*\)

где инстанировать
не важно где (главное что на стороне клиента ... И все. (9, 10 и 27 строка) делают всю остальную работу за тебя. Даже сохранять в переменную не надо (если обратного не требует задача), тупо вызывай new.
Единственное - не советую в статическом контексте - лишние проблемы
 
Последнее редактирование:
че вы городите, в тикере проверяешь на какой щас вид стоит
если не от 1 лица, то сетаешь обратно тот который нужен
пара строк епта

Ну ладно, три, еще одну на регание слушателя событий по шине, не помню какой, на тикэвент
 
.. Ладно. new KeyBinding("группа", "описание", Keyboard.КНОПКА, true \*если истинно - то оно переопределит Keyboard.КНОПКА, иначе создаст новую*\)



Единственное - не советую в статическом контексте - лишние проблемы
Спасибо, сейчас буду пытаться что-то да сделать
 
че вы городите, в тикере проверяешь на какой щас вид стоит
если не от 1 лица, то сетаешь обратно тот который нужен
пара строк епта

Ну ладно, три, еще одну на регание слушателя событий по шине, не помню какой, на тикэвент
Могли бы показать пример?
 
.. Ладно. new KeyBinding("группа", "описание", Keyboard.КНОПКА, true \*если истинно - то оно переопределит Keyboard.КНОПКА, иначе создаст новую*\)



Единственное - не советую в статическом контексте - лишние проблемы
1674833019585.png
Хм, не понимаю, пытался как-то переписать но это не к чему не привело.
 
1674833019585.png
Иди учить Java. Тут тебе не клуб нянечек.
 
че вы городите, в тикере проверяешь на какой щас вид стоит
А ты учел, что в твоем случае перспектива все равно будет переключаться, пусть и всего на несколько кадров?
Выглядит поганенько, скажу тебе
 
А ты учел, что в твоем случае перспектива все равно будет переключаться, пусть и всего на несколько кадров?
Выглядит поганенько, скажу тебе
почему то у меня ничего не переключается
раз так угодно, можно это проверять в потоке рендера
 
Назад
Сверху