setting, improve smth..

This commit is contained in:
sharlotte
2021-08-15 22:31:49 +09:00
parent 9b0f762bd2
commit 7704ce537a
4 changed files with 41 additions and 24 deletions

View File

@@ -9,7 +9,6 @@ shar-stat.powerUsage = Power: {0} / {1}
shar-stat.ammos = Ammo: {0} / {1} shar-stat.ammos = Ammo: {0} / {1}
shar-stat.commandUnits = Commands: {0} / {1} shar-stat.commandUnits = Commands: {0} / {1}
shar-stat.reload = Reload: {0}% shar-stat.reload = Reload: {0}%
shar-stat.charge = Charge: {0}%
shar-stat.itemAmmo = Ammo: {0} / {1} shar-stat.itemAmmo = Ammo: {0} / {1}
shar-stat.liquidAmmo = Liquid: {0} / {1} shar-stat.liquidAmmo = Liquid: {0} / {1}
shar-stat.power = Power: {0} / {1} shar-stat.power = Power: {0} / {1}
@@ -21,6 +20,9 @@ shar-stat.waveStatus = [lightgray]Status:[]
shar-stat.waveItem = [lightgray]Item:[] shar-stat.waveItem = [lightgray]Item:[]
#Settings #Settings
setting.spathfinder.name = Endable Pathfinder overdrawing
setting.spathfinder.description = shift + q: on/off\n\nshift + 1: Dispslay ground unit path\n\nshift + 2: Dispslay leg unit path\n\nshift + 3: Dispslay naval unit path
setting.wavesetting.name = Wave UI Setting setting.wavesetting.name = Wave UI Setting
setting.opacitysetting.name = Opacity Setting setting.opacitysetting.name = Opacity Setting

View File

@@ -9,7 +9,6 @@ shar-stat.powerUsage = 전력: {0} / {1}
shar-stat.ammos = 탄약: {0} / {1} shar-stat.ammos = 탄약: {0} / {1}
shar-stat.commandUnits = 지휘 유닛: {0} / {1} shar-stat.commandUnits = 지휘 유닛: {0} / {1}
shar-stat.reload = 재장전: {0}% shar-stat.reload = 재장전: {0}%
shar-stat.charge = 충전: {0}%
shar-stat.itemAmmo = 탄약 : {0} / {1} shar-stat.itemAmmo = 탄약 : {0} / {1}
shar-stat.liquidAmmo = 액체: {0} / {1} shar-stat.liquidAmmo = 액체: {0} / {1}
shar-stat.power = 전력: {0} / {1} shar-stat.power = 전력: {0} / {1}
@@ -21,6 +20,9 @@ shar-stat.waveStatus = [lightgray]상태이상:[]
shar-stat.waveItem = [lightgray]아이템:[] shar-stat.waveItem = [lightgray]아이템:[]
# Settings # Settings
setting.spathfinder.name = 길찾기 활성화
setting.spathfinder.description = shift + q: on/off\n\nshift + 1: 지상유닛 경로 표시\n\nshift + 2: 다리유닛 경로 표시\n\nshift + 3: 해상유닛 경로 표시
setting.wavesetting.name = 단계 UI 설정 setting.wavesetting.name = 단계 UI 설정
setting.opacitysetting.name = 투명도 설정 setting.opacitysetting.name = 투명도 설정

View File

@@ -4,10 +4,9 @@ import UnitInfo.ui.*;
import arc.*; import arc.*;
import arc.graphics.*; import arc.graphics.*;
import arc.graphics.g2d.*; import arc.graphics.g2d.*;
import arc.input.KeyCode;
import arc.math.*; import arc.math.*;
import arc.scene.ui.layout.*; import arc.scene.ui.layout.*;
import arc.struct.IntSeq;
import arc.struct.Seq;
import arc.util.*; import arc.util.*;
import mindustry.*; import mindustry.*;
import mindustry.ai.Pathfinder; import mindustry.ai.Pathfinder;
@@ -24,9 +23,6 @@ import mindustry.ui.*;
import mindustry.world.*; import mindustry.world.*;
import mindustry.world.blocks.defense.turrets.*; import mindustry.world.blocks.defense.turrets.*;
import mindustry.world.blocks.storage.CoreBlock; import mindustry.world.blocks.storage.CoreBlock;
import mindustry.world.meta.BlockFlag;
import java.lang.reflect.Field;
import java.util.Objects; import java.util.Objects;
import static UnitInfo.SVars.*; import static UnitInfo.SVars.*;
@@ -35,10 +31,11 @@ import static mindustry.Vars.*;
public class Main extends Mod { public class Main extends Mod {
int otherCores; int otherCores;
boolean groundValid = false, legValid = false, navalValid = false;
public Tile getNextTile(Tile tile){ public Tile getNextTile(Tile tile, int finder){
Team team = state.rules.waveTeam; Team team = state.rules.waveTeam;
Pathfinder.Flowfield field = pathfinder.getField(team, Pathfinder.costGround, Pathfinder.fieldCore); Pathfinder.Flowfield field = pathfinder.getField(team, finder, Pathfinder.fieldCore);
Tile tile1 = pathfinder.getTargetTile(tile, field); Tile tile1 = pathfinder.getTargetTile(tile, field);
pathTiles.add(tile1); pathTiles.add(tile1);
if(otherCores != Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != team) if(otherCores != Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != team)
@@ -46,7 +43,7 @@ public class Main extends Mod {
tile1.build instanceof CoreBlock.CoreBuild || tile1.build instanceof CoreBlock.CoreBuild ||
!Groups.build.contains(b -> b instanceof CoreBlock.CoreBuild && b.team != team)) //so many ififififififif. !Groups.build.contains(b -> b instanceof CoreBlock.CoreBuild && b.team != team)) //so many ififififififif.
return tile1; return tile1;
return getNextTile(tile1); return getNextTile(tile1, finder);
} }
@Override @Override
@@ -76,20 +73,35 @@ public class Main extends Mod {
}); });
Events.run(Trigger.draw, () -> { Events.run(Trigger.draw, () -> {
spawner.getSpawns().each(t -> { if((input.keyDown(KeyCode.shiftRight) || input.keyDown(KeyCode.shiftLeft))) {
Team enemyTeam = state.rules.waveTeam; if(input.keyTap(KeyCode.q)) settings.put("spathfinder", !settings.getBool("spathfinder"));
otherCores = Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != enemyTeam); if(input.keyTap(KeyCode.num1)) groundValid = !groundValid;
getNextTile(t); if(input.keyTap(KeyCode.num2)) legValid = !legValid;
pathTiles.filter(Objects::nonNull); if(input.keyTap(KeyCode.num3)) navalValid = !navalValid;
for(int i = 1; i < pathTiles.size; i++){ }
if(i + 1 >= pathTiles.size) continue; //prevent IndexOutException
Tile tile1 = pathTiles.get(i); if(settings.getBool("spathfinder") || (input.keyDown(KeyCode.shiftRight) || input.keyDown(KeyCode.shiftLeft)) && input.keyTap(KeyCode.q)) {
Tile tile2 = pathTiles.get(i + 1); spawner.getSpawns().each(t -> {
Lines.stroke(1, enemyTeam.color); Team enemyTeam = state.rules.waveTeam;
Lines.line(tile1.worldx(), tile1.worldy(), tile2.worldx(), tile2.worldy()); for (int p = 0; p < 3; p++) {
} if(p == 0 && !groundValid) continue;
pathTiles.clear(); if(p == 1 && !legValid) continue;
}); if(p == 2 && !navalValid) continue;
otherCores = Groups.build.count(b -> b instanceof CoreBlock.CoreBuild && b.team != enemyTeam);
getNextTile(t, p);
pathTiles.filter(Objects::nonNull);
for (int i = 1; i < pathTiles.size; i++) {
if (i + 1 >= pathTiles.size) continue; //prevent IndexOutException
Tile tile1 = pathTiles.get(i);
Tile tile2 = pathTiles.get(i + 1);
Lines.stroke(1, enemyTeam.color);
Lines.line(tile1.worldx(), tile1.worldy(), tile2.worldx(), tile2.worldy());
}
pathTiles.clear();
}
});
}
if(settings.getBool("blockstatus")) Groups.build.each(build -> { if(settings.getBool("blockstatus")) Groups.build.each(build -> {
if(Vars.player != null && Vars.player.team() == build.team) return; if(Vars.player != null && Vars.player.team() == build.team) return;

View File

@@ -289,6 +289,7 @@ public class SettingS {
addGraphicDialogSetting("opacitysetting", opacitySeq, opacityTable); addGraphicDialogSetting("opacitysetting", opacitySeq, opacityTable);
*/ */
addGraphicCheckSetting("spathfinder", true);
addGraphicSlideSetting("infoUiScale", 100, 25, 300, 25, s -> s + "%"); addGraphicSlideSetting("infoUiScale", 100, 25, 300, 25, s -> s + "%");
addGraphicSlideSetting("coreItemCheckRate", 60, 6, 180, 6, s -> Strings.fixed(s/60f,1) + "sec"); addGraphicSlideSetting("coreItemCheckRate", 60, 6, 180, 6, s -> Strings.fixed(s/60f,1) + "sec");
addGraphicCheckSetting("pastwave", false); addGraphicCheckSetting("pastwave", false);