Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Content.Client/Body/VisualBodySystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,15 @@ private void ApplyMarkings(Entity<VisualOrganMarkingsComponent> ent, EntityUid t
_sprite.LayerSetColor(target, layerId, marking.MarkingColors[i]);
else
_sprite.LayerSetColor(target, layerId, Color.White);

// MACRO START - marking layer shaders
if (proto.Shaders is not null &&
proto.Shaders.TryGetValue(rsi.RsiState, out var shader))
{
EnsureComp<SpriteComponent>(target, out var spriteComp); // why is this method in the component?????
spriteComp.LayerSetShader(index + i + 1, shader);
}
// MACRO END
}

applied.Add(marking);
Expand Down
11 changes: 7 additions & 4 deletions Content.Shared/Humanoid/Markings/MarkingPrototype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,13 @@ public sealed partial class MarkingPrototype : IPrototype
[DataField("sprites", required: true)]
public List<SpriteSpecifier> Sprites { get; private set; } = default!;

// impstation edit - allow markings to support shaders
[DataField("shader")]
public string? Shader { get; private set; } = null;
// end impstation edit
// MACRO ADDITION
/// <summary>
/// Optional dictionary allowing assignment of shaders to sprite layers in a marking.
/// This implementation is very messy but unfortunately Robust doesn't like shaders in SpriteSpecifiers.
/// </summary>
[DataField]
public Dictionary<string, string>? Shaders { get; private set; }

public Marking AsMarking()
{
Expand Down
12 changes: 12 additions & 0 deletions Resources/Locale/en-US/_starcup/markings/humanoid.ftl
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Eyes
marking-EyesGlowing = Eyes (Glowing)
marking-EyesGlowing-eyes = Eyes

marking-TattooEyeLeftGlowing = Left Eye (Glowing)
marking-TattooEyeLeftGlowing-tattoo_eye_l = Left Eye

marking-TattooEyeRightGlowing = Right Eye (Glowing)
marking-TattooEyeRightGlowing-tattoo_eye_r = Right Eye

marking-MakeupBlushGlowing = Blush (Glowing)
marking-MakeupBlushGLowing-blush = Blush
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/Diona/chest.rsi
state: firefly
shader: unshaded
shaders:
firefly: unshaded

- type: marking
id: DionaLivingNymph
Expand All @@ -32,7 +33,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/Diona/head.rsi
state: bigfirefly
shader: unshaded
shaders:
bigfirefly: unshaded

- type: marking
id: DionaPollenDust
Expand All @@ -51,4 +53,5 @@
sprites:
- sprite: _Impstation/Mobs/Customization/Diona/headtop.rsi
state: moonbloom
shader: unshaded
shaders:
moonbloom: unshaded
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/Moth/headtop.rsi
state: glowantenna
shader: unshaded
shaders:
glowantenna: unshaded

# Tail

Expand Down Expand Up @@ -476,15 +477,10 @@
sprites:
- sprite: _Impstation/Mobs/Customization/Moth/tail.rsi
state: firefly2

- type: marking
id: MothFireflyOverlay
bodyPart: Tail
groupWhitelist: [ Moth ]
sprites:
- sprite: _Impstation/Mobs/Customization/Moth/tail.rsi
state: firefly1
shader: unshaded
shaders:
firefly1: unshaded

- type: marking
id: MothGlasswing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/SlimePerson/chest.rsi
state: core
shader: unshaded
shaders:
core: unshaded

- type: marking
id: SlimeLungs
Expand All @@ -77,7 +78,10 @@
state: fadingstars2
- sprite: _Impstation/Mobs/Customization/SlimePerson/head.rsi
state: fadingstars3
shader: unshaded
shaders:
fadingstars1: unshaded
fadingstars2: unshaded
fadingstars3: unshaded

- type: marking
id: fizz
Expand Down Expand Up @@ -152,7 +156,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/SlimePerson/eyes.rsi
state: glow
shader: unshaded
shaders:
glow: unshaded

- type: marking
id: SlimeEyesDroopy
Expand All @@ -179,7 +184,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/SlimePerson/eyes.rsi
state: droopyglow
shader: unshaded
shaders:
droopyglow: unshaded

- type: marking
id: SlimeEyesCyclops
Expand All @@ -206,7 +212,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/SlimePerson/eyes.rsi
state: cyclopsglow
shader: unshaded
shaders:
cyclopsglow: unshaded

# RArm

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -565,7 +565,8 @@
sprites:
- sprite: _Impstation/Mobs/Customization/Vox/tail.rsi
state: lantern
shader: unshaded
shaders:
lantern: unshaded

- type: marking
id: VoxTailSmallPlume
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Eyes
- type: marking
id: EyesGlowing
bodyPart: Eyes
groupWhitelist: [Human, Oni, Rodentia, Felinid, Vulpkanin, Reptilian, Harpy]
sprites:
- sprite: Mobs/Customization/eyes.rsi
state: eyes
coloring:
default:
type:
!type:EyeColoring
shaders:
eyes: unshaded

- type: marking
id: TattooEyeRightGlowing
bodyPart: Eyes
groupWhitelist: [Human, Oni, Rodentia, Felinid, Vulpkanin, Reptilian, Harpy]
coloring:
default:
type:
!type:EyeColoring
negative: true
sprites:
- sprite: Mobs/Customization/tattoos.rsi
state: tattoo_eye_r
shaders:
tattoo_eye_r: unshaded

- type: marking
id: TattooEyeLeftGlowing
bodyPart: Eyes
groupWhitelist: [Human, Oni, Rodentia, Felinid, Vulpkanin, Reptilian, Harpy]
coloring:
default:
type:
!type:EyeColoring
negative: true
sprites:
- sprite: Mobs/Customization/tattoos.rsi
state: tattoo_eye_l
shaders:
tattoo_eye_l: unshaded

- type: marking
id: MakeupBlushGlowing
bodyPart: Head
groupWhitelist: [Human, Oni, Rodentia, Felinid, Vulpkanin, Reptilian, Slime, Harpy]
coloring:
default:
type:
!type:SimpleColoring
color: "#d39394"
sprites:
- sprite: _DV/Mobs/Customization/makeup.rsi
state: blush
shaders:
blush: unshaded
Loading