public static bool Prefix(BridgeMaterialType materialType, ref TwoStateButton __result, Panel_Materials __instance) { if (!shouldRun()) { return(true); } switch (materialType) { case BridgeMaterialType.ROAD: __result = __instance.m_RoadButton; return(false); case BridgeMaterialType.REINFORCED_ROAD: __result = __instance.m_ReinforcedRoadButton; return(false); case BridgeMaterialType.WOOD: __result = __instance.m_WoodButton; return(false); case BridgeMaterialType.STEEL: __result = __instance.m_SteelButton; return(false); case BridgeMaterialType.HYDRAULICS: __result = __instance.m_HydraulicsButton; return(false); case BridgeMaterialType.ROPE: __result = __instance.m_RopeButton; return(false); case BridgeMaterialType.CABLE: __result = __instance.m_CableButton; return(false); case BridgeMaterialType.SPRING: __result = __instance.m_SpringButton; return(false); case BridgeMaterialType.BUNGINE_ROPE: __result = instance.m_BungeeButton; return(false); } Debug.LogWarningFormat("Unexpected materialType in PanelMaterials.GetMaterialButton: {0}", new object[] { materialType.ToString() }); __result = null; return(false); }
public static void Postfix(Panel_Materials __instance) { if (!shouldRun() || instance.m_BungeeButton == null) { return; } TwoStateButton button = instance.m_BungeeButton; if (button.IsOn() && BridgeTrace.IsTracingActive()) { button.Duck(); return; } button.UnDuck(); }
public static void Postfix() { GameObject springButton = GameObject.Find("GameUI/Panel_BottomBar/Panel_Materials/NonRoadGroup/Spring"); GameObject cableButton = GameObject.Find("GameUI/Panel_BottomBar/Panel_Materials/NonRoadGroup/Cable"); GameObject bungeeObject = GameObject.Instantiate(springButton); bungeeObject.name = "Bungee_Rope"; GameObject bungee_button = GameObject.Find("Bungee_Rope/Button_Spring"); bungee_button.name = "Button_Bungee"; bungee_button.transform.SetParent(bungeeObject.transform); GameObject target = GameObject.Find("NonRoadGroup"); //instance.Logger.LogInfo($"target is null? {target == null}"); if (target != null) { bungeeObject.transform.SetParent(target.transform); } //bungee_button.AddComponent<RectTransform>(); CanvasRenderer canvasRenderer = bungee_button.GetComponent <CanvasRenderer>(); Image img = bungee_button.GetComponent <Image>(); img.sprite = instance.bungee_selected; //img.rectTransform.pivot = new Vector2(0,1); RectTransform baseTransform = bungeeObject.GetComponent <RectTransform>(); baseTransform.anchoredPosition = new Vector2(302, -50); //img.rectTransform.position = new Vector3(550, 50, 0); baseTransform.anchoredPosition = new Vector2(302, -50); //instance.Logger.LogInfo(baseTransform.anchoredPosition); //instance.Logger.LogInfo(baseTransform.position); baseTransform.sizeDelta = new Vector2(50, 50); baseTransform.localScale = new Vector3(1, 1, 1); baseTransform.pivot = new Vector2(0, 0.5f); //instance.Logger.LogInfo("set size"); //img.rectTransform.position = new Vector3(springTransform.position.x + 50f, springTransform.position.y, springTransform.position.z); GameObject.Destroy(bungee_button.GetComponent <TwoStateButton>()); GameObject materialLimit = GameObject.Find("GameUI/Panel_BottomBar/Panel_Materials/NonRoadGroup/Bungee_Rope/MaterialLimit"); RectTransform materialLimitT = materialLimit.GetComponent <RectTransform>(); materialLimitT.anchoredPosition = new Vector2(0, -5); MaterialLimit ml = materialLimit.GetComponent <MaterialLimit>(); ml.gameObject.SetActive(false); instance.m_BungeeMaterialLimit = ml; GameObject DuckImageGameObject = GameObject.Find("GameUI/Panel_BottomBar/Panel_Materials/NonRoadGroup/Bungee_Rope/Button_Bungee/DuckImage"); Image DuckImage = DuckImageGameObject.GetComponent <Image>(); DuckImage.sprite = instance.bungee; TwoStateButton btn = bungee_button.AddComponent <TwoStateButton>(); btn.m_Image = img; btn.m_DuckImage = DuckImage; btn.m_SpriteOn = img.sprite; btn.m_SpriteOff = instance.bungee; btn.m_StartState = ButtonState.OFF; instance.click = new UnityEvent(); instance.click.AddListener(instance.OnBungee); btn.m_PointerDownEvent = instance.click; btn.TurnOff(); instance.m_BungeeButton = btn; instance.Logger.LogInfo("^ Ignore this, it was because an update frame happened before the images were set."); instance.Logger.LogInfo("Created material button."); // sandbox material budget GameObject resourceContainer = GameObject.Find("GameUI/Panel_TopBar/HorizontalLayout/CenterInfo/Sandbox/Panel_SandboxResources/ResourcesVerticalLayout/Resources"); VerticalLayoutGroup group = resourceContainer.GetComponent <VerticalLayoutGroup>(); GameObject start = GameObject.Find("GameUI/Panel_TopBar/HorizontalLayout/CenterInfo/Sandbox/Panel_SandboxResources/ResourcesVerticalLayout/Resources/Spring"); GameObject bungeeResource = GameObject.Instantiate(start); bungeeResource.name = "Bungee Rope"; bungeeResource.transform.SetParent(resourceContainer.transform); GameObject textObject = GameObject.Find("GameUI/Panel_TopBar/HorizontalLayout/CenterInfo/Sandbox/Panel_SandboxResources/ResourcesVerticalLayout/Resources/Bungee Rope/Text"); TMPro.TextMeshProUGUI text = textObject.GetComponent <TMPro.TextMeshProUGUI>(); GameObject.Destroy(textObject.GetComponent <I2.Loc.Localize>()); text.text = "Bungine Rope"; instance.m_BungeeInputField = bungeeResource.GetComponent <SandboxInputField>(); bungeeResource.transform.localScale = new Vector3(1, 1, 1); instance.m_BungeeInputField.ChangeToFormat(SandboxInputFieldFormat.BUNGIE_ROPE_BUDGET); RectTransform panelTransform = GameObject.Find("GameUI/Panel_TopBar/HorizontalLayout/CenterInfo/Sandbox/Panel_SandboxResources").GetComponent <RectTransform>(); panelTransform.sizeDelta = new Vector2(300, 400); instance.Logger.LogInfo("Created sandbox material input."); }