33 lines
987 B
C#
33 lines
987 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Mine2d.engine.system.annotations;
|
|
using Mine2d.game.backend.network.packets;
|
|
|
|
namespace Mine2d.game.backend.interactor;
|
|
|
|
[Interactor]
|
|
public class InventoryHandler
|
|
{
|
|
[Interaction(InteractorKind.Server, PacketType.Tick)]
|
|
public static void onServerTick() {
|
|
var ctx = Context.Get();
|
|
var players = ctx.GameState.Players;
|
|
foreach(var player in players) {
|
|
var inventory = player.Inventory.Inventory;
|
|
var hotbar = player.Inventory.Hotbar;
|
|
// Remove empty stacks
|
|
for(var i = 0; i < hotbar.Length; i++) {
|
|
if(hotbar[i]?.Count <= 0) {
|
|
hotbar[i] = null;
|
|
}
|
|
}
|
|
for (var i = 0; i< inventory.Length; i++) {
|
|
if(inventory[i]?.Count <= 0) {
|
|
inventory[i] = null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |