2007-04-24 21:41:31 +00:00
|
|
|
package ei.game.hud;
|
|
|
|
|
|
2007-04-26 16:20:55 +00:00
|
|
|
import ei.engine.effects.BitmapText;
|
2007-04-24 21:41:31 +00:00
|
|
|
import ei.engine.math.Vector2f;
|
|
|
|
|
import ei.engine.scene.Node;
|
|
|
|
|
import ei.engine.scene.Sprite;
|
|
|
|
|
import ei.engine.ui.Button;
|
|
|
|
|
import ei.engine.ui.UiComponent;
|
|
|
|
|
import ei.engine.ui.UiHandler;
|
|
|
|
|
import ei.engine.ui.UiListener;
|
2007-06-17 22:31:09 +00:00
|
|
|
import ei.game.gamestate.InGameState;
|
2007-04-26 16:20:55 +00:00
|
|
|
import ei.game.player.Player;
|
|
|
|
|
import ei.game.scene.units.APU;
|
|
|
|
|
import ei.game.scene.units.Bomber;
|
|
|
|
|
import ei.game.scene.units.Tank;
|
2007-04-24 21:41:31 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This class handels the build buttons for the units
|
|
|
|
|
* @author Ziver
|
|
|
|
|
*
|
|
|
|
|
*/
|
2007-04-28 22:09:39 +00:00
|
|
|
public class InGameBuildHud implements UiListener{
|
2007-04-24 21:41:31 +00:00
|
|
|
private UiHandler ui;
|
2007-04-26 16:20:55 +00:00
|
|
|
private Player player;
|
|
|
|
|
private BitmapText queueSize;
|
2007-06-17 22:31:09 +00:00
|
|
|
private InGameState inGameState;
|
2007-04-24 21:41:31 +00:00
|
|
|
|
2007-04-26 16:20:55 +00:00
|
|
|
public Button removeLastQueue;
|
|
|
|
|
public Button apuBuildButton;
|
|
|
|
|
public Button tankBuildButton;
|
|
|
|
|
public Button bomberBuildButton;
|
|
|
|
|
|
2007-06-17 22:31:09 +00:00
|
|
|
public InGameBuildHud(int x ,int y, Player p, InGameState inGameState){
|
|
|
|
|
this.inGameState = inGameState;
|
2007-04-26 16:20:55 +00:00
|
|
|
player = p;
|
2007-04-24 21:41:31 +00:00
|
|
|
ui = new UiHandler("BuildMenu");
|
|
|
|
|
|
|
|
|
|
Vector2f size = new Vector2f(40,40);
|
2007-04-26 16:20:55 +00:00
|
|
|
|
|
|
|
|
removeLastQueue = new Button("TankButton", size);
|
|
|
|
|
queueSize = new BitmapText("QueueSize");
|
|
|
|
|
queueSize.setText("0");
|
|
|
|
|
removeLastQueue.setButtonSprite(queueSize);
|
|
|
|
|
removeLastQueue.getNode().setLocation(new Vector2f(x,y));
|
2007-04-28 22:09:39 +00:00
|
|
|
removeLastQueue.addListener(this);
|
2007-04-26 16:20:55 +00:00
|
|
|
ui.addUi(removeLastQueue);
|
2007-04-24 21:41:31 +00:00
|
|
|
|
2007-04-26 16:20:55 +00:00
|
|
|
apuBuildButton = new Button("TankButton", size);
|
2007-04-24 21:41:31 +00:00
|
|
|
Sprite s1 = new Sprite("ApuButton","data/ui/apu_button.png");
|
|
|
|
|
s1.setSize(size);
|
2007-04-26 16:20:55 +00:00
|
|
|
apuBuildButton.setButtonSprite(s1);
|
2007-04-24 21:41:31 +00:00
|
|
|
Sprite s2 = new Sprite("ApuButton_Selected","data/ui/apu_button_selected.png");
|
|
|
|
|
s2.setSize(size);
|
2007-04-26 16:20:55 +00:00
|
|
|
apuBuildButton.setOnTopButtonSprite(s2);
|
|
|
|
|
apuBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*2),y));
|
2007-04-28 22:09:39 +00:00
|
|
|
apuBuildButton.addListener(this);
|
2007-04-26 16:20:55 +00:00
|
|
|
ui.addUi(apuBuildButton);
|
2007-04-24 21:41:31 +00:00
|
|
|
|
2007-04-26 16:20:55 +00:00
|
|
|
tankBuildButton = new Button("TankButton", size);
|
2007-04-24 21:41:31 +00:00
|
|
|
Sprite s3 = new Sprite("TankButton","data/ui/tank_button.png");
|
|
|
|
|
s3.setSize(size);
|
2007-04-26 16:20:55 +00:00
|
|
|
tankBuildButton.setButtonSprite(s3);
|
2007-04-24 21:41:31 +00:00
|
|
|
Sprite s4 = new Sprite("TankButton_Selected","data/ui/tank_button_selected.png");
|
|
|
|
|
s4.setSize(size);
|
2007-04-26 16:20:55 +00:00
|
|
|
tankBuildButton.setOnTopButtonSprite(s4);
|
|
|
|
|
tankBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*4),y));
|
2007-04-28 22:09:39 +00:00
|
|
|
tankBuildButton.addListener(this);
|
2007-04-26 16:20:55 +00:00
|
|
|
ui.addUi(tankBuildButton);
|
2007-04-24 21:41:31 +00:00
|
|
|
|
2007-04-26 16:20:55 +00:00
|
|
|
bomberBuildButton = new Button("TankButton", size);
|
2007-04-24 21:41:31 +00:00
|
|
|
Sprite s5 = new Sprite("BomberButton","data/ui/bomber_button.png");
|
|
|
|
|
s5.setSize(size);
|
2007-04-26 16:20:55 +00:00
|
|
|
bomberBuildButton.setButtonSprite(s5);
|
2007-04-24 21:41:31 +00:00
|
|
|
Sprite s6 = new Sprite("BomberButton_Selected","data/ui/bomber_button_selected.png");
|
|
|
|
|
s6.setSize(size);
|
2007-04-26 16:20:55 +00:00
|
|
|
bomberBuildButton.setOnTopButtonSprite(s6);
|
|
|
|
|
bomberBuildButton.getNode().setLocation(new Vector2f(x+(size.getX()*6),y));
|
2007-04-28 22:09:39 +00:00
|
|
|
bomberBuildButton.addListener(this);
|
2007-04-26 16:20:55 +00:00
|
|
|
ui.addUi(bomberBuildButton);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void update(){
|
|
|
|
|
queueSize.setText(""+player.getCC().getBuildQueueSize());
|
2007-04-24 21:41:31 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public UiHandler getUi(){
|
|
|
|
|
return ui;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Node getNode(){
|
|
|
|
|
return ui.getNode();
|
|
|
|
|
}
|
2007-04-26 16:20:55 +00:00
|
|
|
|
|
|
|
|
public Player getPlayer(){
|
|
|
|
|
return player;
|
|
|
|
|
}
|
|
|
|
|
|
2007-04-28 22:09:39 +00:00
|
|
|
public void ActionEvent(UiComponent source){
|
|
|
|
|
// builds a apu
|
|
|
|
|
if(source == apuBuildButton){
|
2007-06-17 22:31:09 +00:00
|
|
|
player.getCC().buildUnit(new APU(player, getInGameState()));
|
2007-04-28 22:09:39 +00:00
|
|
|
}
|
|
|
|
|
// builds a tank
|
|
|
|
|
else if(source == tankBuildButton){
|
2007-06-17 22:31:09 +00:00
|
|
|
player.getCC().buildUnit(new Tank(player, getInGameState()));
|
2007-04-28 22:09:39 +00:00
|
|
|
}
|
|
|
|
|
// builds a bomber
|
|
|
|
|
else if(source == bomberBuildButton){
|
2007-06-17 22:31:09 +00:00
|
|
|
player.getCC().buildUnit(new Bomber(player, getInGameState()));
|
2007-04-26 16:20:55 +00:00
|
|
|
}
|
|
|
|
|
|
2007-04-28 22:09:39 +00:00
|
|
|
// removes the last unit in the queue
|
|
|
|
|
else if(source == removeLastQueue){
|
|
|
|
|
player.getCC().removeLast();
|
2007-04-26 16:20:55 +00:00
|
|
|
}
|
|
|
|
|
}
|
2007-06-17 22:31:09 +00:00
|
|
|
|
|
|
|
|
public InGameState getInGameState(){
|
|
|
|
|
return inGameState;
|
|
|
|
|
}
|
2007-04-24 21:41:31 +00:00
|
|
|
}
|