Update mountain walls/alt-asteroids (#4777)

* Update mountain walls/alt-asteroids

* no rot

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
This commit is contained in:
Velcroboy 2025-11-28 02:26:53 -06:00 committed by GitHub
parent c0fa85de5d
commit 0dbf9647a3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 129 additions and 79 deletions

View File

@ -22,7 +22,9 @@ public sealed class TileWallsCommand : IConsoleCommand
public string Help => $"Usage: {Command} <gridId> | {Command}";
public static readonly ProtoId<ContentTileDefinition> TilePrototypeId = "Plating";
public static readonly ProtoId<ContentTileDefinition> TilePrototypeId2 = "FloorCave"; // Delta V - Add cave floor under asteroid rocks
public static readonly ProtoId<TagPrototype> WallTag = "Wall";
public static readonly ProtoId<TagPrototype> NaturalTag = "Natural"; // Delta V - Add cave floor under asteroid rocks
public static readonly ProtoId<TagPrototype> DiagonalTag = "Diagonal";
public void Execute(IConsoleShell shell, string argStr, string[] args)
@ -70,6 +72,8 @@ public sealed class TileWallsCommand : IConsoleCommand
var tagSystem = _entManager.EntitySysManager.GetEntitySystem<TagSystem>();
var underplating = _tileDefManager[TilePrototypeId];
var underplatingTile = new Tile(underplating.TileId);
var naturalunderplating = _tileDefManager[TilePrototypeId2]; // Delta V - Add cave floor under asteroid rocks
var naturalunderplatingTile = new Tile(naturalunderplating.TileId); // Delta V - Add cave floor under asteroid rocks
var changed = 0;
var enumerator = _entManager.GetComponent<TransformComponent>(gridId.Value).ChildEnumerator;
while (enumerator.MoveNext(out var child))
@ -102,9 +106,17 @@ public sealed class TileWallsCommand : IConsoleCommand
if (tileDef.ID == TilePrototypeId)
{
// Delta V - Begin add natural wall tile replace
if (tagSystem.HasTag(child, NaturalTag))
{
mapSystem.SetTile(gridId.Value, grid, childTransform.Coordinates, naturalunderplatingTile);
changed++;
continue;
}
// Delta V - end add natural wall tile replace
continue;
}
mapSystem.SetTile(gridId.Value, grid, childTransform.Coordinates, underplatingTile);
changed++;
}

View File

@ -59,6 +59,12 @@
layer:
- WallLayer
density: 2000
# Delta V - add Tag
- type: Tag
tags:
- Wall
- Natural
# Delta V - end tags
- type: entity
abstract: true
@ -812,6 +818,12 @@
state: rock_north
- map: [ "enum.EdgeLayer.West" ]
state: rock_west
# Delta V - add Tag
- type: Tag
tags:
- Wall
- Natural
# Delta V - end tags
# Ore veins
- type: entity

View File

@ -153,3 +153,18 @@
Blunt: 1.5
Holy: 2.5
Shadow: 0.7
- type: damageModifierSet
id: MountainRock
coefficients:
Structural: 0.25
Blunt: 0.1
Slash: 0.05
Piercing: 0.2
Heat: 0.5
flatReductions:
Structural: 10
Blunt: 15
Slash: 40
Piercing: 15
Heat: 10

View File

@ -1,20 +1,24 @@
- type: entity
id: AsteroidAltRock #It's 1994
parent: BaseStructure
id: BaseAltRock #It's 1994
parent: BaseWall
abstract: true
name: asteroid rock
suffix: Low Ore Yield
description: A rocky asteroid.
components:
- type: Gatherable
toolWhitelist:
tags:
- Pickaxe
- type: Sprite
sprite: _DV/Structures/Walls/asteroid_rock.rsi
state: full
- type: Icon
sprite: _DV/Structures/Walls/asteroid_rock.rsi
state: full
- type: Tag
tags:
- Wall
- Natural
- type: MiningScannerViewable
- type: Damageable
damageContainer: Inorganic
damageModifierSet: Metallic
damageContainer: StructuralInorganic
damageModifierSet: Rock
- type: Destructible
thresholds:
- trigger:
@ -23,15 +27,18 @@
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Occluder
- type: Airtight
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/break_stone.ogg
params:
volume: -6
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
density: 100
density: 2000
mask:
- FullTileMask
layer:
@ -39,18 +46,75 @@
- type: IconSmooth
key: walls
base: rock_
- type: entity
id: AsteroidAltRock
parent: BaseAltRock
suffix: Low Yield, Standard Value
components:
- type: OreVein
oreChance: 0.2
oreRarityPrototypeId: RandomOreDistributionStandard
- type: entity
id: MountainRockMining
id: AsteroidAltRockMining
parent: AsteroidAltRock
suffix: High Yield, Standard Value
components:
- type: OreVein
oreChance: 0.33
oreRarityPrototypeId: RandomOreDistributionStandard
- type: entity
id: AsteroidRockOreCrab
parent: AsteroidAltRock
suffix: Ore Crab
components:
- type: OreVein
oreChance: 0.33
oreRarityPrototypeId: OreCrab
- type: entity
id: MountainRock
parent: BaseAltRock
name: mountain rock
suffix: Low Yield/Higher Value Ore
description: A craggy mountain wall.
suffix: Un-mineable
components:
- type: Sprite
sprite: _DV/Structures/Walls/mountain_rock.rsi
state: full
drawdepth: Walls
- type: Icon
sprite: _DV/Structures/Walls/mountain_rock.rsi
state: full
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: MountainRock
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 1500
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/break_stone.ogg
params:
volume: -6
- type: entity
id: MountainRockMining
parent: MountainRock
suffix: Low Yield, High Value
components:
- type: Sprite
sprite: _DV/Structures/Walls/mountain_rock_ore.rsi
state: full
drawdepth: Walls
- type: Icon
sprite: _DV/Structures/Walls/mountain_rock_ore.rsi
state: full
- type: Destructible
@ -61,70 +125,14 @@
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/break_stone.ogg
params:
volume: -6
- type: Damageable
damageContainer: StructuralInorganic
damageModifierSet: Rock
- type: OreVein
oreChance: 0.20
oreRarityPrototypeId: RandomOreDistributionHigh
- type: entity
id: MountainRock
parent: BaseStructure
name: mountain rock
suffix: Un-mineable
description: A craggy mountain wall. It is too hard to mine.
components:
- type: Sprite
sprite: _DV/Structures/Walls/mountain_rock.rsi
state: full
- type: Damageable
damageContainer: Inorganic
damageModifierSet: StrongMetallic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 1500
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Occluder
- type: Airtight
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.5,-0.5,0.5,0.5"
density: 100
mask:
- FullTileMask
layer:
- WallLayer
- type: IconSmooth
key: walls
base: rock_
- type: entity
id: AsteroidAltRockMining
parent: AsteroidAltRock
name: asteroid rock
suffix: Higher Ore Yield
description: A rocky asteroid.
components:
- type: Gatherable
toolWhitelist:
tags:
- Pickaxe
- type: OreVein
oreChance: 0.33
oreRarityPrototypeId: RandomOreDistributionStandard
- type: entity
id: AsteroidRockOreCrab
parent: AsteroidAltRock
name: asteroid rock
suffix: Ore Crab
description: A rocky asteroid.
components:
- type: OreVein
oreChance: 0.33
oreRarityPrototypeId: OreCrab

View File

@ -141,6 +141,9 @@
- type: Tag
id: MothroachHide
- type: Tag
id: Natural
- type: Tag
id: NormalityCrystal