Refactor stacks to not use method events (#4177)

This commit is contained in:
Vera Aguilera Puerto
2021-06-12 11:24:34 +02:00
committed by GitHub
parent ca4e665296
commit 0093a961bc
17 changed files with 79 additions and 248 deletions

View File

@@ -16,14 +16,14 @@ namespace Content.Server.Construction.Completions
[DataDefinition]
public class SetStackCount : IGraphAction
{
[DataField("amount")] public int Amount { get; private set; } = 1;
[DataField("amount")] public int Amount { get; } = 1;
public async Task PerformAction(IEntity entity, IEntity? user)
{
if (entity.Deleted) return;
if(!entity.HasComponent<StackComponent>()) return;
if(!entity.TryGetComponent<StackComponent>(out var stack)) return;
entity.EntityManager.EventBus.RaiseLocalEvent(entity.Uid, new StackChangeCountEvent(Amount), false);
EntitySystem.Get<StackSystem>().SetCount(entity.Uid, stack, Amount);
}
}
}

View File

@@ -29,8 +29,9 @@ namespace Content.Server.Construction.Completions
if (EntityPrototypeHelpers.HasComponent<StackComponent>(Prototype))
{
var stack = entityManager.SpawnEntity(Prototype, coordinates);
stack.EntityManager.EventBus.RaiseLocalEvent(stack.Uid, new StackChangeCountEvent(Amount), false);
var stackEnt = entityManager.SpawnEntity(Prototype, coordinates);
var stack = stackEnt.GetComponent<StackComponent>();
EntitySystem.Get<StackSystem>().SetCount(stackEnt.Uid, stack, Amount);
}
else
{