From 133bd0353a16a3b2260555318a1389b1c2c0f0e9 Mon Sep 17 00:00:00 2001 From: Zadeon Date: Mon, 26 Feb 2024 17:34:15 -0600 Subject: [PATCH] Adds minable salt "ore" (#25324) * Added salt to ore.yml Added salt to ores.yml Added salt walls to asteroid.yml Added salt to BaseAsteroidDebris' list of ores to generate in asteroids.yml Added OreSalt to biome_ore_templates.yml Added salt to guaranteed salvageLoot in salvage_loot.yml Added salt entry under salvage-magnet-resources in salvage-magnet.ftl Added WIP sprites for salt. * Renamed salt's id to SaltOre inside Entities/Objects/Materials/ore.yml Fixed salt not being grindable due to using an incorrect reagent name Added salt to ore.rsi/meta.json and rock.rsi/meta.json * Added chlorine to the list of solutions salt gives when used in the grinder. * Gave salt ore and salt rock overlay unique sprites. * Added raw salt to materials/materials.ftl Updated SaltOre definition in ore.yml to have RawSalt under materialComposition * Updated saltore definition to give 10 units of tablesalt and 5 units of iodine when ground. --- .../Locale/en-US/materials/materials.ftl | 1 + .../Locale/en-US/salvage/salvage-magnet.ftl | 1 + .../Entities/Objects/Materials/ore.yml | 33 ++++ .../Entities/Structures/Walls/asteroid.yml | 153 ++++++++++++++++++ .../Entities/World/Debris/asteroids.yml | 3 + .../Prototypes/Procedural/Magnet/asteroid.yml | 1 + .../Procedural/biome_ore_templates.yml | 14 ++ .../Prototypes/Procedural/salvage_loot.yml | 7 + .../Prototypes/Reagents/Materials/ores.yml | 9 ++ Resources/Prototypes/Stacks/Materials/ore.yml | 8 + Resources/Prototypes/ore.yml | 6 + .../Objects/Materials/ore.rsi/meta.json | 3 + .../Objects/Materials/ore.rsi/salt.png | Bin 0 -> 687 bytes .../Structures/Walls/rock.rsi/meta.json | 3 + .../Structures/Walls/rock.rsi/rock_salt.png | Bin 0 -> 627 bytes 15 files changed, 242 insertions(+) create mode 100644 Resources/Textures/Objects/Materials/ore.rsi/salt.png create mode 100644 Resources/Textures/Structures/Walls/rock.rsi/rock_salt.png diff --git a/Resources/Locale/en-US/materials/materials.ftl b/Resources/Locale/en-US/materials/materials.ftl index de95753233..dca520b5b4 100644 --- a/Resources/Locale/en-US/materials/materials.ftl +++ b/Resources/Locale/en-US/materials/materials.ftl @@ -34,3 +34,4 @@ materials-raw-silver = raw silver materials-raw-plasma = raw plasma materials-raw-uranium = raw uranium materials-raw-bananium = raw bananium +materials-raw-salt = raw salt diff --git a/Resources/Locale/en-US/salvage/salvage-magnet.ftl b/Resources/Locale/en-US/salvage/salvage-magnet.ftl index 64db8ead33..1a391ea48c 100644 --- a/Resources/Locale/en-US/salvage/salvage-magnet.ftl +++ b/Resources/Locale/en-US/salvage/salvage-magnet.ftl @@ -11,6 +11,7 @@ salvage-magnet-resources = {$resource -> [OreIron] Iron [OreCoal] Coal [OreQuartz] Quartz + [OreSalt] Salt [OreGold] Gold [OreSilver] Silver [OrePlasma] Plasma diff --git a/Resources/Prototypes/Entities/Objects/Materials/ore.yml b/Resources/Prototypes/Entities/Objects/Materials/ore.yml index 2fed6498bd..bf7dbfad5a 100644 --- a/Resources/Prototypes/Entities/Objects/Materials/ore.yml +++ b/Resources/Prototypes/Entities/Objects/Materials/ore.yml @@ -312,3 +312,36 @@ components: - type: Stack count: 1 + +- type: entity + parent: OreBase + id: SaltOre + name: salt + suffix: Full + components: + - type: Stack + stackType: SaltOre + - type: Sprite + state: salt + - type: Material + - type: PhysicalComposition + materialComposition: + RawSalt: 500 + - type: Extractable + grindableSolutionName: saltore + - type: SolutionContainerManager + solutions: + saltore: + reagents: + - ReagentId: TableSalt + Quantity: 10 + - ReagentId: Iodine + Quantity: 5 + +- type: entity + parent: SaltOre + id: Salt1 + suffix: Single + components: + - type: Stack + count: 1 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index aa5f1421c7..e354877612 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -343,6 +343,28 @@ - map: [ "enum.EdgeLayer.West" ] state: ironrock_west +- type: entity + id: AsteroidRockSalt + parent: AsteroidRock + description: An ore vein rich with salt. + suffix: Salt + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSalt + - type: Sprite + layers: + - state: rock_asteroid + - map: [ "enum.EdgeLayer.South" ] + state: rock_asteroid_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_asteroid_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_asteroid_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_asteroid_west + - state: rock_salt + - type: entity id: IronRockMining parent: IronRock @@ -613,6 +635,28 @@ state: rock_west - state: rock_artifact_fragment +- type: entity + id: WallRockSalt + parent: WallRock + description: An ore vein rich with salt. + suffix: Salt + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSalt + - type: Sprite + layers: + - state: rock + - map: [ "enum.EdgeLayer.South" ] + state: rock_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_west + - state: rock_salt + # Basalt variants - type: entity id: WallRockBasalt @@ -831,6 +875,28 @@ state: rock_wall_west - state: rock_artifact_fragment +- type: entity + id: WallRockBasaltSalt + parent: WallRockBasalt + description: An ore vein rich with salt. + suffix: Salt + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSalt + - type: Sprite + layers: + - state: rock_wall + - map: [ "enum.EdgeLayer.South" ] + state: rock_wall_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_wall_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_wall_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_wall_west + - state: rock_salt + # Snow variants - type: entity id: WallRockSnow @@ -1049,6 +1115,27 @@ state: rock_snow_west - state: rock_artifact_fragment +- type: entity + id: WallRockSnowSalt + parent: WallRockSnow + description: An ore vein rich with salt. + suffix: Salt + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSalt + - type: Sprite + layers: + - state: rock_snow + - map: [ "enum.EdgeLayer.South" ] + state: rock_snow_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_snow_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_snow_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_snow_west + - state: rock_salt # Sand variants - type: entity @@ -1268,6 +1355,28 @@ state: rock_sand_west - state: rock_artifact_fragment +- type: entity + id: WallRockSandSalt + parent: WallRockSand + description: An ore vein rich with salt. + suffix: Salt + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSalt + - type: Sprite + layers: + - state: rock_sand + - map: [ "enum.EdgeLayer.South" ] + state: rock_sand_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_sand_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_sand_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_sand_west + - state: rock_salt + # Chromite variants - type: entity id: WallRockChromite @@ -1486,6 +1595,28 @@ state: rock_chromite_west - state: rock_artifact_fragment +- type: entity + id: WallRockChromiteSalt + parent: WallRockChromite + description: An ore vein rich with salt. + suffix: Salt + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSalt + - type: Sprite + layers: + - state: rock_chromite + - map: [ "enum.EdgeLayer.South" ] + state: rock_chromite_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_chromite_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_chromite_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_chromite_west + - state: rock_salt + # Andesite variants - type: entity id: WallRockAndesite @@ -1703,3 +1834,25 @@ - map: [ "enum.EdgeLayer.West" ] state: rock_andesite_west - state: rock_artifact_fragment + +- type: entity + id: WallRockAndesiteSalt + parent: WallRockAndesite + description: An ore vein rich with salt. + suffix: Salt + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSalt + - type: Sprite + layers: + - state: rock_andesite + - map: [ "enum.EdgeLayer.South" ] + state: rock_andesite_south + - map: [ "enum.EdgeLayer.East" ] + state: rock_andesite_east + - map: [ "enum.EdgeLayer.North" ] + state: rock_andesite_north + - map: [ "enum.EdgeLayer.West" ] + state: rock_andesite_west + - state: rock_salt diff --git a/Resources/Prototypes/Entities/World/Debris/asteroids.yml b/Resources/Prototypes/Entities/World/Debris/asteroids.yml index 6cb0c35ef5..061288d010 100644 --- a/Resources/Prototypes/Entities/World/Debris/asteroids.yml +++ b/Resources/Prototypes/Entities/World/Debris/asteroids.yml @@ -26,6 +26,9 @@ - id: WallRockQuartz prob: 0.15 orGroup: rock + - id: WallRockSalt + prob: 0.15 + orGroup: rock - id: WallRockGold prob: 0.05 orGroup: rock diff --git a/Resources/Prototypes/Procedural/Magnet/asteroid.yml b/Resources/Prototypes/Procedural/Magnet/asteroid.yml index f30bd871ea..a21b709afa 100644 --- a/Resources/Prototypes/Procedural/Magnet/asteroid.yml +++ b/Resources/Prototypes/Procedural/Magnet/asteroid.yml @@ -4,6 +4,7 @@ OreIron: 1.0 OreQuartz: 1.0 OreCoal: 1.0 + OreSalt: 1.0 OreGold: 0.25 OreSilver: 0.25 OrePlasma: 0.15 diff --git a/Resources/Prototypes/Procedural/biome_ore_templates.yml b/Resources/Prototypes/Procedural/biome_ore_templates.yml index 1aba55128f..4a60427e30 100644 --- a/Resources/Prototypes/Procedural/biome_ore_templates.yml +++ b/Resources/Prototypes/Procedural/biome_ore_templates.yml @@ -40,6 +40,20 @@ maxGroupSize: 20 radius: 4 +- type: biomeMarkerLayer + id: OreSalt + entityMask: + AsteroidRock: AsteroidRockSalt + WallRock: WallRockSalt + WallRockBasalt: WallRockBasaltSalt + WallRockChromite: WallRockChromiteSalt + WallRockSand: WallRockSandSalt + WallRockSnow: WallRockSnowSalt + maxCount: 30 + minGroupSize: 10 + maxGroupSize: 20 + radius: 4 + # Medium value # Gold - type: biomeMarkerLayer diff --git a/Resources/Prototypes/Procedural/salvage_loot.yml b/Resources/Prototypes/Procedural/salvage_loot.yml index 92b04496ba..f12e8c7ffd 100644 --- a/Resources/Prototypes/Procedural/salvage_loot.yml +++ b/Resources/Prototypes/Procedural/salvage_loot.yml @@ -135,6 +135,13 @@ - !type:BiomeMarkerLoot proto: OreQuartz +- type: salvageLoot + id: OreSalt + guaranteed: true + loots: + - !type:BiomeMarkerLoot + proto: OreSalt + # - Medium value - type: salvageLoot id: OreGold diff --git a/Resources/Prototypes/Reagents/Materials/ores.yml b/Resources/Prototypes/Reagents/Materials/ores.yml index 4f4dceea8b..18f1d9ebb3 100644 --- a/Resources/Prototypes/Reagents/Materials/ores.yml +++ b/Resources/Prototypes/Reagents/Materials/ores.yml @@ -59,3 +59,12 @@ icon: { sprite: Objects/Materials/ore.rsi, state: bananium } color: "#32a852" price: 0.2 + +- type: material + id: RawSalt + stackEntity: Salt1 + name: materials-raw-salt + unit: materials-unit-chunk + icon: { sprite: Objects/Materials/ore.rsi, state: salt } + color: "#f5e7d7" + price: 0.075 \ No newline at end of file diff --git a/Resources/Prototypes/Stacks/Materials/ore.yml b/Resources/Prototypes/Stacks/Materials/ore.yml index b7b32c8b23..2a95393c27 100644 --- a/Resources/Prototypes/Stacks/Materials/ore.yml +++ b/Resources/Prototypes/Stacks/Materials/ore.yml @@ -62,3 +62,11 @@ spawn: Coal1 maxCount: 30 itemSize: 2 + +- type: stack + id: SaltOre + name: salt + icon: { sprite: /Textures/Objects/Materials/ore.rsi, state: salt } + spawn: Salt1 + maxCount: 30 + itemSize: 2 diff --git a/Resources/Prototypes/ore.yml b/Resources/Prototypes/ore.yml index c7e69966d4..dde1516c85 100644 --- a/Resources/Prototypes/ore.yml +++ b/Resources/Prototypes/ore.yml @@ -37,6 +37,12 @@ minOreYield: 1 maxOreYield: 3 +- type: ore + id: OreSalt + oreEntity: Salt1 + minOreYield: 1 + maxOreYield: 3 + # Low yields - type: ore id: OrePlasma diff --git a/Resources/Textures/Objects/Materials/ore.rsi/meta.json b/Resources/Textures/Objects/Materials/ore.rsi/meta.json index 0751cf76d3..98a10750bf 100644 --- a/Resources/Textures/Objects/Materials/ore.rsi/meta.json +++ b/Resources/Textures/Objects/Materials/ore.rsi/meta.json @@ -30,6 +30,9 @@ }, { "name": "coal" + }, + { + "name": "salt" } ] } diff --git a/Resources/Textures/Objects/Materials/ore.rsi/salt.png b/Resources/Textures/Objects/Materials/ore.rsi/salt.png new file mode 100644 index 0000000000000000000000000000000000000000..5ee3e44a6ffa0ea075ded446d376df3d9aa81cf9 GIT binary patch literal 687 zcmV;g0#N;lP)6qC}e!Kgz?+9X4<)^^Gt$rK10N@uB? z8Qmk>NGOYwR9v(o_f*3R~n^Nd(e!maC&N5c`K;Rs9dd8$X%(GPyyk^7lc+Rh~t zoDIKS5IYX8R0;wZMZH%l0njxql#oU)nE+tDaLDO#lY95?(rg>(F@2&FV;yitAR@~p z6BNr8mKPTp4u_aMi>3HHMt2~cP(m8bw!xRrAIT*X6P>tJfFN{UHo60zy?g^e$L!N= z8vv|j^K{HUZR@MN|7owldf^bGJ0Sn!`IRCr6;M5@Vsr;`y|uGFwXmGz`|ynFQI%Sw zjvmv|0)EV%MXgb%Sgy!abj&^g#d77GFxLW3TCJ&KxgrZKsH*ndj1RMCp~rMYI)v4L zOa;K>M~W1)md#%&U~C)yUOY-jLkVe;DByblAW1uBpIW0%G#tU`4tTe_3xL_PFniWm z0Ta6*sH(Pza=mZ}!0B<5_nWU+SWcqHba^%!j<8=kxIlQ)YK`S_B|r=KdA+iNe|DOO zPo6S2;{&+Rf+A(k{XcF)r}}2wU@e=Mb_-iYI>h(v>W18RL+(m|5TS%LI%c2j>IQQ& zKJ=I_3#?=IWp{}4Zbz}}NeI8jF~H`Bx4k zaIPT#3Nop*9aL32sH!)5l0A6v@K5m*J>oKnwvzwU0000EWmrjOO-%qQ0000800000 V0002eQPx#1ZP1_K>z@;j|==^1poj714%?dR9HvtmAy*?K@i1P{R6~G8*NmuQ>+9l5z$gC zZ3Ij4qY%>D1}sEtK?F;&5=F#HFilX>7>tdAsEwW2t-j-4n48SqZ7giOAB5YR-J3Tv zJG*fO|DLY+nM-+N%*{;nxr@qcY;o?hQT5#&l`UkgCmcz z1?*{al8*S93Y@I2?fbLqd)KIzqxG}%+y3$CEqX8Q+(zppQrMaghFLIE{7`l&purp~ z6+&nHY(a|1%uxvo2FU7U1u4nh0w5hT7>m5EvB(Vo<%Cn9#jT*ygqg(X)O5l}W&pa3 za88?UOkjzlXC9tE9FtgBTFlgJV(lSp_`#`eOwPm3F^_K6aSe;+2Rc|^IrR0HcXxiW z8GS3a0b|;S#!G&1pf}1qt0!^;pfDWHO^!I0lY$&$OZIk`oBpt#+mqFhsR786S>mu^ zjv`h=lC}eo;>b)kktOh3abN}j5Ck0q%Q?`efu+~NXh!shwzu4b5M~9KRa$0f$TV^I z;I%F95=|li3L|sbL_kJPfzz8>qB0y~PB!Ime@|kaBw@sdy19TZ8^GDNoH95hfp;ED zVEIWnfYXqhN{U-fS#qvHF!~B6xnde_lO;@Kfck{!?^6GcEkeWr#n1;?;vlF3p~8ec z0C8+7zXzc{3JMDT2