From 19ddc1dd6547c094169c3a45fd8fd7ae9ead2c44 Mon Sep 17 00:00:00 2001 From: Anuken Date: Tue, 18 Jan 2022 20:35:43 -0500 Subject: [PATCH] WIP crystal biome --- .../blocks/environment/crystal-floor1.png | Bin 0 -> 309 bytes .../blocks/environment/crystal-floor2.png | Bin 0 -> 256 bytes .../blocks/environment/crystal-floor3.png | Bin 0 -> 303 bytes .../blocks/environment/crystal-floor4.png | Bin 0 -> 298 bytes .../crystalline-stone-wall-large.png | Bin 0 -> 906 bytes .../environment/crystalline-stone-wall1.png | Bin 0 -> 458 bytes .../environment/crystalline-stone-wall2.png | Bin 0 -> 375 bytes .../environment/crystalline-stone-wall3.png | Bin 0 -> 351 bytes .../environment/crystalline-stone-wall4.png | Bin 0 -> 317 bytes .../blocks/environment/crystalline-stone1.png | Bin 0 -> 260 bytes .../blocks/environment/crystalline-stone2.png | Bin 0 -> 232 bytes .../blocks/environment/crystalline-stone3.png | Bin 0 -> 217 bytes .../blocks/environment/crystalline-stone4.png | Bin 0 -> 202 bytes .../blocks/environment/crystalline-stone5.png | Bin 0 -> 248 bytes .../environment/ore-crystal-thorium1.png | Bin 312 -> 232 bytes .../environment/ore-crystal-thorium2.png | Bin 316 -> 339 bytes .../environment/ore-crystal-thorium3.png | Bin 328 -> 312 bytes .../blocks/props/arkyic-boulder-shadow1.png | Bin 0 -> 3503 bytes .../blocks/props/arkyic-boulder-shadow2.png | Bin 0 -> 3327 bytes .../blocks/props/arkyic-boulder-shadow3.png | Bin 0 -> 3167 bytes .../sprites/blocks/props/arkyic-boulder1.png | Bin 0 -> 594 bytes .../sprites/blocks/props/arkyic-boulder2.png | Bin 0 -> 535 bytes .../sprites/blocks/props/arkyic-boulder3.png | Bin 0 -> 491 bytes .../blocks/props/crystal-cluster-shadow1.png | Bin 0 -> 17136 bytes .../blocks/props/crystal-cluster-shadow2.png | Bin 0 -> 9510 bytes .../blocks/props/crystal-cluster-shadow3.png | Bin 0 -> 11589 bytes .../sprites/blocks/props/crystal-cluster1.png | Bin 0 -> 4884 bytes .../sprites/blocks/props/crystal-cluster2.png | Bin 0 -> 2688 bytes .../sprites/blocks/props/crystal-cluster3.png | Bin 0 -> 2392 bytes .../blocks/props/crystalline-boulder1.png | Bin 0 -> 605 bytes .../blocks/props/crystalline-boulder2.png | Bin 0 -> 689 bytes core/assets/icons/icons.properties | 6 ++ core/src/mindustry/content/Blocks.java | 38 ++++++++++++- .../mindustry/entities/comp/BuildingComp.java | 6 -- .../src/mindustry/graphics/BlockRenderer.java | 11 ++-- .../maps/generators/BasicGenerator.java | 15 +++++ .../maps/planet/ErekirPlanetGenerator.java | 15 ++++- core/src/mindustry/world/Block.java | 27 +++++++-- .../world/blocks/environment/TallBlock.java | 53 ++++++++++++++++++ 39 files changed, 148 insertions(+), 23 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/environment/crystal-floor1.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystal-floor2.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystal-floor3.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystal-floor4.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone-wall-large.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone-wall1.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone-wall2.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone-wall3.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone-wall4.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone1.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone2.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone3.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone4.png create mode 100644 core/assets-raw/sprites/blocks/environment/crystalline-stone5.png create mode 100644 core/assets-raw/sprites/blocks/props/arkyic-boulder-shadow1.png create mode 100644 core/assets-raw/sprites/blocks/props/arkyic-boulder-shadow2.png create mode 100644 core/assets-raw/sprites/blocks/props/arkyic-boulder-shadow3.png create mode 100644 core/assets-raw/sprites/blocks/props/arkyic-boulder1.png create mode 100644 core/assets-raw/sprites/blocks/props/arkyic-boulder2.png create mode 100644 core/assets-raw/sprites/blocks/props/arkyic-boulder3.png create mode 100644 core/assets-raw/sprites/blocks/props/crystal-cluster-shadow1.png create mode 100644 core/assets-raw/sprites/blocks/props/crystal-cluster-shadow2.png create mode 100644 core/assets-raw/sprites/blocks/props/crystal-cluster-shadow3.png create mode 100644 core/assets-raw/sprites/blocks/props/crystal-cluster1.png create mode 100644 core/assets-raw/sprites/blocks/props/crystal-cluster2.png create mode 100644 core/assets-raw/sprites/blocks/props/crystal-cluster3.png create mode 100644 core/assets-raw/sprites/blocks/props/crystalline-boulder1.png create mode 100644 core/assets-raw/sprites/blocks/props/crystalline-boulder2.png create mode 100644 core/src/mindustry/world/blocks/environment/TallBlock.java diff --git a/core/assets-raw/sprites/blocks/environment/crystal-floor1.png b/core/assets-raw/sprites/blocks/environment/crystal-floor1.png new file mode 100644 index 0000000000000000000000000000000000000000..d2cbb258d5a2343623b454873dc160ddf14f207b GIT binary patch literal 309 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V0iE8 z;usRq`ZWBc;9&(GABn65%yLsE>0NSo_0*BwWa1v1jfT4%GUlAL)4dVvdE?Oc=a0Yc z6Vxyb_I5Zj;lhq+&2x?NqW9Cyk~d{HXy37W{Z`v_ajwNy2d#6R$#dA5FC3B(()62| zAbCNd<(tDv%bbH97HvVFJ&z}+#<%WG+s>+eG!h zIa}SW11CaK&NfXI@O9={{Ck(~gh^*Z_-vSCF5TQ_nR6}p$>v9fOWse_X=907xoyX? z4{Z0@6pGfGFIl_orNOJh|L1ENytqsfLRq&kiK(r#=QUlW@XK`bF?RRosqvQ|)W2e2 PU|{fc^>bP0l+XkKtLK1j literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystal-floor2.png b/core/assets-raw/sprites/blocks/environment/crystal-floor2.png new file mode 100644 index 0000000000000000000000000000000000000000..1be27393ab52be94fba99bc4544109f6bf8d4c3f GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VA$p9 z;usRqn(Xu8%-{1440q~E=S~os;}Gg2yxvAwS67|wK`F!1X~LgunVFfHxpj5aSQA

m_8zN*D~yZzBn;SBbY%)%Em_1GAbQ!Qg<-EOocj@y{Cb2)+? z-nwy_oqy=t@`ZzU*HfmLd6GYJEM74V0h{2 z;usRq`gZzG!Da&i*WP2ME0|fkWG7h_isv2pDs+L-_d&---7V9%$gBSmSi2>kUzX?m z@$9`Ev!;6*DNapFJI;J*r<)GLElW-V{mHY7Gv~@OC}riHm2XfEI>)5o$||nHoZoTj zyurP9k1QLmB&u34YQ$En1wY@jbm3WsOHVi5%uw`Ey`deaH49hP9WDuVc4SJoO?wJAC$rw2msnnPrTR z_&Zr%=(e8Dy%ELbz3dLZQua(225+$y?_(@y&rgZl{fIYeWyo@&AMZXgFfcH9y85}S Ib4q9e0GvN~UH||9 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystal-floor4.png b/core/assets-raw/sprites/blocks/environment/crystal-floor4.png new file mode 100644 index 0000000000000000000000000000000000000000..da653b15cec681ceb7f10b833e3f604d62014785 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V0hx` z;usRqdUo1I!NUqXuBqpYH!!l6p4yVR$yMyc9=$z{(+jj}I2Ae*Jb!He@kL%<$8hhw z_p%aeZy%~{()!`C&f530*hGd~&lng!Ydl_}#OVE*$>H#v)s+kx?`rOfZP|C(?7U-< z@AuoyZ<%Ll{bO2Fn6dOrG3Uy4M@zR{X3%Am5_ot2&?SL4Iv3hrFii+CZwTR9*2}>v zp*cD70*e9HqTjX(tgo}S-_+`SpnQ*0vtx6^!Q+P~&tcu#-qP}O`?H#jX$qw(TYck} z^Q&Z@{hQXnqR88HRk{CwQt#`#jWI%+0j6#09~kFs4B}3|8(Gc3z`)??>gTe~DWM4f Dwz+!o literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall-large.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall-large.png new file mode 100644 index 0000000000000000000000000000000000000000..9d2bfdbb64022b0af8c93e5df074796870af8d03 GIT binary patch literal 906 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hEk44ofy`glX=O&!0h7b z;uumf=V_E}{$m54)Z*>;ugsfXlFuzN@AK<-*HgahgNR;Kl}Odf0KU&&X!N``lzC4Zt49$MT8+@ zn&y()=li@5YAGm$G98!_na8kHOGDA_`u3ab9&Do887p6!W;3b&h&S?{$jR^^%|UT) z&B-M1MO!Y!{fhUrf5&y;-kz&7v((PV77J)II4ooG`z4evrR?6&9$)C&QdB1YU+%<$ z6zlL4rRQ0eMs!VHBgVRB#%u{g##tH$;x=cFgfhyhWZu?LJvfJ}c*Cg~uiPhWZ>_JPOIO%ermajidy5JtOnbif8rPyt6%6J9Z&e=I?NLisymXb_gS|m;k33uP z+=T1j|8-6+LDXv0)fSyI%*8k zE#)t|JP+Kf;O!`DThVw$BU;wKegAwB(@mGx@OQ9Z+SJqPTPMgWxZc)^&-A+Ls!bIR zHVS7d121TK+{)|JHxg`UT>bO-stJ=8)V>ZATGi^9H~rWn?;>skZ(W81nu1>UuYD|0 zs6Dvu{pS4eP17}O6(%0;zrX#ie3roW{qG)pecPJLFx!UV!0X%GHGAR{ZkJ9@-xkX* z|6Y7cZqJ<07KbWj)N^xp^PPKav2(fOHaUTH*+)`O$1Pssx5AM13g{4;h4~3_CDm+;=O92iDwV2 zRnz3{JbUUU~KVp zaSVxQJsQ3-?~s9j?WK2fHR2BWP1HL7lj+|A=lW&#mp0m8=ugO9qSdu)8F$d8lqOEA z0QYUh>A!Uz*>HBs^u7Oi*ZQ_jT-kc@AMT2(OWc;(zd2nL$5gDadiE)fC1Hxp3^OJl z31FJ-Qp9BD6nbO&(+`~oAN}-<`*I*{uPIx=T2Iv{+dg$P^t+t!vQ&AuG2w0qTc@UP zr_ce9gdIoEN$wRaoE+??%9*e_e67@Encsdw1*+?3cRl62ACb<shy0KYaaM+V8mW6Q>EDMT!r;7Z}VFjfic~ zWGo1M{P%OSv8e9>bzN5`hD9C|q$hH(a=F2|$|GRumSkmqhL~*WpzzzmS7dfA`Znj> z+8If?$5-xlIU&m&>ag&2^m-{pFCBTg-j7yIHUZ{WUleTm&S~1mJ&iM#bH)7{b*(DJ zouVtA?5g_wUw=kX(JGy)Xuow0=Vwf=I>7dFVdQ&MBb@0B=LXE&u=k literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall2.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall2.png new file mode 100644 index 0000000000000000000000000000000000000000..6464cddee8357731337b1bd93161ffdb932cc579 GIT binary patch literal 375 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>U^Mh} zaSVxQJvz;h@2~=o>)aL3U)&4pno-?!Z-Mjs+m_r(=Up$I6k@!6!{OxoNdh13&(BDy z+HYsgaNx3~g|l&7&GoN$7}8s3Oxt}s|GK-G!73GF28SCpW(Hlyw%obfXD-6YFw;$D zOWQ5Q22~dK6H-Zj@&Qjhc$a>P@SZN{P^hxy(xej{UnWgs@n&#vSB%q4jZ(VkqA+)k zk@mzDdU3YXX9M1j>l zvo8d7eYyKCHb7a6MS8*4Czt<3b~5Tr-sZt0Abo8{wuZ><5ApJfQ+{|~^A7sX^OEUh gkHoFEkPdmZ{8{V$uBUBdU|?YIboFyt=akR{0GXJZY5)KL literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall3.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall3.png new file mode 100644 index 0000000000000000000000000000000000000000..019e90032cf8dfb9d67baa79706a2a6527391423 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V3hQ9 zaSVxQJv+^sui1d7jrW!14b7mbGljpf$yVJzrxW-sX35+M6E^mC&JF0Fa3a3We)sjy ze_0Pb6IgNn-L>U1vn`Ss85lG=&TrbnyhCV_z1<~&2V9~dTvu9dFcyRcaxbdB!+ewd zSfY}C!QVz^n^)?~Cr>C+Sy{Y9W;FxDdZ*4puRr0EQ8|2$J?7$E;tgw)Ia`_%7`J?U zJ|}beO3%hAi)TC)VX>=Utd|wH-)zkk|9qH1%5 zB|5kSXEJB|mZB}@#}q90Cg`>$i%%(`ICqk6f+r|xuY3Ck6WP>lK2 z!1`#C-;UOTw=J(@ESMG7rNpU)dQYC}6SVZE--*`e>^Y12*mvKrGGJg}VDNPHb6Mw< G&;$TYy^LA_ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall4.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone-wall4.png new file mode 100644 index 0000000000000000000000000000000000000000..60e70ffee6d9dbd61cf913cc0b1ebcac4ecc0f49 GIT binary patch literal 317 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VEFFo z;usRq`gW=zU$X&^tM3uZUE8OwI%DgYe_`SGw`ZDe?BtjmEo_L0U$eMLu+hs)>7 z@2=c$C(Ll*a`g>ozW9By+w~couCNszzTw_&syOTTS^pn}d+#jfos@H?acg80!xDuZ z^1*qT3Q7!oPRg1si^W#PWT>7MHsS_h^rTQXBM zjn6|}`({_5YLt;ysqrMfDLQ-;?53?!T%yod&AsNC!;3?OvJ4MmC64|3KZCL0sHViq zXU7*v9nWsvW}#H%@H_cz+-3nUMW1{|_D0KubVtp?+`U`%_%@U%wXD3?aVYsGqheCo WYU#_-I~W)k7(8A5T-G@yGywqjAbL{( literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone1.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone1.png new file mode 100644 index 0000000000000000000000000000000000000000..25549cfbaf308744f7f3a4f7bf2e4a7001216bb4 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VA$vB z;usRq`gWQxpM!yboBbo1ZyrbfzE`~aU1^O9uko+%D<_=W)b>5iWUkrg9XS<-x6B_h zT-a!D@#S*r*&Cr}mzOy-$-lm}dC`7{NeehLM1OtKU|Lw9X&UhKHHhzyjr?4Vh!^xk1*C5SH*Yp zA34;>p68+%u*!j_M{NRksqgTe~DWM4ffWK!z literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone2.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone2.png new file mode 100644 index 0000000000000000000000000000000000000000..7855ea476bf492561ea0f2af6566aa63a29846a8 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>U|8ho z;usRq`gWQlUxNY<%f%mj@3WHr{I~BZw_j8)`eIwO;Y3@e#AO!*W>v=Y1sLRdR*0@( znlJET#%$idCDOOQU5$UhSu?l0bH;iF*6C}s?=h<}W`50M>e-{_kneQt<7(D`idVV~ ztPxXJvzUCiQHFmMLh#xk@9vziplY7o;C^I+8ZAkd&c kQ&i-1{XgbVg=xYQxOK~)x-G6|U|?YIboFyt=akR{03WDSCjbBd literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone3.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone3.png new file mode 100644 index 0000000000000000000000000000000000000000..63d6d7be2d2fda6541dea314e021c6d612a5af26 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>V3_Rb z;usRq`u3V3SAzi$>xK0deC47?e&2V#v$rGfs7F?m=VaCTEr;thd2g)!Tz1fKZ+ayI zlRyIlivk0KL5-~6<3n}!=VEy$>}`zMS+b06!lKp$##zE)%sQtd9WuAbE&44b@^Erf9f}stzx)!Ih-+Sig3f%f5HtR_p*Mme9#hSTzgu$L3@)1yPUmBSnK;c2Vzu8 V@06M5GcYhPc)I$ztaD0e0s!%6P=x>h literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone4.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone4.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a441075f1fa983e70f6e38593693694a3b6b8a GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>U}*7l zaSVxQeLKaGtHFSWW%Uof_gWqQ|GU53D}OPV-%H3uO)&BMwV)Y^m$yYf&-Is2t0=0F zntplLl|NAnt{>WIE6&I*AYRBa?}6C1M(cv@)&i{RtV&tptcw;4ZCDkrn!u^fs?uOO zM`VG+(lqf3uS4!nSob`ezn+0fpn-u!fq{|3;eZi)Y@A~G)|S`D85kHCJYD@<);T3K F0RV`YL~8&5 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/crystalline-stone5.png b/core/assets-raw/sprites/blocks/environment/crystalline-stone5.png new file mode 100644 index 0000000000000000000000000000000000000000..e040f73d6719c4958beb9ecaf792d2dea78220ed GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}jKx9jP7LeL$-HD>VA$m8 z;usRq`gXb_pM!ybtM{D4a-BQ=+a9^+8X?$SW>o)dyXePo71Q^=>L#-)WBLLNbA5m4 zf8c677oG58`R}UR;Xf*`^VvMy_}%3R2d3DY!q+ zYMfIrwL$fS_{Lw63S3X_)de2la_3ih#nCmtt;dDc>r9-8hUBb<)PEt2*&0mO-f1$) zRRlRiU*Y!WiaDyvz%1AFXnzB%*Hh{IMs@Z6Ud{El|0+#pU|?YIboFyt=akR{0FP>0 AEdT%j literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/ore-crystal-thorium1.png b/core/assets-raw/sprites/blocks/environment/ore-crystal-thorium1.png index 5790f50c778ae2687e7bbce74a64d413b9e31090..da724496a5ba586b425b6e15f18f1d8420b98779 100644 GIT binary patch delta 191 zcmdnN^n!7MVf`Xc7srr@*5m{U*2M`T0fK*GYX1B`fAskO$&1=2&YGtD`DU_ir_t=z zTVj*BX0Tl<>XLEbJ$~BZra%L(4ps)o6%MYxi5g}M3=9mOu6{1-oD!M^#i delta 272 zcmaFCxPxheVf`mh7srr@*5m{UR%KZOp`Z`NA3y$Yxw7GSl#ofg4!c0I<)!r9zv@S0Qu{+M_Y;pK_$=;hn!DtPyQkQZ zR}3i*8X_LNRXLwngcbGN1ClI_6tu+WRQ+H)s(5A7oD6ma>z4Xi(~?UYa(mVNxIdhn zIIE)2szJtK-BTW(3N7Ul=fas;Jn0fMHvU&4ag$T}6z{%pX%3*5&vVay-zM?PL^bXRuP(#vskQ en1PMqR7%c`&F8gT85kHi89ZJ6T-G@yGywp^^ctm8%x8xiU+qpP_p)Eo9RL&s*Nd?yOdxxZV zEajSNdE8^#9FJuu%Qp(Y{#xnD_QSYr()4@huTQa)e=mNqd^P8jMqQ6L(^;;wcrFm- zyRj(k+noA3kqtb3YtM4@{57zY-|}d(hi46E&tHXeF+q%TCKbxpnuP zajt)8`?Vh)A#LZ_3+z^;+bb8;-sx&D{w)}!e>5eHE5LEdLFFA@UQ z#uo|BZNgbfe?>2zunZBIAjSVVXmh5AmdK II;Vst0L4{+TL1t6 delta 277 zcmcc2w1;VeK|RAaPZ!6Kh}O5EyLk^82-se_u!%8RA<%%qc>`yvSz-sz1SO&94UD>> zD|&K@=RcP>sS8>XakBdRyEoRtr6qqPXJ2EC+n)OM`t8$(9h{OITms~dhqtOQUST;T zUvz>)XWwrFs3Xrx^e!=p@$KxbRQxvEF_2R;pmc0jm9pvhBy0oH5I!g3{ zP=;OC+E<~w`*vz6L{G0>x~!~)rIfpf%{!FYz&)}f8TwMTm8p{Gj@VCukMPZ jLeVUqC4GGo`9dH%*-EC8P?_a6mmS!mhEH|X=kuf*v25u fx|o5D;Z#b_jm_t^Tp1X+7#KWV{an^LB{Ts5pB8S; delta 289 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 U8ue0PP?wCs)78&qol`;+08!t2^Z)<= literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/arkyic-boulder-shadow2.png b/core/assets-raw/sprites/blocks/props/arkyic-boulder-shadow2.png new file mode 100644 index 0000000000000000000000000000000000000000..70157136b78aa62f20a06591b53a20e373e360d4 GIT binary patch literal 3327 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 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/arkyic-boulder-shadow3.png b/core/assets-raw/sprites/blocks/props/arkyic-boulder-shadow3.png new file mode 100644 index 0000000000000000000000000000000000000000..e509e055c2a8fa9fc529af5994cf8096b8d88a75 GIT binary patch literal 3167 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 be{>;!&t%tXkKQ>Mpz7Jv)z4*}Q$iB}80gQM literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/arkyic-boulder1.png b/core/assets-raw/sprites/blocks/props/arkyic-boulder1.png new file mode 100644 index 0000000000000000000000000000000000000000..bec5753b6af024c1ea02764eb79e6080f20465d0 GIT binary patch literal 594 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FVB+y~ zaSX|5d>f$~)a=N^%d?Js#T(Xw47TXr6^FvVGjZrO99t}qq0_wXHLKlC<`D6%J~uqe z;>(1mo%^yf|JUT{({uKzc$Yld@xkoJmtA(x=G)rs+3{IrhvYPw=?`?DT{?UsYjevS z^+TaIr%r!m_6;_Tp13Ud8&K*gb`&Lk#ovBnzLz6Yo7E^6R7E_}#X;HAyP z#SB{}>`fH<@bh12O}e*|(mflQyS+ZmR~{^ReC76uUGAJLQQPaP|Gkh?ot3?yY>tJ} z>%+Nb?#7cgJrt}}dfv+;n0QjAX+o&K@T0djffE{7^i&R2E=pk3-4Mt1N1Ac#UI*bs zp#>Aam@M8Bu53K{NU&;L?zH1!k2~Ie>EWxj^q+V|NVeCZsYEg1;X|1K^=&*UTQ|qN z63r~%_F*MckrKb)w4a=NIW*D~s*btmn|KMZe(>mx3JI98?Ba{3OIokn_!TE#YjWN= zpReGVBIC}DcMAOl=XBd=%M`G=U3KaW7g^xjxAe*67q4*Vn0wzc^ZcwERW9A834)DQ_jldMU|Q|kBjA=BZK)!7SZvm{)xT^a zoXw58Ido4S4nK8o^^Av17Al7Iq4DW+3RnGL^EDHR*YEf9V_;xl@O1TaS?83{1ORxt B1KR)q literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/arkyic-boulder2.png b/core/assets-raw/sprites/blocks/props/arkyic-boulder2.png new file mode 100644 index 0000000000000000000000000000000000000000..a9ecf43cddefffb05538f17c70eab0362115c1ef GIT binary patch literal 535 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FV7%z* z;uwr}r;{(u?WQ$*99x|zF9HCHz_#VpuivqE8qiSV8r{e&It5qn(k z6`D@dJ!yZ_=kHk-m5+H}{-}6MH@Gb>yu7C9-kX9u{y#SNZ(qM=f1~HFo%#t~K~5p& zwYBv#85rixyT0hPSI3U&I``h0U4Hy4vF?7kn~swC8`+!h%!+sIP+~~&ds5c;v_aa2 z;Xs1h0l$bW>mu>!hUWf@<I=@v*pU1V9(@H>S;$ha41|DmB zmj!eQPm6in?0@8}?BWO)LB=_HJ6d21@{cDm|F)oUpr>vKAp47v|J6|cMa#X+h)pFx~jbC^vgTh*V9VdncKbFw+@X7@zBfo?fG6)x| qs8k3t=|p(E)m(5f!{ndh{>8^$bl1u!J2EgZFnGH9xvXU|j0y z;uwZ=SwE5&s6ME6cXE z-JJREe*KI9)BRkIp+>*szrVlNS?ufU`#(ziS>k(n{rjK)-=FvW%ID-oHVP(k!I~1E z7Ycng+}PmLzTla2WWodeO=tX_6xYpA({bWvV*WC>y!QFU_3o_>Gpqxon}in563BkS z=)azSznnq)j=Omik`-5~{r~szUCy7h;<5;+IR-IwUN(&uqDLk;xCkO40cWOR~dEkF3$~Omn@}t0X%?gH5n(+54Jp!U3+{ z|Lr&&?aJf3?N-M>OS-fsnPb6|DBh{7_7#h!D=a_QzsTvJ;IGqqOH#}Nvlc96T@*Tz yb4AN2O8yOgwr&NVRlmsP~D-;yvr)B1( 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%0A}^NWsGrjb+G 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 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/crystal-cluster-shadow2.png b/core/assets-raw/sprites/blocks/props/crystal-cluster-shadow2.png new file mode 100644 index 0000000000000000000000000000000000000000..7c3a8a3f9b5229879ef1914d6d23a0df29d2043b GIT binary patch literal 9510 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 RV_;xl@O1TaS?83{1OTLT5gz~m literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/crystal-cluster1.png b/core/assets-raw/sprites/blocks/props/crystal-cluster1.png new file mode 100644 index 0000000000000000000000000000000000000000..5adf9a96e0314a002f5b21815bec1261e54dd64f GIT binary patch literal 4884 zcmeAS@N?(olHy`uVBq!ia0y~yV7LIn9Bd2>3}s8+moP9eFct^7J29*~C-ahlLFk;P zi(^Q|oVRmrJ7SNE9{;c3sjAGalfuKPC33y!V}as?h>3a|cZC!xo}8eTvvI+x1x`zD z9a^BqB))2G&c@QNSn-u%9s*4_4l#-61+mPr=y>39C|lC3)#i2O=HmA?b7xvUzxO%& z%g=lFc9z$DKQreilZa~|8mcJxer@jId)FO&&l~++a-Bcym!WEB)pS?ZS%Q1DrA=i{ zecpUee1XQw0)gWTn0#k6|L*UrtABs8`Jh*M!GA%&dpoW?nU%D0{oP~XeP6k=yJufr zf1=;)q1vec)-Q^Y^X{#1Fm4StKH)aWrh&`E^NyEA$j>wXy*tB9Pfkq#d+64pTdb}N zn9j=R33+zgu!&|I+c9=}1js(0+S|B=6}-{jlRTS7Dc z_4iKENa_B3bpO1KJ$AvF+iq^~PQLwDSzcG^;*1wEp1oFjx>|-$iysTsHXLKBt;$Un z47N;G3Ovoi{9NP7(fg2ZarRE#aCU@>0l^ybeZw|Jkj6 z!CWHn;&Qe$x5B=eQ?xF{qVt+aOB%f|bEK#k1#)=2->}?8WhwuaTDf5NH&x7E`t2Or)nr;-9Oiha z`dVeq+;M3ie`v}C8$*+JJ#G(q@??H>Ci-0WvSUXAe*fEj)?BYd^u^2W={F*F`>6>A*k>PC zsfG* zhs^U{-axC|cBWU1LDM&;pV$1w;KL%-w29woXF#{JF<*!Dcg>yccAhKPJ)Cb`Y@cnz zpxjs!$g$x43Ge8S8Nt@Se!T16`_hBE^3Lx$*W~SO-CwS=T3UkUB<+p`>@>sarVQ27% z?E60?I-~UFZ+IV^^|`mmqv1)nnoD_OP0OspHZh^EVww5H&pqaay{@fUbY(*No1aIo zHQp<^KU1V4)Uar_<}<|t4;CIzmzhm(4NKjX&l~6{3ozuo&r{voXt8~1vGNqz+NwZr zxpU{WSc-%d~rT+Kvdd8M`t?AQGpWJhD=^-^H#?_+7_B001E^3=6s%>g?R3UMH zv&1ryT81>Hom2Yi3o5LyXK)pI%y@F(VP(K!KZW?ss^(mbHFC3Lr)n&nq!fIn_=D^G zd!ADS-mnyD=AL4#Q7MuXdim(5v9@UYs-M?h+ZF8nFR~#wf7e;_;DugV!r!-Vom;cv zc;6kP>1S@fF62*Ir~7?Z)qIr`R@~{y$6Shxird_q-5Hc#P_y8LI&&Fd!`7yW!z$1YyTvqt%Xz?9d?DlSS2>mC)>OCE`v z-)VB^DI<%k!h!iS7t1Vs9>u~#5!s-fwxmUXii+ca$82w82PGC`>K*n}@a5?v-{ zw|7T#ulvMsNNK{tu=*1UD}{c&kZnD-$p4gg*Jca0Z{ikhyW`rb4lPZYcuXtnY*CL-8uJiEtXpUxcJK<$ZMLcEuh_$QQ|U2D!`_?+vi zO?-xs?+(Krm+-v!qsMN2bv--R_U)-Dw~oKqd1sev{EPPKH%@)_I4JHJwA7;V@uiF3 zkG%0L{C-XL{r%gk6Vz1$&O`{bx@`1bmHchRWQkIqjo0I({X|ZsN#XmG z&6B(>+gAK@D2sc_ zFXN)c{_8CE`ga&utN9kmte7&VZsL}G+)wRpS$gb zWBsD#99XT|L?$lDb=$Fb_tuO`0b|y8e>qPw`(&swnO^F<`Jk<&^3KN93qLNq$!%gL zw@~Qm#p-G0T+X-CZ~C6!cra?Mf>_M#;tE^<{-_QNBJH{4Q z-KpZK@a|K~whLZ=_pM{PSuo+`^rG5df2jljg#u&E(+eAH zDj5=)B$MRXS_3w2u1RM9yTq)!X#MQn77qJt8Uz{{{`)PmV$|}ss@;u_XU}XpM zg%ivM9?8L;EIr*3LlL$;r;&IapfETbI`zNXvC!+u1us$aC!-)02Dmzq9bq{LGu6Bp^_}scFe6 zlj%O;-d^SQrT_KHn}wy#m>4sUPxe?5F=^Ygr(9p#zP{tzcA$lY>C?F%4`VKRX)!!6 zy4tdd(`Ji0v%}_%%GQlM!9tm*9_xl&@z{4|8he7y1jX|F?7XS{zk23t1{fzxp4xWS zO(8+*V#Yb9t$uH>pV-E$nB*Ay%A`0?)c?^90oJwrDx1GMZ14ZKW#PRGaV{)ITjcZ? zCFuQ~e^0-2<3GND_bMELOp+SQ{|6XP|2Y5Np&MIXz5gMgI^m|zoio|L3tmrNp(?1G zQMt}vzepn?Tc^z3hXaCQi)!Ym}e%&m;SD&xTf54*Gwq##w zer43<&rf!R9oeU1_xshyht~OX4;}rSUhwYhb?x|28J+9QyayfU$%)Q7Jn_pNi}Gis zbF44ND@_yhP(EL1v9x!kr>6AwssnmVD{T%xS$ActefEV8H|OsvPVc4#?VS;%(s8zG ztCH)huiV+()jk&jUR(TD+~ul}`N(JDq>ixWDf{LL9#s$Y-u0z1L@sX2yf2n+Z%SwI zrrgpH|tkWtQs##m1_W$@X(*-PBkmyx!7y z%Y%up4s4n+-EY0dl`l`2&65u~$}R9y?e8_Yqsle+%HEA-wGYoZcHjJ3tR)mGn(<=J z$>!hvH%=sX%ypA*N}90Q+%UCb$Nv3AZENz=N;;(eDupk)#T5FQx$w>BE9+M5{434( zSLw2S_ugrzPph7rSH-*B?~jPXy|~Mk?H29x5?}8MRb}EmS^VkPQoZBzk9Ry?ZJ~K6 z(BnYmll#Zt*HsoWGVG7|fAz(G?vtU~LbX4?7TeT*47xTcFK?pywxDSoCfA)Cl39%c zIyVe3{K z-G^0G+gcc-y*e8?{uHO z{Aeq)nE(5V$3k6PJC%-lxiHRj`1Y$u>{G$4ruai5rx>2NFWhK1u`x^T?&I|N>#uls zX@uwm^dI#x)sB5PBXI3}(e5oTCOfb4Fcg{^WW)Ew@A^v1fKyL%&lXFco$32V*j(tW}hBMge%Q!ImLdsF}1 zBME&Q`Yna7+*!Yj>FTuh#TIRsxK@4sbV@=fbIniD>P3m2E*IrPDnGp}G?>N{( zVW9ev89po1KiqPuEqL|mM;}Mc?=Pz(kIk?Bx?{zfNzb2eRVv|%eerptkYtU~Q!kM} z0lt-09m2Z;t7lugf7FQoN|JB zi~UkPF9l6eP18#^0_Ig5bDVdry(l(LulrQ2mY;qT)6-Lz7YQxB^JPY(MVIh-ixbMc zD?c$XHWocu8QZ9_r0}rK)rE0)o;<8GS&~x7)6BH=+^Thfl{LZFx0i2svls3%*?Q~5 zohL6HbBy!29!czBeW~jI&gfo5+Y`;RW<}GNr;2FFUY>YtBgYga|IFnRtGX8|W~HU= zIDJ_vUS!rHi#E~5q^F)MP4YrI*PdB>d1Bj?7s{^l;%XOab|+hCC3wh{Uw*gz{Qln` zzw5`X`xE7qU05_bKj_KEOjW_FO;(&Tt_uPd=3m=C?VV4g+)}=~elMRnoNLpVqt?DG z&U^K;I|u)|pY5Oh-gSELF3Uq7d#(kfKDRn{_+#9)q-{)v{dStqzbsjB);}ukZj14e zJ%-s~Hj`Iw5!RSK{q!npnXNr>!FiX?8Zmvn!E?#|q}+w2SNdGa!mis&mwTNFQkX4w z@wocA+spkQbld+Gb=X@wCpOCb`7(`*Z)O#&?u(-*j6YYGxqzO2g#oQ{K&84(n|4j{dov|9=BR-}-!`-v&ocOx`tbWtx%m%JXYj zHbw5=uq|T$2DXIK!Ubn<2CskkvU~c`_KV;m#rn9$J69^-tjzVYo18nl=m^J?$;(x0^Xj*Ice+doJW*HatI2g%i>YwQ zvrg6nt5;0Xp15r5;S~{+psNhEc~*q)a&Sr z#-!kB9;`u&I6zG<6P1ZqJeRPYeXV`+h>rL7voFfh^ZgSi3w~q`sQ7&F_w_KBO{%k+ z9B#D)uX>~=x$K&}(0{goltiUVPoEYE33{N98;PKgB%OTt|BC*Pdj?u}E-^4LFnGH9 KxvX}eW literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/crystal-cluster2.png b/core/assets-raw/sprites/blocks/props/crystal-cluster2.png new file mode 100644 index 0000000000000000000000000000000000000000..40a03531c3c4af1bf52b855e99b9f04655de1193 GIT binary patch literal 2688 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 Mr>mdKI;Vst0GYG~v;Y7A literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/props/crystalline-boulder2.png b/core/assets-raw/sprites/blocks/props/crystalline-boulder2.png new file mode 100644 index 0000000000000000000000000000000000000000..d94d92be6ba0acb95aaffcee40aaefa8c1e9a41d GIT binary patch literal 689 zcmeAS@N?(olHy`uVBq!ia0y~yU@!n-4mJh`hH$2z?FV9NG% zaSX|5d^=;m-(drRW9uE##T*hfgoWx`4;{EPQ~kvm>n+X`Dp*u@ec(H@hoNI*af=3P z=StaIjphj&!Ai$>cAx)tQ&h-)WzcPtci(@$D}KcAXLD4PBHP~mJELFS|C+zP`Oowp z3ugRi5>VU2Cd1eM^!K;#lSI}jxcfxeNApUk$1flj42xh%tlNN|AS^ zT7+VmWA6G1X(xCRHuDFZXKbGknYi9*pU2D##tl*n((X?em>Lmo|D`JYLf%@*qxt#o zCLG_D$u(D{(Qnd$oQ*4F=j)1H@DvhX`{L@3H4f{`pPH=blDn2SYZ2qLH7-kA_u1X+ z*?d0MEi`Nsm*?Wy6IMB89w`47n|AXWOPT$Vbq(IHk2ox8t*N@ReQE@oO4M@C6}_B$ zd-rH5DBcsF#yI`={H6=lZ0osZ+-lOkr|z7?93pBk(Xc!#?04hIk{-6IsnMr5G5u~| z?kKl!)`nd9Pi4P8esuH*idp0QX0uXaN8E|H`^90>H)qW7IX+dK?fQ}PVXK$v-&i(J zD7t37KAW1b`1I%R`o%OAS8?3FwkXVm$IFJ{V~oa?c{3KB?9j41z3En=$&ouc9*$3w zzb9N@p&Y>$6YzOq*YUJ{4J8u0dqZ-p6mHF%(VhEy5?j*q1EQ~wzg}1{*WjYSYo(+a z={wChGiTZMan3K>Y85Dc_;2#pJ^LrE&G^HVb%k9uqs9W11{pkE{an^LB{Ts5qTo7^ literal 0 HcmV?d00001 diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index dba21cc9e6..d00da281b6 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -499,3 +499,9 @@ 63205=ore-crystal-thorium|block-ore-crystal-thorium-ui 63204=ore-wall-beryllium|block-ore-wall-beryllium-ui 63203=ore-wall-tungsten|block-ore-wall-tungsten-ui +63202=arkyic-boulder|block-arkyic-boulder-ui +63201=crystalline-stone|block-crystalline-stone-ui +63200=crystalline-stone-wall|block-crystalline-stone-wall-ui +63199=crystal-cluster|block-crystal-cluster-ui +63198=crystalline-boulder|block-crystalline-boulder-ui +63197=crystal-floor|block-crystal-floor-ui diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index c125c43533..3ed804cf44 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -45,10 +45,11 @@ public class Blocks{ redmat, bluemat, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, redweed, purbush, coralChunk, yellowCoral, - regolithWall, yellowStoneWall, rhyoliteWall, steamVent, carbonWall, redIceWall, ferricStoneWall, beryllicStoneWall, arkyicWall, - ferricStone, ferricCraters, carbonStone, beryllicStone, + regolithWall, yellowStoneWall, rhyoliteWall, steamVent, carbonWall, redIceWall, ferricStoneWall, beryllicStoneWall, arkyicWall, crystallineStoneWall, + ferricStone, ferricCraters, carbonStone, beryllicStone, crystallineStone, crystalFloor, iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, grass, salt, - shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, carbonBoulder, ferricBoulder, beryllicBoulder, yellowStoneBoulder, + //boulders + shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, carbonBoulder, ferricBoulder, beryllicBoulder, yellowStoneBoulder, arkyicBoulder, crystalCluster, crystallineBoulder, metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor4, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, pebbles, tendrils, @@ -398,6 +399,14 @@ public class Blocks{ variants = 4; }}; + crystallineStone = new Floor("crystalline-stone"){{ + variants = 5; + }}; + + crystalFloor = new Floor("crystal-floor"){{ + variants = 4; + }}; + redIce = new Floor("red-ice"){{ //TODO red ice boulder dragMultiplier = 0.4f; @@ -530,6 +539,11 @@ public class Blocks{ arkyciteFloor.asFloor().wall = arkyicStone.asFloor().wall = this; }}; + crystallineStoneWall = new StaticWall("crystalline-stone-wall"){{ + variants = 4; + crystallineStone.asFloor().wall = crystalFloor.asFloor().wall = this; + }}; + redIceWall = new StaticWall("red-ice-wall"){{ redIce.asFloor().wall = this; }}; @@ -636,6 +650,24 @@ public class Blocks{ yellowStone.asFloor().decoration = regolith.asFloor().decoration = this; }}; + //1px outline + 4.50 gaussian shadow in gimp + arkyicBoulder = new Prop("arkyic-boulder"){{ + variants = 3; + customShadow = true; + arkyicStone.asFloor().decoration = this; + }}; + + //TODO better visuals, maybe make tree + crystalCluster = new TallBlock("crystal-cluster"){{ + variants = 3; + clipSize = 128f; + }}; + + crystallineBoulder = new Prop("crystalline-boulder"){{ + variants = 2; + crystallineStone.asFloor().decoration = this; + }}; + metalFloor = new Floor("metal-floor", 0); metalFloorDamaged = new Floor("metal-floor-damaged", 3); diff --git a/core/src/mindustry/entities/comp/BuildingComp.java b/core/src/mindustry/entities/comp/BuildingComp.java index c31e160f3f..ef9f4541d2 100644 --- a/core/src/mindustry/entities/comp/BuildingComp.java +++ b/core/src/mindustry/entities/comp/BuildingComp.java @@ -1031,12 +1031,6 @@ abstract class BuildingComp implements Posc, Teamc, Healthc, Buildingc, Timerc, } } - public void drawCustomShadow(){ - Draw.color(0f, 0f, 0f, BlockRenderer.shadowColor.a); - Draw.rect(block.customShadowRegion, x, y, drawrot()); - Draw.color(); - } - public void drawCracks(){ if(!damaged() || block.size > BlockRenderer.maxCrackSize) return; int id = pos(); diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 44d5ad9298..138b92679b 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -368,12 +368,13 @@ public class BlockRenderer{ Draw.reset(); Draw.z(Layer.block); + if(block.customShadow){ + Draw.z(Layer.block - 1); + block.drawShadow(tile); + Draw.z(Layer.block); + } + if(entity != null){ - if(block.customShadow){ - Draw.z(Layer.block - 1); - entity.drawCustomShadow(); - Draw.z(Layer.block); - } if(entity.damaged()){ entity.drawCracks(); diff --git a/core/src/mindustry/maps/generators/BasicGenerator.java b/core/src/mindustry/maps/generators/BasicGenerator.java index 843a65455f..a3a1754dba 100644 --- a/core/src/mindustry/maps/generators/BasicGenerator.java +++ b/core/src/mindustry/maps/generators/BasicGenerator.java @@ -364,6 +364,21 @@ public abstract class BasicGenerator implements WorldGenerator{ return false; } + public boolean near(int cx, int cy, int rad, Block block){ + for(int x = -rad; x <= rad; x++){ + for(int y = -rad; y <= rad; y++){ + int wx = cx + x, wy = cy + y; + if(Structs.inBounds(wx, wy, width, height) && Mathf.within(x, y, rad)){ + Tile other = tiles.getn(wx, wy); + if(other.block() == block){ + return true; + } + } + } + } + return false; + } + public void decoration(float chance){ pass((x, y) -> { for(int i = 0; i < 4; i++){ diff --git a/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java index 9eb55371a5..1692fdaed6 100644 --- a/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java @@ -24,7 +24,8 @@ public class ErekirPlanetGenerator extends PlanetGenerator{ public float heightScl = 0.9f, octaves = 8, persistence = 0.7f, heightPow = 3f, heightMult = 1.6f; Block[][] arr = { - {Blocks.regolith, Blocks.regolith, Blocks.yellowStone, Blocks.rhyolite, Blocks.basalt} + //{Blocks.regolith, Blocks.regolith, Blocks.yellowStone, Blocks.rhyolite, Blocks.basalt} + {Blocks.regolith, Blocks.regolith, Blocks.yellowStone, Blocks.crystallineStone, Blocks.basalt} }; @Override @@ -210,9 +211,17 @@ public class ErekirPlanetGenerator extends PlanetGenerator{ } //TODO design ore generation so it doesn't overlap - if(noise(x + 999, y + 600, 4, 0.63f, 50f, 1f) < 0.2f/* && floor == Blocks.yellowStone*/){ - ore = Blocks.oreThorium; + if(noise(x + 999, y + 600 - x, 4, 0.63f, 50f, 1f) < 0.25f && floor == Blocks.crystallineStone){ + ore = Blocks.oreCrystalThorium; } + + if(noise(x + 999, y + 600 - x, 5, 0.8f, 50f, 1f) < 0.38f && floor == Blocks.crystallineStone){ + floor = Blocks.crystalFloor; + } + } + + if(block == Blocks.air && floor == Blocks.crystallineStone && rand.chance(0.08) && nearWall(x, y) && !near(x, y, 4, Blocks.crystalCluster)){ + block = Blocks.crystalCluster; } }); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index ed0744734c..f1128cc5ba 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -294,7 +294,7 @@ public class Block extends UnlockableContent{ public TextureRegion region, editorIcon; public @Load("@-shadow") TextureRegion customShadowRegion; public @Load("@-team") TextureRegion teamRegion; - public TextureRegion[] teamRegions, variantRegions; + public TextureRegion[] teamRegions, variantRegions, variantShadowRegions; protected static final Seq tempTiles = new Seq<>(); protected static final Seq tempTileEnts = new Seq<>(); @@ -314,14 +314,22 @@ public class Block extends UnlockableContent{ if(tile.build != null){ tile.build.draw(); }else{ - if(variants == 0){ - Draw.rect(region, tile.drawx(), tile.drawy()); - }else{ - Draw.rect(variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))], tile.drawx(), tile.drawy()); - } + Draw.rect( + variants == 0 ? region : + variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))], + tile.drawx(), tile.drawy()); } } + public void drawShadow(Tile tile){ + Draw.color(0f, 0f, 0f, BlockRenderer.shadowColor.a); + Draw.rect( + variants == 0 ? customShadowRegion : + variantShadowRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantShadowRegions.length - 1))], + tile.drawx(), tile.drawy(), tile.build == null ? 0f : tile.build.drawrot()); + Draw.color(); + } + public float percentSolid(int x, int y){ Tile tile = world.tile(x, y); if(tile == null) return 0; @@ -1019,6 +1027,13 @@ public class Block extends UnlockableContent{ variantRegions[i] = Core.atlas.find(name + (i + 1)); } region = variantRegions[0]; + + if(customShadow){ + variantShadowRegions = new TextureRegion[variants]; + for(int i = 0; i < variants; i++){ + variantShadowRegions[i] = Core.atlas.find(name + "-shadow" + (i + 1)); + } + } } } diff --git a/core/src/mindustry/world/blocks/environment/TallBlock.java b/core/src/mindustry/world/blocks/environment/TallBlock.java new file mode 100644 index 0000000000..cf3334b4f3 --- /dev/null +++ b/core/src/mindustry/world/blocks/environment/TallBlock.java @@ -0,0 +1,53 @@ +package mindustry.world.blocks.environment; + +import arc.*; +import arc.graphics.g2d.*; +import arc.math.*; +import mindustry.graphics.*; +import mindustry.world.*; + +//I don't know what else to call this. It's not a prop, it's not a tree. +public class TallBlock extends Block{ + public float shadowOffset = -3f; + public float layer = Layer.power + 1; + public float rotationRand = 20f; + + public TallBlock(String name){ + super(name); + solid = true; + clipSize = 90; + customShadow = true; + } + + @Override + public void init(){ + super.init(); + hasShadow = true; + } + + @Override + public void drawBase(Tile tile){ + float rot = Mathf.randomSeedRange(tile.pos() + 1, rotationRand); + + Draw.z(Layer.power - 1); + Draw.color(0f, 0f, 0f, 0.6f); + Draw.rect(variants > 0 ? variantShadowRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantShadowRegions.length - 1))] : customShadowRegion, + tile.worldx() + shadowOffset, tile.worldy() + shadowOffset, rot); + + Draw.color(); + + Draw.z(Layer.power + 1); + Draw.rect(variants > 0 ? variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))] : region, + tile.worldx(), tile.worldy(), rot); + } + + @Override + public void drawShadow(Tile tile){ + + } + + @Override + public TextureRegion[] icons(){ + return variants == 0 ? super.icons() : new TextureRegion[]{Core.atlas.find(name + "1")}; + } +}