This commit is contained in:
sharlotte
2021-09-10 23:01:06 +09:00
parent 8db5b8a46d
commit 816e20151a
4 changed files with 29 additions and 7 deletions

View File

@@ -56,8 +56,14 @@ setting.uiopacity.description = set opacity of ui background.
setting.softRangeOpacity.name = Soft Range Opacity setting.softRangeOpacity.name = Soft Range Opacity
setting.softRangeOpacity.description = set opacity of soft range. setting.softRangeOpacity.description = set opacity of soft range.
setting.pathlinelimit.name = PathLines limit
setting.pathlinelimit.description = many lines may cause significant device lag.\nIt must be adjusted to the device environment.
setting.unitlinelimit.name = UnitLines limit setting.unitlinelimit.name = UnitLines limit
setting.unitlinelimit.description = many unit path lines cause significant device lag.\nIt must be adjusted to the device environment. setting.unitlinelimit.description = many lines may cause significant device lag.\nIt must be adjusted to the device environment.
setting.logiclinelimit.name = LogicLines limit
setting.logiclinelimit.description = many lines may cause significant device lag.\nIt must be adjusted to the device environment.
setting.spawnarrowlimit.name = SpawnArrows limit
setting.spawnarrowlimit.description = many arrows may cause significant device lag.\nIt must be adjusted to the device environment.
setting.gaycursor.name = Enable Mouse Trail Effect setting.gaycursor.name = Enable Mouse Trail Effect
setting.gaycursor.description = create a rainbow effect on the mouse cursor. setting.gaycursor.description = create a rainbow effect on the mouse cursor.
setting.unithealthui.name = Display Unit Bar setting.unithealthui.name = Display Unit Bar

View File

@@ -55,8 +55,14 @@ setting.uiopacity.description = UI 배경 투명도를 조절합니다.
setting.softRangeOpacity.name = 부드러운 사거리 투명도 setting.softRangeOpacity.name = 부드러운 사거리 투명도
setting.softRangeOpacity.description = 부드러운 사거리 투명도를 조절합니다. setting.softRangeOpacity.description = 부드러운 사거리 투명도를 조절합니다.
setting.pathlinelimit.name = 단계 경로선 제한
setting.pathlinelimit.description = 다수의 선들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다.
setting.unitlinelimit.name = 유닛 경로선 제한 setting.unitlinelimit.name = 유닛 경로선 제한
setting.unitlinelimit.description = 다수의 유닛 경로선은 기기 부하를 크게 일으킵니다. 기기 환경에 맞추어 조절해야 합니다. setting.unitlinelimit.description = 다수의 선은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다.
setting.logiclinelimit.name = 로직선 제한
setting.logiclinelimit.description = 다수의 선들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다.
setting.spawnarrowlimit.name = 단계 화살표 제한
setting.spawnarrowlimit.description = 다수의 화살표들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다.
setting.gaycursor.name = 마우스 꼬리효과 setting.gaycursor.name = 마우스 꼬리효과
setting.gaycursor.description = 마우스 커서에 무지개 효과를 생성합니다. setting.gaycursor.description = 마우스 커서에 무지개 효과를 생성합니다.
setting.unithealthui.name = 유닛 바 표시 setting.unithealthui.name = 유닛 바 표시

View File

@@ -16,7 +16,6 @@ import mindustry.ai.types.*;
import mindustry.content.Fx; import mindustry.content.Fx;
import mindustry.core.Renderer; import mindustry.core.Renderer;
import mindustry.entities.*; import mindustry.entities.*;
import mindustry.entities.bullet.BulletType;
import mindustry.entities.units.AIController; import mindustry.entities.units.AIController;
import mindustry.entities.units.UnitCommand; import mindustry.entities.units.UnitCommand;
import mindustry.entities.units.UnitController; import mindustry.entities.units.UnitController;
@@ -62,13 +61,16 @@ public class OverDrawer {
float sin = Mathf.absin(Time.time, 6f, 1f); float sin = Mathf.absin(Time.time, 6f, 1f);
Draw.z(Layer.overlayUI + 1); Draw.z(Layer.overlayUI + 1);
int[] paths = {0};
int[] units = {0}; int[] units = {0};
int[] logics = {0};
if(pathLine || unitLine || logicLine) Groups.unit.each(u -> { if(pathLine || unitLine || logicLine) Groups.unit.each(u -> {
UnitController c = u.controller(); UnitController c = u.controller();
UnitCommand com = u.team.data().command; UnitCommand com = u.team.data().command;
if(c instanceof LogicAI ai){ if(c instanceof LogicAI ai){
if(logicLine && (ai.control == LUnitControl.approach || ai.control == LUnitControl.move)) { if(logics[0] <= settings.getInt("logiclinelimit") || (logicLine && (ai.control == LUnitControl.approach || ai.control == LUnitControl.move))) {
logics[0]++;
Lines.stroke(1, u.team.color); Lines.stroke(1, u.team.color);
Lines.line(u.x(), u.y(), ai.moveX, ai.moveY); Lines.line(u.x(), u.y(), ai.moveX, ai.moveY);
Lines.stroke(0.5f + Mathf.absin(6f, 0.5f), Tmp.c1.set(Pal.logicOperations).lerp(Pal.sap, Mathf.absin(6f, 0.5f))); Lines.stroke(0.5f + Mathf.absin(6f, 0.5f), Tmp.c1.set(Pal.logicOperations).lerp(Pal.sap, Mathf.absin(6f, 0.5f)));
@@ -77,7 +79,7 @@ public class OverDrawer {
return; return;
} }
if(++units[0] > settings.getInt("unitlinelimit") || //prevent lag if(units[0] > settings.getInt("unitlinelimit") || //prevent lag
!unitLine || //disabled !unitLine || //disabled
u.type.flying || //not flying u.type.flying || //not flying
c instanceof MinerAI || //not mono c instanceof MinerAI || //not mono
@@ -87,7 +89,7 @@ public class OverDrawer {
c instanceof FormationAI || //not commanded unit by player c instanceof FormationAI || //not commanded unit by player
c instanceof FlyingAI || //not flying anyway c instanceof FlyingAI || //not flying anyway
com == UnitCommand.idle) return; //not idle com == UnitCommand.idle) return; //not idle
units[0]++;
otherCores = Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != u.team); otherCores = Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != u.team);
getNextTile(u.tileOn(), u.pathType(), u.team, com.ordinal()); getNextTile(u.tileOn(), u.pathType(), u.team, com.ordinal());
pathTiles.filter(Objects::nonNull); pathTiles.filter(Objects::nonNull);
@@ -102,6 +104,8 @@ public class OverDrawer {
}); });
if(pathLine) spawner.getSpawns().each(t -> { if(pathLine) spawner.getSpawns().each(t -> {
if(paths[0] > settings.getInt("pathlinelimit")) return;
paths[0]++;
Team enemyTeam = state.rules.waveTeam; Team enemyTeam = state.rules.waveTeam;
for(int p = 0; p < 3; p++) { for(int p = 0; p < 3; p++) {
otherCores = Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != enemyTeam); otherCores = Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != enemyTeam);
@@ -119,7 +123,10 @@ public class OverDrawer {
} }
}); });
int[] arrows = {0};
if(settings.getBool("spawnerarrow")) spawner.getSpawns().each(t -> { if(settings.getBool("spawnerarrow")) spawner.getSpawns().each(t -> {
if(arrows[0] > settings.getInt("spawnarrowlimit")) return;
arrows[0]++;
Drawf.circles(camera.position.x, camera.position.y, (player.unit() != null && player.unit().hitSize > 4 * 8f ? player.unit().hitSize * 1.5f : 4 * 8f) + sin - 4f); Drawf.circles(camera.position.x, camera.position.y, (player.unit() != null && player.unit().hitSize > 4 * 8f ? player.unit().hitSize * 1.5f : 4 * 8f) + sin - 4f);
Drawf.arrow(camera.position.x, camera.position.y, t.x * 8f, t.y * 8f, (player.unit() != null && player.unit().hitSize > 4 * 8f ? player.unit().hitSize * 1.5f : 4 * 8f) + sin, (Math.min(200 * 8f, Mathf.dst(camera.position.x, camera.position.y, t.x * 8f, t.y * 8f)) / (200 * 8f)) * (5f + sin)); Drawf.arrow(camera.position.x, camera.position.y, t.x * 8f, t.y * 8f, (player.unit() != null && player.unit().hitSize > 4 * 8f ? player.unit().hitSize * 1.5f : 4 * 8f) + sin, (Math.min(200 * 8f, Mathf.dst(camera.position.x, camera.position.y, t.x * 8f, t.y * 8f)) / (200 * 8f)) * (5f + sin));
}); });

View File

@@ -129,7 +129,10 @@ public class SettingS {
addGraphicSlideSetting("softRangeOpacity", 10, 0, 25, 1, s -> s + "%", opacitySeq); addGraphicSlideSetting("softRangeOpacity", 10, 0, 25, 1, s -> s + "%", opacitySeq);
Seq<SharSetting> drawSeq = new Seq<>(); Seq<SharSetting> drawSeq = new Seq<>();
addGraphicTypeSetting("unitlinelimit", 0, 5000, 50, true, () -> true, s -> s + "units", drawSeq); addGraphicTypeSetting("pathlinelimit", 0, 5000, 50, true, () -> true, s -> s + "lines", drawSeq);
addGraphicTypeSetting("unitlinelimit", 0, 5000, 50, true, () -> true, s -> s + "lines", drawSeq);
addGraphicTypeSetting("logiclinelimit", 0, 5000, 50, true, () -> true, s -> s + "lines", drawSeq);
addGraphicTypeSetting("spawnarrowlimit", 0, 5000, 50, true, () -> true, s -> s + "arrows", drawSeq);
addGraphicCheckSetting("gaycursor", false, drawSeq); addGraphicCheckSetting("gaycursor", false, drawSeq);
addGraphicCheckSetting("unithealthui", true, drawSeq); addGraphicCheckSetting("unithealthui", true, drawSeq);
addGraphicCheckSetting("linkedMass", true, drawSeq); addGraphicCheckSetting("linkedMass", true, drawSeq);