From 816e20151a2d17cf0c4e88b956309f2e18b7ed06 Mon Sep 17 00:00:00 2001 From: sharlotte Date: Fri, 10 Sep 2021 23:01:06 +0900 Subject: [PATCH] h --- assets/bundles/bundle.properties | 8 +++++++- assets/bundles/bundle_ko.properties | 8 +++++++- src/UnitInfo/core/OverDrawer.java | 15 +++++++++++---- src/UnitInfo/core/SettingS.java | 5 ++++- 4 files changed, 29 insertions(+), 7 deletions(-) diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index aa67e41..14becae 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -56,8 +56,14 @@ setting.uiopacity.description = set opacity of ui background. setting.softRangeOpacity.name = Soft Range Opacity 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.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.description = create a rainbow effect on the mouse cursor. setting.unithealthui.name = Display Unit Bar diff --git a/assets/bundles/bundle_ko.properties b/assets/bundles/bundle_ko.properties index 9f49c9a..89bddce 100644 --- a/assets/bundles/bundle_ko.properties +++ b/assets/bundles/bundle_ko.properties @@ -55,8 +55,14 @@ setting.uiopacity.description = UI 배경 투명도를 조절합니다. setting.softRangeOpacity.name = 부드러운 사거리 투명도 setting.softRangeOpacity.description = 부드러운 사거리 투명도를 조절합니다. +setting.pathlinelimit.name = 단계 경로선 제한 +setting.pathlinelimit.description = 다수의 선들은 기기 부하를 크게 일으킵니다.\n기기 환경에 맞추어 조절해야 합니다. 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.description = 마우스 커서에 무지개 효과를 생성합니다. setting.unithealthui.name = 유닛 바 표시 diff --git a/src/UnitInfo/core/OverDrawer.java b/src/UnitInfo/core/OverDrawer.java index fe395dd..03c7447 100644 --- a/src/UnitInfo/core/OverDrawer.java +++ b/src/UnitInfo/core/OverDrawer.java @@ -16,7 +16,6 @@ import mindustry.ai.types.*; import mindustry.content.Fx; import mindustry.core.Renderer; import mindustry.entities.*; -import mindustry.entities.bullet.BulletType; import mindustry.entities.units.AIController; import mindustry.entities.units.UnitCommand; import mindustry.entities.units.UnitController; @@ -62,13 +61,16 @@ public class OverDrawer { float sin = Mathf.absin(Time.time, 6f, 1f); Draw.z(Layer.overlayUI + 1); + int[] paths = {0}; int[] units = {0}; + int[] logics = {0}; if(pathLine || unitLine || logicLine) Groups.unit.each(u -> { UnitController c = u.controller(); UnitCommand com = u.team.data().command; 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.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))); @@ -77,7 +79,7 @@ public class OverDrawer { return; } - if(++units[0] > settings.getInt("unitlinelimit") || //prevent lag + if(units[0] > settings.getInt("unitlinelimit") || //prevent lag !unitLine || //disabled u.type.flying || //not flying c instanceof MinerAI || //not mono @@ -87,7 +89,7 @@ public class OverDrawer { c instanceof FormationAI || //not commanded unit by player c instanceof FlyingAI || //not flying anyway com == UnitCommand.idle) return; //not idle - + units[0]++; otherCores = Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != u.team); getNextTile(u.tileOn(), u.pathType(), u.team, com.ordinal()); pathTiles.filter(Objects::nonNull); @@ -102,6 +104,8 @@ public class OverDrawer { }); if(pathLine) spawner.getSpawns().each(t -> { + if(paths[0] > settings.getInt("pathlinelimit")) return; + paths[0]++; Team enemyTeam = state.rules.waveTeam; for(int p = 0; p < 3; p++) { 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(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.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)); }); diff --git a/src/UnitInfo/core/SettingS.java b/src/UnitInfo/core/SettingS.java index cd88ab3..6c8faea 100644 --- a/src/UnitInfo/core/SettingS.java +++ b/src/UnitInfo/core/SettingS.java @@ -129,7 +129,10 @@ public class SettingS { addGraphicSlideSetting("softRangeOpacity", 10, 0, 25, 1, s -> s + "%", opacitySeq); Seq 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("unithealthui", true, drawSeq); addGraphicCheckSetting("linkedMass", true, drawSeq);