From 7c22478618d7cdaa1544e09859cc3a2b1e6a5e7b Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 30 Jan 2022 17:10:04 -0500 Subject: [PATCH] Multi-tread support for tanks --- .../assets-raw/sprites/units/conquer-cell.png | Bin 0 -> 2048 bytes .../assets-raw/sprites/units/conquer-glow.png | Bin 0 -> 18617 bytes .../sprites/units/conquer-test1.png | Bin 0 -> 7150 bytes .../sprites/units/conquer-treads.png | Bin 0 -> 704 bytes .../assets-raw/sprites/units/conquer.aseprite | Bin 10632 -> 10772 bytes core/assets-raw/sprites/units/conquer.png | Bin 3709 -> 6711 bytes core/assets/icons/icons.properties | 1 + core/assets/logicids.dat | Bin 3950 -> 3959 bytes core/src/mindustry/content/UnitTypes.java | 19 ++++++++-- .../src/mindustry/entities/comp/TankComp.java | 5 +-- .../mindustry/entities/units/UnitDecal.java | 1 + core/src/mindustry/type/UnitType.java | 32 ++++++++++------- gradle.properties | 2 +- tools/src/mindustry/tools/Generators.java | 33 ++++++++++-------- 14 files changed, 62 insertions(+), 31 deletions(-) create mode 100644 core/assets-raw/sprites/units/conquer-cell.png create mode 100644 core/assets-raw/sprites/units/conquer-glow.png create mode 100644 core/assets-raw/sprites/units/conquer-test1.png create mode 100644 core/assets-raw/sprites/units/conquer-treads.png diff --git a/core/assets-raw/sprites/units/conquer-cell.png b/core/assets-raw/sprites/units/conquer-cell.png new file mode 100644 index 0000000000000000000000000000000000000000..b42c07d4dff6dfb05278d288dc767659396d7c3b GIT binary patch literal 2048 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 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/units/conquer-glow.png b/core/assets-raw/sprites/units/conquer-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..294453e5dd8ee6bd4af626710188e1453161b1ba GIT binary patch literal 18617 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 Hoj><)rtth{1Ipk0Xjrsqz)>!pG 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 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/units/conquer.aseprite b/core/assets-raw/sprites/units/conquer.aseprite index 4387c51df790bbc202ec979f146fc71f702bcacc..f15725ad959a9d5614780a642418268db8779966 100644 GIT binary patch delta 1760 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 literal 3709 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 KO+Dl){=WbLF9fat diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 71b7f7ee54..c4469beb0b 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -517,3 +517,4 @@ 63186=red-stone-boulder|block-red-stone-boulder-ui 63185=red-diamond-wall|block-red-diamond-wall-ui 63184=crystal-orbs|block-crystal-orbs-ui +63183=conquer|unit-conquer-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index 673775f2dca07f3a593961abdb65943492f017ef..ca952ad4a23ee204d803a7be7c12255b502e371c 100644 GIT binary patch delta 28 kcmaDS_g!wo1s+Dd%@=v17&+LJ^YaQzQ;Rlh@wqSp0HhZR1ONa4 delta 19 bcmew^_fBrZ1s+D-%@=v17&n{nIWqzPRICR8 diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 99befc6099..fd0ea4072d 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -11,6 +11,7 @@ import mindustry.entities.*; import mindustry.entities.abilities.*; import mindustry.entities.bullet.*; import mindustry.entities.effect.*; +import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.type.*; @@ -72,7 +73,7 @@ public class UnitTypes{ public static @EntityDef({Unitc.class, BuildingTetherc.class, Payloadc.class}) UnitType manifold, assemblyDrone; //tank - public static @EntityDef({Unitc.class, Tankc.class}) UnitType vanquish; + public static @EntityDef({Unitc.class, Tankc.class}) UnitType vanquish, conquer; //endregion @@ -2436,7 +2437,7 @@ public class UnitTypes{ health = 9000; armor = 20f; areaDamage = 12f; - treadRect = new Rect(22f, 16f, 28f, 130f); + treadRects = new Rect[]{new Rect(22, 16, 28, 130)}; weapons.add(new Weapon("vanquish-weapon"){{ layerOffset = 0.0001f; @@ -2499,6 +2500,20 @@ public class UnitTypes{ } }}; + conquer = new TankUnitType("conquer"){{ + hitSize = 44f; + treadPullOffset = 1; + speed = 0.48f; + health = 20000; + armor = 25f; + areaDamage = 22f; + rotateSpeed = 0.9f; + treadRects = new Rect[]{new Rect(27, 152, 56, 73), new Rect(24, 51, 29, 17), new Rect(59, 18, 39, 19)}; + decals.add(new UnitDecal("conquer-glow", 0, 0, 0, -1, Pal.turretHeat.cpy()){{ + blending = Blending.additive; + }}); + }}; + //endregion //region erekir - mech diff --git a/core/src/mindustry/entities/comp/TankComp.java b/core/src/mindustry/entities/comp/TankComp.java index 4c6c0f25da..b28b9ffca6 100644 --- a/core/src/mindustry/entities/comp/TankComp.java +++ b/core/src/mindustry/entities/comp/TankComp.java @@ -32,9 +32,10 @@ abstract class TankComp implements Posc, Flyingc, Hitboxc, Unitc, ElevationMovec //dust if(walked && !headless){ treadEffectTime += Time.delta; - if(treadEffectTime >= 6f){ + if(treadEffectTime >= 6f && type.treadRects.length > 0){ var treadRegion = type.treadRegion; - var treadRect = type.treadRect; + //first rect should always be at the back + var treadRect = type.treadRects[0]; float xOffset = (treadRegion.width/2f - (treadRect.x + treadRect.width/2f)) / 4f; float yOffset = (treadRegion.height/2f - (treadRect.y + treadRect.height/2f)) / 4f; diff --git a/core/src/mindustry/entities/units/UnitDecal.java b/core/src/mindustry/entities/units/UnitDecal.java index 62a12e3c29..bd0b3c72ae 100644 --- a/core/src/mindustry/entities/units/UnitDecal.java +++ b/core/src/mindustry/entities/units/UnitDecal.java @@ -9,6 +9,7 @@ public class UnitDecal{ public float x, y, rotation; public float layer = Layer.flyingUnit + 1f; public float xScale = 1f, yScale = 1f; + public Blending blending = Blending.normal; public Color color = Color.white; public UnitDecal(String region, float x, float y, float rotation, float layer, Color color){ diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index e3ca36dd56..38127c0ae3 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -119,7 +119,7 @@ public class UnitType extends UnlockableContent{ public boolean mechStepParticles = false; public Color mechLegColor = Pal.darkMetal; - public Rect treadRect = new Rect(); + public Rect[] treadRects = {}; public int treadFrames = 18; public int treadPullOffset = 0; @@ -176,7 +176,8 @@ public class UnitType extends UnlockableContent{ public Seq weapons = new Seq<>(); public TextureRegion baseRegion, legRegion, region, shadowRegion, cellRegion, softShadowRegion, jointRegion, footRegion, legBaseRegion, baseJointRegion, outlineRegion, treadRegion; - public TextureRegion[] wreckRegions, segmentRegions, segmentOutlineRegions, treadRegions; + public TextureRegion[] wreckRegions, segmentRegions, segmentOutlineRegions; + public TextureRegion[][] treadRegions; protected float buildTime = -1f; protected @Nullable ItemStack[] totalRequirements, cachedRequirements, firstRequirements; @@ -524,9 +525,11 @@ public class UnitType extends UnlockableContent{ footRegion = Core.atlas.find(name + "-foot"); treadRegion = Core.atlas.find(name + "-treads"); if(treadRegion.found()){ - treadRegions = new TextureRegion[treadFrames]; - for(int i = 0; i < treadFrames; i++){ - treadRegions[i] = Core.atlas.find(name + "-treads" + i); + treadRegions = new TextureRegion[treadRects.length][treadFrames]; + for(int r = 0; r < treadRects.length; r++){ + for(int i = 0; i < treadFrames; i++){ + treadRegions[r][i] = Core.atlas.find(name + "-treads" + r + "-" + i); + } } } legBaseRegion = Core.atlas.find(name + "-leg-base", name + "-leg"); @@ -767,10 +770,12 @@ public class UnitType extends UnlockableContent{ if(decals.size > 0){ float base = unit.rotation - 90; for(var d : decals){ - Draw.z(d.layer); + Draw.blend(d.blending); + Draw.z(d.layer <= 0f ? z : d.layer); Draw.scl(d.xScale, d.yScale); Draw.color(d.color); Draw.rect(d.region, unit.x + Angles.trnsx(base, d.x, d.y), unit.y + Angles.trnsy(base, d.x, d.y), base + d.rotation); + Draw.blend(); } Draw.reset(); Draw.z(z); @@ -995,13 +1000,16 @@ public class UnitType extends UnlockableContent{ if(treadRegion.found()){ int frame = (int)(unit.treadTime()) % treadFrames; - var region = treadRegions[frame]; - float xOffset = treadRegion.width/2f - (treadRect.x + treadRect.width/2f); - float yOffset = treadRegion.height/2f - (treadRect.y + treadRect.height/2f); + for(int i = 0; i < treadRects.length; i ++){ + var region = treadRegions[i][frame]; + var treadRect = treadRects[i]; + float xOffset = treadRegion.width/2f - (treadRect.x + treadRect.width/2f); + float yOffset = treadRegion.height/2f - (treadRect.y + treadRect.height/2f); - for(int i : Mathf.signs){ - Tmp.v1.set(xOffset * i, yOffset).rotate(unit.rotation - 90); - Draw.rect(region, unit.x + Tmp.v1.x / 4f, unit.y + Tmp.v1.y / 4f, treadRect.width / 4f, region.height / 4f, unit.rotation - 90); + for(int side : Mathf.signs){ + Tmp.v1.set(xOffset * side, yOffset).rotate(unit.rotation - 90); + Draw.rect(region, unit.x + Tmp.v1.x / 4f, unit.y + Tmp.v1.y / 4f, treadRect.width / 4f, region.height / 4f, unit.rotation - 90); + } } } } diff --git a/gradle.properties b/gradle.properties index 0039eeffea..5df4495ded 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,4 +24,4 @@ android.useAndroidX=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=a066e32504 +archash=16d2626649 diff --git a/tools/src/mindustry/tools/Generators.java b/tools/src/mindustry/tools/Generators.java index 592c311826..77d182c8c4 100644 --- a/tools/src/mindustry/tools/Generators.java +++ b/tools/src/mindustry/tools/Generators.java @@ -521,22 +521,27 @@ public class Generators{ //generate tank animation if(sample instanceof Tankc){ Pixmap pix = get(type.treadRegion); - //slice is always 1 pixel wide - Pixmap slice = pix.crop((int)type.treadRect.x, (int)type.treadRect.y, 1, (int)type.treadRect.height); - int frames = type.treadFrames; - for(int i = 0; i < frames; i++){ - int pullOffset = type.treadPullOffset; - Pixmap frame = new Pixmap(slice.width, slice.height); - for(int y = 0; y < slice.height; y++){ - int idx = y + i; - if(idx >= slice.height){ - idx -= slice.height; - idx += pullOffset; - } - frame.setRaw(0, y, slice.getRaw(0, idx)); + for(int r = 0; r < type.treadRects.length; r++){ + Rect treadRect = type.treadRects[r]; + //slice is always 1 pixel wide + Pixmap slice = pix.crop((int)treadRect.x, (int)treadRect.y, 1, (int)treadRect.height); + int frames = type.treadFrames; + for(int i = 0; i < frames; i++){ + int pullOffset = type.treadPullOffset; + Pixmap frame = new Pixmap(slice.width, slice.height); + for(int y = 0; y < slice.height; y++){ + int idx = y + i; + if(idx >= slice.height){ + idx -= slice.height; + idx += pullOffset; + idx = Mathf.mod(idx, slice.height); + } + + frame.setRaw(0, y, slice.getRaw(0, idx)); + } + save(frame, type.name + "-treads" + r + "-" + i); } - save(frame, type.name + "-treads" + i); } }