package com.alastar.game.gui;
import java.util.Timer;
import java.util.TimerTask;
import com.alastar.game.GameManager;
import com.alastar.game.Vars;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.Event;
import com.badlogic.gdx.scenes.scene2d.EventListener;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.InputListener;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
public class GUIPlayerOverhead implements GUIElement
{
public String name;
public Window window;
public ScrollPane scroll;
public Table table;
public Timer overheadTimer = null;
public GUIPlayerOverhead(String n, Vector2 vector2, Vector2 vector22)
{
this.name = n;
this.window = new Window(this.name,
GameManager.getSkin(GameManager.selectedSkin),
"overhead_window");
window.setPosition(vector2.x / (float)Vars.getDouble("balancedScreenWidth"),
vector2.y / (float)Vars.getDouble("balancedScreenHeight"));
window.setWidth(vector22.x / (float)Vars.getDouble("balancedScreenWidth"));
window.setHeight(vector22.y / (float)Vars.getDouble("balancedScreenHeight"));
window.defaults().prefWidth(
vector22.x / (float)Vars.getDouble("balancedScreenWidth"));
window.defaults().prefHeight(
vector22.y / (float)Vars.getDouble("balancedScreenHeight"));
table = new Table();
table.setFillParent(true);
table.setWidth(vector22.x);
table.setHeight(vector22.y);
table.center();
table.bottom();
table.setClip(false);
scroll = new ScrollPane(table);
scroll.setScrollBarPositions(false, true);
scroll.setScrollingDisabled(true, true);
scroll.setScrollbarsOnTop(true);
scroll.setFadeScrollBars(false);
scroll.setFillParent(true);
scroll.setSmoothScrolling(false);
scroll.setWidth(vector22.x);
scroll.setHeight(vector22.y);
scroll.setClamp(false);
window.add(scroll).fill();
window.setTitle("");
window.setClip(false);
InputListener el = new InputListener() {
@Override
public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) {
return false;
}
};
window.addListener(el);
}
@Override
public Actor getElementAsActor()
{
return window;
}
@Override
public String getName()
{
return name;
}
@Override
public void Destroy()
{
// window.remove();
Hide();
window.clear();
}
public void AddControl(GUIElement element)
{
window.add(element.getElementAsActor());
window.pack();
}
@Override
public void Hide()
{
window.setVisible(false);
}
@Override
public void Show()
{
window.setVisible(true);
}
@Override
public void Update(String s)
{
}
@Override
public String getHandledVariable()
{
return "";
}
@Override
public void setHandledVariable(String val)
{
}
@Override
public EventListener getEventListener()
{
return null;
}
@Override
public void setEventListener(EventListener val)
{
}
@Override
public void setName(String s)
{
this.name = s;
this.window.setName(s);
}
@Override
public Float getHeight()
{
return window.getHeight();
}
@Override
public void setHeight(float val)
{
this.window.setHeight(val / (float)Vars.getDouble("balancedScreenHeight"));
}
@Override
public Float getWidth()
{
return window.getWidth();
}
@Override
public void setWidth(float val)
{
this.window.setWidth(val / (float)Vars.getDouble("balancedScreenWidth"));
}
@Override
public Vector2 getPosition()
{
return new Vector2(window.getX(), window.getY());
}
@Override
public void setPosition(Vector2 val)
{
window.setX(val.x / (float)Vars.getDouble("balancedScreenWidth"));
window.setY(val.y / (float)Vars.getDouble("balancedScreenHeight"));
}
@Override
public Vector2 getPadTB()
{
return new Vector2(window.getPadTop(), window.getPadBottom());
}
@Override
public void setPadTB(Vector2 val)
{
window.defaults().padTop(val.x / (float)Vars.getDouble("balancedScreenWidth"));
window.defaults()
.padBottom(val.y / (float)Vars.getDouble("balancedScreenHeight"));
}
@Override
public Vector2 getPadRL()
{
return new Vector2(window.getPadRight(), window.getPadLeft());
}
@Override
public void setPadRL(Vector2 val)
{
window.defaults().padRight(val.x / (float)Vars.getDouble("balancedScreenWidth"));
window.defaults().padLeft(val.y / (float)Vars.getDouble("balancedScreenHeight"));
}
@Override
public Vector2 getMinHW()
{
return new Vector2(window.getMinHeight(), window.getMinWidth());
}
@Override
public void setMinHW(Vector2 val)
{
window.defaults().minWidth(val.x / (float)Vars.getDouble("balancedScreenWidth"));
window.defaults()
.minHeight(val.y / (float)Vars.getDouble("balancedScreenHeight"));
}
@Override
public Vector2 getMaxHW()
{
return new Vector2(window.getMaxHeight(), window.getMaxWidth());
}
@Override
public void setMaxHW(Vector2 val)
{
window.defaults().maxWidth(val.x / (float)Vars.getDouble("balancedScreenWidth"));
window.defaults()
.maxHeight(val.y / (float)Vars.getDouble("balancedScreenHeight"));
}
@Override
public void setText(String text)
{
window.setTitle(text);
}
@Override
public String getText()
{
return (String) window.getTitle();
}
@Override
public void addChild(GUIElement o)
{
window.add(o.getElementAsActor());
window.pack();
}
public void addMsg(String msg)
{
Show();
table.row();
final Label text = new Label(msg,
GameManager.getSkin(GameManager.selectedSkin), "label");
table.add(text);
scroll.setScrollY(scroll.getMaxY());
overheadTimer = new Timer();
overheadTimer.schedule(new TimerTask()
{
@Override
public void run()
{
text.remove();
scroll.setScrollY(scroll.getMaxY());
if(table.getChildren().size == 0)
{
Hide();
}
// System.out.println("Overhead removed");
}
}, 10000);
}
}