package com.pixelutilitys.gui;
import com.pixelutilitys.arcade.interfaces.IArcadeGame;
import com.pixelutilitys.arcade.system.OS;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.renderer.texture.DynamicTexture;
import static org.lwjgl.opengl.GL11.*;
import static org.lwjgl.opengl.EXTFramebufferObject.*;
import java.util.ArrayList;
import java.util.List;
import com.pixelutilitys.arcade.interfaces.IArcadeGame.KEY;
import net.minecraft.client.settings.GameSettings;
public class GuiPixelBoy extends GuiScreen {
public GuiPixelBoy()
{
}
private int offsetX;
private int offsetY;
private IArcadeGame game;
private final List<KEY> keysPressedDown = new ArrayList<>(12);
DynamicTexture texture;
@Override
public void initGui()
{
offsetX = (width - 256) / 2;
offsetY = (height - 256) / 2;
}
@Override
public void onGuiClosed()
{
if(game != null)
game.unload();
}
@Override
public void drawScreen(int par1, int par2, float par3)
{
if(game == null)
initMainMenu();
keysPressedDown.clear();
GameSettings settings = Minecraft.getMinecraft().gameSettings;
if (GameSettings.isKeyDown(settings.keyBindRight)) {
keysPressedDown.add(KEY.RIGHT);
}
if (GameSettings.isKeyDown(settings.keyBindLeft)) {
keysPressedDown.add(KEY.LEFT);
}
if (GameSettings.isKeyDown(settings.keyBindBack)) {
keysPressedDown.add(KEY.DOWN);
}
if (GameSettings.isKeyDown(settings.keyBindForward)) {
keysPressedDown.add(KEY.UP);
}
if (GameSettings.isKeyDown(settings.keyBindJump)) {
keysPressedDown.add(KEY.A);
}
// let the game tick
game.doGameTick(keysPressedDown);
if(game.renderGraphics() == null)
return;
texture = new DynamicTexture(game.renderGraphics());
glBindTexture(GL_TEXTURE_2D, texture.getGlTextureId());
glGenerateMipmapEXT(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
float scaler = 1.00f;
glScalef(scaler,scaler,scaler);
drawTexturedModalRect(offsetX, offsetY, 0, 0, texture.width, texture.height);
texture.deleteGlTexture();
texture = null;
}
@Override
public void updateScreen()
{
}
public void initMainMenu()
{
game = new OS();
game.initialize();
}
@Override
public boolean doesGuiPauseGame()
{
return false;
}
}