55 lines
887 B
Go
55 lines
887 B
Go
|
package tins2020
|
||
|
|
||
|
type FlowerState struct {
|
||
|
ID string
|
||
|
Location Point
|
||
|
}
|
||
|
|
||
|
type GameState struct {
|
||
|
Balance int
|
||
|
Speed GameSpeed
|
||
|
Herbarium HerbariumState
|
||
|
Terrain TerrainState
|
||
|
View ViewState
|
||
|
}
|
||
|
|
||
|
type HerbariumState struct {
|
||
|
Flowers []HerbariumFlowerState
|
||
|
}
|
||
|
|
||
|
type HerbariumFlowerState struct {
|
||
|
ID string
|
||
|
Unlocked bool
|
||
|
}
|
||
|
|
||
|
type TerrainState struct {
|
||
|
Temperature int64
|
||
|
Humidity int64
|
||
|
Variant int64
|
||
|
PlaceX int64
|
||
|
PlaceY int64
|
||
|
Flowers []FlowerState
|
||
|
}
|
||
|
|
||
|
type ViewState struct {
|
||
|
Center Point
|
||
|
}
|
||
|
|
||
|
func (s *GameState) Serialize(name string) error {
|
||
|
path, err := UserFile(name)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return EncodeJSON(path, &s)
|
||
|
}
|
||
|
|
||
|
func (s *GameState) Deserialize(name string) error {
|
||
|
path, err := UserFile(name)
|
||
|
if err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return DecodeJSON(path, &s)
|
||
|
}
|
||
|
|
||
|
func SaveGameName() string { return "savegame.json" }
|