From 7ea34cfd53fb1317bcbfaeae3250799427e40030 Mon Sep 17 00:00:00 2001 From: buthed010203 Date: Fri, 3 May 2024 17:18:44 -0400 Subject: [PATCH] Improve transparent and invisible units for modded content --- core/src/mindustry/entities/comp/UnitComp.java | 7 +++++++ core/src/mindustry/type/UnitType.java | 6 ------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/src/mindustry/entities/comp/UnitComp.java b/core/src/mindustry/entities/comp/UnitComp.java index b3bb757d62..12ed4ad367 100644 --- a/core/src/mindustry/entities/comp/UnitComp.java +++ b/core/src/mindustry/entities/comp/UnitComp.java @@ -11,6 +11,7 @@ import mindustry.ai.*; import mindustry.ai.types.*; import mindustry.annotations.Annotations.*; +import mindustry.client.*; import mindustry.client.navigation.*; import mindustry.content.*; import mindustry.core.*; @@ -747,6 +748,12 @@ public boolean isImmune(StatusEffect effect){ @Override public void draw(){ + UnitType.alpha = + ClientVars.hidingUnits || ClientVars.hidingAirUnits && isFlying() ? 0 : + (controller() instanceof Player p && p.assisting && !p.isLocal() && !type.isModded()) ? UnitType.formationAlpha : // Don't draw modded units with partial transparency as it won't apply to custom UnitType.draw() code + 1; + if (UnitType.alpha == 0) return; // Don't bother drawing what we can't see. + type.draw(self()); } diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 2e695ebc61..e4beeae739 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -17,7 +17,6 @@ import mindustry.ai.Pathfinder.*; import mindustry.ai.types.*; import mindustry.annotations.Annotations.*; -import mindustry.client.*; import mindustry.content.*; import mindustry.core.*; import mindustry.ctype.*; @@ -1179,11 +1178,6 @@ public void draw(Unit unit){ boolean isPayload = !unit.isAdded(); Mechc mech = unit instanceof Mechc ? (Mechc)unit : null; - alpha = - ClientVars.hidingUnits || ClientVars.hidingAirUnits && unit.isFlying() ? 0 : - (unit.controller() instanceof Player p && p.assisting && !p.isLocal()) ? formationAlpha : - 1; - if (alpha == 0) return; // Don't bother drawing what we can't see. float z = isPayload ? Draw.z() : unit.elevation > 0.5f ? (lowAltitude ? Layer.flyingUnitLow : Layer.flyingUnit) : groundLayer + Mathf.clamp(hitSize / 4000f, 0, 0.01f); if(unit.controller().isBeingControlled(player.unit())){