예제 #1
0
 private void LegacyChestPanel_Show(On.LegacyChestPanel.orig_Show orig, LegacyChestPanel self)
 {
     try
     {
         ItemDetailsDisplay m_itemDetailDisplay = (ItemDetailsDisplay)AccessTools.Field(typeof(LegacyChestPanel), "m_itemDetailDisplay").GetValue(self);
         Item m_lastItem = (Item)AccessTools.Field(typeof(ItemDetailsDisplay), "m_lastItem").GetValue(m_itemDetailDisplay);
         OLogger.Log($"Show={m_lastItem.HasMultipleUses}");
     }
     catch (Exception ex)
     {
         OLogger.Error($"LegacyChestPanel_Show={ex.Message}");
     }
     orig(self);
 }
예제 #2
0
 private void LegacyChestPanel_StartInit(On.LegacyChestPanel.orig_StartInit orig, LegacyChestPanel self)
 {
     orig(self);
     try
     {
         ItemDisplay        m_itemInChest       = (ItemDisplay)AccessTools.Field(typeof(LegacyChestPanel), "m_itemInChest").GetValue(self);
         ItemDetailsDisplay m_itemDetailDisplay = (ItemDetailsDisplay)AccessTools.Field(typeof(LegacyChestPanel), "m_itemDetailDisplay").GetValue(self);
         //AccessTools.Field(typeof(LegacyChestPanel), "m_itemInChest").SetValue(self, m_itemInChest);
         ItemDetailsPanelSpawner componentInChildren = self.GetComponentInChildren <ItemDetailsPanelSpawner>();
         if ((bool)componentInChildren)
         {
             m_itemDetailDisplay = componentInChildren.DetailPanel;
             ItemDisplay      item  = (ItemDisplay)AccessTools.Field(typeof(ItemDetailsDisplay), "itemDisplay").GetValue(m_itemDetailDisplay);
             ItemGroupDisplay group = (ItemGroupDisplay)AccessTools.Field(typeof(ItemDetailsDisplay), "groupDisplay").GetValue(m_itemDetailDisplay);
             OLogger.Log($"item={item == null}");
             OLogger.Log($"group={group == null}");
             m_itemInChest = group;
         }
         ItemDisplay itemInChest = m_itemInChest;
         itemInChest.onSelectCallback = (UnityAction <ItemDisplay>)Delegate.Combine(itemInChest.onSelectCallback, new UnityAction <ItemDisplay>(self.OnItemSelected));
         Transform transform = self.transform.Find("MiddlePanel/PlayerInventory/Header/lblTitle");
         if ((bool)transform)
         {
             //m_lblInventoryTitle = transform.GetComponent<Text>();
         }
     }
     catch (Exception ex)
     {
         OLogger.Error($"StartInit={ex.Message}");
     }
 }
예제 #3
0
        private void LegacyChestPanel_OnItemDisplayClicked(On.LegacyChestPanel.orig_OnItemDisplayClicked orig, LegacyChestPanel self, ItemDisplay _itemDisplay)
        {
            try
            {
                //OLogger.Log("OnItemDisplayClicked");
                ItemDisplay   m_itemInChest    = (ItemDisplay)AccessTools.Field(typeof(LegacyChestPanel), "m_itemInChest").GetValue(self);
                ItemContainer m_refLegacyChest = (ItemContainer)AccessTools.Field(typeof(LegacyChestPanel), "m_refLegacyChest").GetValue(self);
                CharacterUI   m_characterUI    = (CharacterUI)AccessTools.Field(typeof(LegacyChestPanel), "m_characterUI").GetValue(self);
                //OLogger.Log($"UQD={self.RefItem.IsStackable} {self.RefItem.MaxStackAmount}");
                if (_itemDisplay == m_itemInChest)
                {
                    self.TakeItemBack();
                }
                else //if (!(_itemDisplay is ItemGroupDisplay) || ((ItemGroupDisplay)_itemDisplay).StackCount == 1)
                {
                    /*if (m_refLegacyChest.ItemCount > 0)
                     * {
                     *  self.TakeItemBack();
                     * }*/
                    /*if (_itemDisplay is ItemGroupDisplay)
                     * {
                     *  m_itemInChest = _itemDisplay;
                     *  AccessTools.Field(typeof(LegacyChestPanel), "m_itemInChest").SetValue(self, m_itemInChest);
                     * }
                     * OLogger.Log($"IsGroup1={_itemDisplay is ItemGroupDisplay}");
                     * OLogger.Log($"IsGroup2={m_itemInChest is ItemGroupDisplay}");*/
                    //OLogger.Log($"TryMoveTo={_itemDisplay.RefItem.IsStackable} {_itemDisplay.RefItem.MaxStackAmount}");
                    _itemDisplay.TryMoveTo(m_refLegacyChest);

                    //OLogger.Log($"UQD={m_refLegacyChest.GetContainedItems()[0].IsStackable} {m_refLegacyChest.GetContainedItems()[0].MaxStackAmount}");

                    /*if (m_characterUI.IsGroupViewDisplayed)
                     * {
                     *  m_characterUI.HideGroupView();
                     * }*/
                }

                /*else
                 * {
                 *  m_characterUI.ShowGroupview((ItemGroupDisplay)_itemDisplay);
                 * }*/
            }
            catch (Exception ex)
            {
                OLogger.Error($"OnItemDisplayClicked={ex.Message}");
            }
        }