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