{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IGameTiming _timing = default!;
+ [Dependency] private readonly SpriteSystem _sprite = default!;
public override void Initialize()
{
return;
// Remove all sprite layers
- for (int i = hologramSprite.AllLayers.Count() - 1; i >= 0; i--)
- hologramSprite.RemoveLayer(i);
+ for (var i = hologramSprite.AllLayers.Count() - 1; i >= 0; i--)
+ _sprite.RemoveLayer((hologram, hologramSprite), i);
if (TryComp<SpriteComponent>(target, out var targetSprite))
{
if (TryComp<HolographicAvatarComponent>(target, out var targetAvatar) &&
targetAvatar.LayerData != null)
{
- for (int i = 0; i < targetAvatar.LayerData.Length; i++)
+ for (var i = 0; i < targetAvatar.LayerData.Length; i++)
{
- var layer = targetAvatar.LayerData[i];
- hologramSprite.AddLayer(targetAvatar.LayerData[i], i);
+ _sprite.AddLayer((hologram, hologramSprite), targetAvatar.LayerData[i], i);
}
}
// Otherwise copy the target's current physical appearance
else
{
- hologramSprite.CopyFrom(targetSprite);
+ _sprite.CopySprite((target.Value, targetSprite), (hologram, hologramSprite));
}
}
if (string.IsNullOrEmpty(holopadhologram.RsiPath) || string.IsNullOrEmpty(holopadhologram.RsiState))
return;
- var layer = new PrototypeLayerData();
- layer.RsiPath = holopadhologram.RsiPath;
- layer.State = holopadhologram.RsiState;
+ var layer = new PrototypeLayerData
+ {
+ RsiPath = holopadhologram.RsiPath,
+ State = holopadhologram.RsiState
+ };
- hologramSprite.AddLayer(layer);
+ _sprite.AddLayer((hologram, hologramSprite), layer, null);
}
// Override specific values
- hologramSprite.Color = Color.White;
- hologramSprite.Offset = holopadhologram.Offset;
- hologramSprite.DrawDepth = (int)DrawDepth.Mobs;
+ _sprite.SetColor((hologram, hologramSprite), Color.White);
+ _sprite.SetOffset((hologram, hologramSprite), holopadhologram.Offset);
+ _sprite.SetDrawDepth((hologram, hologramSprite), (int)DrawDepth.Mobs);
hologramSprite.NoRotation = true;
hologramSprite.DirectionOverride = Direction.South;
hologramSprite.EnableDirectionOverride = true;
// Remove shading from all layers (except displacement maps)
- for (int i = 0; i < hologramSprite.AllLayers.Count(); i++)
+ for (var i = 0; i < hologramSprite.AllLayers.Count(); i++)
{
- if (hologramSprite.TryGetLayer(i, out var layer) && layer.ShaderPrototype != "DisplacedStencilDraw")
+ if (_sprite.TryGetLayer((hologram, hologramSprite), i, out var layer, false) && layer.ShaderPrototype != "DisplacedStencilDraw")
hologramSprite.LayerSetShader(i, "unshaded");
}