|
@@ -0,0 +1,87 @@
|
|
|
+package pathgame.rendering;
|
|
|
+
|
|
|
+import me.hammerle.snuviengine.api.Renderer;
|
|
|
+import pathgame.gameplay.Level;
|
|
|
+
|
|
|
+public class ScoreMenuRenderer
|
|
|
+{
|
|
|
+ public void renderTick(Renderer r, float lag, Level level)
|
|
|
+ {
|
|
|
+ float windowWidth = r.getViewWidth();
|
|
|
+ float windowHeight = r.getViewHeight();
|
|
|
+ float paddingX = 30;
|
|
|
+ float paddingY = 50;
|
|
|
+ r.setMixColorEnabled(false);
|
|
|
+ r.setColorEnabled(true);
|
|
|
+ r.setTextureEnabled(false);
|
|
|
+ r.setBlendingEnabled(true);
|
|
|
+ r.getColorRenderer().drawRectangle(paddingX, paddingY, windowWidth - paddingX, windowHeight - paddingY, 0x90000000);
|
|
|
+
|
|
|
+ r.setTextureEnabled(true);
|
|
|
+ r.translateTo(0.0f, 0.0f);
|
|
|
+ float scale = scale(r, 1);
|
|
|
+
|
|
|
+ String message;
|
|
|
+
|
|
|
+ message = "&2" + String.valueOf(level.getPlayer().getEnergyUsed()) + "&f of &2"
|
|
|
+ + String.valueOf(level.getPlayer().getEnergySupply()) + "&f Energy used";
|
|
|
+ r.getFontRenderer().drawString((windowWidth * scale - getWidth(r, message)) / 2, (windowHeight * scale - getHeight(r, message)) / 2 - windowHeight * scale * 0.5f * 0.15f, message);
|
|
|
+
|
|
|
+ System.out.println((float) level.getPlayer().getEnergyUsed() / level.getPlayer().getEnergySupply());
|
|
|
+ if((float) level.getPlayer().getEnergyUsed() / level.getPlayer().getEnergySupply() < 0.5f)
|
|
|
+ {
|
|
|
+ message = "You were better than the algorithm!";
|
|
|
+ }
|
|
|
+ else if((float) level.getPlayer().getEnergyUsed() / level.getPlayer().getEnergySupply() < 0.6f)
|
|
|
+ {
|
|
|
+ message = "Only 20% more energy use than the algorithm!";
|
|
|
+ }
|
|
|
+ else if((float) level.getPlayer().getEnergyUsed() / level.getPlayer().getEnergySupply() < 0.75f)
|
|
|
+ {
|
|
|
+ message = "Only 50% more energy use than the algorithm!";
|
|
|
+ }
|
|
|
+ else if((float) level.getPlayer().getEnergyUsed() / level.getPlayer().getEnergySupply() < 1)
|
|
|
+ {
|
|
|
+ message = "Only twice the energy use of the algorithm!";
|
|
|
+ }
|
|
|
+ else if((float) level.getPlayer().getEnergyUsed() / level.getPlayer().getEnergySupply() > 1)
|
|
|
+ {
|
|
|
+ message = "More than twice the energy use of the algorithm!";
|
|
|
+ }
|
|
|
+
|
|
|
+ r.getFontRenderer().drawString((windowWidth * scale - getWidth(r, message)) / 2, (windowHeight * scale - getHeight(r, message)) / 2 - windowHeight * scale * 0.5f * (-0.15f), message);
|
|
|
+
|
|
|
+ scale = scale(r, 2);
|
|
|
+ if((float) level.getPlayer().getEnergyUsed() / level.getPlayer().getEnergySupply() < 1)
|
|
|
+ {
|
|
|
+
|
|
|
+ message = "Congratulations!";
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ message = "What a pity! Out of energy!";
|
|
|
+ }
|
|
|
+ r.getFontRenderer().drawString((windowWidth * scale - getWidth(r, message)) / 2, (windowHeight * scale - getHeight(r, message)) / 2, message);
|
|
|
+
|
|
|
+ message = "OK!";
|
|
|
+ r.getFontRenderer().drawString((windowWidth * scale - getWidth(r, message)) / 2, (windowHeight * scale - paddingY * scale - getHeight(r, message)) - 10, message);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private float getWidth(Renderer r, String s)
|
|
|
+ {
|
|
|
+ return r.getFontRenderer().getSize(s).getWidth();
|
|
|
+ }
|
|
|
+
|
|
|
+ private float getHeight(Renderer r, String s)
|
|
|
+ {
|
|
|
+ return r.getFontRenderer().getSize(s).getHeight();
|
|
|
+ }
|
|
|
+
|
|
|
+ private float scale(Renderer r, int scale)
|
|
|
+ {
|
|
|
+ r.scale(scale, scale);
|
|
|
+ r.updateMatrix();
|
|
|
+ return 1.0f / scale;
|
|
|
+ }
|
|
|
+}
|