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;
|| !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);
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
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
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
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
outerClothing:
- state: equipped-OUTERCLOTHING-light
shader: unshaded
+ outerClothing-vox:
+ - state: equipped-OUTERCLOTHING-light-vox
+ shader: unshaded
- type: Appearance
- type: HandheldLight
addPrefix: false