Refactor into server object to handle registered accounts
This commit is contained in:
parent
eccb726f74
commit
93decc027b
13 changed files with 304 additions and 128 deletions
33
pkg/game/world.go
Normal file
33
pkg/game/world.go
Normal file
|
@ -0,0 +1,33 @@
|
|||
package game
|
||||
|
||||
import "github.com/google/uuid"
|
||||
|
||||
// World describes a self contained universe and everything in it
|
||||
type World struct {
|
||||
instances []Instance
|
||||
}
|
||||
|
||||
// Instance describes a single entity or instance of an entity in the world
|
||||
type Instance struct {
|
||||
id uuid.UUID
|
||||
}
|
||||
|
||||
// NewWorld creates a new world object
|
||||
func NewWorld() *World {
|
||||
return &World{}
|
||||
}
|
||||
|
||||
// Adds an instance to the game
|
||||
func (w *World) CreateInstance() uuid.UUID {
|
||||
id := uuid.New()
|
||||
|
||||
// Initialise the instance
|
||||
instance := Instance{
|
||||
id: id,
|
||||
}
|
||||
|
||||
// Append the instance to the list
|
||||
w.instances = append(w.instances, instance)
|
||||
|
||||
return id
|
||||
}
|
24
pkg/game/world_test.go
Normal file
24
pkg/game/world_test.go
Normal file
|
@ -0,0 +1,24 @@
|
|||
package game
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNewWorld(t *testing.T) {
|
||||
// Very basic for now, nothing to verify
|
||||
world := NewWorld()
|
||||
if world == nil {
|
||||
t.Error("Failed to create world")
|
||||
}
|
||||
}
|
||||
|
||||
func TestWorld_CreateInstance(t *testing.T) {
|
||||
world := NewWorld()
|
||||
a := world.CreateInstance()
|
||||
b := world.CreateInstance()
|
||||
|
||||
// Basic duplicate check
|
||||
if a == b {
|
||||
t.Errorf("Created identical instances")
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue