From 6f67ea1742a018798bc3226e6ef1a7a29940d476 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 20 Dec 2021 10:54:09 -0500 Subject: [PATCH] "Better" build tower sprite / Assembly cleanup --- .../blocks/defense/build-tower-glow.png | Bin 0 -> 2079 bytes .../sprites/blocks/defense/build-tower.png | Bin 1742 -> 2513 bytes core/src/mindustry/graphics/Drawf.java | 10 +++- .../world/blocks/defense/BuildTurret.java | 16 +++++++ .../world/blocks/units/UnitAssembler.java | 44 ------------------ .../blocks/units/UnitAssemblerModule.java | 2 +- tools/build.gradle | 41 ---------------- 7 files changed, 26 insertions(+), 87 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/defense/build-tower-glow.png diff --git a/core/assets-raw/sprites/blocks/defense/build-tower-glow.png b/core/assets-raw/sprites/blocks/defense/build-tower-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..757d26de8e6b16466b91238b3be33ffaf7addac9 GIT binary patch literal 2079 zcmV+)2;ldLP)Px+*-1n}RCt{2Tx)Y8ISlL}5AwX-`~Uy(cK5PCfDCgV?8a^3Npf|S$T`$iE(kCK zQCqSk_Y4pS1OkCTAP@)y0)apv5C{YUfj}S-2>hQhc>jQZi)otlH}m;)d|?tQp8P&(k_!4AvPe3;Q!VJEqI3OARprdyZx+NeRo`$~2<1#-g5kPJD5x`4+9P?{a zuS9f7fEb@fzXWh4gG49+H2hx13kn%sl5pw$11ya3Y4D|t>pU(|!q5T9(7QagGDy-m zO;dO4LU#n9HvTn|(Qos(%a6jS#U|f63OWI z03PzVM4U)kh0el1SM}B^n-{bFp0q~48 z^OyN`8eg*_rl{k`|10l9Hv}{mUWT4~B*TBt;~R<>C;>YA7bvryi|{csN>0#+7j#1a z>U5K_{|+hakbpn)<0BFQSNYgI5&=t;g?TP3x&;*b^6)r`D=*TqlAlNb1nZ(Pdc`qQHP_s{RDo$TUFeH z2fViH1=KSisQWu=WFE`o)D!f5evf8RZkdn^0cMlEwciVre$8G!OHW{5XKt3W8MjBh z2Qd46Uh9Cj2ehDF%w7K64kf;G*UQFwUBuar9_6#I6_;tRV>`z;4pGz=eQe z7^Z2OfSLq`7aD)aukkl3L0ZKECEQR2p^G@ryFu+emGRH94zR}O?B1Z{<$DxkT928` zxp*Gd2@G4hU%Wx_pc4{2;7!0>+}D`jYQ8a*Y@L&yp&p}~GhM9*-it5|##yRqsK#k6 zph!qdm_>v0QH`$z?Bw(3xgU_%0fq~<1C)T{M^TJ@h10e)P|tM!tyz;bzJ?%I{iv%4 z2nkFzZJ1#u#4Lw0754XaM~tE@pm>xPbIg#c@Dn>?r)vSLT84)KMW%9xv?ojwtSW+p zkq|ECBkC;4J@yms1Y|F0)dVy?+sd~n5*3QGlz=75R^uKijLKk{>FK{QoXhLmMP30vmT@VSN+>o(shDe(k6|5Pv!L@Oz+4YtC5dy2IIETb zP6@EbsWg$P=mE(KT(co>4`^wER1d0yxxZC60Hqsh^`z@OW~*R0E2X_s}GtnRD1WKuI_|0(1jL#aL{l@!~oyyzCuP4med$ z>y?qe^LhBVLR}TBNXso$c?z?vCWw2wE1X`41HuNmM)*c_^!CIL)Q zwGNmo;&cyyVaN62Y(+N&07nvRe@E5R&p5r`18`bTFwL}5^e)1VqAQUSVYVynHN>nB zv^dk6Lhq7Q^?rIYKF}!vK=W1xcC>C)Fg8ZqIrqOnyusE8Z{0h3LZ`D{(LDi#c!bV; z^#DG0qkMi3z6=41xtlC~6{80Nfj}S-2m}IwKp+qZ1OfpE`~zg${ZGo++zbE!002ov JPDHLkV1k6j$F=|f literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/defense/build-tower.png b/core/assets-raw/sprites/blocks/defense/build-tower.png index 867a67b561b33502706e4171ec851cf908e54551..b78d473bfce0af8bb34e811f7621c385e2037d9e 100644 GIT binary patch literal 2513 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 V5rev$ { - t.left(); - for(var mod : modules){ - //TODO crosses for missing reqs? - t.image(mod.block.uiIcon).size(iconMed).padRight(4).padTop(4); - } - }).fillX().row(); - }*/ - @Override public void display(Table table){ super.display(table); @@ -311,8 +285,6 @@ public class UnitAssembler extends PayloadBlock{ droneProgress = 0f; } - //TODO units should pick up and move payloads into position - Vec2 spawn = getUnitSpawn(); if(moveInPayload() && !wasOccupied){ @@ -341,14 +313,11 @@ public class UnitAssembler extends PayloadBlock{ warmup = Mathf.lerpDelta(warmup, efficiency(), 0.1f); if((progress += edelta() * eff / plan.time) >= 1f){ - //TODO ???? should this even be part of a trigger consume(); - //TODO actually just goes poof var unit = plan.unit.create(team); unit.set(spawn.x + Mathf.range(0.001f), spawn.y + Mathf.range(0.001f)); unit.rotation = 90f; - //TODO annoying so nothing is created yet unit.add(); progress = 0f; @@ -359,8 +328,6 @@ public class UnitAssembler extends PayloadBlock{ }else{ warmup = Mathf.lerpDelta(warmup, 0f, 0.1f); } - - //TODO drones need to indicate that they are in position and actually play an animation } @Override @@ -387,7 +354,6 @@ public class UnitAssembler extends PayloadBlock{ //draw drone construction if(droneWarmup > 0){ - //TODO draw it - better animations? Draw.draw(Layer.blockOver + 0.2f, () -> { Drawf.construct(this, droneType.fullIcon, Pal.accent, 0f, droneProgress, droneWarmup, totalDroneProgress, 14f); }); @@ -411,16 +377,6 @@ public class UnitAssembler extends PayloadBlock{ Draw.color(); }); - /* - Tmp.tr1.set(plan.unit.fullIcon); - Tmp.tr1.setY(Tmp.tr1.getY() + plan.unit.fullIcon.height * (1f - progress)); - - //TODO what if building animation - Draw.rect(Tmp.tr1, spawn.x, spawn.y + (Tmp.tr1.height/2f - plan.unit.fullIcon.height/2f) * Draw.scl, Tmp.tr1.width * Draw.scl, Tmp.tr1.height * Draw.scl); - Lines.stroke(1f, Pal.accent); - Draw.alpha(warmup); - Lines.lineAngleCenter(spawn.x, spawn.y - plan.unit.fullIcon.height/2f * Draw.scl + plan.unit.fullIcon.height * progress * Draw.scl, 0f, plan.unit.fullIcon.width * 0.9f * Draw.scl);*/ - Draw.reset(); Draw.z(Layer.buildBeam); diff --git a/core/src/mindustry/world/blocks/units/UnitAssemblerModule.java b/core/src/mindustry/world/blocks/units/UnitAssemblerModule.java index 5522e00298..e379d50d6a 100644 --- a/core/src/mindustry/world/blocks/units/UnitAssemblerModule.java +++ b/core/src/mindustry/world/blocks/units/UnitAssemblerModule.java @@ -106,7 +106,7 @@ public class UnitAssemblerModule extends PayloadBlock{ @Override public void drawSelect(){ - //TODO draw area + //TODO draw area? if(link != null){ Drawf.selected(link, Pal.accent); } diff --git a/tools/build.gradle b/tools/build.gradle index 56758d2ed0..e0e0725c1b 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -133,47 +133,6 @@ def antialias = { File file -> new Fi(file).writePng(out) } -def tileImage = { File file -> - def image = new Pixmap(new Fi(file)) - - for(x in 0..image.width-1){ - for(y in 0..image.height-1){ - if(x > (image.height - 1 - y)){ - def rx = image.height - 1 - y - def ry = x - - image.setRaw(x, y, image.getRaw(rx, image.height - 1 - ry)) - } - } - } - - def result = new Pixmap(image.width * 2, image.height * 2) - - result.draw(image.flipX(), 0, 0) - result.draw(image, image.width, 0) - result.draw(image.flipX().flipY(), 0, image.height) - result.draw(image.flipY(), image.width, image.height) - - for(x in 0..result.width-1){ - for(y in 0..result.height-1){ - int p = result.getRaw(x, y) - if(x <= y){ - List list = colorMap.get(p) - int index = colorIndexMap.get(p, -1) - - if(index != -1){ - int resultIndex = (x == y ? 1 : index == 2 ? 0 : index == 0 ? 2 : 1); - result.setRaw(x, y, list[resultIndex].rgba()) - } - } - } - } - - new Fi(file).writePng(result) - result.dispose() - image.dispose() -} - task antialiasImages(){ doLast{ for(def img : project.getProperty("images").split(",")){