From cf1fb98d5c36c9ecc1814354a83215113d0d7703 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 9 May 2022 17:33:43 -0400 Subject: [PATCH] Misc bugfixes --- .../sprites/units/precept-treads.png | Bin 483 -> 492 bytes core/assets-raw/sprites/units/precept.png | Bin 2904 -> 2943 bytes core/src/mindustry/content/UnitTypes.java | 10 +-------- .../mindustry/entities/comp/BuildingComp.java | 4 ++-- core/src/mindustry/world/Block.java | 1 + .../world/blocks/distribution/DuctRouter.java | 19 +++++++++++++++--- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/core/assets-raw/sprites/units/precept-treads.png b/core/assets-raw/sprites/units/precept-treads.png index 913546e37671608b7127456d971e346aee21941d..916cd739e56d69842836e2c65b258676246e5c5b 100644 GIT binary patch literal 492 zcmeAS@N?(olHy`uVBq!ia0vp^6+qm>!3HF^r{~@UQjEnx?oJHr&dIz4vX^poOj-#HSt?}-QDqKZXBk?wZZc_ANq7JGv$|MpL;bqAWZUDrWr3!E zfWh3=7tJ?Zdwcir_Y<$@_qDIA+x+^X`GNmJ7Jd&b8XvRt2?H5BW`orHeSG->NXf$M z@uyjibIPa}%sEiV1Y=ybeevVhABkG-V8eq5QHb=N5`L?kk~PUqF!Ro?ce2~Rhp%?- z=Dh#^wym7V39;rZP+3HbnJ}8sOviKUE*MrFUX=HmtrMaY?ld4Hr{u^?gj<0E%c>9m zzrJ(7qQ$S-o%N|rkC)wjVe!2_^-Pr?rpY&7L}Xkmo`s?xu;#f5s^57afy_{lS;rumY4t`bmg6Ew$kWx&Wt~$(69AS@(MkXS delta 351 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 literal 2904 zcmV-e3#asnP)Px=5=lfsRCt{2oy}@hNf5^?!)$y6VU{UG0gZ72C~Ur4)_QzGYcuFQ+8EXRaf;rH=I8NlH7B;tLk_9yH8($S+i!%nl)?I ztXZ>W&6-tcW7P(5dUN#0mFBv`gD0szOvMhbh8sl#RttEN3#s#c& z+8Wea8WD=HL*s9@hGpapm_<>6TPIsv`e{TaBLcQ=8Wodtz!{EQTrA<@Vi}$6@cc$V zP6eC=xAuFMvh&M^Jfw=wR3_w+wM3TI9xy--h?@WxAQ|w;;Xovik#MtPlwN|P9oX7h zL?*Y=yhjv(AyxEEfV_@y0S30g>kN5a;Q|cqWUV9Qb%qN7@bk#bEIK_o{{H)ehmY9n zwzd{&ouU?8t&OYH&=Ra2)R%#){Y|yCwFoU~n)IwTqDD{KPHwS53Y4al^j3iyJ9}*e z7*|z?WfJjZwn{;E@FE^UfSBq!>H(O{@>+Dzq{a7$O$O@%S)IVsXD_Y*0A9a(aqXT6 zxY$WrUY=J!_XbN^e2>^Xnm5>Y<*^Zkh*8G4sI`DcYnuqFEv&JSMyo4EOxYf(rR~q2M%uc zPr;hnU}`Ki;M3dB)pR`VrWRm!o1AF}mo_ahM_;bTowmiUHn?_UIV7k(UA2;&33p2J z*j$TEErw;R>9DM;7ma%Q?8Q|%KK*c59}b|fB)8y3fPDG&x(m|K3ZHzb+N1$|eye|N zKpTfvQ}^4O{~0Vcw^id{RU6FBFmc-5-}xc%R2sOu`#ax%wBlx$G}~XbD?(P=TE4#g zx?%3eXqhwt-@E_V{0QTd#!lra;Yxo4{8)NXG~XIf`ajOrS{@qPs5qZ7-?DUSrC}oi z?tzQ?VJgo7xAy;54T1Se6A<`WtK^n>X>8*}eW&?mKo+AU-CS#jB?BKke5CF*wsiDm zp{`E3=|hyZs(bM8k$Ko6jVdJjt+74(_|DghmP9jbJ$;dI0rd0K5h@#Qmg@7dyt|^a;urq%3Xq`8@2jyxLpMq0T&>5#feKhq9pI` z?=**-8nqay0D4O@bpW5_D7d9si|?FzHW_$JGWFkE1#1eRx`bLGM?9SXw$ef&BP6aT zjT0W+eHul~7X#QKYin0^C(BY@N6h{J*sH=4O!<3l=BoT3cb`U98#!5GW?^A&V>Kli zjrFcF0mKEalxC{ZtDcgKRkxyO*k8J? z^_sb!bZvhzx98ZBE+_N_eXB`|302Qs4P{b<+TsXwbtqy zb@XK+!i}1?q)IEn+%5+EzjX(qC9s}q&2kTCOUtKLOfuB{*wlK{mR@IBtwq2E@V8sm z**eZojZZbz{G41HY#mZy0JuO%ZSwP5SJ!@`q)oRq1!^7oWh|V80`?l%f?HcKs0BU( zvNm0`sRh}pXvkfF%PK9}FdDcLvIMdRvNm1%z(t=CQpU1(P2OFfx)-?7k5V?| z$xL)mwYIjjb}U+ew%}TKM@~tpfO}U$dLS<^&*AjsxLGBio*avl71?m3-r(dEK1`xo z1>_Q#_Wj`6byI`uX-3R#B%Ynsv%Q8J&`U2yYc|gV@IdMCrFC5oTyBq5Pizpb_84K5 zsRWk?qxE!3I7g+;XPT1SQ(DWzvM0+6S5o8#KTBFskh3%# za0c8}Ys!#^0*-*Y%2zYRm(wQ-d2-ukrwUhN!xU?sG{Cj)f6poKQ-F)=u|+fW8L89~ zY=M0C@!iJR$9EgG!$vd#joe?XNvmel;lYy)^rLpqXt)4@fVn|Gb)dF_LIYAlwv?6# z$d)up+vtNyeX6ajWq;icKyV3eK`tFa$lTM8Zyl6cY;HGqIP^en-CN6FdV2zWD<9}u zEJ{TmN*Z28YfCZ!KfQ^|lVvcu-)r(f*1(m1=QbzSd>jQAAn8jv0BoyD<-ui^J-^cO zW#nRmWnWae(xW+84W)%^^~+R(P3@C#A{-S4!n$jJib5YOa4oU2)=p}`mW1(%*Bbuv z>xS9zsBNVgdELAJ_)1$MF-DeJ!V)VLU=LhW3vw9#`zU{AoZ_hfPEf!mX> zM(RYh)kw6VbH07~rhEhVXl2-TQ~Whm(NlCf)25r?uelALlG7t>S$BWk#@E`4tYD1H zYYH|*=GA3jX-Ia!N9HvJ8>ZmztXZ>W&6+jKum1q9yTNt7#c|I70000 { - color(e.color); - Fill.poly(e.x, e.y, 3, 4f * e.fout(), e.rotation); - }).layer(Layer.bullet - 0.001f); }}; }}); }}; @@ -2588,7 +2580,7 @@ public class UnitTypes{ health = 4500; armor = 10f; itemCapacity = 0; - treadRects = new Rect[]{new Rect(16 - 60f, 38 - 60f, 30, 75), new Rect(44 - 60f, 7 - 60f, 17, 60)}; + treadRects = new Rect[]{new Rect(16 - 60f, 48 - 70f, 30, 75), new Rect(44 - 60f, 17 - 70f, 17, 60)}; researchCostMultiplier = 0f; weapons.add(new Weapon("precept-weapon"){{ diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index d425f8e580..04d8467e8d 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -63,7 +63,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, transient Tile tile; transient Block block; transient Seq proximity = new Seq<>(6); - transient byte cdump; + transient int cdump; transient int rotation; transient float payloadRotation; transient String lastAccessed; @@ -992,7 +992,7 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } public void incrementDump(int prox){ - cdump = (byte)((cdump + 1) % prox); + cdump = ((cdump + 1) % prox); } /** Used for dumping items. */ diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index eea8429354..cf2aeca15a 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -448,6 +448,7 @@ public class Block extends UnlockableContent implements Senseable{ /** Drawn when placing and when hovering over. */ public void drawOverlay(float x, float y, int rotation){ } + public float sumAttribute(@Nullable Attribute attr, int x, int y){ if(attr == null) return 0; Tile tile = world.tile(x, y); diff --git a/core/src/mindustry/world/blocks/distribution/DuctRouter.java b/core/src/mindustry/world/blocks/distribution/DuctRouter.java index ff2d65ae34..d16ac68342 100644 --- a/core/src/mindustry/world/blocks/distribution/DuctRouter.java +++ b/core/src/mindustry/world/blocks/distribution/DuctRouter.java @@ -47,7 +47,7 @@ public class DuctRouter extends Block{ public void setStats(){ super.setStats(); - stats.add(Stat.itemsMoved, 60f / speed, StatUnit.itemsSecond); + stats.add(Stat.itemsMoved, 60f / speed * itemCapacity, StatUnit.itemsSecond); } @Override @@ -78,6 +78,8 @@ public class DuctRouter extends Block{ public float progress; public @Nullable Item current; + protected int acceptors; + @Override public void draw(){ Draw.rect(region, x, y); @@ -99,8 +101,7 @@ public class DuctRouter extends Block{ var target = target(); if(target != null){ target.handleItem(this, current); - int mod = sortItem != null && current != sortItem ? 2 : 3; - cdump = (byte)((cdump + 1) % mod); + cdump = ((cdump + 1) % acceptors); items.remove(current, 1); current = null; progress %= (1f - 1f/speed); @@ -124,6 +125,18 @@ public class DuctRouter extends Block{ public Building target(){ if(current == null) return null; + acceptors = 0; + + //TODO this is horrible. + for(int i = -1; i <= 1; i++){ + int dir = Mathf.mod(rotation + i, 4); + if(sortItem != null && (current == sortItem) != (dir == rotation)) continue; + Building other = nearby(dir); + if(other != null && other.team == team && other.acceptItem(this, current)){ + acceptors ++; + } + } + for(int i = -1; i <= 1; i++){ int dir = Mathf.mod(rotation + (((i + cdump + 1) % 3) - 1), 4); if(sortItem != null && (current == sortItem) != (dir == rotation)) continue;