2023-11-24 04:02:08 +00:00
|
|
|
package shapes
|
2023-11-20 18:01:35 +00:00
|
|
|
|
2023-11-24 04:02:08 +00:00
|
|
|
import (
|
|
|
|
"golang.org/x/exp/maps"
|
|
|
|
)
|
2023-11-21 01:55:09 +00:00
|
|
|
|
2023-11-20 18:01:35 +00:00
|
|
|
type ObjectCollection map[uint16]ObjectDefinition
|
2023-11-21 01:55:09 +00:00
|
|
|
|
|
|
|
func (o ObjectCollection) Clone() ObjectCollection {
|
|
|
|
m := make(ObjectCollection)
|
|
|
|
maps.Copy(m, o)
|
|
|
|
return m
|
|
|
|
}
|
|
|
|
|
2023-11-24 04:02:08 +00:00
|
|
|
func (o ObjectCollection) Get(objectId uint16) ObjectDefinition {
|
|
|
|
return o[objectId]
|
|
|
|
}
|
|
|
|
|
2023-11-21 01:55:09 +00:00
|
|
|
func (o ObjectCollection) Add(def ObjectDefinition) {
|
|
|
|
if _, ok := o[def.GetObjectId()]; ok {
|
|
|
|
panic("object already exists")
|
|
|
|
}
|
|
|
|
o[def.GetObjectId()] = def
|
|
|
|
}
|