mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-13 12:32:05 +01:00
input: Refactoring
This commit is contained in:
parent
e465c59395
commit
23002c7597
75
genkeys.go
75
genkeys.go
@ -249,8 +249,8 @@ type Key int
|
|||||||
|
|
||||||
// Keys.
|
// Keys.
|
||||||
const (
|
const (
|
||||||
{{range $index, $name := .KeyNames}}Key{{$name}} Key = Key(driver.Key{{$name}})
|
{{range $index, $name := .EbitenKeyNames}}Key{{$name}} Key = Key(driver.Key{{$name}})
|
||||||
{{end}} KeyMax Key = Key{{.LastKeyName}}
|
{{end}} KeyMax Key = Key{{.LastEbitenKeyName}}
|
||||||
)
|
)
|
||||||
|
|
||||||
// String returns a string representing the key.
|
// String returns a string representing the key.
|
||||||
@ -258,7 +258,7 @@ const (
|
|||||||
// If k is an undefined key, String returns an empty string.
|
// If k is an undefined key, String returns an empty string.
|
||||||
func (k Key) String() string {
|
func (k Key) String() string {
|
||||||
switch k {
|
switch k {
|
||||||
{{range $name := .KeyNames}}case Key{{$name}}:
|
{{range $name := .EbitenKeyNames}}case Key{{$name}}:
|
||||||
return {{$name | printf "%q"}}
|
return {{$name | printf "%q"}}
|
||||||
{{end}}}
|
{{end}}}
|
||||||
return ""
|
return ""
|
||||||
@ -266,7 +266,7 @@ func (k Key) String() string {
|
|||||||
|
|
||||||
func keyNameToKey(name string) (Key, bool) {
|
func keyNameToKey(name string) (Key, bool) {
|
||||||
switch strings.ToLower(name) {
|
switch strings.ToLower(name) {
|
||||||
{{range $name := .KeyNames}}case {{$name | printf "%q" | ToLower}}:
|
{{range $name := .EbitenKeyNames}}case {{$name | printf "%q" | ToLower}}:
|
||||||
return Key{{$name}}, true
|
return Key{{$name}}, true
|
||||||
{{end}}}
|
{{end}}}
|
||||||
return 0, false
|
return 0, false
|
||||||
@ -282,7 +282,7 @@ package driver
|
|||||||
type Key int
|
type Key int
|
||||||
|
|
||||||
const (
|
const (
|
||||||
{{range $index, $name := .KeyNames}}Key{{$name}}{{if eq $index 0}} Key = iota{{end}}
|
{{range $index, $name := .EbitenKeyNames}}Key{{$name}}{{if eq $index 0}} Key = iota{{end}}
|
||||||
{{end}}
|
{{end}}
|
||||||
)
|
)
|
||||||
`
|
`
|
||||||
@ -301,7 +301,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var glfwKeyCodeToKey = map[glfw.Key]driver.Key{
|
var glfwKeyCodeToKey = map[glfw.Key]driver.Key{
|
||||||
{{range $index, $name := .KeyNamesWithoutMods}}glfw.Key{{$name}}: driver.Key{{$name}},
|
{{range $index, $name := .EbitenKeyNamesWithoutMods}}glfw.Key{{$name}}: driver.Key{{$name}},
|
||||||
{{end}}
|
{{end}}
|
||||||
glfw.KeyLeftAlt: driver.KeyAlt,
|
glfw.KeyLeftAlt: driver.KeyAlt,
|
||||||
glfw.KeyRightAlt: driver.KeyAlt,
|
glfw.KeyRightAlt: driver.KeyAlt,
|
||||||
@ -440,28 +440,17 @@ func main() {
|
|||||||
// Follow the standard comment rule (https://golang.org/s/generatedcode).
|
// Follow the standard comment rule (https://golang.org/s/generatedcode).
|
||||||
doNotEdit := "// Code generated by genkeys.go using 'go generate'. DO NOT EDIT."
|
doNotEdit := "// Code generated by genkeys.go using 'go generate'. DO NOT EDIT."
|
||||||
|
|
||||||
namesSet := map[string]struct{}{}
|
ebitenKeyNames := []string{}
|
||||||
namesWithoutModsSet := map[string]struct{}{}
|
ebitenKeyNamesWithoutMods := []string{}
|
||||||
codes := []string{}
|
for name := range nameToJSKeyCodes {
|
||||||
for name, cs := range nameToJSKeyCodes {
|
ebitenKeyNames = append(ebitenKeyNames, name)
|
||||||
namesSet[name] = struct{}{}
|
|
||||||
codes = append(codes, cs...)
|
|
||||||
if name != "Alt" && name != "Control" && name != "Shift" {
|
if name != "Alt" && name != "Control" && name != "Shift" {
|
||||||
namesWithoutModsSet[name] = struct{}{}
|
ebitenKeyNamesWithoutMods = append(ebitenKeyNamesWithoutMods, name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
names := []string{}
|
|
||||||
namesWithoutMods := []string{}
|
|
||||||
for n := range namesSet {
|
|
||||||
names = append(names, n)
|
|
||||||
}
|
|
||||||
for n := range namesWithoutModsSet {
|
|
||||||
namesWithoutMods = append(namesWithoutMods, n)
|
|
||||||
}
|
|
||||||
|
|
||||||
sort.Slice(names, keyNamesLess(names))
|
sort.Slice(ebitenKeyNames, keyNamesLess(ebitenKeyNames))
|
||||||
sort.Slice(namesWithoutMods, keyNamesLess(namesWithoutMods))
|
sort.Slice(ebitenKeyNamesWithoutMods, keyNamesLess(ebitenKeyNamesWithoutMods))
|
||||||
sort.Strings(codes)
|
|
||||||
|
|
||||||
for path, tmpl := range map[string]string{
|
for path, tmpl := range map[string]string{
|
||||||
"keys.go": ebitenKeysTmpl,
|
"keys.go": ebitenKeysTmpl,
|
||||||
@ -498,27 +487,25 @@ func main() {
|
|||||||
}
|
}
|
||||||
// NOTE: According to godoc, maps are automatically sorted by key.
|
// NOTE: According to godoc, maps are automatically sorted by key.
|
||||||
if err := tmpl.Execute(f, struct {
|
if err := tmpl.Execute(f, struct {
|
||||||
License string
|
License string
|
||||||
DoNotEdit string
|
DoNotEdit string
|
||||||
BuildTag string
|
BuildTag string
|
||||||
NameToJSKeyCodes map[string][]string
|
NameToJSKeyCodes map[string][]string
|
||||||
KeyCodeToNameEdge map[int]string
|
KeyCodeToNameEdge map[int]string
|
||||||
Codes []string
|
EbitenKeyNames []string
|
||||||
KeyNames []string
|
EbitenKeyNamesWithoutMods []string
|
||||||
LastKeyName string
|
LastEbitenKeyName string
|
||||||
KeyNamesWithoutMods []string
|
NameToGLFWKeys map[string]glfw.Key
|
||||||
NameToGLFWKeys map[string]glfw.Key
|
|
||||||
}{
|
}{
|
||||||
License: license,
|
License: license,
|
||||||
DoNotEdit: doNotEdit,
|
DoNotEdit: doNotEdit,
|
||||||
BuildTag: buildTag,
|
BuildTag: buildTag,
|
||||||
NameToJSKeyCodes: nameToJSKeyCodes,
|
NameToJSKeyCodes: nameToJSKeyCodes,
|
||||||
KeyCodeToNameEdge: keyCodeToNameEdge,
|
KeyCodeToNameEdge: keyCodeToNameEdge,
|
||||||
Codes: codes,
|
EbitenKeyNames: ebitenKeyNames,
|
||||||
KeyNames: names,
|
EbitenKeyNamesWithoutMods: ebitenKeyNamesWithoutMods,
|
||||||
LastKeyName: names[len(names)-1],
|
LastEbitenKeyName: ebitenKeyNames[len(ebitenKeyNames)-1],
|
||||||
KeyNamesWithoutMods: namesWithoutMods,
|
NameToGLFWKeys: nameToGLFWKeys,
|
||||||
NameToGLFWKeys: nameToGLFWKeys,
|
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user