Add species-specific code for ToggleableLightVisuals (#35482)
This commit is contained in:
@@ -2,6 +2,7 @@ using Content.Client.Clothing;
|
||||
using Content.Client.Items.Systems;
|
||||
using Content.Shared.Clothing;
|
||||
using Content.Shared.Hands;
|
||||
using Content.Shared.Inventory;
|
||||
using Content.Shared.Item;
|
||||
using Content.Shared.Toggleable;
|
||||
using Robust.Client.GameObjects;
|
||||
@@ -62,7 +63,16 @@ public sealed class ToggleableLightVisualsSystem : VisualizerSystem<ToggleableLi
|
||||
|| !enabled)
|
||||
return;
|
||||
|
||||
if (!component.ClothingVisuals.TryGetValue(args.Slot, out var layers))
|
||||
if (!TryComp(args.Equipee, out InventoryComponent? inventory))
|
||||
return;
|
||||
List<PrototypeLayerData>? layers = null;
|
||||
|
||||
// attempt to get species specific data
|
||||
if (inventory.SpeciesId != null)
|
||||
component.ClothingVisuals.TryGetValue($"{args.Slot}-{inventory.SpeciesId}", out layers);
|
||||
|
||||
// No species specific data. Try to default to generic data.
|
||||
if (layers == null && !component.ClothingVisuals.TryGetValue(args.Slot, out layers))
|
||||
return;
|
||||
|
||||
var modulate = AppearanceSystem.TryGetData<Color>(uid, ToggleableLightVisuals.Color, out var color, appearance);
|
||||
|
||||
@@ -79,10 +79,14 @@
|
||||
clothingVisuals:
|
||||
head:
|
||||
- state: equipped-head-light
|
||||
head-vox:
|
||||
- state: equipped-head-light-vox
|
||||
- type: Clothing
|
||||
clothingVisuals:
|
||||
head:
|
||||
- state: equipped-head
|
||||
head-vox:
|
||||
- state: equipped-head-vox
|
||||
- type: TemperatureProtection
|
||||
heatingCoefficient: 0.1
|
||||
coolingCoefficient: 0.1
|
||||
|
||||
@@ -48,12 +48,19 @@
|
||||
head:
|
||||
- state: equipped-head-light
|
||||
shader: unshaded
|
||||
head-vox:
|
||||
- state: equipped-head-light-vox
|
||||
shader: unshaded
|
||||
- type: Clothing
|
||||
clothingVisuals:
|
||||
head:
|
||||
- state: equipped-head
|
||||
- state: equipped-head-unshaded
|
||||
shader: unshaded
|
||||
head-vox:
|
||||
- state: equipped-head-vox
|
||||
- state: equipped-head-unshaded-vox
|
||||
shader: unshaded
|
||||
- type: PointLight
|
||||
color: "#adffe6"
|
||||
- type: PressureProtection
|
||||
@@ -106,12 +113,19 @@
|
||||
head:
|
||||
- state: equipped-head-light
|
||||
shader: unshaded
|
||||
head-vox:
|
||||
- state: equipped-head-light-vox
|
||||
shader: unshaded
|
||||
- type: Clothing
|
||||
clothingVisuals:
|
||||
head:
|
||||
- state: equipped-head
|
||||
- state: equipped-head-unshaded
|
||||
shader: unshaded
|
||||
head-vox:
|
||||
- state: equipped-head-vox
|
||||
- state: equipped-head-unshaded-vox
|
||||
shader: unshaded
|
||||
- type: PointLight
|
||||
radius: 6
|
||||
- type: PressureProtection
|
||||
@@ -159,12 +173,19 @@
|
||||
head:
|
||||
- state: equipped-head-light
|
||||
shader: unshaded
|
||||
head-vox:
|
||||
- state: equipped-head-light-vox
|
||||
shader: unshaded
|
||||
- type: Clothing
|
||||
clothingVisuals:
|
||||
head:
|
||||
- state: equipped-head
|
||||
- state: equipped-head-unshaded
|
||||
shader: unshaded
|
||||
head-vox:
|
||||
- state: equipped-head-vox
|
||||
- state: equipped-head-unshaded-vox
|
||||
shader: unshaded
|
||||
- type: PointLight
|
||||
radius: 6
|
||||
- type: PressureProtection
|
||||
|
||||
@@ -140,6 +140,9 @@
|
||||
outerClothing:
|
||||
- state: equipped-OUTERCLOTHING-light
|
||||
shader: unshaded
|
||||
outerClothing-vox:
|
||||
- state: equipped-OUTERCLOTHING-light-vox
|
||||
shader: unshaded
|
||||
- type: Appearance
|
||||
- type: HandheldLight
|
||||
addPrefix: false
|
||||
|
||||
Reference in New Issue
Block a user