_ghosts.Add(comp.GhostId, ghost.Value);
var sprite = Comp<SpriteComponent>(ghost.Value);
- _sprite.SetColor((ghost.Value, sprite), new Color(48, 255, 48, 128));
if (targetProto.TryGetComponent(out IconComponent? icon, EntityManager.ComponentFactory))
{
var targetSprite = EnsureComp<SpriteComponent>(dummy);
EntityManager.System<AppearanceSystem>().OnChangeData(dummy, targetSprite);
- var addedIndex = 0;
- for (var i = 0; i < targetSprite.AllLayers.Count(); i++)
- {
- if (!targetSprite[i].Visible || !targetSprite[i].RsiState.IsValid)
- continue;
-
- var rsi = targetSprite[i].Rsi ?? targetSprite.BaseRSI;
- if (rsi is null || !rsi.TryGetState(targetSprite[i].RsiState, out var state) ||
- state.StateId.Name is null)
- continue;
+ _sprite.CopySprite((dummy, targetSprite), (ghost.Value, sprite));
- _sprite.AddBlankLayer((ghost.Value, sprite), addedIndex);
- _sprite.LayerSetSprite((ghost.Value, sprite), addedIndex, new SpriteSpecifier.Rsi(rsi.Path, state.StateId.Name));
- sprite.LayerSetShader(addedIndex, "unshaded");
- _sprite.LayerSetVisible((ghost.Value, sprite), addedIndex, true);
- addedIndex++;
+ for (var i = 0; i < sprite.AllLayers.Count(); i++)
+ {
+ sprite.LayerSetShader(i, "unshaded");
}
Del(dummy);
else
return false;
+ _sprite.SetColor((ghost.Value, sprite), new Color(48, 255, 48, 128));
+
if (prototype.CanBuildInImpassable)
EnsureComp<WallMountComponent>(ghost.Value).Arc = new(Math.Tau);