Example #1
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();
        }
    }