From 4fefd8b8b7fffb72472471d9baa24f23e5050336 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Wed, 28 Jun 2023 21:32:01 +1000 Subject: [PATCH] Add snow rocks to planets (#17692) --- .../Salvage/SpawnSalvageMissionJob.cs | 9 +- .../Procedural/Loot/BiomeMarkerLoot.cs | 6 +- .../Entities/Structures/Walls/asteroid.yml | 198 ++++++++++++++++++ .../Procedural/biome_ore_templates.yml | 76 +++++++ .../Prototypes/Procedural/biome_templates.yml | 17 ++ .../Prototypes/Procedural/salvage_loot.yml | 32 ++- .../Structures/Walls/rock.rsi/meta.json | 17 +- .../Structures/Walls/rock.rsi/rock_snow.png | Bin 0 -> 4382 bytes .../Walls/rock.rsi/rock_snow_east.png | Bin 0 -> 4272 bytes .../Walls/rock.rsi/rock_snow_north.png | Bin 0 -> 4276 bytes .../Walls/rock.rsi/rock_snow_south.png | Bin 0 -> 4272 bytes .../Walls/rock.rsi/rock_snow_west.png | Bin 0 -> 4277 bytes 12 files changed, 340 insertions(+), 15 deletions(-) create mode 100644 Resources/Textures/Structures/Walls/rock.rsi/rock_snow.png create mode 100644 Resources/Textures/Structures/Walls/rock.rsi/rock_snow_east.png create mode 100644 Resources/Textures/Structures/Walls/rock.rsi/rock_snow_north.png create mode 100644 Resources/Textures/Structures/Walls/rock.rsi/rock_snow_south.png create mode 100644 Resources/Textures/Structures/Walls/rock.rsi/rock_snow_west.png diff --git a/Content.Server/Salvage/SpawnSalvageMissionJob.cs b/Content.Server/Salvage/SpawnSalvageMissionJob.cs index 48e721c3d2..7034057261 100644 --- a/Content.Server/Salvage/SpawnSalvageMissionJob.cs +++ b/Content.Server/Salvage/SpawnSalvageMissionJob.cs @@ -206,13 +206,13 @@ public sealed class SpawnSalvageMissionJob : Job if (!lootProto.Guaranteed) continue; - await SpawnDungeonLoot(dungeon, lootProto, mapUid, grid, random, reservedTiles); + await SpawnDungeonLoot(dungeon, missionBiome, lootProto, mapUid, grid, random, reservedTiles); } return true; } - private async Task SpawnDungeonLoot(Dungeon? dungeon, SalvageLootPrototype loot, EntityUid gridUid, MapGridComponent grid, Random random, List reservedTiles) + private async Task SpawnDungeonLoot(Dungeon? dungeon, SalvageBiomeMod biomeMod, SalvageLootPrototype loot, EntityUid gridUid, MapGridComponent grid, Random random, List reservedTiles) { for (var i = 0; i < loot.LootRules.Count; i++) { @@ -222,9 +222,10 @@ public sealed class SpawnSalvageMissionJob : Job { case BiomeMarkerLoot biomeLoot: { - if (_entManager.TryGetComponent(gridUid, out var biome)) + if (_entManager.TryGetComponent(gridUid, out var biome) && + biomeLoot.Prototype.TryGetValue(biomeMod.ID, out var mod)) { - _biome.AddMarkerLayer(biome, biomeLoot.Prototype); + _biome.AddMarkerLayer(biome, mod); } } break; diff --git a/Content.Shared/Procedural/Loot/BiomeMarkerLoot.cs b/Content.Shared/Procedural/Loot/BiomeMarkerLoot.cs index 9ab51733f2..fad8674f07 100644 --- a/Content.Shared/Procedural/Loot/BiomeMarkerLoot.cs +++ b/Content.Shared/Procedural/Loot/BiomeMarkerLoot.cs @@ -1,5 +1,6 @@ using Content.Shared.Parallax.Biomes.Markers; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; namespace Content.Shared.Procedural.Loot; @@ -8,6 +9,7 @@ namespace Content.Shared.Procedural.Loot; /// public sealed class BiomeMarkerLoot : IDungeonLoot { - [DataField("proto", required: true, customTypeSerializer:typeof(PrototypeIdSerializer))] - public string Prototype = string.Empty; + [DataField("proto", required: true, + customTypeSerializer: typeof(PrototypeIdValueDictionarySerializer))] + public Dictionary Prototype = new(); } diff --git a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml index 7e4b86e61c..64b0c71c01 100644 --- a/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Structures/Walls/asteroid.yml @@ -287,3 +287,201 @@ - map: [ "enum.EdgeLayer.West" ] state: rock_west - state: rock_artifact_fragment + +# Basalt variants +# WICI + +# Snow variants +- type: entity + id: WallRockSnow + parent: WallRock + components: + - type: Sprite + sprite: Structures/Walls/rock.rsi + 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 + +- type: entity + id: WallRockSnowGold + parent: WallRockSnow + description: An ore vein rich with gold. + suffix: Gold + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreGold + - 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_gold + +- type: entity + id: WallRockSnowPlasma + parent: WallRockSnow + description: An ore vein rich with plasma. + suffix: Plasma + components: + - type: OreVein + oreChance: 1.0 + currentOre: OrePlasma + - 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_phoron + +- type: entity + id: WallRockSnowQuartz + parent: WallRockSnow + description: An ore vein rich with quartz. + suffix: Quartz + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSpaceQuartz + - 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_quartz + +- type: entity + id: WallRockSnowSilver + parent: WallRockSnow + description: An ore vein rich with silver. + suffix: Silver + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSilver + - 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_silver + +- type: entity + id: WallRockSnowTin + parent: WallRockSnow + description: An ore vein rich with steel. + suffix: Steel + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreSteel + - 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_tin + +- type: entity + id: WallRockSnowUranium + parent: WallRockSnow + description: An ore vein rich with uranium. + suffix: Uranium + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreUranium + - 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_uranium + + +- type: entity + id: WallRockSnowBananium + parent: WallRockSnow + description: An ore vein rich with bananium. + suffix: Bananium + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreBananium + - 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_bananium + +- type: entity + id: WallRockSnowArtifactFragment + parent: WallRockSnow + description: A rock wall. What's that sticking out of it? + suffix: Artifact Fragment + components: + - type: OreVein + oreChance: 1.0 + currentOre: OreArtifactFragment + - 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_artifact_fragment diff --git a/Resources/Prototypes/Procedural/biome_ore_templates.yml b/Resources/Prototypes/Procedural/biome_ore_templates.yml index e548f64d2c..27936fb450 100644 --- a/Resources/Prototypes/Procedural/biome_ore_templates.yml +++ b/Resources/Prototypes/Procedural/biome_ore_templates.yml @@ -69,3 +69,79 @@ maxCount: 6 groupCount: 1 radius: 4 + +# Basalt variant +# WICI + +# Snow variant +# Low value +- type: biomeMarkerLayer + id: SnowOreTin + proto: WallRockSnowTin + entityMask: WallRockSnow + maxCount: 30 + groupCount: 10 + radius: 4 + +- type: biomeMarkerLayer + id: SnowOreQuartz + proto: WallRockSnowQuartz + entityMask: WallRockSnow + maxCount: 30 + groupCount: 10 + radius: 4 + +# Medium value +# Gold +- type: biomeMarkerLayer + id: SnowOreGold + proto: WallRockSnowGold + entityMask: WallRockSnow + maxCount: 30 + groupCount: 5 + radius: 4 + +# Silver +- type: biomeMarkerLayer + id: SnowOreSilver + proto: WallRockSnowSilver + entityMask: WallRockSnow + maxCount: 30 + groupCount: 5 + radius: 4 + +# High value +# Plasma +- type: biomeMarkerLayer + id: SnowOrePlasma + proto: WallRockSnowPlasma + entityMask: WallRockSnow + maxCount: 12 + groupCount: 5 + radius: 4 + +# Uranium +- type: biomeMarkerLayer + id: SnowOreUranium + proto: WallRockSnowUranium + entityMask: WallRockSnow + maxCount: 12 + groupCount: 5 + radius: 4 + +- type: biomeMarkerLayer + id: SnowOreBananium + proto: WallRockSnowBananium + entityMask: WallRockSnow + maxCount: 12 + groupCount: 5 + radius: 4 + +# Artifact Fragment +- type: biomeMarkerLayer + id: SnowOreArtifactFragment + proto: WallRockSnowArtifactFragment + entityMask: WallRockSnow + maxCount: 6 + groupCount: 1 + radius: 4 diff --git a/Resources/Prototypes/Procedural/biome_templates.yml b/Resources/Prototypes/Procedural/biome_templates.yml index 9c8b11f446..873d442da3 100644 --- a/Resources/Prototypes/Procedural/biome_templates.yml +++ b/Resources/Prototypes/Procedural/biome_templates.yml @@ -356,6 +356,23 @@ - FloraTreeSnow04 - FloraTreeSnow05 - FloraTreeSnow06 + # Rock formations + - !type:BiomeEntityLayer + allowedTiles: + - FloorSnow + threshold: -0.15 + noise: + seed: 0 + noiseType: Cellular + frequency: 0.05 + lacunarity: 2 + fractalType: FBm + octaves: 5 + gain: 1 + cellularDistanceFunction: Euclidean + cellularReturnType: Distance2 + entities: + - WallRockSnow - !type:BiomeDummyLayer id: Loot - !type:BiomeTileLayer diff --git a/Resources/Prototypes/Procedural/salvage_loot.yml b/Resources/Prototypes/Procedural/salvage_loot.yml index ecc45159ab..43054b4bbd 100644 --- a/Resources/Prototypes/Procedural/salvage_loot.yml +++ b/Resources/Prototypes/Procedural/salvage_loot.yml @@ -6,7 +6,9 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OreTin + proto: + Grasslands: OreTin + Snow: SnowOreTin - type: salvageLoot id: OreQuartz @@ -14,7 +16,9 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OreQuartz + proto: + Grasslands: OreQuartz + Snow: SnowOreQuartz # - Medium value - type: salvageLoot @@ -23,7 +27,9 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OreGold + proto: + Grasslands: OreGold + Snow: SnowOreGold - type: salvageLoot id: OreSilver @@ -31,7 +37,9 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OreSilver + proto: + Grasslands: OreSilver + Snow: SnowOreSilver # - High value - type: salvageLoot @@ -40,7 +48,9 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OrePlasma + proto: + Grasslands: OrePlasma + Snow: SnowOrePlasma - type: salvageLoot id: OreUranium @@ -48,7 +58,9 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OreUranium + proto: + Grasslands: OreUranium + Snow: SnowOreUranium - type: salvageLoot id: OreBananium @@ -56,7 +68,9 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OreBananium + proto: + Grasslands: OreBananium + Snow: SnowOreBananium - type: salvageLoot id: OreArtifactFragment @@ -64,4 +78,6 @@ guaranteed: true loots: - !type:BiomeMarkerLoot - proto: OreArtifactFragment + proto: + Grasslands: OreArtifactFragment + Snow: SnowOreArtifactFragment diff --git a/Resources/Textures/Structures/Walls/rock.rsi/meta.json b/Resources/Textures/Structures/Walls/rock.rsi/meta.json index 3cbf7d4fae..26a3e9bd59 100644 --- a/Resources/Textures/Structures/Walls/rock.rsi/meta.json +++ b/Resources/Textures/Structures/Walls/rock.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "https://github.com/Citadel-Station-13/Citadel-Station-13-RP/blob/817e7c1f225876b45891e3f06908e6d032f0a8bc/icons/turf/walls.dmiMade, rock_bananium made by brainfood1183 (github) for ss14", + "copyright": "https://github.com/Citadel-Station-13/Citadel-Station-13-RP/blob/817e7c1f225876b45891e3f06908e6d032f0a8bc/icons/turf/walls.dmi, rock_bananium made by brainfood1183 (github) for ss14, rock_snow and co from https://github.com/tgstation/tgstation/tree/e929cf39cded5207d63df1fa8521f41f2816b383", "size": { "x": 32, "y": 32 @@ -22,6 +22,21 @@ { "name": "rock_west" }, + { + "name": "rock_snow" + }, + { + "name": "rock_snow_south" + }, + { + "name": "rock_snow_east" + }, + { + "name": "rock_snow_north" + }, + { + "name": "rock_snow_west" + }, { "name": "rock_artifact_fragment" }, diff --git a/Resources/Textures/Structures/Walls/rock.rsi/rock_snow.png b/Resources/Textures/Structures/Walls/rock.rsi/rock_snow.png new file mode 100644 index 0000000000000000000000000000000000000000..932800344980e735abf8bdfd664cda1ef64bca75 GIT binary patch literal 4382 zcmeHKeNYtV8DAg-gMx^fIHGpDYAPjryLY#6cNxmHXyUS)j2X1F8ZTV6T<%8WG zkrx~sELFHUnDYxf1o^Kzt%Z?Y@Pg6dCC>+U$5stpK3P}3d*zN@Z{`))pBkpv)Xv8h z9i5H4qr-l%?|Qx0=Dv|>S-f{og4VPuFC}vIrHvldeWgMpRVUG_GG-F zXg*=>e{|#A`J%MLO~b#8$6J+0wZRn~L={!81bkMFjc{vPzf z{;H-0EfG6kjJix*c)u#Ok$czENgbX4pSEKmAI|SzT@aDj{lm2o6jUV`3|6zjFp&&M z;q~pc`i!pR6+K0{ClNHVyyladBV@nHwBlF$OfA-{;lCjde(yo3W%(;ho=HD@a&Yh* zedTOV!IrQsDNzrh(z4PVsW$q{1537c``y=m=DWAbcN;oVz`fP44r{9C-dtR&JW#YW z%jC`SZ??ij=BVB6dS$1dknm3qJ)FLse*Rhox-u@9D zw;_B)H&T`I%$gUkpStz0nBiBtf_oRl^nadMdNBXFvUjfaG&`EQ|J1$7bY)%9`FES$ zfBUF;^QX<*vmbXBrxadrAG*0NIzKf!wz_6hdT3sL^#^a&(uifWbm5Nfkz?oA*8Ms- zZGUKAL#pTD;Ep?|3r}d{|M6_-Q1b1UojZOSwCno~S6cpgn;CE&f*#ukGe5n*%~E`~ z?(?+tmsbVt9yrremR@&n=f#!9_ss_uT&R6WyhJbZCpC)ihZx$9!rczZ)G5YB75{5b;I}D7tb16j#1wBgu$P1;vUqr|>)7 zpz0tfG0E?ym~ET{)0|y!>5DMCxToOFXVhn);Cek)Nl5erX2GPU8go04usL3ystC02KaH5Ch z$sA+aI0RVfkrGLAlNjdn`4m32LiE@%rB0{Aa22Lfp}+$5R=6a}kGj08Wr#5hBj;s2 zf?EOnJnA3?(_wY)lasVS}_9G=;zN96rUR%8U03_PlI z@ieU^SX4=<)hMCiRH#m+B2bFvmGP`jMez(V4a)5DN|cM?WGDcx5C9I&;RK_jC{#t$ z97?c^8r2bCNz?IKMysWj2??5M5ZN99R3+t@9+eEm0w{vk>Ns3Up*oINqJ$P_Q7sWq zqiPleM(NZ%uTuq}ScXg!Jx&T7r{JXQ9Oib}0}7dNGR11vBPs)d}9}Ef70n}1*r2>F} z2grsrcsNQDJvLEv=n*+6SoWM$TR=mxltdXRi36axN=@Pkq)KB04=N3*#N(7WiBGc^ zS%I(kU)FN_z=>mro*{U_{uKeySWo40rDLnHr9%ib6ATC1f~1(S6ueY9#|GjASYs-t zgmT$AFh9l%c0w+EO)(HeJj1JS9@Vfa4N8F00Ck|&f!bgaI86diXy}BQ=w6YRe3XYv zu>&3fSD-)xT*2$ck1BSiy|09m&jC<|;tA+9$`EWkSxlZ76WJzWU*RJ$U@&dO0KYLA z7+qizVw0nAoG*Fke1o6ybNB{#0MK)r%!=PRy5{Jb6$7&}o~y1ox@N_|tc>TX>;Fbq z_|(f3=K}wLeBf0{9a7hpx;3 zi>KTf1zrf6zgWJ4p!(OB0b!VAwwS_(pNxr!3EzKrDbPc$W@CzNU2oo|fu%k0Jm#f_ z`R=QsS0kh^k0^TMZWvbYiF$R}@`n)pd~*4o>cgmEpQ|JIDB6wrKTHjccqjNuab!f~ zL1i8jp5?f_{?GYQ&!+IN`qkN$A$Dyea$E?38#C^v23gb2`|H-8_B|`^3yWbk|-X{x}t-V## oHE$r@l=<6>uh||kzxUq>IgEX$tL|v$O^^X(Hf0%)rxySCzqLI(EdT%j literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_east.png b/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_east.png new file mode 100644 index 0000000000000000000000000000000000000000..3ffa1fb56db20ca8bdb13dc2b2707495158c78a1 GIT binary patch literal 4272 zcmeHLe{2)i9ls^SZ^g6rQ zQ?8bRD6WKMpA>+&+Mqxj#v~tx#Xb(Yt(oWW2f9Xft+ZAgy1n?LBZhm{S1PkwcDka4 zjg=_h`zyY|_^j3(;hV8tBAtOK87SW=T@ zv$>r%+gLUzhnKfBTZ+%+FYc) z9xgg_{PN{@y%)~(RIE>1Z=HV^tF5aoRhu*ay+3Qi`Iz#_^U+&NqeIwh74XeVhO{?Y z;gJQk%>K%UQr^0L?ty|GIKh;a_!f5DSX_DQ#_%_~KX-KX-ZK}hJ|i}ks+R3l}nLXHYF1dG3_NAM7wJ(t&zH;F6<(cILnUC+-v$iO8UHOg=-)#00u94b# zTh9-_{@!DIf0tbNtJJ<%3&M9VZ@tmEvBQ-6_aCNS%^%tw-1=P7wx7Iuq5U62LVxH0 zcHe(_^_RD6Tvh+td$X`;_tK>8{il2CiuT@W{9sAdZRh?u?>FCNpY=W%TXk6eON#BC z)2CbeH$L-&*XQNGaB{<`q>PMh!Y@gn9QIR;*=(k0J*C%^$byVCgj5hC zLy=_~L;}MOBSKhGR7nou8Yb|{b*hCRkRBh4FQ~X&^NvTp8k?X<&bkxI;x@Tof9Z{fQ00xn11g*+US+dCK za*umx6!@i}68A!6Pq9=b-vn7xV$(G7bS4La+{baJSdZl%H%3-27jKt^IxRe>-9l*V z^P((BA|D?bL=!`M^$ZF0f|+E2-bVreY0?Ox*JRXlJ|Q=E5|lF(Q9($68WaN8NeD+^ z8JaWu45ZJjL9hUjKs5PC!I*2HbG;&-A4C zG*3^mmqp3f@V~6J_QCTKn_etM(E1H=QKF~HU~OWSmhc zMnM=_{fI}z6)Mm;SNQVLt$KWFG|_6P?E|8Wq>bbRWh_CBCQE52##pv_)PM1j7dM!6 z#2~+f3>{tQB&5cV!co3Ztl#BlbRWLUC2)LZk!kTeL)Q#l(_&y+#xvD5L)Wwzn3nNO zb^YJyN}sq)!4Ucd6h&7hTmFcMu34Gxr#ueqZv+}%y?V8;udl1C>&~4!#|BOvM4}|M zbWItS|M^99+sBf;PZrs+9jQx-(PXw#ToJ*r?=R4vB&_x2N02a0b-EmBgR`>d;*VJG z?biNA;GA}=XL+xnROP2UdOdl?_2j1GP4oK-F3wq}KDHubU-s$+z2M|Nb*OWGmiy7_ iW4}!q_^?rjVOLsaKlG=FclIUQ^4zb~lz`F{YY*Z}hY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_north.png b/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_north.png new file mode 100644 index 0000000000000000000000000000000000000000..9f35a26cf4ed8db91eacf0470e82a02545d26f9f GIT binary patch literal 4276 zcmeHLe^3Z*TARxZ530fx83F8q(P{k3~u$u1Nlt1JEYp1QGQ)5wkCe;9sws;hU5E?IkCc%pLI zb9@K8K)Sm(Sj!A;f6w^P!oe?KJ>wg+?tZymAm$=D@*%k&92`a zYvC}@XymTOp5Y@GAKdrTJ4&BP>uW1fZeMM@(Yf)I&GNV9X@f=ApAI#CH)Y3TZI@1d zbe$gvA3{D0TwQzZ)6Jf`fA0IFwCw4nDc>15cOh1`Z{&$zKT!9ndwof|s^+b)M}!-Prr;=xEAGw{jMf{&Etg zU4sbItH$#P!%HCpD@YtLBtkOGI|M0QlaN_{Gf+_u1jMi%yWV*gLq)-kt+#lL9@zov z#qzBRsNP!P z0F*LN1|#lDhz%xebtYP<2!5u@Svmm$XLhV!Rb_@C;_Vs8ERDq}zQ+VKN0AV#h8A9Nv?B$pe)WZ>Y0t7(_sz%|i zR)g6=288eih;*>C{B{xOlTlXCHMlflSZY1W9tG@xKIm?@mL+DP2b76=?5{WNd- zFZ8J7SL3V#iUW{G$Q4Xbohx+3#8IuB=}o*IXy*Va!;J;_G-VVg~0mb1}$@=YwU!MLW&N-;o#t4UteEWSJ$muxALv| z%b_Smt*WR-iaxjuulq;}_i&jL*_HM{Ih2fpI&FeJgtTy2WYT_u1N%$7)K7mX+^J>j`AU*2Uzy43>>#L}JM9&ZDo} mnwwtl=&&^(W18xzh_#5Vxzsd7`9l=YIeWX#Z3I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_south.png b/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_south.png new file mode 100644 index 0000000000000000000000000000000000000000..e1a11d8cb6c36347cb33782b51561a14e3e35657 GIT binary patch literal 4272 zcmeHKeQXow89$R|Aub6eutCd5uUA^A+VlC&_SrtgB_B4nX-$mdLK3Kw`*_csuzhFy z96NL@z(7k|)Dj{Ugh~Zn*HTK?(3Bw{0|LqVu}SH)WE-X15TVePP9Yl`EJ?e)XXjI^ zG(}qf%Sq>Z-{<4^KF{xY-dBE~^{;jp=&yPt z@Oi6m==#^Mx^vtQRKNTBo`BKQe7?7+Am{kdg4c!$>p%MP&5C6mzu)fK6=*rTVsK#I zfZ+|gj^Ty%yT9Chh`H!;E&ADWu2%mi`nQ>V8wPWI z_wAWC-`#Qi^5yrr-j1&7b$RPb?-@p7$yh*bF8cT0c{QDB<!T*F-7a>e-Q6Z!%Bz>d=SOMi6r)K`C7czw@>8QrrMUc6Nt+gJ5i^4O_O|}DpT876 zfP53Wyz0iCO}@H+w%l6jetwDW$Cu7^CEYEzxBhx@-5u}VSsykJn|E?^(kp%{f0R>x z;@r9Ym)1XX{~NPQUOH8CMpsz4ZJ-Fe^Gy5cv!_oqcE2|?q-*uY&tmdtt+4CrCD>h6 zz9$)8ju==$=71p`frWxk@rty<@|%E)av&r{9a#VAvluD~4s4ypXY?uMV58*O90!$~ zR|omcn|Ql`t$18toMs?E1gI>Uj)bELChfp7xC|U?Vgf@mCh8^!R^{`f<#HULW`o&a z#9e8rp28m2qs4JSWCG5WBM@-rz&5I?!Vp9%l`^DE200!gNW0xm7%76HaA<)i8lozj z#-oV`HHa*R6D0V!q^Ob{MKw&8las0g!=N4=jW443d}Hv@#0U$J4+_F!XcUB`h?4PwWKXhGC2^drNwH~~Oga+-f$n3tldMN`&lp21pO10Md{PU~>vUk+ z`ivm+lE7q!G{;(an~}mvo-^TQi_wO20!iamqbO1qS~LSIm;mLCCR8@c0}Tp-8zhKh z=gbsG0q96V9J7rRah4Z(oHwx|4Xl)zqQwai6>$l6B^#a?l?Ek1C{iTNG;gDD&TOS2 z6wBf)X{T|LGFxmU&swb(E(0a-%t|>PVPQF?2pa-~5)EY(8sSW--|N6AgK=Eq53{NW z9pE02qJo@CjH`lD1XQZ5#wSVJtTroUrD>bVWT8ysMr%Pl0eewHC5;A?Iit}E!@zVP zwXD{u5FjIm*)ZjCz^ZaQD9d37rUiv+o?~hs+)x6mvQAb75Y$MS7$eP4)*u|1D8_7g zlr%EN3HGuei4FhDTH8Koakl6lDFN4S$cVCgsuIMqv+Oi1Wi}IvX0`>x^4Sy;Y&{S% zaYC%Dir>gaLjay1BMmz$m%gPLShHCqDbb7z94w<5&~}{T1rnzrsibJJm~7T8Nn_{< zSyWSO9F&G2kB}?apc$^v)5-aa@uc;oOLHx%jA z!0Jk*{(Q|@99oa8H>>I8z^Jy&~m$o`iXKw+Nh^||t{e{W#{YIwoD zWIq&Hz0T6$@@`(q*RM&&o(dGi3i1Q_F+E$SB=ci+`8qCdT^`ES)v-uXVaadKT|uty d+CJwlq~OfVkKdi4tAr4U*R|UD^Rl|_{{bm6{1*TK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_west.png b/Resources/Textures/Structures/Walls/rock.rsi/rock_snow_west.png new file mode 100644 index 0000000000000000000000000000000000000000..ab6306ae467a1f083dfedb743ef09be417c42c92 GIT binary patch literal 4277 zcmeHKe{2)i9X|s}N&*xD0|cZyUAi`HIs1P2=P4$?Y#c)!OyV{PtV-V9Jv-OfzKeZ{ z9Vmkg=onNTgsvb&5oql|UDjp-R4vI0A*4UHNug_y3Um{K4cgKvWMTwDO83sr4@avs zMOy!hrSrY_ec$ir`~802_kDHm=iV~c+{|T}7>3PtmpaPP8`qv$GtqyGFYqCHo!jKA zQp-UMS0b`s3PN0MRv-@Jk{`q3mqXqwb9?YPBSVXFbis^2TiNe zmcB!5&==pm^8shs-SPf6kKFJ3%M&jS-YD+fxxswvTBIxd3k;A>E^FD z9%=YPsJq}?*V@;x#h=jIj0;ifo4yrx^+w(jvGLI+qN z&+iLv;BIcYMm@7ObI>-pqiD(FKlyvd*Z*36v$bbN-<;)_?&LQdtXkRlyU%;uf+x;@ zdVan0VqVQhzi(6icCGFCTWwp`Jv>)iwDDu*jT?E{RmIs)?b^HEmG)fKu20_H#}l3h z4UcX;KY0A3AMO9mjMcBE^&c&cj9lG%yL017tLe)p(ykW{>91yOA z-@qOQuCBRtuijI8cmJK$u04nj}7|Wgo;{kC#pPNyhM&b+^9F| zDbg92niyhLCY~P={am?Y^(X|I*@-$;RXBqo7K`a)tX_@;47AN=Gf<3yVMwGwMw`Pb zh?C)Ht_G3BaKNY#krY*u!?=bCc)3xv69ihv$Kneq9?v*@I6BG#;=>RJihtQp4(w3 zH2<6^3zEnsh62OzHfXYt6tn@-C>o6w0=HU@gaF!3DFg!0po9Yn9~$9Yk=Jb}7(F#1@dknF zM+WE&NMTWqMJJYgQV3S4K;x4(TP;=#V=$i5kNwYvf)Z15U6s*C(A)Qp#_C&mgCDFbf83_0tZkb0;L$1qs$y*@u30Ba4h=_ zO>tC;zAQ@q=KrOw9UnYDx#^`+6!~vXh>~Zj0yZRP$!SnZ93~u3919Kz$rPfX35tn0 z5ms_Zr~}~uMEzs5V8`UrcN7C9P=H}smSjv8BWVOCinQ6xG-)wIo@W?Hi)MB*dQ|qS zF%W@80mLKX3KeLAD?D#>tDc&yAFG4fJ|N0S%1lmBW+Duu$r`kdF_vw<;lKFEPbj3c z7-W}}q1J^up<%ogj`F27o$v8Cx)0x@2LwIsWJ>%_(=|=klo*(j@^p1g(={aqrldSw zUH><_GAAxmFpR!{V(6+wt=dz7u36dMXMIjV4x-`p>(~4H`@6cjhKGl5ow(;hBAr@Z zR)H1X_zd0lF&)3w<-m5O<&>hyY^Ah1ieXs`wMT~?I=mDKGgP<7nQ=3H`CL5r_Feu- zB+7R?ihOx}LTzE%%DR`*E7QxLYoB#2Yi~GxdsfG*^VOWPFP=U;d)b=La`dzQy1>zK kY~`s7*BlpszF*0}av!F@U@f?ifp9Rlv&`{MaqUn41IPgYasU7T literal 0 HcmV?d00001