mirror of
https://github.com/yawaflua/Informatis.git
synced 2025-12-10 12:09:27 +02:00
I FEEL FANSTSTICCCCCCCCCCCCCCCCCCCAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
This commit is contained in:
@@ -18,6 +18,8 @@ import arc.util.*;
|
|||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.ai.types.*;
|
import mindustry.ai.types.*;
|
||||||
import mindustry.content.*;
|
import mindustry.content.*;
|
||||||
|
import mindustry.core.UI;
|
||||||
|
import mindustry.ctype.UnlockableContent;
|
||||||
import mindustry.entities.abilities.*;
|
import mindustry.entities.abilities.*;
|
||||||
import mindustry.entities.units.*;
|
import mindustry.entities.units.*;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
@@ -50,6 +52,7 @@ public class HudUi {
|
|||||||
@Nullable UnitType type;
|
@Nullable UnitType type;
|
||||||
Element image;
|
Element image;
|
||||||
Color lastItemColor = Pal.items;
|
Color lastItemColor = Pal.items;
|
||||||
|
Color lastAmmoColor = Pal.ammo;
|
||||||
float heat;
|
float heat;
|
||||||
float heat2;
|
float heat2;
|
||||||
float a;
|
float a;
|
||||||
@@ -306,8 +309,23 @@ public class HudUi {
|
|||||||
return bundle.format("shar-stat.power", (int)(Math.min(v,max) * 60), (int)(max * 60));
|
return bundle.format("shar-stat.power", (int)(Math.min(v,max) * 60), (int)(max * 60));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(getUnit() instanceof Building && ((Building)getUnit()).block.hasItems) {
|
||||||
|
if(getUnit() instanceof CoreBlock.CoreBuild || (getUnit() instanceof StorageBlock.StorageBuild && !((StorageBlock.StorageBuild)getUnit()).canPickup())) {
|
||||||
|
CoreBlock.CoreBuild core = getUnit();
|
||||||
|
if(getUnit() instanceof StorageBlock.StorageBuild) for(int i = 0; i < 4; i++) {
|
||||||
|
Building build = ((StorageBlock.StorageBuild) getUnit()).nearby(i);
|
||||||
|
if(build instanceof CoreBlock.CoreBuild){
|
||||||
|
core = (CoreBlock.CoreBuild) build;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return bundle.format("shar-stat.itemCapacity", UI.formatAmount(((Building) getUnit()).items.total()), UI.formatAmount((long) (core.storageCapacity * content.items().count(UnlockableContent::unlockedNow) * 1f)));
|
||||||
|
}
|
||||||
|
else return bundle.format("shar-stat.itemCapacity", UI.formatAmount(((Building)getUnit()).items.total()), UI.formatAmount(((Building)getUnit()).block.itemCapacity));
|
||||||
|
}
|
||||||
if(getUnit() instanceof Unit)
|
if(getUnit() instanceof Unit)
|
||||||
return bundle.format("shar-stat.itemCapacity", ((Unit)getUnit()).stack().amount, ((Unit)getUnit()).type().itemCapacity);
|
return bundle.format("shar-stat.itemCapacity", UI.formatAmount(((Unit)getUnit()).stack().amount), UI.formatAmount(((Unit)getUnit()).type().itemCapacity));
|
||||||
return "[lightgray]<Empty>[]";
|
return "[lightgray]<Empty>[]";
|
||||||
},
|
},
|
||||||
() -> {
|
() -> {
|
||||||
@@ -336,6 +354,8 @@ public class HudUi {
|
|||||||
lastItemColor = Pal.powerBar;
|
lastItemColor = Pal.powerBar;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(getUnit() instanceof Building && ((Building)getUnit()).block.hasItems)
|
||||||
|
return Pal.items;
|
||||||
else if(getUnit() instanceof Unit && ((Unit)getUnit()).stack().item != null && ((Unit)getUnit()).stack().amount > 0)
|
else if(getUnit() instanceof Unit && ((Unit)getUnit()).stack().item != null && ((Unit)getUnit()).stack().amount > 0)
|
||||||
lastItemColor = ((Unit)getUnit()).stack().item.color.cpy().lerp(Color.white, 0.15f);
|
lastItemColor = ((Unit)getUnit()).stack().item.color.cpy().lerp(Color.white, 0.15f);
|
||||||
else lastItemColor = Color.clear;
|
else lastItemColor = Color.clear;
|
||||||
@@ -372,6 +392,19 @@ public class HudUi {
|
|||||||
return v/max;
|
return v/max;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(getUnit() instanceof Building && ((Building)getUnit()).block.hasItems)
|
||||||
|
if(getUnit() instanceof CoreBlock.CoreBuild || (getUnit() instanceof StorageBlock.StorageBuild && !((StorageBlock.StorageBuild)getUnit()).canPickup())) {
|
||||||
|
CoreBlock.CoreBuild core = getUnit();
|
||||||
|
if(getUnit() instanceof StorageBlock.StorageBuild) for(int i = 0; i < 4; i++) {
|
||||||
|
Building build = ((StorageBlock.StorageBuild) getUnit()).nearby(i);
|
||||||
|
if(build instanceof CoreBlock.CoreBuild){
|
||||||
|
core = (CoreBlock.CoreBuild) build;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Mathf.clamp(((CoreBlock.CoreBuild)getUnit()).items.total() / (core.storageCapacity * content.items().count(UnlockableContent::unlockedNow) * 1f));
|
||||||
|
}
|
||||||
|
else return Mathf.clamp(((Building)getUnit()).items.total() / (((Building)getUnit()).block.itemCapacity * 1f));
|
||||||
if(getUnit() instanceof Unit)
|
if(getUnit() instanceof Unit)
|
||||||
return Mathf.clamp(((Unit)getUnit()).stack().amount / (((Unit)getUnit()).type().itemCapacity * 1f));
|
return Mathf.clamp(((Unit)getUnit()).stack().amount / (((Unit)getUnit()).type().itemCapacity * 1f));
|
||||||
return 0f;
|
return 0f;
|
||||||
@@ -427,17 +460,17 @@ public class HudUi {
|
|||||||
add(new Element(){
|
add(new Element(){
|
||||||
@Override
|
@Override
|
||||||
public void draw(){
|
public void draw(){
|
||||||
Building entity = ((BlockUnitUnit)getUnit()).tile();
|
Building entity = ((BlockUnitUnit)getUnit()).tile();
|
||||||
float max = entity.block.consumes.getPower().usage;
|
float max = entity.block.consumes.getPower().usage;
|
||||||
float v = entity.power.status * entity.power.graph.getLastScaledPowerIn();
|
float v = entity.power.status * entity.power.graph.getLastScaledPowerIn();
|
||||||
|
|
||||||
Lines.stroke(Scl.scl(2f), Pal.removeBack);
|
Lines.stroke(Scl.scl(2f), Pal.removeBack);
|
||||||
Draw.alpha(1 - v/max);
|
Draw.alpha(1 - v/max);
|
||||||
Lines.line(x, y - 2f + height, x + width, y - 2f);
|
Lines.line(x, y - 2f + height, x + width, y - 2f);
|
||||||
Draw.color(Pal.remove);
|
Draw.color(Pal.remove);
|
||||||
Draw.alpha(1 - v/max);
|
Draw.alpha(1 - v/max);
|
||||||
Lines.line(x, y + height, x + width, y);
|
Lines.line(x, y + height, x + width, y);
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
@@ -574,23 +607,39 @@ public class HudUi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
));
|
));
|
||||||
if(getUnit() instanceof Unit)
|
bars.add(new SBar(
|
||||||
bars.add(new SBar(
|
() -> {
|
||||||
() -> Core.bundle.format("shar-stat.payloadCapacity", Mathf.round(Mathf.sqrt(((Payloadc)getUnit()).payloadUsed())), Mathf.round(Mathf.sqrt(((Unit)getUnit()).type().payloadCapacity))),
|
if(getUnit() instanceof Payloadc) return Core.bundle.format("shar-stat.payloadCapacity", Mathf.round(Mathf.sqrt(((Payloadc)getUnit()).payloadUsed())), Mathf.round(Mathf.sqrt(((Unit)getUnit()).type().payloadCapacity)));
|
||||||
() -> Pal.items,
|
else return "[lightgray]<Empty>[]";
|
||||||
() -> Mathf.clamp(((Payloadc)getUnit()).payloadUsed() / ((Unit)getUnit()).type().payloadCapacity),
|
},
|
||||||
() -> getUnit() instanceof Payloadc));
|
() -> {
|
||||||
|
if(getUnit() instanceof Payloadc) return Pal.items;
|
||||||
|
return Color.clear;
|
||||||
|
},
|
||||||
|
() -> {
|
||||||
|
if(getUnit() instanceof Payloadc) return Mathf.clamp(((Payloadc)getUnit()).payloadUsed() / ((Unit)getUnit()).type().payloadCapacity);
|
||||||
|
return 0f;
|
||||||
|
}));
|
||||||
|
|
||||||
bars.add(new Stack(){{
|
bars.add(new Stack(){{
|
||||||
add(new Table(t -> {
|
add(new Table(t -> {
|
||||||
t.defaults().width(Scl.scl(23 * 8f));
|
t.defaults().width(Scl.scl(23 * 8f));
|
||||||
t.defaults().height(Scl.scl(4f * 8f));
|
t.defaults().height(Scl.scl(4f * 8f));
|
||||||
t.top();
|
t.top();
|
||||||
if(getUnit() instanceof Unit) t.add(new SBar(
|
t.add(new SBar(
|
||||||
() -> Core.bundle.format("shar-stat.ammos", ((Unit)getUnit()).ammo(), ((Unit)getUnit()).type().ammoCapacity),
|
() -> {
|
||||||
() -> ((Unit)getUnit()).dead() || getUnit() instanceof BlockUnitc ? Pal.ammo : ((Unit)getUnit()).type().ammoType.color,
|
if(state.rules.unitAmmo) return Core.bundle.format("shar-stat.ammos", ((Unit)getUnit()).ammo(), ((Unit)getUnit()).type().ammoCapacity);
|
||||||
() -> ((Unit)getUnit()).ammof(),
|
return "[lightgray]<Empty>[]";
|
||||||
() -> Vars.state.rules.unitAmmo
|
},
|
||||||
|
() -> {
|
||||||
|
if(getUnit() instanceof Unit) lastAmmoColor = ((Unit)getUnit()).type().ammoType.color;
|
||||||
|
else lastAmmoColor = Color.clear;
|
||||||
|
return lastAmmoColor;
|
||||||
|
},
|
||||||
|
() -> {
|
||||||
|
if(getUnit() instanceof Unit) ((Unit)getUnit()).ammof();
|
||||||
|
return 0f;
|
||||||
|
}
|
||||||
)).growX().left();
|
)).growX().left();
|
||||||
}));
|
}));
|
||||||
add(new Table(t -> {
|
add(new Table(t -> {
|
||||||
@@ -711,10 +760,8 @@ public class HudUi {
|
|||||||
else if(getUnit() != null && ((Unit)getUnit()).type() != null)
|
else if(getUnit() != null && ((Unit)getUnit()).type() != null)
|
||||||
region = ((Unit)getUnit()).type().uiIcon;
|
region = ((Unit)getUnit()).type().uiIcon;
|
||||||
}
|
}
|
||||||
else if(getUnit() instanceof Buildingc){
|
else if(getUnit() instanceof Buildingc && ((Buildingc)getUnit()).block() != null) {
|
||||||
if(((Buildingc) getUnit()).block() != null) {
|
|
||||||
region = ((Buildingc) getUnit()).block().uiIcon;
|
region = ((Buildingc) getUnit()).block().uiIcon;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
setDrawable(region);
|
setDrawable(region);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -16,19 +16,10 @@ import mindustry.ui.*;
|
|||||||
public class SBar extends Element{
|
public class SBar extends Element{
|
||||||
private static final Rect scissor = new Rect();
|
private static final Rect scissor = new Rect();
|
||||||
|
|
||||||
private Floatp fraction;
|
private final Floatp fraction;
|
||||||
private String name = "";
|
private String name = "";
|
||||||
private float value, lastValue, blink;
|
private float value, lastValue, blink;
|
||||||
private final Color blinkColor = new Color();
|
private final Color blinkColor = new Color();
|
||||||
private boolean valid = true;
|
|
||||||
|
|
||||||
public SBar(String name, Color color, Floatp fraction){
|
|
||||||
this.fraction = fraction;
|
|
||||||
this.name = Core.bundle.get(name, name);
|
|
||||||
this.blinkColor.set(color);
|
|
||||||
lastValue = value = fraction.get();
|
|
||||||
setColor(color);
|
|
||||||
}
|
|
||||||
|
|
||||||
public SBar(Prov<String> name, Prov<Color> color, Floatp fraction){
|
public SBar(Prov<String> name, Prov<Color> color, Floatp fraction){
|
||||||
this.fraction = fraction;
|
this.fraction = fraction;
|
||||||
@@ -48,25 +39,6 @@ public class SBar extends Element{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public SBar(Prov<String> name, Prov<Color> color, Floatp fraction, Boolp valid){
|
|
||||||
this.fraction = fraction;
|
|
||||||
try{
|
|
||||||
lastValue = value = Mathf.clamp(fraction.get());
|
|
||||||
}catch(Exception e){ //getting the fraction may involve referring to invalid data
|
|
||||||
lastValue = value = 0f;
|
|
||||||
}
|
|
||||||
update(() -> {
|
|
||||||
try{
|
|
||||||
this.valid = valid.get();
|
|
||||||
this.name = name.get();
|
|
||||||
this.blinkColor.set(color.get());
|
|
||||||
setColor(color.get());
|
|
||||||
}catch(Exception e){ //getting the fraction may involve referring to invalid data
|
|
||||||
this.name = "";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
public Drawable drawable(String name, int left, int right, int top, int bottom){
|
public Drawable drawable(String name, int left, int right, int top, int bottom){
|
||||||
Drawable out;
|
Drawable out;
|
||||||
|
|
||||||
@@ -83,6 +55,7 @@ public class SBar extends Element{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(){
|
public void draw(){
|
||||||
|
boolean valid = true;
|
||||||
if(fraction == null || !valid) return;
|
if(fraction == null || !valid) return;
|
||||||
boolean ssim = Core.settings.getBool("ssim");
|
boolean ssim = Core.settings.getBool("ssim");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user