Initial Commit
This commit is contained in:
commit
ee5c2f922d
2255 changed files with 547750 additions and 0 deletions
37
Assets/Scripts/Systems/Items/InventorySystem.cs
Normal file
37
Assets/Scripts/Systems/Items/InventorySystem.cs
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
using Events;
|
||||
using Unity.Entities;
|
||||
|
||||
namespace DefaultNamespace
|
||||
{
|
||||
[UpdateInGroup(typeof(PresentationSystemGroup)), UpdateAfter(typeof(PlayerActionMapSystem))]
|
||||
public class InventorySystem : ComponentSystem
|
||||
{
|
||||
protected override void OnUpdate()
|
||||
{
|
||||
Entities.WithAll<Slot>()
|
||||
.ForEach(
|
||||
(Entity entity, ref PlayerData player, ref PlayerInput input) =>
|
||||
{
|
||||
var inventoryDirtyFlag = false;
|
||||
var inventory = EntityManager.GetBuffer<Slot>(entity);
|
||||
for (var j = 0; j < inventory.Length; j++)
|
||||
{
|
||||
var slot = inventory[j];
|
||||
if (slot.Item.Amount <= 0 && slot.Item.Item.IsValid)
|
||||
{
|
||||
slot.Item = new ItemData();
|
||||
inventory[j] = slot;
|
||||
inventoryDirtyFlag = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (inventoryDirtyFlag)
|
||||
{
|
||||
PostUpdateCommands.PostEntityEvent<InventoryDirtyEventData>(EntityManager, entity);
|
||||
}
|
||||
});
|
||||
|
||||
PostUpdateCommands.RemoveEventComponents<InventoryDirtyEventData>(Entities);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue