Beispiel #1
0
    public void RemoveSpecifyedUISlot(IDynamicItemSlotS bodyPartUISlots,
                                      BodyPartUISlots.StorageCharacteristics StorageCharacteristics)
    {
        if (BodyPartToSlot.ContainsKey(bodyPartUISlots) == false)
        {
            BodyPartToSlot[bodyPartUISlots] = new List <GameObject>();
        }
        var Slot = bodyPartUISlots.RelatedStorage.GetNamedItemSlot(StorageCharacteristics.namedSlot);

        for (int i = 0; i < BodyPartToSlot[bodyPartUISlots].Count; i++)
        {
            var slot = BodyPartToSlot[bodyPartUISlots][i].GetComponentInChildren <UI_DynamicItemSlot>();

            if (slot.ItemSlot == Slot)
            {
                OpenSlots.Remove(BodyPartToSlot[bodyPartUISlots][i].GetComponentInChildren <UI_DynamicItemSlot>());
                BodyPartToSlot[bodyPartUISlots][i].GetComponentInChildren <UI_DynamicItemSlot>().ReSetSlot();
                Destroy(BodyPartToSlot[bodyPartUISlots][i]);
                BodyPartToSlot[bodyPartUISlots].RemoveAt(i);
            }
        }


        if (BodyPartToSlot[bodyPartUISlots].Count == 0)
        {
            BodyPartToSlot.Remove(bodyPartUISlots);
        }

        if (StorageCharacteristics.SlotArea == SlotArea.Hands)
        {
            HandsController.RemoveHand(StorageCharacteristics);
        }
    }
Beispiel #2
0
    public void AddHand(IDynamicItemSlotS bodyPartUISlots, BodyPartUISlots.StorageCharacteristics StorageCharacteristics)
    {
        if (this == null)
        {
            return;
        }
        DoubleHandController HandController;

        switch (StorageCharacteristics.namedSlot)
        {
        case NamedSlot.leftHand:
            if (AvailableLeftHand.Count > 0)
            {
                HandController = AvailableLeftHand[0];
                AvailableLeftHand.RemoveAt(0);
            }
            else
            {
                HandController = Instantiate(DoubleHandController, transform);
                HandController.HideAll();
                HandController.RelatedHandsController = this;
                AvailableRightHand.Add(HandController);
                DoubleHandControllers.Add(HandController);
            }

            break;

        case NamedSlot.rightHand:
            if (AvailableRightHand.Count > 0)
            {
                HandController = AvailableRightHand[0];
                AvailableRightHand.RemoveAt(0);
            }
            else
            {
                HandController = Instantiate(DoubleHandController, transform);
                HandController.HideAll();
                HandController.RelatedHandsController = this;
                AvailableLeftHand.Add(HandController);
                DoubleHandControllers.Add(HandController);
            }

            break;

        default:
            Logger.LogError("humm Tried to put non-hand into Hand Slot");
            return;
        }

        StorageToHands[StorageCharacteristics] = HandController;
        HandController.AddHand(bodyPartUISlots, StorageCharacteristics);
        if (PlayerManager.LocalPlayerScript.playerNetworkActions.activeHand == null)
        {
            HandController.PickActiveHand();
        }
    }
    public void AddIndividual(IDynamicItemSlotS bodyPartUISlots,
                              BodyPartUISlots.StorageCharacteristics storageCharacteristicse)
    {
        if (this == null)
        {
            return;
        }
        if (storageCharacteristicse.SlotArea == SlotArea.Hands)
        {
            HandsController.AddHand(bodyPartUISlots, storageCharacteristicse);
        }
        else
        {
            var gameobjt = Instantiate(SlotPrefab);
            var NewSlot  = gameobjt.GetComponentInChildren <UI_DynamicItemSlot>();
            NewSlot.SetupSlot(bodyPartUISlots, storageCharacteristicse);
            switch (storageCharacteristicse.SlotArea)
            {
            case SlotArea.Pockets:
                gameobjt.transform.SetParent(Pockets.transform);
                break;

            case SlotArea.SuitStorage:
                gameobjt.transform.SetParent(SuitStorage.transform);
                break;

            case SlotArea.BeltPDABackpack:
                gameobjt.transform.SetParent(BeltPDABackpack.transform);
                break;

            case SlotArea.Clothing:
                gameobjt.transform.SetParent(Clothing.transform);
                break;
            }

            // if (ClientContents.ContainsKey(storageCharacteristicse.SlotArea) == false) ClientContents[storageCharacteristicse.SlotArea] = new List<UI_DynamicItemSlot>();
            // ClientContents[storageCharacteristicse.SlotArea].Add(NewSlot);
            gameobjt.transform.localScale = Vector3.one;
            if (BodyPartToSlot.ContainsKey(bodyPartUISlots) == false)
            {
                BodyPartToSlot[bodyPartUISlots] = new List <GameObject>();
            }
            BodyPartToSlot[bodyPartUISlots].Add(gameobjt);

            OpenSlots.Add(NewSlot);
        }
    }
Beispiel #4
0
    //Used to set up sprites and properties of the Item slot
    public void SetupSlot(IDynamicItemSlotS bodyPartUISlots,
                          BodyPartUISlots.StorageCharacteristics storageCharacteristics)
    {
        if (placeholderImage != null)
        {
            placeholderImage.sprite = storageCharacteristics.placeholderSprite;
        }
        namedSlot = storageCharacteristics.namedSlot;
        hoverName = storageCharacteristics.hoverName;
        RelatedBodyPartUISlots = bodyPartUISlots;
        var linkedSlot = ItemSlot.GetNamed(bodyPartUISlots.RelatedStorage, namedSlot);

        if (linkedSlot != null)
        {
            LinkSlot(linkedSlot);
        }
    }
    public void AddHand(IDynamicItemSlotS bodyPartUISlots, BodyPartUISlots.StorageCharacteristics StorageCharacteristics)
    {
        switch (StorageCharacteristics.namedSlot)
        {
        case NamedSlot.leftHand:
            LeftHand.SetActive(true);
            LeftHandActive = true;
            UI_LeftHand.SetUpHand(bodyPartUISlots, StorageCharacteristics);
            break;

        case NamedSlot.rightHand:
            RightHand.SetActive(true);
            RightHandActive = true;
            UI_RightHand.SetUpHand(bodyPartUISlots, StorageCharacteristics);
            break;
        }

        if (LeftHandActive && RightHandActive)
        {
            Overly.SetActive(true);
        }
    }
Beispiel #6
0
 //Used to resit contents and visuals
 public void ReSetSlot()
 {
     RelatedBodyPartUISlots = null;
     UnLinkSlot();
 }
Beispiel #7
0
 public void SetUpHand(IDynamicItemSlotS bodyPartUISlots,
                       BodyPartUISlots.StorageCharacteristics StorageCharacteristics)
 {
     SetupSlot(bodyPartUISlots, StorageCharacteristics);
 }