Cyborg module action icons (#32505)
* Init * added jani and medical * + sci and service modules * + syndi modules * fixing up * geiger counter stuff
@@ -60,6 +60,10 @@ public sealed partial class BorgSystem
|
||||
|
||||
if (_actions.AddAction(chassis, ref component.ModuleSwapActionEntity, out var action, component.ModuleSwapActionId, uid))
|
||||
{
|
||||
if(TryComp<BorgModuleIconComponent>(uid, out var moduleIconComp))
|
||||
{
|
||||
action.Icon = moduleIconComp.Icon;
|
||||
};
|
||||
action.EntityIcon = uid;
|
||||
Dirty(component.ModuleSwapActionEntity.Value, action);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
//using Robust.Shared.GameObjects;
|
||||
using Robust.Shared.GameStates;
|
||||
using Robust.Shared.Utility;
|
||||
|
||||
namespace Content.Shared.Silicons.Borgs.Components;
|
||||
|
||||
/// <summary>
|
||||
/// This is used to override the action icon for cyborg actions.
|
||||
/// Without this component the no-action state will be used.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent]
|
||||
public sealed partial class BorgModuleIconComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// The action icon for this module
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public SpriteSpecifier.Rsi Icon = default!;
|
||||
|
||||
}
|
||||
@@ -10,6 +10,8 @@
|
||||
- type: Sprite
|
||||
sprite: Objects/Specific/Robotics/borgmodule.rsi
|
||||
- type: BorgModule
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: no-action }
|
||||
- type: StaticPrice
|
||||
price: 100
|
||||
- type: Tag
|
||||
@@ -35,7 +37,7 @@
|
||||
description: Select this module, enabling you to use the tools it provides.
|
||||
components:
|
||||
- type: InstantAction
|
||||
itemIconStyle: BigItem
|
||||
itemIconStyle: BigAction
|
||||
useDelay: 0.5
|
||||
event: !type:BorgModuleActionSelectedEvent
|
||||
|
||||
@@ -119,6 +121,8 @@
|
||||
- CableHVStackLingering10
|
||||
- Wirecutter
|
||||
- trayScanner
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: wire-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleFireExtinguisher
|
||||
@@ -132,6 +136,8 @@
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- FireExtinguisher
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: extinguisher-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleGPS
|
||||
@@ -147,6 +153,8 @@
|
||||
- HandheldGPSBasic
|
||||
- HandHeldMassScannerBorg
|
||||
- HandheldStationMapUnpowered
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: gps-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleRadiationDetection
|
||||
@@ -160,6 +168,8 @@
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- GeigerCounter
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: geiger-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleTool
|
||||
@@ -178,6 +188,8 @@
|
||||
- Wirecutter
|
||||
- Multitool
|
||||
- WelderIndustrial
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: tool-module }
|
||||
|
||||
# cargo modules
|
||||
- type: entity
|
||||
@@ -192,6 +204,8 @@
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- AppraisalTool
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: appraisal-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleMining
|
||||
@@ -210,6 +224,8 @@
|
||||
- OreBag
|
||||
- Crowbar
|
||||
- RadioHandheld
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: mining-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleGrapplingGun
|
||||
@@ -224,6 +240,8 @@
|
||||
items:
|
||||
- WeaponGrapplingGun
|
||||
- HandheldGPSBasic
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: grappling-module }
|
||||
|
||||
# engineering modules
|
||||
- type: entity
|
||||
@@ -244,6 +262,8 @@
|
||||
- RemoteSignaller
|
||||
- GasAnalyzer
|
||||
- GeigerCounter
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-tools-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleConstruction
|
||||
@@ -260,6 +280,8 @@
|
||||
- SheetGlassLingering0
|
||||
- PartRodMetalLingering0
|
||||
- FloorTileItemSteelLingering0
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: construction-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleRCD
|
||||
@@ -273,6 +295,8 @@
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- RCDRecharging
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: rcd-module }
|
||||
|
||||
# janitorial modules (this gets its own unique things because janis are epic)
|
||||
- type: entity
|
||||
@@ -289,6 +313,8 @@
|
||||
- LightReplacer
|
||||
- Crowbar
|
||||
- Screwdriver
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: light-replacer-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleCleaning
|
||||
@@ -304,6 +330,8 @@
|
||||
- MopItem
|
||||
- Bucket
|
||||
- TrashBag
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: cleaning-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleAdvancedCleaning
|
||||
@@ -321,6 +349,8 @@
|
||||
- SprayBottleSpaceCleaner
|
||||
- Dropper
|
||||
- TrashBag
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-cleaning-module }
|
||||
|
||||
# medical modules
|
||||
- type: entity
|
||||
@@ -336,6 +366,8 @@
|
||||
items:
|
||||
- HandheldHealthAnalyzerUnpowered
|
||||
- ClothingNeckStethoscope
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: diagnosis-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleTreatment
|
||||
@@ -354,6 +386,8 @@
|
||||
- Gauze10Lingering
|
||||
- Bloodpack10Lingering
|
||||
- Syringe
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: treatment-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleDefibrillator
|
||||
@@ -367,6 +401,8 @@
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- DefibrillatorOneHandedUnpowered
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: defib-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleAdvancedTreatment
|
||||
@@ -384,6 +420,8 @@
|
||||
- Beaker
|
||||
- BorgDropper
|
||||
- BorgHypo
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-diagnosis-module }
|
||||
|
||||
# science modules
|
||||
# todo: if science ever gets their own custom robot, add more "sci" modules.
|
||||
@@ -399,6 +437,8 @@
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- NodeScanner
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: node-scanner-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleAnomaly
|
||||
@@ -416,6 +456,8 @@
|
||||
- AnomalyLocatorWideUnpowered
|
||||
- RemoteSignaller
|
||||
- Multitool
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: anomaly-module }
|
||||
|
||||
# service modules
|
||||
- type: entity
|
||||
@@ -435,6 +477,8 @@
|
||||
- Lighter
|
||||
- DrinkShaker
|
||||
- BorgDropper
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: service-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleMusique
|
||||
@@ -450,6 +494,8 @@
|
||||
- SynthesizerInstrument
|
||||
- ElectricGuitarInstrument
|
||||
- SaxophoneInstrument
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: musical-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleGardening
|
||||
@@ -466,6 +512,8 @@
|
||||
- HydroponicsToolSpade
|
||||
- HydroponicsToolClippers
|
||||
- Bucket
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: gardening-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleHarvesting
|
||||
@@ -481,6 +529,8 @@
|
||||
- HydroponicsToolScythe
|
||||
- HydroponicsToolHatchet
|
||||
- PlantBag
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: harvesting-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleClowning
|
||||
@@ -496,6 +546,8 @@
|
||||
- BikeHorn
|
||||
- ClownRecorder
|
||||
- BikeHornInstrument
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: clowning-module }
|
||||
|
||||
#syndicate modules
|
||||
- type: entity
|
||||
@@ -511,6 +563,8 @@
|
||||
items:
|
||||
- WeaponPistolEchis
|
||||
- EnergyDaggerLoud
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-weapon-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleOperative
|
||||
@@ -527,6 +581,8 @@
|
||||
- Crowbar
|
||||
- Emag
|
||||
- PinpointerSyndicateNuclear
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-operative-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleEsword
|
||||
@@ -542,6 +598,8 @@
|
||||
items:
|
||||
- CyborgEnergySwordDouble
|
||||
- PinpointerSyndicateNuclear
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-esword-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleL6C
|
||||
@@ -557,6 +615,8 @@
|
||||
items:
|
||||
- WeaponLightMachineGunL6C
|
||||
- PinpointerSyndicateNuclear
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-l6c-module }
|
||||
|
||||
- type: entity
|
||||
id: BorgModuleMartyr
|
||||
@@ -571,3 +631,5 @@
|
||||
- type: ItemBorgModule
|
||||
items:
|
||||
- SelfDestructSeq
|
||||
- type: BorgModuleIcon
|
||||
icon: { sprite: Interface/Actions/actions_borg.rsi, state: syndicate-martyr-module }
|
||||
|
||||
|
After Width: | Height: | Size: 745 B |
|
After Width: | Height: | Size: 620 B |
|
After Width: | Height: | Size: 1022 B |
|
After Width: | Height: | Size: 794 B |
|
After Width: | Height: | Size: 811 B |
|
After Width: | Height: | Size: 567 B |
|
After Width: | Height: | Size: 990 B |
|
After Width: | Height: | Size: 538 B |
|
After Width: | Height: | Size: 862 B |
|
After Width: | Height: | Size: 736 B |
|
After Width: | Height: | Size: 625 B |
|
After Width: | Height: | Size: 840 B |
|
After Width: | Height: | Size: 760 B |
|
After Width: | Height: | Size: 713 B |
|
After Width: | Height: | Size: 736 B |
|
After Width: | Height: | Size: 849 B |
|
After Width: | Height: | Size: 632 B |
@@ -9,6 +9,99 @@
|
||||
"states": [
|
||||
{
|
||||
"name": "state-laws"
|
||||
},
|
||||
{
|
||||
"name": "no-action"
|
||||
},
|
||||
{
|
||||
"name":"tool-module"
|
||||
},
|
||||
{
|
||||
"name":"wire-module"
|
||||
},
|
||||
{
|
||||
"name":"gps-module"
|
||||
},
|
||||
{
|
||||
"name":"extinguisher-module"
|
||||
},
|
||||
{
|
||||
"name":"geiger-module"
|
||||
},
|
||||
{
|
||||
"name":"rcd-module"
|
||||
},
|
||||
{
|
||||
"name":"adv-tools-module"
|
||||
},
|
||||
{
|
||||
"name":"construction-module"
|
||||
},
|
||||
{
|
||||
"name":"appraisal-module"
|
||||
},
|
||||
{
|
||||
"name":"grappling-module"
|
||||
},
|
||||
{
|
||||
"name":"mining-module"
|
||||
},
|
||||
{
|
||||
"name":"light-replacer-module"
|
||||
},
|
||||
{
|
||||
"name":"cleaning-module"
|
||||
},
|
||||
{
|
||||
"name":"adv-cleaning-module"
|
||||
},
|
||||
{
|
||||
"name":"diagnosis-module"
|
||||
},
|
||||
{
|
||||
"name":"treatment-module"
|
||||
},
|
||||
{
|
||||
"name":"adv-diagnosis-module"
|
||||
},
|
||||
{
|
||||
"name":"defib-module"
|
||||
},
|
||||
{
|
||||
"name":"node-scanner-module"
|
||||
},
|
||||
{
|
||||
"name":"anomaly-module"
|
||||
},
|
||||
{
|
||||
"name":"service-module"
|
||||
},
|
||||
{
|
||||
"name":"musical-module"
|
||||
},
|
||||
{
|
||||
"name":"gardening-module"
|
||||
},
|
||||
{
|
||||
"name":"harvesting-module"
|
||||
},
|
||||
{
|
||||
"name":"clowning-module"
|
||||
},
|
||||
{
|
||||
"name":"syndicate-weapon-module"
|
||||
},
|
||||
{
|
||||
"name":"syndicate-operative-module"
|
||||
},
|
||||
{
|
||||
"name":"syndicate-esword-module"
|
||||
},
|
||||
{
|
||||
"name":"syndicate-l6c-module"
|
||||
},
|
||||
{
|
||||
"name":"syndicate-martyr-module"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 648 B |
|
After Width: | Height: | Size: 493 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 813 B |
|
After Width: | Height: | Size: 781 B |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 782 B |
|
After Width: | Height: | Size: 638 B |
|
After Width: | Height: | Size: 743 B |
|
After Width: | Height: | Size: 624 B |
|
After Width: | Height: | Size: 593 B |
|
After Width: | Height: | Size: 886 B |
|
After Width: | Height: | Size: 721 B |
|
After Width: | Height: | Size: 830 B |