public static void WriteAttachedContainer(this NetworkWriter writer, AttachedContainer container)
        {
            var reference = NetworkedContainerReference.CreateReference(container) ??
                            throw new InvalidOperationException("Cannot create reference for attached container");

            writer.WriteNetworkedContainerReference(reference);
        }
Esempio n. 2
0
 private void InventoryOnContainerClosed(AttachedContainer container)
 {
     for (var i = 0; i < containerDisplays.Count; i++)
     {
         if (containerDisplays[i].Container == container)
         {
             Destroy(containerDisplays[i].UiElement);
             containerDisplays.RemoveAt(i);
             return;
         }
     }
 }
Esempio n. 3
0
    public void OnEnable()
    {
        TitleStyle                  = new GUIStyle();
        TitleStyle.fontSize         = 13;
        TitleStyle.fontStyle        = FontStyle.Bold;
        TitleStyle.normal.textColor = Color.white;

        containerDescriptor = (ContainerDescriptor)target;
        AddBase();

        attachedContainer    = containerDescriptor.attachedContainer;
        containerInteractive = containerDescriptor.containerInteractive;
        containerItemDisplay = containerDescriptor.containerItemDisplay;
    }
Esempio n. 4
0
        private void InventoryOnContainerOpened(AttachedContainer container)
        {
            foreach (ContainerDisplay x in containerDisplays)
            {
                if (x.Container == container)
                {
                    return;
                }
            }

            GameObject ui          = Instantiate(ContainerUiPrefab);
            var        containerUi = ui.GetComponent <ContainerUi>();

            Assert.IsNotNull(containerUi);
            containerUi.AttachedContainer = container;
            containerUi.Inventory         = Inventory;
            containerDisplays.Add(new ContainerDisplay(ui, container));
        }
Esempio n. 5
0
 /// <summary>
 /// Set the Active hand of the Player to be the AttachedContainer passed in parameter.
 /// Do nothing if the parameter is the already active parameter.
 /// </summary>
 /// <param name="selectedContainer">This AttachedContainer should only be a hand.</param>
 public void SetActiveHand(AttachedContainer selectedContainer)
 {
     if (selectedContainer == SelectedHand)
     {
         return;
     }
     else
     {
         SelectedHandIndex = HandContainers.ToList().IndexOf(selectedContainer);
         if (SelectedHandIndex != -1)
         {
             HandChanged?.Invoke(SelectedHandIndex);
             CmdSetActiveHand(SelectedHandIndex);
         }
         else
         {
             Debug.LogError("selectedContainer is not in HandContainers.");
             return;
         }
     }
 }
Esempio n. 6
0
        private void CreateHandDisplays()
        {
            // Destroy existing elements
            Transform containerTransform = HandsContainer.transform;
            int       childCount         = containerTransform.childCount;

            for (var i = 0; i < childCount; i++)
            {
                DestroyImmediate(containerTransform.GetChild(0).gameObject);
            }

            // Create hand for every hand container
            var containers = Hands.HandContainers;

            for (var i = 0; i < containers.Length; i++)
            {
                AttachedContainer attachedContainer = containers[i];
                GameObject        handElement       = Instantiate(i % 2 == 0 ? LeftHandPrefab : RightHandPrefab, HandsContainer, false);
                var slot = handElement.GetComponent <SingleItemContainerSlot>();
                slot.Inventory = Hands.Inventory;
                slot.Container = attachedContainer;
            }
        }
Esempio n. 7
0
        private bool CanStore(Item item, AttachedContainer target)
        {
            Container container = target.Container;

            return(container.CouldStoreItem(item) && container.CouldHoldItem(item));
        }
Esempio n. 8
0
 public ContainerDisplay(GameObject uiElement, AttachedContainer container)
 {
     UiElement = uiElement;
     Container = container;
 }