@@ -13,6 +13,7 @@ public sealed class HolopadSystem : SharedHolopadSystem
1313{
1414 [ Dependency ] private readonly IPrototypeManager _prototypeManager = default ! ;
1515 [ Dependency ] private readonly IGameTiming _timing = default ! ;
16+ [ Dependency ] private readonly SpriteSystem _sprite = default ! ;
1617
1718 public override void Initialize ( )
1819 {
@@ -58,26 +59,25 @@ private void UpdateHologramSprite(EntityUid hologram, EntityUid? target)
5859 return ;
5960
6061 // Remove all sprite layers
61- for ( int i = hologramSprite . AllLayers . Count ( ) - 1 ; i >= 0 ; i -- )
62- hologramSprite . RemoveLayer ( i ) ;
62+ for ( var i = hologramSprite . AllLayers . Count ( ) - 1 ; i >= 0 ; i -- )
63+ _sprite . RemoveLayer ( ( hologram , hologramSprite ) , i ) ;
6364
6465 if ( TryComp < SpriteComponent > ( target , out var targetSprite ) )
6566 {
6667 // Use the target's holographic avatar (if available)
6768 if ( TryComp < HolographicAvatarComponent > ( target , out var targetAvatar ) &&
6869 targetAvatar . LayerData != null )
6970 {
70- for ( int i = 0 ; i < targetAvatar . LayerData . Length ; i ++ )
71+ for ( var i = 0 ; i < targetAvatar . LayerData . Length ; i ++ )
7172 {
72- var layer = targetAvatar . LayerData [ i ] ;
73- hologramSprite . AddLayer ( targetAvatar . LayerData [ i ] , i ) ;
73+ _sprite . AddLayer ( ( hologram , hologramSprite ) , targetAvatar . LayerData [ i ] , i ) ;
7474 }
7575 }
7676
7777 // Otherwise copy the target's current physical appearance
7878 else
7979 {
80- hologramSprite . CopyFrom ( targetSprite ) ;
80+ _sprite . CopySprite ( ( target . Value , targetSprite ) , ( hologram , hologramSprite ) ) ;
8181 }
8282 }
8383
@@ -87,25 +87,27 @@ private void UpdateHologramSprite(EntityUid hologram, EntityUid? target)
8787 if ( string . IsNullOrEmpty ( holopadhologram . RsiPath ) || string . IsNullOrEmpty ( holopadhologram . RsiState ) )
8888 return ;
8989
90- var layer = new PrototypeLayerData ( ) ;
91- layer . RsiPath = holopadhologram . RsiPath ;
92- layer . State = holopadhologram . RsiState ;
90+ var layer = new PrototypeLayerData
91+ {
92+ RsiPath = holopadhologram . RsiPath ,
93+ State = holopadhologram . RsiState
94+ } ;
9395
94- hologramSprite . AddLayer ( layer ) ;
96+ _sprite . AddLayer ( ( hologram , hologramSprite ) , layer , null ) ;
9597 }
9698
9799 // Override specific values
98- hologramSprite . Color = Color . White ;
99- hologramSprite . Offset = holopadhologram . Offset ;
100- hologramSprite . DrawDepth = ( int ) DrawDepth . Mobs ;
100+ _sprite . SetColor ( ( hologram , hologramSprite ) , Color . White ) ;
101+ _sprite . SetOffset ( ( hologram , hologramSprite ) , holopadhologram . Offset ) ;
102+ _sprite . SetDrawDepth ( ( hologram , hologramSprite ) , ( int ) DrawDepth . Mobs ) ;
101103 hologramSprite . NoRotation = true ;
102104 hologramSprite . DirectionOverride = Direction . South ;
103105 hologramSprite . EnableDirectionOverride = true ;
104106
105107 // Remove shading from all layers (except displacement maps)
106- for ( int i = 0 ; i < hologramSprite . AllLayers . Count ( ) ; i ++ )
108+ for ( var i = 0 ; i < hologramSprite . AllLayers . Count ( ) ; i ++ )
107109 {
108- if ( hologramSprite . TryGetLayer ( i , out var layer ) && layer . ShaderPrototype != "DisplacedStencilDraw" )
110+ if ( _sprite . TryGetLayer ( ( hologram , hologramSprite ) , i , out var layer , false ) && layer . ShaderPrototype != "DisplacedStencilDraw" )
109111 hologramSprite . LayerSetShader ( i , "unshaded" ) ;
110112 }
111113
0 commit comments