Пример #1
0
 public ItemContainer GetContainer(PlayerInventory.Type id)
 {
     if (id == PlayerInventory.Type.Main)
     {
         return(this.containerMain);
     }
     if (PlayerInventory.Type.Belt == id)
     {
         return(this.containerBelt);
     }
     if (PlayerInventory.Type.Wear != id)
     {
         return(null);
     }
     return(this.containerWear);
 }
Пример #2
0
 public void UpdateContainer(float delta, PlayerInventory.Type type, ItemContainer container, bool bSendInventoryToEveryone, float temperature)
 {
     if (container == null)
     {
         return;
     }
     container.temperature = temperature;
     if (delta > 0f)
     {
         container.OnCycle(delta);
     }
     if (container.dirty)
     {
         this.SendUpdatedInventory(type, container, bSendInventoryToEveryone);
         base.baseEntity.InvalidateNetworkCache();
     }
 }
Пример #3
0
 public void SendUpdatedInventory(PlayerInventory.Type type, ItemContainer container, bool bSendInventoryToEveryone = false)
 {
     using (UpdateItemContainer updateItemContainer = Facepunch.Pool.Get <UpdateItemContainer>())
     {
         updateItemContainer.type = (int)type;
         if (container != null)
         {
             container.dirty = false;
             updateItemContainer.container = Facepunch.Pool.Get <List <ProtoBuf.ItemContainer> >();
             updateItemContainer.container.Add(container.Save());
         }
         if (!bSendInventoryToEveryone)
         {
             base.baseEntity.ClientRPCPlayer <UpdateItemContainer>(null, base.baseEntity, "UpdatedItemContainer", updateItemContainer);
         }
         else
         {
             base.baseEntity.ClientRPC <UpdateItemContainer>(null, "UpdatedItemContainer", updateItemContainer);
         }
     }
 }
Пример #4
0
 public void SendUpdatedInventory(
     PlayerInventory.Type type,
     ItemContainer container,
     bool bSendInventoryToEveryone = false)
 {
     using (UpdateItemContainer updateItemContainer = (UpdateItemContainer)Pool.Get <UpdateItemContainer>())
     {
         updateItemContainer.type = (__Null)type;
         if (container != null)
         {
             container.dirty = false;
             updateItemContainer.container = (__Null)Pool.Get <List <ItemContainer> >();
             ((List <ItemContainer>)updateItemContainer.container).Add(container.Save());
         }
         if (bSendInventoryToEveryone)
         {
             this.baseEntity.ClientRPC <UpdateItemContainer>((Connection)null, "UpdatedItemContainer", updateItemContainer);
         }
         else
         {
             this.baseEntity.ClientRPCPlayer <UpdateItemContainer>((Connection)null, this.baseEntity, "UpdatedItemContainer", updateItemContainer);
         }
     }
 }
Пример #5
0
        private void OnInventoryNetworkUpdate(PlayerInventory inventory, ItemContainer container, ProtoBuf.UpdateItemContainer updatedItemContainer, PlayerInventory.Type inventoryType)
        {
            if (inventoryType != PlayerInventory.Type.Main)
            {
                return;
            }

            var ruleset = GetPlayerRuleset(inventory.baseEntity.UserIDString);

            if (ruleset == null)
            {
                return;
            }

            AddItems(updatedItemContainer.container[0], ruleset);
        }