room.go initial write
This commit is contained in:
parent
b7c7b057c7
commit
df7e90fcf4
|
@ -0,0 +1,57 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"io"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"encoding/json"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Room represents a location on the map.
|
||||||
|
type Room struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
Description string `json:"description,omitempty"` // unused in this implimentation, but i plan to reuse this scheme for rooms that might need
|
||||||
|
From []int `json:"from,omitempty"`
|
||||||
|
To []int `json:"to,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Rooms struct {
|
||||||
|
Room []Room `json:"rooms"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Group represents a common Grouping of rooms
|
||||||
|
type Group struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Description string `json:"description"` // unused
|
||||||
|
Rooms []int `json:"rooms"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Groups struct {
|
||||||
|
Group []Group `json:"groups"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadFiles() ([]Room, []Group) {
|
||||||
|
r, g := make([]Room, 0), make([]Group, 0)
|
||||||
|
rfile, err := os.Open("./json/rooms.json")
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
gfile, err := os.Open("./json/groups.json")
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
rdata, err := io.ReadAll(rfile)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
gdata, err := io.ReadAll(gfile)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
json.Unmarshal(rdata, &r)
|
||||||
|
json.Unmarshal(gdata, &g)
|
||||||
|
|
||||||
|
return r, g
|
||||||
|
}
|
Loading…
Reference in New Issue