Compare commits
4 Commits
master
...
ed-god-hai
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
007ad7ccce | ||
|
|
892fa4c623 | ||
|
|
3b43c478fa | ||
|
|
e90fd01e5b |
@@ -0,0 +1,16 @@
|
|||||||
|
using Content.Shared.DisplacementMap;
|
||||||
|
|
||||||
|
namespace Content.Client._CP14.Displacement;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Simply apply displacements to sprite layers
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent]
|
||||||
|
public sealed partial class CP14SimpleDisplacementMapComponent : Component
|
||||||
|
{
|
||||||
|
[DataField]
|
||||||
|
public Dictionary<string, DisplacementData> Displacements = new();
|
||||||
|
|
||||||
|
public readonly HashSet<string> RevealedLayers = new();
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
using Content.Client.DisplacementMap;
|
||||||
|
using Content.Shared.Item;
|
||||||
|
using Robust.Client.GameObjects;
|
||||||
|
|
||||||
|
namespace Content.Client._CP14.Displacement;
|
||||||
|
|
||||||
|
public sealed class CP14SimpleDisplacementMapSystem : EntitySystem
|
||||||
|
{
|
||||||
|
[Dependency] private readonly DisplacementMapSystem _displacement = default!;
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
base.Initialize();
|
||||||
|
|
||||||
|
SubscribeLocalEvent<CP14SimpleDisplacementMapComponent, VisualsChangedEvent>(OnVisualChanged);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnVisualChanged(Entity<CP14SimpleDisplacementMapComponent> ent, ref VisualsChangedEvent args)
|
||||||
|
{
|
||||||
|
if (!TryComp<SpriteComponent>(ent, out var sprite))
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (var key in ent.Comp.RevealedLayers)
|
||||||
|
{
|
||||||
|
sprite.RemoveLayer(key);
|
||||||
|
}
|
||||||
|
ent.Comp.RevealedLayers.Clear();
|
||||||
|
|
||||||
|
foreach (var (key, dData) in ent.Comp.Displacements)
|
||||||
|
{
|
||||||
|
if (!sprite.LayerMapTryGet(key, out var index))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
_displacement.TryAddDisplacement(dData, sprite, index, key, ent.Comp.RevealedLayers);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,8 +4,8 @@ namespace Content.Server.Entry
|
|||||||
public static class IgnoredComponents
|
public static class IgnoredComponents
|
||||||
{
|
{
|
||||||
public static string[] List => new[] {
|
public static string[] List => new[] {
|
||||||
"CP14WaveShader", // CP14 Wave shader
|
"CP14WaveShader", // CP14
|
||||||
"CP14WorldSprite", // CP14 World Sprite
|
"CP14SimpleDisplacementMap", // CP14
|
||||||
"ConstructionGhost",
|
"ConstructionGhost",
|
||||||
"IconSmooth",
|
"IconSmooth",
|
||||||
"InteractionOutline",
|
"InteractionOutline",
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
- map: [ "neck" ]
|
- map: [ "neck" ]
|
||||||
- map: [ "back" ]
|
- map: [ "back" ]
|
||||||
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
|
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
|
||||||
- map: [ "enum.HumanoidVisualLayers.Hair" ]
|
- map: [ "enum.HumanoidVisualLayers.Hair", "HairDisplacement" ]
|
||||||
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
|
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
|
||||||
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
|
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
|
||||||
- map: [ "enum.HumanoidVisualLayers.Tail" ]
|
- map: [ "enum.HumanoidVisualLayers.Tail" ]
|
||||||
@@ -125,6 +125,16 @@
|
|||||||
32:
|
32:
|
||||||
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
|
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
|
||||||
state: hands
|
state: hands
|
||||||
|
- type: CP14SimpleDisplacementMap
|
||||||
|
displacements:
|
||||||
|
HairDisplacement:
|
||||||
|
sizeMaps:
|
||||||
|
32:
|
||||||
|
sprite: _CP14/Mobs/Species/Goblin/displacement.rsi
|
||||||
|
state: head
|
||||||
|
48:
|
||||||
|
sprite: _CP14/Mobs/Species/Goblin/displacement48.rsi
|
||||||
|
state: head
|
||||||
- type: Inventory
|
- type: Inventory
|
||||||
templateId: CP14Human
|
templateId: CP14Human
|
||||||
speciesId: goblin
|
speciesId: goblin
|
||||||
|
|||||||
Reference in New Issue
Block a user