- 47
- 1
привет, где то неделю-две назад я спрашивал в дискорде про gui в майнкрафте, а точнее как его рисовать. Тогда мне ответили, что нужно юзать OpenGl, я написал код, который по идее должен рисовать квадрат, когда нажимается кнопка, но код выдает ошибку при нажатии кнопки. И так вопрос - Что я сделал не правильно?(код gl я содрал с этой статьи, возможно я что то недопонял)
ClientEvents:
package net.requiem.pathogen.event;
import jdk.jfr.Registered;
import net.minecraft.client.Minecraft;
import net.minecraft.network.chat.Component;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.InputEvent;
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.requiem.pathogen.PathOGen;
import net.requiem.pathogen.util.keyBinding;
import javax.swing.text.JTextComponent;
import static org.lwjgl.opengl.GL11.*;
public class ClientEvents {
@Mod.EventBusSubscriber(modid = PathOGen.MODID, value = Dist.CLIENT)
public static class ClientForgeEvents {
@SubscribeEvent
public static void onKeyRegister(RegisterKeyMappingsEvent event) {
event.register(keyBinding.OPENGUIKEY);
}
@SubscribeEvent
public static void onKeyInput(InputEvent.Key event) {
if (keyBinding.OPENGUIKEY.consumeClick())
{
glPushMatrix();
glTranslatef(0, 0, 0);
glBegin(GL_QUADS);
glVertex3f(0.0F, 0.0F, 0.0F);
glVertex3f(0.0F, 0.0F, 1.0F);
glVertex3f(1.0F, 0.0F, 1.0F);
glVertex3f(1.0F, 0.0F, 0.0F);
glEnd();
glPopMatrix();
}
}
}
@Mod.EventBusSubscriber(modid = PathOGen.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.MOD)
public static class ClientModBusEvents {
@SubscribeEvent
public static void onKeyRegister(RegisterKeyMappingsEvent event) {
event.register(keyBinding.OPENGUIKEY);
}
}
}