Fix yaml linter and misc errors (#37444)

* Fix yaml linter

* Revert "fix cluwne pda pen slot (#35611)"

This reverts commit 66e926843f.

* More fixes

* Try again with the engine requirement removed

* Decrease number of brass sheets dropped by clockwork windoors

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
This commit is contained in:
Leon Friedrich
2025-07-10 16:25:36 +12:00
committed by GitHub
parent 00826aaad6
commit f915157b96
37 changed files with 71 additions and 66 deletions

View File

@@ -238,6 +238,9 @@ namespace Content.Client.Light.Components
public override void OnInitialize() public override void OnInitialize()
{ {
// This is very janky. This could easily result in no visible animation at all if the random values happen
// to all be close to each other.
// TODO ANIMATIONS
_randomValue1 = (float)InterpolateLinear(StartValue, EndValue, (float)_random.NextDouble()); _randomValue1 = (float)InterpolateLinear(StartValue, EndValue, (float)_random.NextDouble());
_randomValue2 = (float)InterpolateLinear(StartValue, EndValue, (float)_random.NextDouble()); _randomValue2 = (float)InterpolateLinear(StartValue, EndValue, (float)_random.NextDouble());
_randomValue3 = (float)InterpolateLinear(StartValue, EndValue, (float)_random.NextDouble()); _randomValue3 = (float)InterpolateLinear(StartValue, EndValue, (float)_random.NextDouble());

View File

@@ -121,6 +121,8 @@ public abstract partial class SharedStationAiSystem : EntitySystem
Category = VerbCategory.Debug, Category = VerbCategory.Debug,
Act = () => Act = () =>
{ {
if (_net.IsClient)
return;
var brain = SpawnInContainerOrDrop(DefaultAi, ent.Owner, StationAiCoreComponent.Container); var brain = SpawnInContainerOrDrop(DefaultAi, ent.Owner, StationAiCoreComponent.Container);
_mind.ControlMob(user, brain); _mind.ControlMob(user, brain);
}, },

View File

@@ -36,7 +36,9 @@ namespace Content.YAMLLinter
{ {
foreach (var errorNode in errorHashset) foreach (var errorNode in errorHashset)
{ {
Console.WriteLine($"::error file={file},line={errorNode.Node.Start.Line},col={errorNode.Node.Start.Column}::{file}({errorNode.Node.Start.Line},{errorNode.Node.Start.Column}) {errorNode.ErrorReason}"); // TODO YAML LINTER Fix inheritance
// If a parent/abstract prototype has na error, this will misreport the file name (but with the correct line/column).
Console.WriteLine($"::error in {file}({errorNode.Node.Start.Line},{errorNode.Node.Start.Column}) {errorNode.ErrorReason}");
} }
} }
@@ -143,22 +145,24 @@ namespace Content.YAMLLinter
foreach (var (key, val) in clientErrors.YamlErrors) foreach (var (key, val) in clientErrors.YamlErrors)
{ {
var newErrors = val.Where(n => n.AlwaysRelevant).ToHashSet(); var newErrors = val.Where(n => n.AlwaysRelevant).ToHashSet();
if (newErrors.Count == 0)
continue;
if (yamlErrors.TryGetValue(key, out var errors))
errors.UnionWith(val.Where(n => n.AlwaysRelevant));
else
yamlErrors[key] = newErrors;
// Include any errors that relate to client-only types // Include any errors that relate to client-only types
foreach (var errorNode in val) foreach (var errorNode in val)
{ {
if (errorNode is FieldNotFoundErrorNode fieldNotFoundNode && !serverTypes.Contains(fieldNotFoundNode.FieldType.Name)) if (errorNode is FieldNotFoundErrorNode fieldNotFoundNode
&& !serverTypes.Contains(fieldNotFoundNode.FieldType.Name))
{ {
newErrors.Add(errorNode); newErrors.Add(errorNode);
} }
} }
if (newErrors.Count == 0)
continue;
if (yamlErrors.TryGetValue(key, out var errors))
errors.UnionWith(newErrors);
else
yamlErrors[key] = newErrors;
} }
// Finally, combine the prototype ID field errors. // Finally, combine the prototype ID field errors.

View File

@@ -102,6 +102,7 @@
layers: layers:
- state: box - state: box
- state: bodybags - state: bodybags
- type: Storage
whitelist: whitelist:
tags: tags:
- BodyBag - BodyBag

View File

@@ -116,6 +116,7 @@
components: components:
- type: Sprite - type: Sprite
sprite: Clothing/Back/Duffels/mime.rsi sprite: Clothing/Back/Duffels/mime.rsi
- type: Storage
storageOpenSound: storageOpenSound:
collection: null collection: null
storageInsertSound: storageInsertSound:

View File

@@ -91,8 +91,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: PowerCellSlot - type: PowerCellSlot
cellSlotId: cell_slot cellSlotId: cell_slot
@@ -238,8 +238,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: Battery - type: Battery
maxCharge: 600 #lights drain 3/s but recharge of 2 makes this 1/s. Therefore 600 is 10 minutes of light. maxCharge: 600 #lights drain 3/s but recharge of 2 makes this 1/s. Therefore 600 is 10 minutes of light.

View File

@@ -37,8 +37,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: ToggleableVisuals - type: ToggleableVisuals
spriteLayer: light spriteLayer: light

View File

@@ -293,8 +293,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: Battery - type: Battery
maxCharge: 600 maxCharge: 600

View File

@@ -9,7 +9,7 @@
- type: Sprite - type: Sprite
sprite: Interface/Misc/pointing.rsi sprite: Interface/Misc/pointing.rsi
state: pointing state: pointing
drawDepth: Overlays drawdepth: Overlays
noRot: true noRot: true
- type: PointingArrow - type: PointingArrow
duration: 4 duration: 4

View File

@@ -217,8 +217,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: ToggleableVisuals - type: ToggleableVisuals
spriteLayer: light spriteLayer: light

View File

@@ -399,7 +399,6 @@
solution: bloodstream solution: bloodstream
transferAmount: 5 transferAmount: 5
- type: DamageStateVisuals - type: DamageStateVisuals
rotate: true
states: states:
Alive: Alive:
Base: alive Base: alive

View File

@@ -79,7 +79,6 @@
Dead: 0 Dead: 0
baseDecayRate: 0.1 baseDecayRate: 0.1
- type: DamageStateVisuals - type: DamageStateVisuals
rotate: true
states: states:
Alive: Alive:
Base: regalrat Base: regalrat

View File

@@ -79,7 +79,6 @@
groups: groups:
Brute: 6 Brute: 6
- type: DamageStateVisuals - type: DamageStateVisuals
rotate: true
states: states:
Alive: Alive:
Base: running Base: running
@@ -504,7 +503,6 @@
groups: groups:
Brute: 5 Brute: 5
- type: DamageStateVisuals - type: DamageStateVisuals
rotate: true
states: states:
Alive: Alive:
Base: running Base: running

View File

@@ -571,9 +571,9 @@
components: components:
- type: Sprite - type: Sprite
sprite: Structures/Power/Generation/Tesla/energy_miniball.rsi sprite: Structures/Power/Generation/Tesla/energy_miniball.rsi
shader: unshaded
layers: layers:
- state: tesla_projectile - state: tesla_projectile
shader: unshaded
- type: Item - type: Item
inhandVisuals: inhandVisuals:
left: left:
@@ -605,8 +605,9 @@
components: components:
- type: Sprite - type: Sprite
sprite: Objects/Fun/pondering_orb.rsi sprite: Objects/Fun/pondering_orb.rsi
state: icon layers:
shader: unshaded - state: icon
shader: unshaded
- type: PointLight - type: PointLight
radius: 2 radius: 2
color: "#00CCFF" color: "#00CCFF"
@@ -845,7 +846,6 @@
- type: Sprite - type: Sprite
sprite: Objects/Fun/whoopie.rsi sprite: Objects/Fun/whoopie.rsi
state: icon state: icon
quickEquip: false
- type: Tag - type: Tag
tags: tags:
- Payload - Payload

View File

@@ -21,8 +21,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: PowerCellSlot - type: PowerCellSlot
cellSlotId: cell_slot cellSlotId: cell_slot

View File

@@ -73,7 +73,6 @@
description: Get out there and slang some dogs. description: Get out there and slang some dogs.
components: components:
- type: Sprite - type: Sprite
netSync: false
noRot: true noRot: true
sprite: Objects/Specific/Kitchen/food_carts.rsi sprite: Objects/Specific/Kitchen/food_carts.rsi
layers: layers:
@@ -154,7 +153,6 @@
description: It's the Ice Cream Man! It's the Ice Cream Man! description: It's the Ice Cream Man! It's the Ice Cream Man!
components: components:
- type: Sprite - type: Sprite
netSync: false
noRot: true noRot: true
sprite: Objects/Specific/Kitchen/food_carts.rsi sprite: Objects/Specific/Kitchen/food_carts.rsi
layers: layers:

View File

@@ -24,8 +24,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: ToggleableVisuals - type: ToggleableVisuals
spriteLayer: light spriteLayer: light

View File

@@ -134,8 +134,8 @@
- !type:PulseBehaviour - !type:PulseBehaviour
interpolate: Cubic interpolate: Cubic
maxDuration: 10.0 maxDuration: 10.0
minValue: 1.0 startValue: 1.0
maxValue: 7.0 endValue: 7.0
isLooped: true isLooped: true
property: Energy property: Energy
enabled: true enabled: true
@@ -198,7 +198,7 @@
interpolate: Nearest interpolate: Nearest
minDuration: 0.2 minDuration: 0.2
maxDuration: 1.0 maxDuration: 1.0
maxValue: 0.2 endValue: 0.2
property: AnimatedEnable property: AnimatedEnable
isLooped: true isLooped: true
enabled: true enabled: true
@@ -237,8 +237,8 @@
- !type:FadeBehaviour - !type:FadeBehaviour
interpolate: Cubic interpolate: Cubic
maxDuration: 5.0 maxDuration: 5.0
minValue: 0.0 startValue: 0.0
maxValue: 10.0 endValue: 10.0
isLooped: true isLooped: true
property: Energy property: Energy
enabled: true enabled: true
@@ -269,8 +269,8 @@
interpolate: Cubic interpolate: Cubic
minDuration: 1.0 minDuration: 1.0
maxDuration: 5.0 maxDuration: 5.0
minValue: 2.0 startValue: 2.0
maxValue: 10.0 endValue: 10.0
isLooped: true isLooped: true
enabled: true enabled: true
@@ -300,7 +300,7 @@
- !type:RandomizeBehaviour - !type:RandomizeBehaviour
interpolate: Nearest interpolate: Nearest
maxDuration: 0.5 maxDuration: 0.5
minValue: 10.0 startValue: 10.0
maxValue: 25.0 endValue: 25.0
isLooped: true isLooped: true
enabled: true enabled: true

View File

@@ -21,8 +21,8 @@
id: blinking id: blinking
interpolate: Nearest interpolate: Nearest
maxDuration: 1.0 maxDuration: 1.0
minValue: 0.1 startValue: 0.1
maxValue: 2.0 endValue: 2.0
isLooped: true isLooped: true
- type: Sprite - type: Sprite
sprite: Objects/Tools/lantern.rsi sprite: Objects/Tools/lantern.rsi

View File

@@ -106,7 +106,7 @@
proto: CartridgeCaselessRifle proto: CartridgeCaselessRifle
capacity: 10 capacity: 10
- type: Sprite - type: Sprite
slayers: layers:
- state: base - state: base
map: ["enum.GunVisualLayers.Base"] map: ["enum.GunVisualLayers.Base"]
- state: mag-1 - state: mag-1

View File

@@ -6,6 +6,7 @@
components: components:
- type: Sprite - type: Sprite
sprite: Structures/Doors/Windoors/clockwork_windoor.rsi sprite: Structures/Doors/Windoors/clockwork_windoor.rsi
- type: Destructible
thresholds: thresholds:
- trigger: - trigger:
!type:DamageTrigger !type:DamageTrigger
@@ -23,8 +24,8 @@
min: 1 min: 1
max: 2 max: 2
SheetBrass1: SheetBrass1:
min: 2 min: 0
max: 4 max: 2
- !type:DoActsBehavior - !type:DoActsBehavior
acts: [ "Destruction" ] acts: [ "Destruction" ]
- type: Construction - type: Construction

View File

@@ -77,10 +77,10 @@
- GhostOnlyWarp - GhostOnlyWarp
- type: Sprite - type: Sprite
sprite: Structures/Power/Generation/Singularity/singularity_1.rsi sprite: Structures/Power/Generation/Singularity/singularity_1.rsi
shader: unshaded
layers: layers:
- map: [ "VisualLevel" ] - map: [ "VisualLevel" ]
state: singularity_1 state: singularity_1
shader: unshaded
- type: GenericVisualizer - type: GenericVisualizer
visuals: visuals:
enum.SingularityAppearanceKeys.Singularity: enum.SingularityAppearanceKeys.Singularity:

View File

@@ -101,9 +101,9 @@
- type: Sprite - type: Sprite
drawdepth: Effects drawdepth: Effects
sprite: Structures/Power/Generation/Tesla/energy_ball.rsi sprite: Structures/Power/Generation/Tesla/energy_ball.rsi
shader: unshaded
layers: layers:
- state: energy_ball - state: energy_ball
shader: unshaded
- type: EmitSoundOnSpawn - type: EmitSoundOnSpawn
sound: sound:
path: /Audio/Effects/tesla_collapse.ogg path: /Audio/Effects/tesla_collapse.ogg
@@ -149,8 +149,8 @@
- type: Sprite - type: Sprite
drawdepth: Effects drawdepth: Effects
sprite: Structures/Power/Generation/Tesla/energy_miniball.rsi sprite: Structures/Power/Generation/Tesla/energy_miniball.rsi
shader: unshaded
layers: layers:
- state: tesla_projectile - state: tesla_projectile
shader: unshaded
- type: Electrified - type: Electrified
requirePower: false requirePower: false

View File

@@ -173,7 +173,6 @@
sprite: Structures/Power/Cables/lv_cable.rsi sprite: Structures/Power/Cables/lv_cable.rsi
state: lvcable_0 state: lvcable_0
- type: Icon - type: Icon
color: Green
sprite: Structures/Power/Cables/lv_cable.rsi sprite: Structures/Power/Cables/lv_cable.rsi
state: lvcable_4 state: lvcable_4
- type: NodeContainer - type: NodeContainer

View File

@@ -316,7 +316,7 @@
max: 1 max: 1
- type: Appearance - type: Appearance
- type: EntityStorageVisuals - type: EntityStorageVisuals
stateBase: base # stateBase: base // This field does not exist. this is probably a bug. TODO
stateDoorOpen: base stateDoorOpen: base
stateDoorClosed: door stateDoorClosed: door
- type: LockVisuals - type: LockVisuals

View File

@@ -66,7 +66,7 @@
color: FloralWhite color: FloralWhite
textOffset: 0,6 textOffset: 0,6
timerOffset: 0,6 timerOffset: 0,6
textLength: 5 # textLength: 5 This field does not exist. Bug?
rows: 1 rows: 1
- type: Sprite - type: Sprite
drawdepth: WallMountedItems drawdepth: WallMountedItems

View File

@@ -2003,7 +2003,7 @@
- map: [ "enum.EdgeLayer.West" ] - map: [ "enum.EdgeLayer.West" ]
state: rock_chromite_west state: rock_chromite_west
- state: rock_coal - state: rock_coal
map: [ "enum.MiningScannerVisualLayers.Overlay" ] map: [ "enum.MiningScannerVisualLayers.Overlay" ]
- type: entity - type: entity
id: WallRockChromiteGold id: WallRockChromiteGold

View File

@@ -48,5 +48,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -36,5 +36,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -37,5 +37,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -37,5 +37,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -34,7 +34,7 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false
# Because hyperspace and the menu need their own. # Because hyperspace and the menu need their own.
@@ -71,6 +71,6 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.5 slowness: 0.5
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -36,5 +36,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -36,5 +36,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -37,5 +37,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -49,5 +49,5 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
layersLQUseHQ: false layersLQUseHQ: false

View File

@@ -63,6 +63,6 @@
!type:GeneratedParallaxTextureSource !type:GeneratedParallaxTextureSource
id: "" id: ""
configPath: "/Prototypes/Parallaxes/parallax_config.toml" configPath: "/Prototypes/Parallaxes/parallax_config.toml"
slowness: 0.875 slowness: 0.875
scrolling: "0, -0.475" scrolling: "0, -0.475"
layersLQUseHQ: false layersLQUseHQ: false