diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index 44a4692..b84b379 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -31,8 +31,6 @@ setting.selectopacity.description = Sets the opacity of selection arrow. setting.baropacity.name = Health Bar Opacity setting.baropacity.description = Sets the opacity of the unit health bar. -setting.blockStatus.name = enable Block Status -setting.blockStatus.description = display enemy block status too setting.blockBar.name = enable Block Bar setting.blockBar.description = display block health bar diff --git a/assets/bundles/bundle_ko.properties b/assets/bundles/bundle_ko.properties index 642a63b..9ba54f9 100644 --- a/assets/bundles/bundle_ko.properties +++ b/assets/bundles/bundle_ko.properties @@ -31,8 +31,6 @@ setting.selectopacity.description = 선택 화살표의 투명도를 조절합 setting.baropacity.name = 유닛 바 투명도 setting.baropacity.description = 유닛 바의 투명도를 조절합니다. -setting.blockStatus.name = 블록 상태 표시 -setting.blockStatus.description = 적 블록 상태를 표시합니다. setting.blockBar.name = 블록 바 표시 setting.blockBar.description = 블록 체력바를 표시합니다. diff --git a/src/informatis/core/Main.java b/src/informatis/core/Main.java index 55b9a17..8896a06 100644 --- a/src/informatis/core/Main.java +++ b/src/informatis/core/Main.java @@ -3,12 +3,11 @@ package informatis.core; import arc.input.KeyCode; import informatis.SVars; import informatis.ui.*; -import informatis.ui.draws.OverDraws; +import informatis.draws.OverDraws; import informatis.ui.fragments.FragmentManager; import informatis.ui.windows.*; import arc.*; import mindustry.*; -import mindustry.ai.Pathfinder; import mindustry.game.EventType.*; import mindustry.mod.*; diff --git a/src/informatis/core/OverDrawer.java b/src/informatis/core/OverDrawer.java index 339a9f4..387c936 100644 --- a/src/informatis/core/OverDrawer.java +++ b/src/informatis/core/OverDrawer.java @@ -1,6 +1,6 @@ package informatis.core; -import informatis.ui.draws.*; +import informatis.draws.*; import arc.*; import arc.graphics.*; import arc.graphics.g2d.*; diff --git a/src/informatis/draws/BlockDraw.java b/src/informatis/draws/BlockDraw.java new file mode 100644 index 0000000..a87a085 --- /dev/null +++ b/src/informatis/draws/BlockDraw.java @@ -0,0 +1,84 @@ +package informatis.draws; + +import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; +import arc.scene.style.TextureRegionDrawable; +import mindustry.Vars; +import mindustry.gen.Building; +import mindustry.gen.Groups; +import mindustry.graphics.Pal; +import mindustry.world.Tile; +import mindustry.world.blocks.ConstructBlock; +import mindustry.world.blocks.defense.turrets.Turret; +import mindustry.world.blocks.units.Reconstructor; +import mindustry.world.blocks.units.UnitFactory; + +import static informatis.SUtils.*; +import static arc.Core.settings; + +public class BlockDraw extends OverDraw { + BlockDraw(String name, TextureRegionDrawable icon) { + super(name, icon); + registerOption("blockBar"); + } + + @Override + public void draw() { + super.draw(); + + if(!enabled) return; + Groups.build.each(b -> { + if(!isInCamera(b.x, b.y, b.block.size/2f)) return; + if(settings.getBool("blockstatus") && b.team != Vars.player.team() && b.block.consumers.length > 0) { + float multiplier = b.block.size > 1 ? 1.0F : 0.64F; + float brcx = b.x + (float)(b.block.size * 8) / 2.0F - 8.0F * multiplier / 2.0F; + float brcy = b.y - (float)(b.block.size * 8) / 2.0F + 8.0F * multiplier / 2.0F; + Draw.z(71.0F); + Draw.color(Pal.gray); + Fill.square(brcx, brcy, 2.5F * multiplier, 45.0F); + Draw.color(b.status().color); + Fill.square(brcx, brcy, 1.5F * multiplier, 45.0F); + Draw.color(); + } + + }); + for (Tile tile : Vars.world.tiles) { + if(!isInCamera(tile.worldx(), tile.worldy(), 8) || tile.build == null) continue; + + Building b = tile.build; + + if(settings.getBool("blockBar")) { + drawBar(b, 0, -(b.block.size * 4 + 2), b.healthf(), Pal.health); + + if(b instanceof Turret.TurretBuild turretBuild) + drawBar(b, 0, b.block.size * 4 + 2, turretBuild.reloadCounter / ((Turret) b.block).reload, Pal.ammo); + + if(b instanceof ConstructBlock.ConstructBuild constructBuild) + drawBar(b, 0, b.block.size * 4 + 2, constructBuild.progress(), b.team.color); + if(b instanceof Reconstructor.ReconstructorBuild reconstructorBuild) + drawBar(b, 0, b.block.size * 4 + 2, reconstructorBuild.fraction(), b.team.color); + if(b instanceof UnitFactory.UnitFactoryBuild factoryBuild) + drawBar(b, 0, b.block.size * 4 + 2, factoryBuild.fraction(), b.team.color); + } + } + } + + void drawBar(Building b, float offsetX, float offsetY, float progress, Color color) { + float bx = b.x + offsetX, by = b.y + offsetY; + float width = b.block.size * 7.5f, height = 2; + Draw.color(Pal.gray); + Fill.quad( + bx - width/2, by + height/2, + bx - width/2, by - height/2, + bx + width/2, by - height/2, + bx + width/2, by + height/2); + Draw.color(color); + width = b.block.size * 7.5f - 0.5f; height = 2 - 0.5f; + Fill.quad( + bx - width/2, by + height/2, + bx - width/2, by - height/2, + bx - width/2 + width * progress, by - height/2, + bx - width/2 + width * progress, by + height/2); + } +} diff --git a/src/informatis/ui/draws/LinkDraw.java b/src/informatis/draws/LinkDraw.java similarity index 99% rename from src/informatis/ui/draws/LinkDraw.java rename to src/informatis/draws/LinkDraw.java index 6604693..cb71283 100644 --- a/src/informatis/ui/draws/LinkDraw.java +++ b/src/informatis/draws/LinkDraw.java @@ -1,4 +1,4 @@ -package informatis.ui.draws; +package informatis.draws; import arc.graphics.Color; import arc.graphics.g2d.Draw; diff --git a/src/informatis/ui/draws/OverDraw.java b/src/informatis/draws/OverDraw.java similarity index 98% rename from src/informatis/ui/draws/OverDraw.java rename to src/informatis/draws/OverDraw.java index d55a78a..5c9e9eb 100644 --- a/src/informatis/ui/draws/OverDraw.java +++ b/src/informatis/draws/OverDraw.java @@ -1,4 +1,4 @@ -package informatis.ui.draws; +package informatis.draws; import arc.scene.Element; import arc.scene.style.TextureRegionDrawable; diff --git a/src/informatis/ui/draws/OverDraws.java b/src/informatis/draws/OverDraws.java similarity index 94% rename from src/informatis/ui/draws/OverDraws.java rename to src/informatis/draws/OverDraws.java index b81ba6d..637bca4 100644 --- a/src/informatis/ui/draws/OverDraws.java +++ b/src/informatis/draws/OverDraws.java @@ -1,4 +1,4 @@ -package informatis.ui.draws; +package informatis.draws; import mindustry.gen.Icon; diff --git a/src/informatis/ui/draws/RangeDraw.java b/src/informatis/draws/RangeDraw.java similarity index 97% rename from src/informatis/ui/draws/RangeDraw.java rename to src/informatis/draws/RangeDraw.java index d5bc9f7..5f8df50 100644 --- a/src/informatis/ui/draws/RangeDraw.java +++ b/src/informatis/draws/RangeDraw.java @@ -1,15 +1,12 @@ -package informatis.ui.draws; +package informatis.draws; import arc.graphics.Color; import arc.graphics.g2d.*; import arc.graphics.gl.FrameBuffer; import arc.scene.style.TextureRegionDrawable; -import mindustry.Vars; import mindustry.game.Team; import mindustry.gen.*; import mindustry.graphics.Drawf; -import mindustry.graphics.Pal; -import mindustry.type.Weapon; import mindustry.world.blocks.defense.turrets.*; import static informatis.SVars.turretRange; diff --git a/src/informatis/ui/draws/UnitDraw.java b/src/informatis/draws/UnitDraw.java similarity index 98% rename from src/informatis/ui/draws/UnitDraw.java rename to src/informatis/draws/UnitDraw.java index 351871d..125626f 100644 --- a/src/informatis/ui/draws/UnitDraw.java +++ b/src/informatis/draws/UnitDraw.java @@ -1,4 +1,4 @@ -package informatis.ui.draws; +package informatis.draws; import informatis.SVars; import informatis.core.Pathfinder; @@ -9,10 +9,8 @@ import arc.scene.style.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; -import mindustry.Vars; import mindustry.ai.types.*; import mindustry.entities.units.*; -import mindustry.game.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.logic.*; diff --git a/src/informatis/ui/draws/UtilDraw.java b/src/informatis/draws/UtilDraw.java similarity index 99% rename from src/informatis/ui/draws/UtilDraw.java rename to src/informatis/draws/UtilDraw.java index ca71411..53a5cbc 100644 --- a/src/informatis/ui/draws/UtilDraw.java +++ b/src/informatis/draws/UtilDraw.java @@ -1,4 +1,4 @@ -package informatis.ui.draws; +package informatis.draws; import arc.input.KeyCode; import arc.math.Angles; diff --git a/src/informatis/ui/draws/BlockDraw.java b/src/informatis/ui/draws/BlockDraw.java deleted file mode 100644 index 1c7010d..0000000 --- a/src/informatis/ui/draws/BlockDraw.java +++ /dev/null @@ -1,69 +0,0 @@ -package informatis.ui.draws; - -import arc.graphics.g2d.Draw; -import arc.graphics.g2d.Fill; -import arc.scene.style.TextureRegionDrawable; -import mindustry.Vars; -import mindustry.gen.Building; -import mindustry.gen.Groups; -import mindustry.graphics.Pal; -import mindustry.world.Build; -import mindustry.world.Tile; - -import java.util.Iterator; - -import static informatis.SUtils.*; -import static arc.Core.settings; - -public class BlockDraw extends OverDraw { - BlockDraw(String name, TextureRegionDrawable icon) { - super(name, icon); - registerOption("blockStatus"); - registerOption("blockBar"); - } - - @Override - public void draw() { - super.draw(); - - if(!enabled) return; - Groups.build.each(b -> { - if(!isInCamera(b.x, b.y, b.block.size/2f)) return; - if(settings.getBool("blockStatus") && b.block.consumers.length > 0) { - float multiplier = b.block.size > 1 ? 1.0F : 0.64F; - float brcx = b.x + (float)(b.block.size * 8) / 2.0F - 8.0F * multiplier / 2.0F; - float brcy = b.y - (float)(b.block.size * 8) / 2.0F + 8.0F * multiplier / 2.0F; - Draw.z(71.0F); - Draw.color(Pal.gray); - Fill.square(brcx, brcy, 2.5F * multiplier, 45.0F); - Draw.color(b.status().color); - Fill.square(brcx, brcy, 1.5F * multiplier, 45.0F); - Draw.color(); - } - - }); - for (Tile tile : Vars.world.tiles) { - if(!isInCamera(tile.worldx(), tile.worldy(), 8) || tile.build == null) continue; - - Building b = tile.build; - - if(settings.getBool("blockBar")) { - float bx = b.x, by = b.y - b.block.size * 4 - 2; - float width = b.block.size * 7.5f, height = 2; - Draw.color(Pal.gray); - Fill.quad( - bx - width/2, by + height/2, - bx - width/2, by - height/2, - bx + width/2, by - height/2, - bx + width/2, by + height/2); - Draw.color(Pal.health); - width = b.block.size * 7.5f - 0.5f; height = 2 - 0.5f; - Fill.quad( - bx - width/2, by + height/2, - bx - width/2, by - height/2, - bx - width/2 + width * b.healthf(), by - height/2, - bx - width/2 + width * b.healthf(), by + height/2); - } - } - } -} diff --git a/src/informatis/ui/windows/ToolWindow.java b/src/informatis/ui/windows/ToolWindow.java index c408d69..6f10dd7 100644 --- a/src/informatis/ui/windows/ToolWindow.java +++ b/src/informatis/ui/windows/ToolWindow.java @@ -1,7 +1,7 @@ package informatis.ui.windows; import informatis.ui.*; -import informatis.ui.draws.*; +import informatis.draws.*; import arc.math.geom.*; import arc.scene.ui.*; import arc.scene.ui.layout.*;