this repo has no description

add numItem type for config list

voigt.tngl.sh a91721db 086b1e26

verified
+26 -28
+26 -28
screen_config.go
··· 58 58 } 59 59 } 60 60 61 + func numItem(key string, values []int, get func() int, set func(int)) ConfigItem { 62 + idx := uint8(0) 63 + var a []any 64 + for i, v := range values { 65 + a = append(a, v) 66 + if values[i] == get() { 67 + idx = uint8(i) 68 + } 69 + } 70 + return ConfigItem{ 71 + Key: key, 72 + values: a, 73 + label: func(v any) string { return strconv.Itoa(v.(int)) }, 74 + selectedIdx: idx, 75 + callback: func(v any) { set(v.(int)) }, 76 + } 77 + } 78 + 61 79 func blockBagItem() ConfigItem { 62 80 values := []any{BlockBagRandom, BlockBagSevenBag} 63 81 idx := uint8(0) ··· 97 115 98 116 func (cs *ConfigScreen) OnEnter() { 99 117 cs.ConfigList = []ConfigItem{ 100 - { 101 - Key: "Level", 102 - values: []any{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 103 - label: func(v any) string { return strconv.Itoa(v.(int)) }, 104 - selectedIdx: func() uint8 { 105 - for i, v := range []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} { 106 - if v == CONFIG.Level { 107 - return uint8(i) 108 - } 109 - } 110 - return 0 111 - }(), 112 - callback: func(v any) { CONFIG.Level = v.(int) }, 113 - }, 118 + numItem("Level", 119 + []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, 120 + func() int { return CONFIG.Level }, 121 + func(v int) { CONFIG.Level = v }), 114 122 boolItem("Show Drop Shadow", 115 123 func() bool { return CONFIG.DropShadow.Enabled }, 116 124 func(v bool) { CONFIG.DropShadow.Enabled = v }), ··· 124 132 func() bool { return CONFIG.SoftDropPointsEnabled }, 125 133 func(v bool) { CONFIG.SoftDropPointsEnabled = v }), 126 134 blockBagItem(), 127 - { 128 - Key: "Next Blocks", 129 - values: []any{1, 2, 3, 4, 5}, 130 - label: func(v any) string { return strconv.Itoa(v.(int)) }, 131 - selectedIdx: func() uint8 { 132 - for i, v := range []int{1, 2, 3, 4, 5} { 133 - if v == CONFIG.NextBlock.Count { 134 - return uint8(i) 135 - } 136 - } 137 - return 0 138 - }(), 139 - callback: func(v any) { CONFIG.NextBlock.Count = v.(int) }, 140 - }, 135 + numItem("Next Blocks", 136 + []int{1, 2, 3, 4, 5}, 137 + func() int { return CONFIG.NextBlock.Count }, 138 + func(v int) { CONFIG.NextBlock.Count = v }), 141 139 blockColorItem("Background", 142 140 func() ff.Color { return CONFIG.Background }, 143 141 func(c ff.Color) { CONFIG.Background = c }),