diff --git a/core/assets-raw/sprites/blocks/attack/nuclear-warhead.png b/core/assets-raw/sprites/blocks/attack/nuclear-warhead.png new file mode 100644 index 0000000000..6963fe4a52 Binary files /dev/null and b/core/assets-raw/sprites/blocks/attack/nuclear-warhead.png differ diff --git a/core/assets-raw/sprites/blocks/drills/beam-drill-top.png b/core/assets-raw/sprites/blocks/drills/beam-drill-top.png new file mode 100644 index 0000000000..fe1557da79 Binary files /dev/null and b/core/assets-raw/sprites/blocks/drills/beam-drill-top.png differ diff --git a/core/assets-raw/sprites/blocks/drills/beam-drill.png b/core/assets-raw/sprites/blocks/drills/beam-drill.png new file mode 100644 index 0000000000..f834ba74d8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/drills/beam-drill.png differ diff --git a/core/assets-raw/sprites/blocks/environment/beryl-wall1.png b/core/assets-raw/sprites/blocks/environment/beryl-wall1.png new file mode 100644 index 0000000000..417efb3025 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/beryl-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/beryl-wall2.png b/core/assets-raw/sprites/blocks/environment/beryl-wall2.png new file mode 100644 index 0000000000..417efb3025 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/beryl-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/bluemat1.png b/core/assets-raw/sprites/blocks/environment/bluemat1.png new file mode 100644 index 0000000000..958ddac3eb Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/bluemat1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/bluemat2.png b/core/assets-raw/sprites/blocks/environment/bluemat2.png new file mode 100644 index 0000000000..13d68ac5f0 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/bluemat2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/bluemat3.png b/core/assets-raw/sprites/blocks/environment/bluemat3.png new file mode 100644 index 0000000000..b10b1b18bd Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/bluemat3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/carbon-wall-large.png b/core/assets-raw/sprites/blocks/environment/carbon-wall-large.png new file mode 100644 index 0000000000..68d0826a9a Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/carbon-wall-large.png differ diff --git a/core/assets-raw/sprites/blocks/environment/carbon-wall1.png b/core/assets-raw/sprites/blocks/environment/carbon-wall1.png new file mode 100644 index 0000000000..d1f7818d17 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/carbon-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/carbon-wall2.png b/core/assets-raw/sprites/blocks/environment/carbon-wall2.png new file mode 100644 index 0000000000..984fb02202 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/carbon-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/coralchunk-cluster0.png b/core/assets-raw/sprites/blocks/environment/coralchunk-cluster0.png new file mode 100644 index 0000000000..c4bb752bdf Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/coralchunk-cluster0.png differ diff --git a/core/assets-raw/sprites/blocks/environment/coralchunk1.png b/core/assets-raw/sprites/blocks/environment/coralchunk1.png new file mode 100644 index 0000000000..3596d0a5e6 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/coralchunk1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/glowblob1.png b/core/assets-raw/sprites/blocks/environment/glowblob1.png new file mode 100644 index 0000000000..4d72f6092e Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/glowblob1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-stone1.png b/core/assets-raw/sprites/blocks/environment/graphitic-stone1.png new file mode 100644 index 0000000000..2f2fceed17 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-stone1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-stone2.png b/core/assets-raw/sprites/blocks/environment/graphitic-stone2.png new file mode 100644 index 0000000000..6feafe5ef0 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-stone2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-stone3.png b/core/assets-raw/sprites/blocks/environment/graphitic-stone3.png new file mode 100644 index 0000000000..3a17479674 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-stone3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-stone4.png b/core/assets-raw/sprites/blocks/environment/graphitic-stone4.png new file mode 100644 index 0000000000..fdf9a8981e Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-stone4.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-wall-large.png b/core/assets-raw/sprites/blocks/environment/graphitic-wall-large.png new file mode 100644 index 0000000000..9e64bad6aa Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-wall-large.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-wall1.png b/core/assets-raw/sprites/blocks/environment/graphitic-wall1.png new file mode 100644 index 0000000000..ddaf262296 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-wall2.png b/core/assets-raw/sprites/blocks/environment/graphitic-wall2.png new file mode 100644 index 0000000000..8303b5dcb9 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/graphitic-wall3.png b/core/assets-raw/sprites/blocks/environment/graphitic-wall3.png new file mode 100644 index 0000000000..9fa475dece Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/graphitic-wall3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/pur-bush-bot.png b/core/assets-raw/sprites/blocks/environment/pur-bush-bot.png new file mode 100644 index 0000000000..5704eb7e9d Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/pur-bush-bot.png differ diff --git a/core/assets-raw/sprites/blocks/environment/pur-bush.png b/core/assets-raw/sprites/blocks/environment/pur-bush.png new file mode 100644 index 0000000000..98b5fafb4b Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/pur-bush.png differ diff --git a/core/assets-raw/sprites/blocks/environment/redmat1.png b/core/assets-raw/sprites/blocks/environment/redmat1.png new file mode 100644 index 0000000000..dc1db300f7 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/redmat1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/redmat2.png b/core/assets-raw/sprites/blocks/environment/redmat2.png new file mode 100644 index 0000000000..e803431ea7 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/redmat2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/redmat3.png b/core/assets-raw/sprites/blocks/environment/redmat3.png new file mode 100644 index 0000000000..19670af4d3 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/redmat3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/redweed2.png b/core/assets-raw/sprites/blocks/environment/redweed2.png new file mode 100644 index 0000000000..30243ffacd Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/redweed2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/redweed3.png b/core/assets-raw/sprites/blocks/environment/redweed3.png new file mode 100644 index 0000000000..a8bec509ee Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/redweed3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/regolith-wall-large.png b/core/assets-raw/sprites/blocks/environment/regolith-wall-large.png new file mode 100644 index 0000000000..08d0acbef8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/regolith-wall-large.png differ diff --git a/core/assets-raw/sprites/blocks/environment/regolith-wall1.png b/core/assets-raw/sprites/blocks/environment/regolith-wall1.png new file mode 100644 index 0000000000..97df020844 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/regolith-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/regolith-wall2.png b/core/assets-raw/sprites/blocks/environment/regolith-wall2.png new file mode 100644 index 0000000000..55991d3c7e Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/regolith-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/regolith1.png b/core/assets-raw/sprites/blocks/environment/regolith1.png new file mode 100644 index 0000000000..fda0ac0bec Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/regolith1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/regolith2.png b/core/assets-raw/sprites/blocks/environment/regolith2.png new file mode 100644 index 0000000000..b0ec788c70 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/regolith2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/regolith3.png b/core/assets-raw/sprites/blocks/environment/regolith3.png new file mode 100644 index 0000000000..51ca3625be Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/regolith3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite-crater1.png b/core/assets-raw/sprites/blocks/environment/rhyolite-crater1.png new file mode 100644 index 0000000000..74be6964eb Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite-crater1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite-crater2.png b/core/assets-raw/sprites/blocks/environment/rhyolite-crater2.png new file mode 100644 index 0000000000..de82ae3394 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite-crater2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite-crater3.png b/core/assets-raw/sprites/blocks/environment/rhyolite-crater3.png new file mode 100644 index 0000000000..f7b2b466b7 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite-crater3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite-wall-large.png b/core/assets-raw/sprites/blocks/environment/rhyolite-wall-large.png new file mode 100644 index 0000000000..d8c6164d73 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite-wall-large.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite-wall1.png b/core/assets-raw/sprites/blocks/environment/rhyolite-wall1.png new file mode 100644 index 0000000000..effb2bbad3 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite-wall2.png b/core/assets-raw/sprites/blocks/environment/rhyolite-wall2.png new file mode 100644 index 0000000000..ed7119e655 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite1.png b/core/assets-raw/sprites/blocks/environment/rhyolite1.png new file mode 100644 index 0000000000..c4a96a0596 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite2.png b/core/assets-raw/sprites/blocks/environment/rhyolite2.png new file mode 100644 index 0000000000..63bb9820f5 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/rhyolite3.png b/core/assets-raw/sprites/blocks/environment/rhyolite3.png new file mode 100644 index 0000000000..d5ef114004 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/rhyolite3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/wall-beryllium1.png b/core/assets-raw/sprites/blocks/environment/wall-beryllium1.png new file mode 100644 index 0000000000..a1dcfcf4e2 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/wall-beryllium1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/wall-beryllium2.png b/core/assets-raw/sprites/blocks/environment/wall-beryllium2.png new file mode 100644 index 0000000000..851a6b5b06 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/wall-beryllium2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/wall-beryllium3.png b/core/assets-raw/sprites/blocks/environment/wall-beryllium3.png new file mode 100644 index 0000000000..b87cd5a088 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/wall-beryllium3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellow-stone-wall-large.png b/core/assets-raw/sprites/blocks/environment/yellow-stone-wall-large.png new file mode 100644 index 0000000000..63a94043ef Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellow-stone-wall-large.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellow-stone-wall1.png b/core/assets-raw/sprites/blocks/environment/yellow-stone-wall1.png new file mode 100644 index 0000000000..3d4582935b Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellow-stone-wall1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellow-stone-wall2.png b/core/assets-raw/sprites/blocks/environment/yellow-stone-wall2.png new file mode 100644 index 0000000000..9da1956f94 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellow-stone-wall2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellow-stone1.png b/core/assets-raw/sprites/blocks/environment/yellow-stone1.png new file mode 100644 index 0000000000..3b32cf651a Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellow-stone1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellow-stone2.png b/core/assets-raw/sprites/blocks/environment/yellow-stone2.png new file mode 100644 index 0000000000..6d91ac5632 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellow-stone2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellow-stone3.png b/core/assets-raw/sprites/blocks/environment/yellow-stone3.png new file mode 100644 index 0000000000..819599a6ce Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellow-stone3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellowcoral-center.png b/core/assets-raw/sprites/blocks/environment/yellowcoral-center.png new file mode 100644 index 0000000000..7ca539b2a9 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellowcoral-center.png differ diff --git a/core/assets-raw/sprites/blocks/environment/yellowcoral.png b/core/assets-raw/sprites/blocks/environment/yellowcoral.png new file mode 100644 index 0000000000..2fa56e35b4 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/yellowcoral.png differ diff --git a/core/assets-raw/sprites/blocks/payload/ballistic-silo.png b/core/assets-raw/sprites/blocks/payload/ballistic-silo.png new file mode 100644 index 0000000000..c70a9079ea Binary files /dev/null and b/core/assets-raw/sprites/blocks/payload/ballistic-silo.png differ diff --git a/core/assets-raw/sprites/blocks/payload/warhead-assembler.png b/core/assets-raw/sprites/blocks/payload/warhead-assembler.png new file mode 100644 index 0000000000..f65306b2f0 Binary files /dev/null and b/core/assets-raw/sprites/blocks/payload/warhead-assembler.png differ diff --git a/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber-bottom.png b/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber-bottom.png new file mode 100644 index 0000000000..8c363b7435 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber-bottom.png differ diff --git a/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber-middle.png b/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber-middle.png new file mode 100644 index 0000000000..da2dc2fea1 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber-middle.png differ diff --git a/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber.png b/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber.png new file mode 100644 index 0000000000..26f8399989 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/cell-synthesis-chamber.png differ diff --git a/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-bottom.png b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-bottom.png new file mode 100644 index 0000000000..8c363b7435 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-bottom.png differ diff --git a/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-top-alt.png b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-top-alt.png new file mode 100644 index 0000000000..f199ba271b Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-top-alt.png differ diff --git a/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-top.png b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-top.png new file mode 100644 index 0000000000..486fd5d123 Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace-top.png differ diff --git a/core/assets-raw/sprites/blocks/production/silicon-arc-furnace.png b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace.png new file mode 100644 index 0000000000..616a346e9f Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/silicon-arc-furnace.png differ diff --git a/core/assets-raw/sprites/blocks/props/redweed1.png b/core/assets-raw/sprites/blocks/props/redweed1.png new file mode 100644 index 0000000000..2953862477 Binary files /dev/null and b/core/assets-raw/sprites/blocks/props/redweed1.png differ diff --git a/core/assets-raw/sprites/items/item-beryllium.png b/core/assets-raw/sprites/items/item-beryllium.png new file mode 100644 index 0000000000..b16182be76 Binary files /dev/null and b/core/assets-raw/sprites/items/item-beryllium.png differ diff --git a/core/assets-raw/sprites/items/item-fissile-matter.png b/core/assets-raw/sprites/items/item-fissile-matter.png new file mode 100644 index 0000000000..119c92732d Binary files /dev/null and b/core/assets-raw/sprites/items/item-fissile-matter.png differ diff --git a/core/assets-raw/sprites/items/liquid-neoplasm.png b/core/assets-raw/sprites/items/liquid-neoplasm.png new file mode 100644 index 0000000000..1df725a9fa Binary files /dev/null and b/core/assets-raw/sprites/items/liquid-neoplasm.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index e918d798aa..990e52f2df 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1045,11 +1045,14 @@ item.blast-compound.name = Blast Compound item.pyratite.name = Pyratite item.metaglass.name = Metaglass item.scrap.name = Scrap +item.fissile-matter.name = Fissile Matter +item.beryllium.name = Beryllium liquid.water.name = Water liquid.slag.name = Slag liquid.oil.name = Oil liquid.cryofluid.name = Cryofluid +liquid.neoplasm.name = Neoplasm unit.dagger.name = Dagger unit.mace.name = Mace diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 552da17570..86d5609eb3 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -334,12 +334,34 @@ 63399=blasted|status-blasted-ui 63398=corroded|status-corroded-ui 63397=disarmed|status-disarmed-ui +63396=rhyolite|block-rhyolite-ui +63395=rhyolite-crater|block-rhyolite-crater-ui +63394=regolith|block-regolith-ui +63393=yellow-stone|block-yellow-stone-ui +63392=redmat|block-redmat-ui +63391=bluemat|block-bluemat-ui +63390=beryl-wall|block-beryl-wall-ui +63389=redweed|block-redweed-ui +63388=pur-bush|block-pur-bush-ui +63387=yellowcoral|block-yellowcoral-ui +63386=coralchunk|block-coralchunk-ui 63385=duct|block-duct-ui +63384=beam-drill|block-beam-drill-ui +63383=beryllium|item-beryllium-ui +63382=fissile-matter|item-fissile-matter-ui +63381=neoplasm|liquid-neoplasm-ui +63380=cell-synthesis-chamber|block-cell-synthesis-chamber-ui +63379=nuclear-warhead|block-nuclear-warhead-ui +63378=warhead-assembler|block-warhead-assembler-ui +63377=ballistic-silo|block-ballistic-silo-ui 63376=repair-turret|block-repair-turret-ui 63375=payload-propulsion-tower|block-payload-propulsion-tower-ui 63374=payload-incinerator|block-payload-incinerator-ui 63373=payload-void|block-payload-void-ui 63372=payload-source|block-payload-source-ui +63371=regolith-wall|block-regolith-wall-ui +63370=rhyolite-wall|block-rhyolite-wall-ui +63369=yellow-stone-wall|block-yellow-stone-wall-ui 63368=retusa|unit-retusa-ui 63367=directional-item-bridge|block-directional-item-bridge-ui 63366=duct-router|block-duct-router-ui @@ -349,5 +371,10 @@ 63362=aegires|unit-aegires-ui 63361=electrified|status-electrified-ui 63360=navanax|unit-navanax-ui +63359=wall-ore-beryllium|block-wall-ore-beryllium-ui +63358=graphitic-stone|block-graphitic-stone-ui +63357=graphitic-wall|block-graphitic-wall-ui +63356=carbon-wall|block-carbon-wall-ui +63355=silicon-arc-smelter|block-silicon-arc-smelter-ui 63354=payload-launch-pad|block-payload-launch-pad-ui 63353=silicon-arc-furnace|block-silicon-arc-furnace-ui diff --git a/core/assets/sprites/caustics.png b/core/assets/sprites/caustics.png new file mode 100644 index 0000000000..69b344adcc Binary files /dev/null and b/core/assets/sprites/caustics.png differ diff --git a/core/assets/sprites/distortAlpha.png b/core/assets/sprites/distortAlpha.png new file mode 100644 index 0000000000..06810a4d71 Binary files /dev/null and b/core/assets/sprites/distortAlpha.png differ diff --git a/core/assets/sprites/rays.png b/core/assets/sprites/rays.png new file mode 100644 index 0000000000..28e281c510 Binary files /dev/null and b/core/assets/sprites/rays.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 0f1a658539..69716edd63 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -37,8 +37,11 @@ public class Blocks implements ContentList{ //environment air, spawn, cliff, deepwater, water, taintedWater, tar, slag, stone, craters, charr, sand, darksand, dirt, mud, ice, snow, darksandTaintedWater, space, - dacite, + dacite, rhyolite, rhyoliteCrater, regolith, yellowStone, redmat, bluemat, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, + redweed, purbush, coralChunk, glowBlob, yellowCoral, + regolithWall, yellowStoneWall, rhyoliteWall, carbonWall, + graphiticStone, iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, shaleBoulder, sandBoulder, daciteBoulder, boulder, snowBoulder, basaltBoulder, grass, salt, metalFloor, metalFloorDamaged, metalFloor2, metalFloor3, metalFloor5, basalt, magmarock, hotrock, snowWall, saltWall, darkPanel1, darkPanel2, darkPanel3, darkPanel4, darkPanel5, darkPanel6, darkMetal, @@ -47,9 +50,14 @@ public class Blocks implements ContentList{ //ores oreCopper, oreLead, oreScrap, oreCoal, oreTitanium, oreThorium, + //wall ores + wallOreBeryl, graphiticWall, + berylWall, //TODO remove? + //crafting - siliconSmelter, siliconCrucible, kiln, graphitePress, plastaniumCompressor, multiPress, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer, + siliconSmelter, siliconCrucible, siliconArcFurnace, kiln, graphitePress, plastaniumCompressor, multiPress, phaseWeaver, surgeSmelter, pyratiteMixer, blastMixer, cryofluidMixer, melter, separator, disassembler, sporePress, pulverizer, incinerator, coalCentrifuge, + cellSynthesisChamber, //sandbox powerSource, powerVoid, itemSource, itemVoid, liquidSource, liquidVoid, payloadVoid, payloadSource, illuminator, @@ -73,6 +81,7 @@ public class Blocks implements ContentList{ //production mechanicalDrill, pneumaticDrill, laserDrill, blastDrill, waterExtractor, oilExtractor, cultivator, + beamDrill, //storage coreShard, coreFoundation, coreNucleus, vault, container, unloader, @@ -93,7 +102,10 @@ public class Blocks implements ContentList{ message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank, //campaign - launchPad, interplanetaryAccelerator, + launchPad, payloadLaunchPad, interplanetaryAccelerator, + + //nuclear? + nuclearWarhead, warheadAssembler, ballisticSilo, //TODO //misc experimental blockForge, blockLoader, blockUnloader @@ -278,6 +290,30 @@ public class Blocks implements ContentList{ dacite = new Floor("dacite"); + rhyolite = new Floor("rhyolite"){{ + attributes.set(Attribute.water, -1f); + }}; + + rhyoliteCrater = new Floor("rhyolite-crater"){{ + attributes.set(Attribute.water, -1f); + blendGroup = rhyolite; + }}; + + regolith = new Floor("regolith"){{ + attributes.set(Attribute.water, -1f); + }}; + + yellowStone = new Floor("yellow-stone"){{ + attributes.set(Attribute.water, -1f); + }}; + + graphiticStone = new Floor("graphitic-stone"){{ + variants = 4; + }}; + + redmat = new Floor("redmat"); + bluemat = new Floor("bluemat"); + grass = new Floor("grass"){{ attributes.set(Attribute.water, 0.1f); }}; @@ -339,6 +375,26 @@ public class Blocks implements ContentList{ basalt.asFloor().wall = darksandWater.asFloor().wall = darksandTaintedWater.asFloor().wall = this; }}; + regolithWall = new StaticWall("regolith-wall"){{ + variants = 2; + regolith.asFloor().wall = this; + }}; + + yellowStoneWall = new StaticWall("yellow-stone-wall"){{ + variants = 2; + yellowStone.asFloor().wall = this; + }}; + + rhyoliteWall = new StaticWall("rhyolite-wall"){{ + variants = 2; + rhyolite.asFloor().wall = rhyoliteCrater.asFloor().wall = this; + }}; + + carbonWall = new StaticWall("carbon-wall"){{ + variants = 2; + graphiticStone.asFloor().wall = this; + }}; + sandWall = new StaticWall("sand-wall"){{ variants = 2; sandWater.asFloor().wall = water.asFloor().wall = deepwater.asFloor().wall = this; @@ -372,6 +428,29 @@ public class Blocks implements ContentList{ variants = 3; }}; + redweed = new Seaweed("redweed"){{ + variants = 3; + }}; + + purbush = new SeaBush("pur-bush"){{ + + }}; + + yellowCoral = new SeaBush("yellowcoral"){{ + lobesMin = 2; + lobesMax = 3; + magMax = 8f; + magMin = 2f; + origin = 0.3f; + spread = 40f; + sclMin = 60f; + sclMax = 100f; + }}; + + coralChunk = new StaticCoralWall("coralchunk"){{ + + }}; + //glowBlob = new Prop("glowblob"){{ // variants = 1; //}}; @@ -482,6 +561,20 @@ public class Blocks implements ContentList{ oreScale = 25.380953f; }}; + //endregion + //region wall ore + + wallOreBeryl = new WallOreBlock(Items.beryllium); + + berylWall = new StaticWall("beryl-wall"){{ + itemDrop = Items.beryllium; + }}; + + graphiticWall = new StaticWall("graphitic-wall"){{ + itemDrop = Items.graphite; + variants = 3; + }}; + //endregion //region crafting @@ -544,6 +637,24 @@ public class Blocks implements ContentList{ consumes.power(4f); }}; + //TODO + siliconArcFurnace = new GenericCrafter("silicon-arc-furnace"){{ + requirements(Category.crafting, with(Items.thorium, 200, Items.metaglass, 120, Items.beryllium, 40, Items.silicon, 80)); + craftEffect = Fx.none; + outputItem = new ItemStack(Items.silicon, 5); + craftTime = 40f; + size = 3; + hasPower = true; + hasLiquids = false; + envEnabled |= Env.space | Env.underwater; + itemCapacity = 30; + drawer = new DrawArcSmelter(); + + //TODO don't use sand? + consumes.items(with(Items.graphite, 1, Items.sand, 4)); + consumes.power(6f); + }}; + kiln = new GenericCrafter("kiln"){{ requirements(Category.crafting, with(Items.copper, 60, Items.graphite, 30, Items.lead, 30)); craftEffect = Fx.smeltsmoke; @@ -741,6 +852,35 @@ public class Blocks implements ContentList{ consumes.power(0.50f); }}; + cellSynthesisChamber = new LiquidConverter("cell-synthesis-chamber"){{ + //TODO booster mechanics? + requirements(Category.crafting, with(Items.thorium, 100, Items.phaseFabric, 120, Items.titanium, 150, Items.surgeAlloy, 70)); + outputLiquid = new LiquidStack(Liquids.neoplasm, 0.4f); + craftTime = 200f; + size = 3; + hasPower = true; + hasItems = true; + hasLiquids = true; + rotate = false; + solid = true; + outputsLiquid = true; + drawer = new DrawCells(){{ + color = Color.valueOf("9e172c"); + particleColorFrom = Color.valueOf("9e172c"); + particleColorTo = Color.valueOf("f98f4a"); + radius = 2.5f; + lifetime = 1400f; + recurrence = 2f; + particles = 20; + range = 3f; + }}; + liquidCapacity = 30f; + + consumes.power(2f); + consumes.items(with(Items.sporePod, 3, Items.phaseFabric, 1)); + consumes.liquid(Liquids.water, 0.8f); + }}; + //endregion //region defense @@ -1033,17 +1173,17 @@ public class Blocks implements ContentList{ //special transport blocks duct = new Duct("duct"){{ - requirements(Category.distribution, BuildVisibility.debugOnly, with(Items.graphite, 5, Items.copper, 5)); + requirements(Category.distribution, with(Items.graphite, 5, Items.copper, 5)); speed = 5f; }}; ductRouter = new DuctRouter("duct-router"){{ - requirements(Category.distribution, BuildVisibility.debugOnly, with(Items.graphite, 10, Items.copper, 5)); + requirements(Category.distribution, with(Items.graphite, 10, Items.copper, 5)); speed = 5f; }}; ductBridge = new DuctBridge("duct-bridge"){{ - requirements(Category.distribution, BuildVisibility.debugOnly, with(Items.graphite, 20, Items.copper, 15)); + requirements(Category.distribution, with(Items.graphite, 20, Items.copper, 15)); }}; //endregion @@ -1356,6 +1496,14 @@ public class Blocks implements ContentList{ consumes.liquid(Liquids.water, 0.15f); }}; + beamDrill = new BeamDrill("beam-drill"){{ + requirements(Category.production, with(Items.copper, 150)); + consumes.power(0.2f); + tier = 4; + size = 2; + range = 4; + }}; + //endregion //region storage @@ -2121,6 +2269,15 @@ public class Blocks implements ContentList{ consumes.power(4f); }}; + //TODO + payloadLaunchPad = new PayloadLaunchPad("payload-launch-pad"){{ + requirements(Category.units, BuildVisibility.debugOnly, ItemStack.with(Items.titanium, 200, Items.silicon, 150, Items.lead, 250, Items.plastanium, 75)); + size = 5; + launchTime = 60f; + hasPower = true; + consumes.power(7f); + }}; + interplanetaryAccelerator = new Accelerator("interplanetary-accelerator"){{ requirements(Category.effect, BuildVisibility.campaignOnly, with(Items.copper, 16000, Items.silicon, 11000, Items.thorium, 13000, Items.titanium, 12000, Items.surgeAlloy, 6000, Items.phaseFabric, 5000)); researchCostMultiplier = 0.1f; @@ -2131,6 +2288,23 @@ public class Blocks implements ContentList{ health = size * size * 80; }}; + nuclearWarhead = new NuclearWarhead("nuclear-warhead"){{ + requirements(Category.crafting, BuildVisibility.debugOnly, with(Items.thorium, 40)); + size = 2; + }}; + + warheadAssembler = new SingleBlockProducer("warhead-assembler"){{ + requirements(Category.crafting, BuildVisibility.debugOnly, with(Items.thorium, 100)); + result = nuclearWarhead; + size = 3; + buildSpeed = 0.3f; + }}; + + ballisticSilo = new BallisticSilo("ballistic-silo"){{ + requirements(Category.crafting, BuildVisibility.debugOnly, with(Items.thorium, 100)); + size = 5; + }}; + //endregion campaign //region logic diff --git a/core/src/mindustry/content/Items.java b/core/src/mindustry/content/Items.java index 360a965c45..05633d50a8 100644 --- a/core/src/mindustry/content/Items.java +++ b/core/src/mindustry/content/Items.java @@ -7,7 +7,8 @@ import mindustry.type.*; public class Items implements ContentList{ public static Item scrap, copper, lead, graphite, coal, titanium, thorium, silicon, plastanium, - phaseFabric, surgeAlloy, sporePod, sand, blastCompound, pyratite, metaglass; + phaseFabric, surgeAlloy, sporePod, sand, blastCompound, pyratite, metaglass, + beryllium, fissileMatter; @Override public void load(){ @@ -91,5 +92,15 @@ public class Items implements ContentList{ flammability = 1.4f; explosiveness = 0.4f; }}; + + beryllium = new Item("beryllium", Color.valueOf("3a8f64")){{ + hardness = 4; + cost = 1.3f; + }}; + + fissileMatter = new Item("fissile-matter", Color.valueOf("536631")){{ + hardness = 4; + radioactivity = 1.5f; + }}; } } diff --git a/core/src/mindustry/content/Liquids.java b/core/src/mindustry/content/Liquids.java index 664a9362ba..67a65757c6 100644 --- a/core/src/mindustry/content/Liquids.java +++ b/core/src/mindustry/content/Liquids.java @@ -5,7 +5,7 @@ import mindustry.ctype.*; import mindustry.type.*; public class Liquids implements ContentList{ - public static Liquid water, slag, oil, cryofluid; + public static Liquid water, slag, oil, cryofluid, neoplasm, rovazide; @Override public void load(){ @@ -38,5 +38,17 @@ public class Liquids implements ContentList{ effect = StatusEffects.freezing; lightColor = Color.valueOf("0097f5").a(0.2f); }}; + + neoplasm = new Liquid("neoplasm", Color.valueOf("e05438")){{ + heatCapacity = 0.4f; + temperature = 0.54f; + viscosity = 0.65f; + flammability = 0.1f; + }}; + + //rovazide = new Liquid("rovafuel", Color.valueOf("9dde68")){{ + // flammability = 1.5f; + // explosiveness = 3f; + //}}; } } diff --git a/core/src/mindustry/content/Planets.java b/core/src/mindustry/content/Planets.java index 7134a6ef28..f52334417c 100644 --- a/core/src/mindustry/content/Planets.java +++ b/core/src/mindustry/content/Planets.java @@ -9,6 +9,8 @@ import mindustry.type.*; public class Planets implements ContentList{ public static Planet sun, + erekir, + tantros, serpulo; @Override @@ -30,6 +32,25 @@ public class Planets implements ContentList{ ); }}; + erekir = new Planet("erekir", sun, 2, 1){{ + generator = new ErekirPlanetGenerator(); + meshLoader = () -> new HexMesh(this, 4); + atmosphereColor = Color.valueOf("f07218"); + startSector = 10; + atmosphereRadIn = 0.02f; + atmosphereRadOut = 0.3f; + tidalLock = true; + }}; + + tantros = new Planet("tantros", sun, 2, 1){{ + generator = new TantrosPlanetGenerator(); + meshLoader = () -> new HexMesh(this, 4); + atmosphereColor = Color.valueOf("3db899"); + startSector = 10; + atmosphereRadIn = -0.01f; + atmosphereRadOut = 0.3f; + }}; + serpulo = new Planet("serpulo", sun, 3, 1){{ generator = new SerpuloPlanetGenerator(); meshLoader = () -> new HexMesh(this, 6); diff --git a/core/src/mindustry/graphics/EnvRenderers.java b/core/src/mindustry/graphics/EnvRenderers.java index bc669b56ef..6bd42dfc42 100644 --- a/core/src/mindustry/graphics/EnvRenderers.java +++ b/core/src/mindustry/graphics/EnvRenderers.java @@ -1,8 +1,95 @@ package mindustry.graphics; +import arc.*; +import arc.graphics.*; +import arc.graphics.Texture.*; +import arc.graphics.g2d.*; +import arc.math.*; +import arc.util.*; +import mindustry.type.*; +import mindustry.world.meta.*; + +import static mindustry.Vars.*; + public class EnvRenderers{ public static void init(){ + Color waterColor = Color.valueOf("353982"); + Rand rand = new Rand(); + + Core.assets.load("sprites/rays.png", Texture.class).loaded = t -> { + ((Texture)t).setFilter(TextureFilter.linear); + }; + + renderer.addEnvRenderer(Env.underwater, () -> { + Draw.draw(Layer.light + 1, () -> { + Draw.color(waterColor, 0.4f); + Fill.rect(Core.camera.position.x, Core.camera.position.y, Core.camera.width, Core.camera.height); + Draw.reset(); + + Blending.additive.apply(); + Draw.blit(Shaders.caustics); + Blending.normal.apply(); + }); + + Draw.z(Layer.light + 2); + + int rays = 50; + float timeScale = 2000f; + rand.setSeed(0); + + Draw.blend(Blending.additive); + + float t = Time.time / timeScale; + Texture tex = Core.assets.get("sprites/rays.png", Texture.class); + + for(int i = 0; i < rays; i++){ + float offset = rand.random(0f, 1f); + float time = t + offset; + + int pos = (int)time; + float life = time % 1f; + float opacity = rand.random(0.2f, 0.7f) * Mathf.slope(life) * 0.7f; + float x = (rand.random(0f, world.unitWidth()) + (pos % 100)*753) % world.unitWidth(); + float y = (rand.random(0f, world.unitHeight()) + (pos % 120)*453) % world.unitHeight(); + float rot = rand.range(7f); + float sizeScale = 1f + rand.range(0.3f); + + float topDst = (Core.camera.position.y + Core.camera.height/2f) - (y + tex.height/2f + tex.height*1.9f*sizeScale/2f); + float invDst = topDst/1000f; + opacity = Math.min(opacity, -invDst); + + if(opacity > 0.01){ + Draw.alpha(opacity); + Draw.rect(Draw.wrap(tex), x, y + tex.height/2f, tex.width*2*sizeScale, tex.height*2*sizeScale, rot); + Draw.color(); + } + } + + Draw.blend(); + }); + + Core.assets.load("sprites/distortAlpha.png", Texture.class); + + renderer.addEnvRenderer(Env.scorching, () -> { + Texture tex = Core.assets.get("sprites/distortAlpha.png", Texture.class); + if(tex.getMagFilter() != TextureFilter.linear){ + tex.setFilter(TextureFilter.linear); + tex.setWrap(TextureWrap.repeat); + } + + //Draw.z(Layer.weather); + Draw.z(layer); + Weather.drawNoiseLayers(tex, scorchColor, scl, alpha, speed, 1f, 1f, 0f, + layers, speedl, alphal, lscl, colorl); + Draw.reset(); + }); } + + public static Color scorchColor = Color.scarlet; + public static float scl = 1000f, lscl = 0.8f, alpha = 0.2f, speed = 0.4f, speedl = -1.3f, colorl = 0.9f, alphal = 0.7f; + public static int layers = 4; + public static float layer = Layer.weather - 1; + } diff --git a/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java new file mode 100644 index 0000000000..aff8c2ba4a --- /dev/null +++ b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java @@ -0,0 +1,181 @@ +package mindustry.maps.planet; + +import arc.graphics.*; +import arc.math.*; +import arc.math.geom.*; +import arc.util.*; +import arc.util.noise.*; +import mindustry.*; +import mindustry.ai.*; +import mindustry.content.*; +import mindustry.game.*; +import mindustry.maps.generators.*; +import mindustry.type.*; +import mindustry.world.*; +import mindustry.world.meta.*; + +import static mindustry.Vars.*; + +public class ErekirPlanetGenerator extends PlanetGenerator{ + RidgedPerlin rid = new RidgedPerlin(1, 2); + RidgedPerlin crid = new RidgedPerlin(2, 3); + + public float scl = 2f; + public float heightScl = 1f, octaves = 8, persistence = 0.7f, heightPow = 3f, heightMult = 1.5f; + + Block[][] arr = { + {Blocks.regolith, Blocks.regolith, Blocks.yellowStone, Blocks.rhyolite, Blocks.basalt} + }; + + { + noise.setSeed(2); + } + + @Override + public void generateSector(Sector sector){ + //no bases right now + } + + @Override + public float getHeight(Vec3 position){ + return Mathf.pow(rawHeight(position), heightPow) * heightMult; + } + + @Override + public Color getColor(Vec3 position){ + Block block = getBlock(position); + return Tmp.c1.set(block.mapColor).a(1f - block.albedo); + } + + @Override + public float getSizeScl(){ + return 2000; + } + + float rawHeight(Vec3 position){ + return (float)noise.octaveNoise3D(octaves, persistence, 1f/heightScl, 10f + position.x, 10f + position.y, 10f + position.z); + } + + float rawTemp(Vec3 position){ + return position.dst(0, 0, 1)*2.2f - (float)noise.octaveNoise3D(8, 0.54f, 1.4f, 10f + position.x, 10f + position.y, 10f + position.z) * 2.9f; + } + + Block getBlock(Vec3 position){ + float ice = rawTemp(position); + + float height = rawHeight(position); + Tmp.v31.set(position); + position = Tmp.v33.set(position).scl(scl); + float temp = (float)noise.octaveNoise3D(8, 0.6, 1f/2f, 10f + position.x, 10f + position.y + 99f, 10f + position.z); + height *= 1.2f; + height = Mathf.clamp(height); + + Block result = arr[Mathf.clamp((int)(temp * arr.length), 0, arr[0].length - 1)][Mathf.clamp((int)(height * arr[0].length), 0, arr[0].length - 1)]; + + if(ice < 0.6){ + if(result == Blocks.rhyolite || result == Blocks.yellowStone || result == Blocks.regolith){ + return Blocks.ice; + } + } + + return result; + } + + @Override + public void genTile(Vec3 position, TileGen tile){ + tile.floor = getBlock(position); + + if(tile.floor == Blocks.rhyolite && rand.chance(0.01)){ + tile.floor = Blocks.rhyoliteCrater; + } + + tile.block = tile.floor.asFloor().wall; + + if(rid.getValue(position.x, position.y, position.z, 25) > 0.2){ + tile.block = Blocks.air; + } + + if(crid.getValue(position.x, position.y + 4f, position.z, 7f) > 0.7){ + tile.floor = Blocks.graphiticStone; + } + } + + @Override + protected void generate(){ + float temp = rawTemp(sector.tile.v); + + if(temp > 0.7){ + + pass((x, y) -> { + if(floor != Blocks.ice){ + float noise = noise(x + 782, y, 7, 0.8f, 310f, 1f); + if(noise > 0.67f){ + if(noise > 0.72f){ + floor = Blocks.slag; + }else{ + floor = Blocks.yellowStone; + } + ore = Blocks.air; + } + } + }); + } + + cells(4); + + float length = width/3f; + Vec2 trns = Tmp.v1.trns(rand.random(360f), length); + int + spawnX = (int)(trns.x + width/2f), spawnY = (int)(trns.y + height/2f), + endX = (int)(-trns.x + width/2f), endY = (int)(-trns.y + height/2f); + float maxd = Mathf.dst(width/2f, height/2f); + + erase(spawnX, spawnY, 15); + brush(pathfind(spawnX, spawnY, endX, endY, tile -> (tile.solid() ? 300f : 0f) + maxd - tile.dst(width/2f, height/2f)/10f, Astar.manhattan), 7); + + distort(10f, 12f); + distort(5f, 7f); + + pass((x, y) -> { + float max = 0; + for(Point2 p : Geometry.d8){ + max = Math.max(max, world.getDarkness(x + p.x, y + p.y)); + } + if(max > 0){ + block = floor.asFloor().wall; + if(block == Blocks.air) block = Blocks.yellowStoneWall; + } + + }); + + inverseFloodFill(tiles.getn(spawnX, spawnY)); + + tiles.getn(endX, endY).setOverlay(Blocks.spawn); + + tech(Blocks.darkPanel3, Blocks.darkPanel5, Blocks.darkMetal); + + //ores + pass((x, y) -> { + + if(block != Blocks.air){ + boolean empty = false; + for(Point2 p : Geometry.d8){ + Tile other = tiles.get(x + p.x, y + p.y); + if(other != null && other.block() == Blocks.air){ + empty = true; + break; + } + } + + if(empty && noise(x + 78, y, 4, 0.7f, 35f, 1f) > 0.67f && block == Blocks.carbonWall){ + block = Blocks.graphiticWall; + }else if(empty && noise(x + 782, y, 4, 0.8f, 40f, 1f) > 0.7f && block != Blocks.carbonWall){ + ore = Blocks.wallOreBeryl; + } + } + }); + + Vars.state.rules.environment = Env.scorching | Env.terrestrial; + Schematics.placeLaunchLoadout(spawnX, spawnY); + } +} diff --git a/core/src/mindustry/maps/planet/TantrosPlanetGenerator.java b/core/src/mindustry/maps/planet/TantrosPlanetGenerator.java new file mode 100644 index 0000000000..e0613769ec --- /dev/null +++ b/core/src/mindustry/maps/planet/TantrosPlanetGenerator.java @@ -0,0 +1,111 @@ +package mindustry.maps.planet; + +import arc.graphics.*; +import arc.math.*; +import arc.math.geom.*; +import arc.util.*; +import mindustry.*; +import mindustry.content.*; +import mindustry.game.*; +import mindustry.maps.generators.*; +import mindustry.type.*; +import mindustry.type.Weather.*; +import mindustry.world.*; +import mindustry.world.meta.*; + +import static mindustry.Vars.*; + +public class TantrosPlanetGenerator extends PlanetGenerator{ + Color c1 = Color.valueOf("5057a6"), c2 = Color.valueOf("272766"), out = new Color(); + + Block[][] arr = { + {Blocks.redmat, Blocks.redmat, Blocks.darksand, Blocks.bluemat, Blocks.bluemat} + }; + + { + noise.setSeed(1); + } + + @Override + public void generateSector(Sector sector){ + //no bases + } + + @Override + public float getHeight(Vec3 position){ + return 0; + } + + @Override + public Color getColor(Vec3 position){ + float depth = (float)noise.octaveNoise3D(2, 0.56, 1.7f, position.x, position.y, position.z) / 2f; + return c1.write(out).lerp(c2, Mathf.clamp(Mathf.round(depth, 0.15f))).a(0.6f); + } + + @Override + public float getSizeScl(){ + return 2000; + } + + @Override + public void addWeather(Sector sector, Rules rules){ + rules.weather.and(new WeatherEntry(Weathers.suspendParticles)).peek().always = true; + } + + @Override + public void genTile(Vec3 position, TileGen tile){ + tile.floor = getBlock(position); + + if(tile.floor == Blocks.redmat && rand.chance(0.1)){ + tile.block = Blocks.redweed; + } + + if(tile.floor == Blocks.bluemat && rand.chance(0.03)){ + tile.block = Blocks.purbush; + } + + if(tile.floor == Blocks.bluemat && rand.chance(0.002)){ + tile.block = Blocks.yellowCoral; + } + } + + @Override + protected void generate(){ + pass((x, y) -> { + float max = 0; + for(Point2 p : Geometry.d8){ + max = Math.max(max, world.getDarkness(x + p.x, y + p.y)); + } + if(max > 0){ + block = floor.asFloor().wall; + } + + if(noise(x, y, 40f, 1f) > 0.9){ + //block = Blocks.coralChunk; + } + }); + + Schematics.placeLaunchLoadout(width / 2, height / 2); + + Vars.state.rules.environment = Env.underwater; + + state.rules.canGameOver = false; + } + + float rawHeight(Vec3 position){ + return (float)noise.octaveNoise3D(8, 0.7f, 1f, position.x, position.y, position.z); + } + + Block getBlock(Vec3 position){ + float height = rawHeight(position); + Tmp.v31.set(position); + position = Tmp.v33.set(position).scl(2f); + float temp = (float)noise.octaveNoise3D(8, 0.6, 1f/2f, position.x, position.y + 99f, position.z); + height *= 1.2f; + height = Mathf.clamp(height); + + //float tar = (float)noise.octaveNoise3D(4, 0.55f, 1f/2f, position.x, position.y + 999f, position.z) * 0.3f + Tmp.v31.dst(0, 0, 1f) * 0.2f; + + return arr[Mathf.clamp((int)(temp * arr.length), 0, arr[0].length - 1)][Mathf.clamp((int)(height * arr[0].length), 0, arr[0].length - 1)]; + } +} diff --git a/core/src/mindustry/mod/ClassMap.java b/core/src/mindustry/mod/ClassMap.java index 0961e12999..aa258a0666 100644 --- a/core/src/mindustry/mod/ClassMap.java +++ b/core/src/mindustry/mod/ClassMap.java @@ -1,8 +1,6 @@ package mindustry.mod; import arc.struct.*; -import mindustry.world.blocks.environment.*; - /** Generated class. Maps simple class names to concrete classes. For use in JSON mods. */ @SuppressWarnings("deprecation") public class ClassMap{ @@ -173,11 +171,11 @@ public class ClassMap{ classes.put("OreBlock", mindustry.world.blocks.environment.OreBlock.class); classes.put("OverlayFloor", mindustry.world.blocks.environment.OverlayFloor.class); classes.put("Prop", mindustry.world.blocks.environment.Prop.class); - classes.put("Bush", Bush.class); - classes.put("WavingProp", WavingProp.class); + classes.put("SeaBush", mindustry.world.blocks.environment.SeaBush.class); + classes.put("Seaweed", mindustry.world.blocks.environment.Seaweed.class); classes.put("ShallowLiquid", mindustry.world.blocks.environment.ShallowLiquid.class); classes.put("SpawnBlock", mindustry.world.blocks.environment.SpawnBlock.class); - classes.put("StaticClusterWall", StaticClusterWall.class); + classes.put("StaticCoralWall", mindustry.world.blocks.environment.StaticCoralWall.class); classes.put("StaticTree", mindustry.world.blocks.environment.StaticTree.class); classes.put("StaticWall", mindustry.world.blocks.environment.StaticWall.class); classes.put("TreeBlock", mindustry.world.blocks.environment.TreeBlock.class); diff --git a/core/src/mindustry/world/blocks/environment/Bush.java b/core/src/mindustry/world/blocks/environment/SeaBush.java similarity index 95% rename from core/src/mindustry/world/blocks/environment/Bush.java rename to core/src/mindustry/world/blocks/environment/SeaBush.java index ec1f61d9c1..8dfe08663b 100644 --- a/core/src/mindustry/world/blocks/environment/Bush.java +++ b/core/src/mindustry/world/blocks/environment/SeaBush.java @@ -6,7 +6,7 @@ import arc.util.*; import mindustry.annotations.Annotations.*; import mindustry.world.*; -public class Bush extends Prop{ +public class SeaBush extends Prop{ public @Load(value = "@-bot", fallback = "@") TextureRegion botRegion; public @Load(value = "@-center") TextureRegion centerRegion; @@ -16,7 +16,7 @@ public class Bush extends Prop{ static Rand rand = new Rand(); - public Bush(String name){ + public SeaBush(String name){ super(name); variants = 0; } diff --git a/core/src/mindustry/world/blocks/environment/WavingProp.java b/core/src/mindustry/world/blocks/environment/Seaweed.java similarity index 93% rename from core/src/mindustry/world/blocks/environment/WavingProp.java rename to core/src/mindustry/world/blocks/environment/Seaweed.java index e999137af5..3d9cd1aa37 100644 --- a/core/src/mindustry/world/blocks/environment/WavingProp.java +++ b/core/src/mindustry/world/blocks/environment/Seaweed.java @@ -5,9 +5,9 @@ import arc.math.*; import arc.util.*; import mindustry.world.*; -public class WavingProp extends Prop{ +public class Seaweed extends Prop{ - public WavingProp(String name){ + public Seaweed(String name){ super(name); } diff --git a/core/src/mindustry/world/blocks/environment/StaticClusterWall.java b/core/src/mindustry/world/blocks/environment/StaticCoralWall.java similarity index 85% rename from core/src/mindustry/world/blocks/environment/StaticClusterWall.java rename to core/src/mindustry/world/blocks/environment/StaticCoralWall.java index 90f9417863..47ece65eca 100644 --- a/core/src/mindustry/world/blocks/environment/StaticClusterWall.java +++ b/core/src/mindustry/world/blocks/environment/StaticCoralWall.java @@ -5,10 +5,10 @@ import arc.math.*; import mindustry.annotations.Annotations.*; import mindustry.world.*; -public class StaticClusterWall extends StaticWall{ +public class StaticCoralWall extends StaticWall{ public @Load(value = "@-cluster#", length = 1) TextureRegion[] clusters; - public StaticClusterWall(String name){ + public StaticCoralWall(String name){ super(name); variants = 1; } diff --git a/gradle.properties b/gradle.properties index 0152a046ab..0d662cd2bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,4 +8,4 @@ kapt.use.worker.api=true kapt.include.compile.classpath=false # I don't need to use the kotlin stdlib yet, so remove it to prevent extra bloat & method count issues kotlin.stdlib.default.dependency=false -archash=5364d0187882a5e2f09850fe2505608dd7cf93f3 +archash=4db7abe679c53dbcef400b65da75247ffa6334d3