* InitialCommit (Broken) * Fixes compile errors * PR comments. More doc comments. Fixes * Makes a singularity/event horizon without radiation/physics a valid state to be in * VV 'fake' setters, fixes the visualizer, fixes the singularity trying to eat itself instead of nearby things. * Removes unused dependency from Content.Client.GravityWellSystem * Testing containment and fake VV setters for SingularityGeneratorComponent * Fixes gravity wells (broken due to LookupFlags.None). Adds recursive Event Horizon consumption * Fix merge skew * Fixes for the master merge * Fix engine commit * Dirty is obsolete * Switch over dirty * Fix requested changes * ambiant -> ambient * Moves EventHorionComponent to Shared * Proper container handling * Fixes master merge. Fixes post insertion assertions for singularities. Extends proper container handling to gravity wells and the distortion shader. * Better support for admemes throwing singularities. * Moves update timing from accumulators to target times * Update doc comments
44 lines
1.4 KiB
C#
44 lines
1.4 KiB
C#
using Content.Shared.Singularity;
|
|
using JetBrains.Annotations;
|
|
using Robust.Client.GameObjects;
|
|
using Robust.Shared.GameObjects;
|
|
using Robust.Shared.IoC;
|
|
using Robust.Shared.Serialization.Manager.Attributes;
|
|
using Robust.Shared.Utility;
|
|
|
|
namespace Content.Client.Singularity.Visualizers
|
|
{
|
|
[UsedImplicitly]
|
|
public sealed class SingularityVisualizer : AppearanceVisualizer
|
|
{
|
|
[DataField("layer")]
|
|
private int Layer { get; } = 0;
|
|
|
|
[Obsolete("Subscribe to your component being initialised instead.")]
|
|
public override void InitializeEntity(EntityUid entity)
|
|
{
|
|
base.InitializeEntity(entity);
|
|
|
|
IoCManager.Resolve<IEntityManager>().GetComponentOrNull<SpriteComponent>(entity)?.LayerMapReserveBlank(Layer);
|
|
}
|
|
|
|
[Obsolete("Subscribe to AppearanceChangeEvent instead.")]
|
|
public override void OnChangeData(AppearanceComponent component)
|
|
{
|
|
base.OnChangeData(component);
|
|
|
|
if (!IoCManager.Resolve<IEntityManager>().TryGetComponent(component.Owner, out SpriteComponent? sprite))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if (!component.TryGetData(SingularityVisuals.Level, out byte level))
|
|
{
|
|
return;
|
|
}
|
|
|
|
sprite.LayerSetSprite(Layer, new SpriteSpecifier.Rsi(new ResourcePath("Structures/Power/Generation/Singularity/singularity_" + level + ".rsi"), "singularity_" + level));
|
|
}
|
|
}
|
|
}
|