示例#1
0
        public bool SelectSetting(bool selected)
        {
            switch (Settings.SettingType(this.index))
            {
            case ConfigTypes.Button:
                // Simply execute the button's operation
                if (selected)
                {
                    Settings.ConfirmSetting(this.index, null);
                    RefreshItemValues();
                    SelectedSettingCursor.force_loc(UICursor.loc);
                    selected = false;
                }
                break;

            case ConfigTypes.SubSettings:
                if (selected)
                {
                    OpenSubMenu = true;
                    SelectedSettingCursor.force_loc(UICursor.loc);
                    selected = false;
                }
                break;

            case ConfigTypes.Keyboard:
            case ConfigTypes.Gamepad:
                break;

            default:
                Items[this.index].set_text_color(selected ? "Green" : "White");
                break;
            }
            SettingSelected = selected;
            Greyed_Cursor   = SettingSelected;

            if (SettingSelected)
            {
                TempSelectedSettings = (ISettings)Settings.Clone();
                TempOriginalSettings = (ISettings)Settings.Clone();
                SelectedSettingCursor.force_loc(UICursor.loc);
                SelectedSettingCursor.set_loc(UICursor.target_loc + new Vector2(VALUE_OFFSET, 0));
                SelectedSettingCursor.update();
            }
            else
            {
                TempSelectedSettings = null;
                TempOriginalSettings = null;
                RefreshCurrentValue(Settings);
                UICursor.force_loc(SelectedSettingCursor.loc);
                UICursor.update();
            }
            active = !SettingSelected;

            return(SettingSelected);
        }
示例#2
0
        private void refresh(bool preserveIndex = false)
        {
            if (ItemNodes == null)
            {
                preserveIndex = false;
            }

            int index = 0;

            if (preserveIndex)
            {
                index = this.index;
            }

            Items1 = actor1.num_items;
            Items2 = actor2.num_items;

            int column = this.column;

            if (Items1 == 0)
            {
                column = 1;
            }

            Item_Imgs1.Clear();
            Item_Imgs2.Clear();

            List <CommandUINode> nodes = new List <CommandUINode>();

            bool add_empty_slot = Mode != 0 && !this.is_help_active;

            for (int i = 0; i < Num; i++)
            {
                if (i < Items1)
                {
                    item_node(0, i, nodes);
                    Item_Imgs1.Add(nodes.Last());
                }
                else if (add_empty_slot && Selected[0] == 1 && i == Items1)
                {
                    empty_slot_node(0, i, nodes);
                    Item_Imgs1.Add(nodes.Last());
                }

                if (i < Items2)
                {
                    item_node(1, i, nodes);
                    Item_Imgs2.Add(nodes.Last());
                }
                else if (add_empty_slot && Selected[0] == 0 && i == Items2)
                {
                    empty_slot_node(1, i, nodes);
                    Item_Imgs2.Add(nodes.Last());
                }
            }

            ItemNodes = new UINodeSet <CommandUINode>(nodes);
            ItemNodes.WrapVerticalSameColumn    = true;
            ItemNodes.CursorMoveSound           = System_Sounds.Menu_Move1;
            ItemNodes.HorizontalCursorMoveSound = System_Sounds.Menu_Move2;

            ItemNodes.AngleMultiplier   = 2f;
            ItemNodes.TangentDirections = new List <CardinalDirections>
            {
                CardinalDirections.Left, CardinalDirections.Right
            };
            ItemNodes.refresh_destinations();

            if (column == 0)
            {
                this.index1 = Math.Min(index, Items1 - 1);
            }
            else
            {
                this.index2 = Math.Min(index, Items2 - 1);
            }

            var old_cursor = UICursor;

            UICursor             = new UICursor <CommandUINode>(ItemNodes);
            UICursor.draw_offset = new Vector2(-12, 0);
            UICursor.ratio       = new int[] { 1, 1 };
            if (preserveIndex)
            {
                UICursor.force_loc(old_cursor.loc);
                UICursor.offset = old_cursor.offset;
            }

            Equipped_Tag1.loc = loc + new Vector2(SPACING - 16, actor1.equipped * 16 - 8);
            Equipped_Tag2.loc = loc + new Vector2(SPACING * 2 - 16, actor2.equipped * 16 - 8);
        }
示例#3
0
 internal void activate(Vector2 cursorLoc)
 {
     UICursor.force_loc((cursorLoc - UICursor.draw_offset) - Loc);
     UICursor.set_loc(Items.ActiveNode.loc);
 }