From eb639fbaecef977123a3684188ce76061ed82dc8 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Thu, 23 Apr 2026 01:06:20 +1000 Subject: [PATCH 01/16] recipe crafter works with power, new buildings -Added the Grinding Quarry which rips up floor blocks for resources, along with mining overlays for items indefinitely -Bulbhead now gains charge when not building, and uses it to boost its buildspeed. -Overseers no longer display a shadow -RecipeCrafter """WORKS""" with power (functional but implementation is really scuffed) -AspectPipe pushes liquid backwards now -New environmental props -New crafters/prod structures --- assets/bundles/bundle.properties | 15 +- assets/bundles/bundle.shitpost | 3 + .../environment/badlands/soft-dune1.png | Bin 0 -> 300 bytes .../environment/badlands/soft-dune2.png | Bin 0 -> 301 bytes .../aspect-discharger-full.png | Bin 0 -> 5531 bytes .../aspect-discharger-matting-glow.png | Bin 0 -> 325 bytes .../aspect-discharger-matting.png | Bin 0 -> 393 bytes .../aspect-discharger-mid-coils-glow.png | Bin 0 -> 334 bytes .../aspect-discharger-mid-coils.png | Bin 0 -> 499 bytes .../aspect-discharger-mid.png | Bin 0 -> 2204 bytes .../aspect-discharger-top.png | Bin 0 -> 3197 bytes .../blocks/power/conductive-pile-glow.png | Bin 0 -> 456 bytes .../sprites/blocks/power/conductive-pile.png | Bin 0 -> 269 bytes .../units/launch-station-base-range.png | Bin 0 -> 4465 bytes .../blocks/units/launch-station-base.png | Bin 0 -> 741 bytes .../blocks/units/launch-station-flipped.png | Bin 0 -> 1766 bytes .../blocks/units/launch-station-glow.png | Bin 0 -> 2054 bytes .../units/launch-station-launcher-shadow.png | Bin 0 -> 3420 bytes .../sprites/blocks/units/launch-station.png | Bin 0 -> 1774 bytes assets/sprites/blocks/walls/friction-pad.png | Bin 0 -> 873 bytes .../sprites/blocks/walls/gate-spike-open.png | Bin 0 -> 926 bytes assets/sprites/blocks/walls/gate-spike.png | Bin 0 -> 221 bytes assets/sprites/items/electrum-sheet.png | Bin 432 -> 432 bytes assets/sprites/items/meld-shard.png | Bin 0 -> 559 bytes src/meld/Meld.java | 1 + src/meld/content/MeldAttributes.java | 3 +- src/meld/content/MeldBlocks.java | 193 ++++++++++++++++-- src/meld/content/MeldBullets.java | 63 +++++- src/meld/content/MeldEnvironment.java | 24 ++- src/meld/content/MeldFx.java | 66 ++++++ src/meld/content/MeldItems.java | 7 +- src/meld/content/MeldMappings.java | 21 ++ src/meld/content/MeldRecipes.java | 9 + src/meld/content/MeldStatusEffects.java | 40 +++- src/meld/content/MeldUnits.java | 6 +- src/meld/core/Melting.java | 1 - src/meld/entities/unit/BulbheadEntity.java | 57 +----- .../abilities/FabricatorBatteryAbility.java | 47 +++++ .../unit/abilities/SlipstreamHullAbility.java | 15 ++ .../blocks/consumers/ConsumePowerRecipe.java | 18 ++ .../world/blocks/crafting/RecipeCrafter.java | 11 +- .../world/blocks/defense/FrictionPad.java | 51 +++++ src/meld/world/blocks/defense/TreeWall.java | 60 ++++++ src/meld/world/blocks/fluid/AspectPipe.java | 10 +- .../world/blocks/power/ConsumeThermal.java | 29 +++ .../blocks/production/GrindingQuary.java | 157 ++++++++++++++ .../world/blocks/units/LaunchStation.java | 162 +++++++++++++++ src/meld/world/meta/BuildingPriority.java | 1 + src/meld/world/util/ItemLogic.java | 23 +++ 49 files changed, 1009 insertions(+), 84 deletions(-) create mode 100644 assets/sprites/blocks/environment/badlands/soft-dune1.png create mode 100644 assets/sprites/blocks/environment/badlands/soft-dune2.png create mode 100644 assets/sprites/blocks/power/aspect discharger/aspect-discharger-full.png create mode 100644 assets/sprites/blocks/power/aspect discharger/aspect-discharger-matting-glow.png create mode 100644 assets/sprites/blocks/power/aspect discharger/aspect-discharger-matting.png create mode 100644 assets/sprites/blocks/power/aspect discharger/aspect-discharger-mid-coils-glow.png create mode 100644 assets/sprites/blocks/power/aspect discharger/aspect-discharger-mid-coils.png create mode 100644 assets/sprites/blocks/power/aspect discharger/aspect-discharger-mid.png create mode 100644 assets/sprites/blocks/power/aspect discharger/aspect-discharger-top.png create mode 100644 assets/sprites/blocks/power/conductive-pile-glow.png create mode 100644 assets/sprites/blocks/power/conductive-pile.png create mode 100644 assets/sprites/blocks/units/launch-station-base-range.png create mode 100644 assets/sprites/blocks/units/launch-station-base.png create mode 100644 assets/sprites/blocks/units/launch-station-flipped.png create mode 100644 assets/sprites/blocks/units/launch-station-glow.png create mode 100644 assets/sprites/blocks/units/launch-station-launcher-shadow.png create mode 100644 assets/sprites/blocks/units/launch-station.png create mode 100644 assets/sprites/blocks/walls/friction-pad.png create mode 100644 assets/sprites/blocks/walls/gate-spike-open.png create mode 100644 assets/sprites/blocks/walls/gate-spike.png create mode 100644 assets/sprites/items/meld-shard.png create mode 100644 src/meld/content/MeldMappings.java create mode 100644 src/meld/entities/unit/abilities/FabricatorBatteryAbility.java create mode 100644 src/meld/world/blocks/consumers/ConsumePowerRecipe.java create mode 100644 src/meld/world/blocks/defense/FrictionPad.java create mode 100644 src/meld/world/blocks/defense/TreeWall.java create mode 100644 src/meld/world/blocks/power/ConsumeThermal.java create mode 100644 src/meld/world/blocks/production/GrindingQuary.java create mode 100644 src/meld/world/blocks/units/LaunchStation.java create mode 100644 src/meld/world/util/ItemLogic.java diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index 3adb752..2d0589e 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -20,6 +20,9 @@ block.meld-vivalo.name = Vivalo block.meld-vivalo.description = Atomizes and fires a jet of crystalline particles which pierce armor. [accent]\n\nQuick rotation speed and increased coolant effectiveness.\n\nEffects vary based on ammo type, ranging from Laceration to Shattering[] block.meld-vivalo.details = This design was cut down to be as light as possible to be quickly cosntructed and deployed. Crystals would be crushed in the base, stored in the drum for quick feeding and then be accellerated. The drum was placed on the opposite side of the accelerator to shift the center of mass towards the middle, enabling quick turning. The design's fragility was easly compensated for with walls from its front, but sustained fire would quickly destroy it. +block.meld-vinca.name = Vinca +block.meld-vinca.description = Sprays down targets with high pressured armor piercing crystalline particulate suspended in [#cbdbfc]Aspect[].\n[accent]Sticks shrapnel in targets![] + block.meld-vivisection.name = Vivisection block.meld-vivisection.description = Assembles and launches [#4bb66b]Resonarum[] sawblades.\n[accent]Lacerates targets without armor[] @@ -33,13 +36,15 @@ block.meld-gas-kiln.name = Gas-fired Kiln block.meld-gas-kiln.description = Heats materials using [#cbdbfc]Aspect[], often used for [red]primitive[] refinement processes like smelting or ceramic blasting.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings - block.meld-rotary-kiln.name = Rotary Kiln block.meld-rotary-kiln.description = Burns mass amounts of [#cbdbfc]Aspect[] as fuel, heats materials to process them in bulk.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings block.meld-pneumatic-extruder.name = Pneumatic Extruder block.meld-pneumatic-extruder.description = Extrudes material into pipes, uses [#cbdbfc]Aspect[] to run. [accent]\n\nDebris + Elnar -> Aspect Pipe\n\nSilver/Annealed Silver + Debris -> Aspect Pipe +block.meld-storm-iris.name = Storm Iris +block.meld-storm-iris.description = Converts stable [meld-aether]Aether[] into charged [meld-thundering-aether]Thundering Aether[] +block.meld-storm-iris.details = The storm is here.\n\n[red]PANIC[]\n\nTides washed upon the Bassalt Groves, but it would not falter.\n\nHeavy rains of biomass and crystals peltered the roofs of the facility, but it would not falter.\n\nThen came the void...\n\nThe flooding was never preventable, it was inevitable.\n\nBasalt groves filled with light.\nForgotten and entombed yet in the night... block.meld-heating-basin.name = Heating Basin block.meld-heating-basin.description = Runs [#b89f47]Nectar[] through pipes laced with Carbolith dust over geothermal sources to extract [#89828c]Mercury[], producing loads of Debris as a byproduct. @@ -328,6 +333,14 @@ block.meld-buffer.description = Stores a small amount of items with separate cap block.meld-interface.name = Interface block.meld-interface.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Can connect to the core!\n\nGround units can walk over this. +block.meld-launch-station.name = Launch Station +block.meld-launch-station.description = Pulls units in, and propels them in the target direction.\n\nFueled by [meld-aspect]Aspect[]. +block.meld-launch-station.details = The beta version of the launch station was developed into something useful for kart racing, while the version chosen for deployment was refined to be highly consistent (inconsistently). + +block.meld-friction-pad.name = Friction Pad +block.meld-friction-pad.description = Increases the drag of units, and removes the boost from Launch Stations.\n\nCan only be placed on shallow liquids, always replaced by other buildings. +block.meld-friction-pad.details = Drifting? More like a floormat. + block.meld-shark-factory.name = Shark Autoforge block.meld-shark-factory.description = Pumps out Shark units using Silver and Carbolith.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. diff --git a/assets/bundles/bundle.shitpost b/assets/bundles/bundle.shitpost index a674a1b..2834201 100644 --- a/assets/bundles/bundle.shitpost +++ b/assets/bundles/bundle.shitpost @@ -7,5 +7,8 @@ block.meld-sonar-spire.name = Slay the Sonar Spire block.meld-manual-valve.name = Gabe Nuel's Wife block.meld-pressure-vent.name = Amogus Escape route +block.meld-overflow-chute.name = Smart Router +block.meld-overflow-chute.description = Smart Router + unit.meld-bulbhead.name = Bulbster unit.meld-bulbhead.description = Meldieps the allied blocks as it Meldarras.io the enemies \ No newline at end of file diff --git a/assets/sprites/blocks/environment/badlands/soft-dune1.png b/assets/sprites/blocks/environment/badlands/soft-dune1.png new file mode 100644 index 0000000000000000000000000000000000000000..127e6d128786e3e7c7c5566f35fa01ae03ba1b4f GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^W+2SL3?z5Yp7kC`F%}28J29*~C-V}>5eo1LaRt&F zYy3_vEx&zq^ZAX_?w{NoBRt~}P?W7C$S;`TKL}J+KKKU|+2-lu7~;`+_S$VOWgW*-cG~8V!5A7Bz==bZz|G_u$OB uk1vEm*}`8v@N$iHX1!r-Ei)tjDtGl>5eo1LaRt&F zYy3_vEx&zq^ZAX_?w{NoBRt~}P?W7C$S;`TKL}J+KKKU|+3xA$7~;`+^zuQz!v-A8 z7i8xA|Nm5WTc!!)^<{HU=?2NMh#af1cxG;OY@zm~gtmKqsTx=2Y>A%IvsdDU#e&BS zSHE_h-8@#yzWTqRQUikb%vAKbxs$Wob`Tvxw{~zs%+A(<(=VAAqJ{glV zE`GhSPGp+Kvl&W#n=ciH?wp)tUv_5UrpKM<4DYm@6_|2((yKT90^bEb%fxOsdXy)f w_vOxuog3YXoCCPe20!h3Y8bFV?c`(DY0@f}*Ay&n1$u$O)78&qol`;+04U*yVE_OC literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/power/aspect discharger/aspect-discharger-full.png b/assets/sprites/blocks/power/aspect discharger/aspect-discharger-full.png new file mode 100644 index 0000000000000000000000000000000000000000..16e213f1707c9ea3b9cad7e72b66caa4193c6594 GIT binary patch literal 5531 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/power/aspect discharger/aspect-discharger-matting-glow.png b/assets/sprites/blocks/power/aspect discharger/aspect-discharger-matting-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6039c77e2da477861d0466a0b6f70faf5cb9d2 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|{(HJOhE&XX zdu=1{Ap-%2i}F)sou)IDB~0JI$h=Wl)mCJRPoasUi^q+U6LO9vGQGD&Vu;Yfy z5s~%FI&Mr!i<-q8QTzFl{q^vDS2%dOzcTa)23l{QYFU*KenY#$Sz{McVG$WE{Zi8{P1Y2drSxRV@-o3bAmOf?Fw UA98xt1`G-YPgg&ebxsLQ0IhR_yZ`_I literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/power/aspect discharger/aspect-discharger-matting.png b/assets/sprites/blocks/power/aspect discharger/aspect-discharger-matting.png new file mode 100644 index 0000000000000000000000000000000000000000..5fe8d102a90b93b4e8776dd98836096033513393 GIT binary patch literal 393 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zojqL~Ln`LH zovz5o6v*SUTe``ikXJ>n|B>09=EDm(#M&K-#Lq0+HKAskh;i=W5Yr9%k{`?e-F{aU z$M?x>^;f@T&+4rG{)JC{UEjEN<*Cy4zexguH*=oHKRo^N;-9d&(*6h3PZ(d_dGE7; zmB^%QD+Ol_74ysGhqJC;-*Pk>rk7iJD;)qxqX4z zsLiS93q$Op+ZJ7quPp&)qkctUr6>>p%Oa@eZ$l>^yUz?1SC<1nx6}6Q%MFq#tj#7hAiH@4RgJ z%!h1qj=$S%b$ni8KEsEpb87#w?z;Cu+JZ6s!9>Zt1LdC%e%`b<>@inNLv`8?-^(SZ zdH%&+y^>gI%>Q8C-?*#*-c<*0t#CArh-tpZV10mZ1G85$`whl2huk+H?uuU71a^`4 z45lmCt|sJOSs)eC4AjzhH@);q0zZ%?c71_4NYk5!OF&HxvH{XyGqRv&)G^HdeIt6$ T{p(D?0AlcT^>bP0l+XkKyHShU literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/power/aspect discharger/aspect-discharger-mid-coils.png b/assets/sprites/blocks/power/aspect discharger/aspect-discharger-mid-coils.png new file mode 100644 index 0000000000000000000000000000000000000000..1690a426a434eab73b1304f4f8b75b58e0205879 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z*Lu1*hE&XX zJ9DGoVFQ7-*bv3i$AY^;I975yn};0aoq4?X&kz*cc<59&>5^`R!uPGWs#Hm;1lJU)*h8{+#h(|6ZPT`n#?@tYxaHUp8@q z)d|fBr+gExH;CjN`tshUuwZrC+0`Wxe=lw2doMiU(5v?f%N?}L8RZ;w1@indzcC00 zu>WRR!eHYd^d>@ATjYKA^RlnL&=99 z_n8z+6U;R@uQ8N0-{AeE@?Y#gUVuo%}g zFxVVm;!kK`_h>S0SZCnZuKR(3siHw8g8Ksl8;EB9(4c5@KsJ>3qQJsWe`mAH$b}wV z=4*$nkAdI8{yePqIVJW#DgMk9fey@&ahdRtC7BMc{FL Y)$pF~IlrH>0ArEC)78&qol`;+08nkt_W%F@ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/power/aspect discharger/aspect-discharger-mid.png b/assets/sprites/blocks/power/aspect discharger/aspect-discharger-mid.png new file mode 100644 index 0000000000000000000000000000000000000000..6347c197cc9d263395feeee86af682b1cf184ca1 GIT binary patch literal 2204 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/power/conductive-pile-glow.png b/assets/sprites/blocks/power/conductive-pile-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..e72b6a43d4190259879c75ddbd847607947e84d5 GIT binary patch literal 456 zcmV;(0XP1MP)Px$f=NU{R9J=Wn9XX#Fc5@4wK*6pXrP4zQplypzW;ml0SXDEkU$GL*x-YUdl?0h zI*}|xen4|s3p}flv^$4|8-)Sry6zDu0IN8;u#OgJfC^}gF~3eg0lWYUMSEdk74Qvw zDb`Mym8f?`s}r;lNhdm3p>>nMtt86v>%JRXi0~sq2nFyAOts!8aG$i^I)P5uM7L!1 zT>~3n7m+&E5;eH6fuOQ{&&e!xHfcSt{7d1%_EY}fHy@y=MZkG5;`kvsuQ$*SKNcC zHt>ZE<+_GD;30y174&uGUg}o^THepIOW>BF8q0QZf_uQ-)L8bhBX0Jw(a1g);AS5i zjqGCqZuYU!$UYX}-j9!Ey9jVk+J$?a#Io?h%)1+>H3GrGV{?0T{`$1Ucx1j1 zxODzT{GqS%vsv`y4>Fud-yon6Zhua|V$)~wIA#vUq_3MFOg@s{u}m?wui>To47Lp3 z2Z{}H=}V^ZK6!Oql4*ctXVTah{xbHgkK^o_2J{kxr>mdKI;Vst E0BT2T5dZ)H literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/units/launch-station-base-range.png b/assets/sprites/blocks/units/launch-station-base-range.png new file mode 100644 index 0000000000000000000000000000000000000000..84c83d6a1380c0ccd2fb448bb2330ef5044e981d GIT binary patch literal 4465 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 E0P=bk3jhEB literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/units/launch-station-base.png b/assets/sprites/blocks/units/launch-station-base.png new file mode 100644 index 0000000000000000000000000000000000000000..f98e6cad48dd6a5537d55d062264bebecd990a4c GIT binary patch literal 741 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-HD>V4Cmg;uumf z=j~nFASOqFqlH^`^rhyU6ZP29sy6SSOTObF(G$J8{7Wu|jJ9#2Iw*2=qW1rTQR=ip*J5ICg*kT~cRk`Yv)Me%kB@3rI1!VR*=QA#MyDy~G zS~AIsF@#lWViE{l@rw7y$$u3d+-0Z43VMCJriE_)z;NNu zQ==^LZLAk6dS6t_Rx)JN^sG?u*v>FZ-aj_^B+G)2JEvS;@YCYQzjuir3k`17*6h1( z!*@)Aqrs9Xp^ssPGQ%^DhMmtCzS#AZE?coTg-M{PX4S0CtTQIFHfT<8kIa6_qQLU8 z&5k!luqi-r>r=S{F&+#vn5qIzd1o`UIH+%$mc#hWiTQv?hIp*A8nU5C=2OJv=4J2~ z$^@Ifa|1)c*ViuBj8qs*;`LW816uur@xiNp;lOA)naG}9$2I|j!{$^}F@J)e5W~8E zK%abmapO@%iOwtmhGLcjGK>c93}*xxifyd68MwZ^e#*W@zNP5H1CQiaQr>C@WG*YX zT{)`Cf1pJnV@iF7$n8T#l3Trhnokgj(OaFC7=2*n-8AVeSpDkz z(x7_I5YyZ#&(4R&Mz7>FNP7HS%dh#%=7y!dGJAg(PrY{Islkg&tzlXJmYkAmzsICy xR=4iZvW@ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/units/launch-station-flipped.png b/assets/sprites/blocks/units/launch-station-flipped.png new file mode 100644 index 0000000000000000000000000000000000000000..fee9548446cfb64348c27297b9a1b3fc9a165a00 GIT binary patch literal 1766 zcmZvdc~sJg7RP@m8X~3;5-tIWl}nkpWj^;1g|bKuks8xXQ!yDwPc?1>4!MkLDv^rj zzKzQ`Zkh3hQOs8Fg}Vb7|9EkE7L zu_k)gTD>7zr!DS|>`U*B0T*$Ya7@@3BnIS`BH!{h+1H{Z@8r?sgaDH4U;EP^j5$W0 zVjjB3{b6<13jj73SHH=dFUu9(8bsFSj%r~1r?g__gmF@(ZKv9Gl73d8t?YNn2(p^WAAuyd% zh{xs~><_LNl2$e@erbvAe-0jES?Q-zVn&KL?-<&yBQXA9T=Ox4|3Oi4X|)tm%Rh8{ z?Id@2#K41cV?+R_aED*#xJRWe8%0xg1R#cZ7;GB}$Lz^@YT^_j0o(hZkbob3sV!aN z_-t!01P8q&ouOr1NA=#a0lk@GFFyna99B~9B`6!$XWZ)J#S4yGGhY|1u$6UoqlYgbecK?H%2&OZhVw|=8-BjgPQ4kxnS`b!N#W$fsE?$->^MwO&( zn%w_eqv~@Cq&+Fqx4;%y497)0hFy`|Md_zPEo`aTu3oM1df3x9r$a`D`>_G-`iYSI zD0@#`IpGMC+sk?|(=xZG72D$Fx#@oRvIK^x9_BiC2ir>rVga(e0iqU$_tDN@4Ci`j znteho$&aO;ySq3rcX4R7F}H{xCj26kbU$G}dY;L1dM z8KDRW2VpWr=m6lVp%`0flF@1dC+p~0dur~h(aFs`#|CN;sKr!D5yUtC4A2Ur4@iug zE!YoPQ}w?fu4qMDuz9tNtWKo9zWdUTD70nVb6hO2^6zPl7I9GaTV%+ACfaO_M~fQ$ z#!Exk&6z4*`qN^=jFkyV6HLjQMITmRYQDaEr@ z+=o`i-Q=w*`r-KEWnp7t*}bQrBP7wl+(b8;b1CB^;=V7akmQq9 zk<`vLNYujOrY)|$pXbe|u=*O|sd*Su?TejpJV zZQHfl?i|iW7mijlQ#av80Ho){(VOQL#;xh}`{k(;fbeX3sCRpImujQyE%M2(s20Nl zG9smDoG9@UM6VPmfOkPF@DAXivEv-nT9s0)*K7e0jWDd)sl8 zIn}o#Z1bIBw_wT@)X;N=$`yNN=KF6mzH^FruWsC;>@`c(NM2lCtEVVFoMg2LQKu9W z!r%DmUTO~E#(x}}Nuj;M)NS@{6kzw2m1v}1q43``d=44o8GjLGry|Z1~?If+g4~99%fNk9nhwGGzw!J&5-~z~Ar-^NzA!&aB Dm7^-h literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/units/launch-station-glow.png b/assets/sprites/blocks/units/launch-station-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..48ba299aec7da16a70838f40832a42baa368e03b GIT binary patch literal 2054 zcmb7_`#;l*AICqV*=R1)hFn&zxkiyN_hZSmDCD>;Vs(bphp`mHw^CNgtcJUQE z<==rziIr`CvP*0b(AU)&sN|}D0RR}w&Bf_>68#$;8?Ek#y0Xx}HTfa6L_;4%7r?|#e3K7ACf(1Mkg*4&@+cICSqbnAfYox&k( zV$=uo-YvJX>ZY+F^R0UzuMiX=cK=Vo8Ls)?WH2>2Kb2c!ymErv-ji-eXDrSC9pB2e zR7i-jPPcg>Uw3avq#?n|P#EuRD)&|r{}GD?b2k~U$v9S>n?rDA{+ zusCIw03b1029ruwj$?Pm_(!mNyb2<-xD7pdKe#TN_tEdOl4#-Nee!X4p=RwLM3Qmo z4g}P)6h%0)vTY?S$}4Sg7SX(9IXGl-74YnbWNUv_q&$Jxs<`ASCrYz?08?oD8j2MI z9EAMBor9t5vs4D!hcfY*iGMy9XkqV8sZzSi&sKf~%qF9NmxWSMR-QIsw>?gdd~^NC zDs(lIZz=I4=gtgUvssp8*`dTUxMnDq4L!ilbdL66-9~NzVQP?71nY%$doqNjJ3Ouu z69kYh<>}II)tRbq#`M>{;pz=dSnK$-Lh#;JWdOh1&Y#omGN?)+17Sdt;Y<<_OikPR zfu&&6SbiJ^y1~)@Xoj1VU>N~>YxITYqFB8{ zfuSQm~qd+ z`cY{$bL31^af!eeE3A3ON%i+MQAtaOB!!ghdE=bpURWke%Ny_H$S2J-PiVuXw)wl%nT&Yz= z)IpThifyt+mHFimAdwEbB{=rO#~VY_w5i=4pFRznHUDfeqEbyEwmu8<&(Ck!w-&?Z z)J)r@q|2Q6-SAtLOoRXeiPbc6 zB716-w)ic**pEX8iQ*p!mb98-?id`|aUJ_`M!uUzx?)1jd=A*Eo@}`b*aLCfSZKgO zay9pFwH=Wm)u7=+RN8>F^I4L0UpdY}KBFy1&{+}7BaYmU&^Vv(^AfZ3Uusgv8rTHW z|N7c@=!A-oW$zWIrND{%REv)>(<9ozYsj3@^Nxs8rV+_I?-Xn|4l}E5Otnz+lk7{{ zNfRXMcgs+&YDXs(uh&`ir|>3;cBNi?GGlmXtRbhC1V;oct_qj0YI$AASbu?v*I?Zg1NCCo zW=ZbuMV&=Wlm7`)e6Yi7jm8$(=sEHzh+mB@tXG| zcR7WNYoywk(7ns-FBf-LG^2$&+slvL24_A5HMP2q`=cKV5*bNhG-7_anEh+^KyZ_8YE^k}>TAx4? zorB9N2el1j8ujCwzcD?|o7@hkZ&$|`b+sh_q8gIEx7W-Wk_L1cx&9S46m-9T_si@e z`RnDnxgG)TvGsFwg3d;GZ2jlO#fsrTQn5e^dl!F{kXL>ou?ii3b5g^ylv^0upu9}m z>D_guHw#Fa{FKwIo6Pw*J=%oja%+Ov!+3Gbd{`SX#2vSy|C|6D@HMA8rh3njmn0e^ zHXnPW`Wk4X&T9##H^gbIqt>SiQLsukEme{{`K0ZTUMdA_Lasy m0X|SUXz<_K@&A3gwIJX5dDP)LBe_Xj?0_52+ojSOpZ*V#+{4lU literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/units/launch-station-launcher-shadow.png b/assets/sprites/blocks/units/launch-station-launcher-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..4bab32c9a3369e1da596688ccbcc36c13c97ef0e GIT binary patch literal 3420 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 DOlvWl literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/units/launch-station.png b/assets/sprites/blocks/units/launch-station.png new file mode 100644 index 0000000000000000000000000000000000000000..7bd35091e2a47d08aa0c54d8ee8ccef4b6748dcb GIT binary patch literal 1774 zcmVPx*s7XXYRCt{2ojs^sMG(g)!6t>3O{ydyk(=U@fFPs^DHH?p8X*u&1RxqIW)R}5iEuN z?3v?R*N?3laPDm1CK0w`pwwl48$_6TfL!PInMIg#V686fW)xwn0rk3~pGkx%1~TfY z+zcY99)OhR@R~(XS-6zoF&af^R`BWd*@KXNyZbZC|06Yc43`KkdWc~^s9!XOI*3-m z|F!ow00102{!EL*lSOFJ!zEY`7AxE*cMz?E$BY(%yMH;b9VoYWpQVBH4j$861kT=- zQhg9g@fbIl(ZOR{i@@1CDpkMCF#rI7Z@<{(ILrpr;4!U4c=h#5EXS#lfc+w+gsWFB z006)%FTcTYxC6L?$8d}A{g0mm0KjKo{=jlPiU`HOKnZ{M`o)dMZr*>i@mQ@0t%AqY zir|9xdFi>QHy*q6-Z#a^E|nnrhjW7ug^dY?k13I%SMZn;5kjG3LK0wdrN|Y5_323} z{G8x1F%d=ukBNzp6Fep*0;dE|rG9|xd`}4yI(oDx7}H8>pmB@U?J|Mcsy?ZKyCeVF{2bI-4ekK6JYLiGGlA_5km zG<@nT87)Ij=pjl)z!H=Q5W5awdm88qP!c{h_$68kK@EI~5)pg}QUb6(4a9_G*u8#n zXz(GpWZ(`xM5zcN0lK^r=<~^q4~nl9dIXQ5iqIo?4CNZ(t!wX-b4a3-?082ATT64A3$xXLU1jQODX}Q%>r;mzLK&*L^W|@{cx#<3xz*G~Z%rY%? z!idiVI%?iE)UwoSs8gi?plFs!uT#Y}K!{Z1q?~iL)JZ|a_X2VnIC_?W;5yZw0(^33 z(P$AQ)~WUs;FH_1(aWutI&%@T0ys(hw_|fYA;W0@x{_9o;?^Ol9;H zb}m}##E4!2v@}&qogqZ709qQVrOp`QRsbzc)lz2)Q7eGNciKW|sWS&LD}a`!YN<09 z5i5Yy4_aWf)LFuC0i=K4&Y`8wQih%av@}&qofL+x02)4S4T|cd(p>;8vq?*xwR9Cg z%WTq8CkNfG0kkw#OPySFSpk-sDy^Yf>g1&P3ZSK_TI%Gc`$eFZhH9y^mgd{Uacp?p zf`^CCKk@IQ|K1)}ON^Yo7e#Lq=LR4}1ROkmT#5*s8%4+Hb_y6N!cyp|pB*7XuizbQ zTg9F{b%MO_Z7WKGkI_Sf(rtGC`2Ej~$D3{yoB9sG$x|l|{ytI!uF#j@mVvsza!3Fl zmd&C|zWCt_01Vrq=h8ax6jUK%KKq5#DJcTbr&8>4Vl<=YSjv-vD05ENMtnI!*wKt7|$VS^-vmbIU0&A`V zd^jZd=i%d3;f3=uSA<_~Kc4YNj@Cbwi|w+`b^ZtL8%M?j0HOpg^bk@+aKVS5$dKA% zKUaX9X9DcEj!j7bnIgo3$BYso7Ca_Lgq(XTaE1@PZXTU`aaa<1h+ZO;1Ro+KL(41u z7$R;TUmHB8l?b)LW1I-8ZXfT%CBkbjrtdgTflCDL;2mGzD!=(-h+!K=0+R%805{(L zsL7TyR1sPQf9>OU4gquTs8kE!pbTcI_|YP?4j#kVyHeN$fP#VK7T;Th-oazI`_+WXbj$= zws42>cf09R&o!PPh QfdBvi07*qoM6N<$g86AB!vFvP literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/walls/friction-pad.png b/assets/sprites/blocks/walls/friction-pad.png new file mode 100644 index 0000000000000000000000000000000000000000..ad40b40b919296fccf443054a641ef55a3d2c717 GIT binary patch literal 873 zcmV-v1D5=WP)Px&BS}O-R9J=Wm%VEgK^Vq=xtSr^-Lp8w)-CQIIIL}KEJTcjsZs^SuN1~FG@yb} zR0t#}h*6YO=~8$gf>oN-;r@Xu&Q@XyZ)Y#;>}qkl$L(hBj1f5t9~iiqd3T>@-kX{C z*|ClK)(=LA(kRLQ2?4S=aLhjfK(*$-20~!>?CDeUQbfD*dBuOwP zrvB;kQ(zpJXf|52S6L6?p#>56=Vt{Wc z`ICKTpdZaf>v6T_UvwP@r6f{FfbC(=c%Dlf$3#&Cu+wa`-VckpzAkCyy_ssvj30TwPm2Ni}RSJw(PZGks&vc(vx= z2Pzx&ty|U%0J}h^TJtX!AD)@M$;8C?zS;ot3qU93uxDWT%{|JV*Gu>HD-ZXz;$PwA z$^tqJ33NyhXyz_I>&@jdAcaH-fl?ABC97*oe@wo*wv1E?r4&;3PLf?fNtC)lLL#L^ zNyU2o?Vgu@X>I4uaKRW@2uZ{ zmt=Up{OSZy0geDiugxqhS~Kt~*j9Ovn0}1B7W|d~TY3)?b6^2~1ONBH$oD|*9+*0J zX7NzDjOV#{-O6Vr$kLpV75hcpotxd%I;5=wzPE$iTrLAil3-%ft>-2tGKTY$m#iZC z$%_39=O-@_nFwP{&!i-AGFX5yF~)Swgoz?+Rr_7cOy49jhA8ST%)}-)U-Sb{QyXP< zGPb&4gDq=miLU^MH|ksS*?4giW(IN(`Rdv-ozCvQnyrd98?AT1M9R@a(Gyw? zq*53uvcfVDcjsm|jWN7fS=i$zQjeLleWgOcECp0+{skR|gsGuO(>Snc9iqb!twU_i zs@Z5=9Voy;ejlg=I;0&01c4?ksRLVE2ebo?4!dGgYd;VJZF%ZmE5L3LXrvUGnK(M^ zh2Pr&Nt|T6{V*_It@*FBl^3t-vHu^ZqZaTJAU}yaj0|GV00000NkvXXu0mjf0JoI^ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/walls/gate-spike-open.png b/assets/sprites/blocks/walls/gate-spike-open.png new file mode 100644 index 0000000000000000000000000000000000000000..23ec45bb86c9865cddf66c9dc24a93d333c61bbc GIT binary patch literal 926 zcmV;P17ZA$P)Px&SV=@dR9J=Wm%ncuMHI(ByYpstZ|`i!RuTdv5CjnrMM45m@sCg-f#~S?FDPgb z4FyFSDk}bp6x2u-h#JKDBIHF9kf@j;n+ zW!8A6O`vW(pMLhm@c`d^_XDrJa*@k}f~s^33P<6DEd*l>B8Ii){-7=S4vmUxWMvd- zLclcvF*$jDbnhI1wU+JOnkUQ4+*&KBiUd)q!CFC#u)5SAf#I|x#z+W(l~H8Y2$Gw9 z@wROj0~lkl*79`gAMP)|&PS^yRq3dLU_}rSR!0317>-+lMyv?S!-yC|mS_9o8hZd_ zPsCcw!>3zZSb3AeI|il0TEU9tx9whi1|^6p!5Dtu@ie~Uoh9hn4sBCS^hO}%Izbf9 zQ4|HvS)6lNIa0I7no)x>Ia!uGugVOKktQh4hQ$EaUcJO%2>z3Vd$Mr=3saCbr_q=~W*|m`!QMQST0b-1aQk6WpEg= zi88-=F+d=M1krd;J@ZT(PvaFIUIOq!Jj*iH?`|L>+X1-@2IVk?Z^R{iNr&Fvd-WZyu=>@3kDH?S@0;l`3`1dnD|N5)B_1XE)=~)B(3q~i+A*LKD(EtDd07*qoM6N<$f_mt- ABme*a literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/walls/gate-spike.png b/assets/sprites/blocks/walls/gate-spike.png new file mode 100644 index 0000000000000000000000000000000000000000..487770927b0aac49188e012dec3a47eabbca7068 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}(>+}rLn2y} z=h&|NZGV`7X<6fzngELi*4P7~joLOYQA}DlZug_IT&JC-CN1SurW| zDp)r)I!@J^_P{&5SzkPX`N=b$q(y}XoD;4vF6NUcJ+Ok=P1fKQ!=fzbC^J8{at?b@%CYh#$Coy}E@q$76_>fxSa~Y+BnsFW7?#B8>4o0< R>;!ZogQu&X%Q~loCIH3!N-O{X literal 0 HcmV?d00001 diff --git a/assets/sprites/items/electrum-sheet.png b/assets/sprites/items/electrum-sheet.png index bbc0b34e6a41a5c19f6e3ef44598966e85a3af59..9485b5e95ef1b30fb442da3d25a068386dbf14ce 100644 GIT binary patch delta 381 zcmV-@0fPRp1F!>-Jbyzm42J(yh@mim;1Y~T9T_VzF)^2o10Z$a5JDC16Xfmy<}J4^N+hwcZTY!aUGHEhG}vCISF^ zH6Z@(;N%ei@cnh;{hKn-$~Niq~%p?Z@Fq;nJV!p|OT6r{>N5!F`?l?#rkQieOA&6z|0T=TP zE-v?b3nVu!+aW2NQmM2Q&iLx^pIw)$=BY(l^qR4A6KHrW?6+ bpYBY*%Q&R5i+f*500000NkvXXu0mjfbWF0? delta 381 zcmV-@0fPRp1F!>-Jbwc*5JkTuL=h-Ja0yDJl$4REQl$puM`rAN(%vi zqY@B*cXIIz0Qg?tdH*I4w5m;7e!VuoudYYtT(za!)g*dgpMUS?DqK>_;m6xq7GS}W zT%qAGT4`DPx$=}AOER9J=WmOV=YK@f%~qLpAHq=^JAeJGZktcg9Lz2)Wza-S?Trp#Teh)QR)ozy-s9YxU8`CTv1}ohS9fH*N0ZuH?~7_{7(gd#?#)&XpW-M*UMfEh8s2(Kx)oOQilbgV`ekI zd2VX&YV@=&mxUO>v^R<(&zACn7x485 z2Uo}1`{Vh2^sGjWqI(HlhE4!bhQem9ih>}7>1cM|2QUk&`O|G1-akKFO=BSH9)l9C z0&1Q{CUX(MW@X1%E}4|GV5l8tsQ_q)#r-`Ig!+w(UIbuj?1I2D$vz^!lurCXNYg1X xIDNhT`K1&DnMh*}%es~`naF%YB(?Zs`U2I*1H$BsGH?I@002ovPDHLkV1icy@LvD` literal 0 HcmV?d00001 diff --git a/src/meld/Meld.java b/src/meld/Meld.java index 7affe5f..4299139 100644 --- a/src/meld/Meld.java +++ b/src/meld/Meld.java @@ -109,6 +109,7 @@ public void loadContent(){ MeldLiquids.load(); MeldBlocks.load(); MeldEnvironment.load(); + MeldMappings.load(); //Just loads localised names AspectGroup.loadAll(); diff --git a/src/meld/content/MeldAttributes.java b/src/meld/content/MeldAttributes.java index 907e039..8e346f4 100644 --- a/src/meld/content/MeldAttributes.java +++ b/src/meld/content/MeldAttributes.java @@ -4,6 +4,7 @@ public class MeldAttributes { - public static final Attribute aetherAttr = Attribute.add("aether"); + public static final Attribute aetherAttr = Attribute.add("aether"), + soilAttr = Attribute.add("aether-soil"); } diff --git a/src/meld/content/MeldBlocks.java b/src/meld/content/MeldBlocks.java index 5921046..0264e38 100644 --- a/src/meld/content/MeldBlocks.java +++ b/src/meld/content/MeldBlocks.java @@ -13,6 +13,7 @@ import meld.fluid.AspectGroup; import meld.graphics.*; import meld.world.blocks.*; +import meld.world.blocks.consumers.ConsumePowerRecipe; import meld.world.blocks.consumers.StupidConsumeAspects; import meld.world.blocks.crafting.ModularCrafter; import meld.world.blocks.crafting.RecipeCrafter; @@ -21,11 +22,15 @@ import meld.world.blocks.crafting.recipe.SpoolRecipe; import meld.world.blocks.crafting.modules.*; import meld.world.blocks.crafting.recipe.TimedRecipe; +import meld.world.blocks.defense.FrictionPad; import meld.world.blocks.fluid.*; import meld.world.blocks.items.PriorityInputSplitter; +import meld.world.blocks.power.ConsumeThermal; import meld.world.blocks.producer.ProduceItem; import meld.world.blocks.producer.ProduceLiquid; +import meld.world.blocks.production.GrindingQuary; import meld.world.blocks.production.SingleBeamDrill; +import meld.world.blocks.units.LaunchStation; import meld.world.meta.*; import mindustry.Vars; import mindustry.content.Fx; @@ -46,6 +51,7 @@ import mindustry.graphics.Pal; import mindustry.type.*; import mindustry.world.Block; +import mindustry.world.blocks.defense.Door; import mindustry.world.blocks.defense.ForceProjector; import mindustry.world.blocks.defense.RegenProjector; import mindustry.world.blocks.defense.Wall; @@ -55,11 +61,14 @@ import mindustry.world.blocks.liquid.Conduit; import mindustry.world.blocks.liquid.LiquidJunction; import mindustry.world.blocks.liquid.LiquidRouter; +import mindustry.world.blocks.power.Battery; +import mindustry.world.blocks.power.ThermalGenerator; import mindustry.world.blocks.production.*; import mindustry.world.blocks.storage.Unloader; import mindustry.world.blocks.units.UnitFactory; import mindustry.world.consumers.ConsumeItems; import mindustry.world.consumers.ConsumeLiquid; +import mindustry.world.consumers.ConsumePower; import mindustry.world.draw.*; import mindustry.world.meta.Attribute; @@ -85,16 +94,24 @@ public class MeldBlocks { public static ItemIncinerator aspectIncinerator; - public static Block aetherAccumulator, elementalBlaster, pneumaticPulsear, + public static Block aetherAccumulator, elementalBlaster, excavationQuarry, pneumaticPulsear, earthboundInfuser, fumehood, sharkFactory; - public static Block gasKiln, metalworks, rotaryKiln, pneumaticExtruder; + public static LaunchStation launchStation; + + //Crafters + public static RecipeCrafter gasKiln, metalworks, rotaryKiln, pneumaticExtruder; + + public static RecipeCrafter stormIris; + + //power blocks + public static Block conductivePile, aspectDischarger; public static Block channelNode, channelHub, channelFace, aspectOutlet, aspectChannel, channelDirector, channelVent, manualValve, intakeValve, valveController, pipebox; - public static Block sunder, shredstorm, molotov, vivisection; + public static Block sunder, shredstorm, molotov, vivisection, vinca, vivalo; - public static Block silverHusk, shadesteelShingles; + public static Block silverHusk, shadesteelShingles, gateSpike, frictionPad; //Meld blocks public static Block pipeline, pipelineRouter, pipelineCrossing, pipelineBridge, @@ -211,7 +228,8 @@ public static void load(){ aspectChannel = new VisualAspectPipe("aspect-channel"){{ requirements(Category.liquid, with( - MeldItems.aspectPipe, 4 + MeldItems.annealedSilver, 4, + MeldItems.glassMallows, 4 )); underBullets = false; leaks = false; @@ -644,6 +662,37 @@ public static void load(){ ); }}; + vinca = new ItemTurret("vinca"){{ + requirements(Category.turret, with(MeldItems.debris, 25, MeldItems.silver, 25, MeldItems.quartzStrata, 30)); + size = 2; + health = 850; + range = 120; + + liquidCapacity = outletRate * 60 * 4; + fogRadiusMultiplier = 0.25f; + reload = 30; + + shootEffect = Fx.shootBig; + shootWarmupSpeed = 0.09f; + minWarmup = 0.7f; + + velocityRnd = 0.2f; + recoil = 1.5f; + inaccuracy = 2; + shootCone = 5; + + ammoPerShot = 2; + shootY = 8; + + rotate = quickRotate = false; + + consume(new StupidConsumeAspects(outletRate * 1, AspectGroup.aspect)); + + ammo( + MeldItems.quartzStrata, MeldBullets.vincaQuartz + ); + }}; + vivisection = new ItemTurret("vivisection"){{ requirements(Category.turret, with(MeldItems.debris, 200, MeldItems.silver, 320, MeldItems.resonarum, 60)); size = 4; @@ -981,13 +1030,6 @@ public void update(Bullet b){ ); }}; - shadesteelShingles = new Wall("shadesteel-shingles"){{ - requirements(Category.defense, with(MeldItems.shadesteel, 64)); - size = 2; - health = 2000; - buildCostMultiplier = 2f; - }}; - silverHusk = new RegenProjector("silver-husk"){{ requirements(Category.defense, with(MeldItems.debris, 15, MeldItems.annealedSilver, 16)); health = 450; @@ -1012,6 +1054,26 @@ public void update(Bullet b){ consume(new StupidConsumeAspects(outletRate/2, AspectGroup.aspect)); }}; + shadesteelShingles = new Wall("shadesteel-shingles"){{ + requirements(Category.defense, with(MeldItems.shadesteel, 64)); + size = 2; + health = 2000; + buildCostMultiplier = 2f; + }}; + + gateSpike = new Door("gate-spike"){{ + requirements(Category.defense, with(MeldItems.debris, 4)); + size = 1; + health = 120; + }}; + + frictionPad = new FrictionPad("friction-pad"){{ + requirements(Category.units, with(MeldItems.quartzStrata, 1)); + size = 1; + health = 40; + }}; + + coreRaft = new CoreRaft("core-raft"){{ requirements(Category.effect, with( MeldItems.debris, 900 @@ -1105,6 +1167,8 @@ public void update(Bullet b){ drillTime = 90; tier = 2; + buildTime = 90; + liquidCapacity = outletRate * 60 * 4; optionalBoostIntensity = 2; @@ -1123,7 +1187,7 @@ public void update(Bullet b){ MeldItems.resonarum, 0.5f ); drillMultipliers.put( - MeldItems.electrumSheets, 2 + MeldItems.electrumSheet, 2 ); drillMultipliers.put( MeldItems.likestoneSediments, 0.5f @@ -1144,6 +1208,13 @@ public void update(Bullet b){ }}); }}; + excavationQuarry = new GrindingQuary("excavation-quary"){{ + requirements(Category.production, with(MeldItems.debris, 250, MeldItems.quartzStrata, 120)); + size = 5; + + consume(new StupidConsumeAspects(outletRate * 3, AspectGroup.aspect)); + }}; + pneumaticPulsear = new SingleBeamDrill("pneumatic-pulsar"){{ requirements(Category.production, with(MeldItems.debris, 500, MeldItems.carbolith, 250, MeldItems.shadesteel, 350, MeldItems.aspectPipe, 300)); health = 2400; @@ -1228,7 +1299,7 @@ public void update(Bullet b){ itemCapacity = 10; inputLiquids.addAll(MeldLiquids.aspect, MeldLiquids.boundAspect, MeldLiquids.stormingAspect); - inputItems.addAll(MeldItems.tenbris, MeldItems.clayMallows, MeldItems.carbolith, MeldItems.debris, MeldItems.shadesteel, MeldItems.glassMallows, MeldItems.silver, MeldItems.likestoneSediments, MeldItems.quartzStrata); + inputItems.addAll(MeldItems.tenbris, MeldItems.clayMallows, MeldItems.carbolith, MeldItems.debris, MeldItems.shadesteel, MeldItems.silver, MeldItems.likestoneSediments, MeldItems.quartzStrata); outputItems.addAll(MeldItems.cruciblePlating, MeldItems.shadesteel, MeldItems.glassMallows, MeldItems.annealedSilver); outputLiquids.addAll(MeldLiquids.fumes); @@ -1309,6 +1380,88 @@ public void update(Bullet b){ ); }}; + stormIris = new RecipeCrafter("storm-iris"){{ + requirements(Category.crafting, with(MeldItems.debris, 350, MeldItems.annealedSilver, 300, MeldItems.electrumSheet, 300, MeldItems.quartzStrata, 250)); + size = 5; + hasItems = hasLiquids = hasPower = true; + liquidCapacity = 120; + + inputLiquidSlots = 1; + outputLiquidSlots = 1; + + inputLiquids.addAll(MeldLiquids.aether); + outputLiquids.addAll(MeldLiquids.thunderingAether); + + consPower = new ConsumePowerRecipe(); + + recipes.addAll( + new TimedRecipe(){{ + consumers.addAll( + new ConsumePower(10, 500, false), + new ConsumeLiquid(MeldLiquids.aether, 1) + ); + producers.addAll( + new ProduceLiquid(MeldLiquids.thunderingAether, 2) + ); + }} + ); + }}; + + //#Region Power + + conductivePile = new Battery("conductive-pile"){{ + requirements(Category.power, with(MeldItems.electrumSheet, 12)); + size = 1; + health = 800; + armor = -80; + solid = false; + + fogRadius = 0; + consumePowerBuffered(1); + + drawer = new DrawMulti( + new DrawDefault(), + new DrawGlowRegion() + ); + }}; + + aspectDischarger = new ConsumeThermal("aspect-discharger"){{ + requirements(Category.power, with(MeldItems.debris, 35, MeldItems.electrumSheet, 120)); + size = 2; + health = 650; + solid = false; + underBullets = true; + + minEfficiency = 1 - 0.00001f; + liquidCapacity = 100; + + powerProduction = 1; + + consumePowerBuffered(1); + consume(new StupidConsumeAspects(outletRate, AspectGroup.aspect)); + + attribute = MeldAttributes.soilAttr; + + drawer = new DrawMulti( + new DrawRegion("-matting"){{ + layer = Layer.blockUnder; + }}, + new DrawGlowRegion("-matting-glow"){{ + layer = Layer.blockUnder; + }}, + new DrawRegion("-mid"){{ + layer = Layer.block; + }}, + new DrawRegion("-mid-coils"){{ + layer = Layer.block; + }}, + new DrawGlowRegion("-mid-coils-glow"), + new DrawRegion("-top"){{ + layer = Layer.block + 1; + }} + ); + }}; + sharkFactory = new UnitFactory("shark-factory"){{ requirements(Category.units, with(MeldItems.debris, 500, MeldItems.carbolith, 350, MeldItems.silver, 450)); size = 5; @@ -1320,6 +1473,18 @@ public void update(Bullet b){ ); }}; + launchStation = new LaunchStation("launch-station"){{ + requirements(Category.units, with(MeldItems.debris, 45, MeldItems.quartzStrata, 60)); + size = 3; + health = 750; + + chargeRate = 1/60f/1.5f; + + consume( + new StupidConsumeAspects(outletRate * 2, AspectGroup.aspect) + ); + }}; + sonarSpire = new SonarSpire("sonar-spire"){{ requirements(Category.effect, with( MeldItems.debris, 60, diff --git a/src/meld/content/MeldBullets.java b/src/meld/content/MeldBullets.java index 09f2887..4760cfa 100644 --- a/src/meld/content/MeldBullets.java +++ b/src/meld/content/MeldBullets.java @@ -18,7 +18,8 @@ public class MeldBullets { pulsarBlast, pulsarShrapnel, sunderDebris, sunderGlass, - shredDebris, shredSilver; + shredDebris, shredSilver, + vincaQuartz; public static void load(){ @@ -304,5 +305,65 @@ public static void load(){ setDefaults = false; }}; }}; + + vincaQuartz = new RailBulletType(){{ + hitShake = 0.5f; + length = 120; + + lifetime = 10; + damage = 12; + pierceArmor = true; + pierceDamageFactor = 1; + + setDefaults = false; + despawnHit = false; + hittable = absorbable = false; + pointEffectSpace = 8; + hitEffect = Fx.none; + pierceEffect = Fx.none; + + status = MeldStatusEffects.impaled; + statusDuration = 5; + + fragBullets = 2; + fragRandomSpread = 35; + fragVelocityMin = 0.9f; + + fragBullet = new BasicBulletType(){{ + speed = 8; + + shrinkX = shrinkY = 1; + lightRadius = 0; + damage = 5; + splashDamage = 8; + splashDamageRadius = 8; + + sprite = Meld.prefix("diamond"); + sticky = true; + + knockback = 2; + impact = true; + hitEffect = despawnEffect = Fx.none; + + fragBullets = 3; + fragBullet = new BasicBulletType(){{ + pierce = true; + pierceCap = 2; + speed = 8; + lifetime = 10; + + shrinkX = shrinkY = 1; + lightRadius = 0; + damage = 5; + + sprite = Meld.prefix("diamond"); + + knockback = 2; + impact = true; + hitEffect = despawnEffect = Fx.none; + + }}; + }}; + }}; } } diff --git a/src/meld/content/MeldEnvironment.java b/src/meld/content/MeldEnvironment.java index 57612d4..63f45be 100644 --- a/src/meld/content/MeldEnvironment.java +++ b/src/meld/content/MeldEnvironment.java @@ -2,7 +2,7 @@ import arc.graphics.Color; import meld.world.blocks.AetherCluster; -import mindustry.content.Blocks; +import meld.world.blocks.defense.TreeWall; import mindustry.content.Fx; import mindustry.graphics.CacheLayer; import mindustry.type.Category; @@ -31,7 +31,7 @@ public class MeldEnvironment { meldWall, meldCrystalWall, metalMeshWall, metalMeshWallMeld, metalAetherWall, //Badlands - pillowWall, sandstoneWall, + pillowWall, sandstoneWall, softDune, mallowWall, crackstoneWall, likesandWall, likestoneWall, likesaltWall, @@ -145,7 +145,7 @@ public static void load(){ electrumDeposit = new StaticWall("electrum-deposit"){{ variants = 3; - itemDrop = MeldItems.electrumSheets; + itemDrop = MeldItems.electrumSheet; }}; resonarumDeposit = new SeaBush("resonarum-deposit"){{ @@ -322,14 +322,16 @@ public static void load(){ likestone = new Floor("likestone", 3); likesalt = new Floor("likesalt", 3); - likesand.itemDrop = likestone.itemDrop = MeldItems.likestoneSediments; - likesand.playerUnmineable = likestone.playerUnmineable = true; - redSilt = new Floor("red-silt", 3); - aspectSoil = new Floor("aspect-soil", 3); + aspectSoil = new Floor("aspect-soil", 3){{ + attributes.set(MeldAttributes.soilAttr, 0.25f); + }}; softSand = new Floor("soft-sand", 3); sandstone = new Floor("hard-sand", 3); - redSand = new Floor("red-sand", 3); + redSand = new Floor("red-sand", 3){{ + itemDrop = MeldItems.clayMallows; + playerUnmineable = true; + }}; redSandWeave = new Floor("red-sand-weave", 3); crackstone = new Floor("cracked-sand", 4); @@ -395,6 +397,12 @@ public static void load(){ variants = 2; }}; + softDune = new TreeWall("soft-dune"){{ + variants = 2; + solid = false; + hasShadow = false; + }}; + mallowWall = new StaticWall("mallow-wall"){{ variants = 2; itemDrop = MeldItems.clayMallows; diff --git a/src/meld/content/MeldFx.java b/src/meld/content/MeldFx.java index 6218160..6004be5 100644 --- a/src/meld/content/MeldFx.java +++ b/src/meld/content/MeldFx.java @@ -29,6 +29,72 @@ public class MeldFx { public static Effect + waterShear = new Effect(35, e -> { + Draw.color(Color.white, e.color, e.finpow()); + + e.scaled(15, e1 -> { + + Draw.z(Layer.groundUnit - 1); + Draw.alpha(Mathf.clamp(e1.finpow() * 5)); + + for(int i = 0; i < 2; i++){ + Angles.randLenVectors(e1.id, 3, e1.fin() * Vars.tilesize * 8, e.rotation + 180 + 25 * Mathf.signs[i], 15, 4, (x, y) -> { + Fill.circle(e.x + x, e.y + y, 1.5f * e1.foutpowdown()); + }); + } + }); + + Draw.z(Layer.groundUnit - 1); + + Draw.alpha(Mathf.clamp(e.finpow() * 5)); + for(int i = 0; i < 2; i++){ + Angles.randLenVectors(e.id, 3, e.fin() * Vars.tilesize * 6, e.rotation + 180 + 35 * Mathf.signs[i], 5, 4, (x, y) -> { + Fill.circle(e.x + x, e.y + y, 3 * e.foutpowdown()); + }); + } + }){{ + followParent = false; + }}, + + waterShearFollow = new Effect(35, e -> { + Draw.color(Color.white, e.color, Color.clear, e.finpowdown()); + + e.scaled(25, e1 -> { + + Draw.z(Layer.groundUnit - 1); + Draw.alpha(Draw.getColorAlpha() * e1.finpow() * 5); + + for(int i = 0; i < 2; i++){ + Angles.randLenVectors(e1.id, 6, e1.fin() * Vars.tilesize * 3, e.rotation + 180 + 35 * Mathf.signs[i], 0, 4, (x, y) -> { + Fill.circle(e.x + x, e.y + y, 1.5f * e1.foutpowdown()); + }); + } + }); + + Draw.z(Layer.groundUnit - 1); + + Draw.color(Color.white, e.color, e.finpowdown()); + Draw.alpha(e.finpow() * 5); + + for(int i = 0; i < 2; i++){ + Angles.randLenVectors(e.id, 3, e.fin() * Vars.tilesize * 3, e.rotation + 180 + 25 * Mathf.signs[i], 5, 4, (x, y) -> { + Fill.circle(e.x + x, e.y + y, 3 * e.foutpowdown()); + }); + } + + e.scaled(15, e1 -> {; + Draw.z(Layer.groundUnit + 1); + Draw.alpha(Mathf.clamp(e1.finpow() * 5)/10); + for(int i = 0; i < 2; i++){ + Angles.randLenVectors(e.id, 16, e1.fin() * Vars.tilesize * 3, e.rotation + 180 + 35 * Mathf.signs[i], 2, 3, (x, y) -> { + Fill.circle(e.x + x, e.y + y, 1.5f * e1.foutpowdown()); + }); + } + }); + }){{ + rotWithParent = true; + }}, + chainLightning = new Effect(15, 500 * 500/2 * Vars.tilesize, e -> { if(!(e.data instanceof VisualLightningHolder)) return; VisualLightningHolder p = (VisualLightningHolder) e.data; diff --git a/src/meld/content/MeldItems.java b/src/meld/content/MeldItems.java index 52bf984..4e1d444 100644 --- a/src/meld/content/MeldItems.java +++ b/src/meld/content/MeldItems.java @@ -1,7 +1,6 @@ package meld.content; import arc.struct.Seq; -import mindustry.content.Items; import mindustry.type.Item; public class MeldItems { @@ -9,14 +8,14 @@ public class MeldItems { debris, carbolith, //The badlands hall of shame - silver, clayMallows, electrumSheets, + silver, clayMallows, electrumSheet, //The storm planes hall of shame... resonarum, dissonitre, vitricMesh, meldShard; - //Items that meld mostly uses + //ItemLogic that meld mostly uses public static Item stonyParticulate, larvalPlating; //Heavy industry content @@ -40,7 +39,7 @@ public static void load(){ cost = 0.2f; }}; - electrumSheets = new Item("electrum-sheets"){{ + electrumSheet = new Item("electrum-sheet"){{ cost = 0.2f; }}; diff --git a/src/meld/content/MeldMappings.java b/src/meld/content/MeldMappings.java new file mode 100644 index 0000000..98917a2 --- /dev/null +++ b/src/meld/content/MeldMappings.java @@ -0,0 +1,21 @@ +package meld.content; + +import meld.world.blocks.production.GrindingQuary; +import meld.world.blocks.production.GrindingQuary.GrinderEntry; +import mindustry.type.ItemStack; + +import static meld.content.MeldEnvironment.*; +import static mindustry.type.ItemStack.with; + +public class MeldMappings { + public static void load(){ + GrindingQuary.grinderMap.putAll( + redSand, new GrinderEntry(60, redSilt, with(MeldItems.clayMallows, 20)), + + likesand, new GrinderEntry(60, likestone, with(MeldItems.likestoneSediments, 20)), + likestone, new GrinderEntry(120, likesalt, with(MeldItems.likestoneSediments, 10)), + + meldCrystalFloor, new GrinderEntry(180, meldCrystalScattered, with(MeldItems.meldShard, 10)) + ); + } +} diff --git a/src/meld/content/MeldRecipes.java b/src/meld/content/MeldRecipes.java index d48017c..3ca3b4f 100644 --- a/src/meld/content/MeldRecipes.java +++ b/src/meld/content/MeldRecipes.java @@ -52,6 +52,15 @@ public static Seq kilnRecipies(float outlets, float speedMultiplier producers.addAll( new ProduceItem(new ItemStack(MeldItems.cruciblePlating, 4)) ); + }}, + new TimedRecipe(240/speedMultiplier){{ + consumers.addAll( + new ConsumeItems(with(MeldItems.debris, 4, MeldItems.shadesteel, 2)), + new StupidConsumeAspects(outletRate * outlets, AspectGroup.aspect) + ); + producers.addAll( + new ProduceItem(new ItemStack(MeldItems.cruciblePlating, 4)) + ); }} ); } diff --git a/src/meld/content/MeldStatusEffects.java b/src/meld/content/MeldStatusEffects.java index 971148a..f253a3c 100644 --- a/src/meld/content/MeldStatusEffects.java +++ b/src/meld/content/MeldStatusEffects.java @@ -2,15 +2,18 @@ import arc.math.Interp; import arc.math.Mathf; +import mindustry.content.Fx; import mindustry.entities.units.StatusEntry; import mindustry.gen.Unit; import mindustry.type.StatusEffect; public class MeldStatusEffects { - public static StatusEffect amplified, rally, anchored, aspectBurn, sentry, spurting, newborn, interference, drenched, stunned; + public static StatusEffect amplified, rally, anchored, aspectBurn, sentry, spurting, newborn, interference, drenched, stuck, stunned; public static StatusEffect lacerated, impaled; public static StatusEffect rush; + public static StatusEffect boosting, boostingIframes; + public static void load(){ @@ -79,6 +82,29 @@ public void update(Unit unit, StatusEntry entry) { disarm = true; }}; + boosting = new StatusEffect("boosting"){ + + @Override + public void onRemoved(Unit unit) { + super.onRemoved(unit); + unit.apply(rush, 15); + } + + @Override + public void update(Unit unit, StatusEntry entry) { + unit.vel.trns(unit.rotation, 7); + Fx.explosion.at(unit.x, unit.y); + } + + { + disarm = true; + speedMultiplier = 0; + dragMultiplier = 0; + } + }; + + boostingIframes = new StatusEffect("boosting-iframes"); + anchored = new StatusEffect("anchored"){ @Override @@ -178,6 +204,18 @@ public void update(Unit unit, StatusEntry entry) { }}; + stuck = new StatusEffect("stuck"){ + @Override + public void update(Unit unit, StatusEntry entry) { + super.update(unit, entry); + unit.dragMultiplier /= dragMultiplier; + + //Speed multiplier based on duration. 10 ticks -> 0.1 less multi + unit.dragMultiplier *= Mathf.clamp(3 - entry.time/300, 1f, 3); + }{ + dragMultiplier = 3; + }}; + //Only affects unarmored lacerated = new StatusEffect("lacerated"){{ damage = -0.2f; diff --git a/src/meld/content/MeldUnits.java b/src/meld/content/MeldUnits.java index 6b3bf94..ba6a354 100644 --- a/src/meld/content/MeldUnits.java +++ b/src/meld/content/MeldUnits.java @@ -145,6 +145,7 @@ public static void load(){ shadowElevation = 0; drawCell = drawBody = false; drawSoftShadow = false; + fullOverride = "clear"; weapons.addAll( new RepairBeamWeapon(){{ @@ -446,7 +447,8 @@ public static void load(){ activeEffect = Fx.none; }}, new SlipstreamHullAbility(), - new BeachedAbility() + new BeachedAbility(), + new FabricatorBatteryAbility() ); //can't rally yourself goober >w< immunities.addAll( @@ -667,6 +669,7 @@ public static void load(){ shadowElevation = 0; drawCell = drawBody = false; drawSoftShadow = false; + fullOverride = "clear"; weapons.addAll( new RepairBeamWeapon(){{ @@ -1680,6 +1683,7 @@ public static void load(){ width = 1.7f; knockback = 1; pierceCap = 2; + pierceBuilding = true; colors = new Color[]{ Color.valueOf("f9e1f343"), diff --git a/src/meld/core/Melting.java b/src/meld/core/Melting.java index 7093239..704bd4d 100644 --- a/src/meld/core/Melting.java +++ b/src/meld/core/Melting.java @@ -39,7 +39,6 @@ public void start(Tile start){ @Override public void run(){ - Log.info("ticking"); toMelt // TODO: this check might not be necessary .select(it -> it.floor() != melted) diff --git a/src/meld/entities/unit/BulbheadEntity.java b/src/meld/entities/unit/BulbheadEntity.java index b10313b..cf6540f 100644 --- a/src/meld/entities/unit/BulbheadEntity.java +++ b/src/meld/entities/unit/BulbheadEntity.java @@ -14,6 +14,7 @@ import arc.math.geom.Position; import arc.math.geom.Vec2; import arc.util.*; +import meld.content.MeldStatusEffects; import meld.content.MeldUnits; import meld.graphics.Draww; import meld.graphics.MeldRegions; @@ -31,6 +32,7 @@ import mindustry.graphics.Drawf; import mindustry.graphics.Layer; import mindustry.graphics.Pal; +import mindustry.type.StatusEffect; import mindustry.world.Build; import mindustry.world.Tile; import mindustry.world.blocks.ConstructBlock; @@ -53,37 +55,6 @@ public class BulbheadEntity extends UnitWaterMove { public Vec2 lastSafe = new Vec2(); - //It's a d8 but I shoved several hamburgors in it - public final static Point2[] d8Expanded = { - new Point2(1, 0), - new Point2(1, 1), - new Point2(0, 1), - new Point2(-1, 1), - new Point2(-1, 0), - new Point2(-1, -1), - new Point2(0, -1), - new Point2(1, -1), - - new Point2(2, 0), - new Point2(2, 1), - new Point2(2, -1), - new Point2(2, 2), - new Point2(2, -2), - - new Point2(-2, 0), - new Point2(-2, 1), - new Point2(-2, -1), - new Point2(-2, 2), - new Point2(-2, -2), - - new Point2(0, 2), - new Point2(1, 2), - new Point2(-1, 2), - - new Point2(0, -2), - new Point2(1, -2), - new Point2(-1, -2), - }; @Override public EntityCollisions.SolidPred solidity() { return (x, y) -> { @@ -92,21 +63,6 @@ public EntityCollisions.SolidPred solidity() { //If the tile is out of bounds or solid, then yeah it's solid if(tile == null || tile.solid()) return true; return false; - - /* - //If the current floor is a liquid then we're good - if(tile.floor().isLiquid) return false; - - for(int i = 0; i < 24; i++){ - Point2 offset = d8Expanded[i]; - Tile other = tile.nearby(offset); - if(other != null && !other.solid() && other.floor().isLiquid) return false; - } - - //If we can't find a nearby liquid tile, return true - return true; - - */ }; } @@ -121,6 +77,12 @@ public boolean canShoot() { return super.canShoot(); } + @Override + public void apply(StatusEffect effect, float duration) { + if(effect == MeldStatusEffects.boosting && !hasEffect(MeldStatusEffects.boosting)) beached = 0; + super.apply(effect, duration); + } + @Override public void update() { getNearbyLink(); @@ -137,6 +99,9 @@ public void update() { float exitAngle = angleTo(lastSafe); set(lastSafe); rotation(exitAngle); + apply(MeldStatusEffects.boostingIframes, 60); + unapply(MeldStatusEffects.rush); + unapply(MeldStatusEffects.boosting); } } else { diff --git a/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java new file mode 100644 index 0000000..f4d6f73 --- /dev/null +++ b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java @@ -0,0 +1,47 @@ +package meld.entities.unit.abilities; + +import arc.graphics.g2d.Lines; +import arc.math.Mathf; +import arc.util.Time; +import mindustry.Vars; +import mindustry.entities.abilities.Ability; +import mindustry.gen.Unit; + +public class FabricatorBatteryAbility extends Ability { + protected float charge = 0; + protected boolean enabled = true; + + public float chargeCap = 60 * 60; + + public float speedMulti = 5; + public float drainSpeed = 8; + + public float minCharge = 60; + + @Override + public void update(Unit unit) { + super.update(unit); + + if(unit.activelyBuilding() && enabled){ + charge -= Time.delta * drainSpeed; + unit.buildSpeedMultiplier *= speedMulti; + } + else charge += Time.delta; + + if(charge >= chargeCap){ + unit.healthMultiplier *= 2; + unit.speedMultiplier *= 1.5f; + } + + + charge = Mathf.clamp(charge, 0, chargeCap); + if(charge == 0) enabled = false; + if(charge >= minCharge) enabled = true; + } + + @Override + public void draw(Unit unit) { + super.draw(unit); + Lines.arc(unit.x, unit.y, Vars.tilesize * 3, charge/chargeCap); + } +} diff --git a/src/meld/entities/unit/abilities/SlipstreamHullAbility.java b/src/meld/entities/unit/abilities/SlipstreamHullAbility.java index fc22e4a..994a2fc 100644 --- a/src/meld/entities/unit/abilities/SlipstreamHullAbility.java +++ b/src/meld/entities/unit/abilities/SlipstreamHullAbility.java @@ -1,14 +1,29 @@ package meld.entities.unit.abilities; +import arc.math.Mathf; +import arc.util.Tmp; +import meld.content.MeldFx; import mindustry.entities.abilities.Ability; import mindustry.gen.Unit; +import mindustry.world.Tile; public class SlipstreamHullAbility extends Ability { @Override public void update(Unit unit) { super.update(unit); if(unit.tileOn() != null) { + Tile tile = unit.tileOn(); unit.dragMultiplier /= Math.max(unit.tileOn().floor().dragMultiplier, 1); + + //TODO: Better wakes for naval units + /* + if(tile.floor().isLiquid && unit.vel.len() > 4 && Mathf.chance(unit.vel.len()/5f)){ + Tmp.v1.trns(unit.rotation, unit.hitSize).add(unit.x, unit.y); + MeldFx.waterShear.at(Tmp.v1.x, Tmp.v1.y, unit.rotation, tile.floor().mapColor, unit); + MeldFx.waterShearFollow.at(Tmp.v1.x, Tmp.v1.y, unit.rotation, tile.floor().mapColor, unit); + } + + */ } } } diff --git a/src/meld/world/blocks/consumers/ConsumePowerRecipe.java b/src/meld/world/blocks/consumers/ConsumePowerRecipe.java new file mode 100644 index 0000000..792d023 --- /dev/null +++ b/src/meld/world/blocks/consumers/ConsumePowerRecipe.java @@ -0,0 +1,18 @@ +package meld.world.blocks.consumers; + +import arc.func.Floatf; +import meld.world.blocks.crafting.RecipeCrafter; +import mindustry.gen.Building; +import mindustry.world.consumers.ConsumePowerDynamic; + +public class ConsumePowerRecipe extends ConsumePowerDynamic { + public ConsumePowerRecipe() { + + super(b -> { + if(b instanceof RecipeCrafter.RecipeCrafterBuild r){ + return r.consPower != null ? r.consPower.requestedPower(b) : 0; + } + return 0; + }); + } +} diff --git a/src/meld/world/blocks/crafting/RecipeCrafter.java b/src/meld/world/blocks/crafting/RecipeCrafter.java index 418cc10..e23f211 100644 --- a/src/meld/world/blocks/crafting/RecipeCrafter.java +++ b/src/meld/world/blocks/crafting/RecipeCrafter.java @@ -16,6 +16,7 @@ import mindustry.Vars; import mindustry.entities.units.BuildPlan; import mindustry.gen.Building; +import mindustry.graphics.Drawf; import mindustry.type.Item; import mindustry.type.ItemStack; import mindustry.type.Liquid; @@ -23,6 +24,7 @@ import mindustry.ui.Bar; import mindustry.world.Block; import mindustry.world.blocks.production.GenericCrafter; +import mindustry.world.consumers.ConsumePower; import mindustry.world.draw.DrawBlock; import mindustry.world.draw.DrawDefault; @@ -134,6 +136,8 @@ public void load(){ public class RecipeCrafterBuild extends Building{ + public ConsumePower consPower; + RecipeCrafter crafter; public TimedRecipe recipe = null; @@ -227,8 +231,13 @@ public void updateTile() { } public void findRecipe(){ + consPower = null; + recipe = recipes.find(r -> r.valid(crafter, this)); - if(recipe != null) last = recipes.indexOf(recipe); + if(recipe != null) { + last = recipes.indexOf(recipe); + consPower = (ConsumePower) recipe.consumers.find(r -> r instanceof ConsumePower); + } } diff --git a/src/meld/world/blocks/defense/FrictionPad.java b/src/meld/world/blocks/defense/FrictionPad.java new file mode 100644 index 0000000..43cf855 --- /dev/null +++ b/src/meld/world/blocks/defense/FrictionPad.java @@ -0,0 +1,51 @@ +package meld.world.blocks.defense; + +import arc.graphics.g2d.Draw; +import meld.content.MeldStatusEffects; +import meld.world.meta.BuildingPriority; +import mindustry.game.Team; +import mindustry.gen.Building; +import mindustry.gen.Unit; +import mindustry.gen.UnitEntity; +import mindustry.world.Block; +import mindustry.world.Tile; + +public class FrictionPad extends Block { + + public float wearDamage = 0.1f; + + public FrictionPad(String name) { + super(name); + update = true; + targetable = false; + underBullets = true; + hasShadow = false; + alwaysReplace = true; + priority = BuildingPriority.landmine; + } + + @Override + public boolean canPlaceOn(Tile tile, Team team, int rotation) { + return tile != null && tile.floor().isLiquid && !tile.floor().isDeep(); + } + + public class FrictionPadBuild extends Building { + + @Override + public void unitOn(Unit unit) { + super.unitOn(unit); + + if(unit.team != team) damageContinuous(wearDamage); + + unit.apply(MeldStatusEffects.stuck, 5); + unit.unapply(MeldStatusEffects.boosting); + } + + + @Override + public void draw() { + Draw.alpha(0.35f); + super.draw(); + } + } +} diff --git a/src/meld/world/blocks/defense/TreeWall.java b/src/meld/world/blocks/defense/TreeWall.java new file mode 100644 index 0000000..de8247d --- /dev/null +++ b/src/meld/world/blocks/defense/TreeWall.java @@ -0,0 +1,60 @@ +package meld.world.blocks.defense; + +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.TextureRegion; +import arc.math.Mathf; +import arc.util.Tmp; +import meld.content.MeldStatusEffects; +import mindustry.gen.Unit; +import mindustry.world.Tile; +import mindustry.world.blocks.defense.Wall; +import mindustry.world.blocks.environment.StaticWall; + +import static mindustry.Vars.tilesize; + +public class TreeWall extends Wall { + + public TreeWall(String name) { + super(name); + drawTeamOverlay = false; + } + + public class TreeBuild extends WallBuild{ + + @Override + public void unitOn(Unit unit) { + super.unitOn(unit); + unit.apply(MeldStatusEffects.stuck, 30); + } + + public void draw(){ + TextureRegion reg = variants > 0 ? variantRegions[Mathf.randomSeed(tile.pos(), 0, Math.max(0, variantRegions.length - 1))] : region; + + TextureRegion r = Tmp.tr1; + r.set(reg); + int crop = (r.width - tilesize*4) / 2; + float ox = 0; + float oy = 0; + + for(int i = 0; i < 4; i++){ + if(tile.nearby(i) != null && tile.nearby(i).block().solid){ + + if(i == 0){ + r.setWidth(r.width - crop); + ox -= crop /2f; + }else if(i == 1){ + r.setY(r.getY() + crop); + oy -= crop /2f; + }else if(i == 2){ + r.setX(r.getX() + crop); + ox += crop /2f; + }else{ + r.setHeight(r.height - crop); + oy += crop /2f; + } + } + } + Draw.rect(r, tile.drawx() + ox * Draw.scl, tile.drawy() + oy * Draw.scl); + } + } +} diff --git a/src/meld/world/blocks/fluid/AspectPipe.java b/src/meld/world/blocks/fluid/AspectPipe.java index 8b0e747..79a6251 100644 --- a/src/meld/world/blocks/fluid/AspectPipe.java +++ b/src/meld/world/blocks/fluid/AspectPipe.java @@ -9,6 +9,7 @@ import meld.world.blocks.crafting.ModularCrafter; import meld.world.blocks.crafting.RecipeCrafter; import mindustry.Vars; +import mindustry.content.Fx; import mindustry.game.Team; import mindustry.gen.Building; import mindustry.type.Liquid; @@ -47,11 +48,10 @@ public void updateTile() { lastMoved = moveLiquidForward(leaks, this.liquids.current()); this.noSleep(); - //Attempt to push liquids to the sides - for(int i = 0; i < 2; i++){ - //get the tile above and below the current pipe, accounting for rotation - Tile t = Vars.world.tile(tile.x + Geometry.d4(1 + i * 2 + rotation).x, tile.y + Geometry.d4(1 + i * 2 + rotation).y); - + //Attempt to push liquids to the sides & back + for(int i = 0; i < 3; i++){ + //get the tile above, below and behind the current pipe, accounting for rotation + Tile t = Vars.world.tile(tile.x + Geometry.d4(1 + i + rotation).x, tile.y + Geometry.d4(1 + i + rotation).y); if(t == null || t.build == null || !t.build.block.hasLiquids || t.build.liquids == null || (!(t.build.block instanceof RecipeCrafter || t.build.block instanceof ModularCrafter) && t.build.block.consumers.length == 0)) continue; moveLiquid(t.build, liquids.current()); } diff --git a/src/meld/world/blocks/power/ConsumeThermal.java b/src/meld/world/blocks/power/ConsumeThermal.java new file mode 100644 index 0000000..1ec1914 --- /dev/null +++ b/src/meld/world/blocks/power/ConsumeThermal.java @@ -0,0 +1,29 @@ +package meld.world.blocks.power; + +import mindustry.world.blocks.power.ThermalGenerator; +import mindustry.world.consumers.Consume; + +public class ConsumeThermal extends ThermalGenerator { + public ConsumeThermal(String name) { + super(name); + } + + public class ConsumeThermalBuild extends ThermalGeneratorBuild{ + + float consBoost = 1; + + @Override + public void updateTile() { + super.updateTile(); + consBoost = 1; + for (Consume consumer : consumers) { + consBoost *= consumer.efficiencyMultiplier(this); + } + } + + @Override + public float getPowerProduction() { + return enabled ? powerProduction * productionEfficiency * efficiency * consBoost : 0f; + } + } +} diff --git a/src/meld/world/blocks/production/GrindingQuary.java b/src/meld/world/blocks/production/GrindingQuary.java new file mode 100644 index 0000000..a94d3d7 --- /dev/null +++ b/src/meld/world/blocks/production/GrindingQuary.java @@ -0,0 +1,157 @@ +package meld.world.blocks.production; + +import arc.math.Mathf; +import arc.struct.IntMap; +import arc.struct.IntSeq; +import arc.struct.ObjectFloatMap; +import arc.struct.ObjectMap; +import meld.world.util.ItemLogic; +import mindustry.Vars; +import mindustry.content.Blocks; +import mindustry.gen.Building; +import mindustry.type.Item; +import mindustry.type.ItemStack; +import mindustry.type.weapons.BuildWeapon; +import mindustry.world.Block; +import mindustry.world.Tile; +import mindustry.world.blocks.environment.Floor; + +public class GrindingQuary extends Block { + + public static ObjectMap grinderMap = new ObjectMap<>(); + + public static ObjectFloatMap drillMultipliers = new ObjectFloatMap<>(); + + public int targetTimer = timers++; + + public GrindingQuary(String name) { + super(name); + update = true; + solid = true; + hasItems = true; + itemCapacity = 50; + } + + public static class GrinderEntry{ + + public GrinderEntry(float time, Block tile){ + this(time, tile.asFloor()); + } + + public GrinderEntry(float time, Floor floor){ + this.time = time; + this.floor = floor; + } + + public GrinderEntry(float time, Floor floor, ItemStack[] output){ + this.time = time; + this.floor = floor; + this.output = output; + } + + public float time; + public Floor floor; + public ItemStack[] output; + } + + //Returned in items/seccond + public float drillSpeedFloor(Tile tile){ + if(tile == null || tile.floor().itemDrop == null) return 0; + return 0.25f; + } + public float drillSpeedOverlay(Tile tile){ + if(tile == null || tile.overlay().itemDrop == null) return 0; + return 0.25f; + } + + public class GrindingQuaryBuild extends Building{ + public float time = 0; + public Tile target = null; + public GrinderEntry entry; + + public ObjectFloatMap drillTimers = new ObjectFloatMap<>(), itemRates = new ObjectFloatMap<>(); + + @Override + public boolean shouldConsume() { + return itemRates.size > 0 || target != null; + } + + @Override + public void update(){ + super.update(); + updateDrilling(); + dump(); + } + + @Override + public void onProximityUpdate() { + super.onProximityUpdate(); + itemRates.clear(); + + tile.getLinkedTiles(t -> { + //We check both the floor and the overlay here + float productivity = drillSpeedFloor(t); + if(productivity > 0) { + Item output = t.floor().itemDrop; + float value = itemRates.get(output, 0); + itemRates.put(output, value + productivity); + } + + productivity = drillSpeedOverlay(t); + if(productivity > 0) { + Item output = t.overlay().itemDrop; + + float value = itemRates.get(output, 0); + itemRates.put(output, value + productivity); + } + }); + } + + public void updateDrilling(){ + + for(Item item: itemRates.keys().toArray()){ + float current = drillTimers.get(item, 0); + //Note that productionRates is in items/SECCOND, not tick, so we divide by 60 + current = Mathf.clamp(current + itemRates.get(item, 0)/60f * drillMultipliers.get(item, 1) * edelta(), 0, 1); + + if(current >= 1 && items.get(item) < itemCapacity){ + current = 0; + handleItem(this, item); + } + + drillTimers.put(item, current); + } + + if(target == null && findTarget() == null) { + time = 0; + return; + } + + if(entry.output == null || ItemLogic.capacity(entry.output, this)){ + time += edelta(); + + //Reset the target tile after we're done + if(time >= entry.time) { + if(entry.output != null) ItemLogic.addStacks(entry.output, this); + target.setFloor(entry.floor); + time = 0; + target = null; + } + } + } + + public Tile findTarget(){ + entry = null; + target = null; + + if(timer.get(targetTimer, 5)) tile.getLinkedTiles(t -> { + GrinderEntry tileEntry = grinderMap.get(t.floor()); + if(tileEntry == null) return; + + target = t; + entry = tileEntry; + }); + return target; + } + } +} diff --git a/src/meld/world/blocks/units/LaunchStation.java b/src/meld/world/blocks/units/LaunchStation.java new file mode 100644 index 0000000..aa20a02 --- /dev/null +++ b/src/meld/world/blocks/units/LaunchStation.java @@ -0,0 +1,162 @@ +package meld.world.blocks.units; + +import arc.Core; +import arc.graphics.Blending; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Lines; +import arc.graphics.g2d.TextureRegion; +import arc.math.Mathf; +import arc.util.Eachable; +import arc.util.Log; +import arc.util.Tmp; +import meld.content.MeldStatusEffects; +import meld.world.blocks.SonarSpire; +import mindustry.Vars; +import mindustry.entities.Units; +import mindustry.entities.units.BuildPlan; +import mindustry.gen.Building; +import mindustry.gen.Groups; +import mindustry.gen.Unit; +import mindustry.graphics.Drawf; +import mindustry.graphics.Layer; +import mindustry.graphics.Pal; +import mindustry.world.Block; +import mindustry.world.blocks.production.BeamDrill; + +import static mindustry.Vars.player; + +public class LaunchStation extends Block { + + public float range = 48; + public float launchRange = -1; + + public float dragForce = 160; + + public TextureRegion flippedRegion, rangeRegion, glowRegion, baseRegion, launcherShadow; + + public float chargeRate = 1/60f/3f, chargeCost = 1; + + public float maxSize = 24; + + public float statusDuration = 30; + + public LaunchStation(String name) { + super(name); + update = true; + solid = false; + rotate = true; + quickRotate = true; + + liquidCapacity = 500; + } + + @Override + public void load() { + super.load(); + flippedRegion = Core.atlas.find(name + "-flipped"); + rangeRegion = Core.atlas.find(name + "-base-range"); + glowRegion = Core.atlas.find(name + "-glow"); + baseRegion = Core.atlas.find(name + "-base"); + launcherShadow = Core.atlas.find(name + "-launcher-shadow"); + } + + @Override + protected TextureRegion[] icons() { + return new TextureRegion[]{baseRegion, launcherShadow, region}; + } + + @Override + public void drawPlanRegion(BuildPlan plan, Eachable list){ + float x = plan.drawx(), y = plan.drawy(); + float rot = plan.rotation * 90; + + Draw.z(Layer.blockUnder); + Draw.rect(rangeRegion, x, y); + Draw.z(Layer.blockUnder + 0.1f); + Draw.rect(baseRegion, x, y); + Draw.rect(launcherShadow, x, y, rot); + + Draw.z(Layer.block); + Draw.rect((plan.rotation + 1) % 4 > 1 ? flippedRegion : region, x, y, rot); + + Drawf.dashLine(Pal.accent, Tmp.v1.set(x, y).x, y, Tmp.v1.add(Tmp.v2.trns(rot, statusDuration * 7)).x, Tmp.v1.y, (int) Tmp.v2.len()/Vars.tilesize); + } + + + @Override + public void init() { + super.init(); + if(launchRange == -1) launchRange = size/2f * Vars.tilesize + 4; + } + + public class LaunchStationBuild extends Building{ + + public float charge = 0; + public float warmup = 0; + + @Override + public boolean shouldConsume() { + return super.shouldConsume() && charge < 1; + } + + @Override + public void update() { + super.update(); + + warmup = Mathf.lerpDelta(warmup, charge >= chargeCost ? 1 : 0, charge >= chargeCost ? 0.01f : 0.05f); + + charge = Mathf.clamp(charge + edelta() * chargeRate, 0, 1); + + if(charge >= chargeCost && warmup > 0.5f) Groups.unit.intersect(x - range, y - range, range * 2, range * 2, target -> { + + if(charge < chargeCost || !target.isValid() || !within(target, range) || target.hasEffect(MeldStatusEffects.boostingIframes) || target.hitSize() > maxSize) return; + + float prog = dst(target)/range; + if(!target.hasEffect(MeldStatusEffects.stuck))target.impulse(Tmp.v1.trns(target.angleTo(this), Mathf.lerp(dragForce * 0.5f, dragForce, prog * prog))); + + if(within(target, launchRange)){ + charge -= chargeCost; + if(!target.hasEffect(MeldStatusEffects.boosting)) target.set(this.x, this.y); + target.rotation = rotation * 90; + target.apply(MeldStatusEffects.boosting, statusDuration); + target.apply(MeldStatusEffects.boostingIframes, 5); + target.vel.trns(target.rotation, target.vel.len()); + } + + }); + } + + @Override + public void drawSelect() { + super.drawSelect(); + Draw.z(Layer.overlayUI); + Drawf.dashLine(Pal.accent, Tmp.v1.set(x, y).x, y, Tmp.v1.add(Tmp.v2.trns(drawrot(), statusDuration * 7)).x, Tmp.v1.y, (int) Tmp.v2.len()/Vars.tilesize); + } + + @Override + public void draw() { + Draw.z(Layer.blockUnder); + Draw.rect(rangeRegion, x, y); + Draw.z(Layer.blockUnder + 0.1f); + Draw.rect(baseRegion, x, y); + Draw.rect(launcherShadow, x, y, drawrot()); + + Draw.z(Layer.block); + Draw.rect((rotation + 1) % 4 > 1 ? flippedRegion : block.region, x, y, drawrot()); + + Draw.blend(Blending.additive); + Draw.color(Pal.accent); + + float a = (Mathf.absin(10, 0.5f) + 0.5f) * warmup; + + Draw.alpha(a); + Draw.rect(glowRegion, x, y, drawrot()); + + Draw.z(Layer.effect); + Draw.alpha(a/2); + Draw.rect(glowRegion, x, y, drawrot()); + + Draw.blend(); + } + } +} diff --git a/src/meld/world/meta/BuildingPriority.java b/src/meld/world/meta/BuildingPriority.java index 6f577ab..ab3ce22 100644 --- a/src/meld/world/meta/BuildingPriority.java +++ b/src/meld/world/meta/BuildingPriority.java @@ -3,6 +3,7 @@ public class BuildingPriority { public static final float none = 0, + landmine = -3, under = -2, radar = 1.5f, synapse = 3; diff --git a/src/meld/world/util/ItemLogic.java b/src/meld/world/util/ItemLogic.java new file mode 100644 index 0000000..a7a93dd --- /dev/null +++ b/src/meld/world/util/ItemLogic.java @@ -0,0 +1,23 @@ +package meld.world.util; + +import mindustry.gen.Building; +import mindustry.type.ItemStack; + +public class ItemLogic { + + public static boolean capacity(ItemStack[] stacks, Building build){ + for(var stack: stacks){ + if(build.getMaximumAccepted(stack.item) - build.items.get(stack.item) < stack.amount) return false; + } + return true; + } + + public static void addStacks(ItemStack[] stacks, Building source, Building dest){ + for(var stack: stacks){ + dest.handleStack(stack.item, stack.amount, source); + } + } + public static void addStacks(ItemStack[] stacks, Building source){ + addStacks(stacks, source, source); + } +} From 1aeb8e9b14957abfb61c5fc86e6319392ba5e1e8 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Fri, 24 Apr 2026 15:02:42 +1000 Subject: [PATCH 02/16] attempting coloured lights --- assets/bundles/bundle.properties | 22 +- assets/bundles/bundle.shitpost | 11 + assets/shaders/light.frag | 27 ++ assets/shaders/sonar.frag | 24 ++ .../aether-vitrifier-bottom.png | Bin 0 -> 1158 bytes .../aether-vitrifier-glow.png | Bin 0 -> 1811 bytes .../aether vitrifier/aether-vitrifier.png | Bin 0 -> 4370 bytes .../crush weaver/crush-weaver-bottom.png | Bin 0 -> 1066 bytes .../crush weaver/crush-weaver-glow.png | Bin 0 -> 522 bytes .../crush weaver/crush-weaver-grinder.png | Bin 0 -> 395 bytes .../crafting/crush weaver/crush-weaver.png | Bin 0 -> 4658 bytes .../blocks/distrib/plated-chute-bottom-0.png | Bin 0 -> 546 bytes .../blocks/distrib/plated-chute-bottom-1.png | Bin 0 -> 879 bytes .../blocks/distrib/plated-chute-bottom-2.png | Bin 0 -> 860 bytes .../blocks/distrib/plated-chute-bottom-3.png | Bin 0 -> 1163 bytes .../blocks/distrib/plated-chute-bottom-4.png | Bin 0 -> 896 bytes .../blocks/distrib/plated-chute-top-0.png | Bin 0 -> 892 bytes .../blocks/distrib/plated-chute-top-1.png | Bin 0 -> 1110 bytes .../blocks/distrib/plated-chute-top-2.png | Bin 0 -> 1199 bytes .../blocks/distrib/plated-chute-top-3.png | Bin 0 -> 1330 bytes .../blocks/distrib/plated-chute-top-4.png | Bin 0 -> 1220 bytes .../blocks/power/substation-laser-end.png | Bin 0 -> 156 bytes .../sprites/blocks/power/substation-laser.png | Bin 0 -> 855 bytes assets/sprites/blocks/power/substation.png | Bin 0 -> 5168 bytes .../cracker/crystal-cracker-bottom.png | Bin 0 -> 551 bytes .../cracker/crystal-cracker-glow.png | Bin 0 -> 1525 bytes .../production/cracker/crystal-cracker.png | Bin 0 -> 3800 bytes assets/sprites/blocks/storage/buffer.png | Bin 0 -> 1222 bytes .../turrets/vivalo/vivalo-accelerator.png | Bin 0 -> 731 bytes .../blocks/turrets/vivalo/vivalo-barrel.png | Bin 0 -> 788 bytes .../blocks/turrets/vivalo/vivalo-base.png | Bin 0 -> 1597 bytes .../blocks/turrets/vivalo/vivalo-drum.png | Bin 0 -> 421 bytes .../blocks/turrets/vivalo/vivalo-preview.png | Bin 0 -> 1436 bytes .../sprites/blocks/turrets/vivalo/vivalo.png | Bin 0 -> 424 bytes assets/sprites/blocks/walls/lake-rim-open.png | Bin 0 -> 793 bytes assets/sprites/blocks/walls/lake-rim.png | Bin 0 -> 265 bytes .../sprites/items/heavy ind/aspect-bomb.png | Bin 0 -> 504 bytes src/meld/Meld.java | 32 +- src/meld/content/MeldBlocks.java | 304 +++++++++++++++--- src/meld/content/MeldEnvironment.java | 1 + src/meld/content/MeldFx.java | 4 +- src/meld/content/MeldItems.java | 12 +- src/meld/content/MeldLiquids.java | 4 +- src/meld/content/MeldUnits.java | 68 ++-- .../abilities/FabricatorBatteryAbility.java | 60 +++- src/meld/fluid/AspectGroup.java | 7 +- src/meld/graphics/Draww.java | 19 ++ src/meld/graphics/MeldLayers.java | 12 + src/meld/graphics/MeldLightRenderer.java | 268 +++++++++++++++ src/meld/graphics/MeldPal.java | 1 + src/meld/graphics/MeldRegions.java | 3 +- src/meld/graphics/MeldShaders.java | 139 ++++++++ src/meld/graphics/part/SonarPart.java | 54 ++++ src/meld/world/blocks/CoreRaft.java | 17 +- src/meld/world/blocks/SonarSpire.java | 14 +- .../blocks/consumers/ConsumeItemsBoost.java | 21 ++ .../consumers/StupidConsumeAspects.java | 9 +- src/meld/world/blocks/defense/LakeRim.java | 25 ++ src/meld/world/blocks/defense/TreeWall.java | 7 + src/meld/world/blocks/fluid/AspectPipe.java | 2 +- src/meld/world/blocks/io/BlockIO.java | 29 ++ .../blocks/production/GrindingQuary.java | 39 ++- .../world/blocks/units/LaunchStation.java | 16 + 63 files changed, 1114 insertions(+), 137 deletions(-) create mode 100644 assets/shaders/light.frag create mode 100644 assets/shaders/sonar.frag create mode 100644 assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier-bottom.png create mode 100644 assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier-glow.png create mode 100644 assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier.png create mode 100644 assets/sprites/blocks/crafting/crush weaver/crush-weaver-bottom.png create mode 100644 assets/sprites/blocks/crafting/crush weaver/crush-weaver-glow.png create mode 100644 assets/sprites/blocks/crafting/crush weaver/crush-weaver-grinder.png create mode 100644 assets/sprites/blocks/crafting/crush weaver/crush-weaver.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-bottom-0.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-bottom-1.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-bottom-2.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-bottom-3.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-bottom-4.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-top-0.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-top-1.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-top-2.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-top-3.png create mode 100644 assets/sprites/blocks/distrib/plated-chute-top-4.png create mode 100644 assets/sprites/blocks/power/substation-laser-end.png create mode 100644 assets/sprites/blocks/power/substation-laser.png create mode 100644 assets/sprites/blocks/power/substation.png create mode 100644 assets/sprites/blocks/production/cracker/crystal-cracker-bottom.png create mode 100644 assets/sprites/blocks/production/cracker/crystal-cracker-glow.png create mode 100644 assets/sprites/blocks/production/cracker/crystal-cracker.png create mode 100644 assets/sprites/blocks/storage/buffer.png create mode 100644 assets/sprites/blocks/turrets/vivalo/vivalo-accelerator.png create mode 100644 assets/sprites/blocks/turrets/vivalo/vivalo-barrel.png create mode 100644 assets/sprites/blocks/turrets/vivalo/vivalo-base.png create mode 100644 assets/sprites/blocks/turrets/vivalo/vivalo-drum.png create mode 100644 assets/sprites/blocks/turrets/vivalo/vivalo-preview.png create mode 100644 assets/sprites/blocks/turrets/vivalo/vivalo.png create mode 100644 assets/sprites/blocks/walls/lake-rim-open.png create mode 100644 assets/sprites/blocks/walls/lake-rim.png create mode 100644 assets/sprites/items/heavy ind/aspect-bomb.png create mode 100644 src/meld/graphics/MeldLayers.java create mode 100644 src/meld/graphics/MeldLightRenderer.java create mode 100644 src/meld/graphics/MeldShaders.java create mode 100644 src/meld/graphics/part/SonarPart.java create mode 100644 src/meld/world/blocks/consumers/ConsumeItemsBoost.java create mode 100644 src/meld/world/blocks/defense/LakeRim.java create mode 100644 src/meld/world/blocks/io/BlockIO.java diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index 2d0589e..0c2a514 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -33,11 +33,11 @@ block.meld-earthbound-infuser.name = Earthbound Infuser block.meld-earthbound-infuser.description = Infuses Debris with vent fumes to synthesize Carbolith.\n\nRequires [#cbdbfc]Aspect[] to run, can siphon [#5b4739]Fumes[] from vents. block.meld-gas-kiln.name = Gas-fired Kiln -block.meld-gas-kiln.description = Heats materials using [#cbdbfc]Aspect[], often used for [red]primitive[] refinement processes like smelting or ceramic blasting.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings +block.meld-gas-kiln.description = Heats materials using [#cbdbfc]Aspect[], often used for [red]primitive[] refinement processes like smelting or ceramic blasting.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings block.meld-rotary-kiln.name = Rotary Kiln -block.meld-rotary-kiln.description = Burns mass amounts of [#cbdbfc]Aspect[] as fuel, heats materials to process them in bulk.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings +block.meld-rotary-kiln.description = Burns mass amounts of [#cbdbfc]Aspect[] as fuel, heats materials to process them in bulk.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings block.meld-pneumatic-extruder.name = Pneumatic Extruder block.meld-pneumatic-extruder.description = Extrudes material into pipes, uses [#cbdbfc]Aspect[] to run. [accent]\n\nDebris + Elnar -> Aspect Pipe\n\nSilver/Annealed Silver + Debris -> Aspect Pipe @@ -130,6 +130,9 @@ block.meld-environmental-drencher.description = Continually charges up and fires block.meld-chute.name = Chute block.meld-chute.description = Transports items fowards. Only holds a single item. +block.meld-plated-chute.name = Plated Chute +block.meld-plated-chute.description = Transports items fowards, blocks items from non-distrib blocks at the sides. Only holds a single item.\n\n[accent]Plated[] + block.meld-glasswork-chute.name = Glasswork Chute block.meld-glasswork-chute.description = Forms, then transports batches of items. Conducts power like a wire, double in speed while fed. block.meld-glasswork-chute.details = You wanted a better chute? You've got one now.\n @@ -243,12 +246,21 @@ block.meld-fumehood.name = Fumehood block.meld-fumehood.description = Placed over sources of aspects or gasses. block.meld-crystal-cracker.name = Crystal Cracker -block.meld-crystal-cracker.description = Breaks open Dissonitre crystals over [accent]aspect soil[] as a source of [#cb8650]Aether[]. +block.meld-crystal-cracker.description = Breaks open Dissonitre crystals over [accent]aspect soil[] as a source of [meld-thundering-aether]Thundering Aether[].\n\nActs as a liquid router for its output between adjacent blocks. +block.meld-crystal-cracker.details = ...mandatory "..." entry added in post recording in transcript block.meld-crush-weaver.name = Crush Weaver -block.meld-crush-weaver.description = "Efficiently" weaves Dissonitre into Vitric Mesh. Requires [#cbdbfc]Aspect[] to run. +block.meld-crush-weaver.description = "Efficiently" weaves Dissonitre into Vitric Mesh over [accent]aspect soil[]. Requires [#cbdbfc]Aspect[] to run. block.meld-crush-weaver.details = ...your guess as to how this building works is as good as mine +block.meld-aspect-discharger.name = Aspect Discharger +block.meld-aspect-discharger.description = Converts [#cbdbfc]Aspect[]s to [accent]power[] over [accent]aspect soil[]. +block.meld-aspect-discharger.details = ...alchemy magic bubllshit + +block.meld-aether-vitrifier.name = Aether Vitrifier +block.meld-aether-vitrifier.description = Grows Dissonitre with [#cbdbfc]Aether[] over [accent]aspect soil[] using [accent]power[]. +block.meld-aether-vitrifier.details = ...less alchemy bullshit + block.meld-aether-cracker.name = Aether Cracker block.meld-aether-cracker.description = Cracks [#cb8650]Aether[] into [#8872da]Rift[] over [accent]ichor vents[]. Siphons some [#e6c700]Ichor[] in the process. Shares [#cb8650]Aether[] out the sides. \n\n[accent]Excess fluids are released to avoid overpressurizing [red]including input [#cb8650]Aether[]![].[] @@ -328,7 +340,7 @@ block.meld-core-bunker.description = Core of the base. Allows units to pass thro block.meld-core-bunker.details = A great logistics hub. Equipped with single-use launch thrusters. block.meld-buffer.name = Buffer -block.meld-buffer.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Does not connect to the core. +block.meld-buffer.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Does not connect to the core.\n\n[accent]Lightly Armored![] block.meld-interface.name = Interface block.meld-interface.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Can connect to the core!\n\nGround units can walk over this. diff --git a/assets/bundles/bundle.shitpost b/assets/bundles/bundle.shitpost index 2834201..d945a68 100644 --- a/assets/bundles/bundle.shitpost +++ b/assets/bundles/bundle.shitpost @@ -2,13 +2,24 @@ item.meld-glass-mallow.name = Pan-fried Plates item.meld-crucible-plating.name = Boiled Plates +item.meld-dissonitre.name = Crystal Crack + +item.meld-gunpowder.name = Crack on crack (going through rehab) + block.meld-sonar-spire.name = Slay the Sonar Spire block.meld-manual-valve.name = Gabe Nuel's Wife block.meld-pressure-vent.name = Amogus Escape route +block.meld-crystal-cracker.name = Tasty Wafer +block.meld-crystal-cracker.description = ...you know you wana\n\njust a lil nibble + block.meld-overflow-chute.name = Smart Router block.meld-overflow-chute.description = Smart Router +liquid.meld-aspect.name = Outdated Ass Destroyer +liquid.meld-storming-aspect.name = Bombspect +liquid.meld-bound-aspect.name = Leanspect + unit.meld-bulbhead.name = Bulbster unit.meld-bulbhead.description = Meldieps the allied blocks as it Meldarras.io the enemies \ No newline at end of file diff --git a/assets/shaders/light.frag b/assets/shaders/light.frag new file mode 100644 index 0000000..63eab2d --- /dev/null +++ b/assets/shaders/light.frag @@ -0,0 +1,27 @@ +uniform sampler2D u_texture; +uniform sampler2D u_lights; + +uniform vec2 u_resolution; +uniform vec2 u_campos; + +uniform vec4 u_ambient; + +varying vec2 v_texCoords; + +void main(){ + //vec2 worldCoords = v_texCoords * u_resolution + u_campos; + + //vec2 offset = vec2(sin(), sin()); + vec4 color = clamp(texture2D(u_lights, v_texCoords) + vec4(u_ambient.rgb * u_ambient.a, 1), 0.0, 1.0); + + vec4 background = clamp(texture2D(u_texture, v_texCoords), 0.0, 1.0); + + float alpha = (u_ambient.a - color.a); + alpha = clamp(floor(alpha * 8.0)/8.0, 0.0, 1.0) * 0.3 + clamp(floor(alpha * 3.0)/3.0, 0.0, 1.0) * 0.5 + alpha * 0.2 + color.a/4.0; + + gl_FragColor = vec4(background.rgba); + + gl_FragColor = background * color; + + //clamp(vec4(mix(u_ambient.rgb, color.rgb, color.a), alpha), 0.0, 1.0) +} \ No newline at end of file diff --git a/assets/shaders/sonar.frag b/assets/shaders/sonar.frag new file mode 100644 index 0000000..dec4079 --- /dev/null +++ b/assets/shaders/sonar.frag @@ -0,0 +1,24 @@ +uniform sampler2D u_texture; + +uniform vec2 u_resolution; +uniform vec2 u_campos; + +uniform vec4 u_color; + +uniform float u_time; + +varying vec2 v_texCoords; + +void main() { + + vec4 color = texture2D(u_texture, v_texCoords); + gl_FragColor = color; + + if(color.r == 1 && color.g + color.b > 0){ + + color.a *= 0.5 * abs(sin((v_texCoords.x + v_texCoords.y) * 20.0 + u_time/20.0)); + + gl_FragColor = color; + } + else gl_FragColor = vec4(color.rgb, 0); +} \ No newline at end of file diff --git a/assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier-bottom.png b/assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..2de0a8d2cdd82d9c1a6537fb000ce9b6cc8e9c5d GIT binary patch literal 1158 zcmV;11bO?3P)Px(KuJVFRCt{2nomd+Q5?sA(*_>GL&!oML>7c)5m$@0^$!R_?k(_OUc`uS>C#?2 z=E;N7sf!B{iG<*#2*N!X!GfTzZlJBmB81kdA|nqQ(!r*~`g^^3&Yw3kznR%+KCm#e zZ+7fBf&u*4YH^rL5V zZmH^fe*zJ}XvBLu;_Nu};FT|Z^Hl&VSLX!)pF}w4^&cQk;=DXN?0IhRO#myz(f13_ zTp&IqomIv_0j_{}EVF?k2?1FlWUwOw1*AE^ zOawbgtF*hvKK!{CkWPcEGdUcG?-fQ#H=WxT`gGDt#zH=c(-mnoJ+W4$&W zC_(_|eco8~004mBA2-kZ#_dcZ8t>+Qp05ZUH|OEFIZt*!s*y*?1gLHm*zwQrx6iaw zi4cjU74hTdey#<;OusPM1l6sAMhFnXfzlJGAn|~KsX4g&=odQ|Mc_GZ&O_~RoVl^g zjuBjCqFir8Jj(&^-dr?ouN{u7XuO#SdPY+UK_JBb$^87cDi8prw#-15a31N!$2=VBHNX9SSz-(^RCWb)hah&VdZvO zBrAo#y?)A$uePrMoO*_;f>Z}Dv@AmHuzqd-;0H~co{^DQT4|V47>Q=G5Y1!(xav$f z1+THH7XSd(itVs+zeDq#-hA)21_0_8BbFN=?tIpqC$8KC5RxP>O6_Gmu|_jl_Pmiu zB>@N%Bbfkpm%4Z{uHE>dX+sfEfNHtI+E4%>5`iQH%=Y~7Z*z>$s~Ipl9BaL8}qxMMw=DF*oi`_Ca^D z&$6DF&KFEQ!w#+m5Em_+?D*j4d@=juiV^_8^NmlMHVP3)>HuDZ@@(93T=K@(r_}oK z;QXe-zi=5%x4G!87V;3VyRiv#h&b{H&h~3`tiz(#s&R1nL-A4NA z&9|MRq6qxEJ#hzFG?OK%@?`LJt1OBjzSu+oynO6!ID+0L9}*Hm3*|nckdTm&kPv_P Y1F87*=(F~MuK)l507*qoM6N<$g3m`HMF0Q* literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier-glow.png b/assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..a1bc64e798b35c48b3fef29e06a88e3557e91873 GIT binary patch literal 1811 zcmV+u2kiKXP)Px*%}GQ-RCt{2T5EISMi6XCAix~>6<;d<|F`90U+lAuc~}p$`O=eg#=@3Bfa{K_ zQmrhBwWjB}y#h{hl9Qa|Bquq^uPRYj6NL}}AeJNH2mlp;HOC4-6-Ax>>z$;Nx1jO~ zfF6JpzyLs>*Ffb902zQBKnY;|89?ZDG*8UAh5$wYzHqepO8_eXb3XeDAkZ6*Dmw!p z)*n*wa{!k-@AI(?z>9c$&3hxc4vF=^c-Ny~IP4Pyue_ZHcmAOV z`0{qf^ByN!b4+tUgHy z01W_0q{dGGTm$%>yXy{NTai) zk}n+R{H=M#D}k|fz@gRvn?MNqP}4rZ+(^5=FARl=8-MUOIrE2>%|rG7!6_a&Z||BQ-H2}&xtVaETFSnM6y`e+*hYl-Q(B(pKSU?`q&=8|KQQlw$6*zmmm|Rft#fsu04u4G^MyDs8sCQ|XRQ0kBLCiGS-5tw*p1X(&yTxxWGM zN-!Z{lp%xSE8OPreQyxd0d3f~g5J6giJGFH-<2 zQM^^6ZPW+QMJoUmli132f2Jhp0TI2!LMDi%gRnwn17=78usow7kO<-Gm)+d}@Q(Pb z8%c5+^IGg!VOtx_HY8VH>U1?alx2A$IY4{;4@+Mc00dE7`Tj`a)vVT+O7g^hVc?YT z$|uh4&v=Z4Z1H;zrEQfWwPQN`k7y#OkWHMhRE4_`M#7OI_ z#EQDTb%LpQmXe{w6PGr@o+$0VL zfN}&|PN5sG6I%R&=Oba44P2}5y6TKQ0By+)DV(mH0 zUnaZETeZPB763InOtz^qbUa_~Vm{(^>puOWsx=VD0w5ByB$ZNT$@Ilpx03vl3FZF4 zXN{I?)du6p03@z~S<{-PP%PFhCCQc2g#9faUgT}b5F9xKG;0?U=SGqi;^JO0V}O-k zXuT(ZBLV=I;q?nr`|`wkeFZ>)D})JJZNmm(7XakzG2J?c#BF$I>q{G@1%F!z=cik1 zx$H+oE@W~?$sN=KBKK0JsS*;Kn3^DL4*2{^o-cL#tcEp$Hd(uTf!+lGvFpSjAiM{F zS0)otyMEYaS$Zt#!UGfp$hDu|1AdASILWUr{{W5GLlp&yL3scG002ovPDHLkV1mVq BOIH8@ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier.png b/assets/sprites/blocks/crafting/aether vitrifier/aether-vitrifier.png new file mode 100644 index 0000000000000000000000000000000000000000..7abddbe6471836674f62cf6f83958b23387749a5 GIT binary patch literal 4370 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 M07*qoM6N<$f*}GR1ONa4 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/crafting/crush weaver/crush-weaver-bottom.png b/assets/sprites/blocks/crafting/crush weaver/crush-weaver-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..5a535532aca6c6d5fd4756f88e243f26e1292349 GIT binary patch literal 1066 zcmV+_1l9YAP)Px&9gF*$eKJFq{`Vvl+XNaf>7);C!t&Q_MEP zKEggtVN3w8h)oiB*%Txg#Q{lJtS?EYL*MTTuWxj=q%vi|Muk=gINDx?0(VU%4DS0~ zXwRR`+OkpM(H_A4=exq^OhRJRBDjC}b@un@24Jf)9;(5^7!$sUIUIt2g+?Rp24O!VPPB!r@_<^osqE8Sk{)0ngYc;mjmZ@@LAf{G(CPl_#(aE z_q!0ZO6bVc$PK0$4**70B9&)lDYObQsS0CA(0RrrFR@Y&5Fx92p)SZrK$ayj3Xl?z zWl@w0XaW{$&B*^*7;mF56ag-cr|#2u3h;{9Ttue?QvH? z#Q__gEl5g*!h;Ks*_QIU{3%5 zps=TZ5`_i69w2#Z=W9Kvd1a^w?(KJ`SzBoQ@#p}cwGIFv+-Cp)s3>NYn9>-EfV3f- zmcr_!)2vJx3D~-zu@~U?>9Z_}&FySLqv|Q0B1r;nUx3TLLK3npin7Ez$p+hlNn|RB zj6d}s0wj2Z5YImTf;W%uN#7#BHq^W_obDhM=U^=m3XO+<9)bN~@$Kb$>ilJ8QNu|f zWHM)|b#Zn~u2Jv3aD*jh7RHv_8)C5B%(iB%! zmjB)WEFGEGB7k>&R7%JY42v@ou-_lZV0=hcSly@Y! zA<6OYEe-?ex_$qqmnz3GnKUemQ^~$~WU(OsEQe_QNk=cp6f>5vXD~)PxF7y$q8jm@ zMb6)0U3ne*jcXB%HQDD%6u*chh~Mx|n!Jl6;Kf}1M&{n92il+clr!-&&eA#{Sg>Lv zQ^oZ;FZ~`UI(WksLke-`R7m6Uw6X4f;l#*{ZX_aYBJiy1Z#8f^B*^8iA+xZc1&Q%1Jx{kqIVIMBXQF_D%)%fSHtw

sXG2aH?>Pgg&ebxsLQ E0E>LxS^xk5 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/crafting/crush weaver/crush-weaver-grinder.png b/assets/sprites/blocks/crafting/crush weaver/crush-weaver-grinder.png new file mode 100644 index 0000000000000000000000000000000000000000..ecbd0192fd84c22583d8d6ed5d6633113f267b8f GIT binary patch literal 395 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/distrib/plated-chute-bottom-1.png b/assets/sprites/blocks/distrib/plated-chute-bottom-1.png new file mode 100644 index 0000000000000000000000000000000000000000..54bb3010ac7c775814cf033e28a2a2bb51c6f951 GIT binary patch literal 879 zcmV-#1CacQP)}#A1tRr64L|sZj_*gb)=HwQxTs2C|!FH^C;QU>mUT z(-^g|vDVhYRuBX~Aa-_EiZ&uElLQjP_?kJ~dG|5z4#?%KZn`ZaU|M-69tkUnl=;<@;DGOOv?Z{QDsALQLvdU z=(Tr>4LjGZr3Ik_{Y02!o)`)m1u|sGGfV~x1(!Gx!cF{r6@QEZ8d);vD9n<>M6LJ{ zfABk7H#Ig|ozxiy|Fh@44?yb&WxIkHPl@msZ`ME5qam_)2vxbO?bhIKQfE z+AdsdL+_)lI%-Ao0dgt@Z>P|egq|B{U#aF+yXWK{7K;$QhW!H=OhaI`$=+>^x&7Ny z%kKxq>vCcy6i-J000FZ}L_t(oh3%G2lG8v8g}p#bQ`+30sea z+CQ115<~2)qDma6y2|gc4~yu3zKz|BW~Z!2Rl(0o$Z+6CCHj%u(vt#?Hq8EbhO{ z-uXxeE;9EcOW@_Y6?S^rC8q*Zl0EwwA`2pSlwi0QV1;0TNE>?guRnegp_&yE3L(`! zItZYv&mYLd1W7M}Ri%-L6jG8BNJlwfKo>BXi3o7w5Mdz+ci}SNAb?8{I!u)zCFBxT z7e*@Fqa2vUC2b(890JtWR^iJ2;2!u3gaNs-w^x8Uj&xuP(VxD|h^0Akm0+`eIKX?5 zN_=h7wL*1s6F^Jz)Hf73Ojv-}G3>6!Zh#2kh(2y(GedX0^zQ+fr&y*@m~gC;n(aLi zV9vfpYztW1D@E$Q8tibO+urEsofS;V-V3J!2s?ULw?06GBT-%so|6D#abC)r;VCjj zgdYP?;@cfzGGjS_oC@&q<-=V9x8m4S@e|+)@C5je_yZqU5{JU7%6|X=002ovPDHLk FV1n^)hY$b& literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/distrib/plated-chute-bottom-2.png b/assets/sprites/blocks/distrib/plated-chute-bottom-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c30c6ca2e6d3fc6affb7d4a64d975b4d5f8100bf GIT binary patch literal 860 zcmV-i1Ec(jP)}#A1tRr64L|sZj_*gb)=HwQxTs2C|!FH^C;QU>mUT z(-^g|vDVhYRuBX~Aa-_EiZ&uElLQjP_?kJ~dG|5z4#?%KZn`ZaU|M-69tkUnl=;<@;DGOOv?Z{QDsALQLvdU z=(Tr>4LjGZr3Ik_{Y02!o)`)m1u|sGGfV~x1(!Gx!cF{r6@QEZ8d);vD9n<>M6LJ{ zfABk7H#Ig|ozxiy|Fh@44?yb&WxIkHPl@msZ`ME5qam_)2vxbO?bhIKQfE z+AdsdL+_)lI%-Ao0dgt@Z>P|egq|B{U#aF+yXWK{7K;$QhW!H=OhaI`$=+>^x&7Ny z%kKxq>vCcy6i-J000E#$L_t(oh3%F-PQ)+}M!#?DQ&50J1qb62+=H`0MF9nuNMg+d% z>lZ}UV6yxn!W?XJN&*;Q<B=98nsdZEdYgrkSfzUbsc}Nd4!8VHX>yW0{Q;oZnvWW z;N$(X7GI&QcFR{bM($BM{OS4e?DH>v5sBANdPmnzYTy>VmqT3Q^yYJ=fNYv5Y%8rX ziDd@71jhwduTcnlIT(5%h#VGJM&DzO&t9L8SvW30Sw?>DnOtY$UrXRox}#A1tRr64L|sZj_*gb)=HwQxTs2C|!FH^C;QU>mUT z(-^g|vDVhYRuBX~Aa-_EiZ&uElLQjP_?kJ~dG|5z4#?%KZn`ZaU|M-69tkUnl=;<@;DGOOv?Z{QDsALQLvdU z=(Tr>4LjGZr3Ik_{Y02!o)`)m1u|sGGfV~x1(!Gx!cF{r6@QEZ8d);vD9n<>M6LJ{ zfABk7H#Ig|ozxiy|Fh@44?yb&WxIkHPl@msZ`ME5qam_)2vxbO?bhIKQfE z+AdsdL+_)lI%-Ao0dgt@Z>P|egq|B{U#aF+yXWK{7K;$QhW!H=OhaI`$=+>^x&7Ny z%kKxq>vCcy6i-J000PfRL_t(og|${mZrnf+BdhxrImAFt$;0xA{3CC(PX_FRU!gAM z(7U8jk1|hhWRbND|Ni+cT%7l}4{TdP+7h;ukWxZQ4o?nu2LPBEEEqyCgb)xz zK!^b`27G_|b`>6W`4j*IK!PAZYJVT!)A_rLvn1dWB=z_$>KI++Q;nY__!-g95|A8H z&1jKTM=zxP3kbMQRG3}Z->=!rzd(Twu33o#(=l`1Z9!ZTaNnt*!G(Iol6?oJ3(mC# zcM#}uHgJ`4Ecj&hKxBT$1*d>JEQs%KAAqXVJzICr;GX+^w&GX=^+Lrqlo|2z{0cMX zSwVtEkog(};}?^2?3yT_EINM z4~gih_G-;;3V9dsr42w=7RnY3&tqMwC!tOU-o2;WRpvy=y~oTK>vjB}Pc*9>_7)K2 z=PhXeU9@Jcx^}#SoUGI4_p94F~XH0og!e8pR=o(`CfAQp;j#Bzh55 zA{`VB+{`lYv;~huVvJ#0$5yu>z3p>HSuE~Daqd-M_k095yI#ku@9i(ouf_bbSdhmn zhL#;OuUS^`pTB-w#$OI1tNvN9=u$}yxMg4Muu6if@b?g~LlF&Qr4=SID^M+XoWQP) zhP3Cyp#}yb4-=TP?>UdL_xDE?9w$JXGrx+-y%Jw)LCvx<7@5>M;6a6l380P6L4lh! daPscr`~&DuoiG9@&lUgx002ovPDHLkV1n8p3&#Ke literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/distrib/plated-chute-bottom-4.png b/assets/sprites/blocks/distrib/plated-chute-bottom-4.png new file mode 100644 index 0000000000000000000000000000000000000000..93557a1b7562609395bbf3966146cde3c2d1dda5 GIT binary patch literal 896 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/distrib/plated-chute-top-2.png b/assets/sprites/blocks/distrib/plated-chute-top-2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b3b69277e3855e6810aab737b321231578aedb GIT binary patch literal 1199 zcmV;g1W@~lP)}#A1tRr64L|sZj_*gb)=HwQxTs2C|!FH^C;QU>mUT z(-^g|vDVhYRuBX~Aa-_EiZ&uElLQjP_?kJ~dG|5z4#?%KZn`ZaU|M-69tkUnl=;<@;DGOOv?Z{QDsALQLvdU z=(Tr>4LjGZr3Ik_{Y02!o)`)m1u|sGGfV~x1(!Gx!cF{r6@QEZ8d);vD9n<>M6LJ{ zfABk7H#Ig|ozxiy|Fh@44?yb&WxIkHPl@msZ`ME5qam_)2vxbO?bhIKQfE z+AdsdL+_)lI%-Ao0dgt@Z>P|egq|B{U#aF+yXWK{7K;$QhW!H=OhaI`$=+>^x&7Ny z%kKxq>vCcy6i-J000Q$#L_t(og~e9CZ__{&{_Hq$-5^lK4@Io7plqIKC6=;OX$Sg8 zFjUzx*b)O0-R!|zH~s)N1`;VtyHrXyRwTqu7limxLYjs$@Xma`+}V*z%afkYclYjn z-@W&IcTOj4pF?DGV+~g!gW)Luc5M?^0X|3IvPqbH&k?w4arT})J?DYP>yIuKaR1=2 z(EsldC=gJ)-#<8+|)qMs6UhbnKqu2$kO7To1r4ZKn!!3gA?9su4L8@R<#{ z7bUj=1OOVMbpsjK1JDwOGf@RN1uy|H2JlnH^SdKU<8cXiOTd?;^@TuP$kaqV55OG) zSG%4F=vWNji|>|zf2#mj$8iXtNo0JAMh!sC18|o@d@8^bDWLBF_zF9&IEq`^UGP>e zrfX6Uz7T0hI_jK)i4Yiz1^`|$Kn1wU`2zs&XsQpOD+B_n3ty$6Mfp}aKiS+^i?QI1 z*o%@CE$6w&b-XtijuJ|Tuj-=kCgc|pi;&m?@CCqEX-_0YkPtTk+yHQ0+P?l4F!^8f zP1qHXfC`C!ry7Md5Zmq|j&lP1R^x98-LmKs{Z6i?YJ5rA%i2=^d=wW%84ZS`ri9z4 z|Jl=`r%t#!*#!WaRnL4+6`5)cl^#%mH7NW{!lN`as2Bs?nf_j|Mt};%*N)SgrFK*; z)XCnrJ;$vC3{PhjQjd;M(+%hH5licAe)EM@Qm6cK==B}#A1tRr64L|sZj_*gb)=HwQxTs2C|!FH^C;QU>mUT z(-^g|vDVhYRuBX~Aa-_EiZ&uElLQjP_?kJ~dG|5z4#?%KZn`ZaU|M-69tkUnl=;<@;DGOOv?Z{QDsALQLvdU z=(Tr>4LjGZr3Ik_{Y02!o)`)m1u|sGGfV~x1(!Gx!cF{r6@QEZ8d);vD9n<>M6LJ{ zfABk7H#Ig|ozxiy|Fh@44?yb&WxIkHPl@msZ`ME5qam_)2vxbO?bhIKQfE z+AdsdL+_)lI%-Ao0dgt@Z>P|egq|B{U#aF+yXWK{7K;$QhW!H=OhaI`$=+>^x&7Ny z%kKxq>vCcy6i-J000VYOL_t(og|(NxZWCJ&$A4b0?QDWT5do}Q(A?79Hb|Cept0;o zmzSVQM}ejL265poy01V71xPf|AW`xFloZ4y1eBWu;@A!}|M8ui>=#IPq|u(;o%5gB z`8u<;e%kqgqd~9hZ+Y?Z?K5B^{s`=8{TVor*mYn7XahHaKeTQSdff*B-Ua-Ka+(2i zT^CxPi;e7lE*Zb4kS-Z;|K45h-@EG{O~nSja0)|SI3sOe9xecJo@FNd;^o^Za3-EP z1424?UvKi$ETtC=u$UJJeixrQU>^#cckKPC+joJ+qagsVUcV{!fC&I60y3A*0_C{) z&z#(M;KXq9K5&@>PT__1pw}G&-^8aNKkYota-CW4>(=5I(xb=Q>p%ir5x;XDL^#{Pn&evIMy;QA{&8h<=91@I_!W5u z$cP&P|B&%|3s}|r1Zc{DI8s;JRfpRH_SNAIfXzTjt^woGa6d=+ro-EJdUkty0Y29HY3Hw?%bmH5o(4U@n#_DW8eXdL zz*Dz@6&Le{xCzw7ajl_Z z%!B7k`SED@qriyu45ilmA|Q&C9A6zD0!QLw*MLGJOi3-z0PQ_?c!z2yarqYuIlA69SOr$Kw-CR|f5DpE-E#FD2i~&|*Kl$PuvYqCU^AaxGcrAKb=-9B z_eR7n3{BU7k`OE`)hho5t)QLOb8^RW!OsA#vj2ih280#hTpGI;>SIrkjOHENmxsID oSVj#OU+?-b2O?*r-&06G0jqAQbnl@Q4FCWD07*qoM6N<$g5BD7{{R30 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/distrib/plated-chute-top-4.png b/assets/sprites/blocks/distrib/plated-chute-top-4.png new file mode 100644 index 0000000000000000000000000000000000000000..055bef75bb1371582912a3a05c72f81a81a7ca93 GIT binary patch literal 1220 zcmV;#1UvhQP)}#A1tRr64L|sZj_*gb)=HwQxTs2C|!FH^C;QU>mUT z(-^g|vDVhYRuBX~Aa-_EiZ&uElLQjP_?kJ~dG|5z4#?%KZn`ZaU|M-69tkUnl=;<@;DGOOv?Z{QDsALQLvdU z=(Tr>4LjGZr3Ik_{Y02!o)`)m1u|sGGfV~x1(!Gx!cF{r6@QEZ8d);vD9n<>M6LJ{ zfABk7H#Ig|ozxiy|Fh@44?yb&WxIkHPl@msZ`ME5qam_)2vxbO?bhIKQfE z+AdsdL+_)lI%-Ao0dgt@Z>P|egq|B{U#aF+yXWK{7K;$QhW!H=OhaI`$=+>^x&7Ny z%kKxq>vCcy6i-J000Rg~L_t(og{_x6Pa8oH$A6rC*gTX7B_Sw9s&whx#S#rPR!kAT z11Tc9EAFHeDd^6HJCug+kj9qWKoiO7_ynm^fP*1G9z4P;&8#)v9DC=-NF%Sk>z)73 zf9}6?6R%4z?@(5)l=WAdt#$+G0DHi`j5|OVIFe{k35xB;$Ye3kacaR9hgej|PjT#5s*ytK&j(&GOB?3AbdAq9vz{a^9Rw0-gj?}i(_ zczfqF)k=A#*=ld41U9KRfiHk_@jk29qTb$U3aXWIUjdp0GPjoD^oDbj`g7pV_Riky#O>7>e2al4*-*XbMoK7W|mV;Y`%ZnrvrAu z1Yz788~$ty!gvmt0%pZ`&77gN*=onYjI1k&`&lSxq%Ek|qGOf*T|L)qwQ086>%bv! zApTvvleGr6fQ=xG-#I{Zfo};@E25Z3qMioC{vZH)7KHJt1BCrk2{;9QNCpm720Fmr zP)Znt@v96Vo=Y+Q1Wr^2x{88>p`|zo;}xCKt3CG!)x}=)Dc-dp&2G!$DS0F zNvmm0*4=qa0gzxDjy*i}m=%TZY3YK%%B&vuiqLM$mzNeb1+KOnrEtD#x2AxZw0Da< z7RM&2d7%ixIISh~l)@R+E2@g`Gy74^+b@eYkO9opg0FxS^nsFWJY5_^G$tme zI55ZGJMzw5{IOuQC@q22WQ%mvv4FO#o{= BG4TKZ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/power/substation-laser.png b/assets/sprites/blocks/power/substation-laser.png new file mode 100644 index 0000000000000000000000000000000000000000..26522e3b8cd4ba30743c2317642be469e2e7a026 GIT binary patch literal 855 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/production/cracker/crystal-cracker-bottom.png b/assets/sprites/blocks/production/cracker/crystal-cracker-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0f54b9bfc0ed83a9a661fd4c31ae9026f3ce11 GIT binary patch literal 551 zcmV+?0@(eDP)Px$;Ymb6RCt{2nZb?1Fc3w}YI{M5^GcMFdum7nTR<8}4cxa3q?{3=8t(CZ)_HwzR`Cd{1a&bL*69{a|QePaWDx{8tlm{$>Zx!%?D(s8s1wQ9iA z37HCx?tI(%oJFQa=?HK<9q^^X&>rC7u2D+>6C#2SWE!M~k_BC3HkRq#*JcL?A{7u3 zka{HDe6+kl#5kVHe%k}P^A`#Rqf=Qr6c^d&VhY>|E_5xbCLkpR& z4{);rsu@BF0I%X9jZk;KZDJafgRtTi1;V)yQX@cf9%;uIPc)zeN{N6_=a;^#3M$O3 zQC4AuN(T0zyQn$!9IYe?7svhazaI p2vG9*|E9?Gh?@{X2qA<-@C!{8w9Fr@tCau%002ovPDHLkV1iUP?+*X~ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/production/cracker/crystal-cracker-glow.png b/assets/sprites/blocks/production/cracker/crystal-cracker-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..f33125912988bdb056ba3d5b5cbe6247b62bb1cd GIT binary patch literal 1525 zcmVPx)uSrBfRCt{2n$2%pMHIz@vY$4%0dG^iyNP*5wj-LZmQ{{RFV7N|n35CWtM z_yhP7EPxdt#0sdy5{d2*AhAJ6NU%YGfI?d!Bq50tf5rB&;7oPc4@1elV606PkM6a`=EyOx=&1C)Su?|pk1B;*F2U=Jh(?IRt_O9y784M88K z6cs@*$AC#0T?Wno#}z?&Ma4i!O@Q~_Y2>{3dA+(_Zl)veHh~84jzYaDG71{rocDq5 zt*E6k2Rx_9A@mwo-F9iwD15Zd3(06YDRn0lB(0^Kbfi$9^^ti0Z z_-iBt$oRaxG9}O44}31;L;l_`2_4`i;2}lThaxg)L`hL{T%y^Q9&9U(mW+UAPk?T+ zAj8YLfqS$r-;-f&BYM{4byzS2pO^7R6(tQ3J+1GH!yq7y2<8-)lOo_L z8GjmhQpYBBPS<%A6@i3prMq>#))WB+;BhJag0jPeS#o1WIP;?%U$(ndf*H#DnpDB=10_A{q*&O7Hi&bgLzZbzZr z>b7*UMp^>$A|X_8&J;Ob$Ibu~-up@KebIYg2(`j4bBCzd0WN4sRD!6Q`G<})1lX-D z5~Z+)H}tuvly$F(j%(H39>r2ib5w!Xl<$|#+?kNjPa)KnXIAw4rt)%7=%O^?F5qLW z?=WsikwT~?YNo(?5qLIn-p&BFc10QjLYOvy-*vO$_jO}<@VEy~0dFdt^C{~DR51n; z#&w_NggX;9Fedbc^!B8>=!8><1IN}x8icFSseEt>Y% zoCI+}<55$+_3R5K>V(i5TLWGPeiHf1`fgxNNJBt!Tl%jZKFTfu*=f*~dpV?%3>_Dg^>o1=1N%xL{D13%~? z$ORElcg_u5{oX z?HOj(JvyQE7qUcC1g%H|LeKB!BY;GmV8S;Kd@I45mq?DA6nPnVS@lBI?E6QCte*|$ zOcSN8$Up{P(FQ4qc(VM5i1$A94yUC959@sgc-M&K zff-N61msK`Jv>PY&k`H9O?FVmlQ99#Y>C4bIcIi>O}!qN@f^UPqyjSk^HW4bL_|bH b#Gd#EtkZ`ocvPt_00000NkvXXu0mjf-zvhh literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/production/cracker/crystal-cracker.png b/assets/sprites/blocks/production/cracker/crystal-cracker.png new file mode 100644 index 0000000000000000000000000000000000000000..266a7d605572b9cb270715923a2263f4b12792ce GIT binary patch literal 3800 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/turrets/vivalo/vivalo-accelerator.png b/assets/sprites/blocks/turrets/vivalo/vivalo-accelerator.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b0b28312e2ceaf39934044f6cd64dd203f975d GIT binary patch literal 731 zcmV<10wn#3P)Px%l}SWFRA_N(FV<|?n{Ow*-(KE2Z5V1~su3v=0J2p$2(K({Xps>?FhmiBX#wGBs|Le{i-W+r zygKW3ELlktwOZ6>revq;maCobQ3$SXG|D|PEgG}!dJ3EAse6NyG+(S!Hrol0WGfDW3a@ApYhhV!hV7-t zn23V___vZ37;T`M=8HAEan=-CwIsE&Swtz2^W#m=#}Sy>c4ArpY6^p3fD8-<$iP%< zmH|b!D4a79ar;wkg2afl@O$f=sZC7NWal*20x&oTz&J3YfB*~+BZ6cSRZJx z6&SoMN;|t}FqTQeJG_dH$sBD`Ir8$>xgm-uO!j;>TC#I$xd6D& z1l@9_=81NXz)|FK#(VMwa9njQcM<^mWr$j`z(npM01j(W4|mH|?-3%S*>)0oQ7Lle zh$SH{ol9l#8-RBa3B7AsZDtjXtkzz$cP-9lQPH|jNAICih4?V6MFpUK5t3%L22Cf3 zTb`xIY%wCY_YdkzeRdPm+M*jRK?ntzh~$$YL`pY1fYU-!h@5WVbXl zl&pQb2I!3pjfyuKo(Xi%bi`&6d0h~;%uqm48#nQO7V0x|aId`-{RM~lF-c2I#C8Ax N002ovPDHLkV1i+*NE!eD literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/turrets/vivalo/vivalo-barrel.png b/assets/sprites/blocks/turrets/vivalo/vivalo-barrel.png new file mode 100644 index 0000000000000000000000000000000000000000..6f266b04a11f12ed04b3b82b041727213792c69c GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-HD>U^?gN;uumf z=j|Qa{L29nM?W$z3cku8xNE}}X>CD4p;H&SHd-??3nhKObhP^D@)sQm9TNfqc9ms| zPdn7U!m5ZGe_kO7Q&HFs#^Xyw%Yu7xNKfZCjw1bOF%bkxWUq1Trq$KeB4xQ6t zk<+f)^&Jg<&6~04`RW!yIT83SL_aJ#MeoW44ZZ{I4@>6CURf~lSD8>a>;YX`F8U~->3Zh_w(-Q z`+t5t4*zI=e{ZdC={|?8>{HtJYd)3W$zaM!{=pc`GK<0YjeULK?-|qA-^)q#{^czE z;PlU%r>;LU__O=>+$YKR>i;k-uw%Mh*r3KRp)a8J*>Rsd-tw<(&6uiN*fdxSPQNWwzb^7t0v-C-1{c86(?tYy!!OK zZjNXD9hQvZ$V0&_;*7gugg*&2+BM{P8-|$wS$w$p(Yg+iZ@>@;v$V3&*tf3xz?syB zPal}q3&yZX2(cP0L-_OxW776H>!ZZ`VmZ%#o>LXrX2q~UX5rgKHoreGs=sF3X!>yP z-KV7upH4*xDxNprm-~9redeH3+@I%7SG~)|utiPBHh>|SE5V1c=OTN=^L3fab}tBC z!ThE0v{g0BEryK``_+|u)E7T_e`ZobA2R#>b5vf@{UGy0<80f66&lP}YTGiz z*UVqwA<6KPx)_en%SRCt{2T|G`KF%X`OXt~BysMDw80Fj=a^e#b>h7wWIP;dz(gp>o&(NlxC z1_#J1o(3Gp_WXEkuQ&TiNK1CtGxL4xf3J6d1m1V|`_%avJX~zHL+o7i#7w>|Vj={8 z43Yox`DNPB*><9w7Mu0IzQ!2hM~N ziaA4_qsVWGlyA~_Q)#&m!UEusd_+owlrt%C$uH3W;HIg4KwM5ZX`nxg5c!CZ2wL)` zuoR(Ii|*?BW{?Q@zPsNaRl+`A-#!4~r%rH#k(AY%Co5EGY0{A1bNTCB)GEpm_&|X5 zY6$>H`VV{&T*DlKa?1Vp-ThwMM9i_v6+uEirsw+gT?r%k{xQNYj<^m`B)oinegD-0 z*Cyq=hJ62c5xN+_Mg$J|ssBqrYBLstmV6&k0RRA=pB|5j7p@3W@~Ph~ptTt)dbu{K zB05?Lr&>FyI)UR96>z8*nTuSTITh{I_016LtOaubr>Pms2^6^ZSkw*DG)m^a7^g=9 z_!owXA%s+fniZ`UmOlE$Pe_CXbpe2l2tAOGu<$ij_WK-@9Wli7)8i29HOJ}%gcbSR zdcne8PCX>)JSJN~J~TO@Hu=(PQ_%P>?YWBt0Fa5$g8ZC&LXgCu88$f(z+y55MQBOB z#l0>p>o1?%N^TADrLhX(i7up_vEFDoD&@1_tY32^# z`CtpsGx^qOTZ+IEU<%}0+prRW6ktl^Tidb_Au7P@+s7oyx3qSi3D>0n&0Gh;)IiJ*g}iR;x8o}V5EYSyciGh>9+ROrQK zJ6vqGgFjgn%>lV0Oo4m^Cl-qQ*g5giL=L7zKBCkL39=55iZDg;5z^Q=lk}{0LEKK* zl*vcL-W$*kWtjB?PJw)cWvnIwoD%s6tC*_}Ma($HEI?z-0yM@fKx51TG{!7IW6T0H z#w1EeeGrkoR` zv2nIHND3e&A2CG{v@ua4LLqK z0ER;mJ%}(i@&SwoG35j+ z@^Sy9ob=RtM{6(!5iH4fk1a(IkA_NS&{~R6f_(Qk$(KY@5DB1}q;DZYN%Gxu79y~B zPuH%H0I;o?Yk~9Nc4*3YHoKOQ2U!^%gymzz(`G_7w(D=v|fz=F+U1$Yv zfY|KI5lxy#uB}uNDf);{>V_0>rxj{@11iuGIVIO7C$^XfDK5>HCi;$Phb>ALQ(BvT zED{maOA{qT#2k`}P@|5J+Kj~@5rMUHuHW0^f+}t}BIK6!QgCfjzH3ErkI(#@B;amk zvtBLL1phC0Rks3wz7@yqw@AJ&70LLtrQ;aZugR}&|Yk|!vcWkpqsE(1WC5mq;HX?cF4r#gd+kDReV>%DF;Id zrbI}cv)Tf=1X8|9<4uX+juRb`9x5+Wj``!;+}x3>4@!w-VN()s$e#b82cLSW2paS% vK#r|YDHAPrEC=Cc#EW?K4X0-?mU=ZY$2mo`%XVhIN{ZU z@M6~p*M@BN{j-#vzVByDUib6%-FSo69!GWk0zZ|*tSOG(YsBn8wQW-ug{zZCYc z+G_cI`~I9Odtri1Eu3Ik=4n5;qq-Q>bxnUPEs=Zh^k?Fiq??nPDwsuwq| zo=?^da}F0=V8vJH+Yt7hYrU33sIw2}gPx)R!KxbRCt{2oWE-nK@`Vdj5d1lu&_6Vh=q!xK?vw!5H&?4rJ7PvQ1C~6jsHQ^ z!a{7LmcbN@hpH`F{7k*?BWr z0D>S0ff8cXU}cu+STjzje5PVZHI+TMPGmkCc=xvVgh;tT*PO@U;=6be8gv9 zH(_(p7vKsL_QS_-001!e^hsZ#7vu=)2v8xrt3yOf5kzM|T1tu0gy;+?8)QJikO2il z1{4e#P%!A`0oQNd?mWpXe*YY#&)H`$JAF=`K7ne!fGPrb@w0+A0|RIb$U}SvCKJ#Y zV8Y<;z1lV-$4};PCE-A0z`Z-SQ*$#Df93ZUWt)rFt^k1E1We-q8Up~-CWv>w%mgMr zLuCRc@c{r(U5pCV_%N{T4}AFetxJ3cHnC-(iU3-8t)Eco!DUDD4hl}ct$Q|Kcg z5k@`yYwp$B!Q7ehrzeh*7c4j9>P0>w-kpWo@puQ&X71EeZFn$VRCh(7ns+q7Uu1`m@@^q{w1W7^sIlOpq--`jU4+&dUICIZ_6z5vhK7Y)s&Dekc=A zRYPw*n2~Ob6;ni-2_`!wOiU05SlNIpnh-iNL_)nk!YKk|CYVHn4>nIZD)DQ__Vv|{ z?eh|@QmOQXe0hg+`LWTzuB~3Sm#f++uo<{@CYav!%mkbNbj<3FDcVj=cSbOL=LXg0 z0^A=MG;VK`YB0XU&-*FJW=zn*&b_+Qy~Dy6jN$_rzP3^q1pw)bDXOSQGpo_R4vPl+ zgG?d-tM~wh5ukb^;t4r{Vtoy+x$m-LU=|<1A_e7Tg4l#4Viefk{bdv%!1LwZF6qdHvWgE7=Ww~3q_9xa&`59ijkFHYv!zE$- r?Oa~rkF%#O-*2gv1qLk!XlS^{(Bu>MW%1!!F_5IEtDnm{r-UW|%ObT! literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/walls/lake-rim-open.png b/assets/sprites/blocks/walls/lake-rim-open.png new file mode 100644 index 0000000000000000000000000000000000000000..6a511e49c585d7efcc77335fb532513536ff2d4b GIT binary patch literal 793 zcmV+!1LpjRP)Px%(@8`@R9J=Wmp^C}K@`Tnoj<#qGin4;&>}X1pdf-mP!I&|>_kuqXe(F!LqzMkqBshQbdg)ww{xX0V7rYcR9Dv%9E~5y}Y5;8~;BT7XoFmWkKyXa}<*z8h zSSsHsYt3U-SmW5j=@b7B&}QdO9iQ~Cfld8ov98nxM1+(h#7rBQj*6Dcn_88TdSha}x7%J@9Sz!sX|gs`&fyGEJiaC}R;< z(%Q{*UmN5Q%h6A4j=aC2feysnmaq6Or~_yN!9yW!bTcGmp`}19MsG^WPkB$cG>}oV{Ku`!jOY91Z4>OxyG$~cj^E)7H^Ndz)srKpM-w^ Xewt+H5)?gu00000NkvXXu0mjfh~r?% literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/walls/lake-rim.png b/assets/sprites/blocks/walls/lake-rim.png new file mode 100644 index 0000000000000000000000000000000000000000..6d1524666567876359b8777f3aee9b35f33debd6 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}hdo^!Ln2z= zPTMWmV!-1f-sa>nXJQ;@_}$bcQ=B-Lq^N{*#uOMIGm~gJv!T=6_}`0-lUQA^*NF*) z8Z|RJJmtIhwb^STj3`D`BR=BFz{pOk-h)4<9E`-nO~$9Fo!gmIwUBUt+AQi z-}%mgZ2_~4SfW?*q<5nCnQ|M9F9uIwG-~)I_Q(G2>bTy{b)n2V9M`c;c(-)90`mpN zBij|${966l@S^Mj=A57fTR(aHn|bVaVrcmxlNnnLBN=kFeMR@O)!jH|+NHDBG8*U| N22WQ%mvv4FO#qM*XVCxv literal 0 HcmV?d00001 diff --git a/assets/sprites/items/heavy ind/aspect-bomb.png b/assets/sprites/items/heavy ind/aspect-bomb.png new file mode 100644 index 0000000000000000000000000000000000000000..8ceffb04dbfe9542e11d436ff129097333e33570 GIT binary patch literal 504 zcmVPx$vPnciR9J5MoV;NYAYCj%<@*WWe(px^ssO@uz+0w^;g`;U&bGGGEXF=Az)Eu2%UJ)ncr_1@Up zX^hSCvJn@>X<(dz*<`eOxx2K21HdrpNS_-Sm`z5~nGchW^2I6>bo{cIuUG>Vo{S$W zFY}?U4ZMwhzdtI!`#nPgw(vSorzlPXsR0TLOxVKVV-L8%p=!tZ^bla$aF& { MeldRegions.load(); }); + + Events.on(EventType.FileTreeInitEvent.class, e -> { + Core.app.post(MeldShaders::load); + }); } public static String prefix(String in){ @@ -76,9 +69,11 @@ public static String gradient(String in, Color... colors){ @Override public void init() { super.init(); - + melting = new Melting(); - + + Reflect.set(Vars.renderer, "lights", new MeldLightRenderer()); + Vars.mods.getScripts().runConsole( "function buildWorldP(){return Vars.world.buildWorld(Vars.player.x, Vars.player.y)}"); ImporterTopLevel scope = (ImporterTopLevel) Vars.mods.getScripts().scope; @@ -87,7 +82,8 @@ public void init() { "meld", "meld.content", "meld.world", - "meld.fluid" + "meld.fluid", + "meld.graphics" ); packages.each(name -> { diff --git a/src/meld/content/MeldBlocks.java b/src/meld/content/MeldBlocks.java index 0264e38..c301dfb 100644 --- a/src/meld/content/MeldBlocks.java +++ b/src/meld/content/MeldBlocks.java @@ -13,6 +13,7 @@ import meld.fluid.AspectGroup; import meld.graphics.*; import meld.world.blocks.*; +import meld.world.blocks.consumers.ConsumeItemsBoost; import meld.world.blocks.consumers.ConsumePowerRecipe; import meld.world.blocks.consumers.StupidConsumeAspects; import meld.world.blocks.crafting.ModularCrafter; @@ -23,6 +24,7 @@ import meld.world.blocks.crafting.modules.*; import meld.world.blocks.crafting.recipe.TimedRecipe; import meld.world.blocks.defense.FrictionPad; +import meld.world.blocks.defense.LakeRim; import meld.world.blocks.fluid.*; import meld.world.blocks.items.PriorityInputSplitter; import meld.world.blocks.power.ConsumeThermal; @@ -62,10 +64,13 @@ import mindustry.world.blocks.liquid.LiquidJunction; import mindustry.world.blocks.liquid.LiquidRouter; import mindustry.world.blocks.power.Battery; +import mindustry.world.blocks.power.PowerNode; import mindustry.world.blocks.power.ThermalGenerator; import mindustry.world.blocks.production.*; +import mindustry.world.blocks.storage.StorageBlock; import mindustry.world.blocks.storage.Unloader; import mindustry.world.blocks.units.UnitFactory; +import mindustry.world.consumers.ConsumeItemList; import mindustry.world.consumers.ConsumeItems; import mindustry.world.consumers.ConsumeLiquid; import mindustry.world.consumers.ConsumePower; @@ -77,7 +82,7 @@ public class MeldBlocks { //Strata blocks first - public static Block chute, chuteRouter, chuteBridge, chuteJunction, chuteOverflow, unloadingHub; + public static Block chute, chuteRouter, chuteBridge, chuteJunction, chuteOverflow, platedChute, unloadingHub; public static Block sonarSpire, movementAnchor, nullifier, //Bruisekit: Targets largest, highest hp blocks, functional blocks first, continuously heals @@ -88,13 +93,13 @@ public class MeldBlocks { bruisekit, gauze, suture; //Core Blocks - public static Block coreRaft; + public static Block coreRaft, buffer; //Core Incinerator does what core incinerator does... it core incinerator public static ItemIncinerator aspectIncinerator; - public static Block aetherAccumulator, elementalBlaster, excavationQuarry, pneumaticPulsear, + public static Block aetherAccumulator, crystalCracker, elementalBlaster, excavationQuarry, pneumaticPulsear, earthboundInfuser, fumehood, sharkFactory; public static LaunchStation launchStation; @@ -102,16 +107,17 @@ public class MeldBlocks { //Crafters public static RecipeCrafter gasKiln, metalworks, rotaryKiln, pneumaticExtruder; + public static AttributeCrafter crushWeaver; public static RecipeCrafter stormIris; //power blocks - public static Block conductivePile, aspectDischarger; + public static Block conductivePile, substation, aspectDischarger; public static Block channelNode, channelHub, channelFace, aspectOutlet, aspectChannel, channelDirector, channelVent, manualValve, intakeValve, valveController, pipebox; public static Block sunder, shredstorm, molotov, vivisection, vinca, vivalo; - public static Block silverHusk, shadesteelShingles, gateSpike, frictionPad; + public static Block silverHusk, shadesteelShingles, gateSpike, lakeRim, frictionPad; //Meld blocks public static Block pipeline, pipelineRouter, pipelineCrossing, pipelineBridge, @@ -208,20 +214,20 @@ public static void load(){ new TimedRecipe(){{ float multi = AspectGroup.aether.getEfficiency(MeldLiquids.aether); float density = AspectGroup.aether.getDensity(MeldLiquids.aether); - consumers.add(new ConsumeLiquid(MeldLiquids.aether, outletRate/density/10)); - producers.add(new ProduceLiquid(MeldLiquids.aspect, outletRate * multi * density)); + consumers.add(new ConsumeLiquid(MeldLiquids.aether, outletRate/density/10 * multi)); + producers.add(new ProduceLiquid(MeldLiquids.aspect, outletRate * multi)); }}, new TimedRecipe(){{ float multi = AspectGroup.aether.getEfficiency(MeldLiquids.pollutantMixture); float density = AspectGroup.aether.getDensity(MeldLiquids.pollutantMixture); - consumers.add(new ConsumeLiquid(MeldLiquids.pollutantMixture, outletRate/density/10)); - producers.add(new ProduceLiquid(MeldLiquids.boundAspect, outletRate * multi * density)); + consumers.add(new ConsumeLiquid(MeldLiquids.pollutantMixture, outletRate/density/10 * multi)); + producers.add(new ProduceLiquid(MeldLiquids.boundAspect, outletRate * multi)); }}, new TimedRecipe(){{ float multi = AspectGroup.aether.getEfficiency(MeldLiquids.thunderingAether); float density = AspectGroup.aether.getDensity(MeldLiquids.thunderingAether); - consumers.add(new ConsumeLiquid(MeldLiquids.thunderingAether, outletRate/density/10)); - producers.add(new ProduceLiquid(MeldLiquids.stormingAspect, outletRate * multi * density)); + consumers.add(new ConsumeLiquid(MeldLiquids.thunderingAether, outletRate/density/10 * multi)); + producers.add(new ProduceLiquid(MeldLiquids.stormingAspect, outletRate * multi)); }} ); }}; @@ -693,6 +699,54 @@ public static void load(){ ); }}; + vivalo = new ItemTurret("vivalo"){{ + requirements(Category.turret, with(MeldItems.debris, 20, MeldItems.electrumSheet, 45, MeldItems.vitricMesh, 12)); + size = 3; + health = 520; + range = 160; + fogRadiusMultiplier = 0.25f; + reload = 240; + + shootWarmupSpeed = 0.12f; + minWarmup = 0.7f; + + recoil = 0; + shootCone = 5; + + rotateSpeed = 12; + + shootSound = Sounds.loopSpray; + moveWhileCharging = true; + + rotate = quickRotate = false; + shoot = new ShootSpread(){{ + spread = 0; + shots = 6; + shotDelay = 8; + firstShotDelay = 30; + }}; + + inaccuracy = 0; + shootY = 9; + + ammoPerShot = 10; + drawer = new DrawTurret(){{ + parts.addAll(); + }}; + + /* + ammo( + MeldItems.resonarum, 1, + MeldItems.dissonitre, 1, + MeldItems.vitricMesh, 1, + MeldItems.quartzStrata, 1, + MeldItems.iampsi, 1, + MeldItems.glassMallows, 1 + ); + + */ + }}; + vivisection = new ItemTurret("vivisection"){{ requirements(Category.turret, with(MeldItems.debris, 200, MeldItems.silver, 320, MeldItems.resonarum, 60)); size = 4; @@ -1067,6 +1121,12 @@ public void update(Bullet b){ health = 120; }}; + lakeRim = new LakeRim("lake-rim"){{ + requirements(Category.defense, with(MeldItems.debris, 4)); + size = 1; + health = 120; + }}; + frictionPad = new FrictionPad("friction-pad"){{ requirements(Category.units, with(MeldItems.quartzStrata, 1)); size = 1; @@ -1089,6 +1149,15 @@ public void update(Bullet b){ solid = false; }}; + buffer = new StorageBlock("buffer"){{ + requirements(Category.effect, with(MeldItems.debris, 120, MeldItems.cruciblePlating, 200)); + size = 2; + health = 800; + armor = 15; + + itemCapacity = 150; + }}; + aspectIncinerator = new StorageIncinerator("aspect-incinerator"){{ requirements(Category.effect, with(MeldItems.debris, 40)); health = 120; @@ -1106,6 +1175,8 @@ public void update(Bullet b){ health = 300; + buildTime = 180; + attribute = MeldAttributes.aetherAttr; baseEfficiency = 0; minEfficiency = 8.9f; @@ -1116,44 +1187,31 @@ public void update(Bullet b){ outputLiquid = new LiquidStack(MeldLiquids.aether, 1); }}; - fumehood = new ModularCrafter("fumehood"){{ + crystalCracker = new AttributeCrafter("crystal-cracker"){{ requirements(Category.production, with( - MeldItems.debris, 80, MeldItems.shadesteel, 40 + MeldItems.debris, 40, + MeldItems.dissonitre, 40 )); - size = 3; - health = 500; - armor = 2; - hasLiquids = true; - replaceBars = false; - - squareSprite = false; + size = 2; - dumpedLiquids.addAll(MeldLiquids.pollutantMixture, MeldLiquids.fumes); + health = 600; - //Should make all the modules trigger in order - hookAll(BlockEvent.Defaults.proximityUpdate, - new AttributeModule(){{ - attribute = MeldAttributes.aetherAttr; - baseEfficiency = 0; - minEfficiency = 1; - boostScale = 1f/9f; - - efficiencyPin = 0; - }}, - new AttributeModule(){{ - attribute = Attribute.steam; - baseEfficiency = 0; - minEfficiency = 1; - boostScale = 1f/9f; + attribute = MeldAttributes.soilAttr; + baseEfficiency = 0; - efficiencyPin = 1; - }} + drawer = new DrawMulti( + new DrawRegion("-bottom"), + new DrawLiquidTile(MeldLiquids.thunderingAether), + new DrawGlowRegion(), + new DrawRegion() ); - modules.addAll( - new ProduceLiquidModule(new LiquidStack(MeldLiquids.pollutantMixture, 1), 0), - new ProduceLiquidModule(new LiquidStack(MeldLiquids.fumes, 1), 1) - ); + craftTime = 60; + consumeItem(MeldItems.dissonitre, 1); + consume(new ConsumeLiquid(MeldLiquids.thunderingAether, 0){{ + optional = true; + }}); + outputLiquid = new LiquidStack(MeldLiquids.thunderingAether, 2/6f); }}; elementalBlaster = new BeamDrill("elemental-blaster"){{ @@ -1208,11 +1266,69 @@ public void update(Bullet b){ }}); }}; - excavationQuarry = new GrindingQuary("excavation-quary"){{ + fumehood = new ModularCrafter("fumehood"){{ + requirements(Category.production, with( + MeldItems.debris, 80, MeldItems.shadesteel, 40 + )); + size = 3; + health = 500; + armor = 2; + hasLiquids = true; + replaceBars = false; + + squareSprite = false; + + dumpedLiquids.addAll(MeldLiquids.pollutantMixture, MeldLiquids.fumes); + + //Should make all the modules trigger in order + hookAll(BlockEvent.Defaults.proximityUpdate, + new AttributeModule(){{ + attribute = MeldAttributes.aetherAttr; + baseEfficiency = 0; + minEfficiency = 1; + boostScale = 1f/9f; + + efficiencyPin = 0; + }}, + new AttributeModule(){{ + attribute = Attribute.steam; + baseEfficiency = 0; + minEfficiency = 1; + boostScale = 1f/9f; + + efficiencyPin = 1; + }} + ); + + modules.addAll( + new ProduceLiquidModule(new LiquidStack(MeldLiquids.pollutantMixture, 1), 0), + new ProduceLiquidModule(new LiquidStack(MeldLiquids.fumes, 1), 1) + ); + }}; + + excavationQuarry = new GrindingQuary("excavation-quarry"){{ requirements(Category.production, with(MeldItems.debris, 250, MeldItems.quartzStrata, 120)); size = 5; - consume(new StupidConsumeAspects(outletRate * 3, AspectGroup.aspect)); + consume(new StupidConsumeAspects(outletRate * 4, AspectGroup.aspect)); + consume(new ConsumeItemList(){{ + optional = booster = true; + setMultipliers( + MeldItems.quartzStrata, 1.5f, + MeldItems.iampsi, 3f + ); + }} + ); + consume( + new ConsumeItemsBoost(with(MeldItems.gunpowder, 10), 2){{ + optional = booster = true; + }} + ); + consume( + new StupidConsumeAspects(outletRate, AspectGroup.aqua, 5){{ + optional = booster = true; + }} + ); }}; pneumaticPulsear = new SingleBeamDrill("pneumatic-pulsar"){{ @@ -1380,6 +1496,82 @@ public void update(Bullet b){ ); }}; + crushWeaver = new AttributeCrafter("crush-weaver"){{ + requirements(Category.crafting, with( + MeldItems.debris, 40, + MeldItems.annealedSilver, 40, + MeldItems.dissonitre, 40 + )); + size = 2; + + health = 600; + + attribute = MeldAttributes.soilAttr; + baseEfficiency = 0; + minEfficiency = 1; + + drawer = new DrawMulti( + new DrawRegion("-bottom"), + new DrawRegion("-grinder"){{ + x = 2; + y = -3; + spinSprite = true; + rotateSpeed = 30; + }}, + new DrawRegion("-grinder"){{ + x = 2; + y = 3; + spinSprite = true; + rotateSpeed = -30; + }}, + new DrawRegion("-grinder"){{ + x = -2; + y = 3; + spinSprite = true; + rotateSpeed = 30; + }}, + new DrawRegion("-grinder"){{ + x = -2; + y = -3; + spinSprite = true; + rotateSpeed = -30; + }}, + new DrawGlowRegion(), + new DrawRegion() + ); + + craftTime = 30; + consumeItem(MeldItems.dissonitre, 1); + consume(new StupidConsumeAspects(outletRate, AspectGroup.aspect)); + outputItems = with(MeldItems.vitricMesh, 1); + }}; + + crushWeaver = new AttributeCrafter("aether-vitrifier"){{ + requirements(Category.crafting, with( + MeldItems.debris, 40, + MeldItems.electrumSheet, 80, + MeldItems.dissonitre, 40 + )); + size = 2; + + health = 600; + + attribute = MeldAttributes.soilAttr; + baseEfficiency = 0; + minEfficiency = 1; + + drawer = new DrawMulti( + new DrawRegion("-bottom"), + new DrawGlowRegion(), + new DrawRegion() + ); + + craftTime = 60; + consume(new ConsumeLiquid(MeldLiquids.aether, outletRate/10f)); + consumePower(2); + outputItems = with(MeldItems.dissonitre, 1); + }}; + stormIris = new RecipeCrafter("storm-iris"){{ requirements(Category.crafting, with(MeldItems.debris, 350, MeldItems.annealedSilver, 300, MeldItems.electrumSheet, 300, MeldItems.quartzStrata, 250)); size = 5; @@ -1425,6 +1617,22 @@ public void update(Bullet b){ ); }}; + substation = new PowerNode("substation"){{ + requirements(Category.power, with(MeldItems.annealedSilver, 450, MeldItems.electrumSheet, 600, MeldItems.dissonitre, 150)); + size = 5; + health = 2100; + armor = 15; + + laserRange = 50; + maxNodes = 3; + fogRadius = 0; + laserColor1 = Color.white; + laserColor2 = Color.valueOf("646461"); + + consumesPower = outputsPower = true; + consumePowerBuffered(300); + }}; + aspectDischarger = new ConsumeThermal("aspect-discharger"){{ requirements(Category.power, with(MeldItems.debris, 35, MeldItems.electrumSheet, 120)); size = 2; @@ -1590,6 +1798,14 @@ public void update(Bullet b){ solid = false; }}; + platedChute = new Duct("plated-chute"){{ + requirements(Category.distribution, with(MeldItems.cruciblePlating, 2)); + armored = true; + health = 45; + armor = 10; + speed = 4f; + }}; + unloadingHub = new Unloader("unloading-hub"){{ requirements(Category.distribution, with(MeldItems.debris, 450)); size = 3; diff --git a/src/meld/content/MeldEnvironment.java b/src/meld/content/MeldEnvironment.java index 63f45be..6293706 100644 --- a/src/meld/content/MeldEnvironment.java +++ b/src/meld/content/MeldEnvironment.java @@ -401,6 +401,7 @@ public static void load(){ variants = 2; solid = false; hasShadow = false; + mapColor = Color.valueOf("f3e1af"); }}; mallowWall = new StaticWall("mallow-wall"){{ diff --git a/src/meld/content/MeldFx.java b/src/meld/content/MeldFx.java index 6004be5..9306a92 100644 --- a/src/meld/content/MeldFx.java +++ b/src/meld/content/MeldFx.java @@ -185,9 +185,9 @@ public class MeldFx { }); public interface VisualLightningHolder{ - Vec2 start(); + Position start(); - Vec2 end(); + Position end(); float width(); diff --git a/src/meld/content/MeldItems.java b/src/meld/content/MeldItems.java index 4e1d444..1095297 100644 --- a/src/meld/content/MeldItems.java +++ b/src/meld/content/MeldItems.java @@ -21,7 +21,10 @@ public class MeldItems { //Heavy industry content public static Item tenbris, motis, shadesteel, elnarDust, - annealedSilver, glassMallows, iampsi, quartzStrata, likestoneSediments, + annealedSilver, glassMallows, + aspectBomb, + iampsi, quartzStrata, likestoneSediments, + gunpowder, cruciblePlating, aspectPipe; public static void load(){ @@ -86,6 +89,11 @@ public static void load(){ glassMallows = new Item("glass-mallow"); + aspectBomb = new Item("aspect-bomb"){{ + explosiveness = 1; + flammability = 0; + }}; + iampsi = new Item("iampsi"){{ }}; @@ -94,6 +102,8 @@ public static void load(){ likestoneSediments = new Item("likestone-sediments"){{}}; + gunpowder = new Item("gunpowder"); + aspectPipe = new Item("aspect-pipe"){{ }}; diff --git a/src/meld/content/MeldLiquids.java b/src/meld/content/MeldLiquids.java index a0d0e04..b7b3b85 100644 --- a/src/meld/content/MeldLiquids.java +++ b/src/meld/content/MeldLiquids.java @@ -37,7 +37,7 @@ public static void load(){ thunderingAether = new Aspect("thundering-aether"){{ gas = true; - color = Color.valueOf("f99b76"); + color = Color.valueOf("f35430"); temperature = 0.6f; explosiveness = 0.1f; }}; @@ -87,6 +87,8 @@ public static void load(){ put(fumes, AspectGroup.fumes, new AspectStats(1, 1)); put(pollutantMixture, AspectGroup.fumes, new AspectStats(1, 0.5f)); + put(meld, aqua, new AspectStats(1/3f, 0.25f)); + outletMapping.putAll( aether, aspect, pollutantMixture, boundAspect, diff --git a/src/meld/content/MeldUnits.java b/src/meld/content/MeldUnits.java index ba6a354..19897f4 100644 --- a/src/meld/content/MeldUnits.java +++ b/src/meld/content/MeldUnits.java @@ -210,19 +210,6 @@ public static void load(){ progress = PartProgress.life.delay(0.8f).curve(Interp.pow5In); }}, //Sonar - new ShapePart(){{ - x = y = 0; - progress = PartProgress.life; - circle = true; - hollow = true; - radius = 0; - radiusTo = IR; - stroke = 6; - strokeTo = 0; - layer = Layer.buildBeam; - color = Pal.accent; - }}, - new ShapePart(){{ x = y = 0; progress = PartProgress.life.curve(Interp.pow10Out); @@ -236,17 +223,19 @@ public static void load(){ color = Pal.accent; }}, - new ShapePart(){{ - x = y = 0; - progress = PartProgress.life.curve(Interp.pow10In); - circle = true; - hollow = true; + new SonarPart(){{ radius = IR; + }}, + + new SonarPart(){{ + x = y = 0; + progress = PartProgress.life; + radius = 0; radiusTo = IR; - stroke = 4; + stroke = 6; strokeTo = 0; - layer = Layer.buildBeam; color = Pal.accent; + layer = MeldLayers.sonarInside; }} ); @@ -333,18 +322,6 @@ public static void load(){ shootWarmupSpeed = 5/90f; DrawPart.PartProgress mixedProg = DrawPart.PartProgress.reload.curve(Interp.reverse).mul(DrawPart.PartProgress.warmup); parts.addAll( - new ShapePart(){{ - circle = hollow = true; - radius = 120; - radiusTo = 0; - layer = Layer.effect; - stroke = 6; - strokeTo = 10; - color = MeldPal.accentClear; - colorTo = Pal.accent; - progress = mixedProg.compress(0.1f, 0.9f).curve(Interp.pow2In); - }}, - new ShapePart(){{ circle = hollow = true; radius = 45; @@ -415,26 +392,17 @@ public static void load(){ ); parts.addAll( - new HoverPart(){{ - x = y = 0; - phase = 420; - sides = 60; - mirror = false; + new SonarPart(){{ radius = IR; - stroke = 3; - circles = 2; - minStroke = 0.5f; - layer = Layer.buildBeam; - color = Pal.accent; - }}, - new ShapePart(){{ - x = y = 0; - circle = true; - hollow = true; stroke = 4; - radius = IR - 2; - layer = Layer.buildBeam; - color = Pal.accent; + }}, + new SonarPart(){{ + radius = 0; + radiusTo = IR; + stroke = 0.5f; + strokeTo = 2; + layer = MeldLayers.sonarInside; + progress = PartProgress.time.mul(1f/420).mod(1); }} ); constructor = BulbheadEntity::new; diff --git a/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java index f4d6f73..e784ff8 100644 --- a/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java +++ b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java @@ -2,13 +2,20 @@ import arc.graphics.g2d.Lines; import arc.math.Mathf; +import arc.math.geom.Position; +import arc.math.geom.Vec2; import arc.util.Time; +import arc.util.Tmp; +import meld.content.MeldFx; import mindustry.Vars; import mindustry.entities.abilities.Ability; +import mindustry.gen.Sounds; import mindustry.gen.Unit; +import mindustry.graphics.Pal; public class FabricatorBatteryAbility extends Ability { protected float charge = 0; + protected float zapTimer = 0; protected boolean enabled = true; public float chargeCap = 60 * 60; @@ -22,9 +29,56 @@ public class FabricatorBatteryAbility extends Ability { public void update(Unit unit) { super.update(unit); - if(unit.activelyBuilding() && enabled){ - charge -= Time.delta * drainSpeed; - unit.buildSpeedMultiplier *= speedMulti; + if(unit.activelyBuilding()){ + if(enabled){ + charge -= Time.delta * drainSpeed; + unit.buildSpeedMultiplier *= speedMulti; + zapTimer += Time.delta; + if(zapTimer > 12){ + zapTimer %= 12; + Vec2 targ = new Vec2(); + if(unit.buildPlan().build() != null) { + targ.set(unit.buildPlan().build().x, unit.buildPlan().build().y); + } + else { + Tmp.v1.trns(Mathf.random(360), unit.type.hitSize + Mathf.random(0, 12)).add(unit); + targ.set(Tmp.v1); + } + + MeldFx.chainLightning.at(unit.x, unit.y, 0, Pal.accent, new MeldFx.VisualLightningHolder() { + @Override + public Position start() { + return unit; + } + + @Override + public Position end() { + return targ; + } + + @Override + public float width() { + return 2; + } + + @Override + public float segLength() { + return 7; + } + + @Override + public float arc() { + return 0.2f; + } + + @Override + public int coils() { + return 3; + } + }); + } + Sounds.shootArc.at(unit.x, unit.y, Mathf.range(0.8f, 1.2f)); + } } else charge += Time.delta; diff --git a/src/meld/fluid/AspectGroup.java b/src/meld/fluid/AspectGroup.java index bc33b80..3946393 100644 --- a/src/meld/fluid/AspectGroup.java +++ b/src/meld/fluid/AspectGroup.java @@ -24,7 +24,7 @@ public static void loadAll(){ groups.each(AspectGroup::load); } - //Kept separate since I want to test some things ingame and be able to reset a single group's name over calling a load function on everything + //Kept separate since I want to test some things ingame and be able to reset a single group's name over calling a init function on everything public void load(){ localizedName = Core.bundle.get("aspect-group." + name, name); } @@ -44,14 +44,17 @@ public AspectGroup hide(){ aether = new AspectGroup("aether"), aspect = new AspectGroup("aspect"), outlet = new AspectGroup("outlet"), - fumes = new AspectGroup("fumes"); + fumes = new AspectGroup("fumes"), + aqua = new AspectGroup("aqua"); public float getDensity(Liquid liquid){ + if(liquid == null) return 0; AspectStats stat = stats.get(liquid); return stat == null ? 1 : stat.density; } public float getEfficiency(Liquid liquid){ + if(liquid == null) return 0; AspectStats stat = stats.get(liquid); return stat == null ? 1 : stat.efficiency; } diff --git a/src/meld/graphics/Draww.java b/src/meld/graphics/Draww.java index 8957d7d..d815203 100644 --- a/src/meld/graphics/Draww.java +++ b/src/meld/graphics/Draww.java @@ -2,6 +2,7 @@ import arc.graphics.Color; import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; import arc.graphics.g2d.Lines; import arc.graphics.g2d.TextureRegion; import arc.math.Interp; @@ -14,6 +15,24 @@ import mindustry.world.Block; public class Draww { + + public static void drawSonar(float x, float y, float radius, float thickness){ + drawSonar(x, y, radius, thickness, MeldLayers.sonar, Pal.accent); + } + + public static void drawSonar(float x, float y, float radius, float thickness, float layer, Color color){ + float z = Draw.z(); + Draw.z(layer); + + Draw.color(color); + Fill.light(x, y, (int) (radius/4) + 12, radius + thickness/2, Tmp.c1.set(color).a(0), Tmp.c1.a(1)); + //ill.circle(x, y, radius); + + Draw.z(layer + 0.01f); + Fill.light(x, y, (int) (radius/4) + 12, radius - thickness/2, Tmp.c1.set(Color.red), Tmp.c1); + Draw.z(z); + } + public static Vec2 tv1 = new Vec2(), tv2 = new Vec2(), tv3 = new Vec2(); //draws a chain of sprites public static void drawChain(TextureRegion region, float x, float y, float endx, float endy, float drawRotation){ diff --git a/src/meld/graphics/MeldLayers.java b/src/meld/graphics/MeldLayers.java new file mode 100644 index 0000000..d046a28 --- /dev/null +++ b/src/meld/graphics/MeldLayers.java @@ -0,0 +1,12 @@ +package meld.graphics; + +import mindustry.graphics.Layer; + +public class MeldLayers { + public static float + //Used to prevent layer collisions + funnyNumber = 0.691337f, + + sonar = Layer.fogOfWar + 1 + funnyNumber, + sonarInside = Layer.fogOfWar + 3 + funnyNumber; +} diff --git a/src/meld/graphics/MeldLightRenderer.java b/src/meld/graphics/MeldLightRenderer.java new file mode 100644 index 0000000..86ba302 --- /dev/null +++ b/src/meld/graphics/MeldLightRenderer.java @@ -0,0 +1,268 @@ +package meld.graphics; + +import arc.Core; +import arc.graphics.Blending; +import arc.graphics.Color; +import arc.graphics.Gl; +import arc.graphics.Texture; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; +import arc.graphics.g2d.TextureRegion; +import arc.graphics.gl.FrameBuffer; +import arc.math.Mathf; +import arc.math.geom.Vec2; +import arc.struct.Seq; +import arc.util.Tmp; +import meld.Meld; +import mindustry.Vars; +import mindustry.graphics.LightRenderer; +import mindustry.graphics.Shaders; + +import static meld.graphics.MeldShaders.lightBuffer; +import static mindustry.Vars.renderer; +import static mindustry.Vars.state; + +public class MeldLightRenderer extends LightRenderer { + + public MeldLightRenderer(){ + super(); + thingo = this; + } + + public static MeldLightRenderer thingo; + + private static final int scaling = 4; + + private float[] vertices = new float[24]; + public static FrameBuffer buffer = new FrameBuffer(); + private Seq lights = new Seq<>(); + private Seq circles = new Seq<>(CircleLight.class); + private int circleIndex = 0; + private TextureRegion circleRegion; + + public void add(Runnable run){ + if(!enabled()) return; + + lights.add(run); + } + + public void add(float x, float y, float radius, Color color, float opacity){ + if(!enabled() || radius <= 0f) return; + + //TODO: clipping. + + float res = Color.toFloatBits(color.r, color.g, color.b, opacity); + + if(circles.size <= circleIndex) circles.add(new CircleLight()); + + //pool circles to prevent runaway GC usage from lambda capturing + var light = circles.items[circleIndex]; + light.set(x, y, res, radius); + + circleIndex ++; + } + + public void add(float x, float y, TextureRegion region, Color color, float opacity){ + add(x, y, region, 0f, color, opacity); + } + + public void add(float x, float y, TextureRegion region, float rotation, Color color, float opacity){ + if(!enabled()) return; + + float res = color.toFloatBits(); + float xscl = Draw.xscl, yscl = Draw.yscl; + add(() -> { + Draw.color(res); + Draw.alpha(opacity); + Draw.scl(xscl, yscl); + Draw.rect(region, x, y, rotation); + Draw.scl(); + }); + } + + public void line(float x, float y, float x2, float y2, float stroke, Color tint, float alpha){ + if(!enabled()) return; + + add(() -> { + Draw.color(tint, alpha); + + float rot = Mathf.angleExact(x2 - x, y2 - y); + TextureRegion ledge = Core.atlas.find("circle-end"), lmid = Core.atlas.find("circle-mid"); + + float color = Draw.getColorPacked(); + float u = lmid.u; + float v = lmid.v2; + float u2 = lmid.u2; + float v2 = lmid.v; + + Vec2 v1 = Tmp.v1.trnsExact(rot + 90f, stroke); + float lx1 = x - v1.x, ly1 = y - v1.y, + lx2 = x + v1.x, ly2 = y + v1.y, + lx3 = x2 + v1.x, ly3 = y2 + v1.y, + lx4 = x2 - v1.x, ly4 = y2 - v1.y; + + vertices[0] = lx1; + vertices[1] = ly1; + vertices[2] = color; + vertices[3] = u; + vertices[4] = v; + vertices[5] = 0; + + vertices[6] = lx2; + vertices[7] = ly2; + vertices[8] = color; + vertices[9] = u; + vertices[10] = v2; + vertices[11] = 0; + + vertices[12] = lx3; + vertices[13] = ly3; + vertices[14] = color; + vertices[15] = u2; + vertices[16] = v2; + vertices[17] = 0; + + vertices[18] = lx4; + vertices[19] = ly4; + vertices[20] = color; + vertices[21] = u2; + vertices[22] = v; + vertices[23] = 0; + + Draw.vert(ledge.texture, vertices, 0, vertices.length); + + Vec2 v3 = Tmp.v2.trnsExact(rot, stroke); + + u = ledge.u; + v = ledge.v2; + u2 = ledge.u2; + v2 = ledge.v; + + vertices[0] = lx4; + vertices[1] = ly4; + vertices[2] = color; + vertices[3] = u; + vertices[4] = v; + vertices[5] = 0; + + vertices[6] = lx3; + vertices[7] = ly3; + vertices[8] = color; + vertices[9] = u; + vertices[10] = v2; + vertices[11] = 0; + + vertices[12] = lx3 + v3.x; + vertices[13] = ly3 + v3.y; + vertices[14] = color; + vertices[15] = u2; + vertices[16] = v2; + vertices[17] = 0; + + vertices[18] = lx4 + v3.x; + vertices[19] = ly4 + v3.y; + vertices[20] = color; + vertices[21] = u2; + vertices[22] = v; + vertices[23] = 0; + + Draw.vert(ledge.texture, vertices, 0, vertices.length); + + vertices[0] = lx2; + vertices[1] = ly2; + vertices[2] = color; + vertices[3] = u; + vertices[4] = v; + vertices[5] = 0; + + vertices[6] = lx1; + vertices[7] = ly1; + vertices[8] = color; + vertices[9] = u; + vertices[10] = v2; + vertices[11] = 0; + + vertices[12] = lx1 - v3.x; + vertices[13] = ly1 - v3.y; + vertices[14] = color; + vertices[15] = u2; + vertices[16] = v2; + vertices[17] = 0; + + vertices[18] = lx2 - v3.x; + vertices[19] = ly2 - v3.y; + vertices[20] = color; + vertices[21] = u2; + vertices[22] = v; + vertices[23] = 0; + + Draw.vert(ledge.texture, vertices, 0, vertices.length); + }); + } + + public boolean enabled(){ + return state.rules.lighting && renderer.drawLight; + } + + public void draw(){ + draw2(); + } + + public void draw2(){ + lightBuffer.end(); + + if(!Vars.enableLight){ + lights.clear(); + circleIndex = 0; + return; + } + + if(circleRegion == null) circleRegion = Core.atlas.find("circle-shadow"); + + buffer.resize(Core.graphics.getWidth()/scaling, Core.graphics.getHeight()/scaling); + + Draw.color(); + buffer.begin(Color.clear); + Draw.sort(false); + Gl.blendEquationSeparate(Gl.funcAdd, Gl.max); + Blending.additive.apply(); + + for(Runnable run : lights){ + run.run(); + } + for(int i = 0; i < circleIndex; i++){ + var cir = circles.items[i]; + Draw.color(cir.color); + Draw.rect(circleRegion, cir.x, cir.y, cir.radius, cir.radius); + + //Fill.light(cir.x, cir.y, 100, cir.radius * 2 * Vars.tilesize, Tmp.c1.set((int)cir.color), Tmp.c1.a(0)); + } + Draw.reset(); + Blending.normal.apply(); + Draw.sort(true); + Texture lightTex = buffer.getTexture(); + buffer.end(); + Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); + + Draw.color(); + MeldShaders.light.ambient.set(state.rules.ambientLight); + MeldShaders.light.lights = lightTex; + + lightBuffer.blit(MeldShaders.light); + + + lights.clear(); + circleIndex = 0; + } + + static class CircleLight{ + float x, y, color, radius; + + public void set(float x, float y, float color, float radius){ + this.x = x; + this.y = y; + this.color = color; + this.radius = radius; + } + } +} diff --git a/src/meld/graphics/MeldPal.java b/src/meld/graphics/MeldPal.java index 3c1cb9d..b63dca1 100644 --- a/src/meld/graphics/MeldPal.java +++ b/src/meld/graphics/MeldPal.java @@ -9,6 +9,7 @@ public class MeldPal { shark = Color.valueOf("a393feff"), darkShark = Color.valueOf("665c9f"), accentClear = Pal.accent.cpy().a(0), + accentTranslucent = Pal.accent.cpy().a(0.01f), blobPink = Color.valueOf("e5aed7"), blobPinkClear = blobPink.cpy().a(0), flamePink = Color.valueOf("feafea"), diff --git a/src/meld/graphics/MeldRegions.java b/src/meld/graphics/MeldRegions.java index 2f56de7..2d64f71 100644 --- a/src/meld/graphics/MeldRegions.java +++ b/src/meld/graphics/MeldRegions.java @@ -6,9 +6,10 @@ public class MeldRegions { - public static TextureRegion chain; + public static TextureRegion chain, particle; public static void load(){ chain = Core.atlas.find(Meld.prefix("chain")); + particle = Core.atlas.find("particle"); } } diff --git a/src/meld/graphics/MeldShaders.java b/src/meld/graphics/MeldShaders.java new file mode 100644 index 0000000..afc753e --- /dev/null +++ b/src/meld/graphics/MeldShaders.java @@ -0,0 +1,139 @@ +package meld.graphics; + +import arc.Core; +import arc.Events; +import arc.graphics.Blending; +import arc.graphics.Color; +import arc.graphics.GL20; +import arc.graphics.Texture; +import arc.graphics.g2d.Draw; +import arc.graphics.gl.FrameBuffer; +import arc.graphics.gl.Shader; +import arc.scene.ui.layout.Scl; +import arc.util.Log; +import arc.util.Time; +import mindustry.Vars; +import mindustry.game.EventType; +import mindustry.graphics.Layer; +import mindustry.graphics.Pal; +import mindustry.graphics.Shaders; + +import static mindustry.Vars.renderer; + + +public class MeldShaders { + + public static NamedShader sonar; + public static LightShaderMeld light; + + public static FrameBuffer lightBuffer = new FrameBuffer(); + + public static boolean loaded = false; + + public static void load(){ + if(loaded) return; + loaded = true; + + sonar = new SonarShader("sonar"); + light = new LightShaderMeld("light"); + + + + Events.run(EventType.Trigger.draw, () -> { + + if(Vars.state.rules.lighting == true){ + lightBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); + + Draw.draw(0, () -> { + lightBuffer.begin(); + }); + /* + Draw.draw(Layer.light + 1, () -> { + MeldLightRenderer.thingo.draw2(); + }); + */ + } + + + + Draw.drawRange(MeldLayers.sonar, 0.1f, () -> { + renderer.effectBuffer.begin(Color.clear); + }, () -> { + renderer.effectBuffer.end(); + renderer.effectBuffer.blit(MeldShaders.sonar); + }); + + Draw.drawRange(MeldLayers.sonarInside, 0.1f, () -> { + renderer.effectBuffer.begin(Color.clear); + }, () -> { + renderer.effectBuffer.end(); + renderer.effectBuffer.blit(MeldShaders.sonar); + }); + }); + } + + /** Shaders that the the*/ + public static class NamedShader extends Shader { + public NamedShader(String frag) { + super(Core.files.internal("shaders/screenspace.vert"), Vars.tree.get("shaders/" + frag + ".frag")); + } + + @Override + public void apply() { + setUniformf("u_time", Time.time / Scl.scl(1f)); + setUniformf("u_campos", + Core.camera.position.x, + Core.camera.position.y + ); + setUniformf("u_resolution", + Core.graphics.getWidth(), + Core.graphics.getHeight() + ); + setUniformf("u_drawCol", Draw.getColor().r, Draw.getColor().g, Draw.getColor().b, Draw.getColor().a); + } + } + + public static class SonarShader extends NamedShader{ + public Color sonarColor = Pal.accent; + + public SonarShader(String frag) { + super(frag); + } + + + @Override + public void apply() { + super.apply(); + setUniformf("u_color", + sonarColor.r, + sonarColor.g, + sonarColor.b, + sonarColor.a + ); + } + } + + public static class LightShaderMeld extends NamedShader{ + public Color ambient = new Color(0.01f, 0.01f, 0.04f, 0.99f); + public Texture lights = null; + + public LightShaderMeld(String frag) { + super(frag); + } + + @Override + public void apply(){ + /* + setUniformf("u_campos", Core.camera.position.x - Core.camera.width / 2, Core.camera.position.y - Core.camera.height / 2); + setUniformf("u_resolution", Core.camera.width, Core.camera.height); + setUniformf("u_time", Time.time); + + */ + + setUniformf("u_ambient", ambient); + + if(lights != null) lights.bind(1); + setUniformi("u_lights", 1); + } + } +} diff --git a/src/meld/graphics/part/SonarPart.java b/src/meld/graphics/part/SonarPart.java new file mode 100644 index 0000000..43b0c3f --- /dev/null +++ b/src/meld/graphics/part/SonarPart.java @@ -0,0 +1,54 @@ +package meld.graphics.part; + +import arc.graphics.Blending; +import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; +import arc.math.Mathf; +import arc.math.geom.Vec2; +import arc.util.Tmp; +import meld.graphics.Draww; +import meld.graphics.MeldLayers; +import meld.graphics.MeldPal; +import meld.graphics.MeldRegions; +import mindustry.Vars; +import mindustry.content.Fx; +import mindustry.entities.part.DrawPart; +import mindustry.graphics.Drawf; +import mindustry.graphics.Pal; + +public class SonarPart extends DrawPart { + public float x = 0, y = 0, layer = MeldLayers.sonar; + public Color color = Pal.accent; + + public float radius, + stroke = 2; + + public float radiusTo = -1, strokeTo = -1; + + public boolean setDefaults = true; + + public PartProgress progress = PartProgress.life; + + @Override + public void load(String name) { + super.load(name); + if(setDefaults){ + if(radiusTo == -1) radiusTo = radius; + if(strokeTo == -1) strokeTo = stroke; + } + } + + @Override + public void draw(PartParams params) { + Tmp.v1.set(x, y).rotate(params.rotation).add(params.x, params.y); + Draww.drawSonar(Tmp.v1.x, Tmp.v1.y, Mathf.lerp(radius, radiusTo, progress.get(params)), Mathf.lerp(stroke, strokeTo, progress.get(params)), layer, color); + + Vec2 pos = new Vec2(Tmp.v1); + Vars.renderer.lights.add(() -> { + Draw.blend(Blending.additive); + Fill.light(pos.x, pos.y, 100, radius, Pal.accent, MeldPal.accentClear); + Draw.blend(Blending.normal); + }); + } +} diff --git a/src/meld/world/blocks/CoreRaft.java b/src/meld/world/blocks/CoreRaft.java index 1903f71..939b442 100644 --- a/src/meld/world/blocks/CoreRaft.java +++ b/src/meld/world/blocks/CoreRaft.java @@ -8,6 +8,9 @@ import arc.util.Nullable; import arc.util.Time; import meld.content.MeldStatusEffects; +import meld.graphics.Draww; +import meld.graphics.MeldLayers; +import meld.graphics.MeldShaders; import meld.world.blocks.crafting.StorageIncinerator; import mindustry.Vars; import mindustry.content.Fx; @@ -117,7 +120,7 @@ public class CoreRaftBuild extends CoreBuild { @Override public void onProximityUpdate() { super.onProximityUpdate(); - incinerator= null; + incinerator = null; proximity.each(b -> { if(b instanceof Incinerator.IncineratorBuild || b instanceof ItemIncinerator.ItemIncineratorBuild || @@ -156,13 +159,12 @@ public void handleStack(Item item, int amount, Teamc source){ super.handleStack(item, realAmount, source); if(team == state.rules.defaultTeam && state.isCampaign()){ - if(!incinerate){ - state.rules.sector.info.handleCoreItem(item, amount); - } - - if(realAmount == 0 && wasVisible && canIncinerate){ + if(realAmount == 0 && incinerate){ incinerator.handleStack(item, amount, source); } + + state.rules.sector.info.handleCoreItem(item, amount); + } } @@ -214,6 +216,9 @@ public void draw() { Draw.color(Pal.accent); float layer = Draw.z(); Draw.z(Layer.buildBeam); + + Draww.drawSonar(x, y, fogRadius * tilesize - 2, 4, MeldLayers.sonar, Pal.accent); + Lines.circle(x, y, fogRadius * Vars.tilesize - 2); for (int i = 0; i < 1; i++) { float prog = ((Time.time + 200 * i) % 600) / 600; diff --git a/src/meld/world/blocks/SonarSpire.java b/src/meld/world/blocks/SonarSpire.java index 43e9cee..225da0d 100644 --- a/src/meld/world/blocks/SonarSpire.java +++ b/src/meld/world/blocks/SonarSpire.java @@ -3,10 +3,13 @@ import arc.graphics.g2d.Draw; import arc.graphics.g2d.Lines; import arc.math.Interp; +import meld.graphics.Draww; +import meld.graphics.MeldLayers; import mindustry.Vars; import mindustry.content.StatusEffects; import mindustry.entities.Units; import mindustry.graphics.Layer; +import mindustry.graphics.Pal; import mindustry.type.StatusEffect; import static mindustry.Vars.tilesize; @@ -48,7 +51,16 @@ public float fogRadius() { @Override public void draw() { - super.draw(); + Draw.rect(region, x, y); + //I literally slapped this in + //Draww.drawChain(chain, x, y, Core.input.mouseWorldX(), Core.input.mouseWorldY(), 0); + + Draww.drawSonar(x, y, smoothRadius, 2, MeldLayers.sonar, ringColor); + + //Charge visuals, not sure if im keeping them or not + Lines.arc(x, y, range, uptime/pulseDuration); + + Draw.color(Pal.accent); float charge = duration/pulseDuration; float chargeInv = 1 - charge; diff --git a/src/meld/world/blocks/consumers/ConsumeItemsBoost.java b/src/meld/world/blocks/consumers/ConsumeItemsBoost.java new file mode 100644 index 0000000..d9e300a --- /dev/null +++ b/src/meld/world/blocks/consumers/ConsumeItemsBoost.java @@ -0,0 +1,21 @@ +package meld.world.blocks.consumers; + +import mindustry.gen.Building; +import mindustry.type.ItemStack; +import mindustry.world.consumers.ConsumeItems; + +public class ConsumeItemsBoost extends ConsumeItems { + + public float boostAmount; + + public ConsumeItemsBoost(ItemStack[] items, float boostAmount){ + super(items); + this.boostAmount = boostAmount; + }; + + + @Override + public float efficiencyMultiplier(Building build) { + return boostAmount; + } +} diff --git a/src/meld/world/blocks/consumers/StupidConsumeAspects.java b/src/meld/world/blocks/consumers/StupidConsumeAspects.java index 0e63f1a..cd346a5 100644 --- a/src/meld/world/blocks/consumers/StupidConsumeAspects.java +++ b/src/meld/world/blocks/consumers/StupidConsumeAspects.java @@ -23,6 +23,8 @@ public class StupidConsumeAspects extends ConsumeLiquidFilter implements MeldGen //grab it from the group public AspectGroup group; + public float boostMultiplier = 1; + public StupidConsumeAspects(float amount, AspectGroup group){ super(); @@ -31,6 +33,10 @@ public StupidConsumeAspects(float amount, AspectGroup group){ filter = group.stats::containsKey; } + public StupidConsumeAspects(float amount, AspectGroup group, float boostMultiplier){ + this(amount, group); + this.boostMultiplier = boostMultiplier; + } private static Liquid currentBest; @@ -46,6 +52,7 @@ public void apply(Block block) { @Override public void update(Building build) { Liquid consumed = getConsumed(build); + if(consumed == null) return; build.liquids.remove(consumed, this.amount * build.edelta()/group.getDensity(consumed)); } @@ -79,7 +86,7 @@ public float efficiency(Building build) { @Override public float efficiencyMultiplier(Building build) { Liquid liq = this.getConsumed(build); - return liq == null ? 1 : group.getEfficiency(liq); + return liq == null ? 1 : group.getEfficiency(liq) * boostMultiplier; } @Override diff --git a/src/meld/world/blocks/defense/LakeRim.java b/src/meld/world/blocks/defense/LakeRim.java new file mode 100644 index 0000000..4be9ae6 --- /dev/null +++ b/src/meld/world/blocks/defense/LakeRim.java @@ -0,0 +1,25 @@ +package meld.world.blocks.defense; + +import arc.math.geom.Geometry; +import arc.math.geom.Point2; +import mindustry.game.Team; +import mindustry.world.Tile; +import mindustry.world.blocks.defense.Door; + +public class LakeRim extends Door { + public LakeRim(String name) { + super(name); + } + + //Placeable on tiles which are nearby liquids, but aren't liquids themselves + @Override + public boolean canPlaceOn(Tile tile, Team team, int rotation) { + if(tile == null || tile.floor().isLiquid) return false; + + for (Point2 offset : Geometry.d8) { + Tile nearby = tile.nearby(offset.x, offset.y); + if(nearby.floor().isLiquid) return true; + } + return false; + } +} diff --git a/src/meld/world/blocks/defense/TreeWall.java b/src/meld/world/blocks/defense/TreeWall.java index de8247d..dff4601 100644 --- a/src/meld/world/blocks/defense/TreeWall.java +++ b/src/meld/world/blocks/defense/TreeWall.java @@ -19,8 +19,15 @@ public TreeWall(String name) { drawTeamOverlay = false; } + @Override + public int minimapColor(Tile tile) { + return mapColor.rgba(); + } + public class TreeBuild extends WallBuild{ + + @Override public void unitOn(Unit unit) { super.unitOn(unit); diff --git a/src/meld/world/blocks/fluid/AspectPipe.java b/src/meld/world/blocks/fluid/AspectPipe.java index 79a6251..f87f772 100644 --- a/src/meld/world/blocks/fluid/AspectPipe.java +++ b/src/meld/world/blocks/fluid/AspectPipe.java @@ -106,7 +106,7 @@ public float moveLiquid(Building other, Liquid liquid) { float flow = Math.min(other.block.liquidCapacity - other.liquids.get(liquid), amount) * 10; if (other.acceptLiquid(this, liquid)) { other.handleLiquid(this, liquid, flow); - this.liquids.remove(original, flow/AspectGroup.aether.getDensity(liquid)/10/AspectGroup.aether.getEfficiency(liquid)); + this.liquids.remove(original, flow/AspectGroup.aether.getDensity(liquid)/10); total += amount; } diff --git a/src/meld/world/blocks/io/BlockIO.java b/src/meld/world/blocks/io/BlockIO.java new file mode 100644 index 0000000..00511da --- /dev/null +++ b/src/meld/world/blocks/io/BlockIO.java @@ -0,0 +1,29 @@ +package meld.world.blocks.io; + +import arc.struct.ObjectFloatMap; +import arc.util.io.Reads; +import arc.util.io.Writes; +import mindustry.Vars; +import mindustry.type.Item; + +public class BlockIO { + + public static void writeItemMap(ObjectFloatMap itemValues, Writes write){ + write.i(itemValues.size); + for (ObjectFloatMap.Entry itemValue : itemValues) { + write.str(itemValue.key.name); + write.f(itemValue.value); + } + } + + public static ObjectFloatMap readItemMap(Reads reads){ + int size = reads.i(); + ObjectFloatMap output = new ObjectFloatMap<>(); + for(int i = 0; i < size; i++){ + Item item = Vars.content.item(reads.str()); + float value = reads.f(); + if(item != null) output.put(item, value); + } + return output; + } +} diff --git a/src/meld/world/blocks/production/GrindingQuary.java b/src/meld/world/blocks/production/GrindingQuary.java index a94d3d7..f1058d9 100644 --- a/src/meld/world/blocks/production/GrindingQuary.java +++ b/src/meld/world/blocks/production/GrindingQuary.java @@ -5,6 +5,10 @@ import arc.struct.IntSeq; import arc.struct.ObjectFloatMap; import arc.struct.ObjectMap; +import arc.util.Time; +import arc.util.io.Reads; +import arc.util.io.Writes; +import meld.world.blocks.io.BlockIO; import meld.world.util.ItemLogic; import mindustry.Vars; import mindustry.content.Blocks; @@ -15,6 +19,7 @@ import mindustry.world.Block; import mindustry.world.Tile; import mindustry.world.blocks.environment.Floor; +import mindustry.world.consumers.Consume; public class GrindingQuary extends Block { @@ -24,6 +29,8 @@ public class GrindingQuary extends Block { public int targetTimer = timers++; + public float itemDuration = 60; + public GrindingQuary(String name) { super(name); update = true; @@ -68,6 +75,10 @@ public class GrindingQuaryBuild extends Building{ public float time = 0; public Tile target = null; public GrinderEntry entry; + public float boostAmount = 1; + + //Timer used to determine when the current batch of items expires + public float progress = 0; public ObjectFloatMap drillTimers = new ObjectFloatMap<>(), itemRates = new ObjectFloatMap<>(); @@ -81,6 +92,16 @@ public void update(){ super.update(); updateDrilling(); dump(); + + progress += Time.delta/itemDuration; + if(progress >= 1){ + progress %= 1; + boostAmount = 1; + for (Consume consumer : consumers) { + if(consumer.booster && consumer.optional && consumer.efficiency(this) > 0) boostAmount *= consumer.efficiencyMultiplier(this); + consumer.trigger(this); + } + } } @Override @@ -112,7 +133,7 @@ public void updateDrilling(){ for(Item item: itemRates.keys().toArray()){ float current = drillTimers.get(item, 0); //Note that productionRates is in items/SECCOND, not tick, so we divide by 60 - current = Mathf.clamp(current + itemRates.get(item, 0)/60f * drillMultipliers.get(item, 1) * edelta(), 0, 1); + current = Mathf.clamp(current + itemRates.get(item, 0)/60f * drillMultipliers.get(item, 1) * edelta() * boostAmount, 0, 1); if(current >= 1 && items.get(item) < itemCapacity){ current = 0; @@ -153,5 +174,21 @@ public Tile findTarget(){ }); return target; } + + @Override + public void write(Writes write) { + super.write(write); + write.f(progress); + write.f(time); + BlockIO.writeItemMap(drillTimers, write); + } + + @Override + public void read(Reads read, byte revision) { + super.read(read, revision); + progress = read.f(); + time = read.f(); + drillTimers = BlockIO.readItemMap(read); + } } } diff --git a/src/meld/world/blocks/units/LaunchStation.java b/src/meld/world/blocks/units/LaunchStation.java index aa20a02..eea2ab4 100644 --- a/src/meld/world/blocks/units/LaunchStation.java +++ b/src/meld/world/blocks/units/LaunchStation.java @@ -9,6 +9,8 @@ import arc.util.Eachable; import arc.util.Log; import arc.util.Tmp; +import arc.util.io.Reads; +import arc.util.io.Writes; import meld.content.MeldStatusEffects; import meld.world.blocks.SonarSpire; import mindustry.Vars; @@ -158,5 +160,19 @@ public void draw() { Draw.blend(); } + + @Override + public void write(Writes write) { + super.write(write); + write.f(charge); + write.f(warmup); + } + + @Override + public void read(Reads read, byte revision) { + super.read(read, revision); + charge = read.f(); + warmup = read.f(); + } } } From 06738c7638f4e8b4702e6512c7a12abd30d1f9cb Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Fri, 24 Apr 2026 16:28:02 +1000 Subject: [PATCH 03/16] lights are working properly! --- assets/shaders/light.frag | 12 +++++++++--- src/meld/graphics/MeldLightRenderer.java | 14 ++++++-------- src/meld/graphics/MeldShaders.java | 16 ++++++++-------- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/assets/shaders/light.frag b/assets/shaders/light.frag index 63eab2d..d54cfe0 100644 --- a/assets/shaders/light.frag +++ b/assets/shaders/light.frag @@ -1,5 +1,6 @@ uniform sampler2D u_texture; uniform sampler2D u_lights; +uniform sampler2D u_exclusion; uniform vec2 u_resolution; uniform vec2 u_campos; @@ -9,10 +10,15 @@ uniform vec4 u_ambient; varying vec2 v_texCoords; void main(){ - //vec2 worldCoords = v_texCoords * u_resolution + u_campos; - //vec2 offset = vec2(sin(), sin()); - vec4 color = clamp(texture2D(u_lights, v_texCoords) + vec4(u_ambient.rgb * u_ambient.a, 1), 0.0, 1.0); + //Exclusion + vec4 exclusion = clamp(texture2D(u_exclusion, v_texCoords), 0.0, 1.1); + + vec4 positionAmbient = u_ambient; + + //Light color + vec4 color = clamp(texture2D(u_lights, v_texCoords) + vec4(positionAmbient.rgb * positionAmbient.a, 1), 0.0, 1.0); + vec4 background = clamp(texture2D(u_texture, v_texCoords), 0.0, 1.0); diff --git a/src/meld/graphics/MeldLightRenderer.java b/src/meld/graphics/MeldLightRenderer.java index 86ba302..c99abd6 100644 --- a/src/meld/graphics/MeldLightRenderer.java +++ b/src/meld/graphics/MeldLightRenderer.java @@ -37,7 +37,10 @@ public MeldLightRenderer(){ public static FrameBuffer buffer = new FrameBuffer(); private Seq lights = new Seq<>(); private Seq circles = new Seq<>(CircleLight.class); - private int circleIndex = 0; + + private Seq shadowCircles = new Seq<>(CircleLight.class); + + private int circleIndex = 0, shadowCircleIndex; private TextureRegion circleRegion; public void add(Runnable run){ @@ -49,8 +52,6 @@ public void add(Runnable run){ public void add(float x, float y, float radius, Color color, float opacity){ if(!enabled() || radius <= 0f) return; - //TODO: clipping. - float res = Color.toFloatBits(color.r, color.g, color.b, opacity); if(circles.size <= circleIndex) circles.add(new CircleLight()); @@ -226,7 +227,6 @@ public void draw2(){ Draw.sort(false); Gl.blendEquationSeparate(Gl.funcAdd, Gl.max); Blending.additive.apply(); - for(Runnable run : lights){ run.run(); } @@ -234,8 +234,6 @@ public void draw2(){ var cir = circles.items[i]; Draw.color(cir.color); Draw.rect(circleRegion, cir.x, cir.y, cir.radius, cir.radius); - - //Fill.light(cir.x, cir.y, 100, cir.radius * 2 * Vars.tilesize, Tmp.c1.set((int)cir.color), Tmp.c1.a(0)); } Draw.reset(); Blending.normal.apply(); @@ -243,14 +241,14 @@ public void draw2(){ Texture lightTex = buffer.getTexture(); buffer.end(); Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); - Draw.color(); + + MeldShaders.light.ambient.set(state.rules.ambientLight); MeldShaders.light.lights = lightTex; lightBuffer.blit(MeldShaders.light); - lights.clear(); circleIndex = 0; } diff --git a/src/meld/graphics/MeldShaders.java b/src/meld/graphics/MeldShaders.java index afc753e..4044c9d 100644 --- a/src/meld/graphics/MeldShaders.java +++ b/src/meld/graphics/MeldShaders.java @@ -41,21 +41,14 @@ public static void load(){ Events.run(EventType.Trigger.draw, () -> { - if(Vars.state.rules.lighting == true){ + if(Vars.state.rules.lighting){ lightBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); Draw.draw(0, () -> { lightBuffer.begin(); }); - /* - Draw.draw(Layer.light + 1, () -> { - MeldLightRenderer.thingo.draw2(); - }); - */ } - - Draw.drawRange(MeldLayers.sonar, 0.1f, () -> { renderer.effectBuffer.begin(Color.clear); }, () -> { @@ -116,6 +109,7 @@ public void apply() { public static class LightShaderMeld extends NamedShader{ public Color ambient = new Color(0.01f, 0.01f, 0.04f, 0.99f); public Texture lights = null; + public Texture exclusion = null; public LightShaderMeld(String frag) { super(frag); @@ -132,8 +126,14 @@ public void apply(){ setUniformf("u_ambient", ambient); + if(exclusion != null) lights.bind(2); if(lights != null) lights.bind(1); + + setUniformi("u_exclusion", 2); setUniformi("u_lights", 1); + + lightBuffer.getTexture().bind(0); + } } } From 2c80c4fbf824c6afa152f4da15fa3c9157489b9a Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Fri, 24 Apr 2026 17:06:35 +1000 Subject: [PATCH 04/16] it's coming C U E B E --- src/meld/graphics/MeldLightRenderer.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/meld/graphics/MeldLightRenderer.java b/src/meld/graphics/MeldLightRenderer.java index c99abd6..0474588 100644 --- a/src/meld/graphics/MeldLightRenderer.java +++ b/src/meld/graphics/MeldLightRenderer.java @@ -15,6 +15,7 @@ import arc.util.Tmp; import meld.Meld; import mindustry.Vars; +import mindustry.core.Renderer; import mindustry.graphics.LightRenderer; import mindustry.graphics.Shaders; @@ -35,14 +36,21 @@ public MeldLightRenderer(){ private float[] vertices = new float[24]; public static FrameBuffer buffer = new FrameBuffer(); - private Seq lights = new Seq<>(); + private Seq lights = new Seq<>(), shadows = new Seq<>(); + private Seq circles = new Seq<>(CircleLight.class); private Seq shadowCircles = new Seq<>(CircleLight.class); - private int circleIndex = 0, shadowCircleIndex; + private int circleIndex = 0, shadowCircleIndex = 0; private TextureRegion circleRegion; + public void shadow(Runnable run){ + if(!enabled()) return; + + shadows.add(run); + } + public void add(Runnable run){ if(!enabled()) return; @@ -243,14 +251,13 @@ public void draw2(){ Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); Draw.color(); - MeldShaders.light.ambient.set(state.rules.ambientLight); MeldShaders.light.lights = lightTex; lightBuffer.blit(MeldShaders.light); lights.clear(); - circleIndex = 0; + circleIndex = shadowCircleIndex = 0; } static class CircleLight{ From 387224c563bdacfa3c54623ab1d62b463d3e4262 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Fri, 24 Apr 2026 18:21:34 +1000 Subject: [PATCH 05/16] Portable shadows --- assets/shaders/light.frag | 16 +++++------- src/meld/graphics/MeldLightRenderer.java | 33 ++++++++++++++++++------ src/meld/graphics/MeldShaders.java | 2 +- src/meld/graphics/part/ShadowPart.java | 18 +++++++++++++ 4 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 src/meld/graphics/part/ShadowPart.java diff --git a/assets/shaders/light.frag b/assets/shaders/light.frag index d54cfe0..04bba11 100644 --- a/assets/shaders/light.frag +++ b/assets/shaders/light.frag @@ -14,20 +14,18 @@ void main(){ //Exclusion vec4 exclusion = clamp(texture2D(u_exclusion, v_texCoords), 0.0, 1.1); - vec4 positionAmbient = u_ambient; - - //Light color - vec4 color = clamp(texture2D(u_lights, v_texCoords) + vec4(positionAmbient.rgb * positionAmbient.a, 1), 0.0, 1.0); + vec4 positionAmbient = clamp(vec4(u_ambient.rgb - exclusion.rgb * exclusion.a, u_ambient.a), 0.0, 1.0); + float alpha = u_ambient.a; + alpha = clamp(floor(alpha * 8.0)/8.0, 0.0, 1.0) * 0.5 + clamp(floor(alpha * 3.0)/3.0, 0.0, 1.0) * 0.5; - vec4 background = clamp(texture2D(u_texture, v_texCoords), 0.0, 1.0); - float alpha = (u_ambient.a - color.a); - alpha = clamp(floor(alpha * 8.0)/8.0, 0.0, 1.0) * 0.3 + clamp(floor(alpha * 3.0)/3.0, 0.0, 1.0) * 0.5 + alpha * 0.2 + color.a/4.0; + //Light color + vec4 color = clamp(texture2D(u_lights, v_texCoords) + vec4(positionAmbient.rgb * alpha * alpha, 1), 0.0, 1.0); - gl_FragColor = vec4(background.rgba); + vec4 background = clamp(texture2D(u_texture, v_texCoords), 0.0, 1.0); gl_FragColor = background * color; - //clamp(vec4(mix(u_ambient.rgb, color.rgb, color.a), alpha), 0.0, 1.0) + gl_FragColor = floor(gl_FragColor * 100)/100; } \ No newline at end of file diff --git a/src/meld/graphics/MeldLightRenderer.java b/src/meld/graphics/MeldLightRenderer.java index 0474588..5cd17e7 100644 --- a/src/meld/graphics/MeldLightRenderer.java +++ b/src/meld/graphics/MeldLightRenderer.java @@ -1,21 +1,17 @@ package meld.graphics; import arc.Core; -import arc.graphics.Blending; -import arc.graphics.Color; -import arc.graphics.Gl; -import arc.graphics.Texture; +import arc.graphics.*; import arc.graphics.g2d.Draw; -import arc.graphics.g2d.Fill; import arc.graphics.g2d.TextureRegion; import arc.graphics.gl.FrameBuffer; import arc.math.Mathf; import arc.math.geom.Vec2; import arc.struct.Seq; +import arc.util.Log; import arc.util.Tmp; -import meld.Meld; import mindustry.Vars; -import mindustry.core.Renderer; +import mindustry.content.Blocks; import mindustry.graphics.LightRenderer; import mindustry.graphics.Shaders; @@ -35,7 +31,7 @@ public MeldLightRenderer(){ private static final int scaling = 4; private float[] vertices = new float[24]; - public static FrameBuffer buffer = new FrameBuffer(); + public static FrameBuffer buffer = new FrameBuffer(), shadowBuffer = new FrameBuffer(); private Seq lights = new Seq<>(), shadows = new Seq<>(); private Seq circles = new Seq<>(CircleLight.class); @@ -251,12 +247,33 @@ public void draw2(){ Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); Draw.color(); + //TODO: potential memory leak + Draw.color(); + shadowBuffer.begin(Color.clear); + Draw.sort(false); + Blending.additive.apply(); + shadowBuffer.resize(Core.graphics.getWidth()/scaling, Core.graphics.getHeight()/scaling); + + for(Runnable run : shadows){ + run.run(); + } + + Draw.reset(); + Blending.normal.apply(); + Draw.sort(true); + Texture exclusionTex = shadowBuffer.getTexture(); + shadowBuffer.end(); + Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); + Draw.color(); + MeldShaders.light.ambient.set(state.rules.ambientLight); MeldShaders.light.lights = lightTex; + MeldShaders.light.exclusion = exclusionTex; lightBuffer.blit(MeldShaders.light); lights.clear(); + shadows.clear(); circleIndex = shadowCircleIndex = 0; } diff --git a/src/meld/graphics/MeldShaders.java b/src/meld/graphics/MeldShaders.java index 4044c9d..0f919dc 100644 --- a/src/meld/graphics/MeldShaders.java +++ b/src/meld/graphics/MeldShaders.java @@ -126,7 +126,7 @@ public void apply(){ setUniformf("u_ambient", ambient); - if(exclusion != null) lights.bind(2); + if(exclusion != null) exclusion.bind(2); if(lights != null) lights.bind(1); setUniformi("u_exclusion", 2); diff --git a/src/meld/graphics/part/ShadowPart.java b/src/meld/graphics/part/ShadowPart.java new file mode 100644 index 0000000..96d4819 --- /dev/null +++ b/src/meld/graphics/part/ShadowPart.java @@ -0,0 +1,18 @@ +package meld.graphics.part; + +import arc.graphics.Color; +import arc.graphics.g2d.Fill; +import arc.util.Tmp; +import meld.graphics.MeldLightRenderer; +import mindustry.entities.part.DrawPart; + +public class ShadowPart extends DrawPart { + @Override + public void draw(PartParams params) { + float x = params.x, y = params.y; + + MeldLightRenderer.thingo.shadow(() -> { + Fill.light(x, y, 100, 100, Color.white, Tmp.c1.set(Color.white).a(0)); + }); + } +} From 2994a8d8ef7c891d7bcbf65c5d81af8560575aff Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Sat, 25 Apr 2026 00:11:49 +1000 Subject: [PATCH 06/16] Dissonant blocks, dynamic darkness prop --- assets/maps/badlands-testmap-1.msav | Bin 0 -> 26022 bytes assets/shaders/light.frag | 4 +- .../storm planes/dissonant-fragments-edge.png | Bin 0 -> 4400 bytes .../storm planes/dissonant-fragments.png | Bin 0 -> 486 bytes .../storm planes/dissonant-shale-edge.png | Bin 0 -> 2856 bytes .../dissonant-shale-scorched1.png | Bin 0 -> 319 bytes .../dissonant-shale-scorched2.png | Bin 0 -> 324 bytes .../dissonant-shale-scorched3.png | Bin 0 -> 304 bytes .../storm planes/dissonant-shale-struck1.png | Bin 0 -> 441 bytes .../storm planes/dissonant-shale-struck2.png | Bin 0 -> 413 bytes .../storm planes/dissonant-shale-struck3.png | Bin 0 -> 432 bytes .../storm planes/dissonant-shale-wall1.png | Bin 0 -> 363 bytes .../storm planes/dissonant-shale-wall2.png | Bin 0 -> 368 bytes .../storm planes/dissonant-shale1.png | Bin 0 -> 311 bytes .../storm planes/dissonant-shale2.png | Bin 0 -> 330 bytes .../storm planes/dissonant-shale3.png | Bin 0 -> 332 bytes .../storm planes/dissonant-vitric-wall1.png | Bin 0 -> 403 bytes .../storm planes/dissonant-vitric-wall2.png | Bin 0 -> 387 bytes .../props/dissonitre-cluster-glow-heat.png | Bin 0 -> 1373 bytes .../blocks/props/dissonitre-cluster-glow.png | Bin 0 -> 719 bytes .../props/dissonitre-cluster-shadow.png | Bin 0 -> 1815 bytes .../blocks/props/dissonitre-cluster.png | Bin 0 -> 898 bytes .../blocks/props/mallow-cluster-large.png | Bin 0 -> 3805 bytes .../sprites/blocks/props/sandstone-pillar.png | Bin 0 -> 9340 bytes .../badlands => props}/vitric-weave1.png | Bin .../badlands => props}/vitric-weave2.png | Bin assets/sprites/ui/fabricator-battery.aseprite | Bin 0 -> 2558 bytes assets/sprites/ui/fabricator-battery1.png | Bin 0 -> 407 bytes assets/sprites/ui/fabricator-battery2.png | Bin 0 -> 508 bytes assets/sprites/ui/fabricator-battery3.png | Bin 0 -> 551 bytes assets/sprites/ui/fabricator-battery4.png | Bin 0 -> 653 bytes assets/sprites/ui/fabricator-battery5.png | Bin 0 -> 693 bytes src/meld/content/MeldBlocks.java | 8 +- src/meld/content/MeldEnvironment.java | 42 +++++++- src/meld/content/MeldMappings.java | 8 +- .../abilities/FabricatorBatteryAbility.java | 76 ++++++++++++- .../unit/abilities/ReloadStackingAbility.java | 101 ++++++++++++++++++ src/meld/graphics/MeldLightRenderer.java | 13 ++- src/meld/graphics/MeldRegions.java | 7 ++ src/meld/graphics/MeldShaders.java | 11 +- src/meld/world/blocks/CoreRaft.java | 5 + src/meld/world/blocks/SonarSpire.java | 2 + src/meld/world/blocks/env/SupportPillar.java | 82 ++++++++++++++ 43 files changed, 340 insertions(+), 19 deletions(-) create mode 100644 assets/maps/badlands-testmap-1.msav create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-fragments-edge.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-fragments.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-edge.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-scorched1.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-scorched2.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-scorched3.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-struck1.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-struck2.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-struck3.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-wall1.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale-wall2.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale1.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale2.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-shale3.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-vitric-wall1.png create mode 100644 assets/sprites/blocks/environment/storm planes/dissonant-vitric-wall2.png create mode 100644 assets/sprites/blocks/props/dissonitre-cluster-glow-heat.png create mode 100644 assets/sprites/blocks/props/dissonitre-cluster-glow.png create mode 100644 assets/sprites/blocks/props/dissonitre-cluster-shadow.png create mode 100644 assets/sprites/blocks/props/dissonitre-cluster.png create mode 100644 assets/sprites/blocks/props/mallow-cluster-large.png create mode 100644 assets/sprites/blocks/props/sandstone-pillar.png rename assets/sprites/blocks/{environment/badlands => props}/vitric-weave1.png (100%) rename assets/sprites/blocks/{environment/badlands => props}/vitric-weave2.png (100%) create mode 100644 assets/sprites/ui/fabricator-battery.aseprite create mode 100644 assets/sprites/ui/fabricator-battery1.png create mode 100644 assets/sprites/ui/fabricator-battery2.png create mode 100644 assets/sprites/ui/fabricator-battery3.png create mode 100644 assets/sprites/ui/fabricator-battery4.png create mode 100644 assets/sprites/ui/fabricator-battery5.png create mode 100644 src/meld/entities/unit/abilities/ReloadStackingAbility.java create mode 100644 src/meld/world/blocks/env/SupportPillar.java diff --git a/assets/maps/badlands-testmap-1.msav b/assets/maps/badlands-testmap-1.msav new file mode 100644 index 0000000000000000000000000000000000000000..46ae072cd779d6c1a55c36c75501d63dcb88b94e GIT binary patch literal 26022 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 literal 0 HcmV?d00001 diff --git a/assets/shaders/light.frag b/assets/shaders/light.frag index 04bba11..c66f3bf 100644 --- a/assets/shaders/light.frag +++ b/assets/shaders/light.frag @@ -27,5 +27,7 @@ void main(){ gl_FragColor = background * color; - gl_FragColor = floor(gl_FragColor * 100)/100; + //gl_FragColor = floor(gl_FragColor * 100)/100; + + //gl_FragColor = exclusion; } \ No newline at end of file diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-fragments-edge.png b/assets/sprites/blocks/environment/storm planes/dissonant-fragments-edge.png new file mode 100644 index 0000000000000000000000000000000000000000..d99e6d366ef345e17f03a2c399af930901b3f746 GIT binary patch literal 4400 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-fragments.png b/assets/sprites/blocks/environment/storm planes/dissonant-fragments.png new file mode 100644 index 0000000000000000000000000000000000000000..399c5f3b4bd8a3a6498fc4cbc5a412da20aed717 GIT binary patch literal 486 zcmV@P)Px$ph-kQR9J<*m$7lfFbn`eT_(@~T0tt+x^$_#T#9%L7w*%l@D_HFbMH0Or_%sh zL1_XV1OX&K`GQJEn!p1DKsbDT9A@~FVVuAs{rM!WU#>TCy{Sr7S7EZqnQ%M4N%gkzgxq=)6uQCn*@P-Tgpm#Qa$TeXS^AZGl1(ry}@*riL ze{TTxKv;~U@JcD@Mt?q;YMvVORtJX&U0csu%iJp|XD-(pgrDzTeGC2rBI|#FM^a9x z5x~AKl_T}a8YL|f?oP-RNmGtAsA!<3fdrLlUf_C8S2gEAO1ZauRRGU8l_MO&H5Gf| cw5U;tU*X#LI;bcJJOBUy07*qoM6N<$f@>?tApigX literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-shale-edge.png b/assets/sprites/blocks/environment/storm planes/dissonant-shale-edge.png new file mode 100644 index 0000000000000000000000000000000000000000..9adabdb7f8514f7d9bd0c9d37122cc5f637165f9 GIT binary patch literal 2856 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 RiUI%t002ovPDHLkV1f>Rh~)qP literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-shale-scorched2.png b/assets/sprites/blocks/environment/storm planes/dissonant-shale-scorched2.png new file mode 100644 index 0000000000000000000000000000000000000000..73f7d8b662b97a3f568984955dbb3a22e5a59cb1 GIT binary patch literal 324 zcmV-K0lWT*P)Px#{z*hZR9J<@SHTg(FbJc)jL_`SyDrfES0OvJFLJ4a4Z@J>nHWnEmSf+ZulI)< ztm~tFWP*8vYlw*M8RSwIsXYmp1uA4|i!+4?M(x=h$RtOw*hAv*EX8vo9fCw=hLoc#h zk^VCxn%D;{R4l|22g(G__3p%`Xm{|L7O734$-C!#2^z~w;i z>u1S{3zV3+Wt(;XL*D)UZ}Px#>PbXFR9J<@m)#A6FbsrC)e*=ZmAXLpUxn^KpOB)+e`lZDdjlfhhaD5MJzwwh zCTNUZx~=LsKH(Vi+B*`^l4KT%p#oe15ReRn2@nn9L6iZ|pqAE`d9ci_ELqQ7fJ{(C zZV9A~$TANBtfowJ2%y6p2ADO*PU(&mz-(NFNM~SHB^xOKZ7*aXC>dBG5Rf#0*AW+p z2UE&Gv@IPx$b4f%&R9J5U81EI*n;RE*rCPf}VPje{}Ge#%LE1TQS zHukQiMOOIwcz+N>=te#z;_-7=*Q_(reYaPT$MxJdqJS&Nt#A3bNe8*xTg21Qp2qXK zo%U&GH{vV+PAIK&5fY9RAh{3S2zw+Yw@~DPTJkh{P3XodQ+bFvInjRv(6Cx$e2k{c zWkP=YdEIClT3Ys=Lf3naI!x;FfOM;6*NKtTHbg|9Z{P5tQAi1R{->d(8z+x~q@WxAN2o4kUtN1o%H~JtioThNlQ<)l7TeYkhKx08&cR zXq1wtJV9#75ai6I5pulbHAKm)1mvnELQW+71!-ut1EL3(y;pru)R0KEx&$csNdQ9T zY01((7SvKKH5dq_+gn}NlK@ZnJbN_}hk)E>4bh0D!Y`=4%P)Px$S4l)cR9J<@m$4DTFbqW%&PUGxDIg^s3y^}r!vfhLN09;2(}V()i)F== z-3?Q`0^YjrAMY;&jBo%bGq4Q&(fxT8-{IhqfqCq++mIVj`|cWys%RacCL}O7dm6`q zHw^%!$zp}0G{tGz0xzgl;a^~Y_oP*)0O4Fdlp4c{s|=KYwav*~2Ryc7z3qvC+>rqQ zsA}0jZuT_iqHZX|{rkmYK!X25-7xWmh!b5pZ4zSK)&#{Qqfn0IY zz%7j{G4KuC0!Brr;FoYQ2eduG0@j?Ypn+?8z6F{Xu!1?2))BTHYr!7HD=Ed^eP1fy zp>!6Sc8hTQ6bEdRM*POW+YLj{%^tT1oL00000NkvXX Hu0mjf_+PUR literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-shale-struck3.png b/assets/sprites/blocks/environment/storm planes/dissonant-shale-struck3.png new file mode 100644 index 0000000000000000000000000000000000000000..cc906373686d1a0462aafad496255a3088061419 GIT binary patch literal 432 zcmV;h0Z;ykP)Px$YDq*vR9J9V31(?`}uwX(saJyCRWe;|DmlE1HU_K19GCwv@uA46rcvA6`}}G6NH11bQ%%V zJF{MgxV2NAVF9$}zhAfQCNsy+7UElR1VqD5v2%c$h^^+!^-&LygN!gg0C;D16DZdR zbAb08D4FJ9xk9uelw`aD;NbYf^gOlaDrWX#W|f5G@Nrd8n2lmQ)`?v@o47WG2NBbBU}MB1wXnYs|Sk(F)P@3%oN;Rg!{G z1GMx!iThnDfKlcufRW}RK##drMF7rRll1^}JF4m(k=8tk>PWuyNq|!M)kss6yfZ7r z0ieaawj}Q|A@|~Fa{yulsEx-b%tN%~vTRDldC;Wg`XGy%RH7&9bPS+Bl$4T9*Xg*| ayhblARl5T5e7GV20000Px$B}qgrx)s^mES4Tkh>K@fj9 z&rZ_4pTj2sz4|*Grr~i*N9xitcm~iScm~i)EWosE=K_rL>V}w>Z8vC^0SqDe00x#I zevsTdRUWAQYwEiK0A}F`AK*FF3|Jv*VMze&1-yolJ)*h~L_vf$BFgO;6pycw01yNQ zld?r-0PhQ&v}Ldu)3pTDgnJ>}9^fE25DhT26Jiicr4%N#uD|4VPl<{rB9E*)r@IwH zjq^%w+ZqIZ4#)p{B9i3Ig1He%6MN)==(KwQ7KF5z*4+oREWn@<87nft1;g@yx;G)`+5JdDqlq4^m(g~%EeF13=xK}l4!e#&f002ov JPDHLkV1m<%kiY-{ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-shale-wall2.png b/assets/sprites/blocks/environment/storm planes/dissonant-shale-wall2.png new file mode 100644 index 0000000000000000000000000000000000000000..3242882d1a14b762af5445c5d95a1626df191980 GIT binary patch literal 368 zcmV-$0gwKPP)Px$DoI2^R9J<@S33@aFboZ-Gead-CdSSjpkq(eGjfJZtVj%8pq)Sl?D$9ENk}M! zPuw7PgWx6X=I&6A9~r z+ILtH=8ndJ0Hz0O!81GqjQ}Oe93;pTXez@)BB=pSI;5l?qFD&yIEy!32xHG(RxD9E zoP$NreHM5RFP4Brj2=5a^)#f!nG$62ezlv1q-&n*J^Xq&E`_8LHWAowV%Zczk`{3a za`g>nAJ76u1Ez+J0Hq0tMQB=MIuMYAnX+e&429Fm(CP&y4fMlARtV+$R76A#3AP!R zE^|jj!AgQ7qUwmKxgH`1D~6DiVCo$XZC#}aSfL@2#R)ZsSoWV&E_HwEBE4`FEqlHI O0000Px#@kvBMR9J=0m%$CgAPhxG#RLq%3gy@}vUz9d09~OyA%R1vzm4PmTcm{dZG&UB z{c-;UN8LQ(e_8v_(HdyiuRDghUch;6_E4jDkj-2+1dC8sXpQS>ta z7al?g8*N0KRJQ=>?yrhyZ7Bc+wkkRKHKH0g)CV-tQgGF!85os&St~}MtxPk(+2HI9 z%<8Y{k_Q9mM$@+F&cIdhmJ_8%3xUrV=Ev|?fMNrj%!vk)`X@wxN>X(ODAZ~Q85&p( zQw=2OBAV|`4XmgyWS|8iaP5F{7|EpK-UFzXH6m%r-0z0&2EOFAUbXW%X$1fP002ov JPDHLkV1o8CeFFdh literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-shale2.png b/assets/sprites/blocks/environment/storm planes/dissonant-shale2.png new file mode 100644 index 0000000000000000000000000000000000000000..5b201d78d04ea02c28b46a458f7f506f4cbb604d GIT binary patch literal 330 zcmV-Q0k!^#P)Px$1W80eR9J=0m)#A8FbIXwbOHx(1$}f4H}4D`z!khtm}><}v7#q2(Q5ckp?`Mk zGVS1~c^r=Wm^SF&g5$HBfgFwsZ-J`~P=R9FZo$=KfD0r6G;jbR1Em1}-<2}K!C3=Z zxMZpXMqNr!3#WqSZ82?ZmVyN;!8Pwr23qvks(Bpr)37BN;Q+)K@Pw-jw1($mOYk(9 zHQ)tCok}3V=W#f$yCPRY4o(3r%P(gllzMGZ&Cbcrf|hWp-Lx4|y|Eg;7?1+B1fxzR zcoHt|hPAd*e$N&HU07*qoM6N<$f>tGn5C8xG literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-shale3.png b/assets/sprites/blocks/environment/storm planes/dissonant-shale3.png new file mode 100644 index 0000000000000000000000000000000000000000..ff996505e5f2999c63dd3b80c7da6ebc2871a316 GIT binary patch literal 332 zcmV-S0ki&zP)Px$21!IgR9J=OSHTU#FbE`3CddF@p?-FaZk`!3fLCZ=j*trh42diCUJX|64vcX+ zy`GOZ48%NA{3i@75hOXS006Mu$I0gbq|Z!qV~E!-gvKvW>Q+!C*A6l2nDFQf<; eubBS+-|+|ihkuPP)Px$O-V#SR9J<@m%$B#FbqXa)d?7Y6GzSrz_DirKtiG`^u(cCPzi|vn1nGHfEDN| zCZ*hgaSNh~0rbNd79dpIrg_n3#kQq=QTv;fWb6v#(=)sw64}pnOSr7r_NzB%g>vt-C0J^p@ zE+m1FrXB^*7t+IKUf3FT+lnz^(CUwUnMsV>IZ*%;#8m_9Py)>HXMAA|KtV{-?G1o} zFoi3GaUVD{<-7pwA*ij{bx;A;1va5NLn7V}Bl_N{Q?X=Nf#wg)Cti-_HeT67c>6D) xj%L;e5+5K^aX4#2E=-eA8S+v92}tmN!!ParmLzI)X^Q{=002ovPDHLkV1kurp*{cr literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/environment/storm planes/dissonant-vitric-wall2.png b/assets/sprites/blocks/environment/storm planes/dissonant-vitric-wall2.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3cd51eb69f59322c10e862366b5a12c5dde491 GIT binary patch literal 387 zcmV-}0et?6P)Px$JxN4CR9J<@mcb2!FbqWv>I4kHsmGofpvRsW012sGp(hUAf=WmXz$A>p0IWbS z4GK}5*v6$_LZ}L{U;XVs^1Kxbd{tK^P}TJVdyh}4FDOTnJsW^=ns*1>1Cas%XhBH! ztrl=0Fz>k#X=w2Xhz)>Sg;+4@8VVqR@Tsm!@_2eJkV0@02LUkI5H67PKtch0RRF=b zJzj4a07uxrH_1Z~K>(}@nu=B+)>x`9qZo+MIL+&YDds&Hzz!rCvzShjO>J{W8?0^a ztXSeH;3Nt?O9H_B^abwvf$TpSfD6G{XIUVHPy+}-000zuw%&_8BY}yU&_umE|sf`H=ts002ovPDHLkV1h1jmooqW literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/dissonitre-cluster-glow-heat.png b/assets/sprites/blocks/props/dissonitre-cluster-glow-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..fbc15045bf89cb233470daa74bddac584727d310 GIT binary patch literal 1373 zcmV-j1)}Px)7fD1xRA_t7h2FKW*IISmXr{Dh*wauhW{nCKJ1`}S)^$$s` zZn@*l*rYq7**j+MPLK3RtK9|u=dG~q7bZzk0E$2fDC;%A6EFfMz*C`6NVf64tpJFW zuBg1x-UAo_-?bmG1uz={$guK(DtrJ`fw$UMfjxa}3iMPSfP0`1JOaZ_fvgQcl`kXK zHAQRM9|A`}UFC?h2kwC`&{pXJ9ql&)vK9cRd<{4TPJnmXH}v;a0JMN_+TW_&DVPB; zS`|cTL*>tb3*duZpD7^ogr|`Q&_ig`b|9`4{1vdTKpv7LSqa2a0FLhmh*i&kpMgv5 zKj?1_ghD=mvx0a4G!bvK2;Qsf^Vf(+x=E5OrPL}O@XEher9T0`==FsvQPpu}eQ%Kv zz}5~BFVzvwA0srYsT?Anv-fm>!6I)g1fbUU%70Yle^me%2!(3;!C2wA?Wvei4xJe7 z4hb1;DW#Tqpr|iAL8$Tx_)V3+B=CL}<@118DmLX!Dg;lE2O<|hWc_o5E+17cfm8j+ zy2{5uEHRW2i`$&yXYtt#uKjWV1nV~xz)ysrJtbtAO_h&96cvC?j6V2>z!(@ONsaLqZ1Ai(>KN}Y2&wXzm$iNj z!t^*rjMvorDuH5imbAbZ+>#He*h#ObN-y9{H)>`?BCQno;Qu zp{}YR$)o580WgRf0=Xv>l(`K2;((7D_;uSKN)d(f>JH3BR>a5lFAQik> z%D*;s)@o)|3*I9{`6dG32m$azS|5U97Q9DDz&7;yEo&@#cF_z#8Sy}k0Kn?=UD9WY z%(`RJ1>MvJcn?^8?iUxk4qhu6Mz~r?e+SYr;I~M8%Gzb~%BKoC8?fhk55gvkU0Q#N zDBVNW&-Z#gKtKRLaCRYV0`!pru8RPe6>^Z?HS>HM69vl-+5}OyM*z@AK+VN~MY_4H zuMdyd4G5#pJyJ%uwZ8`jenn;gCi=hwq3&+${VqVPL>~x~lr0?E$fnXYQc~B+-{X17 zwi10H0GQ~27I1@<5hk`zv&}W|vS#bxxeOF8n%LJ~ARK z@}Ij-whCYf{Hx#l4EzcFg?QnPjP$t(fOloQ#rLRU+bqxVhH-v?Sl*QXL;JrG3O%sk z$Y~Bhp-@PYB(Y$EbUABjt&428oDk@hS9<$Ox1{&xO?%fZV)4(w@4y#?zTHL2X9CCo zF+u7i```m&G21P(^MSmH&X?&PfO)w^;QbesfAkxfnP(}02!vnK8Gtsy1Geo_&Uuwz zDD5LBqX|OA7Q+2&l^Yd1t<2Px%iAh93RA_0W(j)gpMbdd<-CX2DZoZ-_QPvrMQIzUOGMrU{AjbkyAcITQ|Mv zErB3ih`PSqL32dnt}1(m`@3!DQMnKmwCrHH(gjb}>rpQ?Q8t=0a^_a_i;Qw57lisbv>^5+Cw&O1(`kt)!!d1-XEq*$ z9{Rn1P@hYvRnxi-=Z@HTA%LC>QH`kpmOBp2c6&6jqlBIT?Y9{X1h-?ZJGFJg+Cm=U zoDkF#)9z}@4VL^}$Q1@bWv{-`T~)G&8IuYi#@~mI4`P5E!A$%8NK!*!8$2(CNijau zm+I5jjko|JY9x7HO60>(sk-I@5k=zZd^6E}F{XsQe^aHd4@hbQlqlm>%_j?_x2Dq<58m`^b7ILOwVIwugm}d002ovPDHLkV1mJL BKzRTF literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/dissonitre-cluster-shadow.png b/assets/sprites/blocks/props/dissonitre-cluster-shadow.png new file mode 100644 index 0000000000000000000000000000000000000000..9f794489d6b25e88ecdd16e8323106265d2a41a3 GIT binary patch literal 1815 zcmV+y2k7{TP)Px*(Md!>RCt{2TT6D^Mi4Afk`>8JwA3lQ^r3trU&_0jB3@b%Nqw1xP+_rHJs6Ob zHdepa58wv`s`@iMJwxC_KIB7wXE}MxAOH5{rn=Wjcn<*9cHBDu{`Wsed$#mYN09(J z=}gX5)`PytxhsIAiJ&W}#SK?DeR{tkf=!~Ui#}nS z2qgo+{zU9efPr^wp8_~5R7t1^AmFD#ALX2+?0CdJBYl>}ZxSz`lC zK|c)V4;Uw6G6|Ci2=T6NuE0N;UZ5s{qShw?j{xrR3ZBOY`OHIOa!8zZeQS`fH*=mU zcm;g{;12+ogMJ1uFOHu9Tn&0TT*vF(Yf|n|1DV3Y{H zR$v4LY~r7Bua;i|SPe&>Q`IBX8@fZH+XDvcYs?e;g#f?8#=3tF`j@D_H^;^sk|&VV z9xrGN2R3M@_?Rg)A=hA${Wp(h8Vtk2y(3P*2hDf*t}=(W41a z$9)Y2dW5^bgI5C9!{<*zR0UpViY$$_FnW;R@@aRQfWiG+)@S^?2WaBcOwUACB`*c0 zq|fXcekWCptQ%M%o)4e#`sakTf!DEK!5@o+s^RJ*Mzdi;sXUCwc4k&-6wm1H#xPrso<;G+cB*FE;8l;-rn|Rr#30Nhn_tpt`If813SiR zdXiuw;yh?owjPUwv`pr!NX_N6BrO8cf=AD4&#}R`rn{9oF=aoXH4048bj>kE!8=%= z{UstMg}^@Y)=4f|-+?>$w3fIdJp_28aZLT1Lq*+x%=(Fpy*(hsUX^&N1azqIHx#@t zow-(?5TzoZ%Cc1)Rte`25`52qTGtyOzFz1aFewDo-JJP~b#Fx-N`iw=J%D>VzYovC zXD^?jBEVxVF|RlFHM(Pwz}A=EU#(s}L%CMylBUCnb-nQ_D7!JN47HP^t#4p_#Hg(A z!1ex#1W$rds(wJ~wtD+%iPtqdZ$@Y-JR5GVlN0UwB;dS%wN|(^RT7dHPA0%ZK-pJ| zEBLDQb%O2kxbgy}_YAT3uDjCzkQg}2uBb{bn6V%yZvOGa}hsZ;uB7kwP1pG20lmv#s4gsxQBCQYrHknjcT3mJZ=gI3H z^)h!NK!-hg++qNFYpUU(;7P!!^?|TI;K$E9-weg0$E;e>%Vu4uOjVnY;mj?XU}<3m z{R?cpmt_1a57Si5nyuBsdu=sd(}P$~dLPyp|yNJ8axsU0;dNFd%sjzUlrY z0YXC0{NCpcUO%Lgl@?cJR(J4~dJc&3KeknFY<1X21n9c^V5yTWz5oUR)AxetF;MOcj@V>3V>_Nd)^g}Zur zjji#%dQ=rkt)(l9lF;h@q~^y~^K;6M@$P13u~Xbz@9p(;|EmAz-Jq)D)9v~S zWRe7LsK`j5J@#AmL{I-;`;h?N`2PZwkv~QyuqWZXy1#mX*B9Q1<@ewJFEc>%4^uq0 z7EfBw(9?e3+v@3|-$jftzyDa5Xlq=5i~kUQ$cOxf@*gt0YUrcVgxLT9002ovPDHLk FV1gXZaIpXY literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/dissonitre-cluster.png b/assets/sprites/blocks/props/dissonitre-cluster.png new file mode 100644 index 0000000000000000000000000000000000000000..be5313fccf34d0e5d869a68829d340534d917e15 GIT binary patch literal 898 zcmV-|1AY97P)Px&JV``BRA_>!A#P%ON$iZUg#hW0e1@` z>Ec>CRS=p*bW6L{A>hzbCnbv=JCrzGyuAPJ-M#lGlldT!{Q2K|_uY4Q@BaS*Q%v!H zV`h?*f7yCG;J=?9oQ{3Hu}>HptzlebN>B3Z!`1)*dS~ZJq!wGZs?E;B6`=0;+ z8?}X$sS9h|eN=N1xs$aD!(4rP_??UgfWz(;4!c+8cs_uK+6FRi9}QZZ(rjD6#z?-ey8mY zqi7EBiW7Rw6BZgI^}=!*+ax(u0+jty*&GK#5*xLJ!tU)Mq2_>AzPRTlPd4vG>N4J z`kl5Io0g{~SPt@Zv;{^|>6H2v!e;BpT!c_og=7VQ(ef#Ejvx14SW^J7lQ|br0#dUj zdE6qwjrZ1fpqK*^3IwQ+4~@ULzQM)y4S@WxA>&g>5VR*XS2s$A#~`UNsj%V5ej?LC zi4) Y1%{D%-+e~*LI3~&07*qoM6N<$g1WPtn*aa+ literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/mallow-cluster-large.png b/assets/sprites/blocks/props/mallow-cluster-large.png new file mode 100644 index 0000000000000000000000000000000000000000..9b04483a01a0745dbb92bc19e9caa7ea11acdf45 GIT binary patch literal 3805 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 ZGdO{x)lkju37pNin)ZB|I#&%D@;BYb`2hd` literal 0 HcmV?d00001 diff --git a/assets/sprites/ui/fabricator-battery1.png b/assets/sprites/ui/fabricator-battery1.png new file mode 100644 index 0000000000000000000000000000000000000000..53ac87670086b4a77c1732686bbd4a9d39b40e6c GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^2|(mbm-XB)OGy7TRjsGTR2-Z0DU8(CWgu@_x_XeYT%&)Z6d{26d@;PEzp< zGM}pVU|wqEwDh|8Y+l>r7mnKQ{^9#XAnpZIS~|mq@Ldh=f3{A|xw@;Wfc?NB8Na>j zZ)va>cPOoxCaA~~Ex@y%X;x&kK$Z9vvAx%#?7!!~_;Htg|AD9rUq$`rFn;;bo6c~C zA%Ts-m|+Iv0Um~FuQD@=E&g3l%~89{Cz1Kl`xt}UWIcvQ6OYz=RkGy>I!y_imdD<6 z3`t8G!-gsUnd`cX{P(;4lATcb@iYfx%5=MiH|N{hESRsg2rMmKdY|#8B*>l@+^gPB zb$F$a`~1L^_ifWoA31sQ@?-HT_L$!l_e*OXzrFq~lJrioOGCI`USLtjO#8q?+zaeA wmpXqi6KQ+jki^}UpX(qf76A;F?Q%-kM0z@3d<(>=dU^)@Q_tb$!RKVff1#Umdi4n$bH>wme&+onTKUJ=O z?`qpyyQ^j~0?lJ!NSS;^HY0dis^ydKnyS}tzt~mm%)bATWeayH`?NlWBYIb5Uo6hn zlw4i%^Z<`Q@n(ys_pG9_r&{=Jj7&ENZx zIg-=r-eb}1hFyQTvKu5AI|SiG>n^FN%DUe{<%uQ_(+i4mS=??3JSFL;}-OjJD>jLAOZLPMp zG3lAvtAtdl<(Ank{T*}vW^VVf_ww=I*ZvRGk6o4C>~y}N_!iSAl`DZ4b~eW5hkg6` zaqeFGVg|%EgPOf8X1kTYix<`onKVJ*$mR!lyiu4cH&FiZ9Wu sePQ6q^oGEuKfm)GFVdQ&MBb@0DLswJpcdz literal 0 HcmV?d00001 diff --git a/assets/sprites/ui/fabricator-battery3.png b/assets/sprites/ui/fabricator-battery3.png new file mode 100644 index 0000000000000000000000000000000000000000..287f659aa59ed217e9096c79f5044a6ff348648b GIT binary patch literal 551 zcmV+?0@(eDP)Px$;Ymb6RCt{2n=w+uFcd^BpbRH~jtejxfEjWFDsmi-LkGhFD4=I(IROVCZN@Ya zqtV#09Le6l*1jrE9P9h9{>qZ=rV&C2A%qY@2qA=+4Tlb3h_-Fpoc}xLOrN9a;Bu4i zu`I#~I)K`d0ASA00gNHlN=jMR9H;`om>Hbr?zL71W)nf6EW?5bvLG<<9^k3ff}mGH zKIzUmcYk{hZGZO0_rNSD?D2>(0NuVvV*nTl07e3UkpN&M02m1XhH5p`^Zfo>{FujH zissHC=qg}}G=Xx1$6c5zT{6u>HEi20xS`F0lr@^XKk;v1ubF>@FIMD?t1r$*NL^1KLaRR9wp^xVFiESvQz$$G~A9=BQLv!TuY#K)d| zY(1gv;eG literal 0 HcmV?d00001 diff --git a/assets/sprites/ui/fabricator-battery4.png b/assets/sprites/ui/fabricator-battery4.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b6fb666bf533f7857fa97db01e82036a63ffdc GIT binary patch literal 653 zcmV;80&@L{P)Px%M@d9MRCt{2n>|j$KoEs@A!Tv^6uK0&h=vNJZ~z1qIZn6@R3HuzB&cYjv=o#G z`lKW>O;)n4U1#k$o_Y5Bs@UEnlX*Kc`;#?>5JCtcgb+dqA*3;^v;o^lk|f#X{nlF5 zzfrYuyE@;YS%d>=1G)|c5T++>KpA3FNnNR{2^ayws3}fJy*7r}XjLIV+nn!+5rHX4 z7!?sZjN2rbf6z7{AX7Z{9=mKg52o=xA=~3gh#85Q_LG6f{P2v4~IWBCo zn6JI})9XZ?UkfUt%+PT(9-7g3n7J1k9cdhrsuUnZ8-|^Epadu)9|b6=6Cji(e7!&K z^z=1K8d4`f*JzypXsHN7fU3n8Aq~OJ1AO!bADQcuYyaya$}T0;HE)230N=#QrJB6+ zo1(6NaX<*rW?%#eEie2n&l|VJ)R=;xYQSQ?_7>K(2w$(?nf4*_%i3HEstFE5_lWEL zu}(%Px%Z%IT!RCt{2n>$j&Fc5|k`$8j9Tu}O?EYLCG(XW9dpJ1&4SRRVbWsmCKg85RLN z66h?n2QWshxFLkVHyVDRQxHdFp+_fK0Q8Aj0XhQa09y@+F-GZpo7=vn==2CshU~F@ zURDzUQ+sU)AxQR_YYURWQUj+7U@2vkkYf)|LCUZSK=ove%@WFjL3JnG3Kl{Lj}Mp0 z>uzq(N$tPA{$^jRwPP-h0Iq!9ZD*)Ws`1C}MX5VxYrtx=%(|{dz$suCU<%J_jeiOv zKt}+w;kbYnppRp(w;lzs0+bjmR|G_01&{zS3Lu||jTvfj@$&D#^)|2V)OA`<-b5lm zY9+MVEPIWQ0CmpA0!Z%|5z~Yu=4!yt_nr0-dZ9WdR1FyN{_aX=OoWf;uhG8N+s}jF zX3l~vU};%uLI6t!Ek#5CN;uE0__mM)K!4k;F%&f>QqU;_FMt(KrUEZO4Hm>>-v?;a zhoR$%+%uxmqXe#bvPJ-!@g?Cp?;;CuY-|fFBScstK-2hIXG2_buBrjjhR-dcLn5Tk zh5RhYX&Ph!EG!{8s1_jZ;291-=t5TIy<@|d=F#^4_ou6a|0RspR}0!Ypt*=pO+jJD z6n*uHI%WSUAYM@AK{91@+wS(M32O@4H%jm-jZc)O>@NkxDoCS 1f && !active && lingerTime <= 0; + + if(!visualActive && visualsWarmup < 0.1f) stageMax = stage; - if(unit.activelyBuilding()){ + visualsWarmup = Mathf.slerpDelta(visualsWarmup, visualActive ? 0 : 1, 0.08f); + lingerTime -= Time.delta; + + int toStage = Mathf.floor(charge/chargeCap * 4); + if(toStage != stage){ + if(toStage > stageMax){ + Fx.coreExplosion.at(unit.x, unit.y); + lingerTime = 240; + } + stage = toStage; + stageMax = stage; + } + + if(active){ if(enabled){ charge -= Time.delta * drainSpeed; unit.buildSpeedMultiplier *= speedMulti; @@ -96,6 +131,45 @@ public int coils() { @Override public void draw(Unit unit) { super.draw(unit); + float dx = x + unit.x, dy = y + unit.y; + + float fin = charge/chargeCap; + + float rad = 4; + float fullRad = 4; + float fract = 0.75f; + + Draw.color(Color.darkGray); + Draw.alpha(visualsWarmup); + Lines.stroke(3.5f); + Lines.arc(dx, dy, fullRad, fract); + Draw.color(Color.gray); + Draw.alpha(visualsWarmup); + Lines.stroke(1.5f); + Lines.arc(dx, dy, fullRad, fract); + + Color[] colors = new Color[]{Color.red, Color.orange, Color.blue, Pal.accent}; + + for(int i = 0; i < colors.length; i++){ + Draw.color(colors[i]); + Draw.alpha(visualsWarmup); + + float finp = Mathf.clamp(fin * colors.length - i, 0, 1); + finp = chargeInterp.apply(finp); + + if(finp < 0.02f) continue; + + Lines.stroke(1.5f); + Lines.arc(dx, dy, rad, Mathf.lerp(0.01f, fract, finp)); + } + + Draw.color(); + Draw.alpha(visualsWarmup); + Draw.rect(MeldRegions.chargeRegions[stage], dx - x * 2, dy); + + /* + Draw.alpha(1 - visualsWarmup); Lines.arc(unit.x, unit.y, Vars.tilesize * 3, charge/chargeCap); + */ } } diff --git a/src/meld/entities/unit/abilities/ReloadStackingAbility.java b/src/meld/entities/unit/abilities/ReloadStackingAbility.java new file mode 100644 index 0000000..65cebcf --- /dev/null +++ b/src/meld/entities/unit/abilities/ReloadStackingAbility.java @@ -0,0 +1,101 @@ +package meld.entities.unit.abilities; + +import arc.graphics.g2d.Lines; +import arc.math.Mathf; +import arc.math.geom.Position; +import arc.math.geom.Vec2; +import arc.util.Time; +import arc.util.Tmp; +import meld.content.MeldFx; +import mindustry.Vars; +import mindustry.entities.abilities.Ability; +import mindustry.gen.Sounds; +import mindustry.gen.Unit; +import mindustry.graphics.Pal; + +public class ReloadStackingAbility extends Ability { + protected float charge = 0; + protected float zapTimer = 0; + protected boolean enabled = true; + + public float chargeCap = 60 * 60; + + public float speedMulti = 5; + public float drainSpeed = 8; + + public float minCharge = 60; + + @Override + public void update(Unit unit) { + super.update(unit); + + if(unit.activelyBuilding()){ + if(enabled){ + charge -= Time.delta * drainSpeed; + unit.buildSpeedMultiplier *= speedMulti; + zapTimer += Time.delta; + if(zapTimer > 12){ + zapTimer %= 12; + Vec2 targ = new Vec2(); + if(unit.buildPlan().build() != null) { + targ.set(unit.buildPlan().build().x, unit.buildPlan().build().y); + } + else { + Tmp.v1.trns(Mathf.random(360), unit.type.hitSize + Mathf.random(0, 12)).add(unit); + targ.set(Tmp.v1); + } + + MeldFx.chainLightning.at(unit.x, unit.y, 0, Pal.accent, new MeldFx.VisualLightningHolder() { + @Override + public Position start() { + return unit; + } + + @Override + public Position end() { + return targ; + } + + @Override + public float width() { + return 2; + } + + @Override + public float segLength() { + return 7; + } + + @Override + public float arc() { + return 0.2f; + } + + @Override + public int coils() { + return 3; + } + }); + } + Sounds.shootArc.at(unit.x, unit.y, Mathf.range(0.8f, 1.2f)); + } + } + else charge += Time.delta; + + if(charge >= chargeCap){ + unit.healthMultiplier *= 2; + unit.speedMultiplier *= 1.5f; + } + + + charge = Mathf.clamp(charge, 0, chargeCap); + if(charge == 0) enabled = false; + if(charge >= minCharge) enabled = true; + } + + @Override + public void draw(Unit unit) { + super.draw(unit); + Lines.arc(unit.x, unit.y, Vars.tilesize * 3, charge/chargeCap); + } +} diff --git a/src/meld/graphics/MeldLightRenderer.java b/src/meld/graphics/MeldLightRenderer.java index 5cd17e7..ef67ed2 100644 --- a/src/meld/graphics/MeldLightRenderer.java +++ b/src/meld/graphics/MeldLightRenderer.java @@ -21,6 +21,8 @@ public class MeldLightRenderer extends LightRenderer { + public boolean invertAmbient = false; + public MeldLightRenderer(){ super(); thingo = this; @@ -237,14 +239,13 @@ public void draw2(){ for(int i = 0; i < circleIndex; i++){ var cir = circles.items[i]; Draw.color(cir.color); - Draw.rect(circleRegion, cir.x, cir.y, cir.radius, cir.radius); + Draw.rect(circleRegion, cir.x, cir.y, cir.radius * 2, cir.radius * 2); } Draw.reset(); Blending.normal.apply(); Draw.sort(true); Texture lightTex = buffer.getTexture(); buffer.end(); - Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); Draw.color(); //TODO: potential memory leak @@ -252,6 +253,7 @@ public void draw2(){ shadowBuffer.begin(Color.clear); Draw.sort(false); Blending.additive.apply(); + Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); shadowBuffer.resize(Core.graphics.getWidth()/scaling, Core.graphics.getHeight()/scaling); for(Runnable run : shadows){ @@ -263,10 +265,13 @@ public void draw2(){ Draw.sort(true); Texture exclusionTex = shadowBuffer.getTexture(); shadowBuffer.end(); - Gl.blendEquationSeparate(Gl.funcAdd, Gl.funcAdd); Draw.color(); - MeldShaders.light.ambient.set(state.rules.ambientLight); + + + if(invertAmbient) MeldShaders.light.ambient.set(Tmp.c1.set(Color.white)).sub(state.rules.ambientLight).a(1 - state.rules.ambientLight.a); + else MeldShaders.light.ambient.set(state.rules.ambientLight); + MeldShaders.light.lights = lightTex; MeldShaders.light.exclusion = exclusionTex; diff --git a/src/meld/graphics/MeldRegions.java b/src/meld/graphics/MeldRegions.java index 2d64f71..cbbe53c 100644 --- a/src/meld/graphics/MeldRegions.java +++ b/src/meld/graphics/MeldRegions.java @@ -8,8 +8,15 @@ public class MeldRegions { public static TextureRegion chain, particle; + public static TextureRegion[] chargeRegions; + public static void load(){ chain = Core.atlas.find(Meld.prefix("chain")); particle = Core.atlas.find("particle"); + + chargeRegions = new TextureRegion[5]; + for(int i = 0; i < 5; i++){ + chargeRegions[i] = Core.atlas.find(Meld.prefix("fabricator-battery" + (i + 1))); + } } } diff --git a/src/meld/graphics/MeldShaders.java b/src/meld/graphics/MeldShaders.java index 0f919dc..af06521 100644 --- a/src/meld/graphics/MeldShaders.java +++ b/src/meld/graphics/MeldShaders.java @@ -26,7 +26,7 @@ public class MeldShaders { public static NamedShader sonar; public static LightShaderMeld light; - public static FrameBuffer lightBuffer = new FrameBuffer(); + public static FrameBuffer lightBuffer = new FrameBuffer(), sonarBuffer = new FrameBuffer(); public static boolean loaded = false; @@ -40,6 +40,7 @@ public static void load(){ Events.run(EventType.Trigger.draw, () -> { + sonarBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); if(Vars.state.rules.lighting){ lightBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); @@ -50,10 +51,10 @@ public static void load(){ } Draw.drawRange(MeldLayers.sonar, 0.1f, () -> { - renderer.effectBuffer.begin(Color.clear); + sonarBuffer.begin(Color.clear); }, () -> { - renderer.effectBuffer.end(); - renderer.effectBuffer.blit(MeldShaders.sonar); + sonarBuffer.end(); + sonarBuffer.blit(MeldShaders.sonar); }); Draw.drawRange(MeldLayers.sonarInside, 0.1f, () -> { @@ -107,6 +108,7 @@ public void apply() { } public static class LightShaderMeld extends NamedShader{ + public float thickness = 0; public Color ambient = new Color(0.01f, 0.01f, 0.04f, 0.99f); public Texture lights = null; public Texture exclusion = null; @@ -125,6 +127,7 @@ public void apply(){ */ setUniformf("u_ambient", ambient); + setUniformf("u_thickness", thickness); if(exclusion != null) exclusion.bind(2); if(lights != null) lights.bind(1); diff --git a/src/meld/world/blocks/CoreRaft.java b/src/meld/world/blocks/CoreRaft.java index 939b442..bb1dcfb 100644 --- a/src/meld/world/blocks/CoreRaft.java +++ b/src/meld/world/blocks/CoreRaft.java @@ -52,22 +52,27 @@ public class CoreRaft extends CoreBlock { public CoreRaft(String name) { super(name); fogRadius = 40; + lightRadius = 720; + clipSize = 720; Events.on(EventType.WorldLoadEvent.class, e -> { rafts.clear(); Team.sharded.cores().each(c -> { if(c instanceof CoreRaftBuild raft) rafts.add(raft); }); }); + emitLight = true; } @Override public void init() { //Yknow I wish we had like a set defaults for this but nvm int f = fogRadius; + float l = lightRadius; super.init(); fogRadius = f; + lightRadius = l; } //Allow spawning at an offset diff --git a/src/meld/world/blocks/SonarSpire.java b/src/meld/world/blocks/SonarSpire.java index 225da0d..1f26f61 100644 --- a/src/meld/world/blocks/SonarSpire.java +++ b/src/meld/world/blocks/SonarSpire.java @@ -8,6 +8,7 @@ import mindustry.Vars; import mindustry.content.StatusEffects; import mindustry.entities.Units; +import mindustry.graphics.Drawf; import mindustry.graphics.Layer; import mindustry.graphics.Pal; import mindustry.type.StatusEffect; @@ -56,6 +57,7 @@ public void draw() { //Draww.drawChain(chain, x, y, Core.input.mouseWorldX(), Core.input.mouseWorldY(), 0); Draww.drawSonar(x, y, smoothRadius, 2, MeldLayers.sonar, ringColor); + Drawf.light(x, y, smoothRadius, Pal.accent, 1); //Charge visuals, not sure if im keeping them or not Lines.arc(x, y, range, uptime/pulseDuration); diff --git a/src/meld/world/blocks/env/SupportPillar.java b/src/meld/world/blocks/env/SupportPillar.java new file mode 100644 index 0000000..7efce0e --- /dev/null +++ b/src/meld/world/blocks/env/SupportPillar.java @@ -0,0 +1,82 @@ +package meld.world.blocks.env; + +import arc.graphics.Color; +import arc.graphics.g2d.Fill; +import arc.util.Tmp; +import arc.util.io.Reads; +import arc.util.io.Writes; +import meld.graphics.MeldLightRenderer; +import mindustry.Vars; +import mindustry.gen.Building; +import mindustry.world.Block; +import mindustry.world.Tile; +import mindustry.world.blocks.power.LightBlock; + +public class SupportPillar extends Block { + + public SupportPillar(String name) { + super(name); + solid = true; + hasShadow = false; + update = true; + drawTeamOverlay = false; + clipSize = 5000; + forceDark = true; + } + + + @Override + public int minimapColor(Tile tile) { + return mapColor.rgba(); + } + + @Override + public boolean canBreak(Tile tile) { + return Vars.state.isEditor(); + } + + public class SupportPillarBuild extends Building{ + public float radius = 0; + public float outerShade = 0.1f; + public int color, outerColor; + + @Override + public void damage(float damage) { + + } + + @Override + public void draw() { + super.draw(); + MeldLightRenderer.thingo.shadow(() -> { + Fill.light(x, y, 20, radius, Tmp.c1.set(color), Tmp.c2.set(outerColor)); + }); + } + + public void setColor(Color col){ + color = col.rgba(); + } + + public void setColorOuter(Color col){ + outerColor = col.rgba(); + } + + @Override + public void write(Writes write) { + super.write(write); + write.f(radius); + + write.i(color); + write.i(outerColor); + } + + @Override + public void read(Reads read, byte revision) { + super.read(read, revision); + radius = read.f(); + + color = read.i(); + outerColor = read.i(); + } + } +} From 9c781775ccc8546fc522f6df236e205a3b382dd4 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Sat, 25 Apr 2026 12:35:56 +1000 Subject: [PATCH 07/16] Light emitting from floors, move light render call --- src/meld/Meld.java | 4 +++- src/meld/SettingKeys.java | 5 ++++ src/meld/content/MeldEnvironment.java | 24 +++++++++++++++++++ .../abilities/FabricatorBatteryAbility.java | 9 ++----- src/meld/graphics/Draww.java | 4 +++- src/meld/graphics/MeldLightRenderer.java | 1 - src/meld/graphics/MeldPal.java | 8 +++++++ src/meld/graphics/MeldShaders.java | 12 +++++++--- 8 files changed, 54 insertions(+), 13 deletions(-) create mode 100644 src/meld/SettingKeys.java diff --git a/src/meld/Meld.java b/src/meld/Meld.java index 59344da..8a3ba23 100644 --- a/src/meld/Meld.java +++ b/src/meld/Meld.java @@ -72,7 +72,9 @@ public void init() { melting = new Melting(); - Reflect.set(Vars.renderer, "lights", new MeldLightRenderer()); + Core.settings.put(SettingKeys.lighting, true); + + if(Core.settings.getBool(SettingKeys.lighting)) Reflect.set(Vars.renderer, "lights", new MeldLightRenderer()); Vars.mods.getScripts().runConsole( "function buildWorldP(){return Vars.world.buildWorld(Vars.player.x, Vars.player.y)}"); diff --git a/src/meld/SettingKeys.java b/src/meld/SettingKeys.java new file mode 100644 index 0000000..ee4a81f --- /dev/null +++ b/src/meld/SettingKeys.java @@ -0,0 +1,5 @@ +package meld; + +public class SettingKeys { + public static String lighting = "meld.lighting"; +} diff --git a/src/meld/content/MeldEnvironment.java b/src/meld/content/MeldEnvironment.java index cebc640..3edc07e 100644 --- a/src/meld/content/MeldEnvironment.java +++ b/src/meld/content/MeldEnvironment.java @@ -1,6 +1,7 @@ package meld.content; import arc.graphics.Color; +import meld.graphics.MeldPal; import meld.world.blocks.AetherCluster; import meld.world.blocks.defense.TreeWall; import meld.world.blocks.env.SupportPillar; @@ -13,6 +14,8 @@ import mindustry.world.meta.Attribute; import mindustry.world.meta.BuildVisibility; +import static meld.graphics.MeldPal.*; + public class MeldEnvironment { //Ore deposits & overlays @@ -226,6 +229,13 @@ public static void load(){ statusDuration = 40; dragMultiplier = 2f; + + /* + emitLight = true; + lightColor = meldFloorGlowHadal; + lightRadius = 15; + + */ }}; meldTrenchland = new Floor("meld-trenchland", 3){{ @@ -237,6 +247,13 @@ public static void load(){ dragMultiplier = 1.5f; cacheLayer = CacheLayer.water; + + /* + emitLight = true; + lightColor = meldFloorGlowDeep; + lightRadius = 15; + + */ }}; meldSwampland = new Floor("meld-swampland", 3){{ @@ -244,6 +261,13 @@ public static void load(){ cacheLayer = CacheLayer.water; supportsOverlay = true; + + /* + emitLight = true; + lightColor = meldFloorGlow; + lightRadius = 20; + + */ }}; meldPlates = new Floor("meld-plates", 2){{ diff --git a/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java index 2adac8d..3ea262c 100644 --- a/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java +++ b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java @@ -43,6 +43,8 @@ public class FabricatorBatteryAbility extends Ability { public float minCharge = 60; + Color[] colors = new Color[]{Color.red, Color.orange, Color.blue, Pal.accent}; + @Override public void update(Unit unit) { super.update(unit); @@ -148,8 +150,6 @@ public void draw(Unit unit) { Lines.stroke(1.5f); Lines.arc(dx, dy, fullRad, fract); - Color[] colors = new Color[]{Color.red, Color.orange, Color.blue, Pal.accent}; - for(int i = 0; i < colors.length; i++){ Draw.color(colors[i]); Draw.alpha(visualsWarmup); @@ -166,10 +166,5 @@ public void draw(Unit unit) { Draw.color(); Draw.alpha(visualsWarmup); Draw.rect(MeldRegions.chargeRegions[stage], dx - x * 2, dy); - - /* - Draw.alpha(1 - visualsWarmup); - Lines.arc(unit.x, unit.y, Vars.tilesize * 3, charge/chargeCap); - */ } } diff --git a/src/meld/graphics/Draww.java b/src/meld/graphics/Draww.java index d815203..9863a3d 100644 --- a/src/meld/graphics/Draww.java +++ b/src/meld/graphics/Draww.java @@ -1,6 +1,8 @@ package meld.graphics; +import arc.Core; import arc.graphics.Color; +import arc.graphics.Gl; import arc.graphics.g2d.Draw; import arc.graphics.g2d.Fill; import arc.graphics.g2d.Lines; @@ -9,6 +11,7 @@ import arc.math.Mathf; import arc.math.geom.Vec2; import arc.util.Tmp; +import meld.SettingKeys; import mindustry.Vars; import mindustry.content.Blocks; import mindustry.graphics.Pal; @@ -26,7 +29,6 @@ public static void drawSonar(float x, float y, float radius, float thickness, fl Draw.color(color); Fill.light(x, y, (int) (radius/4) + 12, radius + thickness/2, Tmp.c1.set(color).a(0), Tmp.c1.a(1)); - //ill.circle(x, y, radius); Draw.z(layer + 0.01f); Fill.light(x, y, (int) (radius/4) + 12, radius - thickness/2, Tmp.c1.set(Color.red), Tmp.c1); diff --git a/src/meld/graphics/MeldLightRenderer.java b/src/meld/graphics/MeldLightRenderer.java index ef67ed2..582eba6 100644 --- a/src/meld/graphics/MeldLightRenderer.java +++ b/src/meld/graphics/MeldLightRenderer.java @@ -212,7 +212,6 @@ public boolean enabled(){ } public void draw(){ - draw2(); } public void draw2(){ diff --git a/src/meld/graphics/MeldPal.java b/src/meld/graphics/MeldPal.java index b63dca1..2eb0d02 100644 --- a/src/meld/graphics/MeldPal.java +++ b/src/meld/graphics/MeldPal.java @@ -5,15 +5,23 @@ public class MeldPal { public static Color + + meldFloorGlow = Color.valueOf("d26ab12b"), + meldFloorGlowDeep = Color.valueOf("ca3fba21"), + meldFloorGlowHadal = Color.valueOf("ca3fba1b"), + aspect = Color.valueOf("f0f5fe"), + shark = Color.valueOf("a393feff"), darkShark = Color.valueOf("665c9f"), accentClear = Pal.accent.cpy().a(0), accentTranslucent = Pal.accent.cpy().a(0.01f), + blobPink = Color.valueOf("e5aed7"), blobPinkClear = blobPink.cpy().a(0), flamePink = Color.valueOf("feafea"), flamePinkDark = Color.valueOf("d26ab1"), + shockwaveGray = Color.valueOf("7f7f7f"), sparkOrange = Color.valueOf("f6e096"), resoShardFront = Color.valueOf("a3efba"), diff --git a/src/meld/graphics/MeldShaders.java b/src/meld/graphics/MeldShaders.java index af06521..65ed811 100644 --- a/src/meld/graphics/MeldShaders.java +++ b/src/meld/graphics/MeldShaders.java @@ -12,9 +12,12 @@ import arc.scene.ui.layout.Scl; import arc.util.Log; import arc.util.Time; +import meld.Meld; +import meld.SettingKeys; import mindustry.Vars; import mindustry.game.EventType; import mindustry.graphics.Layer; +import mindustry.graphics.LightRenderer; import mindustry.graphics.Pal; import mindustry.graphics.Shaders; @@ -42,12 +45,15 @@ public static void load(){ Events.run(EventType.Trigger.draw, () -> { sonarBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); - if(Vars.state.rules.lighting){ + if(Vars.state.rules.lighting && Core.settings.getBool(SettingKeys.lighting)){ lightBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); - - Draw.draw(0, () -> { + Draw.draw(Layer.background, () -> { lightBuffer.begin(); }); + Draw.draw(Layer.light, () -> { + lightBuffer.end(); + MeldLightRenderer.thingo.draw2(); + }); } Draw.drawRange(MeldLayers.sonar, 0.1f, () -> { From 62ec22dc113d00b684df47581a7378d06768485e Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Sat, 25 Apr 2026 21:02:22 +1000 Subject: [PATCH 08/16] yeet --- assets/bundles/bundle.properties | 3 +++ 1 file changed, 3 insertions(+) diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index 0c2a514..805cd33 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -288,6 +288,9 @@ block.meld-displacement-pump.description = Dumps Debris into fluids to retrive a block.meld-elemental-blaster.name = Elemental Blaster block.meld-elemental-blaster.description = Blasts deposits for items indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nCan be boosted with [#ea9ad6]Meld[] to double harvesting speed. +block.meld-excavation-quarry.name = Excavation Quarry +block.meld-excavation-quarry.description = "Tears up the land it's placed on. Requires [#cbdbfc]Aspect[] to run.\n\nPipe in [accent]explosives[], [accent]stronger fuels[], [accent]grinding particulate[], or [accent]solvents[], to rip up the ground faster, or increase its yield." + block.meld-pneumatic-pulsar.name = Pneumatic Pulsar block.meld-pneumatic-pulsar.description = Blasts a single deposit for items indefinitely while maintained. Requires [#cb8650]Aether[] to run.\n\n[red]Explosions damage everything around them, high maintenance![] From 9c27c3b30eb6cd7ac1fe88eeb0a37d18edb52f09 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Sun, 26 Apr 2026 17:37:33 +1000 Subject: [PATCH 09/16] pulled my ass together, glowing ass pects and b ad (ss) lands -both testing maps ingame -Slapped extra clamp onto light and it worked -Aspects glow now -bulbhead's base light radius reduced, increased with charge -settings for the people -different vibrant ore colours for ores on the minimap --- assets/maps/badlands-testmap-1.msav | Bin 26022 -> 26582 bytes assets/maps/gameplay-testmap-2.msav | Bin 30825 -> 31022 bytes assets/shaders/light.frag | 26 +++-- .../sprites/{liquids => aspects}/aether.png | Bin .../sprites/{liquids => aspects}/aspect.png | Bin .../{liquids => aspects}/bound-aspect.png | Bin assets/sprites/{liquids => aspects}/fumes.png | Bin assets/sprites/aspects/meld.png | Bin 0 -> 362 bytes .../pollutant-mixture.png | Bin .../{liquids => aspects}/storming-aspect.png | Bin .../thundering-aether.png | Bin .../amalgam-decomposer-bottom.png | Bin 0 -> 308 bytes .../amalgam-decomposer-glow.png | Bin 0 -> 1108 bytes .../amalgam decomposer/amalgam-decomposer.png | Bin 0 -> 2142 bytes .../feeder/filtrative-feeder-tanks-liquid.png | Bin 0 -> 715 bytes .../production/feeder/filtrative-feeder.png | Bin 0 -> 4439 bytes assets/sprites/icon.png | Bin 0 -> 3223 bytes assets/sprites/liquids/blood.png | Bin 0 -> 517 bytes assets/sprites/liquids/ichor.png | Bin 0 -> 444 bytes assets/sprites/liquids/meld.png | Bin 362 -> 437 bytes assets/sprites/liquids/mercury.png | Bin 0 -> 352 bytes assets/sprites/liquids/nectar.png | Bin 0 -> 275 bytes assets/sprites/liquids/ooze.png | Bin 0 -> 440 bytes src/meld/Meld.java | 4 +- src/meld/SettingKeys.java | 5 +- src/meld/content/MeldAttributes.java | 3 +- src/meld/content/MeldBlocks.java | 89 +++++++++++++- src/meld/content/MeldEnvironment.java | 44 ++++--- src/meld/content/MeldLiquids.java | 110 ++++++++++++++++++ src/meld/content/MeldMappings.java | 10 ++ src/meld/content/MeldStatusEffects.java | 35 +++++- src/meld/content/MeldUnits.java | 4 +- .../abilities/FabricatorBatteryAbility.java | 18 ++- src/meld/fluid/Aspect.java | 10 ++ src/meld/graphics/Draww.java | 25 ++-- src/meld/graphics/MeldLightRenderer.java | 6 +- src/meld/graphics/MeldShaders.java | 3 +- src/meld/ui/MeldSettings.java | 73 ++++++++++++ src/meld/world/blocks/defense/TreeWall.java | 2 - src/meld/world/blocks/env/ModdedOreBlock.java | 27 +++++ 40 files changed, 445 insertions(+), 49 deletions(-) rename assets/sprites/{liquids => aspects}/aether.png (100%) rename assets/sprites/{liquids => aspects}/aspect.png (100%) rename assets/sprites/{liquids => aspects}/bound-aspect.png (100%) rename assets/sprites/{liquids => aspects}/fumes.png (100%) create mode 100644 assets/sprites/aspects/meld.png rename assets/sprites/{liquids => aspects}/pollutant-mixture.png (100%) rename assets/sprites/{liquids => aspects}/storming-aspect.png (100%) rename assets/sprites/{liquids => aspects}/thundering-aether.png (100%) create mode 100644 assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer-bottom.png create mode 100644 assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer-glow.png create mode 100644 assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer.png create mode 100644 assets/sprites/blocks/production/feeder/filtrative-feeder-tanks-liquid.png create mode 100644 assets/sprites/blocks/production/feeder/filtrative-feeder.png create mode 100644 assets/sprites/icon.png create mode 100644 assets/sprites/liquids/blood.png create mode 100644 assets/sprites/liquids/ichor.png create mode 100644 assets/sprites/liquids/mercury.png create mode 100644 assets/sprites/liquids/nectar.png create mode 100644 assets/sprites/liquids/ooze.png create mode 100644 src/meld/ui/MeldSettings.java create mode 100644 src/meld/world/blocks/env/ModdedOreBlock.java diff --git a/assets/maps/badlands-testmap-1.msav b/assets/maps/badlands-testmap-1.msav index 46ae072cd779d6c1a55c36c75501d63dcb88b94e..5620cf627a2573c153fdce3dbb57bfc90106c902 100644 GIT binary patch literal 26582 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 N3D4TK{|_nGk;QIlDKY>6 literal 26022 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 diff --git a/assets/maps/gameplay-testmap-2.msav b/assets/maps/gameplay-testmap-2.msav index 21ce5bc181504e4d318ec571d08c03b4fe82eb68..36d3b324a4ea1559a8f8c569b85649e169d0228c 100644 GIT binary patch literal 31022 zcmZ^~1#BEj5G814W~SJVam>uj%*2w z8w|Q*N>PkIgh zLCW<;M61tU@#|8B*hAg0aYs+Tr`xiH+i;UpqP^Gq4t%@QJJ{FL)@Q%;#V^SDAZFq1 zek;T~rhF<4Y)d}PQhKm!eb^AIbD}-FV_pL`Hf|gBv^MwX_v-ZqpZzUdn_ZB0_;=pi z{<&**^0f|-+-E}~*sRQ{rQrkEYlif4R8|P4+}GN6a$4~|Q2z5| zlJi{M{Vi

}o8_6+77L3_P~kJwok$XDuO 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 z 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 WMmJXjlpO_l=EjH6Nq+~0d(SSML*};t diff --git a/assets/shaders/light.frag b/assets/shaders/light.frag index c66f3bf..c117372 100644 --- a/assets/shaders/light.frag +++ b/assets/shaders/light.frag @@ -11,23 +11,31 @@ varying vec2 v_texCoords; void main(){ + float banding = 8.0; + //Exclusion - vec4 exclusion = clamp(texture2D(u_exclusion, v_texCoords), 0.0, 1.1); + vec4 exclusion = texture2D(u_exclusion, v_texCoords); vec4 positionAmbient = clamp(vec4(u_ambient.rgb - exclusion.rgb * exclusion.a, u_ambient.a), 0.0, 1.0); - float alpha = u_ambient.a; - alpha = clamp(floor(alpha * 8.0)/8.0, 0.0, 1.0) * 0.5 + clamp(floor(alpha * 3.0)/3.0, 0.0, 1.0) * 0.5; + //Light color + vec4 color = texture2D(u_lights, v_texCoords); + float alpha = color.a; - //Light color - vec4 color = clamp(texture2D(u_lights, v_texCoords) + vec4(positionAmbient.rgb * alpha * alpha, 1), 0.0, 1.0); + //Get the scaling right here... + alpha = clamp(floor((alpha) * 8.0)/8.0, 0.0, 1.0) * 0.3 + clamp(floor(alpha * 3.0)/3.0, 0.0, 1.0) * 0.3 + alpha * 0.4; - vec4 background = clamp(texture2D(u_texture, v_texCoords), 0.0, 1.0); + vec4 totalColor = clamp(vec4(color.rgb * alpha, 1) + vec4(positionAmbient.rgb * positionAmbient.a, 1), 0.0, 1.0); - gl_FragColor = background * color; + vec4 background = clamp(texture2D(u_texture, v_texCoords), 0.0, 1.0); - //gl_FragColor = floor(gl_FragColor * 100)/100; + gl_FragColor = clamp(background * totalColor, 0.0, 1.0); - //gl_FragColor = exclusion; + /* + float max = max(gl_FragColor.r, gl_FragColor.g, gl_FragColor.b); + float min = min(gl_FragColor.r, gl_FragColor.g, gl_FragColor.b); + float chrom = max - min; + float L = (max + min)/2; + */ } \ No newline at end of file diff --git a/assets/sprites/liquids/aether.png b/assets/sprites/aspects/aether.png similarity index 100% rename from assets/sprites/liquids/aether.png rename to assets/sprites/aspects/aether.png diff --git a/assets/sprites/liquids/aspect.png b/assets/sprites/aspects/aspect.png similarity index 100% rename from assets/sprites/liquids/aspect.png rename to assets/sprites/aspects/aspect.png diff --git a/assets/sprites/liquids/bound-aspect.png b/assets/sprites/aspects/bound-aspect.png similarity index 100% rename from assets/sprites/liquids/bound-aspect.png rename to assets/sprites/aspects/bound-aspect.png diff --git a/assets/sprites/liquids/fumes.png b/assets/sprites/aspects/fumes.png similarity index 100% rename from assets/sprites/liquids/fumes.png rename to assets/sprites/aspects/fumes.png diff --git a/assets/sprites/aspects/meld.png b/assets/sprites/aspects/meld.png new file mode 100644 index 0000000000000000000000000000000000000000..97b83d6cd8f3b4cc5f46c11447b277489063627b GIT binary patch literal 362 zcmV-w0hRuVP)Px$BuPX;R9J=WmB9_dFbqXq#274q*q~R`6&Rypl&WK}Le*2czbw*cQAYJm$G`5KEl{Q#)o4q{R?w0U~3zYLe_AB4hSBS$@}S0AgO+ zg5-rK^Ad>7;?#~*I)*hE%OouBJ9>3px1d}4rdxWkuLuMT5E|EjfB-l{4Wc@LBncv{ zf^-Wu0J&^DS9Bd_wH-+XN=u50ZGi;gh10&Pnl0C&Z&wu73$q|~Ec>k~Q2+n{07*qo IM6N<$f~NwKJ^%m! literal 0 HcmV?d00001 diff --git a/assets/sprites/liquids/pollutant-mixture.png b/assets/sprites/aspects/pollutant-mixture.png similarity index 100% rename from assets/sprites/liquids/pollutant-mixture.png rename to assets/sprites/aspects/pollutant-mixture.png diff --git a/assets/sprites/liquids/storming-aspect.png b/assets/sprites/aspects/storming-aspect.png similarity index 100% rename from assets/sprites/liquids/storming-aspect.png rename to assets/sprites/aspects/storming-aspect.png diff --git a/assets/sprites/liquids/thundering-aether.png b/assets/sprites/aspects/thundering-aether.png similarity index 100% rename from assets/sprites/liquids/thundering-aether.png rename to assets/sprites/aspects/thundering-aether.png diff --git a/assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer-bottom.png b/assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer-bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4337ad3e752e0c74c103fa377e053179fb7a22 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|-g&w>hE&XX zd(n~ifC9q-hXec%d+QUOkJ(-ezOdx;o8P?#-t2#3nK!T{@E(wAFlESQxW=%CF=A*6 ad}Eky#uV~NFFFM1a|TaWKbLh*2~7aD@m;zA literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer-glow.png b/assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer-glow.png new file mode 100644 index 0000000000000000000000000000000000000000..3cdf531eb12a09d62bf4b577eaa51ccdf1b2e87d GIT binary patch literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-HD>VBzz0aSW-L z^LBQ2{%tb}xBf*pJg zW-(Wk^fr6?ouNtQ#-w;#cahYIjE4<)l0!AcVh<=4oclRFd+YXP46YaBbhK3y+&&ny zZqZEI`!PR)NsnXSo|N6kTuY)H96mT6zrUozkE?^j?$wXk0v9zICms}cSbvG%YHwN0 zAsg2cCx@gDsu$LCYBYMzR@x-K;6reeeq-;cbahe2wVfy88l3z&_t`r;$Xj@e2JY{F9I*k`=VzHR&<#CsCQ^E(#bjHYa5nEUs2=fU{v zRnEVEt@^+oE>I|Un`@WCg6R@}`mROax?a!q_p+$VnzgeUN?Z2`O8zlTkl(TLI)nOw z^uM)}G#;(~HE9L&iJ9}9?sf6hvF}*^eH9a1)%)P4jx2RKpLa}VBJavlK5TD@&Aonk z-?_$x_pJQ{3@@eT2oy8i(sJP|uVe`KCN`k>_t9QxrDy1_^@T%E;OE-p|fs{bhc!NONuYTk_Jb_UITx2}#`hk5pa z+=TeAtP__q$iCS(>$lSRe_FL)*?$|VyRKu}R{Fd0@ur=&xhi_D^CN=q zzO4!5u3`MM?rUM7$U$?qNG<{AxrO_)@}8|^dtNRj63G9L_k;Kc=?}~OIv$+nxBNeU z1DkCgqkUGyC-DcCAC@o*-sk?u|3LIZ)ZF*g2_l!7Hi;hiFZ9RbN^URje-n4XUe@;~ zqZ*bo3ih(Uf7!xtUdCmM*q-IVOg5ZK8P*m4>Z}z^E_W`s#FdDD&5u4>(7zdC!0cm?w!wpPop+ YuQ@XJD3|_WU@^hq>FVdQ&MBb@0A@1aQvd(} literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer.png b/assets/sprites/blocks/crafting/amalgam decomposer/amalgam-decomposer.png new file mode 100644 index 0000000000000000000000000000000000000000..58174fa9cd2241e4c025361e136fccc2cef862cf GIT binary patch literal 2142 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/production/feeder/filtrative-feeder.png b/assets/sprites/blocks/production/feeder/filtrative-feeder.png new file mode 100644 index 0000000000000000000000000000000000000000..6d06234112572df64ec4a8600d992a94f49efad9 GIT binary patch literal 4439 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/icon.png b/assets/sprites/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c414abd963e6bd2986ea4ac61854c1643e68ceda GIT binary patch literal 3223 zcmV;I3~2L-P)Px>QAtEWRCt`-T~TP2$rV1ib)objeK3f=B!<$YreKj;$wLK&Al)taU?~w=%J!j@ zH457<-VJuCC|2Z_wnEnw`cm2M!-k>{p+zczSQZwsm8BMxL`pV!QGz}+57L)nAJTL8 z{PUl4=A4=NZ!Y~H;QjA^XU=@znKLtI=Kme|&JTY05;Cy1x)!}>WOSrRd7g55jTjG- z?X4y&)hbT8-%{UpA=XaG_9Ow;R@cmAq>%RiDguWc4cJiwlIAgRWOSsj$wuVb*z$OD zZiS@?MVq%gD(L9hV~4( z3!fW%0|1~VfP|PZlzfCHf+m1QK7}NNME=IT^=O&94h`3?h3!Dwy8;0CL_qQ>EJ8>k zaO5LmUPRG(^-TZ(xYoX++A-6at$c3Zx?1^tDNr$JJ6Hh#Y$9;vhlq)RLd>7~6>Dq= z&iD|NJWYU*{3a0-pf(MC_T(7=RE0poPp$l>2>Ae2;t?D7)>RR#(8{oqFO^{lK^EX- zL|g|vd-4p1_6${snuC1uQyaE){f0UoG?M6XB{Lh~~Eog~82 z^&81+go(jX_4|!`>rwF^U0!6bOT=4H=>eP=SU6XKM+C2d5*eYlTf9F;eps)i7h+Ga zv`d@eu^~wNL5NTUu8UfXTNL+poL^ z0Oh@(vuoqtIy}0(D25+v8In`80?7CuYFe&pOe2wOtY z&Z)7Q*I1^R{Xjk<6am|#kw1U@=k9uj5L9BXIu6sT%oVFR%>AVc2Pc{16_mwuoQ}ixw{0x302dZPq%#DuUDqFZnTY!|yF? z07-;>=cZib@1HzSxlX+w_Zm24pNe>Nd9j!$(K5BEANQTb^QRZive#3`t(<8&qR6on zG^E7z49oI_5_+#TVX!(&46)G2#eNB{5EPpc<$6R3k7~LOBwun65BUIs0I?GTF%eQ4 z*$eV>>Ix?jp4G9o&n)(U91(U-jhS;H2uo;qaQEZxzqztK>lLdAo_1*7pL8}fMFfv$ zctFXg$mu!SZ@mtr0S_Q>A~cqcPJz@5DEU$^h}uV#wKuL0oHJVTI7z=52Qi06-JLdc;o(0Zrub z!z341_ruNA%I8!e0k(wD_6tIA_ei~<8-h3y-hSmZIC<=Z*-%OZ9gI_FLph|ChG&Ll zMeSS=jZJjR@8q!)E+MRtgb4@ZhnuT4kG7y>FPIn{Wq<$R?#JCf4bfyA9z~%dC$}CID_R{#h4fzt&Aty@1*Z&GLB70hljGHMMFw2un574Koe&<11i^Z zazh*aeK@_v@3c14y_c5vxqv1@5r8a0xVlUYMd9zHbwLUw5n||W%6rk22q}vqk2jYX zN2Gf9Paa4TwXasf0K5oNjwL0OJltHZ5M`O&qzFfC(~@yJ0OUtPH}0*&&Z#jro}D~) zf;B$8ruCNRiz{sID7GP!i#gIY#$j79E|rV=0!YRtls+I=nX1nQd%3 zoQfDHbipX~f=USDPDTJ!7gb&ntllP_!|69jvntDappk4S&XY^zUaTlNgGoVbObFL2 z6s~M&dAvi!jcOn`t*h|r{XGEC4DnVx++2-jBqs(( z8ygQU+?nhC`}~npU0ba6q5bWP9q9bDUHQ&D2;*_<+~;gl(d)rh!i76?$@>!k0PTyN z%IBy6x4!x$siG!ON(ArPB^(oIkFa3!y|-ZS-A^YbR0LBGu!umzLKE9}h+Gju(wi1x z^1Zj%>+OpjXkYBu1i*11hNkjGA-E9GWQf9(5xG5qL*J#NJwPFPF+NC1!(0)f0$9Bt z(JzA~hZ56OZolHfojI84%(Ab-x%<6esO41znEw7u_Yc5Fey=>SAE52rc}3_7fTT;G zIrK6FaPW9^uJ>!t$c1CWOlP(>%aTNB0mx+2sZ+0Dog!|>>X#EiN?YKYjq-6=d5X7B^r&U9O829fYM`P%`XD1Z{VY2Z3pJF3W2<97fymba}lZL@T^tK}dei zj#$5toC@4J<%FOa;;@~_c`Lk-gC@x2%EW6JXSFbtYg6d;_#O=UJ`5z^dsOo2@_IEJ z`gD06c8~jBn4vY0E>gI`YNj*mPVSYS`IOG`YFnpwnfq&FKyFWv8ZEw2&_IBN$ds3{ zYIWnnioT#wI;j!%2oI7{5lDzc%!NC1;u1Yogcx=m8m`nC6U|a5wKewv@4H|7411jw zVDI~%4zio4`OIe6!0Cmv-MdD+Ulqv@;UQhy=+}tx z#C}bLQoT*X(xrKGX1K)-x}LOhs>e$xC4#qXFRU+Xjq$hx0ATm{aFJ;!^=`>H`qZH` za2|bUIyyTFPhrGf{H>ACJqhV~$#>3!hyx2BJ?Or^9!2=vum5KHG4+1Sd*HY?aA^&V z9m)cz&P-@s^bJ(n)t z%GM6|VjU?0lf?Itxk>A@?Ml z)?m+r9#Y)*l;I^ECmku?U)vE&K~Ct2d07eaQ_Av!oB2InUV+EUTQ+Ir10)LIN!Dpw ziqiEa2-}Y5i%|p(l`YBGK-`Phhc!u*^mIQWd=MlBG19{@U)vJ~s0y)p`X)SxR7#U_ zT2hKmYpr_?6iA*VQtW#RI1$3>cxXE&FaLgQuvXrO3yX00_||S3H^z3Sp&>9uEoDZv zeE?1b>3k7wj5f!Qy@SH@jtaat=Iz?aK+b_U0T73ePx%C(_~z%oQ2Ffn&kO+KM;td# z-xSHm?YvKZ_J^36HN-^F1Q>kxgz1zB3ZapY_~Ljy9o~olm>*fXG~Z21SyJ8MqA%P_ zEiD27Kdy0!w3z)LF4*366p9cPAS9mxg^>0Gr1`Pd7%GCane7o`?@zuB005JJ{ZH+? z-w#&p`^xQ2HH+DV2sHs7FR#>8(nOGux->^vw@5WHkbDXhA|xNdg$abE7kfph2tcP$ z)DX*jmO>hEC@hV!ion^Y5t;fM31M42B6JsGp+WdLg?!E^3hUM<-bYuK95~`)cGKS+ zK0ej8I|ZSmSj&36ys{;LWNa$=B|*i~gpfptwSn5~Jr^4**TP53OR`oWg%&=%M_|IT zJtAoLa|G=kAMXB@Kum;29#gdtTtWm-9Ov$}j8j%2w6e6`@LwPfclLdht{wmY002ov JPDHLkV1oX_5@G-V literal 0 HcmV?d00001 diff --git a/assets/sprites/liquids/blood.png b/assets/sprites/liquids/blood.png new file mode 100644 index 0000000000000000000000000000000000000000..db035b716b79431e4923dcb403c65c1a6af44650 GIT binary patch literal 517 zcmV+g0{Z=lP)zw28l>%G9JIrzndL~fBuXu`rq3-G5^W#Ts*$geksFAI2A=u z3`hvTM%FTmh z*g4}-M{gn4>ubiv!A9Q|h|TBMNSDAGtj>L=Hq8)w%_U>H)UM zEyBg8TLL{wI#LbOGMe2bh#&+cfMQq{C1o=(%EGWqqh+@XjJ5|5vq0SvoB|=j2)00!#?u*_(M8u2-Jfp42*gI7ZbI$sSUX8!_#WXs@uC-$bPs^Wq28uS0NL9S zbXNYcSn*?%7T=3z_3XX$i=(D!48Uw+(1`Ukr+XJbbm{y84vf5=h*gRH00000NkvXX Hu0mjfRDR&C literal 0 HcmV?d00001 diff --git a/assets/sprites/liquids/ichor.png b/assets/sprites/liquids/ichor.png new file mode 100644 index 0000000000000000000000000000000000000000..f67019a05cd1880e31e848d649bc5b8dab271fe7 GIT binary patch literal 444 zcmV;t0YmPx$c1c7*R9J=OS33@ZKoDJxmABA@j(d=B4hjov4`EGV!8u5{hn)%B!pcMoGn-|Y z-@o3qxO-1&nqk5gm@>U0rILq$sCj zlp}Bwynq;TO^8JV2vC!-C}m5rIEvh%u!MC$biisSCeV=OPA)`68Ar~&+wB|mM2wCh zXJ5>*qP~G=aOrk+F3aEVyaS&iXU6T7FebK^s))sT0bycLBCJBXmah>MCZuq?!EUU{ zh)Ll)E*xwf$a1#|t?XL5)LLE9=8%_B42Hg%2;>r)0vq?RFi8tq$+^~SQA0AP7r=d? zc+Z0icvl)RB!3BTNLh0L01FZT01FZU(%pXi0004JNkly0(r0(+&iaY3nGaY@R|>Dg6bZ)@2*ut8UW!MCNfPXj8#~`Yb_BM z5goErUrUZIpnqg7N=ZE61{L545_aJM54fWhwmlHQDQDGqn)I3?lWjtcfOmAE2?0oV zc%Ft|s9i+D;tlT@7Jdn2;2yCmF=`J`1saLkn0giHx%@miBEeNa7gC}C0*GKOBT6K~ z3tLsRV63DT*?ElU0YsvaTrxSX+t6E$&>|Jwn}3%0FBC>5cAB;tH2wep002ovPDHLk FV1jeWt%?8u delta 335 zcmV-V0kHnH1L^{hB!2;OQb$4nuFf3k0003bNkl2czbw*cQAYJm$G`5KEl{Q#)o4 zq{R?w0U~3zYLe_AB4hSBS$@}S0AgO+g5-rK^Ad>7;?#~*I)*hE%OouBJ9>3px1d}4 zrdxWkuLuMT5J(!=fPervLk*%jfFubbtb%k4HUPP7JXdrbX0;tj1xibbifw@e;f2$_ htC}s>qHk9e)(f*Bbu9a>DNz6b002ovPDHLkV1f*IkX8Ty diff --git a/assets/sprites/liquids/mercury.png b/assets/sprites/liquids/mercury.png new file mode 100644 index 0000000000000000000000000000000000000000..dfd43bfab8f2ec2555a6e3c0bdd41ad1df260928 GIT binary patch literal 352 zcmV-m0iXVfP)Px$8c9S!R9J=WmN5>(FbqXMh-C=Eo$ok^ zr5@8J@5OQI0(1O17Bv=WFV~Ou>~ubwjF5l@W<`nwEb#uY0|4A_4@zQH3!K7pB55pH zc+)gATpO1*KndjFxzOY&ffW9FKO-Ihrdcorq@8OLxwF=?K-WMGi9XUSr~;+uu1RR) zu4}kiZ$lEr0xY;BOaTczE+)@zrBG{tfoo%70Z)^ON=yW->W`*7E6~HOFPrfu201(&OMsQ|!d(J6i4yo60PqEmJctvHR{{Y50000KOD-!UA*s;Mnk-_am_73A}zXtQy@2%Q6BUr8}J==1I>tZSE8Px$a!Eu%R9J=0mpyXAFc5{GGr0iANab;pA{WRV=&3@R(iJ6bsM7lmTp$GvL&Y&T z0yGgLuU7k~%#b%jfh6mFTCLU=@L+Y`2hQ8oRU7m2`E8!pG|*xi1rZ0Fw<`b$nOi}s z9g_Kax38LgeZ0FMB!I$PGLAy904?TThyuW4PEF`I3&ayUB4D1{@^(wqW&m{c-mpt> zCIFA3a8&obXk9(G>NH2*H%$isz~*@B;EBN7VsZa*vH&M@02qh<3INYm^A@dl`|2Fw z9QZ4R04&>J%^}kk)F6H?7ZJjuY6SAk<&0oR%q9S;8iYk0py?RWvmJqu%vAtR9E7w* znr3gq+NW2f?561D#V09`K=C?G6>7PB4MWha%OP@e5g-B~y#=S~P?$rj12lY%CAk}i z9-HH7*7)#J9Ik|3(Um8eBJjI+opz7lG9JpkKm}kD$90|4ZbxiqItkQ#9QyokQ8TzK i*W`Yn1`#p;7rFr#A*of))l{_r0000 meldFloors = Seq.with(meldSwampland, meldTrenchland, meldHadaland, + meldCrystalScattered, + sandMeld, redsandMeld, + slateMeld, bedrockMeld); + + meldFloors.each(m -> m.liquidDrop = MeldLiquids.meld); } } diff --git a/src/meld/content/MeldLiquids.java b/src/meld/content/MeldLiquids.java index b7b3b85..621ee4a 100644 --- a/src/meld/content/MeldLiquids.java +++ b/src/meld/content/MeldLiquids.java @@ -6,6 +6,8 @@ import arc.struct.Seq; import meld.fluid.Aspect; import meld.fluid.AspectGroup; +import mindustry.entities.effect.ParticleEffect; +import mindustry.type.CellLiquid; import mindustry.type.Liquid; import static meld.fluid.AspectGroup.*; @@ -16,6 +18,9 @@ public class MeldLiquids { pollutantMixture, boundAspect, thunderingAether, stormingAspect; + public static CellLiquid + nectar, mercury, blood, ooze, ichor; + public static ObjectFloatMap outletEfficiencies = new ObjectFloatMap<>(); public static ObjectFloatMap outletDensities = new ObjectFloatMap<>(); @@ -64,6 +69,7 @@ public static void load(){ color = Color.valueOf("d7a9ef"); temperature = 0.6f; }}; + meld = new Aspect("meld"){{ gas = true; color = Color.valueOf("e4aad5"); @@ -76,6 +82,110 @@ public static void load(){ temperature = 0.6f; }}; + nectar = new CellLiquid("nectar"){{ + viscosity = 0.95f; + temperature = 0.15f; + heatCapacity = 2; + + spreadTarget = MeldLiquids.mercury; + capPuddles = false; + + maxSpread = 0.5f; + spreadConversion = 0.85f; + spreadDamage = 0; + removeScaling = 0.5f; + + effect = MeldStatusEffects.refreshed; + + color = Color.valueOf("55391b"); + colorFrom = Color.valueOf("7d642c");; + colorTo = Color.valueOf("b89f47"); + + }}; + + mercury = new CellLiquid("mercury"){{ + temperature = 0.2f; + heatCapacity = 1; + + cells = 2; + + spreadTarget = MeldLiquids.ooze; + capPuddles = false; + + maxSpread = 0.00025f; + spreadConversion = 0; + spreadDamage = 0; + removeScaling = 0; + + effect = MeldStatusEffects.slippery; + + color = Color.valueOf("89828c"); + colorFrom = Color.valueOf("454545"); + colorTo = Color.valueOf("89828c"); + + moveThroughBlocks = false; + incinerable = false; + + }}; + + blood = new CellLiquid("blood"){{ + explosiveness = 0.42f; + viscosity = 1.01f; + temperature = 153.885f; + heatCapacity = 5; + + effect = MeldStatusEffects.infested; + + capPuddles = false; + + maxSpread = 0.1f; + spreadConversion = 0.35f; + spreadDamage = 0.45f; + removeScaling = 1; + + spreadTarget = nectar; + + moveThroughBlocks = true; + incinerable = false; + + }}; + + ooze = new CellLiquid("ooze"){{ + explosiveness = 0.15f; + flammability = 0.7f; + temperature = 0; + + spreadTarget = blood; + + capPuddles = false; + + maxSpread = 0.12f; + spreadConversion = 1; + spreadDamage = 5; + removeScaling = 1; + + effect = MeldStatusEffects.oozed; + + color = Color.valueOf("43201e"); + colorFrom = Color.valueOf("663931"); + colorTo = Color.valueOf("45283c"); + + moveThroughBlocks = true; + incinerable = false; + + }}; + + ichor = new CellLiquid("ichor"){{ + gas = false; + + color = Color.valueOf("948a00"); + viscosity = 0.45f; + temperature = 1.25f; + heatCapacity = 0.85f; + + spreadTarget = null; + }}; + put(aether, AspectGroup.aether, new AspectStats(1, 1)); put(pollutantMixture, AspectGroup.aether, new AspectStats(0.5f, 0.5f)); put(thunderingAether, AspectGroup.aether, new AspectStats(2, 0.5f)); diff --git a/src/meld/content/MeldMappings.java b/src/meld/content/MeldMappings.java index d8a6264..7a147d2 100644 --- a/src/meld/content/MeldMappings.java +++ b/src/meld/content/MeldMappings.java @@ -5,8 +5,11 @@ import mindustry.type.ItemStack; import static meld.content.MeldEnvironment.*; +import static meld.content.MeldLiquids.*; + import static mindustry.type.ItemStack.with; +//Handles mappings for content which depend on eachother so the main classes are not filled with hjbujgjmhbn bhjg public class MeldMappings { public static void load(){ GrindingQuary.grinderMap.putAll( @@ -21,5 +24,12 @@ likestone, new GrinderEntry(120, likesalt, with(MeldItems.likestoneSediments, 10 meldCrystalFloor, new GrinderEntry(720, meldCrystalScattered, with(MeldItems.meldShard, 10)) ); + + + nectar.canStayOn.addAll(mercury, ichor, ooze); + mercury.canStayOn.addAll(mercury, ichor, ooze, blood); + blood.canStayOn.addAll(nectar, ichor, ooze); + ooze.canStayOn.addAll(meld, nectar, ichor, ooze); + ichor.canStayOn.addAll(nectar, ichor); } } diff --git a/src/meld/content/MeldStatusEffects.java b/src/meld/content/MeldStatusEffects.java index f253a3c..16185f0 100644 --- a/src/meld/content/MeldStatusEffects.java +++ b/src/meld/content/MeldStatusEffects.java @@ -8,9 +8,17 @@ import mindustry.type.StatusEffect; public class MeldStatusEffects { - public static StatusEffect amplified, rally, anchored, aspectBurn, sentry, spurting, newborn, interference, drenched, stuck, stunned; + public static StatusEffect interference, drenched, stuck, stunned; public static StatusEffect lacerated, impaled; - public static StatusEffect rush; + + //Player effects + public static StatusEffect rally, anchored, aspectBurn; + + //Meld effects + public static StatusEffect amplified, sentry, spurting, newborn, rush; + + //Swamp effects + public static StatusEffect refreshed, slippery, infested, oozed; public static StatusEffect boosting, boostingIframes; @@ -243,5 +251,28 @@ public void update(Unit unit, StatusEntry entry) { speedMultiplier = 0.45f; buildSpeedMultiplier = 0.5f; }}; + + //Swamp effects + + refreshed = new StatusEffect("refreshed"){{ + damage = -1; + reloadMultiplier = 2; + }}; + + slippery = new StatusEffect("slippery"){{ + speedMultiplier = 1.25f; + dragMultiplier = 0.15f; + }}; + + infested = new StatusEffect("infested"){{ + damage = 0.5f; + healthMultiplier = 0.5f; + reloadMultiplier = 2; + }}; + + oozed = new StatusEffect("oozed"){{ + speedMultiplier = 0.75f; + dragMultiplier = 3; + }}; } } diff --git a/src/meld/content/MeldUnits.java b/src/meld/content/MeldUnits.java index 19897f4..5a05139 100644 --- a/src/meld/content/MeldUnits.java +++ b/src/meld/content/MeldUnits.java @@ -270,8 +270,8 @@ public static void load(){ range = 100; - lightRadius = IR; - lightOpacity = 1; + lightRadius = IR/2; + lightOpacity = 0.5f; buildSpeed = 1; mineTier = 2; mineSpeed = 8; diff --git a/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java index 3ea262c..4f0a889 100644 --- a/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java +++ b/src/meld/entities/unit/abilities/FabricatorBatteryAbility.java @@ -19,10 +19,18 @@ import mindustry.entities.abilities.Ability; import mindustry.gen.Sounds; import mindustry.gen.Unit; +import mindustry.graphics.Drawf; +import mindustry.graphics.Layer; import mindustry.graphics.Pal; public class FabricatorBatteryAbility extends Ability { + public float[] lightRadai = new float[]{ + 0, 80, 120, 240, 320 + }; + + public float lightRadius = lightRadai[0]; + public Interp chargeInterp = Interp.pow2; public float lingerTime = 0; public float visualsWarmup = 0; @@ -51,12 +59,15 @@ public void update(Unit unit) { boolean active = unit.activelyBuilding(); boolean visualActive = unit.vel.len() > 1f && !active && lingerTime <= 0; + lightRadius = Mathf.lerp(lightRadius, lightRadai[Mathf.clamp(stage, 0, lightRadai.length)], 0.02f); if(!visualActive && visualsWarmup < 0.1f) stageMax = stage; visualsWarmup = Mathf.slerpDelta(visualsWarmup, visualActive ? 0 : 1, 0.08f); lingerTime -= Time.delta; + //5 stages int toStage = Mathf.floor(charge/chargeCap * 4); + if(toStage != stage){ if(toStage > stageMax){ Fx.coreExplosion.at(unit.x, unit.y); @@ -121,7 +132,8 @@ public int coils() { if(charge >= chargeCap){ unit.healthMultiplier *= 2; - unit.speedMultiplier *= 1.5f; + unit.speedMultiplier *= 1.15f; + unit.reloadMultiplier *= 4/3f; } @@ -166,5 +178,9 @@ public void draw(Unit unit) { Draw.color(); Draw.alpha(visualsWarmup); Draw.rect(MeldRegions.chargeRegions[stage], dx - x * 2, dy); + + Vars.renderer.lights.add(() -> { + Fill.light(unit.x, unit.y, 4 + (int) lightRadius/4, lightRadius, Tmp.c1.set(unit.type.lightColor).a(1), Tmp.c2.set(unit.type.lightColor).a(0)); + }); } } diff --git a/src/meld/fluid/Aspect.java b/src/meld/fluid/Aspect.java index 5204f70..70c6674 100644 --- a/src/meld/fluid/Aspect.java +++ b/src/meld/fluid/Aspect.java @@ -10,11 +10,21 @@ import mindustry.type.Liquid; public class Aspect extends Liquid { + + public boolean setDefaults = true; + public float lightOpacity = 0.5f; + public Aspect(String name) { super(name, Color.white); databaseCategory = "aspect"; } + @Override + public void init() { + super.init(); + if(lightColor.equals(Color.clear) && setDefaults) lightColor = new Color(color).a(lightOpacity); + } + @Override public void setStats() { super.setStats(); diff --git a/src/meld/graphics/Draww.java b/src/meld/graphics/Draww.java index 9863a3d..6bdb052 100644 --- a/src/meld/graphics/Draww.java +++ b/src/meld/graphics/Draww.java @@ -14,9 +14,12 @@ import meld.SettingKeys; import mindustry.Vars; import mindustry.content.Blocks; +import mindustry.graphics.Layer; import mindustry.graphics.Pal; import mindustry.world.Block; +import static meld.ui.MeldSettings.connectedSonar; + public class Draww { public static void drawSonar(float x, float y, float radius, float thickness){ @@ -24,15 +27,23 @@ public static void drawSonar(float x, float y, float radius, float thickness){ } public static void drawSonar(float x, float y, float radius, float thickness, float layer, Color color){ - float z = Draw.z(); - Draw.z(layer); + if(connectedSonar){ + float z = Draw.z(); + Draw.z(layer); - Draw.color(color); - Fill.light(x, y, (int) (radius/4) + 12, radius + thickness/2, Tmp.c1.set(color).a(0), Tmp.c1.a(1)); + Draw.color(color); + Fill.light(x, y, (int) (radius/4) + 12, radius + thickness/2, Tmp.c1.set(color).a(0), Tmp.c1.a(1)); - Draw.z(layer + 0.01f); - Fill.light(x, y, (int) (radius/4) + 12, radius - thickness/2, Tmp.c1.set(Color.red), Tmp.c1); - Draw.z(z); + Draw.z(layer + 0.01f); + Fill.light(x, y, (int) (radius/4) + 12, radius - thickness/2, Tmp.c1.set(Color.red), Tmp.c1); + Draw.z(z); + } + else { + Draw.color(color); + Draw.z(layer); + Lines.stroke(thickness); + Lines.circle(x, y, radius); + } } public static Vec2 tv1 = new Vec2(), tv2 = new Vec2(), tv3 = new Vec2(); diff --git a/src/meld/graphics/MeldLightRenderer.java b/src/meld/graphics/MeldLightRenderer.java index 582eba6..9d8667e 100644 --- a/src/meld/graphics/MeldLightRenderer.java +++ b/src/meld/graphics/MeldLightRenderer.java @@ -10,6 +10,7 @@ import arc.struct.Seq; import arc.util.Log; import arc.util.Tmp; +import meld.ui.MeldSettings; import mindustry.Vars; import mindustry.content.Blocks; import mindustry.graphics.LightRenderer; @@ -21,8 +22,6 @@ public class MeldLightRenderer extends LightRenderer { - public boolean invertAmbient = false; - public MeldLightRenderer(){ super(); thingo = this; @@ -268,7 +267,8 @@ public void draw2(){ - if(invertAmbient) MeldShaders.light.ambient.set(Tmp.c1.set(Color.white)).sub(state.rules.ambientLight).a(1 - state.rules.ambientLight.a); + if(MeldSettings.invertAmbient) + MeldShaders.light.ambient.set(Tmp.c1.set(Color.white)).sub(Tmp.c2.set(state.rules.ambientLight).mul(state.rules.ambientLight.a)); else MeldShaders.light.ambient.set(state.rules.ambientLight); MeldShaders.light.lights = lightTex; diff --git a/src/meld/graphics/MeldShaders.java b/src/meld/graphics/MeldShaders.java index 65ed811..976c189 100644 --- a/src/meld/graphics/MeldShaders.java +++ b/src/meld/graphics/MeldShaders.java @@ -14,6 +14,7 @@ import arc.util.Time; import meld.Meld; import meld.SettingKeys; +import meld.ui.MeldSettings; import mindustry.Vars; import mindustry.game.EventType; import mindustry.graphics.Layer; @@ -45,7 +46,7 @@ public static void load(){ Events.run(EventType.Trigger.draw, () -> { sonarBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); - if(Vars.state.rules.lighting && Core.settings.getBool(SettingKeys.lighting)){ + if(Vars.state.rules.lighting && MeldSettings.replaceLighting){ lightBuffer.resize(Core.graphics.getWidth(), Core.graphics.getHeight()); Draw.draw(Layer.background, () -> { lightBuffer.begin(); diff --git a/src/meld/ui/MeldSettings.java b/src/meld/ui/MeldSettings.java new file mode 100644 index 0000000..4bd2e9d --- /dev/null +++ b/src/meld/ui/MeldSettings.java @@ -0,0 +1,73 @@ +package meld.ui; + +import arc.Core; +import meld.Meld; +import meld.SettingKeys; +import mindustry.Vars; + +public class MeldSettings { + public static boolean replaceLighting, invertAmbient, connectedSonar; + public static float lightScale = 1; + + public static void loadSettings(){ + + replaceLighting = Core.settings.getBool(SettingKeys.lighting, true); + invertAmbient = Core.settings.getBool(SettingKeys.invertAmbient, false); + connectedSonar = Core.settings.getBool(SettingKeys.connectedSonar, true); + lightScale = Core.settings.getFloat(SettingKeys.unitLightScale, 1); + + Vars.ui.settings.addCategory(Core.bundle.get("settings.meld-title"), Meld.prefix("icon"), t -> { + t.checkPref(Core.bundle.get(SettingKeys.lighting), true, b -> { + replaceLighting = b; + }); + t.checkPref(Core.bundle.get(SettingKeys.invertAmbient), false, b -> { + invertAmbient = b; + }); + + t.checkPref(Core.bundle.get(SettingKeys.connectedSonar), true, b -> { + connectedSonar = b; + }); + + t.sliderPref(Core.bundle.get(SettingKeys.unitLightScale), 100, 1, 200, f -> { + float prevScale = lightScale; + lightScale = f/100f; + + float multi = lightScale/prevScale; + Vars.content.units().each(u -> { + u.lightRadius *= multi; + }); + + return f + "%"; + }); + }); + + /* + photosensitiveMode = Core.settings.getBool("settings.frostscape-flashing-lights-safety", false); + heatOverlay.enabled = Core.settings.getBool("settings.frostscape-heat-overlay", false); + simplifiedLightning = Core.settings.getBool("settings.frostscape-simple-lightning"); + parallax = Core.settings.getInt("settings.frostscape-parallax"); + + heatOverlay.enabled = Core.settings.getBool("settings.frostscape-heat-overlay", false); + ui.settings.addCategory(Core.bundle.get("settings.frostscape-title"), NAME + "-hunter", t -> { + t.sliderPref(Core.bundle.get("settings.frostscape-parallax"), 100, 1, 100, 1, s -> { + parallax = s/100; + return s + "%"; + }); + t.sliderPref(Core.bundle.get("settings.frostscape-wind-visual-force"), 1, 0, 8, 1, s -> s * 100 + "%"); + t.checkPref(Core.bundle.get("settings.frostscape-flashing-lights-safety"), false, b -> { + photosensitiveMode = b; + }); + t.checkPref(Core.bundle.get("settings.frostscape-heat-overlay"), false, b -> { + heatOverlay.enabled = b; + }); + t.checkPref(Core.bundle.get("settings.frostscape-simple-lightning"), false, b -> { + simplifiedLightning = b; + }); + t.row(); + t.add(Core.bundle.get("settings.frostscape.flashingwarning")).wrap().left().growX().padTop(3); + }); + + */ + } + +} diff --git a/src/meld/world/blocks/defense/TreeWall.java b/src/meld/world/blocks/defense/TreeWall.java index dff4601..c4e5f97 100644 --- a/src/meld/world/blocks/defense/TreeWall.java +++ b/src/meld/world/blocks/defense/TreeWall.java @@ -26,8 +26,6 @@ public int minimapColor(Tile tile) { public class TreeBuild extends WallBuild{ - - @Override public void unitOn(Unit unit) { super.unitOn(unit); diff --git a/src/meld/world/blocks/env/ModdedOreBlock.java b/src/meld/world/blocks/env/ModdedOreBlock.java new file mode 100644 index 0000000..cddba1a --- /dev/null +++ b/src/meld/world/blocks/env/ModdedOreBlock.java @@ -0,0 +1,27 @@ +package meld.world.blocks.env; + +import arc.graphics.Color; +import mindustry.type.Item; +import mindustry.world.blocks.environment.OreBlock; + +public class ModdedOreBlock extends OreBlock { + + public boolean setDefaults = true; + + public ModdedOreBlock(String name, Item ore) { + super(name, ore); + setDefaults = false; + } + + @Override + public void setup(Item ore) { + if(!setDefaults){ + Color mapCol = new Color(mapColor); + super.setup(ore); + mapColor = mapCol; + + return; + } + super.setup(ore); + } +} From 68583cb7a84f2aadf86b3871f5e4377773483eec Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Sun, 26 Apr 2026 17:49:48 +1000 Subject: [PATCH 10/16] Tweak the starting maps, adjust quarry's descriptionbjggh --- assets/bundles/bundle.properties | 2 +- assets/maps/badlands-testmap-1.msav | Bin 26582 -> 26809 bytes assets/maps/badlands-testmap-2.msav | Bin 0 -> 26835 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 assets/maps/badlands-testmap-2.msav diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index 805cd33..84f3395 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -289,7 +289,7 @@ block.meld-elemental-blaster.name = Elemental Blaster block.meld-elemental-blaster.description = Blasts deposits for items indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nCan be boosted with [#ea9ad6]Meld[] to double harvesting speed. block.meld-excavation-quarry.name = Excavation Quarry -block.meld-excavation-quarry.description = "Tears up the land it's placed on. Requires [#cbdbfc]Aspect[] to run.\n\nPipe in [accent]explosives[], [accent]stronger fuels[], [accent]grinding particulate[], or [accent]solvents[], to rip up the ground faster, or increase its yield." +block.meld-excavation-quarry.description = Rips up the land it's placed on, and harvests from ore deposits indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nPipe in [accent]explosives[], [accent]stronger fuels[], [accent]grinding particulate[], or [accent]solvents[], to rip up the ground faster, or increase its yield. block.meld-pneumatic-pulsar.name = Pneumatic Pulsar block.meld-pneumatic-pulsar.description = Blasts a single deposit for items indefinitely while maintained. Requires [#cb8650]Aether[] to run.\n\n[red]Explosions damage everything around them, high maintenance![] diff --git a/assets/maps/badlands-testmap-1.msav b/assets/maps/badlands-testmap-1.msav index 5620cf627a2573c153fdce3dbb57bfc90106c902..beb6c632c513be399165e2946cf83f511b810508 100644 GIT binary patch literal 26809 zcmZ^~b8sb0&@UX@wrxAv*tTsuC${Yq+qP}nIkC0zZj#OJ_q_Gh`_H{~tEOgt-8I!+ zUENjFJ<|ioKOfM`Ba%rYyTHfy-3%;oO`AXji)Co$xP=1X442K=@vI=HDDgxK7ieK? zWhU0o-w1(W@!vh<=qd9`_*-I$ zBE{0!L?+iK#31?ba(3-8QT*s0cxz#|9tXxxSs!F1>nENDy|A(OSZNF%c4u#=t2=pl z`F`BA(!U<9HsaSgIXbTMG&MMF^6)n1bb~_jE}Xf%4HDm-T}p~xKM}L@?t{8sO6frk zG{2GsggFCy1_yh6y?os;t9A|RT>5P%y#)X|w;*R5*L62+@#iFJ98Hog|V71}0{8J~$F zAdX!H@6UnF=@0R4J#=dk{@Piz{Lc*@VRYC$;^M*@jf@e$!Tmnx&Tzj|F&bcx;rq4`a;nXtIOT}66DbpZ2DYB=uinr z;rfO8Nn>IHlj{Q;GWIg`r?rR+#eZwaaPaTBTGtw^std*L7V~DjAneSdQHTpIzv6CS z@9z!s`_F6>=FO(y9jM~ng`ie1z;@5UPn4rN>_7I{|LTv6y#BO>2J<{EasSaU=nTH6 z>gfG;klDCv&L!4qgLLq=TtI2qY4H;5R0iArpT&7<^M1RR*r3be*4q)3WYl7zbGMBx z=sod&LoGq?jU=NE3mtfk|3&xP|396p8673ee_uEQ>-fKyq|Apz^ zTmM5e?X>)->OTeCg73M+{tHP1)>Fo97ES05Y%XXXOqf1QnEp(d!AzLpOqkJ3nDI=Q z$xN8(OlwR@6Sg?k92XqcoEMzdTo+u{+$S9b>;?^s`SNXOLmM&2_Tz5c<~;;YhKayN zX+s^#&N}qN4Q=4D9gg_`!INN+cr3U11i_PeBCthzU)R9msZ1}1++jSG+kA%L$ubexDs8Ao*;$WnvKhnfaLY8o zh4^Hh2yBzy*Q0!|M-SeN5px(X;Wl3(c(Qd0&jeo(chsj8X+SUAjL~oyujM}3AYgY$ z?Cy}h)8Df!5N|`9+KjPs7;ob?-z9K!O5E<04ltmcY(T%=C^-va*tJ z`J@vjdJFChfGdw08JlHE8r9mw{* zJEaWKEJ=og64Y>vRRLx4`?{8Y))Ma+kgkv|Z+~qa|Ezz0&ZTP*$Z;4~fI8U?pWS4g^aDyIQpQCWD#emxN+K4wR9&S+{l!(zqV=x2 z_Y*GVCJ(1_g9*rCy#TEDS-vZbKPeCmWpjkfD8ksZvkgSN&_Bz;U8=%WKHd&8$ zZC$^MxxMZi&RzEev7hNqk#6NX_p2hzL+I#^T+*jp z6tF&@X@W6FeKqoE&FN3&V%ul;3)k-V$gy`TEjwd(^yzK^C4 zd*6F@?A9L+bWB@Wq@%>b@n5HG@&1{lN?8C--o)!CeQz zmjbLDvQ%D`0#7 z+B++0m@ORrYPkH~(iM&Y?cs{Ypkbnng|AEjWZ4AXzHRqgP{tC(WIEP&vp0t^-!E0jk>(*KoB$jPN+BNwk6%G@yO?cU8o+-S*hf-IkcgZ-BaP zvN!(Qno$n{oV4+5B5PaCl4WRD`x5VVWg!v_8DPNpWX^S*$f% z^7$GHL4~&mQm&dyzk~Eb4Z#obv=t78@yP}|I&<9qNW#wr!<8yeUHbDJ{0e4If)kPK|Q0QqXQg!k+`^4bv zJ?lYse^jqQ)OaC2yC?oNtMc(o8OAd-gQXLvvT9EjSnw{gsy^&VKCz-dD!vA}y!)UK z#gD!d@nm(HN$ncCT&7Qwvsr#Ulm=s>wfMskHWzglIC`3Ofg8jdB6ils<6T`)fkx0d zI6aI}ISUS46)!1fh%vj;Q5v@#r!$=`aD^o2MZyOmOLmPE^}AO>e%zvlpln<59>I?$ zds06fuwo7(wR)M_;D4g*S7boIWsH_!qbb;;Z<9w}@hDXCLH$@XDBHW{73E2SiI#~6 z{T-Bn!?E6!_MQvKIqAmz4JAoE@z1|u1d@Df(X9*=Y6qG1lP5VzHS-`E6sEDsS?|J* zX1p6}B{07Zj;g1(JqG*(hBOy=vJ(QDP%zlNC*t^e0Au#S6g}(Svm^eMD~zh4b%lbK z@6poIw>K}k$Sw<$3OTV$*iIO|AQfWoW6~3-+rzQy52?tCBrx))*`Ps$Y{$6WqCb#Q z|Mk&dft@yi%+){ZVM+x5WA6YQsG=I=#E6bl7!lofJoAND8A zamRJUjWIvv=#8M$g1Q-RDN1 z1$mJ6pIsz*a0>8!JqUY7hTvOZ{=LFvrvlLPikP05ePrD|nx>&n+SUh7~0B?Vg4K77B_+UUj$rkMvnO7!Hu3yFn( zce$d(p&#J|!ZxEE@vsxK4xCW%h?H%`w%4+2$BO#;p8J_xU)K~G3spT|Lfi>^8f0BJ z0G#+xcG6w+j_~wWfQfjQNT|$H8ei40+zcBgsuwhs*a%|i^4;B6qcQb-_wk~qH4cS} zdD(*$pW{&YFMAbZoWVd{g3=3iB(ytQg}^r)MO;>{9a<9<4^&<(=`#{ibjaGz29So> zXhmAts!JDBlZjrpURJK}{WPbMT&I0Z!f>eyuSGM;yEq_A;G_#^Ud?d-VTMrdO~<7; zOS4=WuZ-{SMYnUuTi&xY8#d)WC}kZD$u9o2qVV2A!RUu7>1*e*>}1iZ)?Rszr~G*7b;A8}I$kBloFosYt2`ZSD8%+-8M%MpM%|nKjJ&ozYb-cjurtvbY86ZTJPtwtOv_P%eZ6;jL)s+h=Xra58M7 z^S^j#)y3iJhJ#U&<&CuBypRKkN`v9)GQ_Z!<)2Kt3N+n+mvdtx_acbN3TUzmrj-V| z!LW=(O~#D>Vl(ecxRkkRO>3EGxo_O&te2)LaH+p!$hVz`*g6otEhKiN$G$JnGzNcz z;CLY}geMhS_F_~7!=amH5Xm~SL`3P}K9f>z8k8>|AYzKqNZNC_0}y49V=^#`|AhTw zex@-T9RQFrjfQCjJ>T1q2K?Q*ToU@SjoZ`~p1%dZ*xKC6=H-=`C$;HB61Z{f)bz%L z70wU4t;-V~S+FWO^8Z#CfWE^M&*k^TM7t}qJjT1~a9zJ{FC-t`HqMNkgs(?Zx5@Ex zNomK){f35qg~q_v=JNGe&)g{(JrsWgE>NC zv4?Gd5yLp&kD{C;zGJ5Bj@;afqhhJK12!~Qpd~H#_{Oc~FNW#}JT|aq$T{5@?e21C z$-6_px=AbVI8WGl-wdlMvRPU2DRQrb%e3yp)A4 z?5FQgu-^K^*ng<4^cScC;Vtzk5OVSTBPj$Qt%sQvKZRiJ%e)~QbK&*DOs_<*)|CK- z{z`d>p^uLtE+rjoFZRkSZbNG#FoK7Xu9hJ)^u}n8BE68nrqRwWHGg!rE;>!SMrG0@ z+Wm}S&OlSc!IX9|4mc99FFk+ow#h_o3ZU{%op%v&EtKb2+{Y?U_l9Dg_32~v7T4OC z{9-1lo3$1)qJz%|jnom%) zK_j_>y1W}8s*x*<92X>SNcbD&m6iKFT_}~R`-0;RjlN=dwQ=>Wx_1KNt-3?c<*-PwWbagG$~ zb~l+*rn91jGuWB?=WJ1imfgO0hY2c2Q?{Ran%h(fx+43$3@@->yyq%Q5Ihnm1#t~z78jUBfJeeK)uAuBedQd zL|+5LWt2$VZUtn8salvvHPUY_g-J{PoCfin7nLAB4`(E$-8%)?mmqCoVk(dwYO~Dn zvYfJiOmzaBzd;-zFhb5anG@XPZO-?^DaU7}0NviTj}}gEmefqsx&6 z0PqQFuM*o%<4g^Era4p>;42G9#q|aM6m@oBR=_4@Aw(L8sQ-X&18M#N8Sb-`0KNR zrfAdgBD%&#Zbr@=Q*Mq2D!oTK>^%akwO@BaNMo1|k(iu=!71_Pm>4(m*3mpbSB(d= z#-8a@va!`3q4NjWnf_deZAW-3ovHxS<%o58?Y|36@2L>_K7qI#0(&$zPJAZ`YYroQ z4l5lbHq06b=BujWWhmz&W>sLU<^;qaSBwqxCKxdLLzgG^Q!~;u`aW@PThoS2$RZT) zPdp>rOBlsEYFQWkFAzYN?#v$^lM}~NJXYQHcfu#PDJQok74HjeJE>_LIo+37O5*~i z^?H+L9tN(`ysqjQ@XoK44F9u40<`Snuw|Rs9z^+T~nD{%l_(ymvh_4 zP|KADl=D5&o|Ylos9haEwISpwMPzOcGj|3ihOixkJgm^~cDbbT>hmFSQ!*6MVpgyBBuiE zMQ&YaB0jfWgJuuI?Cv9*feVh>Ubq%F%_5G^ec?&;Zfh`fS_X{V?AlWNkjCYen(45l z$fKqYG7;?Sl#$62T@S}Zny1{<4{RLlSwUjNdsz(2LYmXuTKB18V(W3XvyCOwST*re z8QtDUB2^ATT+j}>iaQ-^Kn$M}u$0ac6!c*n888GvsFB>=B%If_Z-QR@r_a>?d~(ZO z)%sO8{}J7hmBUHvZIt_g>6gRyucROb2z=UQ7tZyWI znX3^9{4XLew-Ta}8%>+SI%Pan|L~xAF!UXVG3Oi(LiurR_<~>1+G-(azAZ1fm_&9gTZ|OLk@%wXLEm(y=5Jd$v_O~68rTt1QIHm4$kwFt!dW7y1OZvLxWMMG_ zKXTl}rP8iWLP2Gph!jJmneA|xo40ItFZs-3(eijdOQO{{u@*sd+)F}KB<*a1)HfqV z8TT@ySyGYdkd0-;$8u4~rVb%I#s0?zowij5ej`?H`*_$fnl%BB_f!@Les<4|J4tsd$|&(TVg7eAeYxHN0C^%IkAWVj-p&Nqw0~yb>;?_GYlmU z5qQT1ucjI*$iP0-1FG8Xu`*?q|EksCn%Fl@8tl)P&LIQ z+YdLS1eQ&s75m1x+b(H7n9)*pcW3}=+kDWkyC9~}-BF)vG}@y)B{)oh!v~ZQ?4RP} zYF0PMgR;K?m!``)Zjl!7xBUu4IE#R6L#~-$J;3=zY1>pKv4vQQyJYBw?b{unR$IHh z+8Dj2bzwgDnGyP*H*S4y>mDhOJjCp+2Z4gFxcaYl^qI7pWW!9LNA7HJa{H&iwZA!Y zAu(aYaS%W21hx9D$8Hr@);D?m0CXMFIq z^Z$)8?dI{rD?8XO*G6W?8~+~vXYRd;=$SI=VYg*CMqyYlwX1|1to0v7N`Po~;URfUqT= zc*VLfCBuyXp8T-6{dv3v*g&pU&&%>DNbPJ6?}N;WaAn5ZXAuVEDaS`xMN>#4CKDtw zA&5ZhCciWkwf*DNfh#!(NZ-YD93Dd=I+{h1-BB8nr<=}k+AW$49#6AbT4JMIQsanP zh08$C-fNdCiB|QNLQ%Z!hE_t3?7@>UhH&~4k~?Cn2;oLBkE5To+_*b+oe{w-w>N2t z=nuJwJ0`oTgmk_FZ*Rt3EhNrql25-0~r8cB2d;Uf0%ox}kH!KRc9 zo=6{m(N%_Xj5nt`yOy;!CwZ`r6tG9KkO?OVgbVADeYgxoeSn@mFk}OsgaFS1BNEVc z4CTHgY_Dk}u-l2SyAu|~(+gpBhxd1s1bO$!U8V_`Y;o0w`n}AjRn8_IEqLXc+sfFH10Xc0lkePyuA+|X z^KOaSxc7cUnP)c-!n|5`w1Bf`?5Y4+C^|i`A^UxUi+nF}Jmg!;2qU=2Fu2UDnaI(mR`P9-qgu19uD3Jz01NM@vLK0_`2ng43Pc zcy=cc&x94KZ>gzxWV|iVESi4%mlIjuz5|eAs!qx;Gb#3I0(ToXv8jQLI>;r1e!DB$ z6lG`7Y8uOF2=k6+h-nn-Zcn>8eswTs6zjTyjx70)I*Nw8H&|$)(};tQBGQQ$($q}Q z*m(1A7C3H2!>dwth#<$#pEQ-tAmONHhC_v1vdL&jU}a45;pcyo( zy7h3p%RP&2Vjsp7F>!MRTyYRNZVihJL&VXPlFm9DVYn=YMAB9kOCt(>C=Bmq80S8S zTQouJ3PuS?viy^anFLmei0e8@lzDs6L1Wm*f+wY9rC(IjNLC-M1rkh`nY&`~eV|gQ zW^5c7*GkIK3$>pdiO4wu`;1(?D;-@0c7S!$a%K!`t1byH_MJrpk;`|_BS)0a^J{oB z&rKPL6q0xMT}^&{uD|X0BaImk#i-+)$AjmVK~_pZ=+C{F!xx#|-R|$QY}vRmBcHSo zIf$oac9L~)?5ZupLoW+dNhLBXTmRH9FoVmuAe-60cDBwATs}Xamm8s zwH+UD{-Xn51}N3h4aVJUMRdTR61x_XLst!Z8i(!rhwRkHz~W%e4YFuuOZKpLhlHsf zd$4J3M$b3?Bl?^A;MyqeaMFte_Rn1xe{0VsM2h{ODP=pF&OGAz!lAWoJBWtl1-f4{ z|JuV@y$UL{k1T(|jKeiVc#K&Lx7;rl`+N-#7I_o3OSM5?{t*31sCsZZqkR)?jp4d` z4}yINZn7b*W=j_~=-K@SBOMQ=WV4`woeU!EI`-XTkEpG{ZOm8L=jmO?@ScYtG%vV9u2Sl^!D7u zO=Ol?tyF{UJbs7^Wy@a28e<$J`YV6l2Tx8STQrAb!`xfb=hGSVyU6u-lt& z5uUUI5nB>s3pH2y=OZ5su1#d7^WAx-?GP5a$;H*l&*h2@WX^(K&88+~qq+_Iu`Q0u zx&|bbE^jBmRmbOJhaU{x9HE4Qp#ib6moVg!+0kYbvPu^CRL3#*RCh zTSZ{M+l_Gl{rxZaZZ|?_<1Xy?FuU#PZ5!eh*sEd!czuoT7E+b;7POFZ02!2%Hn>8S zQ}aV2i|*H`+G+?~_qNl%L?X}N+OYQZBnDkapOWMCD)b1p{KGLNbfhuoh%o8INn+@UI=0&M8HBp)By^#(WhY`!RtC}mk zy*9`{vRqpz3ym+0paym#u+8_3c zshrn91Ai5iLBj;M_Xj4CLjUOE6}9R{ZD%6kZZ5ZcKB9q~S$5(n12ie!mk6*>QYDHF zjd^J~<5c$6-s6yTMSseIfWp}*M!jp5^bA6foxXb#cC;iF8V}Hot7v;6iih1*4>Wf< zzpg-7Mvp~9dFAK_5&)qK?PEzK`guO7>t}W&({k7D7&f0V_rDrh>_`m8&>*wRWrdfA|A&CjHim zsYyq>cn80__&O6TWLzcDn+nFtQq!Xn=bG2kRF2iKT|Rz1Uf@OJ|4twKLBoovc(M?T z+2}wEfJtTm%>9^!q86Gx?V!ikMi>c1NuK3kLWov6We#Sp)3Vx@(!1ALxfN9rvR`f9 zLL=iHNl;WpparOH-XB4|UlKtftb~VUB;CK2nqLCRgzc zb*OUPHaXG6&aaik9PXgb#d79PgQv(@pYA9^3}_jyO3$)dnFkw9VC-UB?6IU z`6XtzBamUR6~f~tL-88_L0EEUHQZ7zN{_4u4l>7yKP8?`$J|{)y&!fk7oDDzp&A9C z%{H+VrcYRm{6ZdSC39>+W64O5`8%*x_9q1xa@W6F2 z32Q(YDQlp6XV04249l=8{%8X?(#;g41iaP7a+15qOXtp#M6K|C8_&62*#o>NSzB!| z@S~#og-P+RD6B+KxteFpA~FpbQl3-pgX8o_ro7+vioL}s~>hs(eu zQwYVaDhP-ySlwCK>o6DGZ(m9=AdC+4r{-L`mi&;?rGd)IMh_FGftqDd)~ju7Q^<-< zTinKylA$XYdPsv5zm={gfq>>_HE__tCDix#aqSU?Q4Iw|Y+gy2m81ZYUg$UzTK zeVFR`PVVw=(E7s%LP^WX2(MD33m<(9F}0Z{^C5$A#Y(9n0L&6U!e6|_fhENvfR6E~QW^fiS!F!p^h75)sE&7HC0xj5o7PNo%qK_g0&c-D+T@>(% z)FiK7&TIrpSbcvF#vz@UvP7||M6hK`qRBkbk-B>uJF~o?;m%s@u zBT&U;<3|Ex8V+Gt%vrGHv;tYJ$uy{k4=t618Eo-|W@FjsQx#64GA;dSp!W}PkGTrL z5nS^SGAq!rb4D9Zq=?1HvPPK^HZF>695tEt(npywXy;~|(4j0a>bfM4`2~V$1c4K- zobDz#(x+x;rX2Gc46h5L)l6)+?^i1TfD-#`WVco%Eh2eS4PTw0li7!4$|mwcWEfsF zr8UQU7t=Z(@|q^i>l8Ec>}X3c`f9P{bhl9fhUO`n)@^I@G|$DvUxF1K8px6UM`w|6 zmRj}=!W@hVJhilGGd=8{`B*`qI5+lM<|r~iOdaR66feHqWM5e&`s%h&#?tWcsEm(F zQp8Yp;IpVe5>iRdE<-^1AQ8E#=}0qsLYvP)b-vk(VO)>UWV$$XL7^sC6>FsPcOe3= zh)h>MITsw;Qe@vJqL`LMPDYqI3%&2WYfe=y!Ua8n>$?Ah&!3HgBozd3d3^cfxblw- z80Zo)EcpPbq*-zqytG1IT`uz(!JDWo=#gZOFql)l=8P$To-!-yN)u45#62q7vEN~l zSL35PX4NF4yk4CW#~usLLk4%_o|*%mw%A2H-OqrJBJ#C5WUluiZi!541%jp>oWIBV zEXL~&8|RCUk~4J<&g8|MJd0|jA!0gSI9bAa8j(CsJce%_NlV41uWYZx)^fsB+IH9$ z+E^hrtzq#gE`mj^8JfwX#{CQ=HXsWMPKpL zW40CV)9WVeI|J_cZqWLL$(d4|XzmI#%svSYos8Iq%xRon9lLx7-{ITZRz14n>2<*Q zKF<-?9lyI~Fa25X2b{!NYZXGid_2^gZl}MYYrJr!w>XiFBV}8w2jqJGcnQL4`&)f^ z10%&+oV}RPOKWv|Z8aA&)}KP6mOu8}xOB|IS|H0+^*Zlm`Uax=+A?WnUE`g;BmMzi z$??qS&VV;R<5p4+^>TXIe(YFz!V^c@ZFF?=_#Ucw0>@#KY)Mhm>UHcm=x?GAu27Tu zF03;;jMw;4q+DLcNOLQW{bdih?_eo{#m2sAH=i6s0h`@tag4;}jPoVS|9obxnrx%l zDfnLiVa$7#O%B|9Go|dF8FtTXR&JNx>p|U{z&ZO0&1#74mSiFb#p7=wc;3@2c1>J> z%s=dOTjMwkd*x$lPt@MHddoH;Pc3He(0MNpgCFld?rJ0 z@T+a*a2R8m9GMhFAM=-nH4Y^ry6}rQY4p z>rLO({V0XI=b*LcJ{u(S&%yi-&~F!&?B=&#n2mIh?>VEt4)KXUHlDPU%qPT-46q+6 zK$o(PUm8L#DZ({MOD~w&?aH_8T8#F)k2ZV6i*1>)xl1@n#YLS>W@C9-X}?pX4kzw- zHp+-lr4MJmQxki?=T*-we91pGv)0;6&vr;PT(du0<9kUSph*g`@W98{!M@CgbELoL z5ePfC3a*MUQ7(sB8(xvBLzRbga13JR0+!UL(5O2j$Pv}br}anwh3_}hddc{`Q`Sn) zzslvpZaarxbE)~jmdVYGc?b(`#qz3(#O%3)YL#JMk^Ty(jTWUI1db@>s;Oghv2u0X z6KPl$atV5@RasKy{y^ZI>crxff7MvKP4i~;m#P^?qq|n`scns*>tTc9E?NF?^xvVq z%uv)qlGAyvT}|5JT2Mzes*LfZJ$lbnrNi!%H2~ zsgqKJiMv(^gfadlMV^i>)^4efP9HCxRSRIS-TpThTV0_Fq%Jq%ElfA%fSWu>E3>?= z!X&8}iC`Gw{wgRXJGAJj1|o@Umv7Nzy5U}2RzkmrEq<(!J;2NCEnv%x^oXPIgeH$g zcV>{oSwY(x7$LI$u*bk9z&u$WM@;67`!lIQV*g8nTA*vDY5<GasR}NW>2z~%`}}z@$6Lj{7tnwLF=nf z8|Y4c-CmlGOX0q@MA4=f%Hfl=;O<^tk<8DrmlV^noNaCgrNWr@r_oQWneNX3z5`%jL)Y$|Ebt_3g;-E645Q15AwRu;4cobxrtW+_3jBWkPK#ZHBfjD9oFo)(YLB{!ibk_}M8&s*Q&74E+F|(yQqY7qwmbHPZ;!g2l3t9!J4WVh}On&`j zTyzy4(7fN0{hNmgSm#;?&uQ@UkyNqbJ{@!y9xPNzl>>33B4rr&8R9TGkNX_agEwEP z>2c4Un8#t$dFN?gX;#@!E2}7aqou3#9^v zfdwcP6pN1o8~YVEPyBKQO))xb6ia4o`iqFG83AJXSL~?QVBfm$LaZIMQoDXz7NvCV z6fk=HSPC(zsz?apX=|gWEtjbL0o+YG=uAUcOo5TOfN87PCBzc5MMURXyq9r8lrGU%4PZ3>``|s~|z;XP^yDg)cu{=u!lJsf> zKx!H*lBoh8q9R44;WUqDO2iw)T{5Rjr>Hi~KqEwO)8$HuApYY%>Edy6MTH(K_CJ@u zYP12fzpSStx6REBu8NR5Y#FMbzH;9N85Jd+>WHbQ$Wtbnvg9*6GMjzL>tS}~b+rcT zJq|2MXQtJ#J`YYw$oJXayF1wGE!}0L`=_@lpYlXnaM9W$6?@BTRYNrv7f1~9fioHr zB@l$=A6&folmf8e328Ip%`BGcb%YArh9dO3D`oxLT7g)lWan0tG>jAoPR+8p?P##| zRV}21t};({B_`yrVy$qMAWSK8BPwyj3O!@1pBu85#v;jMqd8Y*>sq{Z568go(GxQQcVwcwp!TX zCHooJ6Pn`~xDquBk&^R%?dB3!I$5GJ9vr^xC_H9<^7be_?Sw&_A_4aSc+4MdbhIu zm|AyO;I{VC&n>Uy-Kio zMK7pZZaG95q0KotzKVZBb4lN|?pW)(vm zF4-THx4~`%phLGP$*eF@Q>?hR=|=1AP^+xbOjexhYCQC&pwcD6sK4rvL-EihnHg8B zpwx)G0XN`yk2_;8a6t1fN91ccp)Sbheb#MnB`}&xZgJg?xN?iP%EU@8)0&M`<;aXw zOvex4P7|Y1lF1%$A?6KTjgyYPE2h+q^#qo|J(qS)+YURJe0Du3HyOPRY0`q+$V{Hch?O@?}D zs0->VA`o79bgyS8r96 zepZH|c&EO`us_jj!oq*Gxg&0>Faiq^4HnuD8h&3;ud5rWV+Y)`s=cRFCHaJ_k%ZUO=6Hy z6U65dO2CuwfNGM~4EsCoIKG?Q6qrG!O?d}22~CbqOZD;CSbSwN11}Os? zbuv}a=T%i94^L^2rcWi4@+^_VUf2nt|G~7Yma4;wn{4)tL=F4J%6~oD(_q-=bQtKX z56{tS)VKmQe<|S?ZO$8zWicWR)u-7oKT^RpO|8`kQxpNnL((sUoz< zX>FK)<6fRQ?6vz*dQiAH26qLp&_@VE%@PjQ;h>cQFW_kT=xuoF-sC-`YjDFfWs3w5 z9j>1RMgs)P##p5=<{&u9#Uy&be=)!$`L@Fa^Al+Z`>$IF*EC|wZn_lf&SH&)%#Cub0iAx>%nx6 zy6WmpHbhTsJ{RLZ*Wq)iUWsMsUoFg{^z5?na3uujyK4e~%X8JLPs7l26EbB@sBwva zI11NE1pEVQthgwSv6w2XDEJcWtJdOR+Wl|f?}LtGU7*vqyO3njH{(VrZ-rz)y063v zYs8g`|6-@KyV!Oqbbs8VSU!q2(JKE+=kB2hJ+VQE?`wFy579)45wlea70xdUeSyw; z&!w~6mfF`7;NrwIZAhY`ugNhd_ z^j!Sw0J1|fb~?(Ytj`Xbv+9B?Depvq$4rv^<6UQJr>(lkRU{N@3H@pW4p3Zlu|{vm z4_Rbo^%&FQ)B&GJ=Q9QErGMbT;T#)z* zN^+#j+~hfxLY7=I>;dKEP7@ZH!_jMJPItaq^w0#$@)8@e2zk&;^SzW`%Js<+sojx| zsV2&oHorir1PL~g+PkqPXtjw58wjIj@*QEz@+Qp1sEYrcwB5Gx0as%aqYi3x**94g z0?+>?ueJL`(YMCrTkADCQr7a@Rdh(DNt`6STo^{ktv=YI;KDGHr!vB+88c{f3U3V6Y027EfK5SyrU0)Eiej&!bq( zK$GEY)S-GCx#plh$`Y=<#>D3h(61O|wg#l?vDU1tcdPTBb5s;c&PFP~+HRL>J$A3D@zP#p zM@ZF)6Cn#__Tt90xjgH3RDPsi&949vO=%`fuf{0siK0j{;J9>d@SW1d*2HDkG)aVM z^;xlf3w~GE45~kKij`o+abEW9r&{+dMHkvrC1uaZj?!&#)pt$yQcd=fDHGaAc5Yj# zL~ea*r!Wn+Zb^?T%%x9xOpulon$AWmc&#&_XL`~H1>uu_2bPHG^}pH63jAY!+jQ{> zDsb2J#JHv)H#(z^4O0x$&kp;|ATJq6_>^C@4>76@$1KyFhWo2}SU`s5Eq6#WZaFHf z#s>Aik1?19VUS?bH&=%x!crg{E~}p;c*-nQ2LW!?R(dsFPemh1PP~m((=H6fFr#yuyy{EQe2j{4WzVl-|wV3m^%c^!X zHGpH3L4h)Xi{d47paqBPlDXn8Oj?S;Wk09{`?Q$1BBiAGncQu*#Pd=-OTD5gw)&Dp zUclg=aAGx%`0DvM^@@PTfA{%^EOkjrk5Hn@Oi382MwevK*_5Gpo!|^8|o?3Y`6lse~>B^DDc!d41{V1 z(H7m;DiZR;{^fb;Y|kuN@yRo|{MF!0%CGtV0s|=g*O0Lk5;0X&(PUCyr0iFch)NN0 zB$P5ES%|#2Ot}nN<;9Ye$W%IN_`Ma5&7KzzAQw`jnqjd`NP|>EQ;G&78TlN28@Byv zx~`YPbeKOSn9pP|O({g*NCiP(SEHurOvndg;?9g`U~a?!`Og+?aWuh|l~?7y6EIKx zM2*rw4UpaQp6q!s#5@+K*E0IF?0!zdktjqzm$CZ=p~2};KE_0q+TDL4L$y>%p}Z;^ zKTL?x(Eb)O2%!mfeRZM*Z5g5JizA|s9$gUhRn8|f@+zft3e$z=Cgg*n*zRc&2n~qz z1r$aa`7|oG#90*|MB9#nQkmbgJtECFSsbBOXhaBMBh3N%wgC+aAq~beo^Y#pe2_{K zZLu&_$?@6}wz%Re#)9C>_46(Kg&rrSk;e>f2UEMB^+PC8h8RTRq^iNSM>ex_PtcD; z^i_S0Akt+CGIitgA=0*nHY(W}?$Qf-=}f2z?R&*9W@cxC{DI#=672cdNj|!!5-Z|) z*jeoFZ`~*6ALe_FM5^KtoDu|WH^HQAsQxwwLm%k6vl%uoyW23xsGGFd-{2#ys~Pbu zbCTTCAIepHbF#@N;u{OTO$~W`|KMSmvTj%(iDUbXe@|pl-@**$C#+&$yp} zU?KFI^qmO0wHDO}A*$yE)qx|s$3Ip67Ba&Y zyO()HKguA)f<(PhSl7)_i6q$bR1eUQC#`X)iz-vE8d1H*q|;|n+*l=q{zAN_!nDbl zrk~O+P-D(X>n6nbc4K9B+VI$R#r7l(|pAYR?d2jKnhiDmMMnvra#5^ zMToSv4QdW$RsB7YQix^hF}ET`4k^roxUncrQ`tY0 z9N?x$n&vB#=D*2r%~nxU+^k8R5ocnaG}2{m;@~I9oGMi;tCCkKi$|evO;kBAhMoAS zA6@iW*(uNy->{+GMX?~LiG{DkF)UIj==jtsfExKym&2zshtV4G(nZQ}&cdFPC4Chc zv?a4E8MIQDLS%-1l=*}W)yilpZ)<-S>eqsAiQ=B1c2Xz#z3l%)q20!O2EL^b%d_Gs z=!=dtjaHBXV<`iLEDMoBP+zC`YpMY`6l^oatb{Vp2nwfVqas4V0bUfq_3b9b5O6Kh zxzX?&W9_WN93jG}-Bm8$-b|HTfGLZ7`> z{1P~F{=03mTKNNWk{67A8)7sjs&9<8$7%V~b9o#|@vJszSy|T!RVp*c#VvFC{q3(zN zu9iNWrJOh<-LFf_gKM4C=s4Bwl_ggGh}VbKsAkxn1w{3aLK;*g`=PJ;Dv8gv7E+@s zdp?#yjrnlNq2#DbA}~p`nbz%oDU`<4D<<-U@54}y!tMSe>Ss^{9nwW<47^+%~wYlbh zCCwQn(foNSs8+nzx?rc5B)E-2r1Kd(ZbH9FxxGMq5a8?o2)g59eH>j?n*LUbA{d7P z`;rK(k-gNTs@V9v_(S?0K7C7W&eQyt*#}laT#?N)p$Rmhe^3$|U_#ND2pH&$t4yN%kuU&nx{lRPln38 z>UlQ~ttdpRcoH(YwKhNgm!UbHl5~fnkoN%B4y&7@b6gB-k-0>>;9M80t|ufI)!#6; zM>ah>p5fq5lU!~MA)^Ya?71mh{=-zMov}Y-KkZez96S0QLIGMcqLy9=0WXO%vb$B0 z6oZw)vtk3Zh?#m~NqZ@SiUh6E(0rys!BhvBzI09#3!{Qol(9#Di;zxcAX5%en3odlbL1&#kyW$A&KhW) z{fzK^>UX*Qwxb)qq8KW^P&B<3gB4*mvb2b z`)G-?njzTwXh4yiKmg3%_tq&~89LV*N=x|4A%KTAi)({Gs!h^_WY+?+ zUr7(#T77MTT6X&$wEv#?N^9kT)ljtfH=niip-#+j!^`O~EY%;QOqs>=A}J~RQF~8%Jv?&gSqC}9|mzEb4>_X>4`=QmeIf)zf$=HRE_C*0Q)umDnL3@Qj z3+hMuE;D`GLQaHTK~qK=6)@(~;reA?Ql8CV8nw=vHXKSII>5Eja8ky;nt?(gB=OV2 z7H5TOQ3&|E0$M6#t(4?!?G`Ff2gcjPoo-3}S)EJak}6DEllwtP4K?(sCX*Chv`Jfq zX;J`si!_6?J&_zKKxc#ocB4KGt$`}2tj9aYLSH^5$+u;3Eic=}FNTZ1AT+p+*D4vx zV^Z|rc!=A-mq`oZ^s!9;yzFmPuw2YoC{MO0&^~cUPJIEC72^L+meiL^>f&c5&dZ50 zOi6&gI`N9AxhN#I5zxj3pi`lwsA>Ce1t5Le>4lKk+Qh4dYDR#xU}(IRdi+#(-w3Tz zHd)zG<2*m&8_tDaC*Q&Wt{q^{hk%a?;7Un7+7QQ~8fuFX(Zz+3S#!h!uMVMQ-?j1Y zL_eo~!YK=?f`q=7oa-Sh{;$FYWKvjEujw^=bc0}VV2leG&t>dtk>YMg5(Oi*gZ8LE zj1<`9tQaB-puZ1^qc3NAE@Xbq_Pi^wD0|!crb4^#bJGb;(Ark38EgA?TajQzvrH4xf?^@~1dnE9#C%9`O(Il8 zU!}CN#r(ex*RV16itxtAvWA89f?oyjq1Q+JEi5)U`gh`KX)DbJan5C2e2cTgsYtw`LIuE*x>d{p~2~p@3TB)O;4E6ZkZ6vzYf=Z zDqPp@(HAoIOonu)0*+k9zA4xJrHIut;gb5+m#Qq8Bf<^~aTJo+lH?6aQ9I}O8NuU% zWJ^E&hT~ zO1nMsYm3fG!&KYo|zPaL0z&)Ya0#^rcC&OMzPzXaDF@VGcw_m*87 z|Bbn0Z~X&*JcfJ7ma@jJ}<+yV@pF?_fuZS z(PGZK|3$w4%hWobSy~Vs4bue2?C~0xa16s3@jV~&C!SC9I%j#z75Kc!V;t`Id51r9 zOnZ}B6UQgs_^(oHy3e05&$)Td^4J}N(nDkah{xu5%^!RBpX2+t`Tp7HBcQ__OSi9h z4a?_D*Bp;GJU++woKDR%1M|f2iTC`WF_zbHjvVuPk;lEody{u`U>N5Os$armk>M)9 z=O}#lYo5>WXU@(`d+2C`bKLOwEytg34F|JZ1L<6bH6r+|z-I|Qt8mY6tSl1VZr&}H z@kyp1&auntm6Rv)?}3_{1@P z%Imv5Soiq;JnJVn*A*G}k(HxAGiZ?&jy%Ir=TH3ils89War?;f{GT}9HJD=2y~D8! ztXKUpFED(+4rGORY>v-yuL?Zxiw2D@&EsVCQfeN@d(SZJc#dVxXL;N?#`_|V!|#8? z{Os0_WN+zn)}zBkPiNr2r&%YSXP$lmX~FYG4A&R-{!c`1efaSFd71NLJLUrGvkNTS z&-0uyk43(DU}>oP^fdFcqq*bhb1c_S!CVc4z68xR;_=787;7WX^ZITt+~-;5<)>ke zUszhw9LOhKgEpM#RO0n#Jy|%-a5#FLWf@z5x&DCXdV$Au9PE6K_Gre_p{G2V&GY9O zgq!F4h5h`Ee*Y2k+bz>Fo~~q^N*=Bg-u%;^jYmFs+S2Hb`8m%$YH_De zl&O~33EBhHwH2fC?(^;l!;U)O8OsZI%9hoa*> zZ+~!~pR>Gs$J+O2P)8fob+pzC@cmt;hfnhfKCT+oKQqibxK_;eCC{|Sy}k%*e9CLY zmbYmQ)JeazG;#KdeLs(X+`2O!og6;76h62X`h!0;Bu6phgLW1Dnx>DBL5G?4#M$3* zUN_?PM%gF8xnD5k|9xyo-t&wHuJIzzjpIgH$4wfQDL0ofWQQE@qKu-gxMN5!;aX#8 zH;l1<=79&RVOYx^T^zkm^BS>SS6vgkbGvu6H@NOqSog;U!*%N^TOZo_435r*&wpmf ze?~bzC3;i+h+=9lMpNg8>Gv|MiC2E?`ej~shWX5xFb2qba3L+wXY9fGkC+!C-p>lo70nACzHXry;3rmxjanV{C;2?< zFn7;}x8{r9T77S=9P>Z!?T9xPd8Lpw|JS`{`RwQR^CHvlvLRpeHskwaKkl-7Lg!AG z7^8ZSWbd27^IAmqevx5l@_n=RzCX?fHsE33@!ovo!Hl$XzM9j~xf9@+i$1rXmppiW z&*0l-{)zB>13b!%M_%+1;WEK=zriy5ox%7u;J?K*$MXW)he?zh;h~e{B>Va}?@y8W zch1u-NQ)~>i|%)TFY?`wj0yA~;(Pir9j5{W##Em}96qtcf|u+nf(J7N1+@ZC67v=aedtRHGmI)p8OWT zT83kc|F1B8U0uWRVkvcPl;JOZjr}!WgSIYCc0A|!0Cgey&6t~92N>~(o`1+WY+U;# z=EI0#jG5cIn9qJ6aGCIMc~^2SPN#94`LG<| z&Hp>d0UGbq<-5LDzLni`+V7Gf*(ouNkT#n@k5z*$dmjP(cP#u!8~byptY?ZDF*ow0 zi=`gPm*1!FJbK_&ms@kZgY=m)*n@V*=6Bx)y3D{a#!^?9F4a`dE@C;DwtgFqs0i*;vHk8Hf?yE^KnbxH#!*A6=Mu5e(UmDdB*h>z>jJ} zckK7Cab6YcZ?nt?*2Wmh-8mgv;<@r{=g0Y4`H}YcmYMM8aCyLpufGawK4*;Bw>KCb z!|>o+s!m!}WNcW1Q!3xW8;r zU)-^F;z!=tP55q&{cKn3oM3v7F>hS-Y!BXtZ*ToQ7>~3^+c?j2U5D@Ln2TgsCM*o3 zZ}9u)S?9ZW-SAwenNG{_iR=BuoAVX8rzUl~9oeS|-m@ypG5Sc(KSCJsh0OD;8?Unc z_<(ccc@O_rd44AkRj=M#iB8LYRCqt!eQrIME64Rt!JJ4p^eH26z1UmtHNMyNVK|(| zyt(kclHjF2inEuiycXu9zu-K7#u4fL0u_=DDX~?jp;k!}Yv3Z`EGkw%5;btfTpRnjiNN{SK7f&w1}q zN4<^u80L5N2N&}!vfh4{=X13yKF^`w%{5-w0#8_mKWDkKxZz-j7R<(DS3bR-Wnc6vOZ8hSzz$HA8V9u6Ner@(Vlf zDT+nG7acVwm>D%?1d!MYCwz`EL>D;o_e89)AuWRv_q z??W3sB7AcUUyd`AqfZFVRiU(Mz3Uc!ipU&{^A@H@QTr7SgNu(?dClXi*LcP2-ip{i zb_eEjwf#w^#MBd_#7c_iUbR%Gxc?^}Opm6*n*g=*@@AqR!o_j>-PjX^+%V)h)_9|w zCHXN!j@>VxvV`YY>mhv82phmi)|zPQHK9L=3lgE&F>TZ z-vI9!=DB*L{b}^2^4%EY|1N8&)BmO5{|MT=7HKYoE^6-&{;RMZ9cTKy!#?NP|DVw3 zx)<*_+cPG~eP&$d!#rD3Fp zS)Civ8GGL?uBc+xDs62pW}U(u}1pL!@LFNdz|-8m^bIm z`yqSNF-9+uRvxT&kc!hMBtwzQY|{5He0RU;==ZzztBHOju#FZ-Fr!|zp#^Z z`;BIMVXxKcbYXO-yO2EScN;LW*BNwolAgg_{U=h>xxjIb+i}#6H@zLlKH#@GavqIb zAB5Huij2`eW@7ZeF8%Z%X)m-BfEi$D>;Z(GZnC&=+!-wFG}?ebv$ebMSz~7>Y4<;G zw2$u}B;Dk*&lm1D`v-tWv)_YZ?fvALYIW(xptXIFGumgziCkvf>fOqo{ zCT_G^o%=|^CQzos^Z#nl+_~F2zFMumlO(N$y>61=m&t>p7C-}#ZNuHocCU|Uy7A4XgLHgoo^i1MR1I0J`qBIafbJjazt`=apQf-i|t zSVO{3%w3{C`2(K+Lpa9#IOdvBYS8B#H{_H0HKUhU0xx;{R^U&p*`VEipZEMjh8gE9 zay~Q15;opFm)q})-UIs>81V#iJ1J5oTCcRz*_HMh? z*}2<$=EW4SRTjI2NQ)LofKdiEvf@m@z7bIYD~_~KiDRDS0Mr#xklV-*>Bj4f~po351QiJ z49_KI&{st*Q*#xf@9Rl;M$DhDu%5s@eci+B^{+wCBCm5fwa(M5Ki-VA8S5>c+ZZZn zI+rEK-(NDsgJ@Ea2cKg2-t^Xao5wn1;2w~8AvN{_k9~s;SDDA2j$ENSY%DR)_C5V1NHAY zp5qnPxo!@p)6Pb&d_}edalL3rN8aW+94^-*ZGw1}$0Dy>^!DizkHrV6e&nrxjmM%c zzHVXvL>_3n=*h}uL&;rycpeUuOAt^W5U(jiaysa3tA?Ti|4pL$Tm}KOJcUBI2{;*-s2O&>5Yz^W5S6 zA$b~Qd2&tJrx<=Gx46HP91`WZ9D3U0yHU1TE^Kk@V?lYzkiYRGZ~ewev9hMHuZ z4J~-^VMEM$ONURyhM~`K)sTaRWg84NusQF=Zvw*!aLq7XP-Z3oo=LV%IiVxbsmL^P z50fH%=#*k(^PMLJ-w80gmn$$gnOMa?synSf_qhus#M(D0k?8 zmOQ)Y0)d!|!iZxb(uSK7zwCefKE--Zf|hpQFbDp=mDia47{UTn4^91rZk73J^j?@xOz9;5Eb4HucTn~Z&((y8Xo@2VY zzNCvx&ktD-jBrl=HLi_*>-03=Fc)(IO%{L#D3530Gd9{cR^fWeS?^`87x~(cSSHJi zJK{X|O>sVn|4+pG7RbZ<-17RqyfC23`(k@2ShrkaxIbWC$J{N}#qq@v^C!W5qC7rM zymPXiq*@l)`U=BOEwY~r4_-F(u(;zltm*xbX`Saic!hfm%HNe-nQxj?p*qrt_>e@4 zF{AxAPA=bO8vGvbTaNb=U%qm|=nHnfJ3r&({eFghjWf)%2IcOdt@;1cZ?!f5eLKgv z311}r9Mc4A-Pl)z{Rj9`o~O-s8)HVy-v!>&GUJSVj(K%zo+TYzjI^K9Fn)M1z9_}L zL}i)rTKJCf%CXPl`Y1*ihseD!m+?e=5ij>L7WZ<4h+n91+E5*i9)Q1PYr5}7^df~# z#O8R^URN=%Q~<}ywTERGi(eTgS% z{W6ckI3D}O-;U@-acjKKBYfXvqz(L4LvkH+{oMVyf%|l8AndbDpB%%6)Wp7rbzW=J zP%i2zmLcc=lF#~crZdrN!p{A3!GrGokmsg7q29K6S<}@z5SAG}cl?ETWB)lm%;*%0tJ6mNmGN_u@y7Wkm=3nbkKr-ieqy}y3eWqxq51~S>t2fG^u6N^H-9P8 z7i*64{F8i+_o1(Yy`&hQZW*e_x_O=KyS`L{i+FOz$~);Nw|>s3PpdqVNm z5;r1xspw0ob@JXk#^_7q=9tb!PZq|E{;&?t`zFteeYKaF&-|YDQ~X)=;MWK0^@V#= zk@io`@gCz^*BJISjy3T`MeiEw;dt8H(_Ct;D({`+^*rNR<-J0ig?qW`_3L1N-9?sF z#~ZHK-96Ig=O1F8-}Nw`P0f#ci}HY;?F;bv49|O>?|1X%y!o8Y#Ce`G`m#dDW3MnT zx_R*jOrB@Dy=c@{yB-49U*Y5!lCpAz$4S0n9tUig3Z-r6nV@BT$!;;-jfWBUIA_OiQzavA*N literal 26582 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 N3D4TK{|_nGk;QIlDKY>6 diff --git a/assets/maps/badlands-testmap-2.msav b/assets/maps/badlands-testmap-2.msav new file mode 100644 index 0000000000000000000000000000000000000000..54bd561e65a9606f82b33c532cac37502076e3c8 GIT binary patch literal 26835 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 HtVur~5)YvG literal 0 HcmV?d00001 From 875c21ffb6297e115e0d1351f7cb2e39650f2cdb Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Sun, 26 Apr 2026 17:56:41 +1000 Subject: [PATCH 11/16] I nearly always forget to change the version label before I make a release but not this time lmao --- mod.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod.hjson b/mod.hjson index 3e069cd..495b194 100644 --- a/mod.hjson +++ b/mod.hjson @@ -14,7 +14,7 @@ main: "meld.Meld" description: "Meld Java.\n\n[[]accent]Only has custom game content! (play the info map to understand)[[]]\n\nIncompatable with hjson meld" #the mod version -version: gameplay test v3 +version: gameplay test v4 #the minimum game build required to run this mod minGameVersion: 157 From 58cebf49feb72cbcdf0a303d927db93b77673f27 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Mon, 27 Apr 2026 12:45:30 +1000 Subject: [PATCH 12/16] porting everything over to a new internal name, MELD 2 *actually meld2 --- assets/bundles/bundle.properties | 1576 ++++++++--------- assets/maps/badlands-testmap-1.msav | Bin 26809 -> 26810 bytes assets/maps/badlands-testmap-2.msav | Bin 26835 -> 26868 bytes assets/maps/gameplay-testmap-1.msav | Bin 15447 -> 16702 bytes src/meld/Meld.java | 24 +- src/meld/SettingKeys.java | 6 +- src/meld/content/MeldBlocks.java | 42 +- src/meld/content/MeldStatusEffects.java | 7 +- src/meld/content/MeldUnits.java | 11 +- src/meld/entities/unit/BulbheadEntity.java | 17 +- .../entities/unit/type/BulbheadUnitType.java | 23 + src/meld/entities/unit/type/MeldUnitType.java | 2 + src/meld/ui/MeldSettings.java | 19 +- 13 files changed, 922 insertions(+), 805 deletions(-) create mode 100644 src/meld/entities/unit/type/BulbheadUnitType.java diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index 84f3395..148ba23 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -1,1153 +1,1153 @@ -block.meld-sunder.name = Sunder -block.meld-sunder.description = Fires clumps of Debris flak at enemy targets.\n[accent]Sticks shrapnel in targets![] +block.meld2-sunder.name = Sunder +block.meld2-sunder.description = Fires clumps of Debris flak at enemy targets.\n[accent]Sticks shrapnel in targets![] -block.meld-shredstorm.name = Shredstorm -block.meld-shredstorm.description = Sprays debris shrapnel or silver buckshot at enemy targets.\n[accent]Spread is focused towards the aim direction. +block.meld2-shredstorm.name = Shredstorm +block.meld2-shredstorm.description = Sprays debris shrapnel or silver buckshot at enemy targets.\n[accent]Spread is focused towards the aim direction. -block.meld-flurry.name = Flurry -block.meld-flurry.description = Charges and flings canisters of sticky Carbolith dust which spark on a delay.\n[accent]High damage vs force projectors[]\n\n[red]Warning: Putting hard matterials with sludge in will clog the machinery![]\n\n[accent]Armored![] +block.meld2-flurry.name = Flurry +block.meld2-flurry.description = Charges and flings canisters of sticky Carbolith dust which spark on a delay.\n[accent]High damage vs force projectors[]\n\n[red]Warning: Putting hard matterials with sludge in will clog the machinery![]\n\n[accent]Armored![] -block.meld-molotov.name = Molotov -block.meld-molotov.description = Launches an [#cbdbfc]Aspect[]-filled Silver shell at ground targets over long distances, blasting shrapnel out of targets for extra damage. \n[accent]High armor piercing damage on impact.\nDoubles the damage armoured units take![] +block.meld2-molotov.name = Molotov +block.meld2-molotov.description = Launches an [#cbdbfc]Aspect[]-filled Silver shell at ground targets over long distances, blasting shrapnel out of targets for extra damage. \n[accent]High armor piercing damage on impact.\nDoubles the damage armoured units take![] -block.meld-grandeur.name = Grandeur -block.meld-grandeur.description = Flings a compacted ball of material at targets. over long distances \n[accent]Small amounts of armor piercing on hit\n\nEffects vary based on ammo type[] +block.meld2-grandeur.name = Grandeur +block.meld2-grandeur.description = Flings a compacted ball of material at targets. over long distances \n[accent]Small amounts of armor piercing on hit\n\nEffects vary based on ammo type[] -block.meld-downpour.name = Downpour -block.meld-downpour.description = Barages ground targets with 30 [#89828c]Mercury[]-filled Silver thorns each burst. Slow reload speed. \n[accent]High burst damage and armor piercing. Inflicts Mercury Poisoning![] +block.meld2-downpour.name = Downpour +block.meld2-downpour.description = Barages ground targets with 30 [#89828c]Mercury[]-filled Silver thorns each burst. Slow reload speed. \n[accent]High burst damage and armor piercing. Inflicts Mercury Poisoning![] -block.meld-vivalo.name = Vivalo -block.meld-vivalo.description = Atomizes and fires a jet of crystalline particles which pierce armor. [accent]\n\nQuick rotation speed and increased coolant effectiveness.\n\nEffects vary based on ammo type, ranging from Laceration to Shattering[] -block.meld-vivalo.details = This design was cut down to be as light as possible to be quickly cosntructed and deployed. Crystals would be crushed in the base, stored in the drum for quick feeding and then be accellerated. The drum was placed on the opposite side of the accelerator to shift the center of mass towards the middle, enabling quick turning. The design's fragility was easly compensated for with walls from its front, but sustained fire would quickly destroy it. +block.meld2-vivalo.name = Vivalo +block.meld2-vivalo.description = Atomizes and fires a jet of crystalline particles which pierce armor. [accent]\n\nQuick rotation speed and increased coolant effectiveness.\n\nEffects vary based on ammo type, ranging from Laceration to Shattering[] +block.meld2-vivalo.details = This design was cut down to be as light as possible to be quickly cosntructed and deployed. Crystals would be crushed in the base, stored in the drum for quick feeding and then be accellerated. The drum was placed on the opposite side of the accelerator to shift the center of mass towards the middle, enabling quick turning. The design's fragility was easly compensated for with walls from its front, but sustained fire would quickly destroy it. -block.meld-vinca.name = Vinca -block.meld-vinca.description = Sprays down targets with high pressured armor piercing crystalline particulate suspended in [#cbdbfc]Aspect[].\n[accent]Sticks shrapnel in targets![] +block.meld2-vinca.name = Vinca +block.meld2-vinca.description = Sprays down targets with high pressured armor piercing crystalline particulate suspended in [#cbdbfc]Aspect[].\n[accent]Sticks shrapnel in targets![] -block.meld-vivisection.name = Vivisection -block.meld-vivisection.description = Assembles and launches [#4bb66b]Resonarum[] sawblades.\n[accent]Lacerates targets without armor[] +block.meld2-vivisection.name = Vivisection +block.meld2-vivisection.description = Assembles and launches [#4bb66b]Resonarum[] sawblades.\n[accent]Lacerates targets without armor[] -block.meld-tantrum.name = Tantrum -block.meld-tantrum.description = Compacts and puffs out clouds of [#8872da]Rift[] using a Silver piston, dealing heavy knockback.\n[accent]Reduces target's drag[] +block.meld2-tantrum.name = Tantrum +block.meld2-tantrum.description = Compacts and puffs out clouds of [#8872da]Rift[] using a Silver piston, dealing heavy knockback.\n[accent]Reduces target's drag[] -block.meld-earthbound-infuser.name = Earthbound Infuser -block.meld-earthbound-infuser.description = Infuses Debris with vent fumes to synthesize Carbolith.\n\nRequires [#cbdbfc]Aspect[] to run, can siphon [#5b4739]Fumes[] from vents. +block.meld2-earthbound-infuser.name = Earthbound Infuser +block.meld2-earthbound-infuser.description = Infuses Debris with vent fumes to synthesize Carbolith.\n\nRequires [#cbdbfc]Aspect[] to run, can siphon [#5b4739]Fumes[] from vents. -block.meld-gas-kiln.name = Gas-fired Kiln -block.meld-gas-kiln.description = Heats materials using [#cbdbfc]Aspect[], often used for [red]primitive[] refinement processes like smelting or ceramic blasting.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings +block.meld2-gas-kiln.name = Gas-fired Kiln +block.meld2-gas-kiln.description = Heats materials using [#cbdbfc]Aspect[], often used for [red]primitive[] refinement processes like smelting or ceramic blasting.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings -block.meld-rotary-kiln.name = Rotary Kiln -block.meld-rotary-kiln.description = Burns mass amounts of [#cbdbfc]Aspect[] as fuel, heats materials to process them in bulk.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings +block.meld2-rotary-kiln.name = Rotary Kiln +block.meld2-rotary-kiln.description = Burns mass amounts of [#cbdbfc]Aspect[] as fuel, heats materials to process them in bulk.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings -block.meld-pneumatic-extruder.name = Pneumatic Extruder -block.meld-pneumatic-extruder.description = Extrudes material into pipes, uses [#cbdbfc]Aspect[] to run. [accent]\n\nDebris + Elnar -> Aspect Pipe\n\nSilver/Annealed Silver + Debris -> Aspect Pipe +block.meld2-pneumatic-extruder.name = Pneumatic Extruder +block.meld2-pneumatic-extruder.description = Extrudes material into pipes, uses [#cbdbfc]Aspect[] to run. [accent]\n\nDebris + Elnar -> Aspect Pipe\n\nSilver/Annealed Silver + Debris -> Aspect Pipe -block.meld-storm-iris.name = Storm Iris -block.meld-storm-iris.description = Converts stable [meld-aether]Aether[] into charged [meld-thundering-aether]Thundering Aether[] -block.meld-storm-iris.details = The storm is here.\n\n[red]PANIC[]\n\nTides washed upon the Bassalt Groves, but it would not falter.\n\nHeavy rains of biomass and crystals peltered the roofs of the facility, but it would not falter.\n\nThen came the void...\n\nThe flooding was never preventable, it was inevitable.\n\nBasalt groves filled with light.\nForgotten and entombed yet in the night... +block.meld2-storm-iris.name = Storm Iris +block.meld2-storm-iris.description = Converts stable [meld2-aether]Aether[] into charged [meld2-thundering-aether]Thundering Aether[] +block.meld2-storm-iris.details = The storm is here.\n\n[red]PANIC[]\n\nTides washed upon the Bassalt Groves, but it would not falter.\n\nHeavy rains of biomass and crystals peltered the roofs of the facility, but it would not falter.\n\nThen came the void...\n\nThe flooding was never preventable, it was inevitable.\n\nBasalt groves filled with light.\nForgotten and entombed yet in the night... -block.meld-heating-basin.name = Heating Basin -block.meld-heating-basin.description = Runs [#b89f47]Nectar[] through pipes laced with Carbolith dust over geothermal sources to extract [#89828c]Mercury[], producing loads of Debris as a byproduct. +block.meld2-heating-basin.name = Heating Basin +block.meld2-heating-basin.description = Runs [#b89f47]Nectar[] through pipes laced with Carbolith dust over geothermal sources to extract [#89828c]Mercury[], producing loads of Debris as a byproduct. -block.meld-peat-masher.name = Peat Masher -block.meld-peat-masher.description = Grinds up Compacted Masses extracting Bramble Vines and Starving Masses in the process.\n\nRequires [#cbdbfc]Aspect[] and [#89828c]Mercury[] to run. Acts as a fluid router for [#89828c]Mercury[] and [#cbdbfc]Aspect[].\n\n[accent]Becomes net positive on [#89828c]Mercury[] when operated over geothermal sources[] +block.meld2-peat-masher.name = Peat Masher +block.meld2-peat-masher.description = Grinds up Compacted Masses extracting Bramble Vines and Starving Masses in the process.\n\nRequires [#cbdbfc]Aspect[] and [#89828c]Mercury[] to run. Acts as a fluid router for [#89828c]Mercury[] and [#cbdbfc]Aspect[].\n\n[accent]Becomes net positive on [#89828c]Mercury[] when operated over geothermal sources[] -block.meld-bramble-press.name = Bramble Press -block.meld-bramble-press.description = Presses Bramble vines for [#89828c]Mercury[], producing tiny amounts of [#89413e]Ooze[]. Acts as a fluid router for [#89828c]Mercury[]\n\n[accent]Plated[] +block.meld2-bramble-press.name = Bramble Press +block.meld2-bramble-press.description = Presses Bramble vines for [#89828c]Mercury[], producing tiny amounts of [#89413e]Ooze[]. Acts as a fluid router for [#89828c]Mercury[]\n\n[accent]Plated[] -block.meld-electrum-amalgamator.name = Electrum Amalgamator -block.meld-electrum-amalgamator.description = Directly blasts native gold deposits with [#cbdbfc]Aspect[], using [#89828c]Mercury[] to extract an amalgam from the powder, then combines the mush with Silver and Debris to create Electrum.\n\nProduces some [#e6c700]Ichor[] as a byproduct.\n\n[accent]Input liquid requirements based on efficiency. -block.meld-electrum-amalgamator.details = An alternative to mining Electrum off the walls. Though not very efficient, itt'll have to do. +block.meld2-electrum-amalgamator.name = Electrum Amalgamator +block.meld2-electrum-amalgamator.description = Directly blasts native gold deposits with [#cbdbfc]Aspect[], using [#89828c]Mercury[] to extract an amalgam from the powder, then combines the mush with Silver and Debris to create Electrum.\n\nProduces some [#e6c700]Ichor[] as a byproduct.\n\n[accent]Input liquid requirements based on efficiency. +block.meld2-electrum-amalgamator.details = An alternative to mining Electrum off the walls. Though not very efficient, itt'll have to do. -block.meld-amalgam-decomposer.name = Amalgam Decomposer -block.meld-amalgam-decomposer.description = Grinds Electrum down and blasts it using high amounts of [#cbdbfc]Aspect[] till the remainder is pieces of Debris and [#e6c700]Ichor[]. -block.meld-amalgam-decomposer.details = Doesn't it look happier?\nI guess so, but what's that to the right?\nWeren't you told? That's a dissonitre crystal.\n...Isn't that what they powder up at the-\n[red][] +block.meld2-amalgam-decomposer.name = Amalgam Decomposer +block.meld2-amalgam-decomposer.description = Grinds Electrum down and blasts it using high amounts of [#cbdbfc]Aspect[] till the remainder is pieces of Debris and [#e6c700]Ichor[]. +block.meld2-amalgam-decomposer.details = Doesn't it look happier?\nI guess so, but what's that to the right?\nWeren't you told? That's a dissonitre crystal.\n...Isn't that what they powder up at the-\n[red][] -block.meld-dissonance-inducer.name = Dissonance Inducer -block.meld-dissonance-inducer.description = Mimics a sedentary Dissonitre incubation environment for [#ea9ad6]Meld[], growing batches of crystals, and offgassing some [#cb8650]Aether[] in the process.\n\nRequires Resonarum and [#8872da]Rift[] to run. +block.meld2-dissonance-inducer.name = Dissonance Inducer +block.meld2-dissonance-inducer.description = Mimics a sedentary Dissonitre incubation environment for [#ea9ad6]Meld[], growing batches of crystals, and offgassing some [#cb8650]Aether[] in the process.\n\nRequires Resonarum and [#8872da]Rift[] to run. -block.meld-warp-aggregator.name = Warp Aggregator -block.meld-warp-aggregator.description = Processes massive batches of glass waste over [accent]heat sources[] producing [#b460e2]Warp[].\n\nReturns noteable amounts of useful glass materials. -block.meld-warp-aggregator.details = ...it's a box.\n\na box which crafts\n\na crate?\n\nwell I suppose it's quite the crafty crate... +block.meld2-warp-aggregator.name = Warp Aggregator +block.meld2-warp-aggregator.description = Processes massive batches of glass waste over [accent]heat sources[] producing [#b460e2]Warp[].\n\nReturns noteable amounts of useful glass materials. +block.meld2-warp-aggregator.details = ...it's a box.\n\na box which crafts\n\na crate?\n\nwell I suppose it's quite the crafty crate... -block.meld-glassblower.name = Glassblower -block.meld-glassblower.description = Melts down globules and extrudes them into a fine crystalline cloth, releasing [#cb8650]Aether[] in the process.\n\nRequires Riplom and power to run.\n\n[accent]Input liquid requirements based on efficiency.[] +block.meld2-glassblower.name = Glassblower +block.meld2-glassblower.description = Melts down globules and extrudes them into a fine crystalline cloth, releasing [#cb8650]Aether[] in the process.\n\nRequires Riplom and power to run.\n\n[accent]Input liquid requirements based on efficiency.[] -block.meld-vitric-weaver.name = Vitric Weaver -block.meld-vitric-weaver.description = Weaves Dissonitre into a fine crystalline cloth.\n\nUntangles [#8872da]Rift[] input into [#cb8650]Aether[] in the process, requiring Riplom to run.\n\n[accent]Input liquid requirements based on efficiency.[] +block.meld2-vitric-weaver.name = Vitric Weaver +block.meld2-vitric-weaver.description = Weaves Dissonitre into a fine crystalline cloth.\n\nUntangles [#8872da]Rift[] input into [#cb8650]Aether[] in the process, requiring Riplom to run.\n\n[accent]Input liquid requirements based on efficiency.[] -block.meld-brick-conglomerator.name = Conglomeration Rig -block.meld-brick-conglomerator.description = Crushes up Carbolith and mixes it with vent fumes and [#e6c700]Ichor[], then presses the slurry into Bricks. Requires [#cbdbfc]Aspect[] to run. +block.meld2-brick-conglomerator.name = Conglomeration Rig +block.meld2-brick-conglomerator.description = Crushes up Carbolith and mixes it with vent fumes and [#e6c700]Ichor[], then presses the slurry into Bricks. Requires [#cbdbfc]Aspect[] to run. -block.meld-silver-husk.name = Silver Husk -block.meld-silver-husk.description = Buildable, [accent]insulated[] protection. Slowly regenerates when fed [#cbdbfc]Aspect[].\n\n[accent]Plated[] +block.meld2-silver-husk.name = Silver Husk +block.meld2-silver-husk.description = Buildable, [accent]insulated[] protection. Slowly regenerates when fed [#cbdbfc]Aspect[].\n\n[accent]Plated[] -block.meld-shadesteel-shingles.name = Shadesteel Shingles -block.meld-shadesteel-shingles.description = Mundane and bulky. -block.meld-shadesteel-shingles.details = Brick of Shadesteel bricks of Shadesteel ingots. +block.meld2-shadesteel-shingles.name = Shadesteel Shingles +block.meld2-shadesteel-shingles.description = Mundane and bulky. +block.meld2-shadesteel-shingles.details = Brick of Shadesteel bricks of Shadesteel ingots. -block.meld-barricade.name = Barricade -block.meld-barricade.description = Provides cover against enemy projectiles.\nQuick to build.\n\nEasy way to store Compacted Bricks/Stony Gloop outside of the core for onsite use.\n\n[accent]Armored.[] +block.meld2-barricade.name = Barricade +block.meld2-barricade.description = Provides cover against enemy projectiles.\nQuick to build.\n\nEasy way to store Compacted Bricks/Stony Gloop outside of the core for onsite use.\n\n[accent]Armored.[] -block.meld-sandbank.name = Sandbank -block.meld-sandbank.description = Provides cover against enemy projectiles.\nSoaks a lot of damage, but takes extra damage each hit.\n\n[red]Squishi! (45)[] -block.meld-sandbank.details = If pink sludge can build walls out of clay, why can't we!\nBecause... I see your point +block.meld2-sandbank.name = Sandbank +block.meld2-sandbank.description = Provides cover against enemy projectiles.\nSoaks a lot of damage, but takes extra damage each hit.\n\n[red]Squishi! (45)[] +block.meld2-sandbank.details = If pink sludge can build walls out of clay, why can't we!\nBecause... I see your point -block.meld-nullifier.name = [red]Nullifier -block.meld-nullifier.description = Constructs a devistating [#cbdbfc]Aspect[]-filled paylod that [red]decimates[] hostile buildings and units alike.\n\n[red]Annihilates its immediate surroundings on destruction, don't get too close![] +block.meld2-nullifier.name = [red]Nullifier +block.meld2-nullifier.description = Constructs a devistating [#cbdbfc]Aspect[]-filled paylod that [red]decimates[] hostile buildings and units alike.\n\n[red]Annihilates its immediate surroundings on destruction, don't get too close![] -block.meld-sonar-spire.name = Sonar Spire -block.meld-sonar-spire.description = Provides vission and [accent]Rallies[] nearby units. -block.meld-sonar-spire.details = Initially an aether flarestack build to help travelers find their way, morphed into an important building to rally biological and mechanical troops alike. +block.meld2-sonar-spire.name = Sonar Spire +block.meld2-sonar-spire.description = Provides vission and [accent]Rallies[] nearby units. +block.meld2-sonar-spire.details = Initially an aether flarestack build to help travelers find their way, morphed into an important building to rally biological and mechanical troops alike. -block.meld-movement-anchor.name = Movement Anchor -block.meld-movement-anchor.description = Targets and [accent]Anchor[]s enemy units. +block.meld2-movement-anchor.name = Movement Anchor +block.meld2-movement-anchor.description = Targets and [accent]Anchor[]s enemy units. -block.meld-gauze.name = Gauze -block.meld-gauze.description = Weaves a [accent]Resonarum[] thread using [#5b4739]Fumes[], automatically applying it to connected blocks. +block.meld2-gauze.name = Gauze +block.meld2-gauze.description = Weaves a [accent]Resonarum[] thread using [#5b4739]Fumes[], automatically applying it to connected blocks. -block.meld-bruisekit.name = Bruisekit -block.meld-bruisekit.description = Regenerates target block's health.\n\nPrioritises large, functional blocks and works at half speed on 1x1s.\n\nHeals up to 4x more health based on how low target health% is, down to 50%. +block.meld2-bruisekit.name = Bruisekit +block.meld2-bruisekit.description = Regenerates target block's health.\n\nPrioritises large, functional blocks and works at half speed on 1x1s.\n\nHeals up to 4x more health based on how low target health% is, down to 50%. -block.meld-mercurial-diffuser.name = Mercurial Diffuser -block.meld-mercurial-diffuser.description = Puffs clouds which intoxicate [#ea9ad6]Meld[] units. Applies a coating of [#89828c]Mercury[] to allied units. +block.meld2-mercurial-diffuser.name = Mercurial Diffuser +block.meld2-mercurial-diffuser.description = Puffs clouds which intoxicate [#ea9ad6]Meld[] units. Applies a coating of [#89828c]Mercury[] to allied units. -block.meld-ping-tower.name = Ping Tower -block.meld-ping-tower.description = uses debris pieces to fire a burst of snoar pings which highlight enemies hit through fog.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. -block.meld-ping-tower.details = Whilst unable to rally allies, it helped give vital information on the [#ea9ad6]Meld[]'s whereabouts. Finding openings in an attack wave may prove vital to the survival of a task force. +block.meld2-ping-tower.name = Ping Tower +block.meld2-ping-tower.description = uses debris pieces to fire a burst of snoar pings which highlight enemies hit through fog.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. +block.meld2-ping-tower.details = Whilst unable to rally allies, it helped give vital information on the [#ea9ad6]Meld[]'s whereabouts. Finding openings in an attack wave may prove vital to the survival of a task force. -block.meld-overseer-fabricator.name = Overseer Fabricator -block.meld-overseer-fabricator.description = Uses debris pieces to passively fabricate limited-duration [accent]Overseers[] to assist in nearby construction and [accent]Rally[] nearby allies.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. -block.meld-overseer-fabricator.details = An older model of the sonar spire.\nThough low, the debris upkeep ended up being too restrictive for certain locations, so a new building was developed to help unshroud areas of importance. +block.meld2-overseer-fabricator.name = Overseer Fabricator +block.meld2-overseer-fabricator.description = Uses debris pieces to passively fabricate limited-duration [accent]Overseers[] to assist in nearby construction and [accent]Rally[] nearby allies.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. +block.meld2-overseer-fabricator.details = An older model of the sonar spire.\nThough low, the debris upkeep ended up being too restrictive for certain locations, so a new building was developed to help unshroud areas of importance. -block.meld-fluid-sprayer.name = Fluid Sprayer -block.meld-fluid-sprayer.description = Continually charges up and fires a burst of pellets that spread liquid as they travel.\n[accent]Only functions above 75% pressure![] +block.meld2-fluid-sprayer.name = Fluid Sprayer +block.meld2-fluid-sprayer.description = Continually charges up and fires a burst of pellets that spread liquid as they travel.\n[accent]Only functions above 75% pressure![] -block.meld-environmental-drencher.name = Environmental Drencher -block.meld-environmental-drencher.description = Continually charges up and fires a ring of pellets that spread liquid as they travel.\n[accent]Only functions above 83% pressure![] +block.meld2-environmental-drencher.name = Environmental Drencher +block.meld2-environmental-drencher.description = Continually charges up and fires a ring of pellets that spread liquid as they travel.\n[accent]Only functions above 83% pressure![] -block.meld-chute.name = Chute -block.meld-chute.description = Transports items fowards. Only holds a single item. +block.meld2-chute.name = Chute +block.meld2-chute.description = Transports items fowards. Only holds a single item. -block.meld-plated-chute.name = Plated Chute -block.meld-plated-chute.description = Transports items fowards, blocks items from non-distrib blocks at the sides. Only holds a single item.\n\n[accent]Plated[] +block.meld2-plated-chute.name = Plated Chute +block.meld2-plated-chute.description = Transports items fowards, blocks items from non-distrib blocks at the sides. Only holds a single item.\n\n[accent]Plated[] -block.meld-glasswork-chute.name = Glasswork Chute -block.meld-glasswork-chute.description = Forms, then transports batches of items. Conducts power like a wire, double in speed while fed. -block.meld-glasswork-chute.details = You wanted a better chute? You've got one now.\n +block.meld2-glasswork-chute.name = Glasswork Chute +block.meld2-glasswork-chute.description = Forms, then transports batches of items. Conducts power like a wire, double in speed while fed. +block.meld2-glasswork-chute.details = You wanted a better chute? You've got one now.\n -block.meld-chute-router.name = Chute Router -block.meld-chute-router.description = Routes items to three sides. Only accepts items from the back. Can be configured as a sorter. +block.meld2-chute-router.name = Chute Router +block.meld2-chute-router.description = Routes items to three sides. Only accepts items from the back. Can be configured as a sorter. -block.meld-chute-crossing.name = Chute Crossing -block.meld-chute-crossing.description = Lets items cross through without intersecting with eachother. +block.meld2-chute-crossing.name = Chute Crossing +block.meld2-chute-crossing.description = Lets items cross through without intersecting with eachother. -block.meld-chute-overflow.name = Chute Overflow -block.meld-chute-overflow.description = Routes items to the front, or to the sides if blocked. \n\nAccepts items from the back, or the sides if empty. +block.meld2-chute-overflow.name = Chute Overflow +block.meld2-chute-overflow.description = Routes items to the front, or to the sides if blocked. \n\nAccepts items from the back, or the sides if empty. -block.meld-chute-bridge.name = Chute Bridge -block.meld-chute-bridge.description = Moves items over a single tile. Bypasses structures and terrain. +block.meld2-chute-bridge.name = Chute Bridge +block.meld2-chute-bridge.description = Moves items over a single tile. Bypasses structures and terrain. -block.meld-chute-unloader.name = Chute Unloader -block.meld-chute-unloader.description = Unloads selected item out of adjacent blocks.\n[accent]Works on cores![] +block.meld2-chute-unloader.name = Chute Unloader +block.meld2-chute-unloader.description = Unloads selected item out of adjacent blocks.\n[accent]Works on cores![] -block.meld-unloading-hub.name = Unloading Hub -block.meld-unloading-hub.description = Rapidly unloads the selected item out of adjacent blocks.\n[accent]Heavly Armored![]\n\n[]Works on cores![]\n\n[red]Damages all neary buildings on destruction![] -block.meld-unloading-hub.details = This will cost [#cbdbfc]Aspect[] to run in the java port, hehehe~ +block.meld2-unloading-hub.name = Unloading Hub +block.meld2-unloading-hub.description = Rapidly unloads the selected item out of adjacent blocks.\n[accent]Heavly Armored![]\n\n[]Works on cores![]\n\n[red]Damages all neary buildings on destruction![] +block.meld2-unloading-hub.details = This will cost [#cbdbfc]Aspect[] to run in the java port, hehehe~ -block.meld-channel-face.name = Channel Face -block.meld-channel-face.description = Acts as a fluid junction. Transmits fluid without storing it. No risk of explosion. +block.meld2-channel-face.name = Channel Face +block.meld2-channel-face.description = Acts as a fluid junction. Transmits fluid without storing it. No risk of explosion. -block.meld-channel-node.name = Channel Node -block.meld-channel-node.description = Acts as a fluid router. Fluids can be input or output from any side. Stores a small amount of fluid. +block.meld2-channel-node.name = Channel Node +block.meld2-channel-node.description = Acts as a fluid router. Fluids can be input or output from any side. Stores a small amount of fluid. -block.meld-aspect-outlet.name = Aspect Outlet -block.meld-aspect-outlet.description = Decompresses [#cb8650]Aether[] into highly volatile [#cbdbfc]Aspect[] at a ratio of 1:10.\n\nWorks as an output terminal for a fluid network. +block.meld2-aspect-outlet.name = Aspect Outlet +block.meld2-aspect-outlet.description = Decompresses [#cb8650]Aether[] into highly volatile [#cbdbfc]Aspect[] at a ratio of 1:10.\n\nWorks as an output terminal for a fluid network. -block.meld-aspect-channel.name = Aspect Channel -block.meld-aspect-channel.description = Acts as a directional router.\n\nWhen transporting [#cb8650]Aether[], fills nearby buildings with highly volatile [#cbdbfc]Aspect[].\n\nWorks as an insulated input/output terminal for a fluid network.\n\n[accent]Plated![] +block.meld2-aspect-channel.name = Aspect Channel +block.meld2-aspect-channel.description = Acts as a directional router.\n\nWhen transporting [#cb8650]Aether[], fills nearby buildings with highly volatile [#cbdbfc]Aspect[].\n\nWorks as an insulated input/output terminal for a fluid network.\n\n[accent]Plated![] -block.meld-pressure-vent.name = Pressure Vent -block.meld-pressure-vent.description = Acts as a fluid router. Releases stored vapor into the atmosphere. +block.meld2-pressure-vent.name = Pressure Vent +block.meld2-pressure-vent.description = Acts as a fluid router. Releases stored vapor into the atmosphere. -block.meld-manual-valve.name = Manual Valve -block.meld-manual-valve.description = Acts as a fluid junction. Can be toggled to control if fluids can pass through. +block.meld2-manual-valve.name = Manual Valve +block.meld2-manual-valve.description = Acts as a fluid junction. Can be toggled to control if fluids can pass through. -block.meld-intake-valve.name = Intake Valve -block.meld-intake-valve.description = Acts as a fluid junction. Can be toggled to control if fluids can pass through.\n\n[accent]Can compact/de-compact incoming sources of fluids into the channel network.[]\n\n[accent]Plated![] -block.meld-intake-valve.details = Yes, it works. +block.meld2-intake-valve.name = Intake Valve +block.meld2-intake-valve.description = Acts as a fluid junction. Can be toggled to control if fluids can pass through.\n\n[accent]Can compact/de-compact incoming sources of fluids into the channel network.[]\n\n[accent]Plated![] +block.meld2-intake-valve.details = Yes, it works. -block.meld-valve-controller.name = Valve Controller -block.meld-valve-controller.description = Acts as a fluid junction. Enables the targeted block when surrounded by blocks with fluids over its threshold.\n\nThreshold/State can be configured. -block.meld-valve-controller.details = Scidustry players, Ikaru is calling YOU. +block.meld2-valve-controller.name = Valve Controller +block.meld2-valve-controller.description = Acts as a fluid junction. Enables the targeted block when surrounded by blocks with fluids over its threshold.\n\nThreshold/State can be configured. +block.meld2-valve-controller.details = Scidustry players, Ikaru is calling YOU. -block.meld-channel-director.name = Channel Director -block.meld-channel-director.description = When used with other fluid blocks, [red]restricts[] the flow of fluids to one direction only. +block.meld2-channel-director.name = Channel Director +block.meld2-channel-director.description = When used with other fluid blocks, [red]restricts[] the flow of fluids to one direction only. -block.meld-pipebox.name = Pipebox -block.meld-pipebox.description = Routes fluids to the sides.\n\nCan be toggled to rotate the connections. +block.meld2-pipebox.name = Pipebox +block.meld2-pipebox.description = Routes fluids to the sides.\n\nCan be toggled to rotate the connections. -block.meld-channel-director-pressurized.name = Pressurized Channel Director -block.meld-channel-director-pressurized.description = Acts as a conduit. Transmits fluid from one side to the other. Stores a tiny amount of fluid.\n[accent]Transports at 200% pressure.[]\n\n[red]Will chain destruct![] +block.meld2-channel-director-pressurized.name = Pressurized Channel Director +block.meld2-channel-director-pressurized.description = Acts as a conduit. Transmits fluid from one side to the other. Stores a tiny amount of fluid.\n[accent]Transports at 200% pressure.[]\n\n[red]Will chain destruct![] -block.meld-blossoming-channel.name = Blossoming Channel -block.meld-blossoming-channel.description = Acts as a conduit. Transmits fluid from one side to the other. Stores a small amount of fluid.\n[accent]Transports at 500% pressure.[]\n\n[red]Will chain destruct![] +block.meld2-blossoming-channel.name = Blossoming Channel +block.meld2-blossoming-channel.description = Acts as a conduit. Transmits fluid from one side to the other. Stores a small amount of fluid.\n[accent]Transports at 500% pressure.[]\n\n[red]Will chain destruct![] -block.meld-compartmentalized-node.name = Compartmentalized Node -block.meld-compartmentalized-node.description = Acts as a fluid router. Liquid can be input or output from any side.\n\nSeparately stores [#b89f47]Nectar[], [#89828c]Mercury[], [#7d312f]Blood[] and [#89413e]Ooze[]. When supplied Debris while full with all four fluids, slowly voids its contents. -block.meld-compartmentalized-node.details = Yes, it's dumb that the name goes one character off the UI frag. I'm triggered by this too. +block.meld2-compartmentalized-node.name = Compartmentalized Node +block.meld2-compartmentalized-node.description = Acts as a fluid router. Liquid can be input or output from any side.\n\nSeparately stores [#b89f47]Nectar[], [#89828c]Mercury[], [#7d312f]Blood[] and [#89413e]Ooze[]. When supplied Debris while full with all four fluids, slowly voids its contents. +block.meld2-compartmentalized-node.details = Yes, it's dumb that the name goes one character off the UI frag. I'm triggered by this too. -block.meld-channel-hub.name = Channel Hub -block.meld-channel-hub.description = Acts as a fluid router. Liquid can be input or output from any side.\n\nStores 100 nodes worth of fluid.\n\n[accent]Plated![] +block.meld2-channel-hub.name = Channel Hub +block.meld2-channel-hub.description = Acts as a fluid router. Liquid can be input or output from any side.\n\nStores 100 nodes worth of fluid.\n\n[accent]Plated![] -block.meld-filtration-unit.name = Filtration Unit -block.meld-filtration-unit.description = Acts as a filter. Outputs [#89828c]Mercury[] to any side.\n\nWhen powered with [#cbdbfc]Aspect[] while containing [#89828c]Mercury[], filters out Debris and Starving masses from [#7d312f]Blood[] and [#b89f47]Nectar[], producing some [#89828c]Mercury[] in the process.\n\n[accent]Halts when fully pressurized with [#89828c]Mercury[]![] +block.meld2-filtration-unit.name = Filtration Unit +block.meld2-filtration-unit.description = Acts as a filter. Outputs [#89828c]Mercury[] to any side.\n\nWhen powered with [#cbdbfc]Aspect[] while containing [#89828c]Mercury[], filters out Debris and Starving masses from [#7d312f]Blood[] and [#b89f47]Nectar[], producing some [#89828c]Mercury[] in the process.\n\n[accent]Halts when fully pressurized with [#89828c]Mercury[]![] -block.meld-neutralization-chamber.name = Neutralization Chamber -block.meld-neutralization-chamber.description = Uses [#89828c]Mercury[] and Elderflesh to soak up [#7d312f]Blood[], producing miniscule amounts of power in the process.\nActs as a fluid router for [#7d312f]Blood[].\n\n[scarlet]Explodes when fully pressurized with [#7d312f]Blood[]![] +block.meld2-neutralization-chamber.name = Neutralization Chamber +block.meld2-neutralization-chamber.description = Uses [#89828c]Mercury[] and Elderflesh to soak up [#7d312f]Blood[], producing miniscule amounts of power in the process.\nActs as a fluid router for [#7d312f]Blood[].\n\n[scarlet]Explodes when fully pressurized with [#7d312f]Blood[]![] -block.meld-conductive-pile.name = Conductive Pile -block.meld-conductive-pile.description = It's a pile of electrum coils which is conductive. Go figure what you can use this for.\n\n[accent]And I guess it stores a tiny bit of power[]\n\n[red]...Squishi? (80)[] +block.meld2-conductive-pile.name = Conductive Pile +block.meld2-conductive-pile.description = It's a pile of electrum coils which is conductive. Go figure what you can use this for.\n\n[accent]And I guess it stores a tiny bit of power[]\n\n[red]...Squishi? (80)[] -block.meld-connector.name = Connector -block.meld-connector.description = Projects lasers which share power between the node and its target.\n\n[accent]Plated[] +block.meld2-connector.name = Connector +block.meld2-connector.description = Projects lasers which share power between the node and its target.\n\n[accent]Plated[] -block.meld-substation.name = Substation -block.meld-substation.description = Projects lasers which share power between the station and its target. Stores power in an internal buffer.\n\n[accent]Plated![] +block.meld2-substation.name = Substation +block.meld2-substation.description = Projects lasers which share power between the station and its target. Stores power in an internal buffer.\n\n[accent]Plated![] -block.meld-powerbank.name = Powerbank -block.meld-powerbank.description = Stores large amounts of power and releases it in times of defict. -block.meld-powerbank.details = Accumulates [#cb8650]Aether[] from the atmosphere as Dissonitre is stimulated, and burns it off as [#cbdbfc]Aspect[] when power runs dry.\n\nThere must be some structure which generates power directly from [#cbdbfc]Aspect[]... +block.meld2-powerbank.name = Powerbank +block.meld2-powerbank.description = Stores large amounts of power and releases it in times of defict. +block.meld2-powerbank.details = Accumulates [#cb8650]Aether[] from the atmosphere as Dissonitre is stimulated, and burns it off as [#cbdbfc]Aspect[] when power runs dry.\n\nThere must be some structure which generates power directly from [#cbdbfc]Aspect[]... -block.meld-glass-burner.name = Glass Burner [red](PS) -block.meld-glass-burner.description = Burns Dissonitre based material with bits of Riplom stabalized with [#8872da]Rift[], producing minute amounts of power.\n\n[red]Paceholder sprite![] +block.meld2-glass-burner.name = Glass Burner [red](PS) +block.meld2-glass-burner.description = Burns Dissonitre based material with bits of Riplom stabalized with [#8872da]Rift[], producing minute amounts of power.\n\n[red]Paceholder sprite![] -block.meld-dissonance-discharger.name = Discharge Outlet [red](PS) -block.meld-dissonance-discharger.description = Crushes Dissonitre and focuses the resulting Aether into [#cbdbfc]Aspect[] efficiently using resonarum lenses, producing some power in the process.\n\n[scarlet]Explodes when fully pressurized with [#cbdbfc]Aspect[]![]\n\n[red]Placeholder Sprite![] +block.meld2-dissonance-discharger.name = Discharge Outlet [red](PS) +block.meld2-dissonance-discharger.description = Crushes Dissonitre and focuses the resulting Aether into [#cbdbfc]Aspect[] efficiently using resonarum lenses, producing some power in the process.\n\n[scarlet]Explodes when fully pressurized with [#cbdbfc]Aspect[]![]\n\n[red]Placeholder Sprite![] block.sludge-decomposer.name = Sludge Decomposer block.sludge-decomposer.description = Decomposes [#e6c700]Ichor[] and [#89413e]Ooze[], generating power and [#cbdbfc]Aspect[]. block.sludge-decomposer. -block.meld-purification-chamber.name = Purification Chamber -block.meld-purification-chamber.description = Blasts Starving Masses over high heat decomposing them into [#7d312f]Blood[], producing some power in the proceess.\n\nRequires [#89828c]Mercury[] and [#cbdbfc]Aspect[] to run.\n\n[scarlet]Explodes when fully pressurized with [#7d312f]Blood[]![] +block.meld2-purification-chamber.name = Purification Chamber +block.meld2-purification-chamber.description = Blasts Starving Masses over high heat decomposing them into [#7d312f]Blood[], producing some power in the proceess.\n\nRequires [#89828c]Mercury[] and [#cbdbfc]Aspect[] to run.\n\n[scarlet]Explodes when fully pressurized with [#7d312f]Blood[]![] -block.meld-thermo-matting.name = Thermo matting [red](PS)[] -block.meld-thermo-matting.description = Passively obtains power from meld digestion over [#e6c700]Ichor[] sources, extracting some [#e6c700]Ichor[] in the process.\n\n[red]PLACEHOLDER SPRITE[] -block.meld-thermo-matting.details = ...appears to be little to no waste left behind. +block.meld2-thermo-matting.name = Thermo matting [red](PS)[] +block.meld2-thermo-matting.description = Passively obtains power from meld digestion over [#e6c700]Ichor[] sources, extracting some [#e6c700]Ichor[] in the process.\n\n[red]PLACEHOLDER SPRITE[] +block.meld2-thermo-matting.details = ...appears to be little to no waste left behind. //Production -block.meld-aether-accumulator.name = Aether Accumulator -block.meld-aether-accumulator.description = Collects [#cb8650]Aether[] from suitable sources. +block.meld2-aether-accumulator.name = Aether Accumulator +block.meld2-aether-accumulator.description = Collects [#cb8650]Aether[] from suitable sources. -block.meld-fumehood.name = Fumehood -block.meld-fumehood.description = Placed over sources of aspects or gasses. +block.meld2-fumehood.name = Fumehood +block.meld2-fumehood.description = Placed over sources of aspects or gasses. -block.meld-crystal-cracker.name = Crystal Cracker -block.meld-crystal-cracker.description = Breaks open Dissonitre crystals over [accent]aspect soil[] as a source of [meld-thundering-aether]Thundering Aether[].\n\nActs as a liquid router for its output between adjacent blocks. -block.meld-crystal-cracker.details = ...mandatory "..." entry added in post recording in transcript +block.meld2-crystal-cracker.name = Crystal Cracker +block.meld2-crystal-cracker.description = Breaks open Dissonitre crystals over [accent]aspect soil[] as a source of [meld2-thundering-aether]Thundering Aether[].\n\nActs as a liquid router for its output between adjacent blocks. +block.meld2-crystal-cracker.details = ...mandatory "..." entry added in post recording in transcript -block.meld-crush-weaver.name = Crush Weaver -block.meld-crush-weaver.description = "Efficiently" weaves Dissonitre into Vitric Mesh over [accent]aspect soil[]. Requires [#cbdbfc]Aspect[] to run. -block.meld-crush-weaver.details = ...your guess as to how this building works is as good as mine +block.meld2-crush-weaver.name = Crush Weaver +block.meld2-crush-weaver.description = "Efficiently" weaves Dissonitre into Vitric Mesh over [accent]aspect soil[]. Requires [#cbdbfc]Aspect[] to run. +block.meld2-crush-weaver.details = ...your guess as to how this building works is as good as mine -block.meld-aspect-discharger.name = Aspect Discharger -block.meld-aspect-discharger.description = Converts [#cbdbfc]Aspect[]s to [accent]power[] over [accent]aspect soil[]. -block.meld-aspect-discharger.details = ...alchemy magic bubllshit +block.meld2-aspect-discharger.name = Aspect Discharger +block.meld2-aspect-discharger.description = Converts [#cbdbfc]Aspect[]s to [accent]power[] over [accent]aspect soil[]. +block.meld2-aspect-discharger.details = ...alchemy magic bubllshit -block.meld-aether-vitrifier.name = Aether Vitrifier -block.meld-aether-vitrifier.description = Grows Dissonitre with [#cbdbfc]Aether[] over [accent]aspect soil[] using [accent]power[]. -block.meld-aether-vitrifier.details = ...less alchemy bullshit +block.meld2-aether-vitrifier.name = Aether Vitrifier +block.meld2-aether-vitrifier.description = Grows Dissonitre with [#cbdbfc]Aether[] over [accent]aspect soil[] using [accent]power[]. +block.meld2-aether-vitrifier.details = ...less alchemy bullshit -block.meld-aether-cracker.name = Aether Cracker -block.meld-aether-cracker.description = Cracks [#cb8650]Aether[] into [#8872da]Rift[] over [accent]ichor vents[]. Siphons some [#e6c700]Ichor[] in the process. Shares [#cb8650]Aether[] out the sides. \n\n[accent]Excess fluids are released to avoid overpressurizing [red]including input [#cb8650]Aether[]![].[] +block.meld2-aether-cracker.name = Aether Cracker +block.meld2-aether-cracker.description = Cracks [#cb8650]Aether[] into [#8872da]Rift[] over [accent]ichor vents[]. Siphons some [#e6c700]Ichor[] in the process. Shares [#cb8650]Aether[] out the sides. \n\n[accent]Excess fluids are released to avoid overpressurizing [red]including input [#cb8650]Aether[]![].[] -block.meld-vitric-stimulator-ruined.name = Vitric Stimu1ator [lightgray](Ruined)[] -block.meld-vitric-stimulator.description = Harvests [#8872da]Rift[] from suitable sources using Vitric Meshes to filter the air, producing a small amount of glass waste.\n\nRequires Power to run.\n\n[orange]Inefficient, deconstruction is advised[] -block.meld-vitric-stimulator.details = If only those vents could be harvested from... +block.meld2-vitric-stimulator-ruined.name = Vitric Stimu1ator [lightgray](Ruined)[] +block.meld2-vitric-stimulator.description = Harvests [#8872da]Rift[] from suitable sources using Vitric Meshes to filter the air, producing a small amount of glass waste.\n\nRequires Power to run.\n\n[orange]Inefficient, deconstruction is advised[] +block.meld2-vitric-stimulator.details = If only those vents could be harvested from... -block.meld-flarestack-filter.name = Flarestack Filter -block.meld-flarestack-filter.description = Harvests [#8872da]Rift[] from suitable sources by neutralizing the impurities from the air.\n\nRequires Resonarum and Riplom to run. -block.meld-flarestack-filter.details = Neutralizes the Aether content of an impure [accent]rift vent[] by focusing it into Aspect and combusting it with Riplom, but requires a constant supply of lenses to function. +block.meld2-flarestack-filter.name = Flarestack Filter +block.meld2-flarestack-filter.description = Harvests [#8872da]Rift[] from suitable sources by neutralizing the impurities from the air.\n\nRequires Resonarum and Riplom to run. +block.meld2-flarestack-filter.details = Neutralizes the Aether content of an impure [accent]rift vent[] by focusing it into Aspect and combusting it with Riplom, but requires a constant supply of lenses to function. -block.meld-filtrative-feeder.name = Filtrative Feeder -block.meld-filtrative-feeder.description = Processes batches of [#e6c700]Ichor[] over [accent]meld floors[], aquiring some [#ea9ad6]Meld[] and pieces of Debris each batch processed.\n\nRequires a tiny trickle of power.\n\n[accent]Input liquid requirements based on efficiency. -block.meld-filtrative-feeder.details = If you can't beat em... +block.meld2-filtrative-feeder.name = Filtrative Feeder +block.meld2-filtrative-feeder.description = Processes batches of [#e6c700]Ichor[] over [accent]meld floors[], aquiring some [#ea9ad6]Meld[] and pieces of Debris each batch processed.\n\nRequires a tiny trickle of power.\n\n[accent]Input liquid requirements based on efficiency. +block.meld2-filtrative-feeder.details = If you can't beat em... -block.meld-siphon.name = Siphon -block.meld-siphon.description = Pumps [#89828c]Mercury[] fluid deposits at [accent]half pressure[]. Uses Compacted Bricks/Stony Gloop to repair stability. \n\nStability is [red]limited[] and deposits will break open if exhausted! \n\n[gray]Deposit repairing is a WIP and will only be added if there's enough of a need. +block.meld2-siphon.name = Siphon +block.meld2-siphon.description = Pumps [#89828c]Mercury[] fluid deposits at [accent]half pressure[]. Uses Compacted Bricks/Stony Gloop to repair stability. \n\nStability is [red]limited[] and deposits will break open if exhausted! \n\n[gray]Deposit repairing is a WIP and will only be added if there's enough of a need. -block.meld-sap-extractor.name = Sap Extractor -block.meld-sap-extractor.description = Extracts [#b89f47]Nectar[] from suitable sources. Needs to be attached to a [#BE7E60]Mangrove Heart[] or a [accent]Nectar Fissure[] over Nectar or Mercury floors. +block.meld2-sap-extractor.name = Sap Extractor +block.meld2-sap-extractor.description = Extracts [#b89f47]Nectar[] from suitable sources. Needs to be attached to a [#BE7E60]Mangrove Heart[] or a [accent]Nectar Fissure[] over Nectar or Mercury floors. -block.meld-displacement-pump.name = Displacement Pump -block.meld-displacement-pump.description = Dumps Debris into fluids to retrive a steady supply of fluid indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\n[accent]Plated[] +block.meld2-displacement-pump.name = Displacement Pump +block.meld2-displacement-pump.description = Dumps Debris into fluids to retrive a steady supply of fluid indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\n[accent]Plated[] -block.meld-elemental-blaster.name = Elemental Blaster -block.meld-elemental-blaster.description = Blasts deposits for items indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nCan be boosted with [#ea9ad6]Meld[] to double harvesting speed. +block.meld2-elemental-blaster.name = Elemental Blaster +block.meld2-elemental-blaster.description = Blasts deposits for items indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nCan be boosted with [#ea9ad6]Meld[] to double harvesting speed. -block.meld-excavation-quarry.name = Excavation Quarry -block.meld-excavation-quarry.description = Rips up the land it's placed on, and harvests from ore deposits indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nPipe in [accent]explosives[], [accent]stronger fuels[], [accent]grinding particulate[], or [accent]solvents[], to rip up the ground faster, or increase its yield. +block.meld2-excavation-quarry.name = Excavation Quarry +block.meld2-excavation-quarry.description = Rips up the land it's placed on, and harvests from ore deposits indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nPipe in [accent]explosives[], [accent]stronger fuels[], [accent]grinding particulate[], or [accent]solvents[], to rip up the ground faster, or increase its yield. -block.meld-pneumatic-pulsar.name = Pneumatic Pulsar -block.meld-pneumatic-pulsar.description = Blasts a single deposit for items indefinitely while maintained. Requires [#cb8650]Aether[] to run.\n\n[red]Explosions damage everything around them, high maintenance![] +block.meld2-pneumatic-pulsar.name = Pneumatic Pulsar +block.meld2-pneumatic-pulsar.description = Blasts a single deposit for items indefinitely while maintained. Requires [#cb8650]Aether[] to run.\n\n[red]Explosions damage everything around them, high maintenance![] -block.meld-elemental-sampler.name = Elemental Sampler -block.meld-elemental-sampler.description = Samples deposits for items indefinitely. Requires [#cbdbfc]Aspect[] and [#8872da]Rift[] to run.\n\nCan be boosted with [#b460e2]Warp[] to double harvesting speed.\n\n[accent]More efficient against soft tissue[] -block.meld-elemental-sampler.details = It wants to return home. +block.meld2-elemental-sampler.name = Elemental Sampler +block.meld2-elemental-sampler.description = Samples deposits for items indefinitely. Requires [#cbdbfc]Aspect[] and [#8872da]Rift[] to run.\n\nCan be boosted with [#b460e2]Warp[] to double harvesting speed.\n\n[accent]More efficient against soft tissue[] +block.meld2-elemental-sampler.details = It wants to return home. -block.meld-harbinger-of-decay.name = Harbinger of Decay -block.meld-harbinger-of-decay.description = Channels meld from pools into itself. -block.meld-harbinger-of-decay.details = Somebody wants their shot of resonarum, hehehe~ +block.meld2-harbinger-of-decay.name = Harbinger of Decay +block.meld2-harbinger-of-decay.description = Channels meld from pools into itself. +block.meld2-harbinger-of-decay.details = Somebody wants their shot of resonarum, hehehe~ -block.meld-elemental-blaster.details = Developed late into the incursion. Previous mining methods were subject to failure at the whims of mechanical parts corroding. +block.meld2-elemental-blaster.details = Developed late into the incursion. Previous mining methods were subject to failure at the whims of mechanical parts corroding. -block.meld-techno-dredger.name = Techno Dredger -block.meld-techno-dredger.description = Collects massive amounts of lose pieces of technoscrap. Requires [#cbdbfc]Aspect[] to run. +block.meld2-techno-dredger.name = Techno Dredger +block.meld2-techno-dredger.description = Collects massive amounts of lose pieces of technoscrap. Requires [#cbdbfc]Aspect[] to run. -block.meld-earthen-grinder.name = Earthen Grinder -block.meld-earthen-grinder.description = Crushes up earthen stone and mixes it with [#b89f47]Nectar[] & [#8872da]Rift[] to make Stony Gloop. +block.meld2-earthen-grinder.name = Earthen Grinder +block.meld2-earthen-grinder.description = Crushes up earthen stone and mixes it with [#b89f47]Nectar[] & [#8872da]Rift[] to make Stony Gloop. -block.meld-elemental-folder.name = Electrum Folder -block.meld-electrum-folder.description = Purifies, and folds native electrum deposits into sheets. Able to process deposits poisoned by [#89828c]Mercury[].\n\nRequires [#cbdbfc]Aspect[] to run. +block.meld2-elemental-folder.name = Electrum Folder +block.meld2-electrum-folder.description = Purifies, and folds native electrum deposits into sheets. Able to process deposits poisoned by [#89828c]Mercury[].\n\nRequires [#cbdbfc]Aspect[] to run. -block.meld-pad-omega.name = Pad: Trench -block.meld-pad-omega.description = Outpost of the base. Only one can be active at a time.\n[red]Cannot support a base alone.[] -block.meld-pad-omega.details = A callback to the good ol' days +block.meld2-pad-omega.name = Pad: Trench +block.meld2-pad-omega.description = Outpost of the base. Only one can be active at a time.\n[red]Cannot support a base alone.[] +block.meld2-pad-omega.details = A callback to the good ol' days -block.meld-pad-psi.name = Pad: Psi -block.meld-pad-psi.description = Outpost of the base. Only one can be active at a time.\n[red]Cannot support a base alone.[] -block.meld-pad-psi.details = Lasor. +block.meld2-pad-psi.name = Pad: Psi +block.meld2-pad-psi.description = Outpost of the base. Only one can be active at a time.\n[red]Cannot support a base alone.[] +block.meld2-pad-psi.details = Lasor. -block.meld-pad-phi.name = Pad: Phi -block.meld-pad-phi.description = Outpost of the base. Only one can be active at a time.\n[red]Cannot support a base alone.[] -block.meld-pad-phi.details = Golden ratio? What's that? +block.meld2-pad-phi.name = Pad: Phi +block.meld2-pad-phi.description = Outpost of the base. Only one can be active at a time.\n[red]Cannot support a base alone.[] +block.meld2-pad-phi.details = Golden ratio? What's that? -block.meld-aspect-incinerator.name = Aspect Incinerator -block.meld-aspect-incinerator.description = Incinerates items when fed [meld-aspect]Aspect[].\n\nBuffers items otherwise. -block.meld-aspect-incinerator.details = Shoulda been named output terminal or smthing +block.meld2-aspect-incinerator.name = Aspect Incinerator +block.meld2-aspect-incinerator.description = Incinerates items when fed [meld2-aspect]Aspect[].\n\nBuffers items otherwise. +block.meld2-aspect-incinerator.details = Shoulda been named output terminal or smthing -block.meld-core-raft-dormant.name = Core: Raft[lightgray](Dormant)[] -block.meld-core-raft-dormant.description = Core of the base. Allows units to pass through freely. [accent]Activates when inside a powered facility.[] -block.meld-core-raft-dormant.details = Cheap bunker with intra-sector item transport and radar built in. +block.meld2-core-raft-dormant.name = Core: Raft[lightgray](Dormant)[] +block.meld2-core-raft-dormant.description = Core of the base. Allows units to pass through freely. [accent]Activates when inside a powered facility.[] +block.meld2-core-raft-dormant.details = Cheap bunker with intra-sector item transport and radar built in. -block.meld-core-raft.name = Core: Raft -block.meld-core-raft.description = Core of the base. Allows units to pass through freely. Once all are destroyed, the sector is lost.\n\n[accent]Requires an adjacent incinerator to void excess items.[] -block.meld-core-raft.details = A great logistics hub. Equipped with single-use launch thrusters. +block.meld2-core-raft.name = Core: Raft +block.meld2-core-raft.description = Core of the base. Allows units to pass through freely. Once all are destroyed, the sector is lost.\n\n[accent]Requires an adjacent incinerator to void excess items.[] +block.meld2-core-raft.details = A great logistics hub. Equipped with single-use launch thrusters. -block.meld-core-bunker.name = Core: Bunker -block.meld-core-bunker.description = Core of the base. Allows units to pass through freely. Once all are destroyed, the sector is lost. -block.meld-core-bunker.details = A great logistics hub. Equipped with single-use launch thrusters. +block.meld2-core-bunker.name = Core: Bunker +block.meld2-core-bunker.description = Core of the base. Allows units to pass through freely. Once all are destroyed, the sector is lost. +block.meld2-core-bunker.details = A great logistics hub. Equipped with single-use launch thrusters. -block.meld-buffer.name = Buffer -block.meld-buffer.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Does not connect to the core.\n\n[accent]Lightly Armored![] +block.meld2-buffer.name = Buffer +block.meld2-buffer.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Does not connect to the core.\n\n[accent]Lightly Armored![] -block.meld-interface.name = Interface -block.meld-interface.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Can connect to the core!\n\nGround units can walk over this. +block.meld2-interface.name = Interface +block.meld2-interface.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Can connect to the core!\n\nGround units can walk over this. -block.meld-launch-station.name = Launch Station -block.meld-launch-station.description = Pulls units in, and propels them in the target direction.\n\nFueled by [meld-aspect]Aspect[]. -block.meld-launch-station.details = The beta version of the launch station was developed into something useful for kart racing, while the version chosen for deployment was refined to be highly consistent (inconsistently). +block.meld2-launch-station.name = Launch Station +block.meld2-launch-station.description = Pulls units in, and propels them in the target direction.\n\nFueled by [meld2-aspect]Aspect[]. +block.meld2-launch-station.details = The beta version of the launch station was developed into something useful for kart racing, while the version chosen for deployment was refined to be highly consistent (inconsistently). -block.meld-friction-pad.name = Friction Pad -block.meld-friction-pad.description = Increases the drag of units, and removes the boost from Launch Stations.\n\nCan only be placed on shallow liquids, always replaced by other buildings. -block.meld-friction-pad.details = Drifting? More like a floormat. +block.meld2-friction-pad.name = Friction Pad +block.meld2-friction-pad.description = Increases the drag of units, and removes the boost from Launch Stations.\n\nCan only be placed on shallow liquids, always replaced by other buildings. +block.meld2-friction-pad.details = Drifting? More like a floormat. -block.meld-shark-factory.name = Shark Autoforge -block.meld-shark-factory.description = Pumps out Shark units using Silver and Carbolith.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. +block.meld2-shark-factory.name = Shark Autoforge +block.meld2-shark-factory.description = Pumps out Shark units using Silver and Carbolith.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. -block.meld-remora-factory.name = Remora Autoforge -block.meld-remora-factory.description = Pumps out Remora units using Debris, Electrum and Vitric Mesh.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. +block.meld2-remora-factory.name = Remora Autoforge +block.meld2-remora-factory.description = Pumps out Remora units using Debris, Electrum and Vitric Mesh.\n\nRequires a large amount of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. -block.meld-narwhal-factory.name = Narwhal Autoforge -block.meld-narwhal-factory.description = Pumps out Narwhal units using Carbolith, Compacted Bricks and Stony Gloop.\n\nRequires a sizeable amount of [#cbdbfc]Aspect[] and [#e6c700]Ichor[] to run, getting quicker corosponding to the supply.\n\n[accent]Lightly Armored[] +block.meld2-narwhal-factory.name = Narwhal Autoforge +block.meld2-narwhal-factory.description = Pumps out Narwhal units using Carbolith, Compacted Bricks and Stony Gloop.\n\nRequires a sizeable amount of [#cbdbfc]Aspect[] and [#e6c700]Ichor[] to run, getting quicker corosponding to the supply.\n\n[accent]Lightly Armored[] -block.meld-hammerhead-factory.name = Hammerhead Bioforge -block.meld-hammerhead-factory.description = Rapidly Gestates Hammerhead units using Debris, Riplom and Resonarum.\n\nRequires a sizeable amount of [#8872da]Rift[] and a trickle of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. +block.meld2-hammerhead-factory.name = Hammerhead Bioforge +block.meld2-hammerhead-factory.description = Rapidly Gestates Hammerhead units using Debris, Riplom and Resonarum.\n\nRequires a sizeable amount of [#8872da]Rift[] and a trickle of [#cbdbfc]Aspect[] to run, getting quicker corosponding to the supply. -block.meld-astrea-factory.name = Astrea Autoforge -block.meld-astrea-factory.description = Pumps out Astrea units using Debris and Electrum.\n\nRequires a sizeable amount of [#cbdbfc]Aspect[] and [#89828c]Mercury[] to run, getting quicker corosponding to the supply. +block.meld2-astrea-factory.name = Astrea Autoforge +block.meld2-astrea-factory.description = Pumps out Astrea units using Debris and Electrum.\n\nRequires a sizeable amount of [#cbdbfc]Aspect[] and [#89828c]Mercury[] to run, getting quicker corosponding to the supply. //Manggrove blocks -block.meld-swamp-root-heart.name = [#BE7E60]Mangrove Heart[] -block.meld-swamp-root-heart.description = Harvestable for [#b89f47]Nectar[]. Never changes form.\n\n[red]Can't be deconstructed.\n\nMust be targeted directly to be attacked![] +block.meld2-swamp-root-heart.name = [#BE7E60]Mangrove Heart[] +block.meld2-swamp-root-heart.description = Harvestable for [#b89f47]Nectar[]. Never changes form.\n\n[red]Can't be deconstructed.\n\nMust be targeted directly to be attacked![] -block.meld-swamp-root-dormant.name = [#BE7E60]Mangrove Root (Dormant)[] -block.meld-swamp-root-dormant.description = Can [#89828c]blossom[] or [#4181B9]sprout leaves[]. Increases the global swamp unit capacity.\n\n[red]Can't be deconstructed.\n\nMust be targeted directly to be attacked![] +block.meld2-swamp-root-dormant.name = [#BE7E60]Mangrove Root (Dormant)[] +block.meld2-swamp-root-dormant.description = Can [#89828c]blossom[] or [#4181B9]sprout leaves[]. Increases the global swamp unit capacity.\n\n[red]Can't be deconstructed.\n\nMust be targeted directly to be attacked![] -block.meld-swamp-mangrove-large.name = [#BE7E60]Mangrove Effigy[] -block.meld-swamp-mangrove-large.description = Acts as a hub for resources in the swamp. +block.meld2-swamp-mangrove-large.name = [#BE7E60]Mangrove Effigy[] +block.meld2-swamp-mangrove-large.description = Acts as a hub for resources in the swamp. -block.meld-swamp-mangrove-large-awake.name = [#4181B9]Awakened Mangrove Effigy[] -block.meld-swamp-mangrove-large-awake.description = Acts as a hub for resources in the swamp. Spreads blood through silt. +block.meld2-swamp-mangrove-large-awake.name = [#4181B9]Awakened Mangrove Effigy[] +block.meld2-swamp-mangrove-large-awake.description = Acts as a hub for resources in the swamp. Spreads blood through silt. -block.meld-swamp-plant-thorn-crawler.name = [#89828c]Thorn[] [#BE7E60]Crawler[] -block.meld-swamp-plant-thorn-crawler.description = Fires off 2 bursts of needles in 3 directions. Bursts into a pool of [#b89f47]Nectar[] and drops of [#89413e]Ooze[] upon destruction. +block.meld2-swamp-plant-thorn-crawler.name = [#89828c]Thorn[] [#BE7E60]Crawler[] +block.meld2-swamp-plant-thorn-crawler.description = Fires off 2 bursts of needles in 3 directions. Bursts into a pool of [#b89f47]Nectar[] and drops of [#89413e]Ooze[] upon destruction. //Meld blocks -block.meld-meld-node.name = Meld Node -block.meld-meld-node.description = Keeps the surounding swampland frozen. Spawnpoint for [#ea9ad6]Meld[] creatures during waves. +block.meld2-meld2-node.name = Meld Node +block.meld2-meld2-node.description = Keeps the surounding swampland frozen. Spawnpoint for [#ea9ad6]Meld[] creatures during waves. -block.meld-meld-surpressor.name = Meld Surpressor -block.meld-meld-surpressor.description = Keeps the surounding swampland frozen. Constructed on top of core zones. Spawnpoint for [#ea9ad6]Meld[] creatures during waves.\n\n[red]Armored[] +block.meld2-meld2-surpressor.name = Meld Surpressor +block.meld2-meld2-surpressor.description = Keeps the surounding swampland frozen. Constructed on top of core zones. Spawnpoint for [#ea9ad6]Meld[] creatures during waves.\n\n[red]Armored[] -block.meld-meld-synapse.name = Meld Synapse -block.meld-meld-synapse.description = Stabalizes surounding crystal barriers. Once no synapses remain, the entire wall crumbles. +block.meld2-meld2-synapse.name = Meld Synapse +block.meld2-meld2-synapse.description = Stabalizes surounding crystal barriers. Once no synapses remain, the entire wall crumbles. -block.meld-meld-capsule.name = Meld Capsule -block.meld-meld-capsule.description = Projects a barrier against physical attacks. Requires gasseous [#ea9ad6]Meld[] to run. +block.meld2-meld2-capsule.name = Meld Capsule +block.meld2-meld2-capsule.description = Projects a barrier against physical attacks. Requires gasseous [#ea9ad6]Meld[] to run. -block.meld-meld-amplifier.name = Meld Amplifier -block.meld-meld-amplifier.description = Pulses [#ea9ad6]Amplification[] to all allies in range. +block.meld2-meld2-amplifier.name = Meld Amplifier +block.meld2-meld2-amplifier.description = Pulses [#ea9ad6]Amplification[] to all allies in range. -block.meld-meld-beacon.name = Meld Beacon -block.meld-meld-beacon.description = Fumigates areas with [#ea9ad6]Meld[] making nearby constructs very durable, while constantly chipping away at enemy targets within the cloud. -block.meld-meld-beacon.details = Often seen near debris fields still being processed. +block.meld2-meld2-beacon.name = Meld Beacon +block.meld2-meld2-beacon.description = Fumigates areas with [#ea9ad6]Meld[] making nearby constructs very durable, while constantly chipping away at enemy targets within the cloud. +block.meld2-meld2-beacon.details = Often seen near debris fields still being processed. -block.meld-pipeline.name = Pipeline -block.meld-pipeline.description = Meld construct which acts as a pipe. +block.meld2-pipeline.name = Pipeline +block.meld2-pipeline.description = Meld construct which acts as a pipe. -block.meld-pipeline-router.name = Pipeline Router -block.meld-pipeline-router.description = Meld construct which acts as a fluid router.. +block.meld2-pipeline-router.name = Pipeline Router +block.meld2-pipeline-router.description = Meld construct which acts as a fluid router.. -block.meld-pipeline-overpass.name = Pipeline Overpass -block.meld-pipeline-overpass.description = Meld construct which acts as a bridge +block.meld2-pipeline-overpass.name = Pipeline Overpass +block.meld2-pipeline-overpass.description = Meld construct which acts as a bridge -block.meld-pipeline-crossing.name = Pipeline Crossing -block.meld-pipeline-crossing.description = Meld construct which acts as a fluid junction. +block.meld2-pipeline-crossing.name = Pipeline Crossing +block.meld2-pipeline-crossing.description = Meld construct which acts as a fluid junction. -block.meld-blocker.name = Crystal Barrier -block.meld-blocker.description = Nigh indestructable crystaline formation of [#ea9ad6]Meld[]. Often demolished as a result of a broken Synapse, or from the floor melting underneath.\n\n[red]Heavly armored[] +block.meld2-blocker.name = Crystal Barrier +block.meld2-blocker.description = Nigh indestructable crystaline formation of [#ea9ad6]Meld[]. Often demolished as a result of a broken Synapse, or from the floor melting underneath.\n\n[red]Heavly armored[] -block.meld-blocker-large.name = Large Crystal Barrier -block.meld-blocker-large.description = Nigh indestructable crystaline formation of [#ea9ad6]Meld[]. Often demolished as a result of a broken Synapse, or from the floor melting underneath.\n\n[red]Heavly armored[] +block.meld2-blocker-large.name = Large Crystal Barrier +block.meld2-blocker-large.description = Nigh indestructable crystaline formation of [#ea9ad6]Meld[]. Often demolished as a result of a broken Synapse, or from the floor melting underneath.\n\n[red]Heavly armored[] -block.meld-stone-blocker.name = Carbonic Barrier -block.meld-stone-blocker.description = Artificial formation of [accent]Carbon Stone[]. Often demolished as a result of a broken Synapse, or from sustained firepower.\n\n[red]Heavly armored[] +block.meld2-stone-blocker.name = Carbonic Barrier +block.meld2-stone-blocker.description = Artificial formation of [accent]Carbon Stone[]. Often demolished as a result of a broken Synapse, or from sustained firepower.\n\n[red]Heavly armored[] -block.meld-stone-blocker-large.name = Large Carbonic Barrier -block.meld-stone-blocker-large.description = Artificial formation of [accent]Carbon Stone[]. Often demolished as a result of a broken Synapse, or from sustained firepower.\n\n[red]Heavly armored[] +block.meld2-stone-blocker-large.name = Large Carbonic Barrier +block.meld2-stone-blocker-large.description = Artificial formation of [accent]Carbon Stone[]. Often demolished as a result of a broken Synapse, or from sustained firepower.\n\n[red]Heavly armored[] -block.meld-mallow-blocker.name = Mallow Barrier -block.meld-mallow-blocker.description = Artificial formation of [accent]Mallow Sand[]. Often demolished as a result of a nearby explosion, or from sustained firepower.\n\n[red]Squishi! (60)[] +block.meld2-mallow-blocker.name = Mallow Barrier +block.meld2-mallow-blocker.description = Artificial formation of [accent]Mallow Sand[]. Often demolished as a result of a nearby explosion, or from sustained firepower.\n\n[red]Squishi! (60)[] -block.meld-mallow-blocker-large.name = Large Mallow Barrier -block.meld-mallow-blocker-large.description = Artificial formation of [accent]Mallow Sand[]. Often demolished as a result of a nearby explosion, or from sustained firepower.\n\n[red]Squishi! (60)[] +block.meld2-mallow-blocker-large.name = Large Mallow Barrier +block.meld2-mallow-blocker-large.description = Artificial formation of [accent]Mallow Sand[]. Often demolished as a result of a nearby explosion, or from sustained firepower.\n\n[red]Squishi! (60)[] -block.meld-meld-cultivator.name = Meld Cultivator -block.meld-meld-cultivator.description = Houses blobs which release gasseous [#ea9ad6]Meld[]. +block.meld2-meld-cultivator.name = Meld Cultivator +block.meld2-meld-cultivator.description = Houses blobs which release gasseous [#ea9ad6]Meld[]. -block.meld-meld-pumpjack.name = Meld Pumpjack -block.meld-meld-pumpjack.description = Harvests industrial quantities of [#e6c700]Ichor[]. +block.meld2-meld-pumpjack.name = Meld Pumpjack +block.meld2-meld-pumpjack.description = Harvests industrial quantities of [#e6c700]Ichor[]. -block.meld-aether-compressor.name = Aether Compressor -block.meld-aether-compressor.description = Houses [#ea9ad6]Meld[] which compacts the surounding [#cb8650]Aether[] into the insides of the construct. +block.meld2-aether-compressor.name = Aether Compressor +block.meld2-aether-compressor.description = Houses [#ea9ad6]Meld[] which compacts the surounding [#cb8650]Aether[] into the insides of the construct. -block.meld-spawning-pool.name = Spawning Pool -block.meld-spawning-pool.description = Uses massive amounts of [#e6c700]Ichor[] to incubate batches of larva. +block.meld2-spawning-pool.name = Spawning Pool +block.meld2-spawning-pool.description = Uses massive amounts of [#e6c700]Ichor[] to incubate batches of larva. -block.meld-jilla-incubator.name = Jilla Incubator -block.meld-jilla-incubator.description = Entombs pairs of larvae in crystal inside [#cb8650]Aether[] environment to form Jilla constructs.\nBursts open into a Gilla and a pair of Killas when destroyed. -block.meld-jilla-incubator.details = Not a suitable place to live... +block.meld2-jilla-incubator.name = Jilla Incubator +block.meld2-jilla-incubator.description = Entombs pairs of larvae in crystal inside [#cb8650]Aether[] environment to form Jilla constructs.\nBursts open into a Gilla and a pair of Killas when destroyed. +block.meld2-jilla-incubator.details = Not a suitable place to live... -block.meld-craig-incubator.name = Craig Incubator -block.meld-craig-incubator.description = Forms a metalic shell around larvae trios in an [#cb8650]Ichor[] environment to form Craig constructs. The residual stone is formed into an Afraig with each batch.\nBursts open into several Craigs and Afraigs when destroyed.\n\n[red]Lightly Armored[] -block.meld-craig-incubator.details = Not the usual way to make Craigs, as often Blobs are made to posess the constructs. +block.meld2-craig-incubator.name = Craig Incubator +block.meld2-craig-incubator.description = Forms a metalic shell around larvae trios in an [#cb8650]Ichor[] environment to form Craig constructs. The residual stone is formed into an Afraig with each batch.\nBursts open into several Craigs and Afraigs when destroyed.\n\n[red]Lightly Armored[] +block.meld2-craig-incubator.details = Not the usual way to make Craigs, as often Blobs are made to posess the constructs. -block.meld-gilla-incubator.name = Gilla Incubator -block.meld-gilla-incubator.description = Entombs pairs of larvae in crystal inside [#cb8650]Aether[] environment to form Gilla constructs.\nBursts open into a Gilla and a pair of Killas when destroyed. -block.meld-gilla-incubator.details = Not a suitable place to live... +block.meld2-gilla-incubator.name = Gilla Incubator +block.meld2-gilla-incubator.description = Entombs pairs of larvae in crystal inside [#cb8650]Aether[] environment to form Gilla constructs.\nBursts open into a Gilla and a pair of Killas when destroyed. +block.meld2-gilla-incubator.details = Not a suitable place to live... -block.meld-meld-cluster-large.name = Large Meld Cluster -block.meld-meld-cluster-large.description = A pile of [#ea9ad6]Meld[] which has overgrown an [#cb8650]Aether[] vent. Good source of starting debris. +block.meld2-meld-cluster-large.name = Large Meld Cluster +block.meld2-meld-cluster-large.description = A pile of [#ea9ad6]Meld[] which has overgrown an [#cb8650]Aether[] vent. Good source of starting debris. -block.meld-craig-coffer.name = Craig Coffer -block.meld-craig-coffer.description = Bursts open into Craigs upon destruction. Shoots nearby hostiles, taking damage in the process without Meld. +block.meld2-craig-coffer.name = Craig Coffer +block.meld2-craig-coffer.description = Bursts open into Craigs upon destruction. Shoots nearby hostiles, taking damage in the process without Meld. -block.meld-jilla-coffer.name = Jilla Coffer -block.meld-jilla-coffer.description = Bursts open into Jilla upon destruction. +block.meld2-jilla-coffer.name = Jilla Coffer +block.meld2-jilla-coffer.description = Bursts open into Jilla upon destruction. -block.meld-braig-coffer.name = Braig Coffer -block.meld-braig-coffer.description = Bursts open into Braigs upon destruction. Locks onto a target's position, then fires a burst of rocks. +block.meld2-braig-coffer.name = Braig Coffer +block.meld2-braig-coffer.description = Bursts open into Braigs upon destruction. Locks onto a target's position, then fires a burst of rocks. -block.meld-pointago-coffer.name = Pointago Coffer -block.meld-pointago-coffer.description = Bursts open into multiple Pointago upon destruction. Locks onto a target's, then fires a 3 round burst of sharp rocks. +block.meld2-pointago-coffer.name = Pointago Coffer +block.meld2-pointago-coffer.description = Bursts open into multiple Pointago upon destruction. Locks onto a target's, then fires a 3 round burst of sharp rocks. -block.meld-meld-cannon.name = Meld Cannon -block.meld-meld-cannon.description = Lobs globs of [meld-meld]Meld[] at enemies, suppressing them. +block.meld2-meld-cannon.name = Meld Cannon +block.meld2-meld-cannon.description = Lobs globs of [meld2-meld]Meld[] at enemies, suppressing them. -block.meld-meld-spewer.name = Meld Spewer -block.meld-meld-spewer.description = Sprays focused jets of [#e6c700]Ichor[] toward targets doing huge focused knockback, healing any allied building in the way. +block.meld2-meld-spewer.name = Meld Spewer +block.meld2-meld-spewer.description = Sprays focused jets of [#e6c700]Ichor[] toward targets doing huge focused knockback, healing any allied building in the way. -block.meld-tracker-encampment.name = Tracker Encampment -block.meld-tracker-encampment.description = Launches off larvel missiles which do bonus damage on direct hit. Dislodges from its base when destroyed.\n\n[red]Heavly armored[] +block.meld2-tracker-encampment.name = Tracker Encampment +block.meld2-tracker-encampment.description = Launches off larvel missiles which do bonus damage on direct hit. Dislodges from its base when destroyed.\n\n[red]Heavly armored[] -block.meld-scorcher-nest.name = Scorcher Nest -block.meld-scorcher-nest.description = Crystalizes a scorcher crystal, which fuels 4 indipendantly targeted jets of flame. Bursts open into numerous Scorchers on destruction. +block.meld2-scorcher-nest.name = Scorcher Nest +block.meld2-scorcher-nest.description = Crystalizes a scorcher crystal, which fuels 4 indipendantly targeted jets of flame. Bursts open into numerous Scorchers on destruction. -bloock.meld-splurger-nset.name = Splurger Nest -bloock.meld-splurger-nset.description = Fires off bundles of limited life Splurgers. -bloock.meld-splurger-nset.details = Sploot +bloock.meld2-splurger-nset.name = Splurger Nest +bloock.meld2-splurger-nset.description = Fires off bundles of limited life Splurgers. +bloock.meld2-splurger-nset.details = Sploot //Fringe blocks -block.meld-aether-plug.name = Aether Plug -block.meld-aether-plug.description = Siphons [#cb8650]Aether[] from suitable sources. +block.meld2-aether-plug.name = Aether Plug +block.meld2-aether-plug.description = Siphons [#cb8650]Aether[] from suitable sources. -block.meld-data-coagulator.name = Data Coagulator -block.meld-data-coagulator.description = Scribes massive amounts of [#9ccaed]Liquid Data[] into sheets of Technoscrap to create Fragments. +block.meld2-data-coagulator.name = Data Coagulator +block.meld2-data-coagulator.description = Scribes massive amounts of [#9ccaed]Liquid Data[] into sheets of Technoscrap to create Fragments. -block.meld-rubble-refinery.name = Rubble Refinery -block.meld-rubble-refinery.description = Blasts and centrifuges cracked industrial rubble for essential resources.\n\nRequires [#cbdbfc]Aspect[] to run. +block.meld2-rubble-refinery.name = Rubble Refinery +block.meld2-rubble-refinery.description = Blasts and centrifuges cracked industrial rubble for essential resources.\n\nRequires [#cbdbfc]Aspect[] to run. -block.meld-metal-siev.name = Metal Sieve -block.meld-metal-siev.description = Filters through cracked industrial rubble for Silver and Electrum, producing some starving masses in the process.\n\nRequires [#89828c]Mercury[] to run. +block.meld2-metal-siev.name = Metal Sieve +block.meld2-metal-siev.description = Filters through cracked industrial rubble for Silver and Electrum, producing some starving masses in the process.\n\nRequires [#89828c]Mercury[] to run. -block.meld-container.name = Container -block.meld-container.description = Stores items with separate capacities per type. +block.meld2-container.name = Container +block.meld2-container.description = Stores items with separate capacities per type. -block.meld-crate.name = Crate -block.meld-crate.description = Stores a small amount of items with separate capacities per type. -block.meld-crate.details = Often used as a locker substitute in industrial compounds. +block.meld2-crate.name = Crate +block.meld2-crate.description = Stores a small amount of items with separate capacities per type. +block.meld2-crate.details = Often used as a locker substitute in industrial compounds. -block.meld-drill-turret.name = Drill Turret -block.meld-drill-turret.description = Focuses [#cbdbfc]Aspect[] into an armor piercing beam. +block.meld2-drill-turret.name = Drill Turret +block.meld2-drill-turret.description = Focuses [#cbdbfc]Aspect[] into an armor piercing beam. -block.meld-repair-turret.name = Repair Turret -block.meld-repair-turret.description = Focuses [#cbdbfc]Aspect[] into repair packets. +block.meld2-repair-turret.name = Repair Turret +block.meld2-repair-turret.description = Focuses [#cbdbfc]Aspect[] into repair packets. -block.meld-shield-battery.name = Shield Battery -block.meld-shield-battery.description = Spouts garbled [#9ccaed]Liquid Data[], often connected to Force Barrier walls. Requires [#cbdbfc]Aspect[] to run, and some starting [#9ccaed]Liquid Data[]. -block.meld-shield-battery.details = Infinite useless data. +block.meld2-shield-battery.name = Shield Battery +block.meld2-shield-battery.description = Spouts garbled [#9ccaed]Liquid Data[], often connected to Force Barrier walls. Requires [#cbdbfc]Aspect[] to run, and some starting [#9ccaed]Liquid Data[]. +block.meld2-shield-battery.details = Infinite useless data. -block.meld-access-point.name = Access Point -block.meld-access-point.description = Plugs into an Encrypter to power it. -block.meld-access-point.details = Im not sure how this works... +block.meld2-access-point.name = Access Point +block.meld2-access-point.description = Plugs into an Encrypter to power it. +block.meld2-access-point.details = Im not sure how this works... -block.meld-encrypter.name = Encrypter -block.meld-encrypter.description = Harvests [accent]Fragments[] and [accent]Memory Shards[]. -block.meld-encrypter.details = No seriously, how does "encrypting" data give memory shards? Shoudn't it give Technoscrap? +block.meld2-encrypter.name = Encrypter +block.meld2-encrypter.description = Harvests [accent]Fragments[] and [accent]Memory Shards[]. +block.meld2-encrypter.details = No seriously, how does "encrypting" data give memory shards? Shoudn't it give Technoscrap? -block.meld-data-miner.name = Data Miner -block.meld-data-miner.description = Connects to exposed data cores, and mines small amounts of [#9ccaed]Liquid Data[]. -block.meld-data-miner.details = Also if Liquid Data is raw data then is encryption inserting liquid data into a medium or is it changing it somehow. +block.meld2-data-miner.name = Data Miner +block.meld2-data-miner.description = Connects to exposed data cores, and mines small amounts of [#9ccaed]Liquid Data[]. +block.meld2-data-miner.details = Also if Liquid Data is raw data then is encryption inserting liquid data into a medium or is it changing it somehow. -block.meld-decryption-module.name = Decryption Module -block.meld-decryption-module.description = Connects to exposed data cores, and rapidly pulls [#9ccaed]Liquid Data[] from [accent]Technoscrap[] using small amounts of [#9ccaed]Liquid Data[]. -block.meld-decryption-module.details = Seriously who thought of theese names??? +block.meld2-decryption-module.name = Decryption Module +block.meld2-decryption-module.description = Connects to exposed data cores, and rapidly pulls [#9ccaed]Liquid Data[] from [accent]Technoscrap[] using small amounts of [#9ccaed]Liquid Data[]. +block.meld2-decryption-module.details = Seriously who thought of theese names??? -block.meld.data-coagulator.name = Data Coagulator -block.meld-data-coagulator.description = Deposits mass amounts of data onto technoscrap. The process consumes excess technoscrap. -block.meld-data-coagulator.details = Wait so if storage is Technoscrap which results in Fragments, then are memory shards like encrypted zip bombs? +block.meld2.data-coagulator.name = Data Coagulator +block.meld2-data-coagulator.description = Deposits mass amounts of data onto technoscrap. The process consumes excess technoscrap. +block.meld2-data-coagulator.details = Wait so if storage is Technoscrap which results in Fragments, then are memory shards like encrypted zip bombs? -block.meld-indoctrinator.name = Indoctrinator -block.meld-indoctrinator.description = Enlightens [accent]Technoscrap into [accent]Grating Chunks[] -block.meld-indoctrinator.details = YOU LOSE MATERIAL DOING THIS??? +block.meld2-indoctrinator.name = Indoctrinator +block.meld2-indoctrinator.description = Enlightens [accent]Technoscrap into [accent]Grating Chunks[] +block.meld2-indoctrinator.details = YOU LOSE MATERIAL DOING THIS??? //Parts -block.meld-p-part-a0-0a-data-resonator.name = Data Resonator -block.meld-p-part-a0-0a-data-resonator.description = Specialized fuel cell which provides power output to movement-based abilities. +block.meld2-p-part-a0-0a-data-resonator.name = Data Resonator +block.meld2-p-part-a0-0a-data-resonator.description = Specialized fuel cell which provides power output to movement-based abilities. -block.meld-p-part-a0-1a-targeting-matrix.name = Targeting Matrix -block.meld-p-part-a0-1a-targeting-matrix.description = Holds a processor capable of more advanced targeting processes such as repairing allied structures or assisting in construction. +block.meld2-p-part-a0-1a-targeting-matrix.name = Targeting Matrix +block.meld2-p-part-a0-1a-targeting-matrix.description = Holds a processor capable of more advanced targeting processes such as repairing allied structures or assisting in construction. //environmental blocks //storm planes -block.meld-storm-dissonitre-cluster.name = Dissonitre Cluster -block.meld-storm-dissonitre-cluster.description = Vitric cluster, glistens when infused with [#cb8650]Aether[]. Good source of Dissonitre. Regrows when lightning strikes. -block.meld-storm-dissonitre-cluster.details = So uh... factory? +block.meld2-storm-dissonitre-cluster.name = Dissonitre Cluster +block.meld2-storm-dissonitre-cluster.description = Vitric cluster, glistens when infused with [#cb8650]Aether[]. Good source of Dissonitre. Regrows when lightning strikes. +block.meld2-storm-dissonitre-cluster.details = So uh... factory? -block.meld-mallow-cluster-large.name = Large Mallow Cluster -block.meld-mallow-cluster-large.description = Explodes when destroyed, spraying Dissonitre onto all nearby units. -block.meld-mallow-cluster-large.details = So uh... factory? +block.meld2-mallow-cluster-large.name = Large Mallow Cluster +block.meld2-mallow-cluster-large.description = Explodes when destroyed, spraying Dissonitre onto all nearby units. +block.meld2-mallow-cluster-large.details = So uh... factory? //Resource blocks -block.meld-debris-deposit.name = Debris Deposit -block.meld-silver-deposit.name = Silver Deposit -block.meld-electrum-deposit.name = Electrum Deposit -block.meld-carbolith-deposit.name = Carbolith -block.meld-resonarum-deposit.name = Resonarum Deposit -block.meld-resonarum-outcrop.name = Resonarum Outcrop -block.meld-earthen-wall-gloop.name = Stony Gloop -block.meld-earthen-wall-fissure.name = Nectar Fissure -block.meld-peat-mangrove-chunks.name = Elderflesh -block.meld-peat-mangrove-chunks-planty.name = Compacted Masses -block.meld-peat-mangrove-chunks-awoken.name = Blossoming Elderflesh +block.meld2-debris-deposit.name = Debris Deposit +block.meld2-silver-deposit.name = Silver Deposit +block.meld2-electrum-deposit.name = Electrum Deposit +block.meld2-carbolith-deposit.name = Carbolith +block.meld2-resonarum-deposit.name = Resonarum Deposit +block.meld2-resonarum-outcrop.name = Resonarum Outcrop +block.meld2-earthen-wall-gloop.name = Stony Gloop +block.meld2-earthen-wall-fissure.name = Nectar Fissure +block.meld2-peat-mangrove-chunks.name = Elderflesh +block.meld2-peat-mangrove-chunks-planty.name = Compacted Masses +block.meld2-peat-mangrove-chunks-awoken.name = Blossoming Elderflesh -block.meld-gale-wall.name = Gale Wall -block.meld-gale-shale-wall.name = Gale Shale Wall -block.meld-gale-shale.name = Gale Shale +block.meld2-gale-wall.name = Gale Wall +block.meld2-gale-shale-wall.name = Gale Shale Wall +block.meld2-gale-shale.name = Gale Shale -block.meld-resonant-stone-wall.name = Resonarum Stone Wall +block.meld2-resonant-stone-wall.name = Resonarum Stone Wall //Items -item.meld-debris.name = Debris -item.meld-debris.description = Used in many kinds of constructs on Ikaru. Refineable. -item.meld-debris.details = Broken down pieces of metal which the [#ea9ad6]Meld[] couldn't digest. +item.meld2-debris.name = Debris +item.meld2-debris.description = Used in many kinds of constructs on Ikaru. Refineable. +item.meld2-debris.details = Broken down pieces of metal which the [#ea9ad6]Meld[] couldn't digest. -item.meld-carbolith.name = Carbolith -item.meld-carbolith.description = Used for structural support and as a fuel source. -item.meld-carbolith.details = Carbon rich stone, not quite graphite. Different to the medication. +item.meld2-carbolith.name = Carbolith +item.meld2-carbolith.description = Used for structural support and as a fuel source. +item.meld2-carbolith.details = Carbon rich stone, not quite graphite. Different to the medication. -item.meld-tenbris.name = Tenbris -item.meld-tenbris.description = Raw material, valued for its ability to insulate aspect when refined. -item.meld-tenbris.details = Fume infused hematite, more malleable and less brittle but less hard than usual. +item.meld2-tenbris.name = Tenbris +item.meld2-tenbris.description = Raw material, valued for its ability to insulate aspect when refined. +item.meld2-tenbris.details = Fume infused hematite, more malleable and less brittle but less hard than usual. -item.meld-motis.name = Motis -item.meld-motis.description = Raw material, valued for its natural magnetism. -item.meld-motis.details = Fume infused magnetite, more malleable and less brittle but less hard than usual. +item.meld2-motis.name = Motis +item.meld2-motis.description = Raw material, valued for its natural magnetism. +item.meld2-motis.details = Fume infused magnetite, more malleable and less brittle but less hard than usual. -item.meld-shadesteel.name = Shadesteel -item.meld-shadesteel.description = Not just some rock anymore.\nDurable building material. -item.meld-shadesteel.details = IT'S NOT IRON I SWEAR +item.meld2-shadesteel.name = Shadesteel +item.meld2-shadesteel.description = Not just some rock anymore.\nDurable building material. +item.meld2-shadesteel.details = IT'S NOT IRON I SWEAR -item.meld-elnar-dust.name = Elnar Dust -item.meld-elnar-dust.description = Raw material, valued for its ability to conduct aspect. -item.meld-elnar-dust.details = Often found accumulating as specs in streams, which run through rich Elnar deposits.\n\nNative mineral to Ikaru, unknown composition. Likely aspect based... +item.meld2-elnar-dust.name = Elnar Dust +item.meld2-elnar-dust.description = Raw material, valued for its ability to conduct aspect. +item.meld2-elnar-dust.details = Often found accumulating as specs in streams, which run through rich Elnar deposits.\n\nNative mineral to Ikaru, unknown composition. Likely aspect based... -item.meld-compacted-brick.name = Compacted Bricks -item.meld-compacted-brick.description = Used as a form of concrete for building foundations and power infastructure alongside Stony Gloop and Electrum Sheets. -item.meld-compacted-brick.details = Bonk +item.meld2-compacted-brick.name = Compacted Bricks +item.meld2-compacted-brick.description = Used as a form of concrete for building foundations and power infastructure alongside Stony Gloop and Electrum Sheets. +item.meld2-compacted-brick.details = Bonk -item.meld-stony-gloop.name = Stony Gloop -item.meld-stony-gloop.description = Used as a motar for building foundations and power infastructure alongside Compacted Bricks and Electrum Sheets. -item.meld-stony-gloop.details = Bloop +item.meld2-stony-gloop.name = Stony Gloop +item.meld2-stony-gloop.description = Used as a motar for building foundations and power infastructure alongside Compacted Bricks and Electrum Sheets. +item.meld2-stony-gloop.details = Bloop -item.meld-silver.name = Silver -item.meld-silver.description = Used in electrical components and structures. Integral part in most basic units. -item.meld-silver.details = Undigestable by the [#ea9ad6]Meld[].\n\nGreat capsule for [#cbdbfc]Aspect[]. +item.meld2-silver.name = Silver +item.meld2-silver.description = Used in electrical components and structures. Integral part in most basic units. +item.meld2-silver.details = Undigestable by the [#ea9ad6]Meld[].\n\nGreat capsule for [#cbdbfc]Aspect[]. -item.meld-annealed-silver.name = Annealed Silver -item.meld-annealed-silver.description = Highly refined and attuned. Makes for a great aspect conductor. -item.meld-annealed-silver.details = An easily made aspect superconductor. +item.meld2-annealed-silver.name = Annealed Silver +item.meld2-annealed-silver.description = Highly refined and attuned. Makes for a great aspect conductor. +item.meld2-annealed-silver.details = An easily made aspect superconductor. -item.meld-iampsi.name = Iampsi -item.meld-iampsi.description = Hardy mineral found accumulating in deposits under dried riverbeds, or as spikes above surface.\n\nDecomposable for Silver and Quartz Strata, useful for grinding. -item.meld-iampsi.details = Radiance. +item.meld2-iampsi.name = Iampsi +item.meld2-iampsi.description = Hardy mineral found accumulating in deposits under dried riverbeds, or as spikes above surface.\n\nDecomposable for Silver and Quartz Strata, useful for grinding. +item.meld2-iampsi.details = Radiance. -item.meld-sandy-particulate.name = Sandy Particulate -item.meld-sandy-particulate.description = Can't be mined by drill, crumbles too easily. Must be quarried.\n\nCan be filtered through for Quartz Strata. -item.meld-sandy-particulate.details = Him. +item.meld2-sandy-particulate.name = Sandy Particulate +item.meld2-sandy-particulate.description = Can't be mined by drill, crumbles too easily. Must be quarried.\n\nCan be filtered through for Quartz Strata. +item.meld2-sandy-particulate.details = Him. -item.meld-quartz-strata.name = Quartz Strata -item.meld-quartz-strata.description = Silicon oxide grains and crystals of various sizes, ready for industrial or military use.\n\nToo disorderly to be used in electronics raw. -item.meld-quartz-strata.details = Me... +item.meld2-quartz-strata.name = Quartz Strata +item.meld2-quartz-strata.description = Silicon oxide grains and crystals of various sizes, ready for industrial or military use.\n\nToo disorderly to be used in electronics raw. +item.meld2-quartz-strata.details = Me... -item.meld-likestone-sediments.name = Likestone Sediments -item.meld-likestone-sediments.description = Claystone deposited bessides old rivers. Acts as a great glass flux. -item.meld-likestone-sediments.details = Family. +item.meld2-likestone-sediments.name = Likestone Sediments +item.meld2-likestone-sediments.description = Claystone deposited bessides old rivers. Acts as a great glass flux. +item.meld2-likestone-sediments.details = Family. -item.meld-electrum-sheet.name = Electrum Sheet -item.meld-electrum-sheet.description = Refined material used in power transmission and advanced unit production. -item.meld-electrum-sheet.details = Also functions as a capsule for [#cbdbfc]Aspect[]. +item.meld2-electrum-sheet.name = Electrum Sheet +item.meld2-electrum-sheet.description = Refined material used in power transmission and advanced unit production. +item.meld2-electrum-sheet.details = Also functions as a capsule for [#cbdbfc]Aspect[]. -item.meld-crucible-plating.name = Crucible Plating -item.meld-crucible-plating.description = Versatile ceramic often used as an armor plating, or in the chambers of the more industrial high aspect appliances.\n\nMade from a variety of processing chains. -item.meld-crucible-plating.details = Composition unknown. +item.meld2-crucible-plating.name = Crucible Plating +item.meld2-crucible-plating.description = Versatile ceramic often used as an armor plating, or in the chambers of the more industrial high aspect appliances.\n\nMade from a variety of processing chains. +item.meld2-crucible-plating.details = Composition unknown. -item.meld-aspect-pipe.name = Aspect Pipe -item.meld-aspect-pipe.description = Insulated hull with a conductive core, used to transport aspects safely.\n\nMade from a variety of processing chains. -item.meld-aspect-pipe.details = Looks like a swiss roll.\n\nWhat's a "swiss"?\n\nduno, probably like a word which good- a word which means good tasting\n\nWhat a silly word!\nnShould be replaced with delicious\n\nyeah but then it's too literally... literal with its name +item.meld2-aspect-pipe.name = Aspect Pipe +item.meld2-aspect-pipe.description = Insulated hull with a conductive core, used to transport aspects safely.\n\nMade from a variety of processing chains. +item.meld2-aspect-pipe.details = Looks like a swiss roll.\n\nWhat's a "swiss"?\n\nduno, probably like a word which good- a word which means good tasting\n\nWhat a silly word!\nnShould be replaced with delicious\n\nyeah but then it's too literally... literal with its name -item.meld-vitric-mesh.name = Vitric Mesh -item.meld-vitric-mesh.description = An intricate piece of glasswork which captures [#cb8650]Aether[] when stimulated with power, building on itself. -item.meld-vitric-mesh.details = The design is of Meld origin, first being seen woven by constructs native to the Badlands. It is unknown what purpose they served. +item.meld2-vitric-mesh.name = Vitric Mesh +item.meld2-vitric-mesh.description = An intricate piece of glasswork which captures [#cb8650]Aether[] when stimulated with power, building on itself. +item.meld2-vitric-mesh.details = The design is of Meld origin, first being seen woven by constructs native to the Badlands. It is unknown what purpose they served. -item.meld-shiny-globule.name = Shiny Globule -item.meld-shiny-globule.description = Melted remains of glass hardened into shiny globules. Best disposed of safely, or recycled. -item.meld-shiny-globule.details = Glassy remains of a once intricate craft.\n\nAn intresting natural phenomina. Seems to pulsate with a faint yet deep orange glow. +item.meld2-shiny-globule.name = Shiny Globule +item.meld2-shiny-globule.description = Melted remains of glass hardened into shiny globules. Best disposed of safely, or recycled. +item.meld2-shiny-globule.details = Glassy remains of a once intricate craft.\n\nAn intresting natural phenomina. Seems to pulsate with a faint yet deep orange glow. -item.meld-stormstruck-shell.name = Stormstruck Shell -item.meld-stormstruck-shell.description = A crystalline weave of Dissonitre around a polished Resonarum clump.\nHighly unstable... -item.meld-stormstruck-shell.details = An unatural abomination of two opposing forces, held together by some unknown force. +item.meld2-stormstruck-shell.name = Stormstruck Shell +item.meld2-stormstruck-shell.description = A crystalline weave of Dissonitre around a polished Resonarum clump.\nHighly unstable... +item.meld2-stormstruck-shell.details = An unatural abomination of two opposing forces, held together by some unknown force. -item.meld-resonarum.name = Resonarum -item.meld-resonarum.description = Used in high-energy [#cbdbfc]Aspect[] appliences such as [red]Nullifiers[]. -item.meld-resonarum.details = Pulsates with an erie green glow. Appears to passively mend itself. +item.meld2-resonarum.name = Resonarum +item.meld2-resonarum.description = Used in high-energy [#cbdbfc]Aspect[] appliences such as [red]Nullifiers[]. +item.meld2-resonarum.details = Pulsates with an erie green glow. Appears to passively mend itself. -item.meld-dissonitre.name = Dissonitre -item.meld-dissonitre.description = Rare alternative source of [#cb8650]Aether[] sourced from the Storm Planes and Badlands. Somewhat unstable. -item.meld-dissonitre.details = Produces a distorted clicking sound. +item.meld2-dissonitre.name = Dissonitre +item.meld2-dissonitre.description = Rare alternative source of [#cb8650]Aether[] sourced from the Storm Planes and Badlands. Somewhat unstable. +item.meld2-dissonitre.details = Produces a distorted clicking sound. -item.meld-clay-mallow.name = Clay-Mallow -item.meld-clay-mallow.description = Clay from the Badlands. Easly moulded to form containers, but difficult to aquire by blasting soil. -item.meld-clay-mallow.details = A delicate substance valued for its malleability and ability to keep its shape, along with its velvety texture. +item.meld2-clay-mallow.name = Clay-Mallow +item.meld2-clay-mallow.description = Clay from the Badlands. Easly moulded to form containers, but difficult to aquire by blasting soil. +item.meld2-clay-mallow.details = A delicate substance valued for its malleability and ability to keep its shape, along with its velvety texture. -item.meld-glass-mallow.name = Glass-Mallow -item.meld-glass-mallow.description = Refined clay from the Badlands, more glass than ceramic. -item.meld-glass-mallow.details = A glossy, crystalline substance. +item.meld2-glass-mallow.name = Glass-Mallow +item.meld2-glass-mallow.description = Refined clay from the Badlands, more glass than ceramic. +item.meld2-glass-mallow.details = A glossy, crystalline substance. -item.meld-riplom.name = Riplom -item.meld-riplom.description = Shale from the Storm Planes. A great flux for glasswork, though not much practical use found. Slightly volatile. -item.meld-riplom.details = Looks almost fungal. Seems to absorb [#cbdbfc]Aspect[] from its suroundings. +item.meld2-riplom.name = Riplom +item.meld2-riplom.description = Shale from the Storm Planes. A great flux for glasswork, though not much practical use found. Slightly volatile. +item.meld2-riplom.details = Looks almost fungal. Seems to absorb [#cbdbfc]Aspect[] from its suroundings. -item.meld-riploko.name = Riploko -item.meld-riploko.description = Riplom which has been infused with [#cbdbfc]Aspect[]. Ready to explode! -item.meld-riploko.details = Oh no... +item.meld2-riploko.name = Riploko +item.meld2-riploko.description = Riplom which has been infused with [#cbdbfc]Aspect[]. Ready to explode! +item.meld2-riploko.details = Oh no... -item.meld-technoscrap.name = Technoscrap -item.meld-technoscrap.description = Used in advanced storage logistics and basic Core blocks. -item.meld-technoscrap.details = Used as a data storage medium. Has large amounts of data inscribed onto it at any given time.\nThere's data in the walls... Delicious! +item.meld2-technoscrap.name = Technoscrap +item.meld2-technoscrap.description = Used in advanced storage logistics and basic Core blocks. +item.meld2-technoscrap.details = Used as a data storage medium. Has large amounts of data inscribed onto it at any given time.\nThere's data in the walls... Delicious! -item.meld-grating-chunk.name = Grating Chunk -item.meld-grating-chunk.description = No apparent use found. Panneling for the floors of the facilities which dot Ikaru. -item.meld-grating-chunk.details = Despite the description made to imform you about what use you have for chunks, large swobs of chunks are used as the base of most of our structures. While database entries about this technology have been locked away from you, take detours from the path and find databanks. They will teach you how to produce and use theese chunks. +item.meld2-grating-chunk.name = Grating Chunk +item.meld2-grating-chunk.description = No apparent use found. Panneling for the floors of the facilities which dot Ikaru. +item.meld2-grating-chunk.details = Despite the description made to imform you about what use you have for chunks, large swobs of chunks are used as the base of most of our structures. While database entries about this technology have been locked away from you, take detours from the path and find databanks. They will teach you how to produce and use theese chunks. -item.meld-fragment.name = Fragment -item.meld-fragment.description = Used to defragment the database to unlock new technology, and in advanced unit production. -item.meld-fragment.details = Miscellaneous, disorganised pieces of data collected from the previous incursion. Often more useful than not. +item.meld2-fragment.name = Fragment +item.meld2-fragment.description = Used to defragment the database to unlock new technology, and in advanced unit production. +item.meld2-fragment.details = Miscellaneous, disorganised pieces of data collected from the previous incursion. Often more useful than not. -item.meld-memory-shard.name = Memory Shard -item.meld-memory-shard.description = Used to defragment the database to unlock new technology, and in certain Liquid Data sources. -item.meld-memory-shard.details = Rare pieecs of Technoscrap leaking organized [#9ccaed]Liquid Data[] into the sky. Appears to come from faulty databases, though the exact phenominon which unwravels technoscrap is still unknown. +item.meld2-memory-shard.name = Memory Shard +item.meld2-memory-shard.description = Used to defragment the database to unlock new technology, and in certain Liquid Data sources. +item.meld2-memory-shard.details = Rare pieecs of Technoscrap leaking organized [#9ccaed]Liquid Data[] into the sky. Appears to come from faulty databases, though the exact phenominon which unwravels technoscrap is still unknown. -item.meld-bioscrap-graft.name = Bioscrap Graft -item.meld-bioscrap-graft.description = Used to defragment the database to unlock new technology, and in certain regenerative appliences. -item.meld-bioscrap-graft.details = Crafully assembled piece of technoscrap with some Earthen Soil and Aether packed in..\nThe first attempts at resonarum farming. While they did not prove to be useful on an indistrial scale, samples have found use instead in regenerative technology and data generation, propagating their use. +item.meld2-bioscrap-graft.name = Bioscrap Graft +item.meld2-bioscrap-graft.description = Used to defragment the database to unlock new technology, and in certain regenerative appliences. +item.meld2-bioscrap-graft.details = Crafully assembled piece of technoscrap with some Earthen Soil and Aether packed in..\nThe first attempts at resonarum farming. While they did not prove to be useful on an indistrial scale, samples have found use instead in regenerative technology and data generation, propagating their use. -item.meld-abberation-core.name = Abberation Core -item.meld-abberation-core.description = Used to defragment the database to unlock new technology, and in certain Liquid Data slources. -item.meld-abberation-core.details = Spouts random garbles of [#9ccaed]Liquid Data[] when energised. Quite the crude construct compared to other sources. +item.meld2-abberation-core.name = Abberation Core +item.meld2-abberation-core.description = Used to defragment the database to unlock new technology, and in certain Liquid Data slources. +item.meld2-abberation-core.details = Spouts random garbles of [#9ccaed]Liquid Data[] when energised. Quite the crude construct compared to other sources. -item.meld-industrial-rubble.name = Industrial Rubble -item.meld-industrial-rubble.description = Lucrative source of essential materials when cracked.\n[gray]Edible to the Meld.[] -item.meld-industrial-rubble.details = Large clusters can be found primerally in containers next to debris. Better maintained containers may have more refined parts. +item.meld2-industrial-rubble.name = Industrial Rubble +item.meld2-industrial-rubble.description = Lucrative source of essential materials when cracked.\n[gray]Edible to the Meld.[] +item.meld2-industrial-rubble.details = Large clusters can be found primerally in containers next to debris. Better maintained containers may have more refined parts. -item.meld-industrial-rubble-cracked.name = Industrial Rubble (Cracked) -item.meld-industrial-rubble-cracked.description = Refinable for a slew of essential materials. -item.meld-industrial-rubble-cracked.details = Corrosion resistant materials exposed after digestive processes and percussive damage.\nStrata recognises most miscalaneous items as cracked industrial rubble. Keep them out of the containers during evacuation!\n...Who's going t +item.meld2-industrial-rubble-cracked.name = Industrial Rubble (Cracked) +item.meld2-industrial-rubble-cracked.description = Refinable for a slew of essential materials. +item.meld2-industrial-rubble-cracked.details = Corrosion resistant materials exposed after digestive processes and percussive damage.\nStrata recognises most miscalaneous items as cracked industrial rubble. Keep them out of the containers during evacuation!\n...Who's going t -item.meld-astral-fulgurite.name = Astral Fulgurite -item.meld-astral-fulgurite.description = Refineable for a slew of glassy materials. -item.meld-astral-fulgurite.details = Looks like a weave of beutiful dissonitre glass with resonarum, wrapped around some Riplo shale.\n\nWho was this made by? +item.meld2-astral-fulgurite.name = Astral Fulgurite +item.meld2-astral-fulgurite.description = Refineable for a slew of glassy materials. +item.meld2-astral-fulgurite.details = Looks like a weave of beutiful dissonitre glass with resonarum, wrapped around some Riplo shale.\n\nWho was this made by? -item.meld-grazing-bar.name = Grazing Bar -item.meld-grazing-bar.description = A bar of highly compacted dehydrated flora with a [#b89f47]Nectar[] center. Fragments easly with a loud cracking sound, but soft on the inside. -item.meld-grazing-bar.details = I have no mouth and I must TASTE. +item.meld2-grazing-bar.name = Grazing Bar +item.meld2-grazing-bar.description = A bar of highly compacted dehydrated flora with a [#b89f47]Nectar[] center. Fragments easly with a loud cracking sound, but soft on the inside. +item.meld2-grazing-bar.details = I have no mouth and I must TASTE. -item.meld-meld-shard.name = Meld Shard -item.meld-meld-shard.description = Vague lifeform in crystal form. Use unknown. -item.meld-meld-shard.details = DO NOT TAKE THIS HOME.\nWh-?\nNO.\nBut it's still frozen...\nLook- just put it in the chute and lets get out of here\nWhat chute?\nDo you know where "the chute" is?\nI- I don't actually. I thought you knew.\nI uh... wasn't told about a chute\nI was told there would be a chute when I was being shiped over\nYou're the one with the authority here, what do we do?\nYou shoudn't be telling me what t- oh. I... don't know.\nI want to see what happens when it melts. How it'll behave.\nIm done being screwed over, lets see... +item.meld2-meld-shard.name = Meld Shard +item.meld2-meld-shard.description = Vague lifeform in crystal form. Use unknown. +item.meld2-meld-shard.details = DO NOT TAKE THIS HOME.\nWh-?\nNO.\nBut it's still frozen...\nLook- just put it in the chute and lets get out of here\nWhat chute?\nDo you know where "the chute" is?\nI- I don't actually. I thought you knew.\nI uh... wasn't told about a chute\nI was told there would be a chute when I was being shiped over\nYou're the one with the authority here, what do we do?\nYou shoudn't be telling me what t- oh. I... don't know.\nI want to see what happens when it melts. How it'll behave.\nIm done being screwed over, lets see... -item.meld-larval-plating.name = Larval Plating -item.meld-larval-plating.description = Some sort of juvinile plating piece. No uses found. -item.meld-larval-plating.details = As the incursion continued, constructs were made from more modular pieces. Being able to meld together pieces of metal into building constructs via buildbeam was a huge breakthrough for the [#ea9ad6]Meld[]. +item.meld2-larval-plating.name = Larval Plating +item.meld2-larval-plating.description = Some sort of juvinile plating piece. No uses found. +item.meld2-larval-plating.details = As the incursion continued, constructs were made from more modular pieces. Being able to meld together pieces of metal into building constructs via buildbeam was a huge breakthrough for the [#ea9ad6]Meld[]. -item.meld-larva.name = Larva -item.meld-larva.description = Writhing metalic hunk with segments. Often seen in incubation structures that manufacture new constructs. +item.meld2-larva.name = Larva +item.meld2-larva.description = Writhing metalic hunk with segments. Often seen in incubation structures that manufacture new constructs. -item.meld-metalic-chunk.name = Metalic Chunk -item.meld-metalic-chunk.description = Some sort of metalalic hunk. No uses found.\n[gray]Edible to the Meld.[] -item.meld-metalic-chunk.details = Found on most mid-incursion constructs due to the sheer availability of non-native metal. +item.meld2-metalic-chunk.name = Metalic Chunk +item.meld2-metalic-chunk.description = Some sort of metalalic hunk. No uses found.\n[gray]Edible to the Meld.[] +item.meld2-metalic-chunk.details = Found on most mid-incursion constructs due to the sheer availability of non-native metal. -item.meld-metalic-globule.name = Metalic Globule -item.meld-metalic-globule.description = Some sort of metalalic blob. No uses found. -item.meld-metalic-globule.details = Found on most pre-incursion constructs alongside Larval Plating. A conglomero of metals native to Ikaru. +item.meld2-metalic-globule.name = Metalic Globule +item.meld2-metalic-globule.description = Some sort of metalalic blob. No uses found. +item.meld2-metalic-globule.details = Found on most pre-incursion constructs alongside Larval Plating. A conglomero of metals native to Ikaru. -item.meld-stony-particulate.name = Stony Particulate -item.meld-stony-particulate.description = Grains of carbon stone. -item.meld-stony-particulate.details = Glued together by the [#ea9ad6]Meld[] using some unknown process. +item.meld2-stony-particulate.name = Stony Particulate +item.meld2-stony-particulate.description = Grains of carbon stone. +item.meld2-stony-particulate.details = Glued together by the [#ea9ad6]Meld[] using some unknown process. -item.meld-bramble-vine.name = Bramble Vine -item.meld-bramble-vine.description = Thick biological strands coursing with [#89828c]Mercury[].\nContains trace amounts of [#89413e]Ooze[] +item.meld2-bramble-vine.name = Bramble Vine +item.meld2-bramble-vine.description = Thick biological strands coursing with [#89828c]Mercury[].\nContains trace amounts of [#89413e]Ooze[] -item.meld-compacted-masses.name = Compacted Masses -item.meld-compacted-masses.description = Cluster of biological material wrapped with [accent]Bramble Vines[]. +item.meld2-compacted-masses.name = Compacted Masses +item.meld2-compacted-masses.description = Cluster of biological material wrapped with [accent]Bramble Vines[]. -item.meld-starving-masses.name = Starving Masses -item.meld-starving-masses.description = Shriveled up cluster of biological material. Acts as a great filtratium medium. The texture's quite dry. -item.meld-starving-masses.details = Hey stop eating that, we don't know what it's mad-\nShut it, I've been locked in here for ages\nBut that doesn't mean you should eat that, it's probably starving\nFor what? The sludge they keep giving me to drink?\n...would you like to try that? +item.meld2-starving-masses.name = Starving Masses +item.meld2-starving-masses.description = Shriveled up cluster of biological material. Acts as a great filtratium medium. The texture's quite dry. +item.meld2-starving-masses.details = Hey stop eating that, we don't know what it's mad-\nShut it, I've been locked in here for ages\nBut that doesn't mean you should eat that, it's probably starving\nFor what? The sludge they keep giving me to drink?\n...would you like to try that? -item.meld-elderflesh.name = Elderflesh -item.meld-elderflesh.description = Twisted biological strands coursing with [#b89f47]Nectar[].\nConstitutes the flora of the Mercury Swamps. +item.meld2-elderflesh.name = Elderflesh +item.meld2-elderflesh.description = Twisted biological strands coursing with [#b89f47]Nectar[].\nConstitutes the flora of the Mercury Swamps. -item.meld-blossoming-elderflesh.name = Blossoming Elderflesh -item.meld-blossoming-elderflesh.description = Puffballs of fine biological grains and slits intertwined with larger strands.\n[gray]Edible to the Meld.[] +item.meld2-blossoming-elderflesh.name = Blossoming Elderflesh +item.meld2-blossoming-elderflesh.description = Puffballs of fine biological grains and slits intertwined with larger strands.\n[gray]Edible to the Meld.[] -item.meld-coagulated-vigor.name = Coagulated Vigor -item.meld-coagulated-vigor.description = An eternally burning daemon's flesh, constantly in a cancerous state. One must imagine Icarus happy.\n[gray]Edible to the Meld.[] +item.meld2-coagulated-vigor.name = Coagulated Vigor +item.meld2-coagulated-vigor.description = An eternally burning daemon's flesh, constantly in a cancerous state. One must imagine Icarus happy.\n[gray]Edible to the Meld.[] -item.meld-homunculus-chunk.name = Homunculus Chunk -item.meld-homunculus-chunk.description = Chunks of... something?\nNot quite human.\n[gray]Edible to the Meld.[] +item.meld2-homunculus-chunk.name = Homunculus Chunk +item.meld2-homunculus-chunk.description = Chunks of... something?\nNot quite human.\n[gray]Edible to the Meld.[] //Liquids -liquid.meld-aether.name = [#cb8650]Aether -liquid.meld-aether.description = Passively collected by certain structures. Found in abundance from [accent]aether vents[]. -liquid.meld-aether.details = Contains an abundance of primordial aspects. +liquid.meld2-aether.name = [#cb8650]Aether +liquid.meld2-aether.description = Passively collected by certain structures. Found in abundance from [accent]aether vents[]. +liquid.meld2-aether.details = Contains an abundance of primordial aspects. -liquid.meld-aspect.name = [#cbdbfc]Aspect -liquid.meld-aspect.description = Unstable alternative power source. Refinable. -liquid.meld-aspect.details = Mixed primordial aspects. +liquid.meld2-aspect.name = [#cbdbfc]Aspect +liquid.meld2-aspect.description = Unstable alternative power source. Refinable. +liquid.meld2-aspect.details = Mixed primordial aspects. -liquid.meld-fumes.name = [#5b4739]Fumes -liquid.meld-fumes.description = Passively seeps into conductive materials. Used for a variety of metallurgic and restorative appliances. -liquid.meld-fumes.details = Smoggy primordial aspects. +liquid.meld2-fumes.name = [#5b4739]Fumes +liquid.meld2-fumes.description = Passively seeps into conductive materials. Used for a variety of metallurgic and restorative appliances. +liquid.meld2-fumes.details = Smoggy primordial aspects. -liquid.meld-pollutant-mixture.name = [#cb8650][#6b4e4e]Pollutant Mix[] -liquid.meld-pollutant-mixture.description = A mix of common aspects in the atmosphere of Ikaru. Emitted by [accent]aether vents[].\n\nCan be used in place of [#cb8650]Aether[] -liquid.meld-pollutant-mixture.details = A mixture of secondary aspects. +liquid.meld2-pollutant-mixture.name = [#cb8650][#6b4e4e]Pollutant Mix[] +liquid.meld2-pollutant-mixture.description = A mix of common aspects in the atmosphere of Ikaru. Emitted by [accent]aether vents[].\n\nCan be used in place of [#cb8650]Aether[] +liquid.meld2-pollutant-mixture.details = A mixture of secondary aspects. -liquid.meld-thundering-aether.name = [#e98b66]Thundering Aether[] -liquid.meld-thundering-aether.description = Cackles and crackles, an energy inbetween.\n\nCan be used in place of [#cb8650]Aether[] -liquid.meld-thundering-aether.details = Crickling and crackling, cackling and cack- auegh... dammit\n\nwait, is this thing still on?\n\nFith... fith- sixed? nono... has t-[red][] +liquid.meld2-thundering-aether.name = [#e98b66]Thundering Aether[] +liquid.meld2-thundering-aether.description = Cackles and crackles, an energy inbetween.\n\nCan be used in place of [#cb8650]Aether[] +liquid.meld2-thundering-aether.details = Crickling and crackling, cackling and cack- auegh... dammit\n\nwait, is this thing still on?\n\nFith... fith- sixed? nono... has t-[red][] -liquid.meld-bound-aspect.name = [#a451c8]Bound Aspect[] -liquid.meld-bound-aspect.description = A highly energy dense, stable fuel.\n\nCan be used in place of [#cbdbfc]Aspect[] -liquid.meld-bound-aspect.details = Confusing mixture of primordial aspects +liquid.meld2-bound-aspect.name = [#a451c8]Bound Aspect[] +liquid.meld2-bound-aspect.description = A highly energy dense, stable fuel.\n\nCan be used in place of [#cbdbfc]Aspect[] +liquid.meld2-bound-aspect.details = Confusing mixture of primordial aspects -liquid.meld-storming-aspect.name = [#ffffff]Storming Aspect[] -liquid.meld-storming-aspect.description = Sparks and flashes, dancing on the monitor.\n\nCan be used in place of [#cbdbfc]Aspect[] -liquid.meld-storming-aspect.details = Hexing dance of primordial aspects +liquid.meld2-storming-aspect.name = [#ffffff]Storming Aspect[] +liquid.meld2-storming-aspect.description = Sparks and flashes, dancing on the monitor.\n\nCan be used in place of [#cbdbfc]Aspect[] +liquid.meld2-storming-aspect.details = Hexing dance of primordial aspects -liquid.meld-nectar.name = [#b89f47]Nectar -liquid.meld-nectar.description = Used as a potent coolant. Can be refined into [#89828c]Mercury[] over high heat with the right reagents. Encourages a slight mending effect on units. -liquid.meld-nectar.details = Blood of the swamp. +liquid.meld2-nectar.name = [#b89f47]Nectar +liquid.meld2-nectar.description = Used as a potent coolant. Can be refined into [#89828c]Mercury[] over high heat with the right reagents. Encourages a slight mending effect on units. +liquid.meld2-nectar.details = Blood of the swamp. -liquid.meld-mercury.name = [#89828c]Mercury -liquid.meld-mercury.description = Used as lubricant. Acts as a potent toxin inside creatures of [#ea9ad6]Meld[] origin. -liquid.meld-mercury.details = The database gets a bit... dubious with autoanalysis of substances. Remeber to clarify what stats like heat capacity and temperature mean with any survivors. +liquid.meld2-mercury.name = [#89828c]Mercury +liquid.meld2-mercury.description = Used as lubricant. Acts as a potent toxin inside creatures of [#ea9ad6]Meld[] origin. +liquid.meld2-mercury.details = The database gets a bit... dubious with autoanalysis of substances. Remeber to clarify what stats like heat capacity and temperature mean with any survivors. -liquid.meld-blood.name = [#7d312f]Blood -liquid.meld-blood.description = [gray]...\nwhat?[] -liquid.meld-blood.details = Lifeforce of the swamp.\n\n[accent]Cycle[] +liquid.meld2-blood.name = [#7d312f]Blood +liquid.meld2-blood.description = [gray]...\nwhat?[] +liquid.meld2-blood.details = Lifeforce of the swamp.\n\n[accent]Cycle[] -liquid.meld-ooze.name = [#89413e]Ooze -liquid.meld-ooze.description = No apparent use found. Cold to the touch. -liquid.meld-ooze.details = Comprises most of the Mercury Swamp's terrain. Very dense, yet still quite runny.\n\n[accent]Decay[] +liquid.meld2-ooze.name = [#89413e]Ooze +liquid.meld2-ooze.description = No apparent use found. Cold to the touch. +liquid.meld2-ooze.details = Comprises most of the Mercury Swamp's terrain. Very dense, yet still quite runny.\n\n[accent]Decay[] -liquid.meld-rift.name = [#8872da]Rift -liquid.meld-rift.description = Refinable into [#b460e2]Warp[]. Released from [#cb8650]Aether[] fused with Carbolith under high heat. -liquid.meld-rift.details = Jumbled primordial aspects. +liquid.meld2-rift.name = [#8872da]Rift +liquid.meld2-rift.description = Refinable into [#b460e2]Warp[]. Released from [#cb8650]Aether[] fused with Carbolith under high heat. +liquid.meld2-rift.details = Jumbled primordial aspects. -liquid.meld-warp.name = [#b460e2]Warp -liquid.meld-warp.description = Used in utility buildings as fuel and in higher tier unit construction.\n\n[scarlet]Highly unstable[] +liquid.meld2-warp.name = [#b460e2]Warp +liquid.meld2-warp.description = Used in utility buildings as fuel and in higher tier unit construction.\n\n[scarlet]Highly unstable[] -liquid.meld-ichor.name = [#e6c700]Ichor -liquid.meld-ichor.description = Major food source for the [#ea9ad6]Meld[]. Fuels [#ea9ad6]Meld[] construct birthing and a major component in sustainable power systems/mass-produced infastructure. +liquid.meld2-ichor.name = [#e6c700]Ichor +liquid.meld2-ichor.description = Major food source for the [#ea9ad6]Meld[]. Fuels [#ea9ad6]Meld[] construct birthing and a major component in sustainable power systems/mass-produced infastructure. -liquid.meld-liquid-data.name = [#9ccaed]Liquid Data[] -liquid.meld-liquid-data.description = Fluid form of data pulled from technoscrap and other related materials. -liquid.meld-liquid-data.details = Appears to act as an alternative power source of sorts. +liquid.meld2-liquid-data.name = [#9ccaed]Liquid Data[] +liquid.meld2-liquid-data.description = Fluid form of data pulled from technoscrap and other related materials. +liquid.meld2-liquid-data.details = Appears to act as an alternative power source of sorts. -liquid.meld-null.name = [red]Null -liquid.meld-null.description = Byproduct of technoscrap cracking. Often vanishes without a trace. +liquid.meld2-null.name = [red]Null +liquid.meld2-null.description = Byproduct of technoscrap cracking. Often vanishes without a trace. -liquid.meld-meld.name = [#ea9ad6]Meld[] -liquid.meld-meld.description = Slowly disolves most metals and organics, save for a group of materials. -liquid.meld-meld.details = The original lifeform on Ikaru in gaseous state. +liquid.meld2-meld.name = [#ea9ad6]Meld[] +liquid.meld2-meld.description = Slowly disolves most metals and organics, save for a group of materials. +liquid.meld2-meld.details = The original lifeform on Ikaru in gaseous state. //Aspect Groups -aspect-group.meld-aether = [meld-aether]Aether -aspect-group.meld-aspect = [meld-aspect]Aspect -aspect-group.meld-fumes = [meld-fumes]Fumes -aspect-group.meld-outlet-fuel = Outlet Fuel +aspect-group.meld2-aether = [meld-aether]Aether +aspect-group.meld2-aspect = [meld-aspect]Aspect +aspect-group.meld2-fumes = [meld-fumes]Fumes +aspect-group.meld2-outlet-fuel = Outlet Fuel //Units //Internal -unit.meld-observer.name = Observer -unit.meld-observer.description = Commander of the Dormant Raft core. Fields a large build radius and [accent]Rallies[] nearby allies. Cannot mine resources, and comes with a reduced build speed. -unit.meld-observer. +unit.meld2-observer.name = Observer +unit.meld2-observer.description = Commander of the Dormant Raft core. Fields a large build radius and [accent]Rallies[] nearby allies. Cannot mine resources, and comes with a reduced build speed. +unit.meld2-observer. //Strata units -unit.meld-bulbhead.name = Bulbhead -unit.meld-bulbhead.description = Commander of the Raft core. Shoots sonar pulses and [accent]Rallies[] nearby allies. Repairs allied structures. Can reconstitute itself using appropriate liquids, or with enough time.\n\nHovers over buildings and solid floors at a reduced speed. -unit.meld-bulbhead.details = The classic. +unit.meld2-bulbhead.name = Bulbhead +unit.meld2-bulbhead.description = Commander of the Raft core. Shoots sonar pulses and [accent]Rallies[] nearby allies. Repairs allied structures. Can reconstitute itself using appropriate liquids, or with enough time.\n\nHovers over buildings and solid floors at a reduced speed. +unit.meld2-bulbhead.details = The classic. -unit.meld-bulbhead-sonar.name = Bulbhead Overseer +unit.meld2-bulbhead-sonar.name = Bulbhead Overseer -unit.meld-omega.name = Omega -unit.meld-omega.description = Commander of the Omega pad. Launches canisters of shrapnel and [accent]Rallies[] nearby allies.\n\nHas a personal shield generator feeding into a force projector which gets faster at lower shield integrety. Can reconstitute itself using appropriate liquids. -unit.meld-omega.details = The other classic. +unit.meld2-omega.name = Omega +unit.meld2-omega.description = Commander of the Omega pad. Launches canisters of shrapnel and [accent]Rallies[] nearby allies.\n\nHas a personal shield generator feeding into a force projector which gets faster at lower shield integrety. Can reconstitute itself using appropriate liquids. +unit.meld2-omega.details = The other classic. -unit.meld-psi.name = Psi -unit.meld-psi.description = Commander of the Psi pad. Charges up and fires beams of [#cbdbfc]Aspect[], doing [red]devistating[] damage, and [accent]Rallies[] nearby allies.\n\nHas a personal shield generator which gets faster at lower shield integrety. Can reconstitute itself using appropriate liquids. -unit.meld-psi.details = ...you sure this will work?\n\nI've tested it before, how badly could this end? +unit.meld2-psi.name = Psi +unit.meld2-psi.description = Commander of the Psi pad. Charges up and fires beams of [#cbdbfc]Aspect[], doing [red]devistating[] damage, and [accent]Rallies[] nearby allies.\n\nHas a personal shield generator which gets faster at lower shield integrety. Can reconstitute itself using appropriate liquids. +unit.meld2-psi.details = ...you sure this will work?\n\nI've tested it before, how badly could this end? -unit.meld-phi.name = Phi -unit.meld-phi.description = Commander of the Phi pad. Launches armor-piercing spines which release ooze foam upon hitting the ground, and [accent]Rallies[] nearby allies.\n\nCan reconstitute itself using appropriate liquids, or with enough time.\n\n[accent]Lightly armored[] -unit.meld-phi.details = ...you sure this will work?\n\nI've tested it before, how badly could this end? +unit.meld2-phi.name = Phi +unit.meld2-phi.description = Commander of the Phi pad. Launches armor-piercing spines which release ooze foam upon hitting the ground, and [accent]Rallies[] nearby allies.\n\nCan reconstitute itself using appropriate liquids, or with enough time.\n\n[accent]Lightly armored[] +unit.meld2-phi.details = ...you sure this will work?\n\nI've tested it before, how badly could this end? -unit.meld-outcast.name = Outcast -unit.meld-outcast.description = Old commander of the Bunker core. Drops whirling mines that sap health from targets hit. -unit.meld-outcast.details = Not a classic. Still cool though. +unit.meld2-outcast.name = Outcast +unit.meld2-outcast.description = Old commander of the Bunker core. Drops whirling mines that sap health from targets hit. +unit.meld2-outcast.details = Not a classic. Still cool though. -unit.meld-iguana.name = Iguana -unit.meld-iguana.description = Commander of the Bunker core. Launches out sap vortexes which prime after a short delay. [accent]Rallies[] nearby allies. Quick omnidirectional movement.\n\n[accent]Plated[] -unit.meld-iguana.details = One hell of an alien. +unit.meld2-iguana.name = Iguana +unit.meld2-iguana.description = Commander of the Bunker core. Launches out sap vortexes which prime after a short delay. [accent]Rallies[] nearby allies. Quick omnidirectional movement.\n\n[accent]Plated[] +unit.meld2-iguana.details = One hell of an alien. -unit.meld-shark.name = Shark -unit.meld-shark.description = Launches salvos of missiles which sap target's health. Can hover on land at a reduced speed. An [accent]excellent[] scout.\n[red]Struggles against force fields.[] -unit.meld-shark.details = Enables the other mechanized fish, especially Remora and Narwhal. +unit.meld2-shark.name = Shark +unit.meld2-shark.description = Launches salvos of missiles which sap target's health. Can hover on land at a reduced speed. An [accent]excellent[] scout.\n[red]Struggles against force fields.[] +unit.meld2-shark.details = Enables the other mechanized fish, especially Remora and Narwhal. -unit.meld-narwhal.name = Narwhal -unit.meld-narwhal.description = Launches short-ranged orbital strikes. Hovers over deep bodies of liquid. Charges an energy field channeled from its spike when moving quickly which bounces units away.\n\n[gray]If only there was some way to launch them as missiles...[]\n\n[accent]Plated[] +unit.meld2-narwhal.name = Narwhal +unit.meld2-narwhal.description = Launches short-ranged orbital strikes. Hovers over deep bodies of liquid. Charges an energy field channeled from its spike when moving quickly which bounces units away.\n\n[gray]If only there was some way to launch them as missiles...[]\n\n[accent]Plated[] -unit.meld-reef.name = Reef -unit.meld-reef.description = Mines deposits. Slowly regenerates health. +unit.meld2-reef.name = Reef +unit.meld2-reef.description = Mines deposits. Slowly regenerates health. -unit.meld-bloodied-reef.name = Bloodied Reef -unit.meld-bloodied-reef.description = ??? +unit.meld2-bloodied-reef.name = Bloodied Reef +unit.meld2-bloodied-reef.description = ??? -unit.meld-forlorn-reef.name = Forlorn Reef -unit.meld-forlorn-reef.description = ??? +unit.meld2-forlorn-reef.name = Forlorn Reef +unit.meld2-forlorn-reef.description = ??? -unit.meld-shambling-reef.name = Shambling Reef -unit.meld-shambling-reef.description = ??? +unit.meld2-shambling-reef.name = Shambling Reef +unit.meld2-shambling-reef.description = ??? -unit.meld-astrea.name = Astrea -unit.meld-astrea.description = Launches armor-piercing spines at targets. Crawls over obstructions. -unit.meld-astrea.details = Has a taste for carbonic barriers. It's up to you as to what to do about them. +unit.meld2-astrea.name = Astrea +unit.meld2-astrea.description = Launches armor-piercing spines at targets. Crawls over obstructions. +unit.meld2-astrea.details = Has a taste for carbonic barriers. It's up to you as to what to do about them. -unit.meld-remora.name = Remora -unit.meld-remora.description = Launches homing spears which sap target's health, pulling targets further back after traveling a certain distance. -unit.meld-remora.details = Despite being abiotic, Remora help Sharks tank damage on the battlefield while Sharks provide intel on where enemies are. A symbiotic relationship for the two mechanized fish. +unit.meld2-remora.name = Remora +unit.meld2-remora.description = Launches homing spears which sap target's health, pulling targets further back after traveling a certain distance. +unit.meld2-remora.details = Despite being abiotic, Remora help Sharks tank damage on the battlefield while Sharks provide intel on where enemies are. A symbiotic relationship for the two mechanized fish. -unit.meld-hammerhead.name = Hammerhead [red](PS)[] -unit.meld-hammerhead.description = Launches piercing shards at enemies, making them take more knockback from other sources. Slowly regenerates from combat.\n\nCan be affected by most helpful effects.\n\n[purple]Biological![]\n\n[red]PLACEHOLDER SPRITES[] +unit.meld2-hammerhead.name = Hammerhead [red](PS)[] +unit.meld2-hammerhead.description = Launches piercing shards at enemies, making them take more knockback from other sources. Slowly regenerates from combat.\n\nCan be affected by most helpful effects.\n\n[purple]Biological![]\n\n[red]PLACEHOLDER SPRITES[] -unit.meld-dragonfly.name = Dragonfly -unit.meld-dragonfly.description = Revs up a needle launcher when hovering in place. -unit.meld-dragonfly. +unit.meld2-dragonfly.name = Dragonfly +unit.meld2-dragonfly.description = Revs up a needle launcher when hovering in place. +unit.meld2-dragonfly. //Fringe units -unit.meld-enforcer.name = Enforcer -unit.meld-enforcer.description = Commander of squads during the incursion. Launches sprays of pellets towards targets and missiles with heavy knockback. Can reconstitute itself using appropriate liquids. -unit.meld-enforcer.details = General commander unit used alongside specialists during the incursion. +unit.meld2-enforcer.name = Enforcer +unit.meld2-enforcer.description = Commander of squads during the incursion. Launches sprays of pellets towards targets and missiles with heavy knockback. Can reconstitute itself using appropriate liquids. +unit.meld2-enforcer.details = General commander unit used alongside specialists during the incursion. -unit.meld-impaler.name = Impaler -unit.meld-impaler.description = Pierces targets with shrapnel blasts at short range. Deploys autoturrets from its thorax.\n\n[accent]Plated[] -unit.meld-impaler.details = Designed during the incursion to aid with problems arising due to armored constructs. Not very good against larger targets. +unit.meld2-impaler.name = Impaler +unit.meld2-impaler.description = Pierces targets with shrapnel blasts at short range. Deploys autoturrets from its thorax.\n\n[accent]Plated[] +unit.meld2-impaler.details = Designed during the incursion to aid with problems arising due to armored constructs. Not very good against larger targets. -unit.meld-impaler-autoturret.name = Impaler Autoturret +unit.meld2-impaler-autoturret.name = Impaler Autoturret -unit.meld-time-keeper.name = Time Keeper -unit.meld-time-keeper.description = Lacerates targets with a spray of particulate resonarum. Slowly regenerates health over time. \n\n[accent]Lightly armored[] -unit.meld-time-keeper.details = A heavy crowd control option. An expiriment with grafting resonarum which came to fruition. +unit.meld2-time-keeper.name = Time Keeper +unit.meld2-time-keeper.description = Lacerates targets with a spray of particulate resonarum. Slowly regenerates health over time. \n\n[accent]Lightly armored[] +unit.meld2-time-keeper.details = A heavy crowd control option. An expiriment with grafting resonarum which came to fruition. -unit.meld-purifier.name = Purifier -unit.meld-purifier.description = Drills through enemy structures and units alike. Can reconstitute itself using appropriate liquids. -unit.meld-purifier.details = A model predating the incursion built with local materials. +unit.meld2-purifier.name = Purifier +unit.meld2-purifier.description = Drills through enemy structures and units alike. Can reconstitute itself using appropriate liquids. +unit.meld2-purifier.details = A model predating the incursion built with local materials. //Meld units -unit.meld-jilla.name = Jilla -unit.meld-jilla.description = [#ea9ad6]First form worm/crystal bug[]\nStabalized crystal enables spurting flame indefinitely with no reprecussion. -unit.meld-jilla.details = Oddly enough, Jilla are not observed to form legs in their maturity, resembling a worm more than a crystal bug. Jilla were thought to be patient zero for new crystal bug forms, though exploring deeper into the caves lead to the discovery of something else... +unit.meld2-jilla.name = Jilla +unit.meld2-jilla.description = [#ea9ad6]First form worm/crystal bug[]\nStabalized crystal enables spurting flame indefinitely with no reprecussion. +unit.meld2-jilla.details = Oddly enough, Jilla are not observed to form legs in their maturity, resembling a worm more than a crystal bug. Jilla were thought to be patient zero for new crystal bug forms, though exploring deeper into the caves lead to the discovery of something else... -unit.meld-scorcher.name = Scorcher -unit.meld-scorcher.description = [#ea9ad6]Small swarmling crystal bug[]\nConstruct observed to take constant damage while spurting its flame. -unit.meld-scorcher.details = Scorchers are likely the original crystal bug. Jillas are quick and often aggresive, while Scorchers are observed around their home, too fragile to venture outwards. +unit.meld2-scorcher.name = Scorcher +unit.meld2-scorcher.description = [#ea9ad6]Small swarmling crystal bug[]\nConstruct observed to take constant damage while spurting its flame. +unit.meld2-scorcher.details = Scorchers are likely the original crystal bug. Jillas are quick and often aggresive, while Scorchers are observed around their home, too fragile to venture outwards. -unit.meld-gilla.name = Gilla -unit.meld-gilla.description = [#ea9ad6]Second form crystal bug[]\nBulky form allows the construct to survive longer while spurting flame. +unit.meld2-gilla.name = Gilla +unit.meld2-gilla.description = [#ea9ad6]Second form crystal bug[]\nBulky form allows the construct to survive longer while spurting flame. -unit.meld-killa-armored.name = Killa (Armored) -unit.meld-killa-armored.description = [#ea9ad6]Second form crystal bug[]\nObserved to launch dissolving globules at hostile targets, being catapulted away from the threat. \n\n[red]Lightly armored[] -unit.meld-killa-armored.details = Constantly weighed down by their shell, Killa are the only armored constructs known to use Resonarum. +unit.meld2-killa-armored.name = Killa (Armored) +unit.meld2-killa-armored.description = [#ea9ad6]Second form crystal bug[]\nObserved to launch dissolving globules at hostile targets, being catapulted away from the threat. \n\n[red]Lightly armored[] +unit.meld2-killa-armored.details = Constantly weighed down by their shell, Killa are the only armored constructs known to use Resonarum. -unit.meld-killa.name = Killa -unit.meld-killa.description = [#ea9ad6]Second form boosting crystal bug[]\nThrusters enable quick movement and resistance to being swept back by wind. -unit.meld-killa.details = Theese lil goobers have developed somewhat of a tolerance for Resonarum through being high off it their entire lives, and they're ready to use that insatiable addiction to bypass your defenses. +unit.meld2-killa.name = Killa +unit.meld2-killa.description = [#ea9ad6]Second form boosting crystal bug[]\nThrusters enable quick movement and resistance to being swept back by wind. +unit.meld2-killa.details = Theese lil goobers have developed somewhat of a tolerance for Resonarum through being high off it their entire lives, and they're ready to use that insatiable addiction to bypass your defenses. -unit.meld-craig.name = Craig -unit.meld-craig.description = [#ea9ad6]First form scrap heap[]\nLow durability and an unstable weapon, but often comes in swarms. -unit.meld-craig.details = Composed of materials frequently found in [#e6c700]Ichor[]. +unit.meld2-craig.name = Craig +unit.meld2-craig.description = [#ea9ad6]First form scrap heap[]\nLow durability and an unstable weapon, but often comes in swarms. +unit.meld2-craig.details = Composed of materials frequently found in [#e6c700]Ichor[]. -unit.meld-afraig.name = Afraig -unit.meld-afraig.description = [#ea9ad6]First form bezerking scrap heap[]\nWhen splurging flame, the construct launches itself towards the direction of shooting. Beware [#ea9ad6]Amplified[] Afraigs.\n\n[red]Armored[] +unit.meld2-afraig.name = Afraig +unit.meld2-afraig.description = [#ea9ad6]First form bezerking scrap heap[]\nWhen splurging flame, the construct launches itself towards the direction of shooting. Beware [#ea9ad6]Amplified[] Afraigs.\n\n[red]Armored[] -unit.meld-braig.name = Braig -unit.meld-braig.description = [#ea9ad6]Second form artillery scrap heap[]\nThe construct stays at range to shoot, while being armed with a Craig's blaster.\n\nActs as a small seige engine, able to take cover in [#ea9ad6]Meld Capsules & Beacons[]. +unit.meld2-braig.name = Braig +unit.meld2-braig.description = [#ea9ad6]Second form artillery scrap heap[]\nThe construct stays at range to shoot, while being armed with a Craig's blaster.\n\nActs as a small seige engine, able to take cover in [#ea9ad6]Meld Capsules & Beacons[]. -unit.meld-poisag.name = Poisag -unit.meld-poisag.description = [#ea9ad6]Second form shielding scrap heap[]\nObserved launching miniturized [#ea9ad6]Meld Capsules[], deploying on hit/near to units.\n\nDangerous when combined with constructs that can effectively use the protection, or when ammo is limited.\n\n[red]Lightly armored[] +unit.meld2-poisag.name = Poisag +unit.meld2-poisag.description = [#ea9ad6]Second form shielding scrap heap[]\nObserved launching miniturized [#ea9ad6]Meld Capsules[], deploying on hit/near to units.\n\nDangerous when combined with constructs that can effectively use the protection, or when ammo is limited.\n\n[red]Lightly armored[] -unit.meld-pointago.name = Pointago -unit.meld-pointago.description = [#ea9ad6]Second form incubating scrap heap[]\nConstruct stays at range after shooting, but will often run fowards afterwards.\n\nObserved to cary an incubator that can form crystals, which the heap consumes for a burst of energy. +unit.meld2-pointago.name = Pointago +unit.meld2-pointago.description = [#ea9ad6]Second form incubating scrap heap[]\nConstruct stays at range after shooting, but will often run fowards afterwards.\n\nObserved to cary an incubator that can form crystals, which the heap consumes for a burst of energy. -unit.meld-graig.name = Graig -unit.meld-graig.description = [#ea9ad6]Megalith nest scrap heap?[]\nObserved to birth Craigs en-masse. Armored with multiple of Braig's and Craig's weapons, the construct can defend itself well.\n\nTheorised to be a fragment off of a larger scrap heap.\n\n[red]Heavly armored[] +unit.meld2-graig.name = Graig +unit.meld2-graig.description = [#ea9ad6]Megalith nest scrap heap?[]\nObserved to birth Craigs en-masse. Armored with multiple of Braig's and Craig's weapons, the construct can defend itself well.\n\nTheorised to be a fragment off of a larger scrap heap.\n\n[red]Heavly armored[] -unit.meld-wuba.name = Wuba -unit.meld-wuba.description = [#ea9ad6]First form kamekaze worm[]\nWhen threatened or means of protecting its colony, the construct blasts off its shell and attempts to detonate. +unit.meld2-wuba.name = Wuba +unit.meld2-wuba.description = [#ea9ad6]First form kamekaze worm[]\nWhen threatened or means of protecting its colony, the construct blasts off its shell and attempts to detonate. -unit.meld-wuba-exploding.name = Wuba [red](Exploding!)[] -unit.meld-wuba-exploding.description = A large, volatile blob, soon to detonate.\n\n[#ea9ad6]Blob![] -unit.meld-wuba-exploding.details = It can think??? +unit.meld2-wuba-exploding.name = Wuba [red](Exploding!)[] +unit.meld2-wuba-exploding.description = A large, volatile blob, soon to detonate.\n\n[#ea9ad6]Blob![] +unit.meld2-wuba-exploding.details = It can think??? -unit.meld-uwubba.name = Uwubba -unit.meld-uwubba.description = [#ea9ad6]First form kamekaze worm[]\nA wuba encased in a stony shell, not too different to an armored killa.\n\n[red]Heavly Armored![] -unit.meld-uwubba.details = Yknow theres probably a joke to be made here. +unit.meld2-uwubba.name = Uwubba +unit.meld2-uwubba.description = [#ea9ad6]First form kamekaze worm[]\nA wuba encased in a stony shell, not too different to an armored killa.\n\n[red]Heavly Armored![] +unit.meld2-uwubba.details = Yknow theres probably a joke to be made here. -unit.meld-ontragga.name = Ontragga -unit.meld-ontragga.description = [#ea9ad6]Second form seige worm[]\nConstruct creeps foward shielding numerous wuba inside from harm whilst sporting a heavy aether cannon which fires in three round bursts.\n\nThis construct is a [accent]high priority target[] and [red]must[] be taken out before it breaches a defensive perimeter, [red]DO NOT LET IT LEAK.[]\n\n[red]Plated![]\n\n[orange]Biomechanical![] -unit.meld-ontragga.details = Yknow theres probably a joke to be made here. +unit.meld2-ontragga.name = Ontragga +unit.meld2-ontragga.description = [#ea9ad6]Second form seige worm[]\nConstruct creeps foward shielding numerous wuba inside from harm whilst sporting a heavy aether cannon which fires in three round bursts.\n\nThis construct is a [accent]high priority target[] and [red]must[] be taken out before it breaches a defensive perimeter, [red]DO NOT LET IT LEAK.[]\n\n[red]Plated![]\n\n[orange]Biomechanical![] +unit.meld2-ontragga.details = Yknow theres probably a joke to be made here. -unit.meld-globkin.name = Globkin -unit.meld-globkin.description = [#ea9ad6]Guardian skirmisher nest construct[]\n\nConstruct jolts backwards after launching a blast of shrapnel from its cannons, containing several blobs that detonate if not dealt with.\n\nDistract with moble units or drop overseer pings on it to prevent it from recoiling past defensive lines.\n\n[red]Plated![] +unit.meld2-globkin.name = Globkin +unit.meld2-globkin.description = [#ea9ad6]Guardian skirmisher nest construct[]\n\nConstruct jolts backwards after launching a blast of shrapnel from its cannons, containing several blobs that detonate if not dealt with.\n\nDistract with moble units or drop overseer pings on it to prevent it from recoiling past defensive lines.\n\n[red]Plated![] -unit.meld-allegro.name = Allegro -unit.meld-allegro.description = [#ea9ad6]Guardian phalanx nest construct[]\nConstruct comes with a localised storm projector organ which bursts a cloud of vaporous meld periodically.\n\nReconstitutes all constructs in range and dissolves nearby enemy units with its spewers, recoiling backwards to stick in front of a defensive perimeter.\n\n[red]FOCUS FIRE AND DESTROY ON SIGHT.\nDO NOT GET ENGAGE IN CLOSE COMBAT.\nYOU HAVE BEEN WARNED[] +unit.meld2-allegro.name = Allegro +unit.meld2-allegro.description = [#ea9ad6]Guardian phalanx nest construct[]\nConstruct comes with a localised storm projector organ which bursts a cloud of vaporous meld periodically.\n\nReconstitutes all constructs in range and dissolves nearby enemy units with its spewers, recoiling backwards to stick in front of a defensive perimeter.\n\n[red]FOCUS FIRE AND DESTROY ON SIGHT.\nDO NOT GET ENGAGE IN CLOSE COMBAT.\nYOU HAVE BEEN WARNED[] -unit.meld-impovrished.name = Impovrished -unit.meld-impovrished.description = [#ea9ad6]Guardian battery nest construct[]\nConstruct is an amalgamation of common combat scrap heaps.\n\nOften hides behind other artillery units while using its cannons/snipers to provide fire support.\n\Scatters miniturized [#ea9ad6]Meld Capsules[] from its tip.\n\n[red]Construct is a dangerous source of attrophy, engage in flanking manuvours and DESTROY on identification.[]\n\n[red]Plated!\n\n[orange]Biomechanical![] -unit.meld-impovrished.details = A mock of a mock-\nan effegy of fraud, yet with real bite. +unit.meld2-impovrished.name = Impovrished +unit.meld2-impovrished.description = [#ea9ad6]Guardian battery nest construct[]\nConstruct is an amalgamation of common combat scrap heaps.\n\nOften hides behind other artillery units while using its cannons/snipers to provide fire support.\n\Scatters miniturized [#ea9ad6]Meld Capsules[] from its tip.\n\n[red]Construct is a dangerous source of attrophy, engage in flanking manuvours and DESTROY on identification.[]\n\n[red]Plated!\n\n[orange]Biomechanical![] +unit.meld2-impovrished.details = A mock of a mock-\nan effegy of fraud, yet with real bite. -unit.meld-tracker.name = Tracker -unit.meld-tracker.description = [#ea9ad6]First form artillery support primitive scrap heap[]\n\nConstruct appears to be a mobile form of an incubator, who's sole purpose is to form projectiles and guide them towards targets. +unit.meld2-tracker.name = Tracker +unit.meld2-tracker.description = [#ea9ad6]First form artillery support primitive scrap heap[]\n\nConstruct appears to be a mobile form of an incubator, who's sole purpose is to form projectiles and guide them towards targets. -unit.meld-tracker-projectile.name = Tracker Projectile -unit.meld-tracker-projectile.description = [#ea9ad6]Projectile construct[]\nConstruct is manufactured inside [accent]Tracker[] constructs and is directed towards its target through some unknown guidance mechanism. +unit.meld2-tracker-projectile.name = Tracker Projectile +unit.meld2-tracker-projectile.description = [#ea9ad6]Projectile construct[]\nConstruct is manufactured inside [accent]Tracker[] constructs and is directed towards its target through some unknown guidance mechanism. -unit.meld-fletch.name = Fletch -unit.meld-fletch.description = [#ea9ad6]First form hovercraft mimic[]\nThis construct appears to mimic [accent]Shark[] units? Im not sure what it's suposed to be other than that... -unit.meld-fletch.details = Our test with "thrusters" is sucsessful. Blobslingers mounetd on a metal hull prove effective against invader's constructs, and Mercury will not prove problematic with steering handled asynchronously by crystals. +unit.meld2-fletch.name = Fletch +unit.meld2-fletch.description = [#ea9ad6]First form hovercraft mimic[]\nThis construct appears to mimic [accent]Shark[] units? Im not sure what it's suposed to be other than that... +unit.meld2-fletch.details = Our test with "thrusters" is sucsessful. Blobslingers mounetd on a metal hull prove effective against invader's constructs, and Mercury will not prove problematic with steering handled asynchronously by crystals. -unit.meld-kathid.name = Kathid -unit.meld-kathid.description = [#ea9ad6]First form nestling crystal bug[]\nTheories about how [#ea9ad6]Meld[] forms colonies have circulated around since its discovery.\n\nOne theory is armored constructs like Kathids use their piercing flame to penetrate stone, like they do to metal. That woudn't account for the giant rock formations spotted around.\n\n[red]Armored[] +unit.meld2-kathid.name = Kathid +unit.meld2-kathid.description = [#ea9ad6]First form nestling crystal bug[]\nTheories about how [#ea9ad6]Meld[] forms colonies have circulated around since its discovery.\n\nOne theory is armored constructs like Kathids use their piercing flame to penetrate stone, like they do to metal. That woudn't account for the giant rock formations spotted around.\n\n[red]Armored[] -unit.meld-katika.name = Katika -unit.meld-katika.description = [#ea9ad6]First form hydra crystal bug[]\nConstruct appears to be a malformed Kathid without a hardened shell with multiple heads, though there is little evidence to go off of.\n\nMaybe an error in creation propagated by its usefulness?\n\nDespite the appearence, the blob controlling the construct acts as one whole entity. -unit.meld-katika.details = Theres some joke about evolution to be had here. +unit.meld2-katika.name = Katika +unit.meld2-katika.description = [#ea9ad6]First form hydra crystal bug[]\nConstruct appears to be a malformed Kathid without a hardened shell with multiple heads, though there is little evidence to go off of.\n\nMaybe an error in creation propagated by its usefulness?\n\nDespite the appearence, the blob controlling the construct acts as one whole entity. +unit.meld2-katika.details = Theres some joke about evolution to be had here. -unit.meld-kithlid.name = Kithlid -unit.meld-kithlid.description = [#ea9ad6]Megalith nest crystal bug[]\nConstruct has been observed constantly pumping out [#ea9ad6]Jilla[] constructs in missile form when engaging threats.\n\nWhilst [#ea9ad6]Kithlid[] often turn quickly to face their targets, their ability to do so is hindered when charging up a barage of flame.\n\nEnsure that all parts of a Kithlid are thoughroughly dealt with after breaching the construct's shell.\n\n[red]Heavly armored[] +unit.meld2-kithlid.name = Kithlid +unit.meld2-kithlid.description = [#ea9ad6]Megalith nest crystal bug[]\nConstruct has been observed constantly pumping out [#ea9ad6]Jilla[] constructs in missile form when engaging threats.\n\nWhilst [#ea9ad6]Kithlid[] often turn quickly to face their targets, their ability to do so is hindered when charging up a barage of flame.\n\nEnsure that all parts of a Kithlid are thoughroughly dealt with after breaching the construct's shell.\n\n[red]Heavly armored[] -unit.meld-pester.name = Pester -unit.meld-pester.description = [#ea9ad6]Small sprayer flier[]\nBlasts targets with a burst of flame. Requires time to recharge.\nDamages units and buildings caught under its wake. +unit.meld2-pester.name = Pester +unit.meld2-pester.description = [#ea9ad6]Small sprayer flier[]\nBlasts targets with a burst of flame. Requires time to recharge.\nDamages units and buildings caught under its wake. -unit.meld-spillway.name = Spillway -unit.meld-spillway.description = [#ea9ad6]First form projectile carrier[]\nBirthed in its final form rather than being composed of multiple units, yet bursts open into [#ea9ad6]Craigs[] and [#ea9ad6]Wubbas.[].\n\nReffer to [accent][] for more information on this construct's center. +unit.meld2-spillway.name = Spillway +unit.meld2-spillway.description = [#ea9ad6]First form projectile carrier[]\nBirthed in its final form rather than being composed of multiple units, yet bursts open into [#ea9ad6]Craigs[] and [#ea9ad6]Wubbas.[].\n\nReffer to [accent][] for more information on this construct's center. -unit.meld-spillway-projectile.name = Spillway Core -unit.meld-spillway-projectile.description = [#ea9ad6]Projectile construct[]\nWhile the core looks inconspicuous at first, two eye indents have been observed.\n\nIt is not certain if the core or the spillway controls the unit, but both burst into multiple constructs on destruction. +unit.meld2-spillway-projectile.name = Spillway Core +unit.meld2-spillway-projectile.description = [#ea9ad6]Projectile construct[]\nWhile the core looks inconspicuous at first, two eye indents have been observed.\n\nIt is not certain if the core or the spillway controls the unit, but both burst into multiple constructs on destruction. -unit.meld-gala.name = Gala -unit.meld-gala.description = [#ea9ad6]Small blob carrier[]\nCaries blobs to wherever they're needed. Sometimes the construct will sacrifice itself, crashing down from the skies to release its blobs on hostiles. +unit.meld2-gala.name = Gala +unit.meld2-gala.description = [#ea9ad6]Small blob carrier[]\nCaries blobs to wherever they're needed. Sometimes the construct will sacrifice itself, crashing down from the skies to release its blobs on hostiles. -unit.meld-blob.name = Blob -unit.meld-blob.description = [#ea9ad6]Blob![]\nA blob. What more is there to say?\n\nBlob blob blob blob blob.\n\n[#ea9ad6]Blob![]\n\nIt explodes after a delay, dealing massive damage.\n[gray]Don'y you remember what happened last time we got near one of tho-[][red][] -unit.meld-blob.details = You cut me off!\nJust like the blob did to our power yes yes, I know what happened last time...\nYou forgot to mention how theese are found on the weird structures this thing comes from\nThat'll have to wait for another entry then. +unit.meld2-blob.name = Blob +unit.meld2-blob.description = [#ea9ad6]Blob![]\nA blob. What more is there to say?\n\nBlob blob blob blob blob.\n\n[#ea9ad6]Blob![]\n\nIt explodes after a delay, dealing massive damage.\n[gray]Don'y you remember what happened last time we got near one of tho-[][red][] +unit.meld2-blob.details = You cut me off!\nJust like the blob did to our power yes yes, I know what happened last time...\nYou forgot to mention how theese are found on the weird structures this thing comes from\nThat'll have to wait for another entry then. -unit.meld-splurger.name = Splurger -unit.meld-splurger.description = [#ea9ad6]Tiny shelled blob[]\nThey gave the dam blobs armor, why the hell would you give it armor?\n\nIf this is some sort of prank like last time I swear ill-[red][]\n\n [red]Plated![] -unit.meld-splurger.details = You cut me off!\nJust like the blob did to our power yes yes, I know what happened last time...\nYou forgot to mention how theese are found on the weird structures this thing comes from\nThat'll have to wait for another entry then. +unit.meld2-splurger.name = Splurger +unit.meld2-splurger.description = [#ea9ad6]Tiny shelled blob[]\nThey gave the dam blobs armor, why the hell would you give it armor?\n\nIf this is some sort of prank like last time I swear ill-[red][]\n\n [red]Plated![] +unit.meld2-splurger.details = You cut me off!\nJust like the blob did to our power yes yes, I know what happened last time...\nYou forgot to mention how theese are found on the weird structures this thing comes from\nThat'll have to wait for another entry then. -unit.meld-zip.name = Zip -unit.meld-zip.description = [#ea9ad6]Light spawner missile[]\nSpotted in swarms that flock between colonies. Beware the [#ea9ad6]Jilla[] they cary. +unit.meld2-zip.name = Zip +unit.meld2-zip.description = [#ea9ad6]Light spawner missile[]\nSpotted in swarms that flock between colonies. Beware the [#ea9ad6]Jilla[] they cary. -unit.meld-inator.name = Inator -unit.meld-inator.description = [#ea9ad6]First form skirmishing fulgarian[]\nConstruct is the first observed which has no visible forms of [#ea9ad6]Meld[] protrusions. Im not sure how it operates...\n\n[orange]Fully mechanical![] -unit.meld-inator.details = The first mechanical unit truely added into the mod. There was an attempt with a flying unit before this, but it never made it past testing. +unit.meld2-inator.name = Inator +unit.meld2-inator.description = [#ea9ad6]First form skirmishing fulgarian[]\nConstruct is the first observed which has no visible forms of [#ea9ad6]Meld[] protrusions. Im not sure how it operates...\n\n[orange]Fully mechanical![] +unit.meld2-inator.details = The first mechanical unit truely added into the mod. There was an attempt with a flying unit before this, but it never made it past testing. -unit.meld-stoner.name = Stoner -unit.meld-stoner.description = [#ea9ad6]Bulky incindary artillery fulgurian[]\n\nConstruct needs to steady itself in place before unsheathing its weapon. I can't tell if it's impressive that it works or if it's concerning that it has a giant chunk of Dissonitre embedded into it.\n\n[orange]Fully mechanical![] -unit.meld-stoner.details = Constantly stoned. +unit.meld2-stoner.name = Stoner +unit.meld2-stoner.description = [#ea9ad6]Bulky incindary artillery fulgurian[]\n\nConstruct needs to steady itself in place before unsheathing its weapon. I can't tell if it's impressive that it works or if it's concerning that it has a giant chunk of Dissonitre embedded into it.\n\n[orange]Fully mechanical![] +unit.meld2-stoner.details = Constantly stoned. -unit.meld-bulwark.name = Bulwark -unit.meld-bulwark.description = [#ea9ad6]First form shielding fulgurian[]\nConstruct has a small capsule construct encased in a layer of metal. I wonder how it's fueled...\n\n[red]Lightly armored[] & [orange] Mechanical! -unit.meld-bulwark.details = An absolute mance to fight. Be prepared... +unit.meld2-bulwark.name = Bulwark +unit.meld2-bulwark.description = [#ea9ad6]First form shielding fulgurian[]\nConstruct has a small capsule construct encased in a layer of metal. I wonder how it's fueled...\n\n[red]Lightly armored[] & [orange] Mechanical! +unit.meld2-bulwark.details = An absolute mance to fight. Be prepared... -unit.meld-soontm.name = Coming Soon! +unit.meld2-soontm.name = Coming Soon! //research categories //Status effects -status.meld-aspect-burn.name = Aspect Burn -status.meld-aspect-burn.description = Doubles damage taken, does a tiny bit of DoT. Applied by [#cbdbfc]Aspect[]-based weaponary in conjunction with burning. \nOnly affects mechanical and armored targets. -status.meld-aspect-burn +status.meld2-aspect-burn.name = Aspect Burn +status.meld2-aspect-burn.description = Doubles damage taken, does a tiny bit of DoT. Applied by [#cbdbfc]Aspect[]-based weaponary in conjunction with burning. \nOnly affects mechanical and armored targets. +status.meld2-aspect-burn -status.meld-blackout.name = Blackout -status.meld-blackout.description = Fade to nothing. Applied by the [gray]Backdrop[] -status.meld-blackout.details = Being reshapen by the lucid one, much to the slumbering one's dismay. +status.meld2-blackout.name = Blackout +status.meld2-blackout.description = Fade to nothing. Applied by the [gray]Backdrop[] +status.meld2-blackout.details = Being reshapen by the lucid one, much to the slumbering one's dismay. -status.meld-dissolving.name = Dissolving -status.meld-dissolving.description = Small bit of DoT and doubles damage taken. Applied by [#ea9ad6]Meld Beacons[]. -status.meld-dissolving.details = Being peeled appart by [#ea9ad6]Meld[], bit by bit. +status.meld2-dissolving.name = Dissolving +status.meld2-dissolving.description = Small bit of DoT and doubles damage taken. Applied by [#ea9ad6]Meld Beacons[]. +status.meld2-dissolving.details = Being peeled appart by [#ea9ad6]Meld[], bit by bit. -status.meld-strata.name = Strata -status.meld-strata.description = Utilises Ikaru's basic resources to great effect.\n[accent]This is you![] -status.meld-strata.details = Our last resort. If the Dreamer were to ever be lost, an instance of you would be awoken. Go forth and return what is ours. +status.meld2-strata.name = Strata +status.meld2-strata.description = Utilises Ikaru's basic resources to great effect.\n[accent]This is you![] +status.meld2-strata.details = Our last resort. If the Dreamer were to ever be lost, an instance of you would be awoken. Go forth and return what is ours. -status.meld-fringe.name = Fringe -status.meld-fringe.description = Enlightens materials into a useable form. -status.meld-fringe.details = Hello Strata! +status.meld2-fringe.name = Fringe +status.meld2-fringe.description = Enlightens materials into a useable form. +status.meld2-fringe.details = Hello Strata! -status.meld-mangrove-a0-refreshed.name = Refreshed -status.meld-mangrove-a0-refreshed.description = Doubles reload speed and slightly reduces damage taken. Invokes slight regeneration. +status.meld2-mangrove-a0-refreshed.name = Refreshed +status.meld2-mangrove-a0-refreshed.description = Doubles reload speed and slightly reduces damage taken. Invokes slight regeneration. -status.meld-mangrove-a1-infested.name = Infested -status.meld-mangrove-a1-infested.description = Hefty amount of DoT an' damage taken and dealt is magnified. Doubles... reload speed?\n\n[gray]What applies this again?\nI don't know, but we've got to ru-[]\n[red][] +status.meld2-mangrove-a1-infested.name = Infested +status.meld2-mangrove-a1-infested.description = Hefty amount of DoT an' damage taken and dealt is magnified. Doubles... reload speed?\n\n[gray]What applies this again?\nI don't know, but we've got to ru-[]\n[red][] -status.meld-mangrove-b0-shattered-flame.name = Shattered Flame -status.meld-mangrove-b0-shattered-flame.description = Sacrifice is power. +status.meld2-mangrove-b0-shattered-flame.name = Shattered Flame +status.meld2-mangrove-b0-shattered-flame.description = Sacrifice is power. -status.meld-mangrove-d0-mercury-poisoning.name = Mercury Poisoning -status.meld-mangrove-d0-mercury-poisoning.description = Extremely deadly to critters of [#ea9ad6]Meld[] origin. Effects unknown.\n[gray]TODO: Update this for Strata +status.meld2-mangrove-d0-mercury-poisoning.name = Mercury Poisoning +status.meld2-mangrove-d0-mercury-poisoning.description = Extremely deadly to critters of [#ea9ad6]Meld[] origin. Effects unknown.\n[gray]TODO: Update this for Strata -status.meld-mangrove-d1-slippery.name = Mercury Coating -status.meld-mangrove-d1-slippery.description = Coating of [#89828c]Mercury[].\n[gray]Fun!\nHey don't eat that-[] +status.meld2-mangrove-d1-slippery.name = Mercury Coating +status.meld2-mangrove-d1-slippery.description = Coating of [#89828c]Mercury[].\n[gray]Fun!\nHey don't eat that-[] -status.meld-strata-a0-rally.name = Rally -status.meld-strata-a0-rally.description = Increased mobility and reload. Applied by [accent]Commanders[] and [accent]Sonars[]. +status.meld2-strata-a0-rally.name = Rally +status.meld2-strata-a0-rally.description = Increased mobility and reload. Applied by [accent]Commanders[] and [accent]Sonars[]. -status.meld-strata-a1-primed.name = Primed -status.meld-strata-a1-primed.description = Increased mobility, damage, reload. Heavly increased health. This unit's ready to go off! +status.meld2-strata-a1-primed.name = Primed +status.meld2-strata-a1-primed.description = Increased mobility, damage, reload. Heavly increased health. This unit's ready to go off! -status.meld-strata-b0-anchored.name = Anchored -status.meld-strata-b0-anchored.description = Heavly increased drag and health. Heavly decreased speed. Applied by [accent]Movement Anchors[] +status.meld2-strata-b0-anchored.name = Anchored +status.meld2-strata-b0-anchored.description = Heavly increased drag and health. Heavly decreased speed. Applied by [accent]Movement Anchors[] -status.meld-strata-b1-rebound.name = Rebound -status.meld-strata-b1-rebound.description = Heavly increased speed, slightly increased reload speed. Decreased drag. Applied by [accent]Movement Anchors[] +status.meld2-strata-b1-rebound.name = Rebound +status.meld2-strata-b1-rebound.description = Heavly increased speed, slightly increased reload speed. Decreased drag. Applied by [accent]Movement Anchors[] -status.meld-wildlife-a0-amplified.name = Amplified -status.meld-wildlife-a0-amplified.description = Amplifies mobility, durability and reload. Applied by [#ea9ad6]Meld Amplifiers[]. +status.meld2-wildlife-a0-amplified.name = Amplified +status.meld2-wildlife-a0-amplified.description = Amplifies mobility, durability and reload. Applied by [#ea9ad6]Meld Amplifiers[]. -status.meld-wildlife-a1-reconstitution.name = Reconstitution -status.meld-wildlife-a1-reconstitution.description = Increases durability and drag. Slightly decreases speed. Light regeneration. Applied by [#ea9ad6]Meld Beacons[]. Certain constructs spawn with this.\nOnly affects biological targets. +status.meld2-wildlife-a1-reconstitution.name = Reconstitution +status.meld2-wildlife-a1-reconstitution.description = Increases durability and drag. Slightly decreases speed. Light regeneration. Applied by [#ea9ad6]Meld Beacons[]. Certain constructs spawn with this.\nOnly affects biological targets. -status.meld-wildlife-b0-sentry.name = Sentry -status.meld-wildlife-b0-sentry.description = Heavily reduced mobility, but double fireate. Does constant DoT.\nCertain constructs apply this upon shooting. +status.meld2-wildlife-b0-sentry.name = Sentry +status.meld2-wildlife-b0-sentry.description = Heavily reduced mobility, but double fireate. Does constant DoT.\nCertain constructs apply this upon shooting. -status.meld-wildlife-c0-surge.name = Surge -status.meld-wildlife-c0-surge.description = Massive boost in reload speed, but heavly decreased damage.\nCertain constructs can intiate a surge with a long cooldown. +status.meld2-wildlife-c0-surge.name = Surge +status.meld2-wildlife-c0-surge.description = Massive boost in reload speed, but heavly decreased damage.\nCertain constructs can intiate a surge with a long cooldown. -status.meld-lacerated.name = Lacerated -status.meld-lacerated.description = Heavly reduced mobility and fireate. Increases durability slightly and encourages light regeneration.\n\nApplied by [#4bb66b]Resonarum[] related sources. No effect on armored meld or inorganic targets. -status.meld-lacerated.details = Applied recreationally by constructs which don't guard the nests. Maybe they have a different name for it? +status.meld2-lacerated.name = Lacerated +status.meld2-lacerated.description = Heavly reduced mobility and fireate. Increases durability slightly and encourages light regeneration.\n\nApplied by [#4bb66b]Resonarum[] related sources. No effect on armored meld or inorganic targets. +status.meld2-lacerated.details = Applied recreationally by constructs which don't guard the nests. Maybe they have a different name for it? -status.meld-shattered.name = Shattered -status.meld-shattered.description = Doubles damage taken and reload speed. Increases damage and mobility.\n\nApplied by [#e89964]Dissonitre[] related sources. No effect on unarmored meld. -status.meld-shattered.details = Applied frequently by certain constructs on the battlefield. Maybe they have a different name for it? +status.meld2-shattered.name = Shattered +status.meld2-shattered.description = Doubles damage taken and reload speed. Increases damage and mobility.\n\nApplied by [#e89964]Dissonitre[] related sources. No effect on unarmored meld. +status.meld2-shattered.details = Applied frequently by certain constructs on the battlefield. Maybe they have a different name for it? -status.meld-storm-a0-disabled.name = Shellshocked -status.meld-storm-a0-disabled.description = Heavly reduced mobility and fireate. Applied by most sources of [#e45940]EMP[]. +status.meld2-storm-a0-disabled.name = Shellshocked +status.meld2-storm-a0-disabled.description = Heavly reduced mobility and fireate. Applied by most sources of [#e45940]EMP[]. -status.meld-storm-a1-enabled.name = Storm Surge -status.meld-storm-a1-enabled.description = Increased mobility, damage and reload. Applied by most sources of [#e45940]EMP[]. +status.meld2-storm-a1-enabled.name = Storm Surge +status.meld2-storm-a1-enabled.description = Increased mobility, damage and reload. Applied by most sources of [#e45940]EMP[]. //Sectors -planet.meld-ikaru.name = Ikaru -planet.meld-ikaru.description = A wartorn planet with scraps of usable unrefined resources. Inhabited by the [#ea9ad6]Meld[].\n\nHeavy fog lingers everywhere. -planet.meld-ikaru.details = The [#ea9ad6]Meld[] was always here. There was no beginning or end to life on Ikaru. from the planet's inception to its destruction, there will be always [#ea9ad6]Meld[]. +planet.meld2-ikaru.name = Ikaru +planet.meld2-ikaru.description = A wartorn planet with scraps of usable unrefined resources. Inhabited by the [#ea9ad6]Meld[].\n\nHeavy fog lingers everywhere. +planet.meld2-ikaru.details = The [#ea9ad6]Meld[] was always here. There was no beginning or end to life on Ikaru. from the planet's inception to its destruction, there will be always [#ea9ad6]Meld[]. //Texts resurgence.text.dormant1 = This is a [accent]Dormant Core[].\n\nZoom out or pan over to the Trench core, hold [accent][CTRL][] and [accent]left click[] to respawn. diff --git a/assets/maps/badlands-testmap-1.msav b/assets/maps/badlands-testmap-1.msav index beb6c632c513be399165e2946cf83f511b810508..ab326a4913e9bc97e560048ea76bc8691dbec4ab 100644 GIT binary patch literal 26810 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 literal 26809 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 diff --git a/assets/maps/badlands-testmap-2.msav b/assets/maps/badlands-testmap-2.msav index 54bd561e65a9606f82b33c532cac37502076e3c8..f52baa453ef89c475a008f11144d1374c79cacda 100644 GIT binary patch literal 26868 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 HtVur~5)YvG diff --git a/assets/maps/gameplay-testmap-1.msav b/assets/maps/gameplay-testmap-1.msav index a18e71329debf90aae1598f3e12b0a7d7c587126..81d791e948b51528a820197920d33a8be2922260 100644 GIT binary patch literal 16702 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 B_jmvR literal 15447 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 { MeldRegions.load(); + + /* + Vars.content.each(c -> { + if(!(c instanceof UnlockableContent content) || content.minfo.mod == null) return; + String modified = content.name; + String[] bits = modified.split("meld2"); + + if(bits.length > 1){ + String oldName = "meld" + bits[1]; + Log.info(oldName); + Log.info(modified); + + SaveFileReader.fallback.put(oldName, modified); + } + }); + + */ + }); Events.on(EventType.FileTreeInitEvent.class, e -> { diff --git a/src/meld/SettingKeys.java b/src/meld/SettingKeys.java index ef7d109..7e91737 100644 --- a/src/meld/SettingKeys.java +++ b/src/meld/SettingKeys.java @@ -4,5 +4,9 @@ public class SettingKeys { public static String lighting = "meld.lighting", invertAmbient = "meld.invert-ambient", connectedSonar = "meld.connected-sonar", - unitLightScale = "meld.unit-light-scale"; + unitLightScale = "meld.unit-light-scale", + + //Expirimental- doesn't sync in multiplayer and off by default + bulbheadOmnimove = "meld.bulbhead-omnimove", + portSaves = "meld.port-saves"; } diff --git a/src/meld/content/MeldBlocks.java b/src/meld/content/MeldBlocks.java index dd7cf2a..79d60b1 100644 --- a/src/meld/content/MeldBlocks.java +++ b/src/meld/content/MeldBlocks.java @@ -1215,7 +1215,7 @@ public void update(Bullet b){ consume(new ConsumeLiquid(MeldLiquids.thunderingAether, 0){{ optional = true; }}); - outputLiquid = new LiquidStack(MeldLiquids.thunderingAether, 2/6f); + outputLiquid = new LiquidStack(MeldLiquids.thunderingAether, 4/6f); }}; elementalBlaster = new BeamDrill("elemental-blaster"){{ @@ -1226,7 +1226,7 @@ public void update(Bullet b){ health = 420; placeableLiquid = true; - drillTime = 90; + drillTime = 180; tier = 2; buildTime = 90; @@ -1357,16 +1357,19 @@ Category.production, with( consume(new StupidConsumeAspects(outletRate * 4, AspectGroup.aspect)); consume(new ConsumeItemList(){{ - optional = booster = true; - setMultipliers( - MeldItems.quartzStrata, 1.5f, - MeldItems.iampsi, 3f - ); - }} + optional = booster = true; + setMultipliers( + MeldItems.quartzStrata, 1.5f, + MeldItems.iampsi, 3f + ); + }} ); - consume( - new ConsumeItemsBoost(with(MeldItems.gunpowder, 10), 2){{ + consume(new ConsumeItemList(){{ optional = booster = true; + setMultipliers( + MeldItems.gunpowder, 3f, + MeldItems.aspectBomb, 2f + ); }} ); consume( @@ -1537,6 +1540,25 @@ Category.production, with( producers.addAll( new ProduceItem(new ItemStack(MeldItems.aspectPipe, 2)) ); + }}, + + new TimedRecipe(){{ + consumers.addAll( + new ConsumeItems(with(MeldItems.glassMallows, 4, MeldItems.silver, 2)), + new StupidConsumeAspects(outletRate * 4, AspectGroup.aspect) + ); + producers.addAll( + new ProduceItem(new ItemStack(MeldItems.aspectBomb, 2)) + ); + }}, + new TimedRecipe(){{ + consumers.addAll( + new ConsumeItems(with(MeldItems.glassMallows, 4, MeldItems.annealedSilver, 2)), + new StupidConsumeAspects(outletRate * 4, AspectGroup.aspect) + ); + producers.addAll( + new ProduceItem(new ItemStack(MeldItems.aspectBomb, 2)) + ); }} ); }}; diff --git a/src/meld/content/MeldStatusEffects.java b/src/meld/content/MeldStatusEffects.java index 16185f0..1433c11 100644 --- a/src/meld/content/MeldStatusEffects.java +++ b/src/meld/content/MeldStatusEffects.java @@ -12,7 +12,7 @@ public class MeldStatusEffects { public static StatusEffect lacerated, impaled; //Player effects - public static StatusEffect rally, anchored, aspectBurn; + public static StatusEffect rally, anchored, aspectBurn, omnimoveCompensate; //Meld effects public static StatusEffect amplified, sentry, spurting, newborn, rush; @@ -252,6 +252,11 @@ public void update(Unit unit, StatusEntry entry) { buildSpeedMultiplier = 0.5f; }}; + //For bulbhead when omni movement is turned on + omnimoveCompensate = new StatusEffect("omnimove-compensate"){{ + dragMultiplier = 0.5f; + }}; + //Swamp effects refreshed = new StatusEffect("refreshed"){{ diff --git a/src/meld/content/MeldUnits.java b/src/meld/content/MeldUnits.java index 5a05139..c4bc2fa 100644 --- a/src/meld/content/MeldUnits.java +++ b/src/meld/content/MeldUnits.java @@ -93,6 +93,15 @@ public static int classID(Class type){ return idMap.get(type, -1); } + public static void bulbheadOmnimove(boolean omniMovement){ + bulbhead.omniMovement = omniMovement; + + //TODO: stat tweaks? + if(omniMovement){ + return; + } + } + //player units public static UnitType bulbhead, shark, @@ -250,7 +259,7 @@ public static void load(){ constructor = TimedKillUnit::create; }}; - bulbhead = new UnitType("bulbhead"){{ + bulbhead = new BulbheadUnitType("bulbhead"){{ float IR = 120; outlineColor = Color.clear; diff --git a/src/meld/entities/unit/BulbheadEntity.java b/src/meld/entities/unit/BulbheadEntity.java index cf6540f..fee01c2 100644 --- a/src/meld/entities/unit/BulbheadEntity.java +++ b/src/meld/entities/unit/BulbheadEntity.java @@ -18,6 +18,7 @@ import meld.content.MeldUnits; import meld.graphics.Draww; import meld.graphics.MeldRegions; +import meld.ui.MeldSettings; import meld.world.blocks.CoreRaft; import mindustry.Vars; import mindustry.content.Blocks; @@ -41,6 +42,8 @@ //Bandaid fix for multiplayer units dying randomly because I legit have no idea how to fix it otherwise public class BulbheadEntity extends UnitWaterMove { + public boolean omniMove; + @Nullable public CoreRaft.CoreRaftBuild nearbyRaft; @@ -49,6 +52,8 @@ public class BulbheadEntity extends UnitWaterMove { //Goes up to 1 and once it's at one, well... stuck... public float beached = 0; + //How beached you can get while boosting + public float boostingBeachedCap = 0.5f; public float standstillDrag = 1; public boolean controllerMoved = false; @@ -85,15 +90,23 @@ public void apply(StatusEffect effect, float duration) { @Override public void update() { + //TODO: Sync in multiplayer??? + omniMove = type.omniMovement; + getNearbyLink(); + unapply(MeldStatusEffects.omnimoveCompensate); + if(omniMove){ + apply(MeldStatusEffects.omnimoveCompensate, 1); + } + Tile tile = this.tileOn(); if(tile != null && !tile.floor().isLiquid){ if(Mathf.chance(vel.len()/speed())) Fx.unitLandSmall.at(x, y, type.hitSize/Vars.tilesize, tile.floor().mapColor); - beached = Mathf.approachDelta(beached, 1, 1/60f); + beached = Mathf.approachDelta(beached, hasEffect(MeldStatusEffects.boosting) ? boostingBeachedCap : 1, 1/60f); if(beached == 1){ float exitAngle = angleTo(lastSafe); @@ -129,7 +142,7 @@ public void update() { drag *= Mathf.lerp(1, 5, beached * beached); } - if(!controllerMoved) standstillDrag = Mathf.approachDelta(standstillDrag, 10, 1); + if(!controllerMoved && !omniMove) standstillDrag = Mathf.approachDelta(standstillDrag, 10, 1); else standstillDrag = 1; drag *= standstillDrag; diff --git a/src/meld/entities/unit/type/BulbheadUnitType.java b/src/meld/entities/unit/type/BulbheadUnitType.java new file mode 100644 index 0000000..e09d9df --- /dev/null +++ b/src/meld/entities/unit/type/BulbheadUnitType.java @@ -0,0 +1,23 @@ +package meld.entities.unit.type; + +import arc.util.Log; +import meld.content.MeldUnits; +import meld.ui.MeldSettings; +import mindustry.graphics.Pal; + +public class BulbheadUnitType extends MeldUnitType{ + + public BulbheadUnitType(String name) { + super(name); + healColor = Pal.accent; + } + + @Override + public void init() { + super.init(); + + Log.info("UNIT"); + Log.info(MeldSettings.bulbheadOmnimove); + MeldUnits.bulbheadOmnimove(MeldSettings.bulbheadOmnimove); + } +} diff --git a/src/meld/entities/unit/type/MeldUnitType.java b/src/meld/entities/unit/type/MeldUnitType.java index 54f21ce..d091683 100644 --- a/src/meld/entities/unit/type/MeldUnitType.java +++ b/src/meld/entities/unit/type/MeldUnitType.java @@ -12,6 +12,8 @@ import mindustry.type.UnitType; public class MeldUnitType extends UnitType { + + public MeldUnitType(String name) { super(name); outlineColor = Color.clear; diff --git a/src/meld/ui/MeldSettings.java b/src/meld/ui/MeldSettings.java index 4bd2e9d..3b92a15 100644 --- a/src/meld/ui/MeldSettings.java +++ b/src/meld/ui/MeldSettings.java @@ -1,12 +1,18 @@ package meld.ui; import arc.Core; +import arc.util.Log; import meld.Meld; import meld.SettingKeys; +import meld.content.MeldUnits; import mindustry.Vars; +import mindustry.content.Blocks; public class MeldSettings { - public static boolean replaceLighting, invertAmbient, connectedSonar; + public static boolean replaceLighting, invertAmbient, connectedSonar, + + //The expirimental settings + bulbheadOmnimove, portSaves; public static float lightScale = 1; public static void loadSettings(){ @@ -16,6 +22,10 @@ public static void loadSettings(){ connectedSonar = Core.settings.getBool(SettingKeys.connectedSonar, true); lightScale = Core.settings.getFloat(SettingKeys.unitLightScale, 1); + bulbheadOmnimove = Core.settings.getBool(SettingKeys.bulbheadOmnimove, false); + + portSaves = Core.settings.getBool(SettingKeys.portSaves, false); + Vars.ui.settings.addCategory(Core.bundle.get("settings.meld-title"), Meld.prefix("icon"), t -> { t.checkPref(Core.bundle.get(SettingKeys.lighting), true, b -> { replaceLighting = b; @@ -40,6 +50,13 @@ public static void loadSettings(){ return f + "%"; }); }); + Vars.ui.settings.addCategory(Core.bundle.get("settings.meld-expirimental"), Meld.prefix("icon"), t -> { + t.checkPref(Core.bundle.get(SettingKeys.bulbheadOmnimove), false, MeldUnits::bulbheadOmnimove); + + t.checkPref(Core.bundle.get(SettingKeys.portSaves), false, b -> { + portSaves = b; + }); + }); /* photosensitiveMode = Core.settings.getBool("settings.frostscape-flashing-lights-safety", false); From 87123969c12be2063cef09b30f030634b78d915d Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Tue, 28 Apr 2026 14:06:29 +1000 Subject: [PATCH 13/16] Aspect Bombing, updates to all maps -Visibility setting added to help render overlays above light/fow -Make settings actually save properly -Added ASPECT BOMBEEEEEES -Bulbhead can build from the last point it beached from now -New props for all basic resources -Mod icon (again) --- assets/bundles/bundle.properties | 77 ++++++++---- assets/bundles/bundle.shitpost | 32 ++--- assets/icon.png | Bin 0 -> 3223 bytes assets/maps/badlands-testmap-1.msav | Bin 26810 -> 26881 bytes assets/maps/badlands-testmap-2.msav | Bin 26868 -> 27008 bytes assets/maps/gameplay-testmap-1.msav | Bin 16702 -> 16945 bytes assets/maps/gameplay-testmap-2.msav | Bin 31022 -> 33402 bytes assets/maps/info.msav | Bin 7137 -> 13428 bytes .../fluid/conduit/aspect-bomb-bottom-0.png | Bin 0 -> 1532 bytes .../fluid/conduit/aspect-bomb-bottom-1.png | Bin 0 -> 2112 bytes .../fluid/conduit/aspect-bomb-bottom-2.png | Bin 0 -> 1959 bytes .../fluid/conduit/aspect-bomb-bottom-3.png | Bin 0 -> 2022 bytes .../fluid/conduit/aspect-bomb-bottom-4.png | Bin 0 -> 1808 bytes .../fluid/conduit/aspect-bomb-top-0.png | Bin 0 -> 371 bytes .../fluid/conduit/aspect-bomb-top-1.png | Bin 0 -> 488 bytes .../fluid/conduit/aspect-bomb-top-2.png | Bin 0 -> 459 bytes .../fluid/conduit/aspect-bomb-top-3.png | Bin 0 -> 362 bytes .../fluid/conduit/aspect-bomb-top-4.png | Bin 0 -> 450 bytes .../blocks/fluid/conduit/aspect-bomb-ui.png | Bin 0 -> 1312 bytes assets/sprites/blocks/light/lamp-psi-top.png | Bin 0 -> 439 bytes assets/sprites/blocks/light/lamp-psi.png | Bin 0 -> 521 bytes .../props/earthen-resonarum-cluster1.png | Bin 0 -> 488 bytes .../props/earthen-resonarum-cluster2.png | Bin 0 -> 471 bytes .../blocks/props/mixed-carbonic-boulder1.png | Bin 0 -> 928 bytes .../blocks/props/mixed-carbonic-boulder2.png | Bin 0 -> 957 bytes .../blocks/props/mixed-carbonic-boulder3.png | Bin 0 -> 1049 bytes .../blocks/props/pillow-glint-cluster1.png | Bin 0 -> 421 bytes .../blocks/props/pillow-glint-cluster2.png | Bin 0 -> 449 bytes src/meld/Meld.java | 28 ++--- src/meld/SettingKeys.java | 17 ++- src/meld/content/MeldBlocks.java | 79 ++++++++---- src/meld/content/MeldEnvironment.java | 61 +++++++-- src/meld/content/MeldLiquids.java | 5 +- src/meld/content/MeldUnits.java | 24 +++- src/meld/entities/unit/BulbheadEntity.java | 16 ++- .../unit/abilities/BeachedAbility.java | 2 +- src/meld/graphics/AboveOverlayRenderer.java | 44 +++++++ src/meld/graphics/ParticleFloor.java | 44 +++++++ src/meld/ui/MeldSettings.java | 68 ++++++---- src/meld/world/blocks/fluid/AspectBomb.java | 116 ++++++++++++++++++ src/meld/world/blocks/fluid/AspectPipe.java | 7 ++ .../world/blocks/turrets/MeldItemTurret.java | 38 ++++++ .../world/blocks/units/LaunchStation.java | 6 + 43 files changed, 538 insertions(+), 126 deletions(-) create mode 100644 assets/icon.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-0.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-1.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-2.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-3.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-4.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-top-0.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-top-1.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-top-2.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-top-3.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-top-4.png create mode 100644 assets/sprites/blocks/fluid/conduit/aspect-bomb-ui.png create mode 100644 assets/sprites/blocks/light/lamp-psi-top.png create mode 100644 assets/sprites/blocks/light/lamp-psi.png create mode 100644 assets/sprites/blocks/props/earthen-resonarum-cluster1.png create mode 100644 assets/sprites/blocks/props/earthen-resonarum-cluster2.png create mode 100644 assets/sprites/blocks/props/mixed-carbonic-boulder1.png create mode 100644 assets/sprites/blocks/props/mixed-carbonic-boulder2.png create mode 100644 assets/sprites/blocks/props/mixed-carbonic-boulder3.png create mode 100644 assets/sprites/blocks/props/pillow-glint-cluster1.png create mode 100644 assets/sprites/blocks/props/pillow-glint-cluster2.png create mode 100644 src/meld/graphics/AboveOverlayRenderer.java create mode 100644 src/meld/graphics/ParticleFloor.java create mode 100644 src/meld/world/blocks/fluid/AspectBomb.java create mode 100644 src/meld/world/blocks/turrets/MeldItemTurret.java diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index 148ba23..fd8e37b 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -1,8 +1,10 @@ block.meld2-sunder.name = Sunder block.meld2-sunder.description = Fires clumps of Debris flak at enemy targets.\n[accent]Sticks shrapnel in targets![] +block.meld2-sunder.details = Animated by a ball of [meld2-aether]Aether[]; I'd joke about not scaring the lil goober but it doesn't have any feelings. block.meld2-shredstorm.name = Shredstorm block.meld2-shredstorm.description = Sprays debris shrapnel or silver buckshot at enemy targets.\n[accent]Spread is focused towards the aim direction. +block.meld2-shredstorm.details = Sunder's cousin. block.meld2-flurry.name = Flurry block.meld2-flurry.description = Charges and flings canisters of sticky Carbolith dust which spark on a delay.\n[accent]High damage vs force projectors[]\n\n[red]Warning: Putting hard matterials with sludge in will clog the machinery![]\n\n[accent]Armored![] @@ -18,7 +20,7 @@ block.meld2-downpour.description = Barages ground targets with 30 [#89828c]Mercu block.meld2-vivalo.name = Vivalo block.meld2-vivalo.description = Atomizes and fires a jet of crystalline particles which pierce armor. [accent]\n\nQuick rotation speed and increased coolant effectiveness.\n\nEffects vary based on ammo type, ranging from Laceration to Shattering[] -block.meld2-vivalo.details = This design was cut down to be as light as possible to be quickly cosntructed and deployed. Crystals would be crushed in the base, stored in the drum for quick feeding and then be accellerated. The drum was placed on the opposite side of the accelerator to shift the center of mass towards the middle, enabling quick turning. The design's fragility was easly compensated for with walls from its front, but sustained fire would quickly destroy it. +block.meld2-vivalo.details = This design was cut down to be as light as possible to be quickly constructed and deployed. Crystals would be crushed in the base, stored in the drum for quick feeding and then be accelerated. The drum was placed on the opposite side of the accelerator to shift the center of mass towards the middle, enabling quick turning. The design's fragility was easily compensated for with walls from its front, but sustained fire would quickly destroy it. block.meld2-vinca.name = Vinca block.meld2-vinca.description = Sprays down targets with high pressured armor piercing crystalline particulate suspended in [#cbdbfc]Aspect[].\n[accent]Sticks shrapnel in targets![] @@ -40,7 +42,7 @@ block.meld2-rotary-kiln.name = Rotary Kiln block.meld2-rotary-kiln.description = Burns mass amounts of [#cbdbfc]Aspect[] as fuel, heats materials to process them in bulk.\n\n[accent]Carbolith + Tenbris -> Shadesteel + [#5b4739]Fumes[]\nSilver -> Annealed Silver\n\nClay-Mallows + Quartz Strata + Likestone Sediments -> Glassy-Mallows\n\nClay-Mallows + Likestone Sediments + Debris -> Crucible-Plating\nDebris + Shadesteel -> Crucible Platings block.meld2-pneumatic-extruder.name = Pneumatic Extruder -block.meld2-pneumatic-extruder.description = Extrudes material into pipes, uses [#cbdbfc]Aspect[] to run. [accent]\n\nDebris + Elnar -> Aspect Pipe\n\nSilver/Annealed Silver + Debris -> Aspect Pipe +block.meld2-pneumatic-extruder.description = Extrudes material into pipes and capsules, uses [#cbdbfc]Aspect[] to run. [accent]\n\nDebris + Elnar -> Aspect Pipe\n\nSilver/Annealed Silver + Debris -> Aspect Pipe\n\nGlassy-Mallows + Silver/Annealed Silver + Storming Aspect -> [red]Aspect Bombs[] block.meld2-storm-iris.name = Storm Iris block.meld2-storm-iris.description = Converts stable [meld2-aether]Aether[] into charged [meld2-thundering-aether]Thundering Aether[] @@ -110,6 +112,10 @@ block.meld2-gauze.description = Weaves a [accent]Resonarum[] thread using [#5b47 block.meld2-bruisekit.name = Bruisekit block.meld2-bruisekit.description = Regenerates target block's health.\n\nPrioritises large, functional blocks and works at half speed on 1x1s.\n\nHeals up to 4x more health based on how low target health% is, down to 50%. +block.meld2-lamp-psi.name = Lamp Psi +block.meld2-lamp-psi.description = WHAT DO YOU MEAN IT'S CALLED A LAMP PSI, WASN'T "I AM PSI" CONFUSING ENOUGH\n\n[gray]yeah, duh, it's a cruel joke\n\ngod, the engineering team is so st-\n\ngal, don't get yourself exported to colony's reach\n\nI hate this fucking job[]\n\nA wall made from Iampsi... "becomes radiant" when given As-\n[gray]ok fuck this im not doing it anymore, get me out of *wheezing*\n\n\n[red][] +block.meld2-lamp-psi.details = God is dead. + block.meld2-mercurial-diffuser.name = Mercurial Diffuser block.meld2-mercurial-diffuser.description = Puffs clouds which intoxicate [#ea9ad6]Meld[] units. Applies a coating of [#89828c]Mercury[] to allied units. @@ -168,6 +174,10 @@ block.meld2-aspect-outlet.description = Decompresses [#cb8650]Aether[] into high block.meld2-aspect-channel.name = Aspect Channel block.meld2-aspect-channel.description = Acts as a directional router.\n\nWhen transporting [#cb8650]Aether[], fills nearby buildings with highly volatile [#cbdbfc]Aspect[].\n\nWorks as an insulated input/output terminal for a fluid network.\n\n[accent]Plated![] +block.meld2-aspect-bomb.name = Aspect Bomb +block.meld2-aspect-bomb.description = Have you ever tried using a channel director on a node full of aspect? Like Yeah, that's a standardised building now.\n\n[gray]Who thought shoving a bunch of explosive capsules in a pipe would be so effective... +block.meld2-aspect-bomb.details = Apparently like the annealed silver and glass for like the channels comes from the bombs themselves, isn't that crazy? + block.meld2-pressure-vent.name = Pressure Vent block.meld2-pressure-vent.description = Acts as a fluid router. Releases stored vapor into the atmosphere. @@ -343,7 +353,7 @@ block.meld2-core-bunker.description = Core of the base. Allows units to pass thr block.meld2-core-bunker.details = A great logistics hub. Equipped with single-use launch thrusters. block.meld2-buffer.name = Buffer -block.meld2-buffer.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Does not connect to the core.\n\n[accent]Lightly Armored![] +block.meld2-buffer.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents.\n\n[accent]Connects to the core![]\n\n[accent]Lightly Armored![] block.meld2-interface.name = Interface block.meld2-interface.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Can connect to the core!\n\nGround units can walk over this. @@ -389,24 +399,24 @@ block.meld2-swamp-plant-thorn-crawler.description = Fires off 2 bursts of needle //Meld blocks -block.meld2-meld2-node.name = Meld Node -block.meld2-meld2-node.description = Keeps the surounding swampland frozen. Spawnpoint for [#ea9ad6]Meld[] creatures during waves. +block.meld2-meld-node.name = Meld Node +block.meld2-meld-node.description = Keeps the surounding swampland frozen. Spawnpoint for [#ea9ad6]Meld[] creatures during waves. -block.meld2-meld2-surpressor.name = Meld Surpressor -block.meld2-meld2-surpressor.description = Keeps the surounding swampland frozen. Constructed on top of core zones. Spawnpoint for [#ea9ad6]Meld[] creatures during waves.\n\n[red]Armored[] +block.meld2-meld-surpressor.name = Meld Surpressor +block.meld2-meld-surpressor.description = Keeps the surounding swampland frozen. Constructed on top of core zones. Spawnpoint for [#ea9ad6]Meld[] creatures during waves.\n\n[red]Armored[] -block.meld2-meld2-synapse.name = Meld Synapse -block.meld2-meld2-synapse.description = Stabalizes surounding crystal barriers. Once no synapses remain, the entire wall crumbles. +block.meld2-meld-synapse.name = Meld Synapse +block.meld2-meld-synapse.description = Stabalizes surounding crystal barriers. Once no synapses remain, the entire wall crumbles. -block.meld2-meld2-capsule.name = Meld Capsule -block.meld2-meld2-capsule.description = Projects a barrier against physical attacks. Requires gasseous [#ea9ad6]Meld[] to run. +block.meld2-meld-capsule.name = Meld Capsule +block.meld2-meld-capsule.description = Projects a barrier against physical attacks. Requires gasseous [#ea9ad6]Meld[] to run. -block.meld2-meld2-amplifier.name = Meld Amplifier -block.meld2-meld2-amplifier.description = Pulses [#ea9ad6]Amplification[] to all allies in range. +block.meld2-meld-amplifier.name = Meld Amplifier +block.meld2-meld-amplifier.description = Pulses [#ea9ad6]Amplification[] to all allies in range. -block.meld2-meld2-beacon.name = Meld Beacon -block.meld2-meld2-beacon.description = Fumigates areas with [#ea9ad6]Meld[] making nearby constructs very durable, while constantly chipping away at enemy targets within the cloud. -block.meld2-meld2-beacon.details = Often seen near debris fields still being processed. +block.meld2-meld-beacon.name = Meld Beacon +block.meld2-meld-beacon.description = Fumigates areas with [#ea9ad6]Meld[] making nearby constructs very durable, while constantly chipping away at enemy targets within the cloud. +block.meld2-meld-beacon.details = Often seen near debris fields still being processed. block.meld2-pipeline.name = Pipeline block.meld2-pipeline.description = Meld construct which acts as a pipe. @@ -757,6 +767,14 @@ item.meld2-stony-particulate.name = Stony Particulate item.meld2-stony-particulate.description = Grains of carbon stone. item.meld2-stony-particulate.details = Glued together by the [#ea9ad6]Meld[] using some unknown process. +item.meld2-aspect-bomb.name = Aspect Bomb +item.meld2-aspect-bomb.description = Intricate glasswork and silver capsule containing volatile [meld2-storming-aspect]Storming Aspect[].\n\nA primary high explosive usable both as an extremely potent ammo, and for use in industrial mining applications. +item.meld2-aspect-bomb.details = Legends of the blue wolf roaming these lands once took an entire crystalline fortification down... with just aspect and pipes. + +item.meld2-gunpowder.name = Gunpowder +item.meld2-gunpowder.description = A self oxidising, rapidly decomposing powder who's deflagration produces supersonic shockwaves.\n\nHighly useful in mining explosives, can be manufactured into many standardised ammo types. +item.meld2-gunpowder.details = Doesn't beat aspect bombing. + item.meld2-bramble-vine.name = Bramble Vine item.meld2-bramble-vine.description = Thick biological strands coursing with [#89828c]Mercury[].\nContains trace amounts of [#89413e]Ooze[] @@ -950,6 +968,10 @@ unit.meld2-jilla.name = Jilla unit.meld2-jilla.description = [#ea9ad6]First form worm/crystal bug[]\nStabalized crystal enables spurting flame indefinitely with no reprecussion. unit.meld2-jilla.details = Oddly enough, Jilla are not observed to form legs in their maturity, resembling a worm more than a crystal bug. Jilla were thought to be patient zero for new crystal bug forms, though exploring deeper into the caves lead to the discovery of something else... +unit.meld2-billa.name = Billa +unit.meld2-billa.description = [#ea9ad6]Seccond form worm/crystal bug[]\nConstruct sprints fowards upon being awoken, carying a bifrucated head to spurts flame in three directions.\n\n[red]Heavly Armored![] +unit.meld2-billa.details = Billas are an anomaly among cavern crystal bugs, their anatomy resembling that of a coffer.\n\nWhilst Jilla have a stabalised crystal, Billa do not. + unit.meld2-scorcher.name = Scorcher unit.meld2-scorcher.description = [#ea9ad6]Small swarmling crystal bug[]\nConstruct observed to take constant damage while spurting its flame. unit.meld2-scorcher.details = Scorchers are likely the original crystal bug. Jillas are quick and often aggresive, while Scorchers are observed around their home, too fragile to venture outwards. @@ -963,14 +985,14 @@ unit.meld2-killa-armored.details = Constantly weighed down by their shell, Killa unit.meld2-killa.name = Killa unit.meld2-killa.description = [#ea9ad6]Second form boosting crystal bug[]\nThrusters enable quick movement and resistance to being swept back by wind. -unit.meld2-killa.details = Theese lil goobers have developed somewhat of a tolerance for Resonarum through being high off it their entire lives, and they're ready to use that insatiable addiction to bypass your defenses. +unit.meld2-killa.details = Theese lil goobers have developed somewhat of a tolerance for Resonarum through being high off it their entire lives, and they're ready to use that insatiable addiction to bypass your defenses.\n\nHey, didn't I tell you to be profe-\n\nprofeshishishut up, can't I have a bit of fu-\n\nNO.\n\nJesus... double standards much. unit.meld2-craig.name = Craig unit.meld2-craig.description = [#ea9ad6]First form scrap heap[]\nLow durability and an unstable weapon, but often comes in swarms. unit.meld2-craig.details = Composed of materials frequently found in [#e6c700]Ichor[]. unit.meld2-afraig.name = Afraig -unit.meld2-afraig.description = [#ea9ad6]First form bezerking scrap heap[]\nWhen splurging flame, the construct launches itself towards the direction of shooting. Beware [#ea9ad6]Amplified[] Afraigs.\n\n[red]Armored[] +unit.meld2-afraig.description = [#ea9ad6]First form nuisance scrap heap[]\nWhen splurging flame, the construct is pushed back causing minimal damage to the target.\n\n[red]Armored[] unit.meld2-braig.name = Braig unit.meld2-braig.description = [#ea9ad6]Second form artillery scrap heap[]\nThe construct stays at range to shoot, while being armed with a Craig's blaster.\n\nActs as a small seige engine, able to take cover in [#ea9ad6]Meld Capsules & Beacons[]. @@ -979,7 +1001,7 @@ unit.meld2-poisag.name = Poisag unit.meld2-poisag.description = [#ea9ad6]Second form shielding scrap heap[]\nObserved launching miniturized [#ea9ad6]Meld Capsules[], deploying on hit/near to units.\n\nDangerous when combined with constructs that can effectively use the protection, or when ammo is limited.\n\n[red]Lightly armored[] unit.meld2-pointago.name = Pointago -unit.meld2-pointago.description = [#ea9ad6]Second form incubating scrap heap[]\nConstruct stays at range after shooting, but will often run fowards afterwards.\n\nObserved to cary an incubator that can form crystals, which the heap consumes for a burst of energy. +unit.meld2-pointago.description = [#ea9ad6]Second form berserker scrap heap[]\nConstruct stays at range after shooting, but will often run fowards afterwards.\n\nConstruct is easily agitated when threatened, and has been observed to kamikaze into a defense after being damaged. unit.meld2-graig.name = Graig unit.meld2-graig.description = [#ea9ad6]Megalith nest scrap heap?[]\nObserved to birth Craigs en-masse. Armored with multiple of Braig's and Craig's weapons, the construct can defend itself well.\n\nTheorised to be a fragment off of a larger scrap heap.\n\n[red]Heavly armored[] @@ -1006,7 +1028,7 @@ unit.meld2-allegro.name = Allegro unit.meld2-allegro.description = [#ea9ad6]Guardian phalanx nest construct[]\nConstruct comes with a localised storm projector organ which bursts a cloud of vaporous meld periodically.\n\nReconstitutes all constructs in range and dissolves nearby enemy units with its spewers, recoiling backwards to stick in front of a defensive perimeter.\n\n[red]FOCUS FIRE AND DESTROY ON SIGHT.\nDO NOT GET ENGAGE IN CLOSE COMBAT.\nYOU HAVE BEEN WARNED[] unit.meld2-impovrished.name = Impovrished -unit.meld2-impovrished.description = [#ea9ad6]Guardian battery nest construct[]\nConstruct is an amalgamation of common combat scrap heaps.\n\nOften hides behind other artillery units while using its cannons/snipers to provide fire support.\n\Scatters miniturized [#ea9ad6]Meld Capsules[] from its tip.\n\n[red]Construct is a dangerous source of attrophy, engage in flanking manuvours and DESTROY on identification.[]\n\n[red]Plated!\n\n[orange]Biomechanical![] +unit.meld2-impovrished.description = [#ea9ad6]Guardian battery nest construct[]\nConstruct is an amalgamation of common combat scrap heaps.\n\nOften hides behind other artillery units while using its cannons/snipers to provide fire support.\n\Scatters miniaturised [#ea9ad6]Meld Capsules[] from its tip.\n\n[red]Construct is a dangerous source of attrophy, engage in flanking manuvours and DESTROY on identification.[]\n\n[red]Plated!\n\n[orange]Biomechanical![] unit.meld2-impovrished.details = A mock of a mock-\nan effegy of fraud, yet with real bite. unit.meld2-tracker.name = Tracker @@ -1020,7 +1042,7 @@ unit.meld2-fletch.description = [#ea9ad6]First form hovercraft mimic[]\nThis con unit.meld2-fletch.details = Our test with "thrusters" is sucsessful. Blobslingers mounetd on a metal hull prove effective against invader's constructs, and Mercury will not prove problematic with steering handled asynchronously by crystals. unit.meld2-kathid.name = Kathid -unit.meld2-kathid.description = [#ea9ad6]First form nestling crystal bug[]\nTheories about how [#ea9ad6]Meld[] forms colonies have circulated around since its discovery.\n\nOne theory is armored constructs like Kathids use their piercing flame to penetrate stone, like they do to metal. That woudn't account for the giant rock formations spotted around.\n\n[red]Armored[] +unit.meld2-kathid.description = [#ea9ad6]First form nestling crystal bug[]\nTheories about how [#ea9ad6]Meld[] forms colonies have circulated around since its discovery.\n\nOne theory is armored constructs like Kathids use their piercing flame to penetrate stone, like they do to metal. That wouldn't account for the giant rock formations spotted around.\n\n[red]Armored[] unit.meld2-katika.name = Katika unit.meld2-katika.description = [#ea9ad6]First form hydra crystal bug[]\nConstruct appears to be a malformed Kathid without a hardened shell with multiple heads, though there is little evidence to go off of.\n\nMaybe an error in creation propagated by its usefulness?\n\nDespite the appearence, the blob controlling the construct acts as one whole entity. @@ -1307,6 +1329,19 @@ database-tag.aspect-vita = Vita database-tag.heavy-industry = Heavy Industry +settings.meld-title = Meld Settings +settings.meld-experimental = Experimental Settings + +setting.meld-lighting = Coloured Lighting!\n(Restart game to take effect) +setting.meld-invert-ambient = Invert ambient colour\n(Will impact game experience in meld sectors!) +setting.meld-connected-sonar = Connected Sonar\n(Breaks with Arikoth, and potentially other mods) +setting.meld-unit-light-scale = Unit light radius multiplier +setting.meld-highvis-overlay = High-vis block overlay\n(Turret ranges and etc... over Fow/Lighting) +setting.meld-bulbhead-omnimove = Bulbhead Omnimovement\n(Move like a non-naval) +setting.meld-port-saves = Port Saves\n[red]HIGHLY EXPERIMENTAL\nallows you to load a meld hjson map in meld java[] + + + unit.ticks = ticks bar.spool = Spool diff --git a/assets/bundles/bundle.shitpost b/assets/bundles/bundle.shitpost index d945a68..02f6743 100644 --- a/assets/bundles/bundle.shitpost +++ b/assets/bundles/bundle.shitpost @@ -1,25 +1,27 @@ -item.meld-glass-mallow.name = Pan-fried Plates +item.meld2-glass-mallow.name = Pan-fried Plates -item.meld-crucible-plating.name = Boiled Plates +item.meld2-crucible-plating.name = Boiled Plates -item.meld-dissonitre.name = Crystal Crack +item.meld2-dissonitre.name = Crystal Crack -item.meld-gunpowder.name = Crack on crack (going through rehab) +item.meld2-gunpowder.name = Crack on crack (going through rehab) -block.meld-sonar-spire.name = Slay the Sonar Spire +block.meld2-sonar-spire.name = Slay the Sonar Spire -block.meld-manual-valve.name = Gabe Nuel's Wife -block.meld-pressure-vent.name = Amogus Escape route +block.meld2-manual-valve.name = Gabe Nuel's Wife +block.meld2-pressure-vent.name = Amogus Escape route -block.meld-crystal-cracker.name = Tasty Wafer -block.meld-crystal-cracker.description = ...you know you wana\n\njust a lil nibble +block.meld2-crystal-cracker.name = Tasty Wafer +block.meld2-crystal-cracker.description = ...you know you wana\n\njust a lil nibble -block.meld-overflow-chute.name = Smart Router -block.meld-overflow-chute.description = Smart Router +block.meld2-overflow-chute.name = Smart Router +block.meld2-overflow-chute.description = Smart Router -liquid.meld-aspect.name = Outdated Ass Destroyer -liquid.meld-storming-aspect.name = Bombspect -liquid.meld-bound-aspect.name = Leanspect +liquid.meld2-aspect.name = Outdated Ass Destroyer +liquid.meld2-storming-aspect.name = Bombspect +liquid.meld2-bound-aspect.name = Leanspect unit.meld-bulbhead.name = Bulbster -unit.meld-bulbhead.description = Meldieps the allied blocks as it Meldarras.io the enemies \ No newline at end of file +unit.meld-bulbhead.description = Meldieps the allied blocks as it Meldarras.io the enemies + +liquid.meld2-meld = Meld 2: Electric meldaloo \ No newline at end of file diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c414abd963e6bd2986ea4ac61854c1643e68ceda GIT binary patch literal 3223 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 JPDHLkV1oX_5@G-V literal 0 HcmV?d00001 diff --git a/assets/maps/badlands-testmap-1.msav b/assets/maps/badlands-testmap-1.msav index ab326a4913e9bc97e560048ea76bc8691dbec4ab..4dffd53072d88d1672cc1e4cdba86ac2e4b093cc 100644 GIT binary patch literal 26881 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 diff --git a/assets/maps/badlands-testmap-2.msav b/assets/maps/badlands-testmap-2.msav index f52baa453ef89c475a008f11144d1374c79cacda..fb7fad92f6b33ba182fc79e3eb624d49c45b3fdb 100644 GIT binary patch literal 27008 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 S;txL5|H57b_5TAkYzSR+dn4EY literal 26868 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

D4GErVkH<{#@OaTY8%7X{z$p6^m@; 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 ZIkvl@F7gcnct$_{{`(8ZG#EeR{{V}0d!+yX diff --git a/assets/maps/gameplay-testmap-2.msav b/assets/maps/gameplay-testmap-2.msav index 36d3b324a4ea1559a8f8c569b85649e169d0228c..600c9f8696338bb366f56bb182ca3c27e17c893a 100644 GIT binary patch literal 33402 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 AH2?qr literal 31022 zcmZ^~1#BEj5G814W~SJVam>uj%*2w z8w|Q*N>PkIgh zLCW<;M61tU@#|8B*hAg0aYs+Tr`xiH+i;UpqP^Gq4t%@QJJ{FL)@Q%;#V^SDAZFq1 zek;T~rhF<4Y)d}PQhKm!eb^AIbD}-FV_pL`Hf|gBv^MwX_v-ZqpZzUdn_ZB0_;=pi z{<&**^0f|-+-E}~*sRQ{rQrkEYlif4R8|P4+}GN6a$4~|Q2z5| zlJi{M{Vi

}o8_6+77L3_P~kJwok$XDuO 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 z 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 M$$zoxKB=Vs4*?;{=>Px# diff --git a/assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-0.png b/assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-0.png new file mode 100644 index 0000000000000000000000000000000000000000..4373257fa16512fd582167e456607ef2c07a1319 GIT binary patch literal 1532 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-3.png b/assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-3.png new file mode 100644 index 0000000000000000000000000000000000000000..a7c3ceb5e248d82000ac4a6547ad5756fb0c13e3 GIT binary patch literal 2022 zcmVPx+ph-kQR9J<@m&=bGM-|3@b*id+9vMF}cb*={G7ce1hAVp*YN`zPtA|3*v2wNhFjWJH_dBii0!+7T2?yfq;qU!d&Ccu`~ z9L;o3tLpSQ-}%0;jEE#-1Q9{RVy(qFkM|W-HA7v^P*pWE_3Svxl;Z~iKL3gm|u*Z5F=J2v4n{M zF+wyZzpIL-5~?H;3C(L6pzLD+V+_U!#v~jDjG0a$k@|%qs*$JxjR6gTXag}=#0Y^7 zV+<)JVvJ~vs4Cxj`aWVxbRp7ok?;KCYT4YB&2xwmBv-)n1t6tTfmBKxi7^sl;MvD& zLg)xF(1nf=ON5S~fuMnJeypa8O4~)+F4A;?uYY1auW$0#=FJU83}Qt3j3zmxd&(JO z;0x#HX+z|>O;6XgxzAlY>1)^W)ek$GE--2XtLsZFuMHSB`TqGQ*D$0>`9(?vjN}LJ z>qY7l`N}hASR9Bz(KQX{xXza!xBccT>q{JsIu3^|CkH1Pwt->W z@tN~W81mPP$)I=ET2e|qKyng>rygBnVXo%bd`(m(#K`jU{k*$>2Qh}Ai3epH0|bRO z1X6;HjTMHYmZpmg+m7L=e){qoXp9&U3?RlpN{F=%XB}2-{-?<;`R!kKNYxL0MfJFe+6TwjHCUhm#yu2v{?XHHY%CL^(zJnL({VUzxjSt6@hjI6NmFge)w9+j z&Uu{kxhK};hhlmD=?^elIc96eT}=h_JKKk|7HfrPKfaEL z&6|qFIfru|XDgg{zOP=4pqiQO;Jrfz$LE=yshFufbG2u8XO9_g5ivLsrmxC5G$nSo z_gGmQ5LKyyrRpp<-#tJ?G8Y=tGZI~~qh%p(s!k-AXmG=v_EA37e`e0YQT z8PEJo#a!*Uc^XXz10Em=~Kc-E}TU*5mafq$lCf62S*K;uioU$0|TyI9%Zv*a{pp1Oc+C#X|p(; zaW&dbIkk3-Q5$epSXo_UcV~|%f`}nR<&&o@0A0+RYD$EttgH<<8nrZC;Qql0-g|48 z7(+jXxnvnVt}FhmpMX-Ph2!%Kn+|6MCz)=SR|jm}yoD7*P`#&@Z3w6))=n+cw4pa7 zZHSyWxq#|HW?0PFcac&;LK(raXvCP?@WQKq&pO@&j+%~PiIvqw+Ab0_l|E0Y;rbF? zh<$_@iBWm+_gjpy7B%+fHN+OPytJPFs~CwOMXE(CVr_3GrltFRVx$x=8PQnU8)FYz zGc874*Ycm_7|p+pD#=Jc?_=KhUvi8||7J7utc>MY6Bsq9DH!OD=r})PK;Uy1PO~sK z!?F3Ag}J&{#CLZ0dHs#832_xQJiW0@&_oC^8b&J(o$0fl$hn zTaerE)FZ1|*O}NgF@~M(JzSXtD}pssYPh|}jCWZ-D&LFPH$MBp9;_)9Clv!RbXXDl z?UWg)&&n9XjlDyzy>rNwt-Cz&;1Y9n#qIq&)ILk?{{8`1bd5XdILq#kjrIF+)^PXW zkj2I0*wSM#Z13!Ib}+-~#hSlu9~8dHj@x)&rSYacIErU;&f{H$_Z44!ayk2g%JJf* zi1XP)7-OKY+}A!@l`l+eoL-^n0&iZq!BJ_&PkwhjSG!DFQbkfv!;?}^PA!vUetzkY z%2|GPvBUcc?YjM``;$NELWE|dkoGsxzP8?1g-~U5{w?gGDmABO1@x$M2jR7!q-pKmk%6YUO z$Zr+ibJeJT(NB~J7niPl*8#*nj|UTef4fRA&+R9(bPz$zS`qMk4rs0mJ;-y zKqfZaO7?d$71s4+qCiT5=oCNXGf-Y@YMREpFrK!50h(|2Suw9?mH+?%07*qoM6N<$ Ef>Kk|lmGw# literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-4.png b/assets/sprites/blocks/fluid/conduit/aspect-bomb-bottom-4.png new file mode 100644 index 0000000000000000000000000000000000000000..dfedbdf8df572056c1370389c0e3a9ad8cbcbfeb GIT binary patch literal 1808 zcmV+r2k-caP)Px*%1J~)R9J<*m)nmN#}&qZ=Tueq%wAyGy8#Ok69`ryb`<9#YJ3;`U+>=g*RvoqaYmpoKY@6NJ|tURPgrD{!gSAF%J@7zR0673}- zs47M+#yZNPq%3=sC^`GpuGF-B4h#1M!v5Mm(2*v_e2ERP5=FOoxWe7cm^8t)~5AnmpSl1ND=8Axe7S`h6? zV+_O)x&CI6PaZrWgbXHTT4Rhv62JbQWCkY~07O6pIWVipVH2bd^H>;Jr5u z-g|;?XncbY9^abh`o%yKBG)dMj%Jblp(2PXs)~r_`|$yltlI9uRcNl}y(uD}%~);g?l7-L&uL5hhGJl;1nO-bk;@V?c^oZgAJfZak%5SbBw{bSA5NxX4}q8rCSKv)vdo z(JL&^pT3}QSS9z z;R>vC80)aca*0QTn7Df7b@nRHU{o_0HQc`YHEXO8Q|Lr!jL9r8j(n345E1_Qa08=) zQQ_0i9-|`M`gepx=X!GBcV90c0-xM|+|SXY;QiJ=M2^uRN&)JAMwfVJkB}3U#|1c+vkZf;bWv~0*fp2?Ce#1 z`QRG{Rn4CtrF}0zFvg(fm}DdZwGYgmm|<^JQ&_{&@;n>s+c*<3s`wDO(%%BW2dEm~ z0a#gGWOr0Esy%b_CwTVN1|ftAH>Axq$HW1l?3WBi4P{YdjRAqh<$2bhY+;Pjgvde5 zRZT9@PM=v~uWA@o4Z~5*uxgk+IgR&EbIAs%C`l8V;_)JU|1b9#j4F1AHM_%#!LVj; z)Udd+K-~mVCeHSARl!^$(PJsrTl4UKxnSC%^I2bDeqC*S0aLU4+!O*fgp<`DSZh;cb=V zL*&Z2naoP?_z5l4$1@=9$wkK-2%DSFnCTTblL7q8oJZAgwt0XxN{Es5wQXij&LATE z;r2FlT~Rl6*VN?RA?>#eM~P513(MJ7d}WW{ytT~iRKaY&KP*q|~#NheW zg^EFIf}3}CsHzclJ)&-MSr$VerueGXOuBNltLNJi`qmdi3Tt@(^MJLvcXVwQw5=z6 zaL?e3a_fE=%W|T1i*26~V-CqF9*P5P)AG{hss=U62cOruo;S7)r507&GNvfP&AX|~ zjuThgYor5nOz9{M$V4-dn~1h!Ha2hCo>{EOqKcqhs_qKLv|r-y7r6PsO8{h? y;}80~nr_qF(TqDAIn;h>HmV$EARTd^=l=r7=NZu0z#?}50000Px$ElET{R9J=WS1lI8Fbr;ZoPvi(Vep(`dROQ)9AfD03e%hck3r#iXbhI3y0?`z zY0~c15Vb8o-`8YqQh2>TMk%Fk_ot#{yIGMo+*pgCh%-ud0-z6#u`gv=pvL>%8bX3z zt`CFhyYAdS2WKD@oNGHGFk~hTNcp%JqY@0IJymQ_Onf+iDN~Wa;sa$gm)ONcZ^Ne6 zs;RZue~Brn5*TCptTnY(05EBfW!IYl4mkFWiX|$64~WtwBj8K5goOAfOhqDU7o;GO zy&FampjJp_D2hM|a4~^Y;9>$800$f;KsBc+Ajwf2-3@Ics*Wwo&mPZcGYSzduq*io zlH4QNPYLX3UY14gAQ?)PXFPX@($OyP-3zEWpX1|V1fK&O5*%CjUruuq_ySeTqHSE0 RGwA>T002ovPDHLkV1n6*lP~}P literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/fluid/conduit/aspect-bomb-top-1.png b/assets/sprites/blocks/fluid/conduit/aspect-bomb-top-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffc33b41444b54eb797ececf0b5f50bbafca4e1 GIT binary patch literal 488 zcmVP)Px$qDe$SR9JHU6;OzV`LBikn~O7iNH=AmqsbU|%21030Gk9XxGbS|0oQ0QhPkRT0|E zodBkgr8bAH1_0n=_YMHKzqv{p1>P0asvu_yV98$!>GT=_^yxz&)KOhQS^(1A1;LHG zLX4-`)_%u87id|5k=KZD+01gwRkbQP8%BuV+}|M*$KW=#z0uRKttHtFcm}t zK<3{!15!Y=A~4hh31cFzA%nr z4xu}Ph)70)o9lOcoz#lJY`$<3a~N)DGMCRm09_z#<{=Q?3yDiIyuQ=Q5nrte>I@(^ z3z;3J51kdj1rus+N~OH=d)rWM)W;kE^87L$KyTRB+yoJn0xf=fa*59t-(I6>HVNK% e2nDBLDE$L@EcRG0(`1GK0000Px$g-Jv~R9JueT+d#3;%D zH$pB$MFMJ&dje9^UyFPsKr;6ffrK0Y0A0IeyA|naC^?FCY)^nIf`h(@R!^JcKCA$6 ztn(CGlN1p0|EDKSwmBgUi7TKsIVWP|2SViBD~CeL`ZC*)B9E;TDLDjOcf*l$0VU)i zpnDmG$Tec`1E~Oez@7km%S~m=U)J~LJL@i}i9b)vPx$BuPX;R9J=Ompu}~AP|Lj9XlHj;3@1qgLSSzYCS}($rVz2274PTd&k`&Tei-4*;;V8)%67RI)~F8*3r;lM8|xAAOB-Ne7pF4#-M?tVDGG z-Wo9Fn*ya&n>ASpK*YiJRCb*i2r;L=`NoQx0+*5R9~*!x)iDs!i;xQ@WgZPc8HAXV0KVchWE680Cs#vVh{|If)K4GJWHB0}P-9#3Ur2JB z`yhG%Ls#>hm(tEIaJ>sI*9Y5m&CcxTbAS`V)cjAgzkeNn0bs(XE?(mdJOBUy07*qo IM6N<$f|QGp_5c6? literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/fluid/conduit/aspect-bomb-top-4.png b/assets/sprites/blocks/fluid/conduit/aspect-bomb-top-4.png new file mode 100644 index 0000000000000000000000000000000000000000..790e010cb37d023030a804d78def88142b0f3708 GIT binary patch literal 450 zcmV;z0X_bSP)Px$d`Uz>R9J<@SF2V7F%Z4kQ-?uw@F)zPZ$S4G*wr9VRftya@(I!X20W&!zNZ?4 zB^Z*E$K<)ga@B5aC?Cql}- z^Dq4U@;wKD%ZqMyHu#yK(fI>ZB&dVRK|bvU5kx@4j)Y$yIG}6Hikg&i4_Rnv-1Y!~ z;dyEj5(uylNv;wqrA+k3Z4V&?xjwc9unSRb8MetCgM}ireRBwF%5aQ4H%FoAE{J*A zA|gn`QgDfA7QiK9mH-aS5|HyS7ok}KILHG5r6re(+!0Vy?^6Ud51zr%JK5 zP2Prn(~v^zWt0?v1+QaL0C!hZ)sQURk~#eVMLwrJFF9W(4O8T~hejzm0Ib&!p@0(4 sYedwn{r9I?Aiz$!#b3vNk?%SD0B`f^QJbamNdN!<07*qoM6N<$g79C%o&W#< literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/fluid/conduit/aspect-bomb-ui.png b/assets/sprites/blocks/fluid/conduit/aspect-bomb-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..9e940fd74f960edd791eefc3ca94b421bbfec777 GIT binary patch literal 1312 zcmV+*1>gFKP)Px(+DSw~R9J=WmtTk#bri=x^ZPS1_pa-oU0ZL8yWr|Z4;fm5lz$+4*)j?OQ%aP@ zhtggoGI5I*$|zqX$PyAUtTcNmD(oSGFnqDn6pGXp)^xkBtF7+ty)*Nh-%JmCS9hJ= z>mLwbI`D%T&i8lDch33EIp^o}4JIkT@xQvckvwqU^c!Ms)t0y^i+51&Iss?htJ~Az zmz67@t_pr*%_0u{*-eUr;SD$Y>0v&COsqr<-7R*9P ziIfT{<*4=4f?3q~nvS-`H*0n@fsxEc%C-%y%qY~6_cVFmWyO*f7B)^sNsW@4g^g2K zxuk`>?~?a4GYWNV+t7N$ujl#{jFck>wvzWrTunoo zLi4N!Oq?)rN-d?pFi;BVFNO4%LrOu!yw;6lN8r;PuaBvi*Se9sr^yX3SCMlyO*5zA zDv1&fQV66FDB<8LNz=?}nk(T-DJH!V%lgq3SM#su9d`TXNI5kjC` z*CR>nZ5!IYbsYffH-30a`?PkELZV#lVeQxi(o>&NoAa2Ecd7ARd{^UY$v@{VaQu(6 z?Em%TC?Y#IEhjRTATkUF5d)=&{&I*j`}vG*SGfqO5K6l!tup|7VoxQP>grj@`U(0>YQ{-HQJ+UW)RoX>sjnGP?RhB^i<-wtYtf$g zhoy^_RVC5(&KL9)FQTNN>rC$$1mw^e5JDnEmZ5{giOyo>Uw1fitP971Q=++2dKHf? zeWogjE&C2~qO*vDlhHXsA{=q|yP-%DOOhlRMM_Fba{-$q*d%4%+$Pc#W+$CkYq2)w z$Dh8cYP@~LVp^IDq-3jonpl!FL0N0DNt^*RHBKeA2@QpMYV#hw=P&W#+(wiT%oiyy zeehjX=essPM?;~Wlbzi(HBQawt+hCggRnNn##sW9Ntj$WksyjGhlXi|dO{Nun)rs! zKWSeL?#L=2Q8`b!}L<&c?=tRK_zl);84OHS=hut#|K;><6Zj7p W)h!1&kX)<)0000Px$aY;l$R9J=Wm(6j5Fc5`5Wpa;7po6%BxCA;$D=8r*xC6U`;0{~@uHfae%*bK^ zVSaMS&M+Jd?DzJqB`y5NA4gc@Ba+^L2(%%D`)&Z1xB?D#Z-C1jh}VV5k3ekz5x4+1 z;JO(=rn)wWXg?o-qa=V^NhM}k;Ha*WR*H0!L0_iMyfbam8C@z6$)3xHo zd9Zt+T^RsRoCk1ARqA;col*B}tfjSlRksdQK<@ND_W0AAa!A0GsYCI052X zy5?L^O@K7O7jT+8JIn%+^e*XB(vKeFEa@YE=jpk?3sZKrV|iuej&`~Ks8uY;!#Pt9 hPEDHtI52~A<1f@^!e?m}FAD$w002ovPDHLkV1jJ+w&nl; literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/light/lamp-psi.png b/assets/sprites/blocks/light/lamp-psi.png new file mode 100644 index 0000000000000000000000000000000000000000..8371ba0e6041f9e0113ac2b90a58bd283028c33c GIT binary patch literal 521 zcmV+k0`~ohP)Px$!%0LzR9J<@mpyC3Kp4j#Lq32|a8PU!y18WR-m%cmU2G{14&qR7aB=8IC>LlxhD7eoVns30?EDP`Q87XyGtsg=h42_Xu_%F0RUu4 zd|Cj6pny=@kpa@}P6$AeEl9XnLbzB8I)E*+`zWoP7l6*z6${GtrFpxr72%d6YzvHRQW8+dtrBLzlzd;vctpczd*__3-yJPr5M#yCxsz$z!u zO_bn(Nz_q~2YqQd?#W1P6k4%X#oTgb@I> zUTxU*pAdy9z$L;5<)6H zPzi%mAxb&GkN%i^@WA5Z!B#S$>19^OAc3V&ZHtN#KQ;vs$knWW=t*t^?)00000 LNkvXXu0mjf>F(vX literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/earthen-resonarum-cluster1.png b/assets/sprites/blocks/props/earthen-resonarum-cluster1.png new file mode 100644 index 0000000000000000000000000000000000000000..86107d8d40334727d8dcefe53d5fe7379e46dbca GIT binary patch literal 488 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sjKx9jP7LeL$-D$|6a#!hT!FN* zjFhLNd3u}=uZD<}lZws$)D5@y0>uRrW&AtiI|X}{E^>! zQoHWy?ly7dLlR3blt+9#)&G(6{a){nr&m5YKCQfAGx2@t!~^~8YH_`jzKhRm-OVWVTjA&O$5R;?&dgA%+EqHS;@qj}PC;4= zV}CmH*(^^u*OgSbbe`s;TOAWmEWZ#kBRp~L#Fz)ZH?FI()Y@^KZ9Q4cy|3Xw|K${C z)fs+M=Dl0KwekEyLoG?^^fni`DEKRA>CuTf?N#%E^%MyWo6czP|LwSZhm3@uSZFBIe5UeoOgZ b^M~O|uMl74`qj6A5y0T->gTe~DWM4fffChC literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/earthen-resonarum-cluster2.png b/assets/sprites/blocks/props/earthen-resonarum-cluster2.png new file mode 100644 index 0000000000000000000000000000000000000000..bf04e4d65d629dd00409588fc9ed03e366043a5d GIT binary patch literal 471 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/mixed-carbonic-boulder3.png b/assets/sprites/blocks/props/mixed-carbonic-boulder3.png new file mode 100644 index 0000000000000000000000000000000000000000..4a2eda1925c086b68360566eafdcb8565fe2b1f1 GIT binary patch literal 1049 zcmV+!1m^pRP)Px&(@8`@RA_%*)mK0B5L5RH065}^VmkBI7ikzyc@>u}_`Hd90r zkV>bdwnn`Xm4h)j*VGDl@#aeh4L7Ttxez4WFxiskS|S7YF#?iMAxni`8W3s3`x1WR$cMW(RXu&T;Li}Kp1&+GunSU zcNqWx%FC)^PKwC=h2;2|9CY+1iMwg4OQbi&hBaMTK_ zOcY6gJJ`#b7=51h*|^W->@olVtiGH!zDGF|i)jwC2L~}=0RTRFUjzSD#Yy4bbN_sD zcG+n3!NdX_VO@Yx;_ZWWpnBsr04RA|XwxX1W(E;dggE+ivO-W1RDg>7)5q7fi#ekh zsBJg>a}>k5j1AD8`Yl$y9Hbc7-EW1e<}6_fy5vZ52P0Az;w+*AUFe~J(d;7t%i2SP zRXtGKZU)GMAf_8&1*qJJLsSuTQ79Hml@Ieq&xpOf?vv4o2rGI5*PMzlB@ZeAwpIWl zB5bll&@@`Bt^_P$LmqS%h$Dh4<~b`kt^G6tS`P-ilMAE@TSa^Gw2xx?%x}Og7&^OW2M+bjt!1COgn)_?PhqqfW9$ ToAYSd00000NkvXXu0mjfS76^! literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/pillow-glint-cluster1.png b/assets/sprites/blocks/props/pillow-glint-cluster1.png new file mode 100644 index 0000000000000000000000000000000000000000..7fd7bc82166068a9c1872c8128207b91942db68a GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sjKx9jP7LeL$-D$|9R0bc~VKVEcRcxR@U@S$CXy*e`Zf|@6 ziG2p6$s*=CvQzW-HATwqS^eBFHkj!cORR|Uv?k4Glgb$0h-C9Cd5Qd$n6-i7aOo$f z@1702H*j}ca97km%kbIa^}hMaE56?K+Pgx}fIXDqyk^@1?gv*_7ABiT&uFTYoo{le zdE)$rnFqI8oy|`C^ltk?2VRB$XLSN(JGLKcmSX%Bzm#?E4EG|&tG*9D-xOKBas%tE z3mdKI;Vst0Os|wH~;_u literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/props/pillow-glint-cluster2.png b/assets/sprites/blocks/props/pillow-glint-cluster2.png new file mode 100644 index 0000000000000000000000000000000000000000..a59d6640a3af56c0c88667664611aac730c507a1 GIT binary patch literal 449 zcmV;y0Y3hTP)Px#9#BkFMF0Q*xr9~Py`=Ev+p&C3%B6SP#j}!}u*1&e@b&(;sl&nm000VfQchC< z|NsC0|NsC0|9*)SRsaA2J4r-AR7i=n(_5~?APfXhK5Ve}zu_vu;AcpytLvYr%AAnE zw6(uY*ZC@s_>(|%;9W%UCIBMn=A)|o5hMZ?h&%%L0RTW)gPE_3U9|wPc8c%0^GYf( z*I@Pl4*&pJ^Bw0~VFIXtb-E-)_%p5mOELmH0mLmlKm&;A3$Vl$cVKN)i$I2G3r(Zn zqzVu->C;m+%q`Lh{}6X>=21k{w|Hn@>Z*W;y6z)*08(5P1?UE>UTt7{H;Z-$iD*7S zo0x#v*Xy>dnE(W^-sL{|uD!~@p4$TO3W%KG6M&u8k8t@Q#ux^S(NUI|JxpK>E3O~2 z@UA2Y43m!l<4GGKc?0GShH8vOh5=PRiaGZ-3yAqj*sX??&jS2p5CtUB;y4lWDIJBx rPH`u8?wD`YYn<|}$iK|@$^V=WQF { MeldRegions.load(); - /* - Vars.content.each(c -> { - if(!(c instanceof UnlockableContent content) || content.minfo.mod == null) return; - String modified = content.name; - String[] bits = modified.split("meld2"); - - if(bits.length > 1){ - String oldName = "meld" + bits[1]; - Log.info(oldName); - Log.info(modified); - - SaveFileReader.fallback.put(oldName, modified); - } - }); - - */ + }); + Events.run(EventType.Trigger.draw, () -> { + if(!MeldSettings.overlayOverFog) return; + Draw.draw(Layer.fogOfWar + 2, AboveOverlayRenderer::draw); }); Events.on(EventType.FileTreeInitEvent.class, e -> { diff --git a/src/meld/SettingKeys.java b/src/meld/SettingKeys.java index 7e91737..69eff57 100644 --- a/src/meld/SettingKeys.java +++ b/src/meld/SettingKeys.java @@ -1,12 +1,17 @@ package meld; public class SettingKeys { - public static String lighting = "meld.lighting", - invertAmbient = "meld.invert-ambient", - connectedSonar = "meld.connected-sonar", - unitLightScale = "meld.unit-light-scale", + public static String pref(String in){ + return "setting.meld-" + in; + } + + public static String lighting = pref("lighting"), + invertAmbient = pref("invert-ambient"), + connectedSonar = pref("connected-sonar"), + unitLightScale = pref("unit-light-scale"), + overlayOverFog = pref("highvis-overlay"), //Expirimental- doesn't sync in multiplayer and off by default - bulbheadOmnimove = "meld.bulbhead-omnimove", - portSaves = "meld.port-saves"; + bulbheadOmnimove = pref("bulbhead-omnimove"), + portSaves = pref("port-saves"); } diff --git a/src/meld/content/MeldBlocks.java b/src/meld/content/MeldBlocks.java index 79d60b1..91fe2e4 100644 --- a/src/meld/content/MeldBlocks.java +++ b/src/meld/content/MeldBlocks.java @@ -2,6 +2,9 @@ import arc.graphics.Blending; import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; +import arc.graphics.g2d.Lines; import arc.math.Angles; import arc.math.Interp; import arc.math.Mathf; @@ -14,6 +17,7 @@ import meld.graphics.*; import meld.world.blocks.*; import meld.world.blocks.consumers.ConsumeItemsBoost; +import meld.world.blocks.turrets.MeldItemTurret; import meld.world.blocks.consumers.ConsumePowerRecipe; import meld.world.blocks.consumers.StupidConsumeAspects; import meld.world.blocks.crafting.ModularCrafter; @@ -37,7 +41,9 @@ import mindustry.Vars; import mindustry.content.Fx; import mindustry.content.StatusEffects; +import mindustry.entities.Effect; import mindustry.entities.bullet.*; +import mindustry.entities.effect.MultiEffect; import mindustry.entities.effect.ParticleEffect; import mindustry.entities.part.DrawPart; import mindustry.entities.part.HaloPart; @@ -49,6 +55,7 @@ import mindustry.gen.Bullet; import mindustry.gen.Sounds; import mindustry.gen.Statusc; +import mindustry.graphics.Drawf; import mindustry.graphics.Layer; import mindustry.graphics.Pal; import mindustry.type.*; @@ -57,13 +64,13 @@ import mindustry.world.blocks.defense.ForceProjector; import mindustry.world.blocks.defense.RegenProjector; import mindustry.world.blocks.defense.Wall; -import mindustry.world.blocks.defense.turrets.ItemTurret; import mindustry.world.blocks.defense.turrets.LiquidTurret; import mindustry.world.blocks.distribution.*; import mindustry.world.blocks.liquid.Conduit; import mindustry.world.blocks.liquid.LiquidJunction; import mindustry.world.blocks.liquid.LiquidRouter; import mindustry.world.blocks.power.Battery; +import mindustry.world.blocks.power.LightBlock; import mindustry.world.blocks.power.PowerNode; import mindustry.world.blocks.power.ThermalGenerator; import mindustry.world.blocks.production.*; @@ -90,7 +97,8 @@ public class MeldBlocks { //Gauze chainheals smallest, lowest hp blocks, low target prio blocks first. //Suture shoots healing needles in a cone at the closest damaged block. Impales enemies, causing them to take constant chip damage and be sedated. - bruisekit, gauze, suture; + bruisekit, gauze, suture, + lampPsi; //Core Blocks public static Block coreRaft, buffer; @@ -113,7 +121,7 @@ public class MeldBlocks { //power blocks public static Block conductivePile, substation, aspectDischarger; - public static Block channelNode, channelHub, channelFace, aspectOutlet, aspectChannel, channelDirector, channelVent, manualValve, intakeValve, valveController, pipebox; + public static Block channelNode, channelHub, channelFace, aspectOutlet, aspectChannel, aspectBomb, channelDirector, channelVent, manualValve, intakeValve, valveController, pipebox; public static Block sunder, shredstorm, molotov, vivisection, vinca, vivalo; @@ -251,6 +259,24 @@ public static void load(){ junctionReplacement = channelFace; }}; + aspectBomb = new AspectBomb("aspect-bomb"){{ + requirements(Category.liquid, with( + MeldItems.aspectBomb, 50 + )); + underBullets = false; + leaks = false; + health = (int)(channelHealth * 2.5f); + armor = 2; + insulated = true; + + placeableLiquid = true; + + liquidCapacity = 20; + size = 1; + botColor = Color.white; + junctionReplacement = channelFace; + }}; + channelHub = new LiquidRouter("channel-hub"){{ requirements(Category.liquid, with(MeldItems.debris, 80, MeldItems.shadesteel, 120)); size = 4; @@ -341,7 +367,7 @@ public static void load(){ placeableLiquid = true; }}; - sunder = new ItemTurret("sunder"){{ + sunder = new MeldItemTurret("sunder"){{ requirements(Category.turret, with( MeldItems.debris, 45, MeldItems.carbolith, 60 @@ -405,7 +431,7 @@ public static void load(){ ); }}; - shredstorm = new ItemTurret("shredstorm"){{ + shredstorm = new MeldItemTurret("shredstorm"){{ requirements(Category.turret, with( MeldItems.debris, 35, MeldItems.silver, 50 @@ -493,7 +519,7 @@ public static void load(){ ); }}; - molotov = new ItemTurret("molotov"){{ + molotov = new MeldItemTurret("molotov"){{ requirements(Category.turret, with( MeldItems.carbolith, 40, MeldItems.silver, 70 @@ -668,7 +694,7 @@ public static void load(){ ); }}; - vinca = new ItemTurret("vinca"){{ + vinca = new MeldItemTurret("vinca"){{ requirements(Category.turret, with(MeldItems.debris, 25, MeldItems.silver, 25, MeldItems.quartzStrata, 30)); size = 2; health = 850; @@ -701,7 +727,7 @@ public static void load(){ //TODO: Finish vivalo's... everything /* - vivalo = new ItemTurret("vivalo"){{ + vivalo = new MeldItemTurret("vivalo"){{ requirements(Category.turret, with(MeldItems.debris, 20, MeldItems.electrumSheet, 45, MeldItems.vitricMesh, 12)); size = 3; health = 520; @@ -748,7 +774,7 @@ public static void load(){ }}; */ - vivisection = new ItemTurret("vivisection"){{ + vivisection = new MeldItemTurret("vivisection"){{ requirements(Category.turret, with(MeldItems.debris, 200, MeldItems.silver, 320, MeldItems.resonarum, 60)); size = 4; health = 2640; @@ -1103,6 +1129,7 @@ public void update(Bullet b){ }}, new DrawLiquidTile(MeldLiquids.aspect), new DrawLiquidTile(MeldLiquids.boundAspect), + new DrawLiquidTile(MeldLiquids.stormingAspect), new DrawDefault() ); @@ -1159,7 +1186,7 @@ public void update(Bullet b){ health = 800; armor = 15; - itemCapacity = 150; + itemCapacity = 100; }}; aspectIncinerator = new StorageIncinerator("aspect-incinerator"){{ @@ -1226,7 +1253,7 @@ public void update(Bullet b){ health = 420; placeableLiquid = true; - drillTime = 180; + drillTime = 90; tier = 2; buildTime = 90; @@ -1508,8 +1535,8 @@ Category.production, with( itemCapacity = 10; inputLiquids.addAll(MeldLiquids.aspect, MeldLiquids.boundAspect, MeldLiquids.stormingAspect); - inputItems.addAll(MeldItems.shadesteel, MeldItems.elnarDust, MeldItems.debris, MeldItems.silver, MeldItems.annealedSilver); - outputItems.addAll(MeldItems.aspectPipe); + inputItems.addAll(MeldItems.shadesteel, MeldItems.elnarDust, MeldItems.debris, MeldItems.silver, MeldItems.annealedSilver, MeldItems.glassMallows); + outputItems.addAll(MeldItems.aspectPipe, MeldItems.aspectBomb); inputLiquidSlots = 1; @@ -1542,22 +1569,22 @@ Category.production, with( ); }}, - new TimedRecipe(){{ + new TimedRecipe(30){{ consumers.addAll( new ConsumeItems(with(MeldItems.glassMallows, 4, MeldItems.silver, 2)), - new StupidConsumeAspects(outletRate * 4, AspectGroup.aspect) + new ConsumeLiquid(MeldLiquids.stormingAspect, outletRate * 4) ); producers.addAll( - new ProduceItem(new ItemStack(MeldItems.aspectBomb, 2)) + new ProduceItem(new ItemStack(MeldItems.aspectBomb, 10)) ); }}, - new TimedRecipe(){{ + new TimedRecipe(15){{ consumers.addAll( new ConsumeItems(with(MeldItems.glassMallows, 4, MeldItems.annealedSilver, 2)), - new StupidConsumeAspects(outletRate * 4, AspectGroup.aspect) + new ConsumeLiquid(MeldLiquids.stormingAspect, outletRate * 4) ); producers.addAll( - new ProduceItem(new ItemStack(MeldItems.aspectBomb, 2)) + new ProduceItem(new ItemStack(MeldItems.aspectBomb, 10)) ); }} ); @@ -1877,6 +1904,14 @@ Category.production, with( consumeItem(MeldItems.resonarum, 2); }}; + lampPsi = new LightBlock("lamp-psi"){{ + requirements(Category.effect, with(MeldItems.iampsi, 30)); + configurable = false; + radius = 32; + + consume(new StupidConsumeAspects(outletRate/5, AspectGroup.aspect)); + }}; + chute = new Duct("chute"){{ requirements(Category.distribution, with(MeldItems.debris, 1)); health = 90; @@ -1895,7 +1930,6 @@ Category.production, with( health = 90; speed = 4f; solid = false; - ((Duct) chute).bridgeReplacement = this; }}; chuteOverflow = new PriorityInputSplitter("chute-overflow"){{ @@ -1929,8 +1963,11 @@ Category.production, with( health = 90; speed = 4f; solid = false; - ((Duct) chute).junctionReplacement = this; }}; + ((Duct) chute).bridgeReplacement = chuteBridge; + ((Duct) platedChute).bridgeReplacement = chuteBridge; + ((Duct) chute).junctionReplacement = chuteJunction; + ((Duct) platedChute).junctionReplacement = chuteJunction; //Meld blocks meldNode = new MeldNode("meld-node"){{ diff --git a/src/meld/content/MeldEnvironment.java b/src/meld/content/MeldEnvironment.java index a3a2812..a6a584f 100644 --- a/src/meld/content/MeldEnvironment.java +++ b/src/meld/content/MeldEnvironment.java @@ -74,7 +74,7 @@ public class MeldEnvironment { public static SteamVent aetherGrowth, metalWeaveAether; - public static Prop meldCluster, meldPools, meldProtrusion, meldMetalStick, meldCrystal, iampsiGemstone, quartzSpikes, vitricWeave, mallowCluster; + public static Prop meldCluster, meldPools, meldProtrusion, meldMetalStick, meldCrystal, mixedCarbonicBoulder, iampsiGemstone, quartzSpikes, vitricWeave, mallowCluster, pillowGlintCluster, earthenResonarumCluster; public static TallBlock meldCrystalLarge, meldSupportFrame; public static AetherCluster meldClusterLarge, dissonitreCluster; @@ -129,9 +129,10 @@ public static void load(){ itemDrop = MeldItems.elnarDust; }}; - elnarSilt = new OreBlock("elnar-silt"){{ + elnarSilt = new ModdedOreBlock("elnar-silt", MeldItems.elnarDust){{ variants = 4; - itemDrop = MeldItems.elnarDust; + mapColor = Color.valueOf("96ed45"); + setDefaults = false; needsSurface = false; }}; @@ -217,6 +218,7 @@ public static void load(){ metalWeave = new Floor("metal-weave", 3); metalWeaveHole= new Floor("metal-weave-hole", 0); metalWeaveGlow = new Floor("metal-weave-glow", 0){{ + emitLight = true; lightRadius = 16; lightColor = Color.orange.cpy().a(0.35f); }}; @@ -425,6 +427,10 @@ public static void load(){ metalAetherWall = new StaticWall("metal-aether-wall"){{ variants = 3; + + emitLight = true; + lightRadius = 48; + lightColor = Color.valueOf("e5932e").a(0.45f); }}; @@ -516,7 +522,7 @@ public static void load(){ variants = 2; }}; meldPools = new Prop("meld-pools"){{ - requirements(Category.effect, ItemStack.with(MeldItems.debris, 25)); + requirements(Category.effect, ItemStack.with(MeldItems.debris, 65)); buildVisibility = BuildVisibility.sandboxOnly; @@ -554,7 +560,29 @@ public static void load(){ buildTime = 10; variants = 3; }}; + mixedCarbonicBoulder = new Prop("mixed-carbonic-boulder"){{ + requirements(Category.effect, ItemStack.with(MeldItems.carbolith, 35, MeldItems.stonyParticulate, 45)); + solid = true; + alwaysReplace = false; + + buildVisibility = BuildVisibility.sandboxOnly; + instantDeconstruct = false; + buildTime = 60; + variants = 3; + }}; + + pillowGlintCluster = new Prop("pillow-glint-cluster"){{ + requirements(Category.effect, ItemStack.with(MeldItems.silver, 25, MeldItems.annealedSilver, 40)); + solid = true; + alwaysReplace = false; + + buildVisibility = BuildVisibility.sandboxOnly; + + instantDeconstruct = false; + buildTime = 45; + variants = 2; + }}; iampsiGemstone = new Prop("iampsi-gemstone"){{ requirements(Category.effect, ItemStack.with(MeldItems.silver, 25, MeldItems.iampsi, 45, MeldItems.quartzStrata, 25)); @@ -564,14 +592,14 @@ public static void load(){ buildVisibility = BuildVisibility.sandboxOnly; instantDeconstruct = false; - buildTime = 35; + buildTime = 40; variants = 4; }}; quartzSpikes = new Prop("quartz-spikes"){{ requirements(Category.effect, ItemStack.with(MeldItems.quartzStrata, 15)); solid = false; - alwaysReplace = true; + alwaysReplace = false; buildVisibility = BuildVisibility.sandboxOnly; @@ -582,13 +610,32 @@ public static void load(){ }}; vitricWeave = new Prop("vitric-weave"){{ - requirements(Category.effect, ItemStack.with(MeldItems.dissonitre, 5, MeldItems.vitricMesh, 12)); + requirements(Category.effect, ItemStack.with(MeldItems.dissonitre, 5, MeldItems.vitricMesh, 24)); + solid = false; + alwaysReplace = false; + + variants = 2; + buildTime = 5; + instantDeconstruct = false; }}; mallowCluster = new Prop("mallow-cluster"){{ }}; + earthenResonarumCluster = new Prop("earthen-resonarum-cluster"){{ + requirements(Category.effect, ItemStack.with(MeldItems.resonarum, 40)); + solid = true; + alwaysReplace = false; + + buildVisibility = BuildVisibility.sandboxOnly; + + instantDeconstruct = false; + buildTime = 40; + variants = 2; + }}; + + meldCrystalLarge = new TallBlock("meld-crystal-large"){{ variants = 1; customShadow = true; diff --git a/src/meld/content/MeldLiquids.java b/src/meld/content/MeldLiquids.java index 621ee4a..7802521 100644 --- a/src/meld/content/MeldLiquids.java +++ b/src/meld/content/MeldLiquids.java @@ -145,9 +145,12 @@ public static void load(){ spreadTarget = nectar; + color = Color.valueOf("7d312f"); + colorFrom = Color.valueOf("602d2b"); + colorTo = Color.valueOf("d78b65"); + moveThroughBlocks = true; incinerable = false; - }}; ooze = new CellLiquid("ooze"){{ diff --git a/src/meld/content/MeldUnits.java b/src/meld/content/MeldUnits.java index c4bc2fa..0e00283 100644 --- a/src/meld/content/MeldUnits.java +++ b/src/meld/content/MeldUnits.java @@ -23,6 +23,7 @@ import meld.graphics.*; import meld.entities.unit.weapons.DeathWeapon; import meld.entities.unit.weapons.ShadowVisualWeapon; +import meld.ui.MeldSettings; import mindustry.Vars; import mindustry.ai.types.HugAI; import mindustry.content.Blocks; @@ -102,6 +103,17 @@ public static void bulbheadOmnimove(boolean omniMovement){ } } + + public static void lightRadiusMultiplier(float newRad){ + + float prevScale = MeldSettings.lightScale; + + float multi = newRad/prevScale; + Vars.content.units().each(u -> { + u.lightRadius *= multi; + }); + } + //player units public static UnitType bulbhead, shark, @@ -452,8 +464,10 @@ public static void load(){ hitSize = 16; fogRadius = 24; - lightRadius = 85; - lightOpacity = 0.35f; + lightRadius = 35; + lightOpacity = 0.8f; + lightColor = Pal.sap; + range = 145; rotateSpeed = 6; @@ -479,6 +493,7 @@ public static void load(){ shoot.shotDelay = 5; bullet = new MissileBulletType(){{ + sprite = "missile-large"; speed = 4.5f; drag = -0.02f; @@ -497,7 +512,7 @@ public static void load(){ weaveScale = 5; weaveMag = 1.5f; - width = 3; + width = 4.5f; height = 8; shrinkX = 0; shrinkY = 0.2f; @@ -506,6 +521,7 @@ public static void load(){ backColor = trailColor = MeldPal.shark; trailChance = 0.15f; trailLength = 5; + trailWidth = 1.5f; despawnEffect = Fx.none; hitEffect = new Effect(12, e -> { @@ -527,7 +543,7 @@ public static void load(){ fragSpread = 15; fragRandomSpread = 0; fragBullet = new SapBulletType(){{ - damage = 10; + damage = 15; sapStrength = 1; length = 15; pierce = true; diff --git a/src/meld/entities/unit/BulbheadEntity.java b/src/meld/entities/unit/BulbheadEntity.java index fee01c2..49e6808 100644 --- a/src/meld/entities/unit/BulbheadEntity.java +++ b/src/meld/entities/unit/BulbheadEntity.java @@ -176,7 +176,7 @@ public boolean activelyBuilding() { } public boolean withinBuildRange(Position p){ - return Vars.state.rules.infiniteResources || within(p, type.buildRange) || nearbyRaft != null && nearbyRaft.within(p, nearbyRaft.fogRadius() * Vars.tilesize); + return Vars.state.rules.infiniteResources || lastSafe.within(p, type.buildRange) || nearbyRaft != null && nearbyRaft.within(p, nearbyRaft.fogRadius() * Vars.tilesize); } public float buildDistance(Position p){ @@ -348,6 +348,14 @@ public void draw(){ } if(beached > 0 && beached != 1){ + + Draw.draw(Layer.buildBeam, () -> { + Lines.stroke(4); + Draw.color(team.color); + Draw.alpha(beached * 5); + Lines.circle(lastSafe.x, lastSafe.y, type.buildRange); + Draw.reset(); + }); float fout = 1 - beached; Draw.alpha(beached * beached); @@ -380,7 +388,7 @@ public void drawBuilding() { Tile tile = plan.tile(); CoreBlock.CoreBuild core = this.team.core(); - Position origin = within(plan, type.buildRange) ? this : nearbyRaft; + Position origin = lastSafe.within(plan, type.buildRange) ? lastSafe : nearbyRaft; if (tile != null && origin != null) { if (core != null && active && !this.isLocal() && !(tile.block() instanceof ConstructBlock)) { Draw.z(84.0F); @@ -393,14 +401,14 @@ public void drawBuilding() { float focusLen = type.buildBeamOffset + Mathf.absin(Time.time, 3.0F, 0.6F); float px = origin.getX(); float py = origin.getY(); - if(origin == this){ + if(origin == lastSafe){ px += Angles.trnsx(rotation, focusLen); py += Angles.trnsy(rotation, focusLen); } drawBuildingBeam(px, py); - if(origin != this){ + if(origin != lastSafe){ Draw.z(122); Drawf.buildBeam(origin.getX(), origin.getY(), x, y, 4); Lines.stroke(2); diff --git a/src/meld/entities/unit/abilities/BeachedAbility.java b/src/meld/entities/unit/abilities/BeachedAbility.java index d62c9af..4239628 100644 --- a/src/meld/entities/unit/abilities/BeachedAbility.java +++ b/src/meld/entities/unit/abilities/BeachedAbility.java @@ -8,7 +8,7 @@ public class BeachedAbility extends Ability { public void update(Unit unit) { super.update(unit); if(unit.tileOn() != null && !unit.tileOn().floor().isLiquid){ - unit.reloadMultiplier = unit.buildSpeedMultiplier = 0; + unit.reloadMultiplier = 0; } } } diff --git a/src/meld/graphics/AboveOverlayRenderer.java b/src/meld/graphics/AboveOverlayRenderer.java new file mode 100644 index 0000000..79cb999 --- /dev/null +++ b/src/meld/graphics/AboveOverlayRenderer.java @@ -0,0 +1,44 @@ +package meld.graphics; + +import arc.Core; +import arc.graphics.g2d.Draw; +import arc.math.geom.Vec2; +import mindustry.Vars; +import mindustry.core.World; + +import static mindustry.Vars.player; + +public class AboveOverlayRenderer { + public static void draw(){ + + int cursorX = tileX(Core.input.mouseX()); + int cursorY = tileY(Core.input.mouseY()); + + if(player.isBuilder() && Vars.control.input.isPlacing()){ + int rot = Vars.control.input.block == null ? Vars.control.input.rotation : Vars.control.input.block.planRotation(Vars.control.input.rotation); + + if(Vars.control.input.block.rotate && Vars.control.input.block.drawArrow){ + Vars.control.input.drawArrow(Vars.control.input.block, cursorX, cursorY, rot); + } + Draw.color(); + boolean valid = Vars.control.input.validPlace(cursorX, cursorY, Vars.control.input.block, rot); + Vars.control.input.block.drawPlace(cursorX, cursorY, rot, valid); + } + } + + static int tileX(float cursorX){ + Vec2 vec = Core.input.mouseWorld(cursorX, 0); + if(Vars.control.input.selectedBlock()){ + vec.sub(Vars.control.input.block.offset, Vars.control.input.block.offset); + } + return World.toTile(vec.x); + } + + static int tileY(float cursorY){ + Vec2 vec = Core.input.mouseWorld(0, cursorY); + if(Vars.control.input.selectedBlock()){ + vec.sub(Vars.control.input.block.offset, Vars.control.input.block.offset); + } + return World.toTile(vec.y); + } +} diff --git a/src/meld/graphics/ParticleFloor.java b/src/meld/graphics/ParticleFloor.java new file mode 100644 index 0000000..3b4acec --- /dev/null +++ b/src/meld/graphics/ParticleFloor.java @@ -0,0 +1,44 @@ +package meld.graphics; +import arc.graphics.Color; +import arc.math.Mathf; +import mindustry.content.Blocks; +import mindustry.content.Fx; +import mindustry.entities.Effect; +import mindustry.world.Tile; +import mindustry.world.blocks.environment.Floor; + +public class ParticleFloor extends Floor { + + public Effect effect; + + public Color effectColor; + + public float chance; + + public boolean emitBlocked; + + public ParticleFloor(String name) { + super(name); + effect = Fx.smoke; + effectColor = Color.white; + chance = 1; + emitBlocked = false; + } + + public ParticleFloor(String name, int variants) { + super(name, variants); + } + + @Override + public boolean updateRender(Tile tile) { + return true; + } + + @Override + public void renderUpdate(UpdateRenderState tile) { + //gota check twice cause stuff can block the floor + if(Mathf.chanceDelta(chance) && (emitBlocked || tile.tile.block() == Blocks.air)) { + effect.at(tile.tile.worldx(), tile.tile.worldy(), effectColor); + } + } +} \ No newline at end of file diff --git a/src/meld/ui/MeldSettings.java b/src/meld/ui/MeldSettings.java index 3b92a15..61aed77 100644 --- a/src/meld/ui/MeldSettings.java +++ b/src/meld/ui/MeldSettings.java @@ -1,61 +1,79 @@ package meld.ui; import arc.Core; +import arc.func.Boolc; +import arc.func.Cons; import arc.util.Log; import meld.Meld; import meld.SettingKeys; import meld.content.MeldUnits; import mindustry.Vars; import mindustry.content.Blocks; +import mindustry.ctype.UnlockableContent; +import mindustry.io.SaveFileReader; +import mindustry.ui.dialogs.SettingsMenuDialog; public class MeldSettings { - public static boolean replaceLighting, invertAmbient, connectedSonar, + public static boolean replaceLighting, invertAmbient, connectedSonar, overlayOverFog, //The expirimental settings bulbheadOmnimove, portSaves; - public static float lightScale = 1; + public static float lightScale = 100; + + public static void check(SettingsMenuDialog.SettingsTable table, String settingName, boolean def, Boolc changed){ + table.checkPref(Core.bundle.get(settingName), def, b -> { + Core.settings.put(settingName, b); + changed.get(b); + }); + } public static void loadSettings(){ replaceLighting = Core.settings.getBool(SettingKeys.lighting, true); invertAmbient = Core.settings.getBool(SettingKeys.invertAmbient, false); connectedSonar = Core.settings.getBool(SettingKeys.connectedSonar, true); - lightScale = Core.settings.getFloat(SettingKeys.unitLightScale, 1); + overlayOverFog = Core.settings.getBool(SettingKeys.overlayOverFog, true); + + float newLightScale = Core.settings.getInt(SettingKeys.unitLightScale, 100); + MeldUnits.lightRadiusMultiplier(newLightScale); + lightScale = newLightScale; bulbheadOmnimove = Core.settings.getBool(SettingKeys.bulbheadOmnimove, false); portSaves = Core.settings.getBool(SettingKeys.portSaves, false); - Vars.ui.settings.addCategory(Core.bundle.get("settings.meld-title"), Meld.prefix("icon"), t -> { - t.checkPref(Core.bundle.get(SettingKeys.lighting), true, b -> { - replaceLighting = b; - }); - t.checkPref(Core.bundle.get(SettingKeys.invertAmbient), false, b -> { - invertAmbient = b; - }); + //TODO: Move save io related things to their own class? + if(portSaves){ + Vars.content.each(c -> { + if(!(c instanceof UnlockableContent content) || content.minfo.mod == null) return; + String modified = content.name; + String[] bits = modified.split("meld2"); - t.checkPref(Core.bundle.get(SettingKeys.connectedSonar), true, b -> { - connectedSonar = b; - }); + if(bits.length > 1){ + String oldName = "meld" + bits[1]; - t.sliderPref(Core.bundle.get(SettingKeys.unitLightScale), 100, 1, 200, f -> { - float prevScale = lightScale; - lightScale = f/100f; + SaveFileReader.fallback.put(oldName, modified); + } + }); + } - float multi = lightScale/prevScale; - Vars.content.units().each(u -> { - u.lightRadius *= multi; - }); + Vars.ui.settings.addCategory(Core.bundle.get("settings.meld-title"), Meld.prefix("icon"), t -> { + check(t, SettingKeys.lighting, true, b -> replaceLighting = b); + check(t, SettingKeys.invertAmbient, true, b -> invertAmbient = b); + check(t, SettingKeys.connectedSonar, true, b -> connectedSonar = b); + check(t, SettingKeys.overlayOverFog, true, b -> overlayOverFog = b); + t.sliderPref(Core.bundle.get(SettingKeys.unitLightScale), 100, 1, 200, f -> { + MeldUnits.lightRadiusMultiplier(f); + lightScale = f; + Core.settings.put(SettingKeys.unitLightScale, f); return f + "%"; }); }); - Vars.ui.settings.addCategory(Core.bundle.get("settings.meld-expirimental"), Meld.prefix("icon"), t -> { - t.checkPref(Core.bundle.get(SettingKeys.bulbheadOmnimove), false, MeldUnits::bulbheadOmnimove); - t.checkPref(Core.bundle.get(SettingKeys.portSaves), false, b -> { - portSaves = b; - }); + Vars.ui.settings.addCategory(Core.bundle.get("settings.meld-experimental"), Meld.prefix("icon"), t -> { + check(t, SettingKeys.bulbheadOmnimove, false, MeldUnits::bulbheadOmnimove); + check(t, SettingKeys.portSaves, false, b -> portSaves = b); }); /* diff --git a/src/meld/world/blocks/fluid/AspectBomb.java b/src/meld/world/blocks/fluid/AspectBomb.java new file mode 100644 index 0000000..2300af4 --- /dev/null +++ b/src/meld/world/blocks/fluid/AspectBomb.java @@ -0,0 +1,116 @@ +package meld.world.blocks.fluid; + +import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; +import arc.graphics.g2d.Lines; +import arc.math.Mathf; +import arc.util.Tmp; +import meld.Meld; +import meld.content.MeldLiquids; +import meld.entities.bullet.TransitionBulletType; +import mindustry.content.Fx; +import mindustry.entities.Effect; +import mindustry.entities.bullet.BasicBulletType; +import mindustry.entities.bullet.LiquidBulletType; +import mindustry.graphics.Drawf; + +public class AspectBomb extends VisualAspectPipe{ + public AspectBomb(String name) { + super(name); + buildTime = 0; + rebuildable = false; + + destroyBullet = new TransitionBulletType(){{ + lifetime = 30; + spawnBullets.addAll( + new TransitionBulletType(){{ + fragBullets = 12; + fragLifeMin = 0.5f; + fragBullet = new BasicBulletType(3, 3, Meld.prefix("clump")){{ + lifetime = 30; + + width = 8; + height = 10; + shrinkX = 1; + shrinkY = 0.2f; + + hitEffect = despawnEffect = Fx.none; + + lightRadius = 0; + fragBullets = 2; + + fragBullet = new LiquidBulletType(MeldLiquids.stormingAspect); + }}; + }}, + new TransitionBulletType(){{ + fragBullets = 24; + fragBullet = new BasicBulletType(8, 3, Meld.prefix("clump")){{ + lifetime = 12; + + width = 4; + height = 18; + + hitEffect = despawnEffect = Fx.none; + + lightRadius = 0; + fragBullets = 2; + + fragBullet = new BasicBulletType(8, 7, Meld.prefix("clump")){{ + lifetime = 12; + + width = 2; + height = 12; + + shrinkX = 1; + shrinkY = 0.2f; + + hitEffect = despawnEffect = Fx.none; + + + sticky = true; + + stickyExtraLifetime = 600; + + lightRadius = 0; + }}; + }}; + }} + ); + splashDamage = 500; + splashDamageRadius = 32; + incendAmount = 50; + + hitEffect = new Effect(24, e -> { + Draw.color(MeldLiquids.stormingAspect.color); + Draw.alpha(e.foutpowdown() * 0.3f); + Fill.light(e.x, e.y, 100, e.finpow() * 32, Tmp.c1.set(Tmp.c2.set(MeldLiquids.stormingAspect.color)).a(e.fout()), Tmp.c2.a(0)); + //Fill.circle(e.x, e.y, e.finpow() * 85); + + Drawf.light(e.x, e.y, e.finpow() * 14, MeldLiquids.stormingAspect.color, e.fout()); + + e.scaled(8, e1 -> { + Draw.color(Color.white); + Draw.alpha(e1.foutpowdown() * 0.35f); + Lines.stroke(e1.fin() * 12 + 2); + Lines.circle(e1.x, e1.y, e1.fin() * 18 + 8); + }); + }); + + fragBullets = 4; + fragBullet = new LiquidBulletType(MeldLiquids.stormingAspect); + }}; + destroyBulletSameTeam = false; + } + + public float pressureDamage = 5f; + public float explosionPressure = 0.5f; + + public class AspectBombBuild extends VisualPipeBuild{ + @Override + public void updateTile() { + super.updateTile(); + if(liquids.currentAmount()/liquidCapacity > explosionPressure) damageContinuousPierce(pressureDamage); + } + } +} diff --git a/src/meld/world/blocks/fluid/AspectPipe.java b/src/meld/world/blocks/fluid/AspectPipe.java index f87f772..5a810e8 100644 --- a/src/meld/world/blocks/fluid/AspectPipe.java +++ b/src/meld/world/blocks/fluid/AspectPipe.java @@ -1,5 +1,7 @@ package meld.world.blocks.fluid; +import arc.Core; +import arc.graphics.g2d.TextureRegion; import arc.math.Mathf; import arc.math.geom.Geometry; import arc.struct.Seq; @@ -32,6 +34,11 @@ public AspectPipe(String name) { super(name); } + @Override + public TextureRegion[] icons(){ + return new TextureRegion[]{botRegions[0], topRegions[0]}; + } + @Override public boolean blends(Tile tile, int rotation, int otherx, int othery, int otherrot, Block otherblock) { return super.blends(tile, rotation, otherx, othery, otherrot, otherblock) || (otherblock.hasLiquids && !(otherblock instanceof Conduit || otherblock instanceof LiquidRouter) && outletMapping.values().toSeq().find(l -> otherblock.consumesLiquid(l)) != null); diff --git a/src/meld/world/blocks/turrets/MeldItemTurret.java b/src/meld/world/blocks/turrets/MeldItemTurret.java new file mode 100644 index 0000000..a7ac29f --- /dev/null +++ b/src/meld/world/blocks/turrets/MeldItemTurret.java @@ -0,0 +1,38 @@ +package meld.world.blocks.turrets; + +import arc.graphics.g2d.Draw; +import arc.util.Log; +import mindustry.graphics.Drawf; +import mindustry.graphics.Layer; +import mindustry.graphics.Pal; +import mindustry.world.blocks.defense.turrets.ItemTurret; + +import static mindustry.Vars.state; +import static mindustry.Vars.tilesize; + +public class MeldItemTurret extends ItemTurret { + + public float layer = 0; + + public MeldItemTurret(String name) { + super(name); + } + + @Override + public void drawOverlay(float x, float y, int rotation) { + super.drawOverlay(x, y, rotation); + + Draw.draw(Layer.fogOfWar + 2, () -> { + Draw.z(Layer.fogOfWar + 2); + Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.placing); + + if(fogRadiusMultiplier < 0.99f && state.rules.fog){ + Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range * fogRadiusMultiplier, Pal.lightishGray); + } + + if(drawMinRange){ + Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, minRange, Pal.placing); + } + }); + } +} diff --git a/src/meld/world/blocks/units/LaunchStation.java b/src/meld/world/blocks/units/LaunchStation.java index eea2ab4..cd7c7d2 100644 --- a/src/meld/world/blocks/units/LaunchStation.java +++ b/src/meld/world/blocks/units/LaunchStation.java @@ -84,6 +84,12 @@ public void drawPlanRegion(BuildPlan plan, Eachable list){ Drawf.dashLine(Pal.accent, Tmp.v1.set(x, y).x, y, Tmp.v1.add(Tmp.v2.trns(rot, statusDuration * 7)).x, Tmp.v1.y, (int) Tmp.v2.len()/Vars.tilesize); } + @Override + public void drawOverlay(float x, float y, int rotation) { + super.drawOverlay(x, y, rotation); + + Drawf.dashLine(Pal.accent, Tmp.v1.set(x, y).x, y, Tmp.v1.add(Tmp.v2.trns(rotation * 90, statusDuration * 7)).x, Tmp.v1.y, (int) Tmp.v2.len()/Vars.tilesize); + } @Override public void init() { From 5b45d23042e8c06a04f406c8958a9791d05721f5 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Wed, 29 Apr 2026 01:11:50 +1000 Subject: [PATCH 14/16] I REGRET NOTHINGGGGGGGGGGG -ParticleFloor added from Frostscape + supporting classes -Grinding Quarry & Pneumatic Pulsar both have custom UI -Added the Depot and Logistics Docks, two powerful blocks -Units holding aspect bombs on death make an aspect bomb explosion --- assets/bundles/bundle.properties | 23 +- assets/bundles/bundle.shitpost | 2 + assets/maps/badlands-testmap-1.msav | Bin 26881 -> 25939 bytes assets/maps/badlands-testmap-2.msav | Bin 27008 -> 26304 bytes assets/maps/gameplay-testmap-1.msav | Bin 16945 -> 15968 bytes assets/maps/gameplay-testmap-2.msav | Bin 33402 -> 32529 bytes assets/maps/heavy-industry-test-1.msav | Bin 19922 -> 21446 bytes assets/maps/info.msav | Bin 13428 -> 12450 bytes .../sprites/blocks/storage/depot-center.png | Bin 0 -> 590 bytes assets/sprites/blocks/storage/depot.png | Bin 0 -> 1392 bytes mod.hjson | 12 +- src/meld/Meld.java | 43 +++- src/meld/content/MeldBlocks.java | 33 ++- src/meld/content/MeldBullets.java | 102 +++++++- src/meld/content/MeldEnvironment.java | 23 +- src/meld/content/MeldFx.java | 19 ++ src/meld/content/MeldItems.java | 47 ++-- src/meld/content/MeldPlanets.java | 48 ++++ src/meld/content/MeldUnits.java | 11 + src/meld/graphics/Draww.java | 92 ++++++- src/meld/graphics/MeldLayers.java | 3 +- src/meld/graphics/ParticleFloor.java | 11 +- src/meld/math/Math3D.java | 41 +++ src/meld/math/MultiInterp.java | 28 +++ src/meld/meta/MeldStats.java | 7 + src/meld/world/WeatherMath.java | 26 ++ src/meld/world/WorldUtil.java | 73 ++++++ src/meld/world/blocks/fluid/AspectBomb.java | 83 +------ src/meld/world/blocks/production/Depot.java | 137 ++++++++++ .../blocks/production/GrindingQuary.java | 138 +++++++++- .../blocks/production/SingleBeamDrill.java | 58 +++++ .../world/blocks/turrets/MeldItemTurret.java | 18 -- .../world/blocks/units/UnitLogisticsPad.java | 235 ++++++++++++++++++ 33 files changed, 1139 insertions(+), 174 deletions(-) create mode 100644 assets/sprites/blocks/storage/depot-center.png create mode 100644 assets/sprites/blocks/storage/depot.png create mode 100644 src/meld/content/MeldPlanets.java create mode 100644 src/meld/math/Math3D.java create mode 100644 src/meld/math/MultiInterp.java create mode 100644 src/meld/world/WeatherMath.java create mode 100644 src/meld/world/blocks/production/Depot.java create mode 100644 src/meld/world/blocks/units/UnitLogisticsPad.java diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index fd8e37b..d742c6e 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -298,8 +298,8 @@ block.meld2-displacement-pump.description = Dumps Debris into fluids to retrive block.meld2-elemental-blaster.name = Elemental Blaster block.meld2-elemental-blaster.description = Blasts deposits for items indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nCan be boosted with [#ea9ad6]Meld[] to double harvesting speed. -block.meld2-excavation-quarry.name = Excavation Quarry -block.meld2-excavation-quarry.description = Rips up the land it's placed on, and harvests from ore deposits indefinitely. Requires [#cbdbfc]Aspect[] to run.\n\nPipe in [accent]explosives[], [accent]stronger fuels[], [accent]grinding particulate[], or [accent]solvents[], to rip up the ground faster, or increase its yield. +block.meld2-grinder-quarry.name = Grinder Quarry +block.meld2-grinder-quarry.description = Rips up the land it's placed on, and harvests from ore deposits indefinitely.\n\nRequires [#cbdbfc]Aspect[] to run.\n\n[accent]Connects to adjacent Depots![]\n\nPipe in [accent]explosives[], [accent]stronger fuels[], [accent]grinding particulate[], or [accent]solvents[], to rip up the ground faster, or increase its yield. block.meld2-pneumatic-pulsar.name = Pneumatic Pulsar block.meld2-pneumatic-pulsar.description = Blasts a single deposit for items indefinitely while maintained. Requires [#cb8650]Aether[] to run.\n\n[red]Explosions damage everything around them, high maintenance![] @@ -355,6 +355,9 @@ block.meld2-core-bunker.details = A great logistics hub. Equipped with single-us block.meld2-buffer.name = Buffer block.meld2-buffer.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents.\n\n[accent]Connects to the core![]\n\n[accent]Lightly Armored![] +block.meld2-depot.name = Depot +block.meld2-depot.description = Stores a small amount of items with separate capacities per type.\n\nOutputs its contents to adjacent blocks, can be configured to only output one type of item. + block.meld2-interface.name = Interface block.meld2-interface.description = Stores a small amount of items with separate capacities per type. Can be unloaded to empty its contents. Can connect to the core!\n\nGround units can walk over this. @@ -362,6 +365,10 @@ block.meld2-launch-station.name = Launch Station block.meld2-launch-station.description = Pulls units in, and propels them in the target direction.\n\nFueled by [meld2-aspect]Aspect[]. block.meld2-launch-station.details = The beta version of the launch station was developed into something useful for kart racing, while the version chosen for deployment was refined to be highly consistent (inconsistently). +block.meld2-logistic-docks.name = Logistic Docks +block.meld2-logistic-docks.description = Attempts to set nearby unit's items to a certain threshold, using adjacent buildings as storage. +block.meld2-logistic-docks.details = Is this some type of florafest?\n\nNo mate, it's trains.\n\nooh + block.meld2-friction-pad.name = Friction Pad block.meld2-friction-pad.description = Increases the drag of units, and removes the boost from Launch Stations.\n\nCan only be placed on shallow liquids, always replaced by other buildings. block.meld2-friction-pad.details = Drifting? More like a floormat. @@ -865,10 +872,11 @@ liquid.meld2-meld.description = Slowly disolves most metals and organics, save f liquid.meld2-meld.details = The original lifeform on Ikaru in gaseous state. //Aspect Groups -aspect-group.meld2-aether = [meld-aether]Aether -aspect-group.meld2-aspect = [meld-aspect]Aspect -aspect-group.meld2-fumes = [meld-fumes]Fumes -aspect-group.meld2-outlet-fuel = Outlet Fuel +aspect-group.meld2-aether = [meld2-aether]Aether +aspect-group.meld2-aspect = [meld2-aspect]Aspect +aspect-group.meld2-fumes = [meld2-fumes]Fumes +aspect-group.meld2-aqua = [#6fd37a]Aqua[] +aspect-group.meld2-outlet = Outlet Fuel //Units @@ -1347,4 +1355,5 @@ unit.ticks = ticks bar.spool = Spool stat.aspect-efficiency = Efficiency -stat.aspect-density = Density \ No newline at end of file +stat.aspect-density = Density +stat.aspect-stats = Aspect Stats \ No newline at end of file diff --git a/assets/bundles/bundle.shitpost b/assets/bundles/bundle.shitpost index 02f6743..b28ca18 100644 --- a/assets/bundles/bundle.shitpost +++ b/assets/bundles/bundle.shitpost @@ -17,6 +17,8 @@ block.meld2-crystal-cracker.description = ...you know you wana\n\njust a lil nib block.meld2-overflow-chute.name = Smart Router block.meld2-overflow-chute.description = Smart Router +block.meld2-depot.name = frankouloadertainer's frankouloadertainer-er + liquid.meld2-aspect.name = Outdated Ass Destroyer liquid.meld2-storming-aspect.name = Bombspect liquid.meld2-bound-aspect.name = Leanspect diff --git a/assets/maps/badlands-testmap-1.msav b/assets/maps/badlands-testmap-1.msav index 4dffd53072d88d1672cc1e4cdba86ac2e4b093cc..2ee2abff2a2e3b74d96cbbdd627555d02ac96bee 100644 GIT binary patch literal 25939 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 literal 26881 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 S;txL5|H57b_5TAkYzSR+dn4EY diff --git a/assets/maps/gameplay-testmap-1.msav b/assets/maps/gameplay-testmap-1.msav index 81e89fac5189a460e7d5f7b3cc889411144e7995..051e89e56b8c1e0ac615d7ae8d7c10d154e56d51 100644 GIT binary patch literal 15968 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 JI`OgK{vX!8nF9a- literal 16945 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

oVGyp&@GDk9@_~V-2eDgTg99=~g^+k8I2dbs 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 literal 33402 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 AH2?qr diff --git a/assets/maps/heavy-industry-test-1.msav b/assets/maps/heavy-industry-test-1.msav index 7ab6586649c1413ef73b9b624f8720b15b4bca3c..2df59d3dd4df62efd8e3e7729193ad706f231a7f 100644 GIT binary patch literal 21446 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 z≪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 b<4aa%@*h>x#{Dn)>T8TE*!+J0QkEy%>*B$^ literal 19922 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 HL&g3FC$4!r literal 13428 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 literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/storage/depot.png b/assets/sprites/blocks/storage/depot.png new file mode 100644 index 0000000000000000000000000000000000000000..4e5d313aa21861e3686ab250f9fe439199c49253 GIT binary patch literal 1392 zcmV-$1&{iPP)}#A1tRr64L|sZj_*gb)=HwQxTs2C|!FH^C;QU>mUT z(-^g|vDVhYRuBX~Aa-_EiZ&uElLQjP_?kJ~dG|5z4#?%KZn`ZaU|M-69tkUnl=;<@;DGOOv?Z{QDsALQLvdU z=(Tr>4LjGZr3Ik_{Y02!o)`)m1u|sGGfV~x1(!Gx!cF{r6@QEZ8d);vD9n<>M6LJ{ zfABk7H#Ig|ozxiy|Fh@44?yb&WxIkHPl@msZ`ME5qam_)2vxbO?bhIKQfE z+AdsdL+_)lI%-Ao0dgt@Z>P|egq|B{U#aF+yXWK{7K;$QhW!H=OhaI`$=+>^x&7Ny z%kKxq>vCcy6i-J000Xp1L_t(|ob6jXZX+=ar41j%jj@eeAHiLaWB3B;_5f)XX|{B3 z5v21G+`0+e_$2lghO#p>Ns%IHZ5DYzfXs}<&l9E5kn-g9_pi%(K7}5bKR!(W08Vc& zmo5eXz-)gw0>A=#kkHfdf*Aln4-$5#^XR%)6wb;&m;`Jf1R6=n-kr{=@;TX)&1N$S z!_{)pq*QA>Wn6|Ft?U`uvH{s4-QqAM1KTyaY8`z}ndV+pzgD~Mw(?kYjb=CBE5F)9^Ha1G9 zTZ&{zM#x6X58DYAJimX8uDzQpEbr&TkJ0sdK6OpCW(xO*BkT{yk#cM-I2Tr`FQvm1 z2~9nRh7}Sh!>INxIxr$hxan0hmU_OPPphGBAwko&g#_xkdle~jvXD^zC}eemu*g`^!^BgQBkS(z>TIVUn*a2>eQ1_{Jt+sHa zu={}8h;YxP_p)X*SIY$}TXMeW96G9r1a++75n3%5tfQJpsOiFx24rZ*?sPV7jBb*m zT7!nDG2OaTtA)GQE~rI-^hz5-a?rC)m2_+Es_AD5u&%yY$xLp+v_P`sh5+rT*Azu2 zHu2ii0xlZD)8d&K-3Fwq6837R~ z@q&ybX_kFosxFXWADIzqRb>4T(E_L7TENv4SSziHDB%$#SaJs(Bs)Y4wb783yKl)J zVcj+Ts=C1baAY?koB~|fv~G^Ba{ub&BEf1GhAAb6=c2}Wt3g~_DZPf*9*ZtE0)`4L zi;y(Znn;k0m$F4vKTUa^ysOF0QP7M$H$v2XPi6_*!VzyuiCJNpB9`=84VLxBBps6= z6(%gs*Pclv;M#&pl zW`wk`lHffhM(M((`PL*%^EOROLewcSN=G5VqrjIJBKBTM|_RS(TErI7H;U3Pz_wNPnNI>*4 zxhRCE#U)v-$K*0=7B@RVDbFS$d(^1cVFbvnFh@evd);%8Qqxwpef$eq)fu4-WNex& yx(f;6$K|!Sr^B@FD+%2Q001aw6M95pA>j|5L_vHI_>Oe|0000 { if(!MeldSettings.overlayOverFog) return; Draw.draw(Layer.fogOfWar + 2, AboveOverlayRenderer::draw); + + //Just additive blending the fuck out of this layer in particular cause like fuck yes + Draw.drawRange(MeldLayers.smokeHigh, 1, () -> Draw.blend(Blending.additive), () -> Draw.blend(Blending.normal)); }); Events.on(EventType.FileTreeInitEvent.class, e -> { Core.app.post(MeldShaders::load); }); + + Events.on(EventType.UnitDestroyEvent.class, e -> { + //We do a lil aspect bombing + if(e.unit.item() == MeldItems.aspectBomb){ + MeldBullets.aspectBombExplosion.create(e.unit, Team.derelict, e.unit.x, e.unit.y, e.unit.rotation); + } + }); } public static String prefix(String in){ @@ -111,23 +122,22 @@ public void init() { @Override public void loadContent(){ MeldStatusEffects.load(); - MeldBullets.load(); - MeldUnits.load(); MeldItems.load(); MeldLiquids.load(); + MeldBullets.load(); + MeldUnits.load(); MeldBlocks.load(); MeldEnvironment.load(); MeldMappings.load(); + MeldPlanets.load(); //Just loads localised names AspectGroup.loadAll(); - Vars.content.items().each(c -> { - c.stats.add(Stat.buildCost, c.cost, MeldStatUnit.ticks); - }); - + MeldStats.loadModifications(); + Vars.content.blocks().each(b -> { - if(b.minfo.mod != null && b.minfo.mod.name.equals("meld")){ + if(b.minfo.mod != null && b.minfo.mod.name.equals("meld2")){ b.deconstructDropAllLiquid = true; } }); @@ -135,5 +145,16 @@ public void loadContent(){ Vars.content.liquids().each(l -> { Colors.put(l.name, l.color); }); + Vars.content.items().each(l -> { + Colors.put(l.name, l.color); + }); + + Vars.content.each(c -> { + if(!(c instanceof UnlockableContent content)) return; + if(content.minfo.mod != null && content.minfo.mod.name.equals("meld2")) { + content.shownPlanets.clear(); + content.shownPlanets.addAll(MeldPlanets.ikaru); + } + }); } } diff --git a/src/meld/content/MeldBlocks.java b/src/meld/content/MeldBlocks.java index 91fe2e4..6018843 100644 --- a/src/meld/content/MeldBlocks.java +++ b/src/meld/content/MeldBlocks.java @@ -17,6 +17,7 @@ import meld.graphics.*; import meld.world.blocks.*; import meld.world.blocks.consumers.ConsumeItemsBoost; +import meld.world.blocks.production.Depot; import meld.world.blocks.turrets.MeldItemTurret; import meld.world.blocks.consumers.ConsumePowerRecipe; import meld.world.blocks.consumers.StupidConsumeAspects; @@ -37,6 +38,7 @@ import meld.world.blocks.production.GrindingQuary; import meld.world.blocks.production.SingleBeamDrill; import meld.world.blocks.units.LaunchStation; +import meld.world.blocks.units.UnitLogisticsPad; import meld.world.meta.*; import mindustry.Vars; import mindustry.content.Fx; @@ -101,17 +103,19 @@ public class MeldBlocks { lampPsi; //Core Blocks - public static Block coreRaft, buffer; + public static Block coreRaft, buffer, depot; //Core Incinerator does what core incinerator does... it core incinerator public static ItemIncinerator aspectIncinerator; - public static Block aetherAccumulator, crystalCracker, elementalBlaster, filtrativeFeeder, excavationQuarry, pneumaticPulsear, + public static Block aetherAccumulator, crystalCracker, elementalBlaster, filtrativeFeeder, grinderQuarry, pneumaticPulsear, earthboundInfuser, fumehood, sharkFactory; public static LaunchStation launchStation; + public static UnitLogisticsPad logiPad; + //Crafters public static RecipeCrafter gasKiln, metalworks, rotaryKiln, pneumaticExtruder; @@ -1183,12 +1187,22 @@ public void update(Bullet b){ buffer = new StorageBlock("buffer"){{ requirements(Category.effect, with(MeldItems.debris, 120, MeldItems.cruciblePlating, 200)); size = 2; - health = 800; + health = 600; armor = 15; itemCapacity = 100; }}; + depot = new Depot("depot"){{ + requirements(Category.effect, with(MeldItems.debris, 60)); + buildTime = 240; + + size = 2; + health = 800; + + itemCapacity = 20; + }}; + aspectIncinerator = new StorageIncinerator("aspect-incinerator"){{ requirements(Category.effect, with(MeldItems.debris, 40)); health = 120; @@ -1378,10 +1392,12 @@ Category.production, with( ); }}; - excavationQuarry = new GrindingQuary("excavation-quarry"){{ + grinderQuarry = new GrindingQuary("grinder-quarry"){{ requirements(Category.production, with(MeldItems.debris, 250, MeldItems.quartzStrata, 120)); size = 5; + drillMultipliers.put(MeldItems.clayMallows, 0); + consume(new StupidConsumeAspects(outletRate * 4, AspectGroup.aspect)); consume(new ConsumeItemList(){{ optional = booster = true; @@ -1705,7 +1721,7 @@ Category.production, with( }}; stormIris = new RecipeCrafter("storm-iris"){{ - requirements(Category.crafting, with(MeldItems.debris, 350, MeldItems.annealedSilver, 300, MeldItems.electrumSheet, 300, MeldItems.quartzStrata, 250)); + requirements(Category.crafting, with(MeldItems.annealedSilver, 450, MeldItems.electrumSheet, 300, MeldItems.quartzStrata, 250)); size = 5; hasItems = hasLiquids = hasPower = true; liquidCapacity = 120; @@ -1826,6 +1842,13 @@ Category.production, with( ); }}; + logiPad = new UnitLogisticsPad("logistic-docks"){{ + requirements(Category.units, with(MeldItems.debris, 80)); + size = 5; + range = (size + 3) * Vars.tilesize * 2; + health = 600; + }}; + sonarSpire = new SonarSpire("sonar-spire"){{ requirements(Category.effect, with( MeldItems.debris, 60, diff --git a/src/meld/content/MeldBullets.java b/src/meld/content/MeldBullets.java index 4760cfa..c5930fc 100644 --- a/src/meld/content/MeldBullets.java +++ b/src/meld/content/MeldBullets.java @@ -1,26 +1,41 @@ package meld.content; import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; +import arc.graphics.g2d.Lines; import arc.math.Interp; +import arc.util.Tmp; import meld.Meld; import meld.entities.bullet.RicochetBulletType; import meld.entities.bullet.TransitionBulletType; import meld.graphics.MeldPal; +import meld.world.blocks.fluid.AspectBomb; import mindustry.content.Blocks; import mindustry.content.Fx; +import mindustry.entities.Effect; import mindustry.entities.bullet.*; import mindustry.entities.effect.MultiEffect; import mindustry.entities.effect.ParticleEffect; +import mindustry.graphics.Drawf; public class MeldBullets { + //Bullets from non weapon/turret sources public static BulletType pulsarBlast, pulsarShrapnel, + bombShrapnel, bombShrapnelAspect, aspectBombExplosion; + + //Weapon bullets + public static BulletType + sunderDebris, sunderGlass, shredDebris, shredSilver, vincaQuartz; + + public static void load(){ pulsarShrapnel = new BasicBulletType(){{ @@ -35,7 +50,7 @@ public static void load(){ drag = 0.02f; lifetime = 30; - damage = 10; + damage = 5; pierce = true; pierceBuilding = true; pierceDamageFactor = 0.5f; @@ -53,7 +68,7 @@ public static void load(){ }}; pulsarBlast = new ExplosionBulletType(){{ - lightningDamage = 5; + lightningDamage = 2; lightning = 12; lightningLength = 48; @@ -365,5 +380,88 @@ public static void load(){ }}; }}; }}; + + bombShrapnel = new BasicBulletType(8, 3, Meld.prefix("clump")){{ + lifetime = 12; + + width = 4; + height = 18; + + hitEffect = despawnEffect = Fx.none; + + lightRadius = 0; + fragBullets = 2; + fragBullet = new BasicBulletType(8, 7, Meld.prefix("clump")){{ + lifetime = 12; + + width = 2; + height = 12; + + shrinkX = 1; + shrinkY = 0.2f; + + hitEffect = despawnEffect = Fx.none; + + + sticky = true; + + stickyExtraLifetime = 600; + + lightRadius = 0; + }}; + }}; + + bombShrapnelAspect = new BasicBulletType(3, 3, Meld.prefix("clump")){{ + lifetime = 30; + + width = 8; + height = 10; + shrinkX = 1; + shrinkY = 0.2f; + + hitEffect = despawnEffect = Fx.none; + + lightRadius = 0; + fragBullets = 2; + + fragBullet = new LiquidBulletType(MeldLiquids.stormingAspect); + }}; + + aspectBombExplosion = new TransitionBulletType(){{ + lifetime = 30; + spawnBullets.addAll( + new TransitionBulletType(){{ + fragBullets = 12; + fragLifeMin = 0.5f; + fragBullet = bombShrapnelAspect; + }}, + new TransitionBulletType(){{ + fragBullets = 24; + fragBullet = bombShrapnel; + }} + ); + splashDamage = 500; + splashDamageRadius = 32; + incendAmount = 50; + + hitEffect = new Effect(24, e -> { + Draw.color(MeldLiquids.stormingAspect.color); + Draw.alpha(e.foutpowdown() * 0.3f); + Fill.light(e.x, e.y, 100, e.finpow() * 32, Tmp.c1.set(Tmp.c2.set(MeldLiquids.stormingAspect.color)).a(e.fout()), Tmp.c2.a(0)); + //Fill.circle(e.x, e.y, e.finpow() * 85); + + Drawf.light(e.x, e.y, e.finpow() * 14, MeldLiquids.stormingAspect.color, e.fout()); + + e.scaled(8, e1 -> { + Draw.color(Color.white); + Draw.alpha(e1.foutpowdown() * 0.35f); + Lines.stroke(e1.fin() * 12 + 2); + Lines.circle(e1.x, e1.y, e1.fin() * 18 + 8); + }); + }); + + fragBullets = 4; + fragBullet = new LiquidBulletType(MeldLiquids.stormingAspect); + }}; } } diff --git a/src/meld/content/MeldEnvironment.java b/src/meld/content/MeldEnvironment.java index a6a584f..db62290 100644 --- a/src/meld/content/MeldEnvironment.java +++ b/src/meld/content/MeldEnvironment.java @@ -3,6 +3,7 @@ import arc.graphics.Color; import arc.struct.Seq; import meld.graphics.MeldPal; +import meld.graphics.ParticleFloor; import meld.world.blocks.AetherCluster; import meld.world.blocks.defense.TreeWall; import meld.world.blocks.env.ModdedOreBlock; @@ -225,7 +226,9 @@ public static void load(){ metalWeaveHole.blendGroup = metalWeaveGlow.blendGroup = metalWeave; - meldHadaland = new Floor("meld-hadaland", 3){{ + meldHadaland = new ParticleFloor("meld-hadaland", 3){{ + effect = MeldFx.meldSmoke; + chance = 0.00036f; isLiquid = true; cacheLayer = CacheLayer.water; drownTime = 90; @@ -241,7 +244,9 @@ public static void load(){ attributes.set(MeldAttributes.meld, 0.3f); }}; - meldTrenchland = new Floor("meld-trenchland", 3){{ + meldTrenchland = new ParticleFloor("meld-trenchland", 3){{ + effect = MeldFx.meldSmoke; + chance = 0.00036f; isLiquid = true; drownTime = 120; @@ -257,7 +262,9 @@ public static void load(){ attributes.set(MeldAttributes.meld, 0.2f); }}; - meldSwampland = new Floor("meld-swampland", 3){{ + meldSwampland = new ParticleFloor("meld-swampland", 3){{ + effect = MeldFx.meldSmoke; + chance = 0.00036f; isLiquid = true; cacheLayer = CacheLayer.water; @@ -269,14 +276,20 @@ public static void load(){ attributes.set(MeldAttributes.meld, 0.1f); }}; - meldPlates = new Floor("meld-plates", 2){{ + meldPlates = new ParticleFloor("meld-plates", 2){{ + effect = MeldFx.meldSmoke; + chance = 0.00036f; + isLiquid = true; cacheLayer = CacheLayer.water; supportsOverlay = true; attributes.set(MeldAttributes.meld, 0.08f); }}; - meldCrystalScattered = new Floor("meld-crystal-scattered", 3){{ + meldCrystalScattered = new ParticleFloor("meld-crystal-scattered", 3){{ + effect = MeldFx.meldSmoke; + chance = 0.00036f; + isLiquid = true; cacheLayer = CacheLayer.water; supportsOverlay = true; diff --git a/src/meld/content/MeldFx.java b/src/meld/content/MeldFx.java index 9306a92..bd840cf 100644 --- a/src/meld/content/MeldFx.java +++ b/src/meld/content/MeldFx.java @@ -15,6 +15,9 @@ import arc.util.Tmp; import meld.graphics.Draww; import meld.Meld; +import meld.graphics.MeldLayers; +import meld.graphics.MeldPal; +import meld.math.MultiInterp; import mindustry.Vars; import mindustry.entities.Effect; import mindustry.gen.Healthc; @@ -25,8 +28,11 @@ public class MeldFx { + public static MultiInterp + smokeFade = new MultiInterp(new float[]{0, 0.8f}, new Interp[]{Interp.pow2, Interp.pow2Out}); private static float percent = 0; + public static Effect waterShear = new Effect(35, e -> { @@ -95,6 +101,19 @@ public class MeldFx { rotWithParent = true; }}, + meldSmoke = new Effect(120, 100, e -> { + + Draw.color(MeldPal.blobPink); + Draw.alpha(smokeFade.apply(e.fin())); + float size = Mathf.randomSeed(e.id, 2, 4); + Draw.z(MeldLayers.smokeHigh); + + Angles.randLenVectors(e.id + 1, (int) (Mathf.randomSeed(e.id, 3) + 1), e.fin() * 12, e.rotation, 360, (x, y) -> { + Draww.speckOffset(e.x + x, e.y + y, e.fin(), e.time, Draww.smokeWeight, Tmp.v1); + Fill.circle(Tmp.v1.x, Tmp.v1.y, size * e.fout(Interp.pow4)); + }); + }), + chainLightning = new Effect(15, 500 * 500/2 * Vars.tilesize, e -> { if(!(e.data instanceof VisualLightningHolder)) return; VisualLightningHolder p = (VisualLightningHolder) e.data; diff --git a/src/meld/content/MeldItems.java b/src/meld/content/MeldItems.java index 1095297..1df0265 100644 --- a/src/meld/content/MeldItems.java +++ b/src/meld/content/MeldItems.java @@ -1,5 +1,6 @@ package meld.content; +import arc.graphics.Color; import arc.struct.Seq; import mindustry.type.Item; @@ -29,86 +30,86 @@ public class MeldItems { public static void load(){ - debris = new Item("debris"){{ + debris = new Item("debris", Color.valueOf("e0b28d")){{ cost = 1; }}; - carbolith = new Item("carbolith"){{ + carbolith = new Item("carbolith", Color.valueOf("95abd9")){{ cost = 1.2f; }}; - silver = new Item("silver"){{ + silver = new Item("silver", Color.valueOf("f0f5fe")){{ cost = 0.3f; }}; - clayMallows = new Item("clay-mallow"){{ + clayMallows = new Item("clay-mallow", Color.valueOf("d08043")){{ cost = 0.2f; }}; - electrumSheet = new Item("electrum-sheet"){{ + electrumSheet = new Item("electrum-sheet", Color.valueOf("f4ec5d")){{ cost = 0.2f; }}; - resonarum = new Item("resonarum"); + resonarum = new Item("resonarum", Color.valueOf("4bb66b")); - dissonitre = new Item("dissonitre"){{ + dissonitre = new Item("dissonitre", Color.valueOf("e89964")){{ cost = 0.05f; }}; - vitricMesh = new Item("vitric-mesh"){{ + vitricMesh = new Item("vitric-mesh", Color.valueOf("fddfc9")){{ cost = 0.25f; }}; - meldShard = new Item("meld-shard"); + meldShard = new Item("meld-shard", Color.valueOf("e5aed7")); - stonyParticulate = new Item("stony-particulate"){{ + stonyParticulate = new Item("stony-particulate", Color.valueOf("3c4448")){{ }}; - larvalPlating = new Item("larval-plating"){{ + larvalPlating = new Item("larval-plating", Color.valueOf("946657")){{ }}; //Heavy Industry - tenbris = new Item("tenbris"){{ + tenbris = new Item("tenbris", Color.valueOf("604343")){{ }}; - motis = new Item("motis"){{ + motis = new Item("motis", Color.valueOf("c27e7a")){{ }}; - shadesteel = new Item("shadesteel"){{ + shadesteel = new Item("shadesteel", Color.valueOf("f06060")){{ }}; - elnarDust = new Item("elnar-dust"){{ + elnarDust = new Item("elnar-dust", Color.valueOf("6cbcaa")){{ }}; - annealedSilver = new Item("annealed-silver"){{ + annealedSilver = new Item("annealed-silver", Color.valueOf("5a6696")){{ }}; - glassMallows = new Item("glass-mallow"); + glassMallows = new Item("glass-mallow", Color.valueOf("ede0d4")); aspectBomb = new Item("aspect-bomb"){{ - explosiveness = 1; + explosiveness = 3; flammability = 0; }}; - iampsi = new Item("iampsi"){{ + iampsi = new Item("iampsi", Color.valueOf("b39ddd")){{ }}; - quartzStrata = new Item("quartz-strata"){{}}; + quartzStrata = new Item("quartz-strata", Color.valueOf("f2cdfe")){{}}; - likestoneSediments = new Item("likestone-sediments"){{}}; + likestoneSediments = new Item("likestone-sediments", Color.valueOf("5b704c")){{}}; gunpowder = new Item("gunpowder"); - aspectPipe = new Item("aspect-pipe"){{ + aspectPipe = new Item("aspect-pipe", Color.valueOf("716a56")){{ }}; - cruciblePlating = new Item("crucible-plating"){{ + cruciblePlating = new Item("crucible-plating", Color.valueOf("4a322b")){{ }}; diff --git a/src/meld/content/MeldPlanets.java b/src/meld/content/MeldPlanets.java new file mode 100644 index 0000000..691c4f4 --- /dev/null +++ b/src/meld/content/MeldPlanets.java @@ -0,0 +1,48 @@ +package meld.content; + +import arc.graphics.Color; +import mindustry.content.Planets; +import mindustry.game.CampaignRules; +import mindustry.graphics.g3d.MultiMesh; +import mindustry.graphics.g3d.NoiseMesh; +import mindustry.maps.generators.BlankPlanetGenerator; +import mindustry.type.Planet; + +public class MeldPlanets { + public static Planet ikaru; + + public static void load(){ + ikaru = new Planet("ikaru", Planets.sun, 1.2f, 2){{ + generator = new BlankPlanetGenerator(); + orbitRadius = 72.31f; + + clearSectorOnLose = true; + allowLaunchSchematics = false; + allowLaunchToNumbered = false; + allowLaunchLoadout = false; + allowSectorInvasion = false; + hasAtmosphere = true; + visible = true; + updateLighting = false; + defaultCore = MeldBlocks.coreRaft; + bloom = false; + + startSector = 2; + iconColor = Color.valueOf("f3c3e7"); + + accessible = true; + alwaysUnlocked = false; + + campaignRuleDefaults = new CampaignRules(){{ + fog = true; + showSpawns = true; + }}; + + int seed = 0; + + mesh = new MultiMesh( + new NoiseMesh(this, seed, 5, 0.9f, 3, 1.4f, 1, 1, Color.valueOf("cba380"), Color.valueOf("a06a3b"), 1, 1, 1, 0.5f) + ); + }}; + } +} diff --git a/src/meld/content/MeldUnits.java b/src/meld/content/MeldUnits.java index 0e00283..7b438b2 100644 --- a/src/meld/content/MeldUnits.java +++ b/src/meld/content/MeldUnits.java @@ -343,6 +343,17 @@ public static void load(){ shootWarmupSpeed = 5/90f; DrawPart.PartProgress mixedProg = DrawPart.PartProgress.reload.curve(Interp.reverse).mul(DrawPart.PartProgress.warmup); parts.addAll( + new ShapePart(){{ + circle = hollow = true; + radius = 120; + radiusTo = 0; + layer = Layer.effect; + stroke = 6; + strokeTo = 10; + color = MeldPal.accentClear; + colorTo = Pal.accent; + progress = mixedProg.compress(0.1f, 0.9f).curve(Interp.pow2In); + }}, new ShapePart(){{ circle = hollow = true; radius = 45; diff --git a/src/meld/graphics/Draww.java b/src/meld/graphics/Draww.java index 6bdb052..baa1881 100644 --- a/src/meld/graphics/Draww.java +++ b/src/meld/graphics/Draww.java @@ -3,25 +3,66 @@ import arc.Core; import arc.graphics.Color; import arc.graphics.Gl; -import arc.graphics.g2d.Draw; -import arc.graphics.g2d.Fill; -import arc.graphics.g2d.Lines; -import arc.graphics.g2d.TextureRegion; +import arc.graphics.g2d.*; import arc.math.Interp; import arc.math.Mathf; import arc.math.geom.Vec2; +import arc.scene.ui.layout.Scl; +import arc.util.Align; import arc.util.Tmp; +import arc.util.pooling.Pools; import meld.SettingKeys; +import meld.math.Math3D; +import meld.world.WeatherMath; import mindustry.Vars; import mindustry.content.Blocks; import mindustry.graphics.Layer; import mindustry.graphics.Pal; +import mindustry.type.Item; +import mindustry.ui.Fonts; import mindustry.world.Block; import static meld.ui.MeldSettings.connectedSonar; +import static mindustry.Vars.*; public class Draww { + public static Vec2 tv; + /*This conssiders + -X and Y of position + -Wind + -Parallax + */ + + //Weights for different materials + public static float + sparkWeight = 0.1f, + smokeWeight = 0.005f, + heavySmokeWeight = 0.015f; + + //Height gain/second for different materials + public static float + smokeDrift = 0.75f/60; + + public static void speckOffset(float x, float y, float height, float magnitude, float weight, Vec2 out){ + Vec2 w = new Vec2(); + windOffset(magnitude, weight, w); + w.add(x,y); + parallaxOffset(w.x, w.y, height, out); + } + + public static void windOffset(float magnitude, float weight, Vec2 out){ + out.set(WeatherMath.wind); + out.scl(Core.settings.getInt("frostscape-wind-visual-force")); + float length = Math.max(out.len() - weight, 0) * magnitude; + out.setLength(length); + } + + public static void parallaxOffset(float x, float y, float height, Vec2 out){ + float px = Math3D.xCamOffset2D(x, height), py = Math3D.yCamOffset2D(y, height); + out.set(x + px, y + py); + } + public static void drawSonar(float x, float y, float radius, float thickness){ drawSonar(x, y, radius, thickness, MeldLayers.sonar, Pal.accent); } @@ -46,11 +87,54 @@ public static void drawSonar(float x, float y, float radius, float thickness, fl } } + //Draw place text from blocks but well... yeah + //Uses the draw colour instead of an input one + + public static void itemText(String text, float x, float y, Item item){ + float offset = drawTextUnderlined(text, x, y, item.color)/2; + Draw.mixcol(Color.darkGray, 1f); + float s = iconSmall / 4f; + Draw.rect(item.fullIcon, x + offset + s/2, y - 1, s, s); + Draw.mixcol(); + Draw.rect(item.fullIcon, x + offset + s/2, y, s, s); + } + + public static float drawTextUnderlined(String text, float x, float y, Color col){ + if(renderer.pixelate) return 0; + + Font font = Fonts.outline; + GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new); + boolean ints = font.usesIntegerPositions(); + font.setUseIntegerPositions(false); + font.getData().setScale(1f / 4f / Scl.scl(1f)); + layout.setText(font, text); + + float width = layout.width; + + font.setColor(col); + + font.draw(text, x, y + layout.height + 1, Align.center); + y -= 1f; + Lines.stroke(2f, Color.darkGray); + Lines.line(x - layout.width / 2f - 2f, y, x + layout.width / 2f + 1.5f, y); + Lines.stroke(1f, col); + Lines.line(x - layout.width / 2f - 2f, y, x + layout.width / 2f + 1.5f, y); + + font.setUseIntegerPositions(ints); + font.setColor(Color.white); + font.getData().setScale(1f); + Draw.reset(); + Pools.free(layout); + + return width; + } + public static Vec2 tv1 = new Vec2(), tv2 = new Vec2(), tv3 = new Vec2(); //draws a chain of sprites public static void drawChain(TextureRegion region, float x, float y, float endx, float endy, float drawRotation){ drawChain(region, x, y, endx, endy, 1, 1, drawRotation); } + public static void drawChain(TextureRegion region, float x, float y, float endx, float endy, float wScale, float hScale, float drawRotation){ float angleToEnd = Mathf.angle(endx - x, endy - y); float distance = Mathf.dst(x, y, endx, endy); diff --git a/src/meld/graphics/MeldLayers.java b/src/meld/graphics/MeldLayers.java index d046a28..8525355 100644 --- a/src/meld/graphics/MeldLayers.java +++ b/src/meld/graphics/MeldLayers.java @@ -6,7 +6,8 @@ public class MeldLayers { public static float //Used to prevent layer collisions funnyNumber = 0.691337f, - + smokeLow = 50 + funnyNumber, + smokeHigh = 105 + funnyNumber, sonar = Layer.fogOfWar + 1 + funnyNumber, sonarInside = Layer.fogOfWar + 3 + funnyNumber; } diff --git a/src/meld/graphics/ParticleFloor.java b/src/meld/graphics/ParticleFloor.java index 3b4acec..8204dc6 100644 --- a/src/meld/graphics/ParticleFloor.java +++ b/src/meld/graphics/ParticleFloor.java @@ -17,16 +17,17 @@ public class ParticleFloor extends Floor { public boolean emitBlocked; + public ParticleFloor(String name) { - super(name); - effect = Fx.smoke; - effectColor = Color.white; - chance = 1; - emitBlocked = false; + super(name, 3); } public ParticleFloor(String name, int variants) { super(name, variants); + effect = Fx.smoke; + effectColor = Color.white; + chance = 1; + emitBlocked = false; } @Override diff --git a/src/meld/math/Math3D.java b/src/meld/math/Math3D.java new file mode 100644 index 0000000..c05e7e1 --- /dev/null +++ b/src/meld/math/Math3D.java @@ -0,0 +1,41 @@ +package meld.math; + +import arc.Core; + +public class Math3D { + + public static float parallax; + /** + * Originally by + * @author MEEP + * Modified by + * @author Sh1penfire + * */ + + //Ty meep, didn't realize how simple it was + + public static float xCamOffset2D(float x, float height){ + return xCamOffset2D(x, height, 1 + (1 - Math.max(0, parallax))); + } + + public static float yCamOffset2D(float y, float height){ + return yCamOffset2D(y, height, 1 + 7 * (1 - Math.max(0, parallax))); + } + public static float xCamOffset2D(float x, float height, float spacing){ + return (x - Core.camera.position.x) * height/spacing; + } + + public static float yCamOffset2D(float y, float height, float spacing){ + return (y - Core.camera.position.y) * height/spacing; + } + + public static class HeightHolder{ + public float height; + public float lift; + + public HeightHolder(float height, float lift){ + this.height = height; + this.lift = lift; + } + } +} \ No newline at end of file diff --git a/src/meld/math/MultiInterp.java b/src/meld/math/MultiInterp.java new file mode 100644 index 0000000..612325a --- /dev/null +++ b/src/meld/math/MultiInterp.java @@ -0,0 +1,28 @@ +package meld.math; + +import arc.math.Interp; + +public class MultiInterp implements Interp { + final float[] timings; + final Interp[] interps; + private Interp tinterp; + private float tmp; + + public MultiInterp(float[] timings, Interp[] interps){ + this.timings = timings; + this.interps = interps; + } + + @Override + public float apply(float a) { + for (int i = 0; i < timings.length; i++) { + if(i == timings.length - 1 || a < timings[i + 1]) { + if(i == timings.length-1) tmp = 1; + else tmp = timings[i + 1]; + + return interps[i].apply((a-timings[i])/(tmp - timings[i])); + } + } + return interps[timings.length - 1].apply(a); + } +} \ No newline at end of file diff --git a/src/meld/meta/MeldStats.java b/src/meld/meta/MeldStats.java index 19b754c..6e3905f 100644 --- a/src/meld/meta/MeldStats.java +++ b/src/meld/meta/MeldStats.java @@ -3,6 +3,7 @@ import arc.Core; import arc.util.Strings; import meld.fluid.AspectGroup; +import mindustry.Vars; import mindustry.gen.Tex; import mindustry.type.Liquid; import mindustry.ui.Styles; @@ -11,6 +12,12 @@ public class MeldStats { + public static void loadModifications(){ + Vars.content.items().each(c -> { + c.stats.add(Stat.buildCost, c.cost, MeldStatUnit.ticks); + }); + } + public static Stat aspectStats = new Stat("aspect-stats"); diff --git a/src/meld/world/WeatherMath.java b/src/meld/world/WeatherMath.java new file mode 100644 index 0000000..f730336 --- /dev/null +++ b/src/meld/world/WeatherMath.java @@ -0,0 +1,26 @@ +package meld.world; + +import arc.math.geom.Vec2; +import arc.util.Tmp; +import mindustry.gen.Groups; +import mindustry.type.weather.ParticleWeather; + +public class WeatherMath { + public static Vec2 wind = new Vec2(); + + public static Vec2 windDirection(){ + return wind; + }; + + public static void updateWind(){ + Tmp.v1.set(0, 0); + Groups.weather.each(w -> { + if(!(w.weather instanceof ParticleWeather)) return; + ParticleWeather weather = (ParticleWeather) w.weather; + float speed = weather.force * w.intensity; + float windx = w.windVector.x * speed, windy = w.windVector.y * speed; + Tmp.v1.add(windx, windy); + }); + wind.lerpDelta(Tmp.v1, 0.1f); + } +} diff --git a/src/meld/world/WorldUtil.java b/src/meld/world/WorldUtil.java index e4f2daf..4a42173 100644 --- a/src/meld/world/WorldUtil.java +++ b/src/meld/world/WorldUtil.java @@ -3,19 +3,92 @@ import arc.func.Cons; import arc.math.Mathf; import arc.math.geom.Point2; +import arc.struct.ObjectFloatMap; +import arc.struct.ObjectMap; import arc.struct.Seq; +import arc.util.Log; import arc.util.Nullable; import arc.util.Tmp; +import meld.world.blocks.LiquidUtil; +import meld.world.blocks.production.GrindingQuary; +import mindustry.Vars; +import mindustry.content.Fx; +import mindustry.type.Item; +import mindustry.type.ItemStack; import mindustry.world.Block; import mindustry.world.Tile; import mindustry.world.meta.Attribute; +import mindustry.world.modules.ItemModule; import static mindustry.Vars.world; public class WorldUtil { + //Really useful for totalQuarry + static ItemModule module = new ItemModule(); + + static ObjectFloatMap speeds = new ObjectFloatMap<>(); + static Seq tempTiles = new Seq<>(); + public static ItemModule totalQuarry(int x1, int y1, int x2, int y2){ + module.clear(); + + for(int y = y1; y < y2; y++){ + for(int x = x1; x < x2; x++){ + Tile tile = world.tile(x, y); + if(tile == null) continue; + + GrindingQuary.GrinderEntry entry = GrindingQuary.grinderMap.get(tile.floor()); + + while (entry != null){ + for (ItemStack itemStack : entry.output) { + module.add(itemStack.item, itemStack.amount); + } + entry = GrindingQuary.grinderMap.get(entry.floor); + } + } + } + return module; + } + + public static ItemModule totalQuarry(float x, float y, Block block, boolean blockable){ + module.clear(); + + Tile startTile = world.tileWorld(x, y); + if(startTile == null) return module; + startTile.getLinkedTilesAs(block, (tile) -> { + if(tile == null || tile.solid() && blockable && tile.block() != block) return; + + GrindingQuary.GrinderEntry entry = GrindingQuary.grinderMap.get(tile.floor()); + + while (entry != null){ + for (ItemStack itemStack : entry.output) { + module.add(itemStack.item, itemStack.amount); + } + entry = GrindingQuary.grinderMap.get(entry.floor); + } + }); + + return module; + } + public static ObjectFloatMap quarrySpeed(float x, float y, GrindingQuary block){ + speeds.clear(); + + Tile startTile = world.tileWorld(x, y); + if(startTile == null) return speeds; + startTile.getLinkedTilesAs(block, (tile) -> { + if(tile == null) return; + Item item = tile.overlay().itemDrop; + if(item != null) speeds.put(item, speeds.get(item, 0) + block.drillSpeedOverlay(tile)); + + item = tile.floor().itemDrop; + if(item != null) speeds.put(item, speeds.get(item, 0) + block.drillSpeedFloor(tile)); + }); + + return speeds; + } + //Coppied from Block public static float sumAttribute(@Nullable Attribute attr, int x, int y){ if(attr == null) return 0; diff --git a/src/meld/world/blocks/fluid/AspectBomb.java b/src/meld/world/blocks/fluid/AspectBomb.java index 2300af4..ba73d34 100644 --- a/src/meld/world/blocks/fluid/AspectBomb.java +++ b/src/meld/world/blocks/fluid/AspectBomb.java @@ -7,6 +7,7 @@ import arc.math.Mathf; import arc.util.Tmp; import meld.Meld; +import meld.content.MeldBullets; import meld.content.MeldLiquids; import meld.entities.bullet.TransitionBulletType; import mindustry.content.Fx; @@ -19,87 +20,9 @@ public class AspectBomb extends VisualAspectPipe{ public AspectBomb(String name) { super(name); buildTime = 0; - rebuildable = false; + rebuildable = true; - destroyBullet = new TransitionBulletType(){{ - lifetime = 30; - spawnBullets.addAll( - new TransitionBulletType(){{ - fragBullets = 12; - fragLifeMin = 0.5f; - fragBullet = new BasicBulletType(3, 3, Meld.prefix("clump")){{ - lifetime = 30; - - width = 8; - height = 10; - shrinkX = 1; - shrinkY = 0.2f; - - hitEffect = despawnEffect = Fx.none; - - lightRadius = 0; - fragBullets = 2; - - fragBullet = new LiquidBulletType(MeldLiquids.stormingAspect); - }}; - }}, - new TransitionBulletType(){{ - fragBullets = 24; - fragBullet = new BasicBulletType(8, 3, Meld.prefix("clump")){{ - lifetime = 12; - - width = 4; - height = 18; - - hitEffect = despawnEffect = Fx.none; - - lightRadius = 0; - fragBullets = 2; - - fragBullet = new BasicBulletType(8, 7, Meld.prefix("clump")){{ - lifetime = 12; - - width = 2; - height = 12; - - shrinkX = 1; - shrinkY = 0.2f; - - hitEffect = despawnEffect = Fx.none; - - - sticky = true; - - stickyExtraLifetime = 600; - - lightRadius = 0; - }}; - }}; - }} - ); - splashDamage = 500; - splashDamageRadius = 32; - incendAmount = 50; - - hitEffect = new Effect(24, e -> { - Draw.color(MeldLiquids.stormingAspect.color); - Draw.alpha(e.foutpowdown() * 0.3f); - Fill.light(e.x, e.y, 100, e.finpow() * 32, Tmp.c1.set(Tmp.c2.set(MeldLiquids.stormingAspect.color)).a(e.fout()), Tmp.c2.a(0)); - //Fill.circle(e.x, e.y, e.finpow() * 85); - - Drawf.light(e.x, e.y, e.finpow() * 14, MeldLiquids.stormingAspect.color, e.fout()); - - e.scaled(8, e1 -> { - Draw.color(Color.white); - Draw.alpha(e1.foutpowdown() * 0.35f); - Lines.stroke(e1.fin() * 12 + 2); - Lines.circle(e1.x, e1.y, e1.fin() * 18 + 8); - }); - }); - - fragBullets = 4; - fragBullet = new LiquidBulletType(MeldLiquids.stormingAspect); - }}; + destroyBullet = MeldBullets.aspectBombExplosion; destroyBulletSameTeam = false; } diff --git a/src/meld/world/blocks/production/Depot.java b/src/meld/world/blocks/production/Depot.java new file mode 100644 index 0000000..c0b39f2 --- /dev/null +++ b/src/meld/world/blocks/production/Depot.java @@ -0,0 +1,137 @@ +package meld.world.blocks.production; + +import arc.Core; +import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.TextureRegion; +import arc.math.Mathf; +import arc.scene.ui.layout.Table; +import arc.struct.EnumSet; +import arc.util.io.Reads; +import arc.util.io.Writes; +import mindustry.content.Blocks; +import mindustry.gen.Building; +import mindustry.type.Item; +import mindustry.world.Block; +import mindustry.world.Tile; +import mindustry.world.blocks.ItemSelection; +import mindustry.world.blocks.distribution.Router; +import mindustry.world.blocks.storage.StorageBlock; +import mindustry.world.blocks.storage.Unloader; +import mindustry.world.meta.BlockFlag; +import mindustry.world.meta.BlockGroup; +import mindustry.world.meta.Env; + +import static mindustry.Vars.content; + +//A container which outputs only to distribution blocks, helping to filter outputs +public class Depot extends StorageBlock { + public TextureRegion centerRegion; + + public float speed = 1f; + + public Depot(String name) { + super(name); + update = true; + hasItems = true; + configurable = true; + saveConfig = true; + itemCapacity = 0; + noUpdateDisabled = true; + clearOnDoubleTap = true; + unloadable = false; + + config(Item.class, (DepotBuild tile, Item item) -> tile.sortItem = item); + configClear((DepotBuild tile) -> tile.sortItem = null); + } + + @Override + public boolean outputsItems(){ + return true; + } + + @Override + public void load() { + super.load(); + centerRegion = Core.atlas.find(name + "-center"); + } + + public class DepotBuild extends StorageBuild{ + public float time; + public Item sortItem = null; + public Item lastItem; + public Tile lastInput; + + @Override + public void buildConfiguration(Table table){ + ItemSelection.buildTable(block, table, content.items(), () -> sortItem, this::configure, selectionRows, selectionColumns); + } + + @Override + public Item config(){ + return sortItem; + } + + + @Override + public void updateTile(){ + if(lastItem == null && items.any()){ + //branching just for the sake of my sanity here + if(sortItem == null || sortItem == items.first()) lastItem = items.first(); + } + + if(lastItem != null){ + time += 1f / speed * delta(); + Building target = getTileTarget(lastItem, lastInput, false); + + if(target != null && (time >= 1f || !(target.block instanceof Router || target.block.instantTransfer))){ + getTileTarget(lastItem, lastInput, true); + target.handleItem(this, lastItem); + items.remove(lastItem, 1); + lastItem = null; + } + } + } + + public Building getTileTarget(Item item, Tile from, boolean set){ + int counter = rotation; + for(int i = 0; i < proximity.size; i++){ + Building other = proximity.get((i + counter) % proximity.size); + if(set) rotation = ((byte)((rotation + 1) % proximity.size)); + if(other.tile == from && from.block() == Blocks.overflowGate) continue; + if(other.acceptItem(this, item)){ + return other; + } + } + return null; + } + + @Override + public void draw(){ + super.draw(); + + Draw.color(sortItem == null ? Color.clear : sortItem.color); + Draw.rect(centerRegion, x, y); + Draw.color(); + } + + @Override + public void drawSelect(){ + super.drawSelect(); + drawItemSelection(sortItem); + } + + @Override + public void write(Writes write){ + super.write(write); + write.s(sortItem == null ? -1 : sortItem.id); + } + + @Override + public void read(Reads read, byte revision){ + super.read(read, revision); + int id = read.s(); + sortItem = id == -1 ? null : content.item(id); + } + } +} diff --git a/src/meld/world/blocks/production/GrindingQuary.java b/src/meld/world/blocks/production/GrindingQuary.java index f1058d9..58e6dce 100644 --- a/src/meld/world/blocks/production/GrindingQuary.java +++ b/src/meld/world/blocks/production/GrindingQuary.java @@ -1,25 +1,33 @@ package meld.world.blocks.production; +import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Fill; +import arc.graphics.g2d.Lines; import arc.math.Mathf; -import arc.struct.IntMap; -import arc.struct.IntSeq; import arc.struct.ObjectFloatMap; import arc.struct.ObjectMap; +import arc.struct.Seq; +import arc.util.Log; import arc.util.Time; import arc.util.io.Reads; import arc.util.io.Writes; +import meld.graphics.Draww; +import meld.world.WorldUtil; import meld.world.blocks.io.BlockIO; import meld.world.util.ItemLogic; import mindustry.Vars; -import mindustry.content.Blocks; import mindustry.gen.Building; +import mindustry.graphics.Drawf; +import mindustry.graphics.Pal; import mindustry.type.Item; import mindustry.type.ItemStack; -import mindustry.type.weapons.BuildWeapon; import mindustry.world.Block; import mindustry.world.Tile; import mindustry.world.blocks.environment.Floor; +import mindustry.world.blocks.storage.StorageBlock; import mindustry.world.consumers.Consume; +import mindustry.world.modules.ItemModule; public class GrindingQuary extends Block { @@ -27,6 +35,8 @@ public class GrindingQuary extends Block { public static ObjectFloatMap drillMultipliers = new ObjectFloatMap<>(); + public float drillSpeed = 0.25f; + public int targetTimer = timers++; public float itemDuration = 60; @@ -39,6 +49,84 @@ public GrindingQuary(String name) { itemCapacity = 50; } + public Seq valid = new Seq<>(), overlay = new Seq<>(); + + @Override + public void drawOverlay(float x, float y, int rotation) { + super.drawOverlay(x, y, rotation); + + float drawx = x, drawy = y - (size * Vars.tilesize)/2f - 2; + + Tile start = Vars.world.tileWorld(x, y); + + if(start != null){ + valid.clear(); + overlay.clear(); + start.getLinkedTilesAs(this, tile -> { + if(tile != null){ + if(tile.solid() && tile.block() != this){ + Draw.color(Pal.health); + Draw.alpha(0.5f); + Fill.square(tile.worldx(), tile.worldy(), Vars.tilesize/2f); + return; + } + if(grinderMap.containsKey(tile.floor())){ + valid.add(tile); + } + if(tile.overlay().itemDrop != null){ + overlay.add(tile); + } + } + }); + //Draw this in stages + valid.each(tile -> { + Draw.color(Pal.accent); + Draw.alpha(0.5f); + Fill.square(tile.worldx(), tile.worldy(), Vars.tilesize/2f); + + }); + + Lines.stroke(3.75f, Pal.gray); + Lines.square(x, y, size * Vars.tilesize/2f + 1.25f); + Lines.stroke(1.25f, Pal.accent); + Lines.square(x, y, size * Vars.tilesize/2f); + + valid.each(tile -> { + Draw.color(Color.white); + float prog = Mathf.absin(Time.time/30 + (tile.x + tile.y) * Mathf.pi/3, 1, 1); + float prog2 = Time.time/240 + (tile.x + tile.y) * Mathf.pi % 1; + Draw.alpha(0.5f + 0.5f * prog); + Draw.rect(tile.floor().region, tile.worldx(), tile.worldy() -2 + prog * 4, 4 + 4 * prog, 4 + 4 * Mathf.sin(prog), -15 + 30 * prog + 360 * prog2); + }); + overlay.each(tile -> { + if(tile.overlay().itemDrop != null){ + Draw.color(Color.white); + Draw.rect(tile.overlay().itemDrop.fullIcon, tile.worldx(), tile.worldy()); + } + }); + } + + Drawf.text(); + ItemModule depositItems = WorldUtil.totalQuarry(x, y, this, true); + for (Item item : Vars.content.items()) { + float amount = depositItems.get(item); + if(amount == 0) continue; + Draww.itemText(item.localizedName + ": " + amount, drawx, drawy, item); + + drawy -= 10; + } + + drawy = y + (size * Vars.tilesize)/2f + 2; + ObjectFloatMap drillSpeeds = WorldUtil.quarrySpeed(x, y, this); + for (Item item : Vars.content.items()) { + float amount = drillSpeeds.get(item, 0); + if(amount == 0) continue; + Draww.itemText(item.localizedName + ": " + amount + "/s", drawx, drawy, item); + + drawy += 10; + } + } + public static class GrinderEntry{ public GrinderEntry(float time, Block tile){ @@ -64,11 +152,11 @@ public GrinderEntry(float time, Floor floor, ItemStack[] output){ //Returned in items/seccond public float drillSpeedFloor(Tile tile){ if(tile == null || tile.floor().itemDrop == null) return 0; - return 0.25f; + return drillMultipliers.get(tile.floor().itemDrop, 1) * drillSpeed; } public float drillSpeedOverlay(Tile tile){ if(tile == null || tile.overlay().itemDrop == null) return 0; - return 0.25f; + return drillMultipliers.get(tile.overlay().itemDrop, 1) * drillSpeed; } public class GrindingQuaryBuild extends Building{ @@ -77,6 +165,13 @@ public class GrindingQuaryBuild extends Building{ public GrinderEntry entry; public float boostAmount = 1; + public Seq nearbyDepots = new Seq<>(); + + @Override + public void onProximityAdded() { + super.onProximityAdded(); + } + //Timer used to determine when the current batch of items expires public float progress = 0; @@ -84,7 +179,10 @@ public class GrindingQuaryBuild extends Building{ @Override public boolean shouldConsume() { - return itemRates.size > 0 || target != null; + for (Item key : itemRates.keys()) { + if(itemRates.get(key, 0) * drillMultipliers.get(key, 1) > 0 && acceptItem(this, key)) return true; + } + return target != null; } @Override @@ -107,6 +205,12 @@ public void update(){ @Override public void onProximityUpdate() { super.onProximityUpdate(); + + nearbyDepots.clear(); + proximity.each(b -> { + if(b instanceof Depot.DepotBuild) nearbyDepots.add(b); + }); + itemRates.clear(); tile.getLinkedTiles(t -> { @@ -128,6 +232,24 @@ public void onProximityUpdate() { }); } + @Override + public boolean acceptItem(Building source, Item item) { + if((source instanceof Depot.DepotBuild)) return false; + if(source == this){ + return nearbyDepots.size > 0 ? nearbyDepots.find(b -> b.acceptItem(source, item)) != null : this.items.get(item) < this.getMaximumAccepted(item); + } + return this.block.consumesItem(item) && this.items.get(item) < this.getMaximumAccepted(item); + } + + @Override + public void handleItem(Building source, Item item) { + if(source == this && nearbyDepots.size > 0){ + nearbyDepots.find(b -> b.acceptItem(source, item)).handleItem(source, item); + return; + } + super.handleItem(source, item); + } + public void updateDrilling(){ for(Item item: itemRates.keys().toArray()){ @@ -135,7 +257,7 @@ public void updateDrilling(){ //Note that productionRates is in items/SECCOND, not tick, so we divide by 60 current = Mathf.clamp(current + itemRates.get(item, 0)/60f * drillMultipliers.get(item, 1) * edelta() * boostAmount, 0, 1); - if(current >= 1 && items.get(item) < itemCapacity){ + if(current >= 1 && acceptItem(this, item)){ current = 0; handleItem(this, item); } diff --git a/src/meld/world/blocks/production/SingleBeamDrill.java b/src/meld/world/blocks/production/SingleBeamDrill.java index faadb00..1864ebf 100644 --- a/src/meld/world/blocks/production/SingleBeamDrill.java +++ b/src/meld/world/blocks/production/SingleBeamDrill.java @@ -1,6 +1,8 @@ package meld.world.blocks.production; import arc.graphics.Color; +import arc.graphics.g2d.Draw; +import arc.graphics.g2d.Lines; import arc.math.Mathf; import arc.math.geom.Geometry; import arc.math.geom.Point2; @@ -13,6 +15,7 @@ import arc.util.io.Reads; import arc.util.io.Writes; import meld.content.MeldBullets; +import meld.graphics.Draww; import mindustry.Vars; import mindustry.content.Fx; import mindustry.entities.Damage; @@ -20,13 +23,19 @@ import mindustry.entities.bullet.BulletType; import mindustry.game.Team; import mindustry.gen.Building; +import mindustry.gen.Icon; import mindustry.gen.Sounds; +import mindustry.graphics.Drawf; +import mindustry.graphics.Pal; import mindustry.type.Item; import mindustry.world.Block; import mindustry.world.Tile; import mindustry.world.blocks.production.BeamDrill; +import mindustry.world.blocks.production.Drill; import mindustry.world.meta.BlockFlag; +import static mindustry.Vars.iconSmall; + //HAS TO be an odd number in size. public class SingleBeamDrill extends Block { @@ -65,6 +74,55 @@ public SingleBeamDrill(String name) { selfDamage = 400; } + @Override + public void drawOverlay(float x, float y, int rotation) { + Item found = null; + int unusedTiles = range + 1; + + int offset = (size + 1)/2; + Point2 dir = Geometry.d4(rotation); + + int tx = (int) x/Vars.tilesize, ty = (int) y/Vars.tilesize; + Tile other = null; + + for(int i = 0; i < range; i++) { + unusedTiles--; + int j = i + offset; + other = Vars.world.tile(tx + dir.x * j, ty + dir.y * j); + if(other.solid()){ + found = other.block().itemDrop; + int mined = (int)((baseProductivity + distanceProductivity * unusedTiles) * itemMultipliers.get(found, 1)); + + if(found != null){ + Item current = transformItems.get(found, found); + Draww.itemText(mined/drillTime * 60 + " " + current.localizedName + "/s", x, y + Vars.tilesize * size/2f, current); + if(found != current){ + float drawy = y - Vars.tilesize * size/2f; + float s = iconSmall / 4f; + float textWidth = Draww.drawTextUnderlined("->", x, drawy, Pal.accent); + Draw.mixcol(Color.darkGray, 1f); + Draw.rect(found.fullIcon, x - textWidth, drawy - 1, s, s); + Draw.rect(current.fullIcon, x + textWidth, drawy - 1, s, s); + Draw.mixcol(); + Draw.rect(found.fullIcon, x - textWidth, drawy, s, s); + Draw.rect(current.fullIcon, x + textWidth, drawy, s, s); + } + } + + Lines.stroke(3); + Draw.color(Pal.gray); + Lines.square(other.worldx(), other.worldy(), Vars.tilesize/2f + 2 + 1); + Lines.stroke(1); + Draw.color(Pal.accent); + Lines.square(other.worldx(), other.worldy(), Vars.tilesize/2f + 2); + + Drawf.dashLine(Pal.accent, x, y, other.worldx(), other.worldy()); + return; + } + } + Drawf.dashLine(Pal.accent, x, y, x + dir.x * range * Vars.tilesize, y + dir.y * range * Vars.tilesize); + } + public class SingleBeamBuild extends Building{ public float time; diff --git a/src/meld/world/blocks/turrets/MeldItemTurret.java b/src/meld/world/blocks/turrets/MeldItemTurret.java index a7ac29f..9c361e7 100644 --- a/src/meld/world/blocks/turrets/MeldItemTurret.java +++ b/src/meld/world/blocks/turrets/MeldItemTurret.java @@ -17,22 +17,4 @@ public class MeldItemTurret extends ItemTurret { public MeldItemTurret(String name) { super(name); } - - @Override - public void drawOverlay(float x, float y, int rotation) { - super.drawOverlay(x, y, rotation); - - Draw.draw(Layer.fogOfWar + 2, () -> { - Draw.z(Layer.fogOfWar + 2); - Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range, Pal.placing); - - if(fogRadiusMultiplier < 0.99f && state.rules.fog){ - Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, range * fogRadiusMultiplier, Pal.lightishGray); - } - - if(drawMinRange){ - Drawf.dashCircle(x * tilesize + offset, y * tilesize + offset, minRange, Pal.placing); - } - }); - } } diff --git a/src/meld/world/blocks/units/UnitLogisticsPad.java b/src/meld/world/blocks/units/UnitLogisticsPad.java new file mode 100644 index 0000000..c898d42 --- /dev/null +++ b/src/meld/world/blocks/units/UnitLogisticsPad.java @@ -0,0 +1,235 @@ +package meld.world.blocks.units; + +import arc.Core; +import arc.graphics.*; +import arc.graphics.g2d.*; +import arc.math.Mathf; +import arc.scene.ui.layout.*; +import arc.struct.*; +import arc.util.*; +import arc.util.io.*; +import arc.util.pooling.Pool.*; +import mindustry.Vars; +import mindustry.entities.units.*; +import mindustry.gen.*; +import mindustry.graphics.Drawf; +import mindustry.graphics.Pal; +import mindustry.input.DesktopInput; +import mindustry.input.InputHandler; +import mindustry.type.*; +import mindustry.world.*; +import mindustry.world.blocks.*; +import mindustry.world.blocks.storage.CoreBlock; +import mindustry.world.meta.*; + +import static mindustry.Vars.*; + +//Attempts to load balance a specific item on a unit to a specific amount, managing the items from a nearby storage +public class UnitLogisticsPad extends Block { + + public TextureRegion centerRegion; + + @Override + public void load() { + super.load(); + centerRegion = Core.atlas.find(name + "-center", Core.atlas.find("unloader-center")); + } + + public float speed = 1f; + public float range = -1; + + /** Cached result of content.items() */ + static Item[] allItems; + + public UnitLogisticsPad(String name){ + super(name); + update = true; + solid = true; + health = 70; + hasItems = true; + configurable = true; + saveConfig = true; + itemCapacity = 0; + noUpdateDisabled = true; + clearOnDoubleTap = true; + unloadable = false; + + config(Item.class, (UnloadingPadBuild tile, Item item) -> tile.sortItem = item); + config(Float.class, (UnloadingPadBuild tile, Float value) -> tile.targetPercent = value); + configClear((UnloadingPadBuild tile) -> tile.sortItem = null); + } + + @Override + public void init(){ + super.init(); + + allItems = content.items().toArray(Item.class); + if(range == -1) range = size * tilesize; + } + + @Override + public void setStats(){ + super.setStats(); + stats.add(Stat.speed, 60f / speed, StatUnit.itemsSecond); + } + + @Override + public void drawPlanConfig(BuildPlan plan, Eachable list){ + drawPlanConfigCenter(plan, plan.config, "unloader-center"); + } + + @Override + public void drawOverlay(float x, float y, int rotation) { + x += offset; + y += offset; + + Drawf.dashSquare(Pal.accent, x, y, range); + } + + @Override + public void setBars(){ + super.setBars(); + removeBar("items"); + } + + public class UnloadingPadBuild extends Building{ + + public float targetPercent; + + public Item sortItem; + public float unloadTimer; + public Seq candidates; + public Seq loadTargets = Seq.with(); + + @Override + public void onProximityUpdate() { + super.onProximityUpdate(); + rebuildTargets(); + } + + public void rebuildTargets(){ + loadTargets.clear(); + proximity.each(b -> { + if(b.interactable(team) && b.items != null){ + loadTargets.add(b); + } + }); + + loadTargets.sort(b -> b.block instanceof CoreBlock ? 0 : 1); + } + + @Override + public void updateTile() { + super.updateTile(); + unload(); + } + + public void unload(){ + unloadTimer += Time.delta; + if (unloadTimer >= 60) { + candidates = Groups.unit.intersect(x - range/2, y - range/2, range, range); + if(candidates.size == 0) return; + unloadTimer %= 60; + + //Loop through each unit over the pad + candidates.each(unit -> { + //Pls don't load units with items already, thanks + if(unit.hasItem() && sortItem != null && unit.item() != sortItem) return; + + Item item = unit.stack.amount == 0 ? sortItem : unit.item(); + if(item == null) return; + + //How many items to remove from the unit. If it's negative, how many items to load into the unit instead. + int transferAmount = unit.stack.amount - (int) (unit.type.itemCapacity * targetPercent); + + if(transferAmount == 0) return; + + //If we have items to unload, loop through nearby buildings and try to push into them + if(transferAmount > 0){ + //How many items should be left in the unit + float target = unit.stack.amount - transferAmount; + + loadTargets.each(build -> { + + //Get the minimum between the items we can push, and the amount to deposit + int transfering = Math.min(build.getMaximumAccepted(item) - build.items.get(item), (int) Mathf.maxZero(unit.stack.amount - target)); + + //No more items left to transport :D + if(transfering == 0) return; + + Call.transferItemTo(unit, item, transfering, unit.x, unit.y, build); + }); + + return; + } + + //Treat transfer amount as the amount of items we want the unit to gain from its initial amount + transferAmount *= -1; + + //The max amount of items the unit will hold + float target = unit.stack.amount + transferAmount; + + loadTargets.each(build -> { + + //Get the minimum between the items we can push, and the amount to deposit + int transfering = Math.min(build.items.get(item), (int) Mathf.maxZero(target - unit.stack.amount)); + + //No more items left to transport :D + if(transfering == 0) return; + InputHandler.takeItems(build, item,transfering, unit); + }); + + }); + } + } + + @Override + public void draw(){ + super.draw(); + + Draw.color(sortItem == null ? Color.clear : sortItem.color); + Draw.rect(centerRegion, x, y); + Draw.color(); + } + + @Override + public void drawSelect(){ + super.drawSelect(); + drawItemSelection(sortItem); + } + + @Override + public void buildConfiguration(Table table){ + ItemSelection.buildTable(block, table, content.items(), () -> sortItem, this::configure, selectionRows, selectionColumns); + table.row(); + table.slider(0, 1, 0.1f, targetPercent, Vars.net.active(), this::configure).size(240, 40f); + } + + @Override + public Item config(){ + return sortItem; + } + + @Override + public byte version(){ + return 1; + } + + @Override + public void write(Writes write){ + super.write(write); + write.i(sortItem == null ? -1 : sortItem.id); + write.f(targetPercent); + write.f(unloadTimer); + } + + @Override + public void read(Reads read, byte revision){ + super.read(read, revision); + id = read.i(); + sortItem = id == -1 ? null : content.item(id); + targetPercent = read.f(); + unloadTimer = read.f(); + } + } +} \ No newline at end of file From 5f9b72043f49f5bb5d8ff7aaf2398c70740ff708 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Wed, 29 Apr 2026 02:06:08 +1000 Subject: [PATCH 15/16] insanity is where -Alpha won't show up in any tab but serpulo now -Cultivator sprites + drawer -hid gunpowder --- assets/bundles/bundle.properties | 5 +- .../meld/cultivator/meld-cultivator-base.png | Bin 0 -> 322 bytes .../meld/cultivator/meld-cultivator-gum.png | Bin 0 -> 744 bytes .../cultivator/meld-cultivator-middle.png | Bin 0 -> 568 bytes .../meld/cultivator/meld-cultivator-top.png | Bin 0 -> 854 bytes .../meld/cultivator/meld-cultivator.png | Bin 0 -> 1245 bytes assets/sprites/items/larval-plating.png | Bin 0 -> 412 bytes src/meld/Meld.java | 14 ++- src/meld/content/MeldBlocks.java | 89 ++++++++++++------ src/meld/content/MeldEnvironment.java | 11 +++ src/meld/content/MeldItems.java | 8 +- src/meld/content/MeldMappings.java | 16 ++++ src/meld/content/MeldUnits.java | 5 +- src/meld/world/CustomExplosions.java | 44 +++++++++ 14 files changed, 148 insertions(+), 44 deletions(-) create mode 100644 assets/sprites/blocks/meld/cultivator/meld-cultivator-base.png create mode 100644 assets/sprites/blocks/meld/cultivator/meld-cultivator-gum.png create mode 100644 assets/sprites/blocks/meld/cultivator/meld-cultivator-middle.png create mode 100644 assets/sprites/blocks/meld/cultivator/meld-cultivator-top.png create mode 100644 assets/sprites/blocks/meld/cultivator/meld-cultivator.png create mode 100644 assets/sprites/items/larval-plating.png create mode 100644 src/meld/world/CustomExplosions.java diff --git a/assets/bundles/bundle.properties b/assets/bundles/bundle.properties index d742c6e..0c1c6a2 100644 --- a/assets/bundles/bundle.properties +++ b/assets/bundles/bundle.properties @@ -775,7 +775,7 @@ item.meld2-stony-particulate.description = Grains of carbon stone. item.meld2-stony-particulate.details = Glued together by the [#ea9ad6]Meld[] using some unknown process. item.meld2-aspect-bomb.name = Aspect Bomb -item.meld2-aspect-bomb.description = Intricate glasswork and silver capsule containing volatile [meld2-storming-aspect]Storming Aspect[].\n\nA primary high explosive usable both as an extremely potent ammo, and for use in industrial mining applications. +item.meld2-aspect-bomb.description = Intricate glasswork and silver capsule containing volatile [meld2-storming-aspect]Storming Aspect[].\n\nA primary high explosive usable both as an extremely potent ammo, and for use in industrial mining applications.\n\nPerfect to load into units for kamikaze runs. item.meld2-aspect-bomb.details = Legends of the blue wolf roaming these lands once took an entire crystalline fortification down... with just aspect and pipes. item.meld2-gunpowder.name = Gunpowder @@ -1336,6 +1336,9 @@ database-tag.aspect-omnipotence = Progress database-tag.aspect-vita = Vita database-tag.heavy-industry = Heavy Industry +database-tag.arsenal = Arsenal +database-tag.meldy = Meldy +database-tag.environment = Environment settings.meld-title = Meld Settings settings.meld-experimental = Experimental Settings diff --git a/assets/sprites/blocks/meld/cultivator/meld-cultivator-base.png b/assets/sprites/blocks/meld/cultivator/meld-cultivator-base.png new file mode 100644 index 0000000000000000000000000000000000000000..2b7da2ccd8fc9fd4c33866ebd0068a949a899818 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!Wi-X*q7}lMWc?skg1o(uw0%-?F zukeWI($dl?Y2lmNGcInLUs};OYyOr^$1ZhhWiK&mxRkZ=>ALGbAAbJ-|G)klmRg`5 zfs!D-^l=~blA|C z(CZ)nh0#8q>sj{M8pGM^r+t1}vG3k_`v3taj+@%z_pN#*mvcO?0J@jK)78&qol`;+ E0JKq%bN~PV literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/meld/cultivator/meld-cultivator-gum.png b/assets/sprites/blocks/meld/cultivator/meld-cultivator-gum.png new file mode 100644 index 0000000000000000000000000000000000000000..613289fb8caf80566b29fb1b04d812c59ef29789 GIT binary patch literal 744 zcmVP)Px#Fi=cXMF0Q*KtW1ZSX*^0YULflO>avWvM+!6sg;B?AWnm$Bw@cp~P$8cMRtz-ZB6{;=g5p z7^iG-6NGTSrnvdlz%_1yVz_(_X$Nk@t++nnX#j4xZiANqU~KRaFautsbv~|~y3eOG zKNESauJF+zzDRL;CUD~}w(focRywDvfbhCLlJfgtQ(EKbr{M*0|sXHI|N5zp(1y7?K39OR{e1-D2 zr2n=(&31)~!N4~dGJiraxl;+twxDM?S&aB)pi#j2cELwM1Wo5g!=EZJ2%7nj6qFZg zoec#NzZk@q8~#wBTnm*H%2VSW0R5|LD98`Zn~W}0f`Pn@AL60?=3T!7RM85=%}QNh z#7B;fLFM=Fj`b7E4NRcpL-zv*szDK;5v56*)~G0m;miUI#nYb?uzza_g22LX#bB2m zWDr(}(Szv@13$WfBp}b;aEbXzfeolo@*q?)!1=>l5)cC|R>m)5V1gg_ffWI&TL7!EjQ_<2hCw=sXmjvYJx ad;9`mErKfo%7#Gz0000ALGbAAbJ-|G)klmRg`5 zfs!Dk4@ubDPLYv$xX7$={ zzRNJRgY2XtSMXu9#2$@t^jgK>|ibb|M_<7Vz|f}TGJ(68#vRl55&2aGJY@e78T^!@hFVNXLs0-OTxXHNk=|1 zsbwtqm|r$k!Ifc=gN}N_cDZ9L6*<#Bcq#Gp_w%+s@W|Qm$LmM%*2*8OY0MkzPS^Y| zTVH?p*8ZpO{%0Kcf3x}j;odyvj2Ua$j=VRCS&*-ABDZ9BMUV?H1{pkE{an^LB{Ts5 DbbSCi literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/meld/cultivator/meld-cultivator-top.png b/assets/sprites/blocks/meld/cultivator/meld-cultivator-top.png new file mode 100644 index 0000000000000000000000000000000000000000..9023888828fdcd41356cf8d2b04d41b8535a2318 GIT binary patch literal 854 zcmV-c1F8IpP)Px#Fi=cXMF0Q*KtW1ZSX*^y-}pK+5jf?UY1twJ*nIR%ehI06{PUz7&1uVSHp`J zCgG+6QuxL2lJx_>G*yto&xURk8E_K;QNFR%07iQQZgLJ9jG+b#XA|cq*km0v7()%# zB11~dupT15g$84&!CGWUi6O;d<0FGH)L<<#q{NWokn($jG1O3-5-i3Swa!C>rv}n; zR6yn_KQ7*P0(Vx>8{$Xc5&xV(8sb;r!O3MgCfF_}gTzhXGKOXn4sIK*TSGLLq!$=teV=##)G<4VA(kSYZI8tAPh+I1#sm;zT6g z3Wwb|vy)Bq_vE2I;lp7q6_iZ`)Gbt%4~9Xys5B}3YQV#YuQe(BV!)(hrSP+120t4R ge>KeEuLc7B2dmC;-TyhBm;e9(07*qoM6N<$f?m&gE&u=k literal 0 HcmV?d00001 diff --git a/assets/sprites/blocks/meld/cultivator/meld-cultivator.png b/assets/sprites/blocks/meld/cultivator/meld-cultivator.png new file mode 100644 index 0000000000000000000000000000000000000000..6a4529ce37e43a56d921d3dd87f70757159be0e4 GIT binary patch literal 1245 zcmV<31S0#1P)Px#Fi=cXMF0Q*KtW1ZSX*^6w=J9#HYHTQUNzkNp>Qu6&OKyUK?eUBLj)Q8V)&E6 zNxV=38T@4U({X{H3KfvSkA|iyGw?zHLVnkyfmCe`ypVI$&~<3&Y28WkCt9d?)X;Tk z=zC_ECSh1F8Na87u0uoLGs83qq`ItpX6QOJ^gT07lR&CVdLqjPv(GYwUYkg|) zXn-Pj1yCRPafhH(>k#{W&A4dX8G9-1F-U`!4xbDF^pB< z%Z+`ue%jE2u*D)m8AcTN!ru&p4~EJ=G>k$p429oylwS;~O9E4XVHi*_4AF4N$3fX( z0i!W~qKobjt+UeNF*hMkxNLy9wgj5)?q72h?qArqBgyueQaFno6dj)S)ZYh2_X z7`!BE!I@z;45gF&ncvvKCsaSnz5y8!uFA?NB7f;4w7!`G0z3T?;>$rMC| zT-lUg1;S7pePAdpDKm-iK`?+J7=~7W8w}tNOz@*2H)2LU7r=Uh#dFq4B^rn&7>Xb* z|BD9Aum$Vg+OgYj2Ma<7hI@h~l-K&j{| z&66AWX%^fSgdhy2pw6@31mUQU6#t5VZwrkkl)E>^fb2X?LB4rwklEgr2=He3MIaQd zpdG1j^$W<%Ht5=5@h=M6uS!Z_;jas{!4N=+Wq(MX3&e&^8bTHz6hD66ejN#5C(?X_ z(Sk)qyTQ`}=bYH=fPwUoq9^{mLM%Z%lC=$@0sPbNeCL!P9}2p1=!*uJC^`R8_+>Uo zzEg*ScTK=RBos4NW%Ncv!&&Fmt%k@zx6Pz5YO!T7e|o%lRKK~pS@av*pgq*!>8=qCY9 z5Px$R!KxbR9J=WmMs#(Fc5{e+@KeLK_eLUBe)_Ku^F05DW&5A7dVs0?dhL~6F(29!#q=uCUKst(0sSw { MeldRegions.load(); - + MeldMappings.loadAfter(); }); Events.run(EventType.Trigger.draw, () -> { @@ -51,12 +53,7 @@ public Meld(){ Core.app.post(MeldShaders::load); }); - Events.on(EventType.UnitDestroyEvent.class, e -> { - //We do a lil aspect bombing - if(e.unit.item() == MeldItems.aspectBomb){ - MeldBullets.aspectBombExplosion.create(e.unit, Team.derelict, e.unit.x, e.unit.y, e.unit.rotation); - } - }); + CustomExplosions.load(); } public static String prefix(String in){ @@ -128,12 +125,13 @@ public void loadContent(){ MeldUnits.load(); MeldBlocks.load(); MeldEnvironment.load(); - MeldMappings.load(); MeldPlanets.load(); //Just loads localised names AspectGroup.loadAll(); + //Loaded after all the content + MeldMappings.load(); MeldStats.loadModifications(); Vars.content.blocks().each(b -> { diff --git a/src/meld/content/MeldBlocks.java b/src/meld/content/MeldBlocks.java index 6018843..883b321 100644 --- a/src/meld/content/MeldBlocks.java +++ b/src/meld/content/MeldBlocks.java @@ -9,6 +9,7 @@ import arc.math.Interp; import arc.math.Mathf; import arc.math.geom.Vec2; +import arc.struct.Seq; import arc.util.Tmp; import meld.*; import meld.entities.bullet.OutflowBulletType; @@ -85,6 +86,7 @@ import mindustry.world.consumers.ConsumePower; import mindustry.world.draw.*; import mindustry.world.meta.Attribute; +import mindustry.world.meta.BuildVisibility; import static mindustry.type.ItemStack.with; @@ -2116,6 +2118,22 @@ Category.production, with( boostScale = 1f/9f; displayEfficiencyScale = 9; + drawer = new DrawMulti( + new DrawRegion("-base"){{ + layer = Layer.blockUnder; + }}, + new DrawLiquidTile(MeldLiquids.meld), + new DrawCells(){{ + range = 10; + color = Color.valueOf("9e2e7b"); + particleColorFrom = Color.valueOf("892a6b"); + particleColorTo = Color.valueOf("e5aed7"); + particles = 15; + }}, + new DrawRegion("-gum"), + new DrawRegion("-top") + ); + outputLiquid = new LiquidStack(MeldLiquids.meld, 3); }}; @@ -2406,48 +2424,59 @@ Category.production, with( }}; ammoTypes.put( - MeldLiquids.meld, - new BasicBulletType(){{ - sprite = Meld.prefix("clump"); - speed = 4; - lifetime = 55; - width = 5; - height = 14; + MeldLiquids.meld, + new BasicBulletType(){{ + sprite = Meld.prefix("clump"); + speed = 4; + lifetime = 55; + width = 5; + height = 14; - pierce = true; - pierceBuilding = true; - pierceCap = 2; + pierce = true; + pierceBuilding = true; + pierceCap = 2; - splashDamage = 25; - splashDamageRadius = 25; + splashDamage = 25; + splashDamageRadius = 25; - knockback = 4f; + knockback = 4f; - hitEffect = despawnEffect = Fx.explosion; + hitEffect = despawnEffect = Fx.explosion; - impact = true; + impact = true; - fragBullets = 3; - fragRandomSpread = 45; + fragBullets = 3; + fragRandomSpread = 45; - fragBullet = new BasicBulletType(4, 15, Meld.prefix("clump")){{ - speed = 4; - lifetime = 10; - width = 3; - height = 8; + fragBullet = new BasicBulletType(4, 15, Meld.prefix("clump")){{ + speed = 4; + lifetime = 10; + width = 3; + height = 8; - pierce = true; - pierceBuilding = true; - pierceCap = 2; + pierce = true; + pierceBuilding = true; + pierceCap = 2; - knockback = 4f; + knockback = 4f; - impact = true; + impact = true; - hitEffect = despawnEffect = Fx.none; - }}; - }} + hitEffect = despawnEffect = Fx.none; + }}; + }} ); }}; + + Seq meldBlocks = Seq.with( + meldCannon, meldMortar, + craigCoffer, jillaCoffer, braigCoffer, billaCoffer, + meldCultivator, + pipebox, pipelineBridge, pipelineCrossing, pipelineRouter, + carbonicBarrier, carbonicBarrierLarge, crystalBarrier, crystalBarrierLarge, + meldAmplifier, meldCapsule, meldNode, meldSuppressor + ); + + meldBlocks.each(b -> b.buildVisibility = BuildVisibility.sandboxOnly); } } diff --git a/src/meld/content/MeldEnvironment.java b/src/meld/content/MeldEnvironment.java index db62290..18245c7 100644 --- a/src/meld/content/MeldEnvironment.java +++ b/src/meld/content/MeldEnvironment.java @@ -468,6 +468,8 @@ public static void load(){ sandstonePillar = new SupportPillar("sandstone-pillar"){{ requirements(Category.effect, ItemStack.with(MeldItems.debris, 500)); + buildVisibility = BuildVisibility.sandboxOnly; + mapColor = Color.black; }}; @@ -624,6 +626,8 @@ public static void load(){ vitricWeave = new Prop("vitric-weave"){{ requirements(Category.effect, ItemStack.with(MeldItems.dissonitre, 5, MeldItems.vitricMesh, 24)); + buildVisibility = BuildVisibility.sandboxOnly; + solid = false; alwaysReplace = false; @@ -658,6 +662,13 @@ public static void load(){ customShadow = true; }}; + Seq meldProps = Seq.with(sandstonePillar, meldCluster, meldClusterLarge, meldMetalStick, meldProtrusion, meldPools, meldCrystal, + dissonitreCluster, vitricWeave, + mixedCarbonicBoulder, + pillowGlintCluster, + earthenResonarumCluster, + iampsiGemstone, quartzSpikes); + meldProps.each(f -> f.databaseTag = "environment"); Seq meldFloors = Seq.with(meldSwampland, meldTrenchland, meldHadaland, meldCrystalScattered, sandMeld, redsandMeld, diff --git a/src/meld/content/MeldItems.java b/src/meld/content/MeldItems.java index 1df0265..23a0f4c 100644 --- a/src/meld/content/MeldItems.java +++ b/src/meld/content/MeldItems.java @@ -103,7 +103,9 @@ public static void load(){ likestoneSediments = new Item("likestone-sediments", Color.valueOf("5b704c")){{}}; - gunpowder = new Item("gunpowder"); + gunpowder = new Item("gunpowder"){{ + hidden = true; + }}; aspectPipe = new Item("aspect-pipe", Color.valueOf("716a56")){{ @@ -115,5 +117,9 @@ public static void load(){ Seq heavyIndustry = Seq.with(tenbris, motis, shadesteel, elnarDust, annealedSilver, glassMallows, iampsi, quartzStrata, likestoneSediments, cruciblePlating, aspectPipe); heavyIndustry.each(i -> i.databaseTag = "heavy-industry"); + Seq arsenal = Seq.with(aspectBomb, gunpowder); + arsenal.each(i -> i.databaseTag = "arsenal"); + Seq meldological = Seq.with(meldShard, larvalPlating, stonyParticulate); + meldological.each(i -> i.databaseTag = "meldy"); }; } diff --git a/src/meld/content/MeldMappings.java b/src/meld/content/MeldMappings.java index 7a147d2..5aea3aa 100644 --- a/src/meld/content/MeldMappings.java +++ b/src/meld/content/MeldMappings.java @@ -2,6 +2,8 @@ import meld.world.blocks.production.GrindingQuary; import meld.world.blocks.production.GrindingQuary.GrinderEntry; +import mindustry.content.Planets; +import mindustry.content.UnitTypes; import mindustry.type.ItemStack; import static meld.content.MeldEnvironment.*; @@ -31,5 +33,19 @@ meldCrystalFloor, new GrinderEntry(720, meldCrystalScattered, with(MeldItems.mel blood.canStayOn.addAll(nectar, ichor, ooze); ooze.canStayOn.addAll(meld, nectar, ichor, ooze); ichor.canStayOn.addAll(nectar, ichor); + + } + + public static void loadAfter(){ + //SCREW YOU SHADOW THE HEDGE HOG + //IS THAT AR EFRENCE TO HEDGE HEHJEYSON MEWLD REAL- help + UnitTypes.alpha.shownPlanets.add(Planets.serpulo); + UnitTypes.alpha.shownPlanets.remove(MeldPlanets.ikaru); + + //I CAST THEEEEEEEEEEEEEEEEEEEEEEEEEEE + //HAHAHAHAHAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + UnitTypes.alpha.databaseTabs.clear(); + UnitTypes.alpha.postInit(); + } } diff --git a/src/meld/content/MeldUnits.java b/src/meld/content/MeldUnits.java index 7b438b2..9a8dd86 100644 --- a/src/meld/content/MeldUnits.java +++ b/src/meld/content/MeldUnits.java @@ -26,10 +26,7 @@ import meld.ui.MeldSettings; import mindustry.Vars; import mindustry.ai.types.HugAI; -import mindustry.content.Blocks; -import mindustry.content.Fx; -import mindustry.content.Items; -import mindustry.content.StatusEffects; +import mindustry.content.*; import mindustry.entities.Effect; import mindustry.entities.abilities.RegenAbility; import mindustry.entities.abilities.StatusFieldAbility; diff --git a/src/meld/world/CustomExplosions.java b/src/meld/world/CustomExplosions.java new file mode 100644 index 0000000..3d01a23 --- /dev/null +++ b/src/meld/world/CustomExplosions.java @@ -0,0 +1,44 @@ +package meld.world; + +import arc.Core; +import arc.Events; +import arc.math.Mathf; +import meld.content.MeldBullets; +import meld.content.MeldItems; +import mindustry.Vars; +import mindustry.game.EventType; +import mindustry.game.Team; +import mindustry.gen.Building; +import mindustry.gen.Teamc; + +public class CustomExplosions { + public static void load(){ + + Events.on(EventType.UnitDestroyEvent.class, e -> { + //We do a lil aspect bombing + if(e.unit.item() == MeldItems.aspectBomb){ + aspectBomb(e.unit.x, e.unit.y, e.unit.stack.amount, e.unit); + } + }); + + Events.on(EventType.BlockDestroyEvent.class, e -> { + //We do a lil aspect bombing + Building b = e.tile.build; + if(b.items != null && b.items.has(MeldItems.aspectBomb)){ + aspectBomb(b.x, b.y, b.items.get(MeldItems.aspectBomb), b); + } + }); + } + + public static void aspectBomb(float x, float y, float amount, Teamc owner){ + for(int i = 0; i < Mathf.floor(amount/50); i++){ + MeldBullets.aspectBombExplosion.create(owner, Team.derelict, x, y, 0); + } + for(int i = 0; i < Math.min(amount * 3, 24); i++){ + MeldBullets.bombShrapnel.create(owner, Team.derelict, x, y, Mathf.random(360)); + } + for(int i = 0; i < Math.min(amount * 2, 32); i++){ + MeldBullets.bombShrapnelAspect.create(owner, Team.derelict, x, y, Mathf.random(360)); + } + } +} From b99eb657eae53d26d20086cc66b2fff10f4f07d7 Mon Sep 17 00:00:00 2001 From: Sh1p*nfire Date: Wed, 29 Apr 2026 02:06:48 +1000 Subject: [PATCH 16/16] I just realised I broke backwards compat so im calling it gameplay test 5, screa it --- mod.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod.hjson b/mod.hjson index 68c74b7..d51d277 100644 --- a/mod.hjson +++ b/mod.hjson @@ -16,7 +16,7 @@ description: "[[]gray]Under scattered gloomy sunlight in the shimmering seas, wi subtitle: "[[]accent]What choice do I have...[[]]" #the mod version -version: gameplay test 4.1 +version: gameplay test 5 #the minimum game build required to run this mod minGameVersion: 154