package org.multiverseking.game.battle;
import com.simsilica.es.EntityId;
import com.simsilica.es.PersistentComponent;
import java.util.ArrayList;
import org.hexgridapi.utility.Vector2Int;
import org.multiverseking.utility.component.HealthComponent;
import org.multiverseking.utility.component.InfluenceComponent;
import org.multiverseking.game.gui.control.EditorWindow;
import org.multiverseking.game.gui.control.LayoutWindow.HAlign;
import org.multiverseking.game.gui.control.LayoutWindow.VAlign;
import org.multiverseking.render.AbstractRender.RenderType;
import tonegod.gui.controls.lists.Spinner;
import tonegod.gui.core.Element;
import tonegod.gui.core.Screen;
/**
*
* @author roah
*/
public class EntityStatsWindow extends EditorWindow {
private EntityId currentId = null;
public EntityStatsWindow(Screen screen, Element parent) {
super(screen, parent, "Stats ");
}
public void show(EntityId id, RenderType renderType, ArrayList<PersistentComponent> comps) {
if (id != currentId) {
populate(renderType, comps);
super.showConstrainToParent(VAlign.bottom, HAlign.left);
currentId = id;
}
}
private void populate(RenderType renderType, ArrayList<PersistentComponent> comps) {
switch (renderType) {
case Ability:
break;
case Core:
HealthComponent hp = (HealthComponent) comps.get(0);
addLabelPropertieField("Health Point", new Vector2Int(hp.getCurrent(), hp.getMax()), HAlign.left);
InfluenceComponent inf = (InfluenceComponent) comps.get(1);
addLabelPropertieField("Influence range", inf.getRange(), HAlign.left);
break;
case Debug:
break;
case Environment:
break;
case Titan:
break;
case Unit:
break;
case Utility:
break;
}
}
@Override
protected void onButtonTrigger(String label) {
}
@Override
protected void onTextFieldInput(String UID, String input, boolean triggerOn) {
}
@Override
protected void onNumericFieldInput(Integer input) {
}
@Override
protected void onSelectBoxFieldChange(Enum value) {
}
@Override
protected void onSpinnerChange(String sTrigger, int currentIndex, Spinner.ChangeType type) {
}
@Override
public void onPressCloseAndHide() {
}
}