From: ScarKy0 <106310278+ScarKy0@users.noreply.github.com> Date: Mon, 14 Oct 2024 07:05:40 +0000 (+0200) Subject: Cyborg module action icons (#32505) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=5be82d2a7f98c29bef2c8e9dcfe28899e36800fa;p=space-station-14.git Cyborg module action icons (#32505) * Init * added jani and medical * + sci and service modules * + syndi modules * fixing up * geiger counter stuff --- diff --git a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs index f289752b7c..d5a429db03 100644 --- a/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs +++ b/Content.Server/Silicons/Borgs/BorgSystem.Modules.cs @@ -60,6 +60,10 @@ public sealed partial class BorgSystem if (_actions.AddAction(chassis, ref component.ModuleSwapActionEntity, out var action, component.ModuleSwapActionId, uid)) { + if(TryComp(uid, out var moduleIconComp)) + { + action.Icon = moduleIconComp.Icon; + }; action.EntityIcon = uid; Dirty(component.ModuleSwapActionEntity.Value, action); } diff --git a/Content.Shared/Silicons/Borgs/Components/BorgModuleIconComponent.cs b/Content.Shared/Silicons/Borgs/Components/BorgModuleIconComponent.cs new file mode 100644 index 0000000000..ff38a40f48 --- /dev/null +++ b/Content.Shared/Silicons/Borgs/Components/BorgModuleIconComponent.cs @@ -0,0 +1,20 @@ +//using Robust.Shared.GameObjects; +using Robust.Shared.GameStates; +using Robust.Shared.Utility; + +namespace Content.Shared.Silicons.Borgs.Components; + +/// +/// This is used to override the action icon for cyborg actions. +/// Without this component the no-action state will be used. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class BorgModuleIconComponent : Component +{ + /// + /// The action icon for this module + /// + [DataField] + public SpriteSpecifier.Rsi Icon = default!; + +} \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 17775b7e25..0ac1171c5d 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -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 } diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-cleaning-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-cleaning-module.png new file mode 100644 index 0000000000..f608aaa0bc Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-cleaning-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-diagnosis-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-diagnosis-module.png new file mode 100644 index 0000000000..df4d53633b Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-diagnosis-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-tools-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-tools-module.png new file mode 100644 index 0000000000..47d0a45033 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-tools-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/anomaly-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/anomaly-module.png new file mode 100644 index 0000000000..2270e2e86f Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/anomaly-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/appraisal-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/appraisal-module.png new file mode 100644 index 0000000000..9f327af063 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/appraisal-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/cleaning-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/cleaning-module.png new file mode 100644 index 0000000000..8caf592553 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/cleaning-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/clowning-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/clowning-module.png new file mode 100644 index 0000000000..bb6c441206 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/clowning-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/construction-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/construction-module.png new file mode 100644 index 0000000000..c77c02f207 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/construction-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/defib-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/defib-module.png new file mode 100644 index 0000000000..4d22bb55d7 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/defib-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/diagnosis-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/diagnosis-module.png new file mode 100644 index 0000000000..80686c3ce4 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/diagnosis-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/extinguisher-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/extinguisher-module.png new file mode 100644 index 0000000000..b74cd09fda Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/extinguisher-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/gardening-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/gardening-module.png new file mode 100644 index 0000000000..d400ba2b99 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/gardening-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/geiger-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/geiger-module.png new file mode 100644 index 0000000000..d962befeac Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/geiger-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/gps-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/gps-module.png new file mode 100644 index 0000000000..67af612968 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/gps-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/grappling-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/grappling-module.png new file mode 100644 index 0000000000..68209e0ada Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/grappling-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/harvesting-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/harvesting-module.png new file mode 100644 index 0000000000..24e1c57f5e Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/harvesting-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/light-replacer-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/light-replacer-module.png new file mode 100644 index 0000000000..7f70d15f24 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/light-replacer-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json index f63bacd07a..dc8a6fcf9c 100644 --- a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json +++ b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json @@ -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" } ] } diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/mining-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/mining-module.png new file mode 100644 index 0000000000..bfef5bfd04 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/mining-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/musical-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/musical-module.png new file mode 100644 index 0000000000..c611269ddf Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/musical-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/no-action.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/no-action.png new file mode 100644 index 0000000000..4196b8b9f4 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/no-action.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/node-scanner-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/node-scanner-module.png new file mode 100644 index 0000000000..4fa2554ead Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/node-scanner-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/rcd-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/rcd-module.png new file mode 100644 index 0000000000..388c0c6e8f Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/rcd-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/service-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/service-module.png new file mode 100644 index 0000000000..1c114ef314 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/service-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-esword-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-esword-module.png new file mode 100644 index 0000000000..201149cf18 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-esword-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-l6c-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-l6c-module.png new file mode 100644 index 0000000000..c06ce96358 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-l6c-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-martyr-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-martyr-module.png new file mode 100644 index 0000000000..771bb75f10 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-martyr-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-operative-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-operative-module.png new file mode 100644 index 0000000000..19642942f9 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-operative-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-weapon-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-weapon-module.png new file mode 100644 index 0000000000..cd1f115e8b Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/syndicate-weapon-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/tool-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/tool-module.png new file mode 100644 index 0000000000..c465804976 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/tool-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/treatment-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/treatment-module.png new file mode 100644 index 0000000000..988b3de761 Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/treatment-module.png differ diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/wire-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/wire-module.png new file mode 100644 index 0000000000..00361aa00f Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/wire-module.png differ