From 7ba42cb26e6af46eecebcb81f8c838c1ae8ee0a2 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 11 Feb 2022 12:19:15 -0500 Subject: [PATCH] Crash fix --- .../blocks/turrets/disperse/disperse.png | Bin 2028 -> 2064 bytes core/src/mindustry/content/Blocks.java | 1 + core/src/mindustry/type/Sector.java | 4 ++++ .../mindustry/ui/dialogs/PlanetDialog.java | 1 + .../world/blocks/defense/turrets/Turret.java | 18 +++++++++++------- gradle.properties | 2 +- 6 files changed, 18 insertions(+), 8 deletions(-) diff --git a/core/assets-raw/sprites/blocks/turrets/disperse/disperse.png b/core/assets-raw/sprites/blocks/turrets/disperse/disperse.png index b474041e8ff01dc81adb3cb10fc170e8827171fc..0ddae61f6a60ab846b026d9e4fed83e9bb4c21fa 100644 GIT binary patch delta 2037 zcmaFEKS5xEVf`sj7srr_IdA70=Eax`w52o4E3r@5^@g{F!7p>E;2UX+xeRMVta_KI zX{AaAh~IT+lUjS4!=QwD=VZPK(R)PL#P!ds$fsKzmMr=ix@}99%(?&i^7kj)VSQ0z zHP>(X<(E0K+;16nSXkLf*Vxxr*4_H^`}D8kp!)l7_TP=kPA{*2S$lSQf4c9Jcj|8$ zEI2yvN6i)r$!G9Yj52V%$~Hqd!RAl!%-wEp)mGeMFtj)_eaAG@StboF32SF9uw?e& zy1IySmazl7yZM1>pS`RZ8syV2?OSNJwZmBV&J(`d3!N^=JWdLF5hd2;`AXU0ZGWI; z#Eadl7M@Z<1gI=uJA*;Vof@BZnKOUp1MT$>9QNMtx!B@ zdZgoM3!{$e5|OZ9IfoczZGA+VEH(yltZKDm%CS^)V>q=tYRb&fVI^QA6P{umG4OW)t<>KVuulsxb-?yz%3!P^eFkENy z>r^`X>dBm(rZ_IKB`K}zmS!agvt1BaQZFhD4erKMC#T#v75UKA7bRSJBuDyR!q2Y&(!{a3Z9|aqf_Vv#YnDpb;fgYBP zc3C=_;-(I7A05B7>MF}oo&&1;`e%tX%Y^wXu;W}4ShH@M?i%(LQVY^P?o7I1*7&QQ z!{KPt4?gdW37Sa_7nB7>yE&itby}w@9=XnxB)f18;|{3?*S187V_O>pR%SEhf4k4O za(<7KYYEGPvW=-9W$zez^|K@?Gnjo?eLDEY|G%*xzOU@uxrn5%bjJ0=JZnCX#t#S8BcxAgSO*lnzf!Rk{XNI#gWS06mm@zDSxVQQ6 zqDRNIa$o4%xu(6O)-HF>ZKN+~~Q%f5VIe8?Ps9D=zl)@}9wv+aPtM zyr!g~uR(Lht6Z-b@@lB@af{H!6+pgAcUw>oSkq@fY&zt3U zNF4wA=}*hNufcrNC%G~BI4}HL8g=AerkGok;fy!)#i^lBWeN}X=Ic~B%=5N|=)*THR&eQY-*QsP*t!I(= zSo<`!=Lg^P=yU%zontIwl2%WdWst45V9)2{wTn9XGo_oWR13}=J?mUxn0Ah(n!P=; z)A#A4XNhG~xR36#vOM3lah8{Y>4p0AZ#*qR)?zM~SRQA$`xvBO*=g6dB2D)|Bd>+2 z;boTO*E}IX^DYN-heQa6Y?pfB!7DRcV0wK9H+w(~&y80pS@V~!ZhR87;kKBWxn|{_ z-T&qXTv06Wd1K9Ja>Lp}rFP>MeeuWoyZr>~)5|&CkDp$$e*O1}wN@5Kf38!Gc@*8M zY&Lyy$Vb^#%bN|=PAIA$oKc>BZkqw0aKh2@74!I})rIM+)}6a=QIvFctzJ^%To$jH z3%2}_sjt`GdcUz+bIxDQhTAMrkBVcOtB+4UV#hJ@xPzW>M)&!`wNvaeI{6hM*iV=` z_Wck#f6nrH&sW#r8it2X0#{kC9eKWE+j{?7kC;Vn2(_6uhJLiXCGq`i(+`GLv(|TS z^wO>WeEQS!%Rv2Xa{9e(%+j&T&(!KSExvN>deZGfmey11jWi#}nEUS(d%k4zlXdA^ z7>oFnib{H3OIxX~JDAusM`ostoSo|O<|!=CXEc1;ZmFiBYuE7MV}W0hkhh@Gaf_w> zGgiy;>!&jHwIs1T-BCKl$Z;Lp&B+da!a6nq-#LDH2u@R~%i&+J-v0#~Q^AwCzr{?? zJ4!Ddk~|o}vowFQNc|aUh6C$3v&7{W2r)CI9!+W&_V)=3N=Fbw7U+~D%LCcb9o1WbP zu^tA#Hz#k-QZJL(wrFx+h;UB#4{(hOs(90-fAVkM+kbSz!`OWc3=9mOu6{1-oD!M< DEYPY^ delta 2001 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 MUHx3vIVCg!0Q#JtOaK4? diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 3b862cacb1..a97b04df2e 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -3342,6 +3342,7 @@ public class Blocks{ shots = 4; alternate = true; + widthSpread = true; spread = 4.6f; restitution = 0.1f; diff --git a/core/src/mindustry/type/Sector.java b/core/src/mindustry/type/Sector.java index de018bfafb..85cbaee324 100644 --- a/core/src/mindustry/type/Sector.java +++ b/core/src/mindustry/type/Sector.java @@ -92,6 +92,10 @@ public class Sector{ info.resources.remove(Blocks.water); info.resources.add(Liquids.water); } + + if(info.resources.contains(u -> u == null)){ + info.resources = info.resources.select(u -> u != null); + } } /** Removes any sector info. */ diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 3d09b34f3f..9bc7753a99 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -837,6 +837,7 @@ public class PlanetDialog extends BaseDialog implements PlanetInterfaceRenderer{ c.add("@sectors.resources").left().row(); c.table(t -> { for(UnlockableContent uc : sector.info.resources){ + if(uc == null) continue; t.image(uc.uiIcon).padRight(3).size(iconSmall); } }).padLeft(10f).left().row(); diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 1c3aaeae30..e814efee5d 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -86,7 +86,7 @@ public class Turret extends ReloadTurret{ /** Ticks between shots if shots > 1. */ public float burstSpacing = 0; /** An inflexible and terrible idea. */ - public boolean alternate = false; + public boolean alternate = false, widthSpread = false; /** If true, this turret will accurately target moving targets with respect to charge time. */ public boolean accurateDelay = false; @@ -544,21 +544,25 @@ public class Turret extends ReloadTurret{ }else{ //otherwise, use the normal shot pattern(s) - if(alternate){ - float i = (shotCounter % shots) - (shots-1)/2f; + if(alternate || widthSpread){ + int count = !widthSpread ? 1 : shots; - bulletOffset.trns(rotation - 90, (spread) * i + Mathf.range(xRand), shootLength); - bullet(type, rotation + Mathf.range(inaccuracy + type.inaccuracy)); + for(int c = 0; c < count; c++){ + float i = (shotCounter % shots) - (shots-1)/2f; + + bulletOffset.trns(rotation - 90, (spread) * i + Mathf.range(xRand), shootLength); + bullet(type, rotation + Mathf.range(inaccuracy + type.inaccuracy)); + shotCounter ++; + } }else{ bulletOffset.trns(rotation, shootLength, Mathf.range(xRand)); for(int i = 0; i < shots; i++){ bullet(type, rotation + Mathf.range(inaccuracy + type.inaccuracy) + (i - (int)(shots / 2f)) * spread); + shotCounter ++; } } - shotCounter++; - recoil = recoilAmount; heat = 1f; effects(); diff --git a/gradle.properties b/gradle.properties index 120d869fe2..da169c95f9 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=502eb9934e +archash=985a940948