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