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

Версия 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)...
412
41
105
Здраствуйте, хочу убрать вид от второго и третьего лица, оставить только от первого, пытался убрать бинд. Если знаете как что-то подобное сделать прошу помочь, буду очень благодарен.
Кратко опишу принцип работы - в главном классе майна, есть некоторый список кнопок (который хранится как массив), и прямой модификацией этого массива (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 я еще зеленый в этом по этому могли бы об этом более подробно, нечего особо не умею еще. Где указать нужный мне бинд?
 
412
41
105
Не совсем понял что мне стоит сделать тут
Исправить ошибки совместимости (если есть) и инстансировать где-то, не важно где (главное что на стороне клиента), и (скорее всего) не важно в какое время. (попробуй в инит-е) И все. (9, 10 и 27 строка) делают всю остальную работу за тебя. Даже сохранять в переменную не надо (если обратного не требует задача), тупо вызывай new.
 
412
41
105
как и где инстанировать
.. Ладно. new KeyHandler("группа", "описание", Keyboard.КНОПКА, true \*если истинно - то оно переопределит Keyboard.КНОПКА, иначе создаст новую*\)

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

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



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

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



Единственное - не советую в статическом контексте - лишние проблемы
1674833019585.png
Хм, не понимаю, пытался как-то переписать но это не к чему не привело.
 

will0376

Токсичная личность
2,068
55
581
1674833019585.png
Иди учить Java. Тут тебе не клуб нянечек.
 
412
41
105
че вы городите, в тикере проверяешь на какой щас вид стоит
А ты учел, что в твоем случае перспектива все равно будет переключаться, пусть и всего на несколько кадров?
Выглядит поганенько, скажу тебе
 
1,187
31
181
А ты учел, что в твоем случае перспектива все равно будет переключаться, пусть и всего на несколько кадров?
Выглядит поганенько, скажу тебе
почему то у меня ничего не переключается
раз так угодно, можно это проверять в потоке рендера
 
Сверху