mirror of
https://github.com/yawaflua/Informatis.git
synced 2025-12-10 03:59:26 +02:00
added forceProjector bar, clean up
This commit is contained in:
@@ -17,6 +17,7 @@ import mindustry.gen.*;
|
||||
import mindustry.graphics.Pal;
|
||||
import mindustry.ui.Fonts;
|
||||
import mindustry.world.blocks.ConstructBlock;
|
||||
import mindustry.world.blocks.defense.ForceProjector;
|
||||
import mindustry.world.blocks.defense.turrets.*;
|
||||
import mindustry.world.blocks.storage.*;
|
||||
import mindustry.world.blocks.units.Reconstructor;
|
||||
@@ -33,19 +34,6 @@ public class BarInfo {
|
||||
static Seq<Float> numbers = new Seq<>(new Float[]{0f,0f,0f,0f,0f,0f});
|
||||
static Seq<Color> colors = new Seq<>(new Color[]{Color.clear,Color.clear,Color.clear,Color.clear,Color.clear,Color.clear});
|
||||
|
||||
public static <T extends Teamc> Seq<String> returnStrings(T target){
|
||||
getInfo(target);
|
||||
return strings;
|
||||
}
|
||||
public static <T extends Teamc> Seq<Color> returnColors(T target){
|
||||
getInfo(target);
|
||||
return colors;
|
||||
}
|
||||
public static <T extends Teamc> Seq<Float> returnNumbers(T target){
|
||||
getInfo(target);
|
||||
return numbers;
|
||||
}
|
||||
|
||||
public static String format(float number){
|
||||
if(number >= 10000) return UI.formatAmount((long)number);
|
||||
if(String.valueOf(number).split("[.]")[1].matches("0")) return String.valueOf(number).split("[.]")[0];
|
||||
@@ -98,6 +86,15 @@ public class BarInfo {
|
||||
colors.set(1, Pal.darkerMetal);
|
||||
numbers.set(1, reconstruct.fraction());
|
||||
}
|
||||
else if(target instanceof ForceProjector.ForceBuild){
|
||||
ForceProjector.ForceBuild force = (ForceProjector.ForceBuild) target;
|
||||
ForceProjector forceBlock = (ForceProjector) force.block;
|
||||
float max = forceBlock.shieldHealth + forceBlock.phaseShieldBoost * force.phaseHeat;
|
||||
strings.set(1, Core.bundle.format("shar-stat.shield", format(max-force.buildup), max));
|
||||
colors.set(1, Pal.shield);
|
||||
numbers.set(1, (max-force.buildup)/max);
|
||||
|
||||
}
|
||||
|
||||
if(target instanceof ItemTurret.ItemTurretBuild) {
|
||||
ItemTurret.ItemTurretBuild turretBuild = (ItemTurret.ItemTurretBuild) target;
|
||||
|
||||
@@ -62,22 +62,29 @@ public class HudUi {
|
||||
int waveamount;
|
||||
int coreamount;
|
||||
|
||||
Seq<String> strings = new Seq<>(new String[]{"","","","","",""});
|
||||
Seq<Float> numbers = new Seq<>(new Float[]{0f,0f,0f,0f,0f,0f});
|
||||
Seq<Color> colors = new Seq<>(new Color[]{Color.clear,Color.clear,Color.clear,Color.clear,Color.clear,Color.clear});
|
||||
Seq<Color> lastColors = new Seq<>(new Color[]{Color.clear,Color.clear,Color.clear,Color.clear,Color.clear,Color.clear});
|
||||
CoresItemsDisplay coreItems = new CoresItemsDisplay(Team.baseTeams);
|
||||
|
||||
|
||||
@Nullable Teamc target;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends Teamc> T getTarget(){
|
||||
if(locked && lockedTarget != null) return (T) lockedTarget; //if there is locked target, return it first.
|
||||
Seq<Unit> units = Groups.unit.intersect(Core.input.mouseWorldX(), Core.input.mouseWorldY(), 4, 4);
|
||||
if(units.size > 0) return (T) units.peek(); //if there is unit, return it.
|
||||
else if(getTile() != null && getTile().build != null) return (T) getTile().build; //if there isn't unit but there is build, return it.
|
||||
else if(player.unit() instanceof BlockUnitUnit && ((BlockUnitUnit)player.unit()).tile() != null) return (T)((BlockUnitUnit)player.unit()).tile();
|
||||
if(locked &&
|
||||
(lockedTarget instanceof Unit && ((Unit) lockedTarget).dead) ||
|
||||
(lockedTarget instanceof Building && ((Building) lockedTarget).dead)) {
|
||||
lockedTarget = null;
|
||||
locked = false;
|
||||
}
|
||||
if(locked && lockedTarget != null)
|
||||
return (T) lockedTarget; //if there is locked target, return it first.
|
||||
|
||||
Seq<Unit> units = Groups.unit.intersect(Core.input.mouseWorldX(), Core.input.mouseWorldY(), 4, 4); // well, 0.5tile is enough to search them........ maybe?
|
||||
if(units.size > 0)
|
||||
return (T) units.peek(); //if there is unit, return it.
|
||||
else if(getTile() != null && getTile().build != null)
|
||||
return (T) getTile().build; //if there isn't unit but there is build, return it.
|
||||
else if(player.unit() instanceof BlockUnitUnit && ((BlockUnitUnit)player.unit()).tile() != null)
|
||||
return (T)((BlockUnitUnit)player.unit()).tile();
|
||||
return (T) player.unit(); //if there are not unit and not build, return player.
|
||||
}
|
||||
|
||||
@@ -225,27 +232,27 @@ public class HudUi {
|
||||
|
||||
public void addBars(){
|
||||
bars.clear();
|
||||
lastColors.set(2, colors.get(2));
|
||||
|
||||
{
|
||||
int i = 0;
|
||||
bars.add(new SBar(
|
||||
() -> strings.get(i),
|
||||
() -> BarInfo.strings.get(i),
|
||||
() -> {
|
||||
if (colors.get(i) != Color.clear) lastColors.set(i, colors.get(i));
|
||||
if (BarInfo.colors.get(i) != Color.clear) lastColors.set(i, BarInfo.colors.get(i));
|
||||
return lastColors.get(i);
|
||||
},
|
||||
() -> numbers.get(i)
|
||||
() -> BarInfo.numbers.get(i)
|
||||
));
|
||||
}
|
||||
{
|
||||
int i = 1;
|
||||
bars.add(new SBar(
|
||||
() -> strings.get(i),
|
||||
() -> BarInfo.strings.get(i),
|
||||
() -> {
|
||||
if (colors.get(i) != Color.clear) lastColors.set(i, colors.get(i));
|
||||
if (BarInfo.colors.get(i) != Color.clear) lastColors.set(i, BarInfo.colors.get(i));
|
||||
return lastColors.get(i);
|
||||
},
|
||||
() -> numbers.get(i)
|
||||
() -> BarInfo.numbers.get(i)
|
||||
));
|
||||
}
|
||||
bars.add(new Stack(){{
|
||||
@@ -253,12 +260,12 @@ public class HudUi {
|
||||
t.top().defaults().width(Scl.scl(23 * 8f)).height(Scl.scl(4f * 8f));
|
||||
int i = 2;
|
||||
t.add(new SBar(
|
||||
() -> strings.get(i),
|
||||
() -> BarInfo.strings.get(i),
|
||||
() -> {
|
||||
if(colors.get(i) != Color.clear) lastColors.set(i, colors.get(i));
|
||||
if(BarInfo.colors.get(i) != Color.clear) lastColors.set(i, BarInfo.colors.get(i));
|
||||
return lastColors.get(i);
|
||||
},
|
||||
() -> numbers.get(i)
|
||||
() -> BarInfo.numbers.get(i)
|
||||
)).growX().left();
|
||||
}));
|
||||
add(new Table(){{
|
||||
@@ -333,12 +340,12 @@ public class HudUi {
|
||||
{
|
||||
int i = 3;
|
||||
bars.add(new SBar(
|
||||
() -> strings.get(i),
|
||||
() -> BarInfo.strings.get(i),
|
||||
() -> {
|
||||
if (colors.get(i) != Color.clear) lastColors.set(i, colors.get(i));
|
||||
if (BarInfo.colors.get(i) != Color.clear) lastColors.set(i, BarInfo.colors.get(i));
|
||||
return lastColors.get(i);
|
||||
},
|
||||
() -> numbers.get(i)
|
||||
() -> BarInfo.numbers.get(i)
|
||||
));
|
||||
}
|
||||
|
||||
@@ -346,12 +353,12 @@ public class HudUi {
|
||||
{
|
||||
int i = 4;
|
||||
bars.add(new SBar(
|
||||
() -> strings.get(i),
|
||||
() -> BarInfo.strings.get(i),
|
||||
() -> {
|
||||
if (colors.get(i) != Color.clear) lastColors.set(i, colors.get(i));
|
||||
if (BarInfo.colors.get(i) != Color.clear) lastColors.set(i, BarInfo.colors.get(i));
|
||||
return lastColors.get(i);
|
||||
},
|
||||
() -> numbers.get(i)
|
||||
() -> BarInfo.numbers.get(i)
|
||||
));
|
||||
}
|
||||
|
||||
@@ -361,12 +368,12 @@ public class HudUi {
|
||||
|
||||
int i = 5;
|
||||
t.add(new SBar(
|
||||
() -> strings.get(i),
|
||||
() -> BarInfo.strings.get(i),
|
||||
() -> {
|
||||
if (colors.get(i) != Color.clear) lastColors.set(i, colors.get(i));
|
||||
if (BarInfo.colors.get(i) != Color.clear) lastColors.set(i, BarInfo.colors.get(i));
|
||||
return lastColors.get(i);
|
||||
},
|
||||
() -> numbers.get(i)
|
||||
() -> BarInfo.numbers.get(i)
|
||||
)).growX().left();
|
||||
}));
|
||||
add(new Table(t -> {
|
||||
@@ -569,9 +576,7 @@ public class HudUi {
|
||||
}).padRight(Scl.scl(24 * 8f));
|
||||
table.row();
|
||||
table.update(() -> {
|
||||
strings = BarInfo.returnStrings(getTarget());
|
||||
numbers = BarInfo.returnNumbers(getTarget());
|
||||
colors = BarInfo.returnColors(getTarget());
|
||||
BarInfo.getInfo(target);
|
||||
if(getTarget() instanceof Turret.TurretBuild){
|
||||
if(((Turret.TurretBuild) getTarget()).charging) charge += Time.delta;
|
||||
else charge = 0f;
|
||||
|
||||
Reference in New Issue
Block a user