Bugfix: loadacts no longer broken and related issues (#4227)

fix
This commit is contained in:
Quanteey
2025-08-18 13:51:12 +00:00
committed by GitHub
parent 3ff9ba2f4d
commit 064923a6be
7 changed files with 88 additions and 731 deletions
+26 -6
View File
@@ -236,6 +236,7 @@ namespace Content.Client.Actions
var actions = EnsureComp<ActionsComponent>(user);
ClearActions(); // DeltaV - this is needed here for mapping XX commands to work properly
ClearAssignments?.Invoke();
var assignments = new List<SlotAssignment>();
@@ -290,6 +291,7 @@ namespace Content.Client.Actions
}
}
// DeltaV - begin changes
/// <summary>
/// Load actions and their toolbar assignments from a file.
/// DeltaV - Load from an existing yaml stream instead
@@ -299,17 +301,15 @@ namespace Content.Client.Actions
if (_playerManager.LocalEntity is not { } user)
return;
var yamlStream = new YamlStream();
if (yamlStream.Documents[0].RootNode.ToDataNode() is not SequenceDataNode sequence)
if (stream.Documents[0].RootNode.ToDataNode() is not SequenceDataNode sequence)
return;
var actions = EnsureComp<ActionsComponent>(user);
ClearAssignments?.Invoke();
// We need to clear previously loaded actions, otherwise they keep adding up, filling the screen
ClearActions();
var assignments = new List<SlotAssignment>();
var existingActions = GetClientActions();
ClearAssignments?.Invoke();
foreach (var entry in sequence.Sequence)
{
@@ -362,6 +362,26 @@ namespace Content.Client.Actions
}
}
private void ClearActions()
{
var existingActions = GetClientActions().ToList();
foreach (var actionId in existingActions)
{
var meta = MetaData(actionId);
if (meta.EntityPrototype == null)
continue;
if (meta.EntityPrototype.ID == MappingEntityAction ||
meta.EntityPrototype.ID == "ActionMappingEraser")
{
RemoveAction(actionId.AsNullable());
}
}
}
// DeltaV - end changes
private void OnWorldTargetAttempt(Entity<WorldTargetActionComponent> ent, ref ActionTargetAttemptEvent args)
{
if (args.Handled)
+10 -118
View File
@@ -1,139 +1,31 @@
- action: !type:InstantActionComponent
icon:
entity: AirAlarm
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: AirAlarm
- entity: AirAlarm
assignments:
- 0: 1
name: Air Alarm
- action: !type:InstantActionComponent
icon:
entity: FireAlarm
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: FireAlarm
- entity: FireAlarm
assignments:
- 0: 2
name: Fire Alarm
- action: !type:InstantActionComponent
icon:
entity: AirSensor
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: AirSensor
- entity: AirSensor
assignments:
- 0: 3
name: Air Sensor
- action: !type:InstantActionComponent
icon:
entity: Firelock
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: Firelock
- entity: Firelock
assignments:
- 0: 4
name: Firelock
- action: !type:InstantActionComponent
icon:
entity: FirelockGlass
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: FirelockGlass
- entity: FirelockGlass
assignments:
- 0: 5
name: Firelock Glass
- action: !type:InstantActionComponent
icon:
entity: FirelockEdge
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: FirelockEdge
- entity: FirelockEdge
assignments:
- 0: 6
name: Firelock Edge
- action: !type:InstantActionComponent
icon:
entity: Multitool
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: Multitool
- entity: Multitool
assignments:
- 0: 7
name: Multitool
- action: !type:InstantActionComponent
icon:
entity: GasVentScrubber
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasVentScrubber
- entity: GasVentScrubber
assignments:
- 0: 8
name: Gas Vent Scrubber
- action: !type:InstantActionComponent
icon:
entity: GasVentPump
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasVentPump
- entity: GasVentPump
assignments:
- 0: 9
name: Gas Vent Pump
- action: !type:InstantActionComponent
icon: Interface/VerbIcons/delete.svg.192dpi.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
eraser: True
- action: ActionMappingEraser
assignments:
- 0: 0
name: action-name-mapping-erase
...
+10 -115
View File
@@ -1,136 +1,31 @@
- action: !type:InstantActionComponent
icon:
entity: WallSolid
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: WallSolid
- entity: WallSolid
assignments:
- 0: 1
name: Wall Solid
- action: !type:InstantActionComponent
icon:
entity: WallReinforced
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: WallReinforced
- entity: WallReinforced
assignments:
- 0: 2
name: WallReinforced
- action: !type:InstantActionComponent
icon:
entity: Window
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: Window
- entity: Window
assignments:
- 0: 3
name: Window
- action: !type:InstantActionComponent
icon:
entity: ReinforcedWindow
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: ReinforcedWindow
- entity: ReinforcedWindow
assignments:
- 0: 4
name: ReinforcedWindow
- action: !type:InstantActionComponent
icon:
entity: Grille
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: Grille
- entity: Grille
assignments:
- 0: 5
name: Grille
- action: !type:InstantActionComponent
icon: /Textures/Tiles/steel.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: AlignTileAny
tileId: FloorSteel
- tileId: FloorSteel
assignments:
- 0: 6
name: steel floor
- action: !type:InstantActionComponent
icon:
entity: Firelock
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: Firelock
- entity: Firelock
assignments:
- 0: 7
name: Firelock
- action: !type:InstantActionComponent
icon: /Textures/Tiles/plating.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: AlignTileAny
tileId: Plating
- tileId: Plating
assignments:
- 0: 8
name: plating
- action: !type:InstantActionComponent
icon: /Textures/Tiles/cropped_parallax.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: AlignTileAny
tileId: Space
- tileId: Space
assignments:
- 0: 9
name: space
- action: !type:InstantActionComponent
icon: Interface/VerbIcons/delete.svg.192dpi.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
eraser: True
- action: ActionMappingEraser
assignments:
- 0: 0
name: action-name-mapping-erase
...
+12 -137
View File
@@ -1,162 +1,37 @@
- action: !type:InstantActionComponent
icon: Interface/VerbIcons/delete.svg.192dpi.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
eraser: True
- action: ActionMappingEraser
assignments:
- 0: 0
name: action-name-mapping-erase
- action: !type:InstantActionComponent
icon:
entity: WallShuttle
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: WallShuttle
- entity: WallShuttle
assignments:
- 0: 1
name: Wall Shuttle
- action: !type:InstantActionComponent
icon:
entity: WallShuttleInterior
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: WallShuttleInterior
- entity: WallShuttleInterior
assignments:
- 0: 2
name: Wall Shuttle Interior
- action: !type:InstantActionComponent
icon:
entity: ShuttleWindow
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: ShuttleWindow
- entity: ShuttleWindow
assignments:
- 0: 3
name: Window Shuttle
- action: !type:InstantActionComponent
icon:
entity: Grille
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: Grille
- entity: Grille
assignments:
- 0: 4
name: Grille
- action: !type:InstantActionComponent
icon: /Textures/Tiles/steel.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: AlignTileAny
tileId: FloorSteel
- tileId: FloorSteel
assignments:
- 0: 5
name: steel floor
- action: !type:InstantActionComponent
icon: /Textures/Tiles/plating.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: AlignTileAny
tileId: Plating
- tileId: Plating
assignments:
- 0: 6
name: plating
- action: !type:InstantActionComponent
icon: /Textures/Tiles/lattice.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: AlignTileAny
tileId: Lattice
- tileId: Lattice
assignments:
- 0: 7
name: lattice
- action: !type:InstantActionComponent
icon: /Textures/Tiles/cropped_parallax.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: AlignTileAny
tileId: Space
- tileId: Space
assignments:
- 0: 8
name: space
- action: !type:InstantActionComponent
icon:
entity: WallShuttleDiagonal
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: WallShuttleDiagonal
- entity: WallShuttleDiagonal
assignments:
- 0: 9
name: Wall Shuttle Diagonal
- action: !type:InstantActionComponent
icon:
entity: ShuttleWindowDiagonal
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: ShuttleWindowDiagonal
- entity: ShuttleWindowDiagonal
assignments:
- 0: 10
name: Window Shuttle Diagonal
- action: !type:InstantActionComponent
icon:
entity: GrilleDiagonal
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GrilleDiagonal
- entity: GrilleDiagonal
assignments:
- 0: 11
name: Grille Diagonal
+10 -119
View File
@@ -1,140 +1,31 @@
- action: !type:InstantActionComponent
icon:
entity: DisposalUnit
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalUnit
- entity: DisposalUnit
assignments:
- 0: 1
name: Disposal Unit
- action: !type:InstantActionComponent
icon:
entity: DisposalTrunk
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalTrunk
- entity: DisposalTrunk
assignments:
- 0: 2
name: Disposal Trunk
- action: !type:InstantActionComponent
icon:
entity: DisposalPipe
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalPipe
- entity: DisposalPipe
assignments:
- 0: 3
name: Disposal Pipe
- action: !type:InstantActionComponent
icon:
entity: DisposalBend
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalBend
- entity: DisposalBend
assignments:
- 0: 4
name: Disposal Bend
- action: !type:InstantActionComponent
icon:
entity: DisposalJunction
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalJunction
- entity: DisposalJunction
assignments:
- 0: 5
name: Disposal Junction
- action: !type:InstantActionComponent
icon:
entity: DisposalJunctionFlipped
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalJunctionFlipped
- entity: DisposalJunctionFlipped
assignments:
- 0: 6
name: Disposal Junction Flipped
- action: !type:InstantActionComponent
icon:
entity: DisposalYJunction
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalYJunction
- entity: DisposalYJunction
assignments:
- 0: 7
name: Disposal Y-Junction
- action: !type:InstantActionComponent
icon:
entity: DisposalTagger
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: DisposalTagger
- entity: DisposalTagger
assignments:
- 0: 8
name: Disposal Tagger
- action: !type:InstantActionComponent
icon:
entity: SignDisposalSpace
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: SignDisposalSpace
- entity: SignDisposalSpace
assignments:
- 0: 9
name: Sign Disposal Space
- action: !type:InstantActionComponent
icon: Interface/VerbIcons/delete.svg.192dpi.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
eraser: True
- action: ActionMappingEraser
assignments:
- 0: 0
name: action-name-mapping-erase
...
+10 -118
View File
@@ -1,139 +1,31 @@
- action: !type:InstantActionComponent
icon:
entity: GasPipeStraight
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasPipeStraight
- entity: GasPipeStraight
assignments:
- 0: 1
name: Gas Pipe Straight
- action: !type:InstantActionComponent
icon:
entity: GasPipeBend
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasPipeBend
- entity: GasPipeBend
assignments:
- 0: 2
name: Gas Pipe Bend
- action: !type:InstantActionComponent
icon:
entity: GasPipeTJunction
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasPipeTJunction
- entity: GasPipeTJunction
assignments:
- 0: 3
name: Gas Pipe T-Junction
- action: !type:InstantActionComponent
icon:
entity: GasPipeFourway
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasPipeFourway
- entity: GasPipeFourway
assignments:
- 0: 4
name: Gas Pipe Fourway
- action: !type:InstantActionComponent
icon:
entity: GasVentScrubber
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasVentScrubber
- entity: GasVentScrubber
assignments:
- 0: 5
name: Gas Vent Scrubber
- action: !type:InstantActionComponent
icon:
entity: GasVentPump
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasVentPump
- entity: GasVentPump
assignments:
- 0: 6
name: Gas Vent Pump
- action: !type:InstantActionComponent
icon:
entity: GasVolumePump
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasVolumePump
- entity: GasVolumePump
assignments:
- 0: 7
name: Gas Volume Pump
- action: !type:InstantActionComponent
EntityIcon:
entity: GasPort
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasPort
- entity: GasPort
assignments:
- 0: 8
name: Gas Port
- action: !type:InstantActionComponent
icon:
entity: GasPressurePump
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: GasPressurePump
- entity: GasPressurePump
assignments:
- 0: 9
name: Gas Pressure Pump
- action: !type:InstantActionComponent
icon: Interface/VerbIcons/delete.svg.192dpi.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
eraser: True
- action: ActionMappingEraser
assignments:
- 0: 0
name: action-name-mapping-erase
...
+10 -118
View File
@@ -1,139 +1,31 @@
- action: !type:InstantActionComponent
icon:
entity: APCBasic
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: APCBasic
- entity: APCBasic
assignments:
- 0: 1
name: APC Basic
- action: !type:InstantActionComponent
icon:
entity: CableApcExtension
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: CableApcExtension
- entity: CableApcExtension
assignments:
- 0: 2
name: Cable ApcExtension
- action: !type:InstantActionComponent
icon:
entity: CableMV
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: CableMV
- entity: CableMV
assignments:
- 0: 3
name: Cable MV
- action: !type:InstantActionComponent
icon:
entity: CableHV
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: CableHV
- entity: CableHV
assignments:
- 0: 4
name: Cable HV
- action: !type:InstantActionComponent
icon:
entity: SubstationBasic
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: SubstationBasic
- entity: SubstationBasic
assignments:
- 0: 5
name: Substation Basic
- action: !type:InstantActionComponent
icon:
entity: SMESBasic
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: SMESBasic
- entity: SMESBasic
assignments:
- 0: 6
name: SMES Basic
- action: !type:InstantActionComponent
icon:
entity: CableTerminal
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: CableTerminal
- entity: CableTerminal
assignments:
- 0: 7
name: Cable Terminal
- action: !type:InstantActionComponent
icon:
entity: Poweredlight
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: Poweredlight
- entity: Poweredlight
assignments:
- 0: 8
name: Powered light
- action: !type:InstantActionComponent
icon:
entity: PoweredSmallLightMaintenance
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
placementOption: SnapgridCenter
entityType: PoweredSmallLightMaintenance
- entity: PoweredSmallLightMaintenance
assignments:
- 0: 9
name: Small Light Maintenance
- action: !type:InstantActionComponent
icon: Interface/VerbIcons/delete.svg.192dpi.png
keywords: []
checkCanInteract: False
clientExclusive: True
autoPopulate: False
temporary: True
event: !type:StartPlacementActionEvent
eraser: True
- action: ActionMappingEraser
assignments:
- 0: 0
name: action-name-mapping-erase
...