This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package mindustry.entities.abilities;
|
package mindustry.entities.abilities;
|
||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
|
import arc.scene.ui.layout.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
|
||||||
public abstract class Ability implements Cloneable{
|
public abstract class Ability implements Cloneable{
|
||||||
@@ -16,6 +17,10 @@ public abstract class Ability implements Cloneable{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void displayBars(Unit unit, Table bars){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/** @return localized ability name; mods should override this. */
|
/** @return localized ability name; mods should override this. */
|
||||||
public String localized(){
|
public String localized(){
|
||||||
return Core.bundle.get("ability." + getClass().getSimpleName().replace("Ability", "").toLowerCase());
|
return Core.bundle.get("ability." + getClass().getSimpleName().replace("Ability", "").toLowerCase());
|
||||||
|
|||||||
@@ -6,10 +6,12 @@ import arc.graphics.*;
|
|||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
import arc.math.geom.*;
|
import arc.math.geom.*;
|
||||||
|
import arc.scene.ui.layout.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.content.*;
|
import mindustry.content.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
|
import mindustry.ui.*;
|
||||||
|
|
||||||
public class ForceFieldAbility extends Ability{
|
public class ForceFieldAbility extends Ability{
|
||||||
/** Shield radius. */
|
/** Shield radius. */
|
||||||
@@ -94,6 +96,11 @@ public class ForceFieldAbility extends Ability{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void displayBars(Unit unit, Table bars){
|
||||||
|
bars.add(new Bar("stat.shieldhealth", Pal.accent, () -> unit.shield / max)).row();
|
||||||
|
}
|
||||||
|
|
||||||
public void checkRadius(Unit unit){
|
public void checkRadius(Unit unit){
|
||||||
//timer2 is used to store radius scale as an effect
|
//timer2 is used to store radius scale as an effect
|
||||||
realRad = radiusScale * radius;
|
realRad = radiusScale * radius;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package mindustry.entities.comp;
|
|||||||
|
|
||||||
import arc.*;
|
import arc.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
|
import arc.scene.ui.layout.*;
|
||||||
import arc.struct.*;
|
import arc.struct.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
@@ -12,6 +13,7 @@ import mindustry.entities.*;
|
|||||||
import mindustry.game.EventType.*;
|
import mindustry.game.EventType.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.type.*;
|
import mindustry.type.*;
|
||||||
|
import mindustry.ui.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
import mindustry.world.blocks.payloads.*;
|
import mindustry.world.blocks.payloads.*;
|
||||||
|
|
||||||
@@ -143,4 +145,19 @@ abstract class PayloadComp implements Posc, Rotc, Hitboxc, Unitc{
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void contentInfo(Table table, float itemSize, float width){
|
||||||
|
table.clear();
|
||||||
|
table.top().left();
|
||||||
|
|
||||||
|
float pad = 0;
|
||||||
|
float items = payloads.size;
|
||||||
|
if(itemSize * items + pad * items > width){
|
||||||
|
pad = (width - (itemSize) * items) / items;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Payload p : payloads){
|
||||||
|
table.image(p.icon(Cicon.small)).size(itemSize).padRight(pad);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,6 +171,23 @@ public class UnitType extends UnlockableContent{
|
|||||||
bars.add(new Bar(ammoType.icon + " " + Core.bundle.get("stat.ammo"), ammoType.barColor, () -> unit.ammo / ammoCapacity));
|
bars.add(new Bar(ammoType.icon + " " + Core.bundle.get("stat.ammo"), ammoType.barColor, () -> unit.ammo / ammoCapacity));
|
||||||
bars.row();
|
bars.row();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(Ability ability : unit.abilities){
|
||||||
|
ability.displayBars(unit, bars);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(unit instanceof Payloadc payload){
|
||||||
|
bars.add(new Bar("stat.payloadcapacity", Pal.items, () -> payload.payloadUsed() / unit.type().payloadCapacity));
|
||||||
|
bars.row();
|
||||||
|
|
||||||
|
var count = new float[]{-1};
|
||||||
|
bars.table().update(t -> {
|
||||||
|
if(count[0] != payload.payloadUsed()) {
|
||||||
|
payload.contentInfo(t, 8 * 2, 270);
|
||||||
|
count[0] = payload.payloadUsed();
|
||||||
|
}
|
||||||
|
}).growX().left();
|
||||||
|
}
|
||||||
}).growX();
|
}).growX();
|
||||||
|
|
||||||
if(unit.controller() instanceof LogicAI){
|
if(unit.controller() instanceof LogicAI){
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{
|
|||||||
public final PlanetRenderer planets = renderer.planets;
|
public final PlanetRenderer planets = renderer.planets;
|
||||||
public final LaunchLoadoutDialog loadouts = new LaunchLoadoutDialog();
|
public final LaunchLoadoutDialog loadouts = new LaunchLoadoutDialog();
|
||||||
|
|
||||||
public int launchRange;
|
|
||||||
public float zoom = 1f, selectAlpha = 1f;
|
public float zoom = 1f, selectAlpha = 1f;
|
||||||
public @Nullable Sector selected, hovered, launchSector;
|
public @Nullable Sector selected, hovered, launchSector;
|
||||||
public Mode mode = look;
|
public Mode mode = look;
|
||||||
|
|||||||
@@ -755,6 +755,20 @@ public class HudFragment extends Fragment{
|
|||||||
return builder;
|
return builder;
|
||||||
}).growX().pad(8f);
|
}).growX().pad(8f);
|
||||||
|
|
||||||
|
table.row();
|
||||||
|
|
||||||
|
var count = new float[]{-1};
|
||||||
|
table.table().update(t -> {
|
||||||
|
if(player.unit() instanceof Payloadc payload){
|
||||||
|
if(count[0] != payload.payloadUsed()){
|
||||||
|
payload.contentInfo(t, 8 * 2, 275f);
|
||||||
|
count[0] = payload.payloadUsed();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
t.clear();
|
||||||
|
}
|
||||||
|
}).growX().visible(() -> player.unit() instanceof Payloadc p && p.payloadUsed() > 0).colspan(2);
|
||||||
|
|
||||||
return table;
|
return table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -57,4 +57,9 @@ public class BuildPayload implements Payload{
|
|||||||
Drawf.shadow(build.x, build.y, build.block.size * tilesize * 2f);
|
Drawf.shadow(build.x, build.y, build.block.size * tilesize * 2f);
|
||||||
Draw.rect(build.block.icon(Cicon.full), build.x, build.y);
|
Draw.rect(build.block.icon(Cicon.full), build.x, build.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TextureRegion icon(Cicon icon){
|
||||||
|
return block().icon(icon);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package mindustry.world.blocks.payloads;
|
package mindustry.world.blocks.payloads;
|
||||||
|
|
||||||
|
import arc.graphics.g2d.*;
|
||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import arc.util.io.*;
|
import arc.util.io.*;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
|
import mindustry.ui.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
|
|
||||||
import static mindustry.Vars.*;
|
import static mindustry.Vars.*;
|
||||||
@@ -33,6 +35,9 @@ public interface Payload{
|
|||||||
/** writes the payload for saving. */
|
/** writes the payload for saving. */
|
||||||
void write(Writes write);
|
void write(Writes write);
|
||||||
|
|
||||||
|
/** @return icon describing the contents. */
|
||||||
|
TextureRegion icon(Cicon icon);
|
||||||
|
|
||||||
static void write(@Nullable Payload payload, Writes write){
|
static void write(@Nullable Payload payload, Writes write){
|
||||||
if(payload == null){
|
if(payload == null){
|
||||||
write.bool(false);
|
write.bool(false);
|
||||||
|
|||||||
@@ -89,4 +89,9 @@ public class UnitPayload implements Payload{
|
|||||||
deactiveTime = Math.max(deactiveTime - Time.delta/deactiveDuration, 0f);
|
deactiveTime = Math.max(deactiveTime - Time.delta/deactiveDuration, 0f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TextureRegion icon(Cicon icon){
|
||||||
|
return unit.type.icon(icon);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,8 +45,8 @@ public class Battery extends PowerDistributor{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockStatus status(){
|
public BlockStatus status(){
|
||||||
if(Mathf.equal(power.status, 0f, 0.01f)) return BlockStatus.noInput;
|
if(Mathf.equal(power.status, 0f, 0.001f)) return BlockStatus.noInput;
|
||||||
if(Mathf.equal(power.status, 1f, 0.01f)) return BlockStatus.active;
|
if(Mathf.equal(power.status, 1f, 0.001f)) return BlockStatus.active;
|
||||||
return BlockStatus.noOutput;
|
return BlockStatus.noOutput;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user