Mortician's Menagerie (#2391)
* Body bags! * Morgue Trays and the Crematorium! Reorganised body bags to be under Morgue, not Medical * Fix. Things outside of EntityStorageComponents now use the Try*Storage() not just *Storage() methods - Allows mobs to be trapped in a morgue/crematorium whose tray can't open. * Fix tests. Modernise component dependency and nullability. * Update Content.Server/GameObjects/Components/Morgue/MorgueTrayComponent.cs Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
This commit is contained in:
27
Content.Server/GameObjects/EntitySystems/MorgueSystem.cs
Normal file
27
Content.Server/GameObjects/EntitySystems/MorgueSystem.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using Content.Server.GameObjects.Components.Morgue;
|
||||
using JetBrains.Annotations;
|
||||
using Robust.Shared.GameObjects.Systems;
|
||||
|
||||
namespace Content.Server.GameObjects.EntitySystems
|
||||
{
|
||||
[UsedImplicitly]
|
||||
public class MorgueSystem : EntitySystem
|
||||
{
|
||||
|
||||
private float _accumulatedFrameTime;
|
||||
|
||||
public override void Update(float frameTime)
|
||||
{
|
||||
_accumulatedFrameTime += frameTime;
|
||||
|
||||
if (_accumulatedFrameTime >= 10)
|
||||
{
|
||||
foreach (var morgue in ComponentManager.EntityQuery<MorgueEntityStorageComponent>())
|
||||
{
|
||||
morgue.Update();
|
||||
}
|
||||
_accumulatedFrameTime -= 10;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -61,5 +61,21 @@ namespace Content.Server.GameObjects.EntitySystems
|
||||
hands.Drop(heldItem.Owner, doMobChecks);
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: RotationState can be null and I want to burn all lifeforms in the universe for this!!!
|
||||
//If you use these it's atleast slightly less painful (null is treated as false)
|
||||
public bool IsStanding(IEntity entity)
|
||||
{
|
||||
return entity.TryGetComponent<AppearanceComponent>(out var appearance)
|
||||
&& appearance.TryGetData<RotationState>(RotationVisuals.RotationState, out var rotation)
|
||||
&& rotation == RotationState.Vertical;
|
||||
}
|
||||
|
||||
public bool IsDown(IEntity entity)
|
||||
{
|
||||
return entity.TryGetComponent<AppearanceComponent>(out var appearance)
|
||||
&& appearance.TryGetData<RotationState>(RotationVisuals.RotationState, out var rotation)
|
||||
&& rotation == RotationState.Horizontal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user