private void RenderFurnitureButtons()
    {
        furnitureItems = new List <GameObject>();

        UnityEngine.Object buttonPrefab     = Resources.Load("UI/MenuLeft/ConstructionMenu/Button");
        Transform          contentTransform = this.transform.Find("Scroll View").Find("Viewport").Find("Content");

        BuildModeController buildModeController = WorldController.Instance.BuildModeController;

        // For each furniture prototype in our world, create one instance
        // of the button to be clicked!
        foreach (string furnitureKey in PrototypeManager.Furniture.Keys)
        {
            if (PrototypeManager.Furniture.Get(furnitureKey).HasTypeTag("Non-buildable") && showAllFurniture == false)
            {
                continue;
            }

            GameObject gameObject = (GameObject)Instantiate(buttonPrefab);
            gameObject.transform.SetParent(contentTransform);
            furnitureItems.Add(gameObject);

            Furniture proto    = PrototypeManager.Furniture.Get(furnitureKey);
            string    objectId = furnitureKey;

            gameObject.name = "Button - Build " + objectId;

            gameObject.transform.GetComponentInChildren <TextLocalizer>().formatValues = new string[] { LocalizationTable.GetLocalization(proto.LocalizationName) };

            Button button = gameObject.GetComponent <Button>();

            button.onClick.AddListener(delegate
            {
                buildModeController.SetMode_BuildFurniture(objectId);
                menuLeft.CloseCurrentMenu();
            });

            // http://stackoverflow.com/questions/1757112/anonymous-c-sharp-delegate-within-a-loop
            string furniture = furnitureKey;
            LocalizationTable.CBLocalizationFilesChanged += delegate
            {
                gameObject.transform.GetComponentInChildren <TextLocalizer>().formatValues = new string[] { LocalizationTable.GetLocalization(PrototypeManager.Furniture.Get(furniture).LocalizationName) };
            };

            Image image = gameObject.transform.GetChild(0).GetComponentsInChildren <Image>().First();
            image.sprite = WorldController.Instance.FurnitureSpriteController.GetSpriteForFurniture(furnitureKey);
        }
    }
예제 #2
0
    protected override void Start()
    {
        base.Start();

        Text title = GetComponentInChildren <Text>();

        title.text = LocalizationTable.GetLocalization("menu_construction");

        menuLeft = this.transform.GetComponentInParent <MenuLeft>();

        this.transform.Find("Close Button").GetComponent <Button>().onClick.AddListener(delegate
        {
            menuLeft.CloseCurrentMenu();
        });

        RenderRoomBehaviorButtons();
        RenderTileButtons();
        RenderFurnitureButtons();
        RenderUtilityButtons();

        InputField filterField = GetComponentInChildren <InputField>();

        filterField.onValueChanged.AddListener(delegate { FilterTextChanged(filterField.text); });
        KeyboardManager.Instance.RegisterModalInputField(filterField);
    }
예제 #3
0
    private void Start()
    {
        Text title = GetComponentInChildren <Text>();

        title.text = LocalizationTable.GetLocalization("menu_orders");

        menuLeft = this.transform.GetComponentInParent <MenuLeft>();

        this.transform.Find("Close Button").GetComponent <Button>().onClick.AddListener(delegate
        {
            menuLeft.CloseCurrentMenu();
        });

        RenderDeconstructButton();
        RenderMineButton();

        InputField filterField = GetComponentInChildren <InputField>();

        filterField.onValueChanged.AddListener(delegate { FilterTextChanged(filterField.text); });
        KeyboardManager.Instance.RegisterModalInputField(filterField);
    }
예제 #4
0
 // Deactivates All Menus.
 public void DeactivateAll()
 {
     menuLeft.CloseCurrentMenu();
     WorldController.Instance.MouseController.ClearMouseMode(true);
 }