Beispiel #1
0
            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);
            }
Beispiel #2
0
            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();
            }
Beispiel #3
0
            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.");
            }