49 lines
836 B
Go
49 lines
836 B
Go
// Package playstyle provides an enum for Ripple's playstyles.
|
|
package playstyle
|
|
|
|
import "strings"
|
|
|
|
// PlayStyle is a bitwise enum containing the instruments a Ripple user likes
|
|
// to play with.
|
|
type PlayStyle int
|
|
|
|
// various playstyles on ripple.
|
|
const (
|
|
Mouse int = 1 << iota
|
|
Tablet
|
|
Keyboard
|
|
Touchscreen
|
|
Spoon
|
|
LeapMotion
|
|
OculusRift
|
|
Dick
|
|
Eggplant
|
|
)
|
|
|
|
// Styles are string representations of the various playstyles someone can have.
|
|
var Styles = [...]string{
|
|
"Mouse",
|
|
"Tablet",
|
|
"Keyboard",
|
|
"Touchscreen",
|
|
"Spoon",
|
|
"Leap motion",
|
|
"Oculus rift",
|
|
"Dick",
|
|
"Eggplant",
|
|
}
|
|
|
|
// String is the string representation of a playstyle.
|
|
func (p PlayStyle) String() string {
|
|
var parts []string
|
|
|
|
i := int(p)
|
|
for k, v := range Styles {
|
|
if i&(1<<uint(k)) > 0 {
|
|
parts = append(parts, v)
|
|
}
|
|
}
|
|
|
|
return strings.Join(parts, ", ")
|
|
}
|