init
This commit is contained in:
88
internal/foundry/models/world.go
Normal file
88
internal/foundry/models/world.go
Normal file
@@ -0,0 +1,88 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
type World struct {
|
||||
Id string
|
||||
Title string
|
||||
Description string
|
||||
Compatibility Compatibility
|
||||
System string
|
||||
CoreVersion string
|
||||
SystemVersion string
|
||||
LastPlayed string
|
||||
PlayTime int64
|
||||
NextSession time.Time
|
||||
}
|
||||
|
||||
type Worlds []World
|
||||
|
||||
func (worlds Worlds) GetById(id int) *World {
|
||||
return &worlds[id]
|
||||
}
|
||||
|
||||
func (state *FoundryState) GetWorld() World {
|
||||
return World{
|
||||
Id: state.World.Id,
|
||||
Title: state.World.Title,
|
||||
Description: state.World.Description,
|
||||
Compatibility: Compatibility{
|
||||
Minimum: state.World.Compatibility.Minimum,
|
||||
Maximum: state.World.Compatibility.Maximum,
|
||||
},
|
||||
System: state.World.System,
|
||||
CoreVersion: state.World.CoreVersion,
|
||||
SystemVersion: state.World.SystemVersion,
|
||||
LastPlayed: state.World.LastPlayed,
|
||||
PlayTime: state.World.PlayTime,
|
||||
NextSession: state.World.NextSession,
|
||||
}
|
||||
}
|
||||
|
||||
func (state *FoundryState) GetWorlds() Worlds {
|
||||
worldsCopy := make([]World, 0, 8)
|
||||
for i := range state.Worlds {
|
||||
world := &(state.Worlds[i])
|
||||
worldCopy := World{
|
||||
Id: world.Id,
|
||||
Title: world.Title,
|
||||
Description: world.Description,
|
||||
Compatibility: Compatibility{
|
||||
Minimum: world.Compatibility.Minimum,
|
||||
Maximum: world.Compatibility.Maximum,
|
||||
},
|
||||
System: world.System,
|
||||
CoreVersion: world.CoreVersion,
|
||||
SystemVersion: world.SystemVersion,
|
||||
LastPlayed: world.LastPlayed,
|
||||
PlayTime: world.PlayTime,
|
||||
NextSession: world.NextSession,
|
||||
}
|
||||
worldsCopy = append(worldsCopy, worldCopy)
|
||||
}
|
||||
return worldsCopy
|
||||
}
|
||||
|
||||
func (worlds Worlds) GetSessionTime(worldName string) (*time.Time, error) {
|
||||
if worldName == "" && len(worlds) != 1 {
|
||||
return nil, ErrorSetupNotFound
|
||||
}
|
||||
|
||||
if worldName == "" {
|
||||
return &worlds.GetById(0).NextSession, nil
|
||||
} else {
|
||||
for i := range worlds {
|
||||
if worlds[i].Id == worldName {
|
||||
return &worlds.GetById(0).NextSession, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return nil, ErrorSetupNotFound
|
||||
}
|
||||
|
||||
func (world World) GetSessionTime() *time.Time {
|
||||
return &world.NextSession
|
||||
}
|
||||
Reference in New Issue
Block a user