Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions assets/bundles/bundle-mdtx.properties
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ settingV2.entityRender.payloadPreview.name = 载荷拾起预览
settingV2.gameUI.category = 游戏界面
settingV2.gameUI.spawnerWaveDisplay.name = 出生点波次信息显示
settingV2.gameUI.transportScan.name = 物流扫描模式
settingV2.gameUI.mouseInfo.name = 显示鼠标坐标与距离
settingV2.gameUI.menuFloatText.name = 首页浮动标语
settingV2.gameUI.announceRtsTake.name = 当其他人分走当前控制的单位时,消息提示
settingV2.gameUI.deadOverlay.name = 死亡时(观战)仍然显示界面 [orange]可能闪退
Expand Down
1 change: 1 addition & 0 deletions assets/bundles/bundle-mdtx_en.properties
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ settingV2.entityRender.payloadPreview.name = Payload Pickup Preview
settingV2.gameUI.category = Game UI
settingV2.gameUI.spawnerWaveDisplay.name = Spawn Point Wave Info Display
settingV2.gameUI.transportScan.name = Transport Scan Mode
settingV2.gameUI.mouseInfo.name = Display Mouse Info
settingV2.gameUI.menuFloatText.name = Home Floating Text
settingV2.gameUI.announceRtsTake.name = Notify When Controlled Unit Taken by Others
settingV2.gameUI.deadOverlay.name = Show UI While Dead/Spectating [orange]May Crash
Expand Down
30 changes: 26 additions & 4 deletions patches/client/0011-HR-RenderExt.patch
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ Date: Tue, 26 Mar 2024 19:22:00 +0800
Subject: [PATCH] HR: RenderExt

---
core/src/mindustry/core/Renderer.java | 3 ++-
core/src/mindustry/graphics/BlockRenderer.java | 3 ++-
core/src/mindustry/input/InputHandler.java | 5 +++++
3 files changed, 9 insertions(+), 2 deletions(-)
core/src/mindustry/core/Renderer.java | 3 ++-
core/src/mindustry/graphics/BlockRenderer.java | 3 ++-
core/src/mindustry/graphics/OverlayRenderer.java | 3 ++-
core/src/mindustry/input/InputHandler.java | 5 +++++
4 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/core/src/mindustry/core/Renderer.java b/core/src/mindustry/core/Renderer.java
index 389684d7bb658688334d062df2cd3d9d7685ecf9..f25585b53208318e2b09c227e94915bf291b941e 100644
Expand Down Expand Up @@ -51,6 +52,27 @@ index 71a14625763ba9069026e2f9e550eeb3e662cd15..6be6990e8bb84aeead0db7866ce58e87
Draw.reset();
Draw.z(Layer.block);

diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java
index 0795b6a38f43c33ae3fae877f1ae54dd79ea0949..9d1f4b1ebf944b4dac80b78954ff0719669fb1ed 100644
--- a/core/src/mindustry/graphics/OverlayRenderer.java
+++ b/core/src/mindustry/graphics/OverlayRenderer.java
@@ -17,6 +17,7 @@ import mindustry.gen.*;
import mindustry.input.*;
import mindustry.world.*;
import mindustry.world.blocks.storage.CoreBlock.*;
+import mindustryX.features.*;

import static mindustry.Vars.*;

@@ -217,7 +218,7 @@ public class OverlayRenderer{
Building build = world.buildWorld(vec.x, vec.y);

if(build != null && build.team == player.team()){
- build.drawSelect();
+ RenderExt.onDrawSelect(build);
if(!build.enabled && build.block.drawDisabled){
build.drawDisabled();
}
diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java
index 5bc3c64a44247b45c77020bd8ba4a2bfddbc8ea8..b4b3ce4c5e021f9100bf59400fe9ea137b2b31c7 100644
--- a/core/src/mindustry/input/InputHandler.java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Content-Transfer-Encoding: 8bit

---
core/src/mindustry/world/blocks/logic/LogicDisplay.java | 7 ++++++-
core/src/mindustry/world/blocks/production/Drill.java | 2 ++
2 files changed, 8 insertions(+), 1 deletion(-)
core/src/mindustry/world/blocks/production/Drill.java | 1 +
2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/core/src/mindustry/world/blocks/logic/LogicDisplay.java b/core/src/mindustry/world/blocks/logic/LogicDisplay.java
index 7f42ece8bcd770e96f97b59b972bf3e5efdab6fe..d204f8e8374bc52250261f435db760d4fe30b61a 100644
Expand Down Expand Up @@ -46,7 +46,7 @@ index 7f42ece8bcd770e96f97b59b972bf3e5efdab6fe..d204f8e8374bc52250261f435db760d4
}
});
diff --git a/core/src/mindustry/world/blocks/production/Drill.java b/core/src/mindustry/world/blocks/production/Drill.java
index cc123b120a6e8f92719bded067915749afbf19d5..55c523bc651db449f51b1864aff33103d9ee0d73 100644
index cc123b120a6e8f92719bded067915749afbf19d5..060fe7e067d6b60b59e40e9b140983010b5eaed7 100644
--- a/core/src/mindustry/world/blocks/production/Drill.java
+++ b/core/src/mindustry/world/blocks/production/Drill.java
@@ -21,6 +21,7 @@ import mindustry.world.*;
Expand All @@ -57,11 +57,3 @@ index cc123b120a6e8f92719bded067915749afbf19d5..55c523bc651db449f51b1864aff33103

import static mindustry.Vars.*;

@@ -260,6 +261,7 @@ public class Drill extends Block{

@Override
public void drawSelect(){
+ if(RenderExt.arcDrillMode) return;
drawItemSelection(dominantItem);
}

6 changes: 3 additions & 3 deletions patches/client/0026-FR-RenderExt-deadOverlay.patch
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ Subject: [PATCH] FR(RenderExt) deadOverlay
3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java
index 0795b6a38f43c33ae3fae877f1ae54dd79ea0949..2033e20b8e66a248530f64be11995341e917687e 100644
index 9d1f4b1ebf944b4dac80b78954ff0719669fb1ed..a40c3fbea2c69e39d417e2c01b1a6ba92ebb8a8c 100644
--- a/core/src/mindustry/graphics/OverlayRenderer.java
+++ b/core/src/mindustry/graphics/OverlayRenderer.java
@@ -79,7 +79,7 @@ public class OverlayRenderer{
@@ -80,7 +80,7 @@ public class OverlayRenderer{
input.drawOtherBuildPlans();
}

Expand All @@ -22,7 +22,7 @@ index 0795b6a38f43c33ae3fae877f1ae54dd79ea0949..2033e20b8e66a248530f64be11995341

if(player.isBuilder()){
input.drawBuildPlans();
@@ -156,10 +156,10 @@ public class OverlayRenderer{
@@ -157,10 +157,10 @@ public class OverlayRenderer{
tile.drawConfigure();
}

Expand Down
93 changes: 13 additions & 80 deletions patches/client/0057-FR-ARC-drawPlace-and-drawSelect.patch
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ Date: Sun, 18 Feb 2024 15:57:51 +0800
Subject: [PATCH] FR: ARC drawPlace and drawSelect

---
.../world/blocks/ConstructBlock.java | 42 ++++++++++++++++++-
.../world/blocks/defense/ForceProjector.java | 2 +
.../world/blocks/defense/MendProjector.java | 5 ++-
.../blocks/defense/OverdriveProjector.java | 5 +++
.../world/blocks/defense/turrets/Turret.java | 19 +++++++++
.../world/blocks/production/BeamDrill.java | 12 ++----
.../world/blocks/production/Drill.java | 23 ++++++----
.../world/blocks/ConstructBlock.java | 7 ++++--
.../world/blocks/defense/ForceProjector.java | 2 ++
.../world/blocks/defense/MendProjector.java | 5 +++-
.../blocks/defense/OverdriveProjector.java | 5 ++++
.../world/blocks/defense/turrets/Turret.java | 8 +++++++
.../world/blocks/production/BeamDrill.java | 12 ++++------
.../world/blocks/production/Drill.java | 23 +++++++++++++------
.../world/blocks/storage/CoreBlock.java | 1 +
8 files changed, 91 insertions(+), 18 deletions(-)
8 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/core/src/mindustry/world/blocks/ConstructBlock.java b/core/src/mindustry/world/blocks/ConstructBlock.java
index 711d6c971c9d4df19203d42449a95adf895c30bf..b93cf1e7b4309789953d91bb29e1f707d060a9d3 100644
index 711d6c971c9d4df19203d42449a95adf895c30bf..943e8626a1fab97f5047b1dd3953c7c69a6ae57e 100644
--- a/core/src/mindustry/world/blocks/ConstructBlock.java
+++ b/core/src/mindustry/world/blocks/ConstructBlock.java
@@ -3,14 +3,17 @@ package mindustry.world.blocks;
Expand All @@ -36,15 +36,7 @@ index 711d6c971c9d4df19203d42449a95adf895c30bf..b93cf1e7b4309789953d91bb29e1f707
import mindustry.entities.*;
import mindustry.entities.units.*;
import mindustry.game.EventType.*;
@@ -23,6 +26,7 @@ import mindustry.world.*;
import mindustry.world.blocks.environment.*;
import mindustry.world.blocks.storage.CoreBlock.*;
import mindustry.world.modules.*;
+import mindustryX.features.func.*;

import java.util.*;

@@ -132,7 +136,7 @@ public class ConstructBlock extends Block{
@@ -132,7 +135,7 @@ public class ConstructBlock extends Block{
static float calcPitch(boolean up){
if(Time.timeSinceMillis(lastTime) < 16 * 30){
lastTime = Time.millis();
Expand All @@ -53,48 +45,7 @@ index 711d6c971c9d4df19203d42449a95adf895c30bf..b93cf1e7b4309789953d91bb29e1f707
if(pitchSeq > 30){
pitchSeq = 0;
}
@@ -179,6 +183,40 @@ public class ConstructBlock extends Block{
private @Nullable float[] totalAccumulator;
private @Nullable int[] itemsLeft;

+ @Override
+ public void drawSelect(){
+ if(team.core() == null){
+ return;
+ }
+
+ // BlockUnit之上
+ Draw.z(Layer.flyingUnit + 0.1f);
+
+ float scl = block.size / 4f;
+ float buildHitSize = hitSize();
+
+ // 显示建造进度
+ var pos = Tmp.v1.set(this).add(0, buildHitSize / 2f);//顶部
+ FuncX.drawText(pos, Strings.fixed(progress * 100, 2) + "%", scl, Pal.accent, Align.bottom);
+
+ // 显示物品需求
+ StringBuilder requirements = new StringBuilder();
+ for(int i = 0; i < current.requirements.length; i++){
+ ItemStack stack = current.requirements[i];
+ float consumeAmount = state.rules.buildCostMultiplier * stack.amount;
+ int coreAmount = team.core().items.get(stack.item);
+
+ int investItem = (int)(progress * consumeAmount);
+ int needItem = (int)(consumeAmount) - investItem;
+ boolean hasItem = coreAmount >= needItem;
+
+ if(i != 0) requirements.append('\n');
+ requirements.append(stack.item.emoji()).append(hasItem ? "[#ffd37f]" : "[#e55454]").append(investItem).append("/").append(needItem).append("/").append(UI.formatAmount(coreAmount)).append("[]");
+ }
+ pos.set(this).add(-buildHitSize / 2f, -buildHitSize / 2f);//左下角
+ FuncX.drawText(pos, requirements.toString(), scl, Color.white, Align.topLeft);
+ }
+
@Override
public String getDisplayName(){
return Core.bundle.format("block.constructing", current.localizedName);
@@ -268,7 +306,7 @@ public class ConstructBlock extends Block{
@@ -268,7 +271,7 @@ public class ConstructBlock extends Block{

Draw.rect(region, x, y, current.rotate && (noOverrides || current.regionRotated2 == i || current.regionRotated1 == i) ? rotdeg() + current.visualRotationOffset : 0);
Draw.flush();
Expand Down Expand Up @@ -170,7 +121,7 @@ index 57d8b4ac27635c65154d9c1863001f3df84109d3..890d9444e6c670207929cd63f1b624c3
indexer.eachBlock(player.team(), x * tilesize + offset, y * tilesize + offset, range, other -> other.block.canOverdrive, other -> Drawf.selected(other, Tmp.c1.set(baseColor).a(Mathf.absin(4f, 1f))));
}
diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java
index b38f7560fa04aeb0b416d285e4da43ee3c6e3250..ef1a7afdb810686fd09c98f51d54c3cbca6bb0fd 100644
index b38f7560fa04aeb0b416d285e4da43ee3c6e3250..e34eabaf4d091179f0c873ae5b4e9784ba8fe4df 100644
--- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java
+++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java
@@ -31,6 +31,7 @@ import mindustry.world.*;
Expand All @@ -195,24 +146,6 @@ index b38f7560fa04aeb0b416d285e4da43ee3c6e3250..ef1a7afdb810686fd09c98f51d54c3cb
}

public static abstract class AmmoEntry{
@@ -485,6 +493,17 @@ public class Turret extends ReloadTurret{
if(drawMinRange){
Drawf.dashCircle(x, y, minRange(), team.color);
}
+
+ //ARC: show shoot target line
+ if(ArcBuilds.blockWeaponTargetLine && !targetPos.isZero() && dst(targetPos) < range * 5){
+ Lines.stroke(1f);
+ Lines.dashLine(x, y, targetPos.x, targetPos.y, (int)(Mathf.len(targetPos.x - x, targetPos.y - y) / 8));
+ Lines.dashCircle(targetPos.x, targetPos.y, 8);
+ Draw.reset();
+ }
+ if(mindustryX.VarsX.arcTurretShowAmmoRange.get()){
+ ArcBuilds.turretSelectDraw(this);
+ }
}

@Override
diff --git a/core/src/mindustry/world/blocks/production/BeamDrill.java b/core/src/mindustry/world/blocks/production/BeamDrill.java
index 839b23a763a157631db88137c2fc59e54e112abd..4e5018ffc79fbdf2f7d5b4e10acfae10e258ad2c 100644
--- a/core/src/mindustry/world/blocks/production/BeamDrill.java
Expand All @@ -237,7 +170,7 @@ index 839b23a763a157631db88137c2fc59e54e112abd..4e5018ffc79fbdf2f7d5b4e10acfae10
drawPlaceText(Core.bundle.get("bar.drilltierreq"), x, y, false);
}
diff --git a/core/src/mindustry/world/blocks/production/Drill.java b/core/src/mindustry/world/blocks/production/Drill.java
index 55c523bc651db449f51b1864aff33103d9ee0d73..6c9533ad625544becf6c31c24b81fb4b9125423c 100644
index 060fe7e067d6b60b59e40e9b140983010b5eaed7..409bf59efb6e32df64b609bfaf91ebc61ece31c6 100644
--- a/core/src/mindustry/world/blocks/production/Drill.java
+++ b/core/src/mindustry/world/blocks/production/Drill.java
@@ -147,12 +147,13 @@ public class Drill extends Block{
Expand Down
24 changes: 8 additions & 16 deletions patches/client/0058-ARC-merged.patch
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ way-zer <himc.wicp@gmail.com> on 2024/9/8
.../mindustry/entities/comp/StatusComp.java | 3 +
core/src/mindustry/game/Schematic.java | 104 +++++++++
.../src/mindustry/graphics/BlockRenderer.java | 15 +-
.../mindustry/graphics/OverlayRenderer.java | 36 +++-
.../mindustry/graphics/OverlayRenderer.java | 35 +++-
core/src/mindustry/input/DesktopInput.java | 12 +-
core/src/mindustry/input/InputHandler.java | 47 ++++-
core/src/mindustry/input/MobileInput.java | 6 +-
Expand All @@ -120,7 +120,7 @@ way-zer <himc.wicp@gmail.com> on 2024/9/8
.../mindustry/ui/fragments/MenuFragment.java | 24 ++-
.../ui/fragments/PlacementFragment.java | 164 ++++++++++++---
.../ui/fragments/PlayerListFragment.java | 68 +++---
27 files changed, 917 insertions(+), 135 deletions(-)
27 files changed, 916 insertions(+), 135 deletions(-)

diff --git a/core/src/mindustry/editor/MapInfoDialog.java b/core/src/mindustry/editor/MapInfoDialog.java
index 1ee294233bdeccd9b03a24f7cff65a1d19417b77..5c76cc56cbbb4ba3a6783f864036bd93cab3cc90 100644
Expand Down Expand Up @@ -426,18 +426,10 @@ index 4891a81b790296258ac86ff4bfeb789e6fb92a6f..ebc8bee032dab5240eb8049f8890e8b9
}
}
diff --git a/core/src/mindustry/graphics/OverlayRenderer.java b/core/src/mindustry/graphics/OverlayRenderer.java
index 2033e20b8e66a248530f64be11995341e917687e..6bdcddbaa6065546a019f95dff96f1f8fa23e4cc 100644
index a40c3fbea2c69e39d417e2c01b1a6ba92ebb8a8c..4e127fe429df9c29e15572daadedc32501bda33b 100644
--- a/core/src/mindustry/graphics/OverlayRenderer.java
+++ b/core/src/mindustry/graphics/OverlayRenderer.java
@@ -17,6 +17,7 @@ import mindustry.gen.*;
import mindustry.input.*;
import mindustry.world.*;
import mindustry.world.blocks.storage.CoreBlock.*;
+import mindustryX.features.*;

import static mindustry.Vars.*;

@@ -188,9 +189,18 @@ public class OverlayRenderer{
@@ -189,9 +189,18 @@ public class OverlayRenderer{
//it must be clear that there is a core here.
float br = state.rules.buildRadius(core.team);
if(/*core.wasVisible && */br > 0f && Core.camera.bounds(Tmp.r1).overlaps(Tmp.r2.setCentered(core.x, core.y, br * 2f))){
Expand All @@ -459,14 +451,14 @@ index 2033e20b8e66a248530f64be11995341e917687e..6bdcddbaa6065546a019f95dff96f1f8
Lines.circle(core.x, core.y, br);
}
});
@@ -216,12 +226,14 @@ public class OverlayRenderer{
@@ -217,12 +226,14 @@ public class OverlayRenderer{
Vec2 vec = Core.input.mouseWorld(input.getMouseX(), input.getMouseY());
Building build = world.buildWorld(vec.x, vec.y);

- if(build != null && build.team == player.team()){
+ //if(build != null && build.team == player.team()){
+ if(build != null){
build.drawSelect();
RenderExt.onDrawSelect(build);
if(!build.enabled && build.block.drawDisabled){
build.drawDisabled();
}
Expand All @@ -476,7 +468,7 @@ index 2033e20b8e66a248530f64be11995341e917687e..6bdcddbaa6065546a019f95dff96f1f8
if(Core.input.keyDown(Binding.rotatePlaced) && build.block.rotate && build.block.quickRotate && build.interactable(player.team())){
control.input.drawArrow(build.block, build.tileX(), build.tileY(), build.rotation, true);
Draw.color(Pal.accent, 0.3f + Mathf.absin(4f, 0.2f));
@@ -233,12 +245,22 @@ public class OverlayRenderer{
@@ -234,12 +245,22 @@ public class OverlayRenderer{

input.drawOverSelect();

Expand All @@ -499,7 +491,7 @@ index 2033e20b8e66a248530f64be11995341e917687e..6bdcddbaa6065546a019f95dff96f1f8
}

//draw selection overlay when dropping item
@@ -267,6 +289,10 @@ public class OverlayRenderer{
@@ -268,6 +289,10 @@ public class OverlayRenderer{
}
}
}
Expand Down
10 changes: 0 additions & 10 deletions src/mindustryX/features/NewTransferScanMode.kt
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,6 @@ object NewTransferScanMode {
* Main entry point - rendering function
*/
fun draw() {
Draw.z(Layer.overlayUI + 0.01f)

val pos = Core.input.mouseWorld()
val text = VarsX.bundle.coordinateDistance(
(pos.x / tilesize).toInt(),
(pos.y / tilesize).toInt(),
(player.dst(pos) / tilesize).toInt()
)
drawText(pos, text)

Draw.z(Layer.overlayUI)
// 获取鼠标悬停的建筑
val build = world.tileWorld(Core.input.mouseWorld().x, Core.input.mouseWorld().y)?.build ?: return
Expand Down
Loading