Add R() extension method

This commit is contained in:
Tyfon
2024-05-21 13:51:10 -07:00
parent a16f908028
commit b196656a59
4 changed files with 25 additions and 12 deletions

View File

@@ -33,12 +33,12 @@ namespace UIFixes
}
[PatchPostfix]
public static void Postfix(object __instance, GClass1923 scheme, ProduceView view)
public static void Postfix(object __instance, object scheme, ProduceView view)
{
var instance = new R.ProductionPanelShowSubclass(__instance);
var productScheme = new R.Scheme(scheme);
ValidationInputField searchField = new R.ProductionPanel(instance.ProductionPanel).SeachInputField;
ValidationInputField searchField = instance.ProductionPanel.R().SeachInputField;
if (searchField.text.Length > 0 && productScheme.EndProduct.LocalizedName().IndexOf(searchField.text, StringComparison.InvariantCultureIgnoreCase) < 0)
{
view.GameObject.SetActive(false);
@@ -70,7 +70,7 @@ namespace UIFixes
if (__instance.method_4().Count() > 2)
{
AreaScreenSubstrate areaScreenSubstrate = __instance.GetComponentInParent<AreaScreenSubstrate>();
LayoutElement layoutElement = new R.AreaScreenSubstrate(areaScreenSubstrate).ContentLayout;
LayoutElement layoutElement = areaScreenSubstrate.R().ContentLayout;
layoutElement.minHeight = 750f; // aka areaScreenSubstrate._maxHeight
areaScreenSubstrate.method_8();
}
@@ -132,7 +132,7 @@ namespace UIFixes
// Reset the default behavior
AreaScreenSubstrate areaScreenSubstrate = __instance.GetComponentInParent<AreaScreenSubstrate>();
LayoutElement layoutElement = new R.AreaScreenSubstrate(areaScreenSubstrate).ContentLayout;
LayoutElement layoutElement = areaScreenSubstrate.R().ContentLayout;
layoutElement.minHeight = -1f;
}
}

View File

@@ -40,7 +40,7 @@ namespace UIFixes
Transform ____compactPanel,
SimpleTooltip ___simpleTooltip_0)
{
var instance = new R.ItemSpecificationPanel(__instance);
var instance = __instance.R();
if (!Settings.ShowModStats.Value || ___item_0 is not Mod)
{
@@ -136,7 +136,7 @@ namespace UIFixes
return;
}
var compactPanels = new R.ItemSpecificationPanel(__instance).CompactCharacteristicPanels;
var compactPanels = __instance.R().CompactCharacteristicPanels;
R.ItemSpecificationPanel.Refresh(compactPanels, deepAttributes);
}
}
@@ -161,14 +161,14 @@ namespace UIFixes
return;
}
var buttonsContainer = new R.InteractionButtonsContainer(____interactionButtonsContainer);
var buttonsContainer = ____interactionButtonsContainer.R();
SimpleContextMenuButton toggleButton = null;
ContextMenuButton toggleButton = null;
// Listen to the setting and the work there to handle multiple windows open at once
void onSettingChanged(object sender, EventArgs args)
{
var text = new R.ContextMenuButton(toggleButton).Text;
var text = toggleButton.R().Text;
text.text = GetLabel();
__instance.method_5(); // rebuild stat panels
@@ -183,7 +183,7 @@ namespace UIFixes
void createButton()
{
Sprite sprite = CacheResourcesPopAbstractClass.Pop<Sprite>("Characteristics/Icons/Modding");
toggleButton = UnityEngine.Object.Instantiate(buttonsContainer.ButtonTemplate, buttonsContainer.Container, false);
toggleButton = (ContextMenuButton)UnityEngine.Object.Instantiate(buttonsContainer.ButtonTemplate, buttonsContainer.Container, false);
toggleButton.Show(GetLabel(), null, sprite, onClick, null);
____interactionButtonsContainer.method_5(toggleButton); // add to disposable list
}
@@ -312,7 +312,7 @@ namespace UIFixes
const string DecreasingColorHex = "#C40000";
string text = textMesh.text;
var wrappedPanel = new R.CompactCharacteristicPanel(panel);
var wrappedPanel = panel.R();
ItemAttributeClass attribute = wrappedPanel.ItemAttribute;
// Holy shit did they mess up MOA. Half of the calculation is done in the StringValue() method, so calculating delta from Base() loses all that

View File

@@ -271,7 +271,7 @@ namespace UIFixes
}
// Get the TraderControllerClass
TraderControllerClass traderControllerClass = new R.GridView(__instance).TraderController;
TraderControllerClass traderControllerClass = __instance.R().TraderController;
// Check that the destinations won't overlap (Swap won't check this)
if (!ItemsOverlap(item, itemToAddress, targetItem, targetToAddress))

13
R.cs
View File

@@ -1,8 +1,10 @@
using Aki.Reflection.Utils;
using Diz.LanguageExtensions;
using EFT.Hideout;
using EFT.InputSystem;
using EFT.InventoryLogic;
using EFT.UI;
using EFT.UI.DragAndDrop;
using HarmonyLib;
using System;
using System.Collections.Generic;
@@ -308,4 +310,15 @@ namespace UIFixes
public TextMeshProUGUI Text { get { return (TextMeshProUGUI)TextField.GetValue(Value); } }
}
}
public static class RExtentensions
{
public static R.ProductionPanel R(this ProductionPanel value) => new(value);
public static R.AreaScreenSubstrate R(this AreaScreenSubstrate value) => new(value);
public static R.ItemSpecificationPanel R(this ItemSpecificationPanel value) => new(value);
public static R.CompactCharacteristicPanel R(this CompactCharacteristicPanel value) => new(value);
public static R.GridView R(this GridView value) => new(value);
public static R.InteractionButtonsContainer R(this InteractionButtonsContainer value) => new(value);
public static R.ContextMenuButton R(this ContextMenuButton value) => new(value);
}
}