using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer; internal class MyhomeInventoryAction : InventoryActionBase { public MyhomeInventoryAction(Myhome owner) : base(owner) { } public override async Task onInit() { var result = new Result(); var owner = getOwner() as Myhome; ArgumentNullException.ThrowIfNull(owner, $"owner is null !!!"); result = await getBagInven().onInit(); if (result.isFail()) { return result; } return result; } public override void onClear() { var owner = getOwner(); ArgumentNullException.ThrowIfNull(owner, $"owner is null !!!"); var bag_inven = getBagInven(); ArgumentNullException.ThrowIfNull(bag_inven, $"bag_inven is null !!! - {owner.toBasicString()}"); var has_items = bag_inven.getHasItemBases(); ArgumentNullException.ThrowIfNull(has_items, $"has_items is null !!! - {owner.toBasicString()}"); has_items.Clear(); } public override Item onAllocItem() { var owner = getOwner() as Myhome; ArgumentNullException.ThrowIfNull(owner, $"owner is null !!!"); return new MyhomeItem(owner); } }