| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using Content.Server.EUI;
- using Content.Server.Explosion.EntitySystems;
- using Content.Shared.Administration;
- using Content.Shared.Eui;
- using JetBrains.Annotations;
- namespace Content.Server.Administration.UI;
- /// <summary>
- /// Admin Eui for spawning and preview-ing explosions
- /// </summary>
- [UsedImplicitly]
- public sealed class SpawnExplosionEui : BaseEui
- {
- private readonly ExplosionSystem _explosionSystem;
- private readonly ISawmill _sawmill;
- public SpawnExplosionEui()
- {
- _explosionSystem = IoCManager.Resolve<IEntitySystemManager>().GetEntitySystem<ExplosionSystem>();
- _sawmill = IoCManager.Resolve<ILogManager>().GetSawmill("explosion");
- }
- public override void HandleMessage(EuiMessageBase msg)
- {
- base.HandleMessage(msg);
- if (msg is not SpawnExplosionEuiMsg.PreviewRequest request)
- return;
- if (request.TotalIntensity <= 0 || request.IntensitySlope <= 0)
- return;
- var explosion = _explosionSystem.GenerateExplosionPreview(request);
- if (explosion == null)
- {
- _sawmill.Error("Failed to generate explosion preview.");
- return;
- }
- SendMessage(new SpawnExplosionEuiMsg.PreviewData(explosion, request.IntensitySlope, request.TotalIntensity));
- }
- }
|