This commit is contained in:
sharlotte
2021-08-11 12:13:33 +09:00
parent 6a0f817929
commit 6bd04b8d11
4 changed files with 27 additions and 15 deletions

View File

@@ -1,12 +1,12 @@
package UnitInfo; package UnitInfo;
import arc.graphics.g2d.NinePatch; import arc.graphics.g2d.*;
import arc.graphics.g2d.TextureAtlas; import arc.scene.style.*;
import arc.scene.style.Drawable;
import arc.scene.style.ScaledNinePatchDrawable;
import arc.util.Strings; import arc.util.Strings;
import mindustry.core.UI; import mindustry.core.UI;
import java.lang.reflect.*;
public class SUtils { public class SUtils {
public static Drawable getDrawable(TextureAtlas.AtlasRegion region, int left, int right, int top, int bottom){ public static Drawable getDrawable(TextureAtlas.AtlasRegion region, int left, int right, int top, int bottom){
int[] splits = {left, right, top, bottom}; int[] splits = {left, right, top, bottom};
@@ -22,4 +22,14 @@ public class SUtils {
if(String.valueOf(number).split("[.]")[1].matches("0")) return String.valueOf(number).split("[.]")[0]; if(String.valueOf(number).split("[.]")[1].matches("0")) return String.valueOf(number).split("[.]")[0];
return Strings.fixed(number, 1); return Strings.fixed(number, 1);
} }
public static Object getFinalStatic(Field field) throws Exception {
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
return field.get(null);
}
} }

View File

@@ -1,7 +1,9 @@
package UnitInfo.core; package UnitInfo.core;
import UnitInfo.SUtils;
import UnitInfo.ui.*; import UnitInfo.ui.*;
import arc.*; import arc.*;
import arc.func.Cons;
import arc.graphics.*; import arc.graphics.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.input.*; import arc.input.*;

View File

@@ -12,6 +12,7 @@ import static UnitInfo.SVars.modRoot;
public class PlayerParser{ public class PlayerParser{
ObjectMap<Player, Seq<String>> chats = new ObjectMap<>(); ObjectMap<Player, Seq<String>> chats = new ObjectMap<>();
public void setEvent() { public void setEvent() {
Events.on(EventType.PlayerChatEvent.class, e -> { Events.on(EventType.PlayerChatEvent.class, e -> {
if(chats.containsKey(e.player)) chats.get(e.player).add(e.message); if(chats.containsKey(e.player)) chats.get(e.player).add(e.message);
@@ -56,6 +57,7 @@ public class PlayerParser{
}); });
modRoot.child("players.hjson").writeString(data.toString(Stringify.HJSON)); modRoot.child("players.hjson").writeString(data.toString(Stringify.HJSON));
} }
public static class PlayerInfo{ public static class PlayerInfo{
Player player; Player player;
Seq<String> names = new Seq<>(); Seq<String> names = new Seq<>();

View File

@@ -11,6 +11,7 @@ import arc.scene.*;
import arc.scene.style.*; import arc.scene.style.*;
import arc.scene.ui.layout.*; import arc.scene.ui.layout.*;
import arc.util.Align; import arc.util.Align;
import arc.util.Tmp;
import mindustry.graphics.*; import mindustry.graphics.*;
import mindustry.ui.*; import mindustry.ui.*;
@@ -111,27 +112,24 @@ public class SBar extends Element{
Draw.colorl(0.1f); Draw.colorl(0.1f);
bar.draw(x, y, width, height); bar.draw(x, y, width, height);
Draw.color(color.cpy().mul(Pal.lightishGray), blinkColor, blink); Draw.color(Tmp.c1.set(color).mul(Pal.lightishGray), blinkColor, blink);
float topWidth = width * value; float topWidth = width * value;
if(topWidth > spriteWidth){ if(topWidth > spriteWidth){
top.draw(x, y, topWidth, height); top.draw(x, y, topWidth, height);
}else{ } else if(ScissorStack.push(scissor.set(x, y, topWidth, height))){
if(ScissorStack.push(scissor.set(x, y, topWidth, height))){ top.draw(x, y, spriteWidth, height);
top.draw(x, y, spriteWidth, height); ScissorStack.pop();
ScissorStack.pop();
}
} }
Draw.color(color, blinkColor, blink); Draw.color(color, blinkColor, blink);
float topWidthReal = width * (Math.min(value, computed)); float topWidthReal = width * (Math.min(value, computed));
if(topWidthReal > spriteWidth){ if(topWidthReal > spriteWidth){
top.draw(x, y, topWidthReal, height); top.draw(x, y, topWidthReal, height);
}else{ } else if(ScissorStack.push(scissor.set(x, y, topWidthReal, height))){
if(ScissorStack.push(scissor.set(x, y, topWidthReal, height))){ top.draw(x, y, spriteWidth, height);
top.draw(x, y, spriteWidth, height); ScissorStack.pop();
ScissorStack.pop();
}
} }
Fonts.outline.draw(name, x + width / 2f, y + height * 0.75f, Color.white, Scl.scl(modUiScale < 1 ? modUiScale : 1), false, Align.center); Fonts.outline.draw(name, x + width / 2f, y + height * 0.75f, Color.white, Scl.scl(modUiScale < 1 ? modUiScale : 1), false, Align.center);
} }
} }