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