object

package
v0.5.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2023 License: AGPL-3.0 Imports: 31 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Object

type Object struct {
	CFG *config.Config

	Users    *generic.SyncMap[umid.UMID, universe.User]
	Children *generic.SyncMap[umid.UMID, universe.Object]
	Mu       deadlock.RWMutex

	Parent universe.Object
	// contains filtered or unexported fields
}

func NewObject

func NewObject(id umid.UMID, db database.DB, world universe.World, media *media.Media) *Object

func (*Object) AddObject

func (o *Object) AddObject(object universe.Object, updateDB bool) error

TODO: think about rollaback

func (*Object) AddObjectTags

func (o *Object) AddObjectTags(prefix string, p *write.Point) *write.Point

func (*Object) AddObjects

func (o *Object) AddObjects(objects []universe.Object, updateDB bool) error

TODO: optimize

func (*Object) AddUser

func (o *Object) AddUser(user universe.User, updateDB bool) error

TODO: think about rollback on error

func (*Object) CreateObject

func (o *Object) CreateObject(objectID umid.UMID) (universe.Object, error)

func (*Object) DoRemoveObject

func (o *Object) DoRemoveObject(object universe.Object, updateDB bool) (bool, error)

func (*Object) FilterObjects

func (o *Object) FilterObjects(
	predicateFn universe.ObjectsFilterPredicateFn, recursive bool,
) map[umid.UMID]universe.Object

func (*Object) GetActualTransform

func (o *Object) GetActualTransform() *cmath.Transform

func (*Object) GetAsset2D

func (o *Object) GetAsset2D() universe.Asset2d

func (*Object) GetAsset3D

func (o *Object) GetAsset3D() universe.Asset3d

func (*Object) GetChildIDs added in v0.5.4

func (o *Object) GetChildIDs() []umid.UMID

func (*Object) GetCreatedAt

func (o *Object) GetCreatedAt() time.Time

func (*Object) GetDescription

func (o *Object) GetDescription() string

func (*Object) GetEffectiveOptions

func (o *Object) GetEffectiveOptions() *entry.ObjectOptions

func (*Object) GetEnabled

func (o *Object) GetEnabled() bool

func (*Object) GetEntry

func (o *Object) GetEntry() *entry.Object

func (*Object) GetID

func (o *Object) GetID() umid.UMID

func (*Object) GetLockUserID added in v0.5.3

func (o *Object) GetLockUserID() umid.UMID

func (*Object) GetName

func (o *Object) GetName() string

func (*Object) GetObject

func (o *Object) GetObject(objectID umid.UMID, recursive bool) (universe.Object, bool)

func (*Object) GetObjectAttributes

func (o *Object) GetObjectAttributes() universe.ObjectAttributes

func (*Object) GetObjectType

func (o *Object) GetObjectType() universe.ObjectType

func (*Object) GetObjects

func (o *Object) GetObjects(recursive bool) map[umid.UMID]universe.Object

GetObjects return map with all nested children if recursive is true, otherwise the method return map with children dependent only to current object.

func (*Object) GetOptions

func (o *Object) GetOptions() *entry.ObjectOptions

func (*Object) GetOwnerID

func (o *Object) GetOwnerID() umid.UMID

func (*Object) GetParent

func (o *Object) GetParent() universe.Object

func (*Object) GetPlacement

func (o *Object) GetPlacement(placementMap *entry.ObjectChildPlacement) (position_algo.Algo, error)

func (*Object) GetPlacements

func (o *Object) GetPlacements() map[umid.UMID]position_algo.Algo

func (*Object) GetSpawnMessage

func (o *Object) GetSpawnMessage() *websocket.PreparedMessage

func (*Object) GetTransform

func (o *Object) GetTransform() *cmath.Transform

func (*Object) GetUpdatedAt

func (o *Object) GetUpdatedAt() time.Time

func (*Object) GetUser

func (o *Object) GetUser(userID umid.UMID, recursive bool) (universe.User, bool)

func (*Object) GetUsers

func (o *Object) GetUsers(recursive bool) map[umid.UMID]universe.User

GetUsers return map with all nested users if recursive is true, otherwise the method return map with users dependent only to current object.

func (*Object) GetWorld

func (o *Object) GetWorld() universe.World

func (*Object) Initialize

func (o *Object) Initialize(ctx types.NodeContext) error

func (*Object) InvalidateCache

func (o *Object) InvalidateCache()

func (*Object) IsLockedByUser added in v0.5.3

func (o *Object) IsLockedByUser(user universe.User) bool

func (*Object) LoadFromEntry

func (o *Object) LoadFromEntry(entry *entry.Object, recursive bool) error

func (*Object) LockUIObject

func (o *Object) LockUIObject(user universe.User, state uint32) bool

func (*Object) RemoveObject

func (o *Object) RemoveObject(object universe.Object, recursive, updateDB bool) (bool, error)

TODO: think about rollback on error

func (*Object) RemoveObjects

func (o *Object) RemoveObjects(objects []universe.Object, recursive, updateDB bool) (bool, error)

TODO: rethink and optimize/reimplement

func (*Object) RemoveUser

func (o *Object) RemoveUser(user universe.User, updateDB bool) (bool, error)

func (*Object) Run

func (o *Object) Run() error

func (*Object) Save

func (o *Object) Save() error

func (*Object) Send

func (o *Object) Send(msg *websocket.PreparedMessage, recursive bool) error

func (*Object) SendAllAutoAttributes

func (o *Object) SendAllAutoAttributes(sendFn func(*websocket.PreparedMessage) error, recursive bool)

func (*Object) SendAttributes

func (o *Object) SendAttributes(sendFn func(*websocket.PreparedMessage), recursive bool)

QUESTION: why this method is never called?

func (*Object) SendRenderAutoAttributeMessage

func (o *Object) SendRenderAutoAttributeMessage(
	option *entry.RenderAutoAttributeOption,
	value *entry.AttributeValue,
	send func(*websocket.PreparedMessage) error,
)

func (*Object) SendSpawnMessage

func (o *Object) SendSpawnMessage(sendFn func(*websocket.PreparedMessage) error, recursive bool)

func (*Object) SendToUser

func (o *Object) SendToUser(userID umid.UMID, msg *websocket.PreparedMessage, recursive bool) error

func (*Object) SetActualTransform

func (o *Object) SetActualTransform(pos cmath.Transform, theta float64) error

func (*Object) SetAsset2D

func (o *Object) SetAsset2D(asset2d universe.Asset2d, updateDB bool) error

func (*Object) SetAsset3D

func (o *Object) SetAsset3D(asset3d universe.Asset3d, updateDB bool) error

func (*Object) SetAttributesMsg

func (o *Object) SetAttributesMsg(kind, name string, msg *websocket.PreparedMessage)

QUESTION: why this method is never called?

func (*Object) SetEnabled

func (o *Object) SetEnabled(enabled bool)

func (*Object) SetName

func (o *Object) SetName(name string, updateDB bool) error

func (*Object) SetObjectType

func (o *Object) SetObjectType(objectType universe.ObjectType, updateDB bool) error

func (*Object) SetOptions

func (o *Object) SetOptions(modifyFn modify.Fn[entry.ObjectOptions], updateDB bool) (*entry.ObjectOptions, error)

func (*Object) SetOwnerID

func (o *Object) SetOwnerID(ownerID umid.UMID, updateDB bool) error

func (*Object) SetParent

func (o *Object) SetParent(parent universe.Object, updateDB bool) error

func (*Object) SetTransform

func (o *Object) SetTransform(position *cmath.Transform, updateDB bool) error

func (*Object) Stop

func (o *Object) Stop() error

func (*Object) Update

func (o *Object) Update(recursive bool) error

func (*Object) UpdateAutoTextureMap

func (o *Object) UpdateAutoTextureMap(
	option *entry.RenderAutoAttributeOption, value *entry.AttributeValue,
) *websocket.PreparedMessage

func (*Object) UpdateChildrenPosition

func (o *Object) UpdateChildrenPosition(recursive bool) error

func (*Object) UpdateSpawnMessage

func (o *Object) UpdateSpawnMessage() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL