Ejemplo n.º 1
0
 public static bool PreGetActionText(ItemDisplayOptionPanel __instance, int _actionID, ref string __result)
 {
     try
     {
         if (_actionID == (int)EnCustomInventoryActions.AssignQuickslotSet)
         {
             __result = "New QuickSlotSet";
             ItemDisplay m_activatedItemDisplay = (ItemDisplay)AccessTools.Field(typeof(ItemDisplayOptionPanel), "m_activatedItemDisplay").GetValue(__instance);
             var         ext = m_activatedItemDisplay?.RefItem?.gameObject?.GetComponent <QuickSlotSetExt>();
             if (ext != null && ext.Slots.Count > 0)
             {
                 __result = "Replace QuickSlotSet";
             }
             return(false);
         }
         if (_actionID == (int)EnCustomInventoryActions.DeleteQuickslotSet)
         {
             __result = "Delete QuickSlotSet";
             return(false);
         }
     }
     catch (Exception ex)
     {
         DynamicQuickslots.Instance.MyLogger.LogError("PreGetActionText: " + ex.Message);
     }
     return(true);
 }
Ejemplo n.º 2
0
        static bool ItemDisplayOptionPanel_ActionHasBeenPressed_Pre(ItemDisplayOptionPanel __instance, ref int _actionID)
        {
            #region quit
            if (_actionID != DROP_ONE_ACTION_ID)
            {
                return(true);
            }
            #endregion

            __instance.m_activatedItemDisplay.OnConfirmDropStack(1);
            return(false);
        }
Ejemplo n.º 3
0
        static bool ItemDisplayOptionPanel_GetActionText_Pre(ItemDisplayOptionPanel __instance, ref string __result, ref int _actionID)
        {
            #region quit
            if (_actionID != DROP_ONE_ACTION_ID)
            {
                return(true);
            }
            #endregion

            __result = DROP_ONE_ACTION_TEXT;
            return(false);
        }
Ejemplo n.º 4
0
        static void ItemDisplayOptionPanel_GetActiveActions_Post(ItemDisplayOptionPanel __instance, ref List <int> __result)
        {
            #region quit
            //!itemDisplay.RefItem.TryAssign(out var item) || item.MoveStackAsOne
            if (!_itemActionDropOne || __instance == null ||
                !__instance.m_activatedItemDisplay.TryAssign(out var itemDisplay) ||
                itemDisplay.StackCount <= 1)
            {
                return;
            }
            #endregion

            __result.Add(DROP_ONE_ACTION_ID);
        }
Ejemplo n.º 5
0
 public static void PostGetActiveActions(ItemDisplayOptionPanel __instance, GameObject pointerPress, ref List <int> __result)
 {
     try
     {
         __result.Add((int)EnCustomInventoryActions.AssignQuickslotSet);
         ItemDisplay m_activatedItemDisplay = (ItemDisplay)AccessTools.Field(typeof(ItemDisplayOptionPanel), "m_activatedItemDisplay").GetValue(__instance);
         var         ext = m_activatedItemDisplay?.RefItem?.gameObject?.GetComponent <QuickSlotSetExt>();
         if (ext != null && ext.Slots.Count > 0)
         {
             __result.Add((int)EnCustomInventoryActions.DeleteQuickslotSet);
         }
     }
     catch (Exception ex)
     {
         DynamicQuickslots.Instance.MyLogger.LogError("PostGetActiveActions: " + ex.Message);
     }
 }
Ejemplo n.º 6
0
 public static bool PreActionHasBeenPressed(ItemDisplayOptionPanel __instance, int _actionID)
 {
     try
     {
         if (_actionID == (int)EnCustomInventoryActions.AssignQuickslotSet)
         {
             ItemDisplay m_activatedItemDisplay = (ItemDisplay)AccessTools.Field(typeof(ItemDisplayOptionPanel), "m_activatedItemDisplay").GetValue(__instance);
             int         itemID = m_activatedItemDisplay.LastRefItemID;
             //DynamicQuickslots.Instance.MyLogger.LogDebug($" > Add quickslot set for {itemID}");
             QuickSlot[] m_quickSlots = (QuickSlot[])AccessTools.Field(typeof(CharacterQuickSlotManager), "m_quickSlots").GetValue(__instance.LocalCharacter.QuickSlotMngr);
             var         ext          = m_activatedItemDisplay?.RefItem?.gameObject?.GetOrAddComponent <QuickSlotSetExt>();
             if (ext)
             {
                 ext.Slots.Clear();
                 foreach (var qs in m_quickSlots.Where(qs => qs.ItemID > -1))
                 {
                     ext.Slots.Add(new CustomQuickSlot
                     {
                         Index  = qs.Index,
                         ItemID = qs.ItemID
                     });
                 }
                 __instance.CharacterUI.ShowInfoNotification($"QuickSlotSet saved!");
             }
         }
         else if (_actionID == (int)EnCustomInventoryActions.DeleteQuickslotSet)
         {
             ItemDisplay m_activatedItemDisplay = (ItemDisplay)AccessTools.Field(typeof(ItemDisplayOptionPanel), "m_activatedItemDisplay").GetValue(__instance);
             int         itemID = m_activatedItemDisplay.LastRefItemID;
             var         ext    = m_activatedItemDisplay?.RefItem?.gameObject?.GetOrAddComponent <QuickSlotSetExt>();
             //DynamicQuickslots.Instance.MyLogger.LogDebug($" > Delete quickslot et for {itemID}");
             if (ext)
             {
                 ext.Slots.Clear();
                 __instance.CharacterUI.ShowInfoNotification($"QuickSlotSet removed!");
             }
         }
     }
     catch (Exception ex)
     {
         DynamicQuickslots.Instance.MyLogger.LogError("PreActionHasBeenPressed: " + ex.Message);
     }
     return(true);
 }