Ejemplo n.º 1
0
        /// <summary>
        /// Builds the "Select Material" window.
        /// </summary>
        /// <param name="menu">The parent window for the window.</param>
        private void CreateSelector(ToolParameterMenu menu)
        {
            if (menu == null)
            {
                throw new ArgumentNullException("menu");
            }
            Color32 color  = PUITuning.Colors.BackgroundLight;
            var     parent = menu.transform.parent?.gameObject ?? GameScreenManager.Instance.
                             ssOverlayCanvas;

            // Create a single MaterialSelector which is all we need
            typeSelect = Util.KInstantiateUI <MaterialSelector>(infoScreen.
                                                                materialSelectionPanel.MaterialSelectorTemplate, parent);
            var obj = typeSelect.gameObject;

            typeSelect.name = "FilteredClearToolMaterials";
            // Allow scrolling on the material list
            Traverse.Create(typeSelect).SetField("ConsumeMouseScroll", true);
            // Add canvas and renderer
            obj.AddComponent <Canvas>().renderMode = RenderMode.ScreenSpaceOverlay;
            obj.AddComponent <CanvasRenderer>();
            // Background and hit-test
            var infoBG = infoScreen.transform.Find("BG");

            if (infoBG != null)
            {
                var imgComponent = infoBG.GetComponent <Image>();
                if (imgComponent != null)
                {
                    color = imgComponent.color;
                }
                obj.AddComponent <Image>().color = color;
            }
            obj.AddComponent <GraphicRaycaster>();
            // Resize window to match its contents
            PUIElements.AddSizeFitter(obj);
            typeSelect.ConfigureScreen(sweepRecipe.Ingredients[0], sweepRecipe);
            AddEggsAndFoods();
            var transform = obj.rectTransform();

            // Position
            transform.pivot      = new Vector2(1.0f, 0.0f);
            transform.localScale = Vector3.one;
            transform.SetAsFirstSibling();
            typeSelect.Activate();
        }