You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
517 B
Go
29 lines
517 B
Go
package ent
|
|
|
|
import (
|
|
"github.com/jordanorelli/hyperstone/dota"
|
|
)
|
|
|
|
// Class represents a set of constraints around an Entity.
|
|
type Class struct {
|
|
Name Symbol
|
|
Version int
|
|
Fields []*Field
|
|
}
|
|
|
|
func (c *Class) New() *Entity {
|
|
return &Entity{Class: c}
|
|
}
|
|
|
|
type classId struct {
|
|
name Symbol
|
|
version int
|
|
}
|
|
|
|
func (c *Class) fromProto(v *dota.ProtoFlattenedSerializerT, fields []Field) {
|
|
c.Fields = make([]*Field, len(v.GetFieldsIndex()))
|
|
for i, fi := range v.GetFieldsIndex() {
|
|
c.Fields[i] = &fields[fi]
|
|
}
|
|
}
|