diff --git a/Content.Client/Actions/ActionsSystem.cs b/Content.Client/Actions/ActionsSystem.cs index 1f4b38e7670..19e8409e4f8 100644 --- a/Content.Client/Actions/ActionsSystem.cs +++ b/Content.Client/Actions/ActionsSystem.cs @@ -236,6 +236,7 @@ namespace Content.Client.Actions var actions = EnsureComp(user); + ClearActions(); // DeltaV - this is needed here for mapping XX commands to work properly ClearAssignments?.Invoke(); var assignments = new List(); @@ -290,6 +291,7 @@ namespace Content.Client.Actions } } + // DeltaV - begin changes /// /// 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(user); - ClearAssignments?.Invoke(); + // We need to clear previously loaded actions, otherwise they keep adding up, filling the screen + ClearActions(); - var assignments = new List(); - 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 ent, ref ActionTargetAttemptEvent args) { if (args.Handled) diff --git a/Resources/mapping_actions_alarms.yml b/Resources/mapping_actions_alarms.yml index ce569d7d052..be434f5f102 100644 --- a/Resources/mapping_actions_alarms.yml +++ b/Resources/mapping_actions_alarms.yml @@ -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 ... diff --git a/Resources/mapping_actions_deltav.yml b/Resources/mapping_actions_deltav.yml index 2cf8994595d..b40086fc247 100644 --- a/Resources/mapping_actions_deltav.yml +++ b/Resources/mapping_actions_deltav.yml @@ -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 ... diff --git a/Resources/mapping_actions_deltav_shuttles.yml b/Resources/mapping_actions_deltav_shuttles.yml index 8e6122a10ce..65efa338bce 100644 --- a/Resources/mapping_actions_deltav_shuttles.yml +++ b/Resources/mapping_actions_deltav_shuttles.yml @@ -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 diff --git a/Resources/mapping_actions_disposals.yml b/Resources/mapping_actions_disposals.yml index bcccbefc17e..410d04a6279 100644 --- a/Resources/mapping_actions_disposals.yml +++ b/Resources/mapping_actions_disposals.yml @@ -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 ... diff --git a/Resources/mapping_actions_pipes.yml b/Resources/mapping_actions_pipes.yml index 5799fead740..899f5f649d1 100644 --- a/Resources/mapping_actions_pipes.yml +++ b/Resources/mapping_actions_pipes.yml @@ -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 ... diff --git a/Resources/mapping_actions_power.yml b/Resources/mapping_actions_power.yml index f1e59b9789b..123743e526e 100644 --- a/Resources/mapping_actions_power.yml +++ b/Resources/mapping_actions_power.yml @@ -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 ...