Spawn with Random Offset component (#10969)

Adds SpawnRandomOffsetComponent, which can be used to randomly move a component on map init

Co-authored-by: wrexbe <wrexbe@protonmail.com>
This commit is contained in:
Vera Aguilera Puerto
2022-09-16 22:01:31 +02:00
committed by GitHub
parent f0fa24916c
commit 3d693c20c8
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
namespace Content.Server.Coordinates;
[RegisterComponent]
public sealed class SpawnRandomOffsetComponent : Component
{
[ViewVariables(VVAccess.ReadWrite)]
[DataField("offset")] public float Offset = 0.5f;
}

View File

@@ -0,0 +1,20 @@
using Content.Shared.Random.Helpers;
namespace Content.Server.Coordinates;
public sealed class SpawnRandomOffsetSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<SpawnRandomOffsetComponent, MapInitEvent>(OnMapInit);
}
private void OnMapInit(EntityUid uid, SpawnRandomOffsetComponent component, MapInitEvent args)
{
// TODO: Kill this extension with fire, thanks
uid.RandomOffset(component.Offset);
EntityManager.RemoveComponentDeferred(uid, component);
}
}