Beispiel #1
0
        static void OnRemoveItemsSuccess(ref RemoveItemsMsg msg, MyNetworkClient sender)
        {
            if (!MyEntities.EntityExists(msg.OwnerEntityId))
            {
                return;
            }
            IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
            MyInventory       inv   = null;

            if (owner != null)
            {
                inv = owner.GetInventory(msg.InventoryIndex);
            }
            else
            {
                // NOTE: this should be the default code after we get rid of the inventory owner and should be searched by it's id
                MyEntity        entity = MyEntities.GetEntityById(msg.OwnerEntityId);
                MyInventoryBase baseInventory;
                if (entity.Components.TryGet <MyInventoryBase>(out baseInventory))
                {
                    inv = baseInventory as MyInventory;
                }
            }

            if (inv != null)
            {
                inv.RemoveItemsInternal(msg.itemId, msg.Amount);
            }
            else
            {
                Debug.Fail("Inventory was not found!");
            }
        }
Beispiel #2
0
        static void OnRemoveItemsRequest(ref RemoveItemsMsg msg, MyNetworkClient sender)
        {
            if (!MyEntities.EntityExists(msg.OwnerEntityId))
            {
                return;
            }

            IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
            MyInventory       inv   = null;

            if (owner != null)
            {
                inv = owner.GetInventory(msg.InventoryIndex);
            }
            else
            {
                // NOTE: this should be the default code after we get rid of the inventory owner and should be searched by it's id
                MyEntity        entity = MyEntities.GetEntityById(msg.OwnerEntityId);
                MyInventoryBase baseInventory;
                if (entity.Components.TryGet <MyInventoryBase>(out baseInventory))
                {
                    inv = baseInventory as MyInventory;
                }
            }
            var item = inv.GetItemByID(msg.itemId);

            if (!item.HasValue)
            {
                return;
            }
            inv.RemoveItems(msg.itemId, msg.Amount, spawn: msg.Spawn);
        }
Beispiel #3
0
        static void OnRemoveItemsSuccess(ref RemoveItemsMsg msg, MyNetworkClient sender)
        {
            if (!MyEntities.EntityExists(msg.OwnerEntityId))
            {
                return;
            }
            IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
            MyInventory       inv   = owner.GetInventory(msg.InventoryIndex);

            inv.RemoveItemsInternal(msg.itemId, msg.Amount);
        }
Beispiel #4
0
        public void SendRemoveItemsRequest(MyInventory inv, MyFixedPoint amount, uint itemId, bool spawn = false)
        {
            Debug.Assert(inv.Owner != null, "Inventory must have owner to be able to remove items synchronously!");
            var msg = new RemoveItemsMsg();

            msg.OwnerEntityId  = inv.Owner.EntityId;
            msg.InventoryIndex = inv.InventoryIdx;
            msg.itemId         = itemId;
            msg.Amount         = amount;
            msg.Spawn          = spawn;
            Sync.Layer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
        }
Beispiel #5
0
        public void SendRemoveItemsAnnounce(MyInventory inv, MyFixedPoint amount, uint itemId)
        {
            Debug.Assert(inv.Owner != null, "Inventory must have owner to be able to remove items synchronously!");
            Debug.Assert(Sync.IsServer);
            var msg = new RemoveItemsMsg();

            msg.OwnerEntityId  = inv.Owner.EntityId;
            msg.InventoryIndex = inv.InventoryIdx;
            msg.itemId         = itemId;
            msg.Amount         = amount;
            Sync.Layer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
        }
Beispiel #6
0
        static void OnRemoveItemsRequest(ref RemoveItemsMsg msg, MyNetworkClient sender)
        {
            if (!MyEntities.EntityExists(msg.OwnerEntityId))
            {
                return;
            }

            IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
            MyInventory       inv   = owner.GetInventory(msg.InventoryIndex);
            var item = inv.GetItemByID(msg.itemId);

            if (!item.HasValue)
            {
                return;
            }
            inv.RemoveItems(msg.itemId, msg.Amount, spawn: msg.Spawn);
        }
 static void OnRemoveItemsSuccess(ref RemoveItemsMsg msg, MyNetworkClient sender)
 {
     if (!MyEntities.EntityExists(msg.OwnerEntityId)) return;
     IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
     MyInventory inv = owner.GetInventory(msg.InventoryIndex);
     inv.RemoveItemsInternal(msg.itemId, msg.Amount);
 }
        static void OnRemoveItemsRequest(ref RemoveItemsMsg msg, MyNetworkClient sender)
        {
            if (!MyEntities.EntityExists(msg.OwnerEntityId)) return;

            IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
            MyInventory inv = owner.GetInventory(msg.InventoryIndex);
            var item = inv.GetItemByID(msg.itemId);
            if (!item.HasValue) return;
            inv.RemoveItems(msg.itemId, msg.Amount, spawn: msg.Spawn);
        }
 public void SendRemoveItemsRequest(MyInventory inv, MyFixedPoint amount, uint itemId, bool spawn = false)
 {
     Debug.Assert(inv.Owner != null, "Inventory must have owner to be able to remove items synchronously!");
     var msg = new RemoveItemsMsg();
     msg.OwnerEntityId = inv.Owner.EntityId;
     msg.InventoryIndex = inv.InventoryIdx;
     msg.itemId = itemId;
     msg.Amount = amount;
     msg.Spawn = spawn;
     Sync.Layer.SendMessageToServer(ref msg, MyTransportMessageEnum.Request);
 }
Beispiel #10
0
 public void SendRemoveItemsAnnounce(MyInventory inv, MyFixedPoint amount, uint itemId)
 {
     Debug.Assert(inv.Owner != null, "Inventory must have owner to be able to remove items synchronously!");
     Debug.Assert(Sync.IsServer);
     var msg = new RemoveItemsMsg();
     msg.OwnerEntityId = inv.Owner.EntityId;
     msg.InventoryIndex = inv.InventoryIdx;
     msg.itemId = itemId;
     msg.Amount = amount;
     Sync.Layer.SendMessageToAll(ref msg, MyTransportMessageEnum.Success);
 }
        static void OnRemoveItemsSuccess(ref RemoveItemsMsg msg, MyNetworkClient sender)
        {
            if (!MyEntities.EntityExists(msg.OwnerEntityId)) return;
            IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
            MyInventory inv = null;
            if (owner != null)
            {
               inv = owner.GetInventory(msg.InventoryIndex);
            }
            else
            {
                // NOTE: this should be the default code after we get rid of the inventory owner and should be searched by it's id
                MyEntity entity = MyEntities.GetEntityById(msg.OwnerEntityId);
                MyInventoryBase baseInventory;
                if (entity.Components.TryGet<MyInventoryBase>(out baseInventory))
                {
                    inv = baseInventory as MyInventory;
                }
            }

            if (inv != null)
            {
                inv.RemoveItemsInternal(msg.itemId, msg.Amount);
            }
            else
            {
                Debug.Fail("Inventory was not found!");
            }
        }
        static void OnRemoveItemsRequest(ref RemoveItemsMsg msg, MyNetworkClient sender)
        {
            if (!MyEntities.EntityExists(msg.OwnerEntityId)) return;

            IMyInventoryOwner owner = MyEntities.GetEntityById(msg.OwnerEntityId) as IMyInventoryOwner;
            MyInventory inv = null;
            if (owner != null)
            {
                inv = owner.GetInventory(msg.InventoryIndex);
            }
            else
            {
                // NOTE: this should be the default code after we get rid of the inventory owner and should be searched by it's id
                MyEntity entity = MyEntities.GetEntityById(msg.OwnerEntityId);
                MyInventoryBase baseInventory;
                if (entity.Components.TryGet<MyInventoryBase>(out baseInventory))
                {
                    inv = baseInventory as MyInventory;
                }
            }
            var item = inv.GetItemByID(msg.itemId);
            if (!item.HasValue) return;
            inv.RemoveItems(msg.itemId, msg.Amount, spawn: msg.Spawn);
        }