use of org.joml.Vector4f in project chunkstories by Hugobros3.
the class LevelSelection method render.
@Override
public void render(RenderingInterface renderer) {
parentLayer.getRootLayer().render(renderer);
if (scroll < 0)
scroll = 0;
int posY = renderer.getWindow().getHeight() - 128;
Font font = renderer.getFontRenderer().getFont("LiberationSans-Regular", 11);
renderer.getFontRenderer().drawStringWithShadow(font, 64, posY + 64, "Select a level...", 3, 3, new Vector4f(1));
int remainingSpace = (int) Math.floor(renderer.getWindow().getHeight() / 96 - 2);
while (scroll + remainingSpace > worldsButtons.size()) scroll--;
int skip = scroll;
for (LocalWorldButton worldButton : worldsButtons) {
if (skip-- > 0)
continue;
if (remainingSpace-- <= 0)
break;
int maxWidth = renderer.getWindow().getWidth() - 64 * 2;
worldButton.setWidth(maxWidth);
worldButton.setPosition(64, posY);
worldButton.render(renderer);
posY -= 96;
}
backOption.setPosition(8, 8);
backOption.render(renderer);
newWorldOption.setPosition(renderer.getWindow().getWidth() - newWorldOption.getWidth() - 8, 8);
newWorldOption.render(renderer);
}
use of org.joml.Vector4f in project chunkstories by Hugobros3.
the class LoginPrompt method render.
@Override
public void render(RenderingInterface renderer) {
parentLayer.render(renderer);
float scale = this.getGuiScale();
if (Client.getInstance().getConfiguration().getStringOption("client.game.language").equals("undefined")) {
gameWindow.setLayer(new LanguageSelectionScreen(gameWindow, this, false));
// this.mainScene.changeOverlay(new LanguageSelectionScreen(mainScene, this, false));
}
if (can_next)
gameWindow.setLayer(new MainMenu(gameWindow, parentLayer));
ObjectRenderer.renderTexturedRect(renderer.getWindow().getWidth() / 2, renderer.getWindow().getHeight() / 2 + 90 * scale, 256 * scale, 256 * scale, "./textures/logo.png");
usernameForm.setPosition(renderer.getWindow().getWidth() / 2 - 125 * scale, renderer.getWindow().getHeight() / 2 + 16 * scale);
usernameForm.render(renderer);
passwordForm.setPosition(usernameForm.getPositionX(), usernameForm.getPositionY() - usernameForm.getHeight() - (20 + 4) * scale);
passwordForm.render(renderer);
loginButton.setPosition(usernameForm.getPositionX(), passwordForm.getPositionY() - 30 * scale);
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), usernameForm.getPositionX(), usernameForm.getPositionY() + usernameForm.getHeight() + 4 * scale, Client.getInstance().getContent().localization().localize("#{login.username}"), scale, scale, new Vector4f(1.0f));
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), passwordForm.getPositionX(), passwordForm.getPositionY() + usernameForm.getHeight() + 4 * scale, Client.getInstance().getContent().localization().localize("#{login.password}"), scale, scale, new Vector4f(1.0f));
if (logging_in) {
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), renderer.getWindow().getWidth() / 2 - 230, renderer.getWindow().getHeight() / 2 - 90, Client.getInstance().getContent().localization().localize("#{login.loggingIn}"), scale, scale, new Vector4f(1.0f));
} else {
float decal_lb = loginButton.getWidth();
loginButton.render(renderer);
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), loginButton.getPositionX() + 4 * scale + decal_lb, loginButton.getPositionY() + 2 * scale, Client.getInstance().getContent().localization().localize("#{login.register}"), scale, scale, new Vector4f(1.0f));
if (failed_login)
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), renderer.getWindow().getWidth() / 2 - 250, renderer.getWindow().getHeight() / 2 - 160, message, scale, scale, new Vector4f(1.0f, 0.0f, 0.0f, 1.0f));
}
if (autologin) {
int seconds = 10;
String autologin2 = Client.getInstance().getContent().localization().localize("#{login.auto1} " + (seconds - (System.currentTimeMillis() - startCounter) / 1000) + " #{login.auto2}");
float autologinLength = renderer.getFontRenderer().defaultFont().getWidth(autologin2) * 2.0f;
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), renderer.getWindow().getWidth() / 2 - autologinLength / 2, renderer.getWindow().getHeight() / 2 - 170, autologin2, 2, 2, new Vector4f(0.0f, 1.0f, 0.0f, 1.0f));
if ((System.currentTimeMillis() - startCounter) / 1000 > seconds) {
connect();
autologin = false;
}
}
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), 12, 12, "2015-2018 XolioWare Interactive", scale, scale, new Vector4f(1.0f, 1.0f, 1.0f, 1.0f));
}
use of org.joml.Vector4f in project chunkstories by Hugobros3.
the class MessageBox method render.
@Override
public void render(RenderingInterface renderer) {
parentLayer.render(renderer);
renderer.getGuiRenderer().drawBoxWindowsSpace(0, 0, renderer.getWindow().getWidth(), renderer.getWindow().getHeight(), 0, 0, 0, 0, null, false, true, new Vector4f(0.0f, 0.0f, 0.0f, 0.5f));
float dekal = renderer.getFontRenderer().defaultFont().getWidth(message);
renderer.getFontRenderer().drawStringWithShadow(renderer.getFontRenderer().defaultFont(), renderer.getWindow().getWidth() / 2 - dekal * 1.5f, renderer.getWindow().getHeight() / 2 + 64, message, 3f, 3f, new Vector4f(1, 0.2f, 0.2f, 1));
okButton.setPosition(renderer.getWindow().getWidth() / 2 - okButton.getWidth() / 2, renderer.getWindow().getHeight() / 2 - 32);
okButton.render(renderer);
}
use of org.joml.Vector4f in project chunkstories by Hugobros3.
the class SkyBoxBackground method render.
@Override
public void render(RenderingInterface renderer) {
if (gameWindow.getLayer() == this)
gameWindow.setLayer(new MainMenu(gameWindow, this));
try // Ugly fps caps yay
{
Thread.sleep(33L);
} catch (InterruptedException e) {
e.printStackTrace();
}
// Render this shit boy
renderer.getRenderTargetManager().setConfiguration(unblurredFBO);
camera.setupUsingScreenSize(gameWindow.getWidth(), gameWindow.getHeight());
Shader menuSkyBox = renderer.useShader("mainMenuSkyBox");
camera.setupShader(menuSkyBox);
renderer.bindCubemap("skybox", TexturesHandler.getCubemap(skyBox));
camera.setRotationX(35 + (float) (Math.sin(camera.getRotationY() / 15)) * 5f);
camera.setRotationY((System.currentTimeMillis() % 1000000) / 200.0f);
renderer.drawFSQuad();
renderer.getRenderTargetManager().setConfiguration(blurredHFBO);
Shader blurH = renderer.useShader("blurH");
blurH.setUniform2f("screenSize", gameWindow.getWidth(), gameWindow.getHeight());
renderer.bindTexture2D("inputTexture", unblurred);
renderer.drawFSQuad();
for (int i = 0; i < 1; i++) {
renderer.getRenderTargetManager().setConfiguration(blurredVFBO);
Shader blurV = renderer.useShader("blurV");
blurV.setUniform1f("lookupScale", 1);
blurV.setUniform2f("screenSize", gameWindow.getWidth() / 2, gameWindow.getHeight() / 2);
renderer.bindTexture2D("inputTexture", blurredH);
renderer.drawFSQuad();
renderer.getRenderTargetManager().setConfiguration(blurredHFBO);
blurH = renderer.useShader("blurH");
blurH.setUniform2f("screenSize", gameWindow.getWidth() / 2, gameWindow.getHeight() / 2);
renderer.bindTexture2D("inputTexture", blurredV);
renderer.drawFSQuad();
}
renderer.getRenderTargetManager().setConfiguration(blurredVFBO);
Shader blurV = renderer.useShader("blurV");
blurV.setUniform2f("screenSize", gameWindow.getWidth(), gameWindow.getHeight());
renderer.bindTexture2D("inputTexture", blurredH);
renderer.drawFSQuad();
renderer.getRenderTargetManager().setConfiguration(null);
Shader blit = renderer.useShader("background");
blit.setUniform2f("screenSize", gameWindow.getWidth(), gameWindow.getHeight());
Texture2DGL backgroundTexture = TexturesHandler.getTexture("./textures/gui/darker.png");
backgroundTexture.setLinearFiltering(false);
renderer.bindTexture2D("diffuseTexture", backgroundTexture);
renderer.bindTexture2D("backgroundTexture", blurredV);
renderer.drawFSQuad();
Texture2DGL logoTexture = TexturesHandler.getTexture("./textures/gui/icon.png");
float alphaIcon = (float) (0.25 + Math.sin((System.currentTimeMillis() % (1000 * 60 * 60) / 3000f)) * 0.25f);
renderer.setBlendMode(BlendMode.MIX);
float diagonal = (float) Math.sqrt(gameWindow.getWidth() * gameWindow.getWidth() + gameWindow.getHeight() * gameWindow.getHeight());
float iconSize = (float) (diagonal / 3 + 50 * Math.sin((System.currentTimeMillis() % (1000 * 60 * 60) / 30000f)));
renderer.getGuiRenderer().drawBoxWindowsSpace(gameWindow.getWidth() / 2 - iconSize / 2, gameWindow.getHeight() / 2 - iconSize / 2, gameWindow.getWidth() / 2 + iconSize / 2, gameWindow.getHeight() / 2 + iconSize / 2, 0, 1, 1, 0, logoTexture, true, true, new Vector4f(1.0f, 1.0f, 1.0f, alphaIcon));
}
use of org.joml.Vector4f in project chunkstories by Hugobros3.
the class Camera method transform3DCoordinate.
public Vector3f transform3DCoordinate(Vector4fc in) {
Matrix4f mvm = this.modelViewMatrix4f;
Matrix4f pm = this.projectionMatrix4f;
Vector4f transormed = new Vector4f();
mvm.transform(in, transormed);
pm.transform(transormed, transormed);
Vector3f posOnScreen = new Vector3f((float) in.x(), (float) in.y(), 0f);
float scale = 1 / in.z();
posOnScreen.mul(scale);
posOnScreen.x = ((posOnScreen.x() * 0.5f + 0.5f) * viewportWidth);
posOnScreen.y = (((posOnScreen.y() * 0.5f + 0.5f)) * viewportHeight);
posOnScreen.z = (scale);
return posOnScreen;
}
Aggregations