Data-oriented Construction System (#2152)

- Powerful
- Data-oriented
- Approved by PJB
- Powered by node graphs and AI pathfinding
- Coded by the same nerd who brought you atmos

Co-authored-by: Exp <theexp111@gmail.com>
This commit is contained in:
Víctor Aguilera Puerto
2020-10-08 17:41:23 +02:00
committed by GitHub
parent a6647e8de1
commit 745401a41e
261 changed files with 3886 additions and 11986 deletions

View File

@@ -29,7 +29,7 @@ namespace Content.Server.GameObjects.Components.Recycling
[Dependency] private readonly IEntityManager _entityManager = default!;
public override string Name => "Recycler";
private List<IEntity> _intersecting = new List<IEntity>();
/// <summary>
@@ -73,14 +73,7 @@ namespace Content.Server.GameObjects.Components.Recycling
{
prototype = null;
var constructionSystem = EntitySystem.Get<ConstructionSystem>();
var entityId = entity.MetaData.EntityPrototype?.ID;
if (entityId == null ||
!constructionSystem.CraftRecipes.TryGetValue(entityId, out prototype))
{
return false;
}
// TODO CONSTRUCTION fix this
return Powered;
}
@@ -91,7 +84,7 @@ namespace Content.Server.GameObjects.Components.Recycling
{
_intersecting.Add(entity);
}
// TODO: Prevent collision with recycled items
if (CanGib(entity))
{
@@ -105,17 +98,7 @@ namespace Content.Server.GameObjects.Components.Recycling
return;
}
var constructionSystem = EntitySystem.Get<ConstructionSystem>();
var recyclerPosition = Owner.Transform.MapPosition;
foreach (var stage in prototype.Stages)
{
if (!(stage.Forward is ConstructionStepMaterial step))
{
continue;
}
constructionSystem.SpawnIngredient(recyclerPosition, step);
}
// TODO CONSTRUCTION fix this
entity.Delete();
}