go-susapp/settings.go

52 lines
1.2 KiB
Go
Raw Normal View History

2021-09-12 00:25:10 +01:00
package main
import (
"encoding/json"
2021-12-16 20:57:35 +00:00
"tea.melonie54.xyz/sean/go-susapp/src/enum"
2021-09-12 00:25:10 +01:00
)
type SettingsJSON struct {
PlayerName string `json:"PlayerName"`
PlayerColor byte `json:"PlayerColor"`
ServerAddress string `json:"ServerAddress"`
ServerPort int64 `json:"ServerPort"`
Language uint32 `json:"Language"`
QuickChatMode byte `json:"QuickChatMode"`
Debug DebugJSON `json:"Debug"`
}
type DebugJSON struct {
PlayerPosition bool `json:"PlayerPosition"`
PlayerCollision bool `json:"PlayerCollision"`
MapCollision bool `json:"MapCollision"`
DisableCollision bool `json:"DisableCollision"`
2021-09-12 00:25:10 +01:00
}
func UnmarshalSettings(data []byte) (SettingsJSON, error) {
var r SettingsJSON
err := json.Unmarshal(data, &r)
return r, err
}
func (r *SettingsJSON) Marshal() ([]byte, error) {
return json.Marshal(r)
}
func NewDefaultSettingsJSON() SettingsJSON {
return SettingsJSON{
PlayerName: "Player 1",
PlayerColor: 0,
ServerAddress: "localhost",
ServerPort: 22023,
Language: enum.GAMEKEYWORD_ALL,
QuickChatMode: enum.QUICK_CHAT_ONLY,
Debug: DebugJSON{
PlayerPosition: false,
PlayerCollision: false,
MapCollision: false,
DisableCollision: false,
},
2021-09-12 00:25:10 +01:00
}
}