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
8 changes: 8 additions & 0 deletions Content.Shared/Humanoid/Markings/MarkingPrototype.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ public sealed partial class MarkingPrototype : IPrototype
[DataField("sprites", required: true)]
public List<SpriteSpecifier> Sprites { get; private set; } = default!;

// 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()
{
return new Marking(ID, Sprites.Count);
Expand Down
3 changes: 2 additions & 1 deletion Resources/ConfigPresets/Build/development.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@ see_own_notes = true
new_player_threshold = 120

[ic]
random_characters = true
# MACRO - random_characters true -> false
random_characters = false
random_species_weights = ""
ssd_sleep_time = 3600

Expand Down
Loading