Beispiel #1
0
        public override void _Ready()
        {
            var levelContainer = GetNode <HBoxContainer>("HBoxContainer");
            var select         = levelContainer.GetNode <Button>("LEVEL1");
            var label          = levelContainer.GetNode <Label>("Label");

            label.Text = "STATIC_" + gmObj.etype.ToString();

            for (int i = 0; i < gmObj.def.levels.Count; i++)
            {
                if (i > 0)
                {
                    select = select.Duplicate() as Button;
                    GetNode <HBoxContainer>("HBoxContainer").AddChild(select);
                }
                select.GetNode <Label>("Label").Text = $"STATIC_LEVEL{i + 1}";
                select.Group       = group;
                select.HintTooltip = GetLevelDesc(gmObj.etype, gmObj.def.levels[i]);
                select.Connect("pressed", this, nameof(_on_LevelButton_Pressed), new Godot.Collections.Array()
                {
                    i + 1
                });
            }

            gmObj.OBSProperty(x => x.level).Subscribe(x =>
            {
                GD.Print(x);
                var currBtn = GetNode <HBoxContainer>("HBoxContainer").GetChild <Button>(x);
                if (!currBtn.Pressed)
                {
                    currBtn.Pressed = true;
                }
            }).EndWith(this);

            gmObj.OBSProperty(x => x.valid).Subscribe(x =>
            {
                foreach (Button elem in group.GetButtons())
                {
                    elem.Disabled = !x;
                }
            }).EndWith(this);
        }