|
@@ -2,64 +2,109 @@ package pathgame.rendering;
|
|
|
|
|
|
import java.util.Map;
|
|
|
import me.hammerle.snuviengine.api.Renderer;
|
|
|
+import me.hammerle.snuviengine.api.Texture;
|
|
|
import pathgame.gameplay.Player;
|
|
|
-import pathgame.gameplay.lastPlayerSteps;
|
|
|
+import pathgame.gameplay.LastPlayerMinusSteps;
|
|
|
import pathgame.tilemap.TileMap;
|
|
|
|
|
|
public class HUDRenderer
|
|
|
{
|
|
|
|
|
|
- private lastPlayerSteps lastSteps = new lastPlayerSteps();
|
|
|
+ private static final Texture ENERGYBAR = new Texture("res/energyBar.png");
|
|
|
+ private static final Texture ENERGYBARGREY = new Texture("res/energyBarGrey.png");
|
|
|
+ private LastPlayerMinusSteps lastSteps = new LastPlayerMinusSteps();
|
|
|
|
|
|
public void renderTick(Renderer r, Player p, float lag)//TileMap map, TileMapRenderer map, float lag, float offX, float offY)
|
|
|
{
|
|
|
|
|
|
- String objectiveTracker = String.valueOf(p.getObjectivesVisited()) + "/" + String.valueOf(p.getObjectivesAmount()) + " Towns";
|
|
|
- String energy = String.valueOf(p.getEnergyLeft()) + "/" + String.valueOf(p.getEnergySupply()) + " Energy used";
|
|
|
- String minusEnergy = "";
|
|
|
-
|
|
|
- //int mEnergy = p.getMinusEnergy();
|
|
|
-// if(mEnergy>0)
|
|
|
-// {
|
|
|
-// minusEnergy = "-" + String.valueOf(mEnergy);
|
|
|
-// }
|
|
|
renderHUDBackgound(r);
|
|
|
+ renderObjectiveTracker(r, p);
|
|
|
+ renderEnergyBar(r, p);
|
|
|
+ //todo: render Energy Bar
|
|
|
+ renderEnergyText(r, p);
|
|
|
+ renderMinusEnergy(r, p, lag);
|
|
|
|
|
|
+ }
|
|
|
+
|
|
|
+ void renderHUDBackgound(Renderer r)
|
|
|
+ {
|
|
|
+ r.setMixColorEnabled(true);
|
|
|
+ r.setColorEnabled(true);
|
|
|
+ r.setTextureEnabled(false);
|
|
|
+ r.setBlendingEnabled(true);
|
|
|
+
|
|
|
+ r.getColorRenderer().drawRectangle(0, 0, r.getViewWidth(), 20, 0x33_00_00_00);//ABGR
|
|
|
+ }
|
|
|
+
|
|
|
+ void renderObjectiveTracker(Renderer r, Player p)
|
|
|
+ {
|
|
|
r.setMixColorEnabled(false);
|
|
|
r.setColorEnabled(true);
|
|
|
r.setTextureEnabled(true);
|
|
|
|
|
|
//render ObjectiveTracker
|
|
|
+ String objectiveTracker = String.valueOf(p.getObjectivesVisited()) + "/" + String.valueOf(p.getObjectivesAmount()) + " Towns";
|
|
|
+
|
|
|
r.translateTo(0.0f, 0.0f);
|
|
|
r.scale(2.0f, 2.0f);
|
|
|
r.updateMatrix();
|
|
|
r.getFontRenderer().drawString(2, 1, objectiveTracker);
|
|
|
+ }
|
|
|
+
|
|
|
+ void renderEnergyText(Renderer r, Player p)
|
|
|
+ {
|
|
|
+ r.setMixColorEnabled(false);
|
|
|
+ r.setColorEnabled(true);
|
|
|
+ r.setTextureEnabled(true);
|
|
|
+
|
|
|
+ String energy = String.valueOf(p.getEnergyLeft()) + "/" + String.valueOf(p.getEnergySupply());
|
|
|
|
|
|
- //render energy
|
|
|
r.getFontRenderer().drawString(
|
|
|
r.getViewWidth() * 0.5f
|
|
|
- - r.getFontRenderer().getSize(energy).getWidth(),
|
|
|
+ - r.getFontRenderer().getSize(energy).getWidth() - 15,
|
|
|
1, energy);
|
|
|
-
|
|
|
- //render minus Energy
|
|
|
- for(int i = 0; i < p.getLastSteps().getLastPlayerSteps().size(); ++i)
|
|
|
- {
|
|
|
- minusEnergy = "-" + String.valueOf(p.getLastSteps().getLastPlayerSteps().get(i).getMinusValue());
|
|
|
- //r.getFontRenderer().drawString(p.getLastSteps().getLastPlayerSteps().get(i).getX()*32, p.getLastSteps().getLastPlayerSteps().get(i).getY()*32, minusEnergy);
|
|
|
- r.getFontRenderer().drawString(r.getViewWidth() * 0.5f - 144, 3 + (p.getLastSteps().getLastPlayerSteps().get(i).getDiffY() * 32), minusEnergy);
|
|
|
- p.getLastSteps().getLastPlayerSteps().get(i).updateMinusValues(lag);
|
|
|
- }
|
|
|
-
|
|
|
+// r.getFontRenderer().drawString(
|
|
|
+// 111,
|
|
|
+// 1, energy);
|
|
|
}
|
|
|
|
|
|
- void renderHUDBackgound(Renderer r)
|
|
|
+ void renderEnergyBar(Renderer r, Player p)
|
|
|
{
|
|
|
r.setMixColorEnabled(true);
|
|
|
- r.setColorEnabled(true);
|
|
|
- r.setTextureEnabled(false);
|
|
|
+ r.setColorEnabled(false);
|
|
|
+ r.setTextureEnabled(true);
|
|
|
r.setBlendingEnabled(true);
|
|
|
|
|
|
- r.getColorRenderer().drawRectangle(0, 0, r.getViewWidth(), 20, 0x33_00_00_00);//ABGR
|
|
|
+ float energyPercent = 100 / (float) p.getEnergySupply() * (float) p.getEnergyLeft() / 100;
|
|
|
+ System.out.println(energyPercent);
|
|
|
+ ENERGYBARGREY.bind();
|
|
|
+ r.getTextureRenderer().drawRectangle(100, 0, (r.getViewWidth() / 2 - 5), 10, 0, 0, 1, 1);
|
|
|
+
|
|
|
+ ENERGYBAR.bind();
|
|
|
+ r.getTextureRenderer().drawRectangle(100, 0, (((r.getViewWidth() / 2 - 5) - 100) * (energyPercent)) + 100, 10, 0, 0, 1 * energyPercent, 1);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+ void renderMinusEnergy(Renderer r, Player p, float lag)
|
|
|
+ {
|
|
|
+ r.setMixColorEnabled(false);
|
|
|
+ r.setColorEnabled(true);
|
|
|
+ r.setTextureEnabled(true);
|
|
|
+
|
|
|
+ String minusEnergy = "";
|
|
|
+
|
|
|
+ for(int i = 0; i < p.getLastSteps().getLastPlayerSteps().size(); ++i)
|
|
|
+ {
|
|
|
+ minusEnergy = "&4-" + String.valueOf(p.getLastSteps().getLastPlayerSteps().get(i).getMinusValue());
|
|
|
+ //r.getFontRenderer().drawString(p.getLastSteps().getLastPlayerSteps().get(i).getX()*32, p.getLastSteps().getLastPlayerSteps().get(i).getY()*32, minusEnergy);
|
|
|
+ float YPos = 3 + (p.getLastSteps().getLastPlayerSteps().get(i).getLastDiffY()
|
|
|
+ + (p.getLastSteps().getLastPlayerSteps().get(i).getDiffY()
|
|
|
+ - p.getLastSteps().getLastPlayerSteps().get(i).getLastDiffY())
|
|
|
+ * lag);
|
|
|
+ //System.out.println(YPos);
|
|
|
+ r.getFontRenderer().drawString(r.getViewWidth() * 0.5f
|
|
|
+ - 63, YPos, minusEnergy);
|
|
|
+ p.getLastSteps().getLastPlayerSteps().get(i).updateMinusValues(); //todo: outsource to tick
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|