25 lines
465 B
Go
25 lines
465 B
Go
package shapes
|
|
|
|
import (
|
|
"golang.org/x/exp/maps"
|
|
)
|
|
|
|
type ObjectCollection map[uint16]ObjectDefinition
|
|
|
|
func (o ObjectCollection) Clone() ObjectCollection {
|
|
m := make(ObjectCollection)
|
|
maps.Copy(m, o)
|
|
return m
|
|
}
|
|
|
|
func (o ObjectCollection) Get(objectId uint16) ObjectDefinition {
|
|
return o[objectId]
|
|
}
|
|
|
|
func (o ObjectCollection) Add(def ObjectDefinition) {
|
|
if _, ok := o[def.GetObjectId()]; ok {
|
|
panic("object already exists")
|
|
}
|
|
o[def.GetObjectId()] = def
|
|
}
|