Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package sendtables contains code related to decoding sendtables. Mostly used internally but can be interesting for direct access to server-classes and entities.
Index ¶
- type Entity
 - type EntityCreatedHandler
 - type EntityHandler
 - type EntityOp
 - type Property
 - type PropertyEntry
 - type PropertyUpdateHandler
 - type PropertyValue
 - func (v PropertyValue) Array() []any
 - func (v PropertyValue) BoolVal() bool
 - func (v PropertyValue) Float() float32
 - func (v PropertyValue) Handle() uint64
 - func (v PropertyValue) Int() int
 - func (v PropertyValue) Int64() int64
 - func (v PropertyValue) R3Vec() r3.Vector
 - func (v PropertyValue) R3VecOrNil() *r3.Vector
 - func (v PropertyValue) Str() string
 - func (v PropertyValue) String() string
 - func (v PropertyValue) UInt32() uint32
 - func (v PropertyValue) UInt64() uint64
 
- type PropertyValueType
 - type ServerClass
 - type ServerClasses
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Entity ¶
type Entity interface {
	// ServerClass returns the entity's server-class.
	ServerClass() ServerClass
	// ID returns the entity's ID.
	ID() int
	// SerialNum returns the entity's serial number.
	SerialNum() int
	// Properties returns all properties of the entity.
	Properties() (out []Property)
	// Property finds a property on the entity by name.
	//
	// Returns nil if the property wasn't found.
	Property(name string) Property
	// BindProperty combines Property() & Property.Bind() into one.
	// Essentially binds a property's value to a pointer.
	// See the docs of the two individual functions for more info.
	BindProperty(name string, variable any, valueType PropertyValueType)
	// PropertyValue finds a property on the entity by name and returns its value.
	//
	// Returns false as second value if the property was not found.
	PropertyValue(name string) (PropertyValue, bool)
	// PropertyValueMust finds a property on the entity by name and returns its value.
	//
	// Panics with nil pointer dereference error if the property was not found.
	PropertyValueMust(name string) PropertyValue
	// Position returns the entity's position in world coordinates.
	Position() r3.Vector
	// OnPositionUpdate registers a handler for the entity's position update.
	// The handler is called with the new position every time a position-relevant property is updated.
	//
	// See also Position()
	OnPositionUpdate(h func(pos r3.Vector))
	// OnDestroy registers a function to be called on the entity's destruction.
	OnDestroy(delegate func())
	// Destroy triggers all via OnDestroy() registered functions.
	//
	// Intended for internal use only.
	Destroy()
	// OnCreateFinished registers a function to be called once the entity is fully created -
	// i.e. once all property updates have been sent out.
	OnCreateFinished(delegate func())
}
    Entity is an auto-generated interface for entity, intended to be used when mockability is needed. entity stores a entity in the game (e.g. players etc.) with its properties.
type EntityCreatedHandler ¶
type EntityCreatedHandler func(Entity)
EntityCreatedHandler is the interface for handlers that are interested in EntityCreatedEvents.
type EntityHandler ¶
EntityHandler is a function that receives Entity updates
type EntityOp ¶
type EntityOp int
EntityOp is a bitmask representing the type of operation performed on an Entity
const ( EntityOpNone EntityOp = 0x00 EntityOpCreated EntityOp = 0x01 EntityOpUpdated EntityOp = 0x02 EntityOpDeleted EntityOp = 0x04 EntityOpEntered EntityOp = 0x08 EntityOpLeft EntityOp = 0x10 EntityOpCreatedEntered EntityOp = EntityOpCreated | EntityOpEntered EntityOpUpdatedEntered EntityOp = EntityOpUpdated | EntityOpEntered EntityOpDeletedLeft EntityOp = EntityOpDeleted | EntityOpLeft )
type Property ¶
type Property interface {
	// Name returns the property's name.
	Name() string
	// Value returns the current value of the property.
	Value() PropertyValue
	// OnUpdate registers a handler for updates of the property's value.
	//
	// The handler will be called with the current value upon registration.
	OnUpdate(handler PropertyUpdateHandler)
	/*
	   Bind binds a property's value to a pointer.
	   Example:
	   	var i int
	   	property.Bind(&i, ValTypeInt)
	   This will bind the property's value to i so every time it's updated i is updated as well.
	   The valueType indicates which field of the PropertyValue to use for the binding.
	*/
	Bind(variable any, valueType PropertyValueType)
}
    Property is an auto-generated interface for property, intended to be used when mockability is needed. property wraps a flattenedPropEntry and allows registering handlers that can be triggered on a update of the property.
type PropertyEntry ¶
type PropertyUpdateHandler ¶
type PropertyUpdateHandler func(PropertyValue)
PropertyUpdateHandler is the interface for handlers that are interested in property changes.
type PropertyValue ¶
type PropertyValue struct {
	Any any
}
    PropertyValue stores parsed & decoded send-table values. For instance player health, location etc.
func (PropertyValue) Array ¶
func (v PropertyValue) Array() []any
func (PropertyValue) BoolVal ¶
func (v PropertyValue) BoolVal() bool
BoolVal returns true if IntVal > 0.
func (PropertyValue) Float ¶
func (v PropertyValue) Float() float32
func (PropertyValue) Handle ¶
func (v PropertyValue) Handle() uint64
func (PropertyValue) Int ¶
func (v PropertyValue) Int() int
func (PropertyValue) Int64 ¶
func (v PropertyValue) Int64() int64
func (PropertyValue) R3Vec ¶
func (v PropertyValue) R3Vec() r3.Vector
func (PropertyValue) R3VecOrNil ¶
func (v PropertyValue) R3VecOrNil() *r3.Vector
func (PropertyValue) Str ¶
func (v PropertyValue) Str() string
func (PropertyValue) String ¶
func (v PropertyValue) String() string
func (PropertyValue) UInt32 ¶
func (v PropertyValue) UInt32() uint32
func (PropertyValue) UInt64 ¶
func (v PropertyValue) UInt64() uint64
type PropertyValueType ¶
type PropertyValueType int
PropertyValueType specifies the type of PropertyValue
const ( ValTypeInt PropertyValueType = iota ValTypeFloat32 ValTypeFloat64 // Like ValTypeFloat32 but with additional cast to float64 ValTypeString ValTypeVector ValTypeArray ValTypeBoolInt // Int that is treated as bool (1 -> true, != 1 -> false) )
Possible types of property values. See Property.Bind()
type ServerClass ¶
type ServerClass interface {
	// ID returns the server-class's ID.
	ID() int
	// Name returns the server-class's name.
	Name() string
	// PropertyEntries returns the names of all property-entries on this server-class.
	PropertyEntries() []string
	// OnEntityCreated registers a function to be called when a new entity is created from this serverClass.
	OnEntityCreated(handler EntityCreatedHandler)
	String() string
}
    ServerClass is an auto-generated interface for property, intended to be used when mockability is needed. serverClass stores meta information about Entity types (e.g. palyers, teams etc.).
type ServerClasses ¶
type ServerClasses interface {
	All() []ServerClass
	FindByName(name string) ServerClass
}
    ServerClasses is a searchable list of ServerClasses.
      
      Source Files
      ¶
    
  
      
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| 
       Package fake provides basic mocks for Entity and Property. 
         | 
      Package fake provides basic mocks for Entity and Property. |