Documentation
¶
Index ¶
- Variables
- func GetKusamaPluginID() uuid.UUID
- func GetSystemPluginID() uuid.UUID
- func InitializeIDs(systemPluginID, kusamaPluginID uuid.UUID) error
- func InitializeNode(node Node)
- type APIRegister
- type Asset2d
- type Asset3d
- type Assets2d
- type Assets2dFilterPredicateFn
- type Assets3d
- type Assets3dFilterPredicateFn
- type AttributeChangeType
- type AttributeType
- type AttributeTypes
- type AttributeTypesFilterPredicateFn
- type Attributes
- type Calendar
- type DropCacher
- type Enabler
- type IDer
- type Initializer
- type LoadSaver
- type Loader
- type Node
- type NodeAttributes
- type Plugin
- type Plugins
- type PluginsFilterPredicateFn
- type ReservedAttribute
- type RunStopper
- type Runner
- type Saver
- type Space
- type SpaceAttributes
- type SpaceCacher
- type SpaceFilterPredicateFn
- type SpaceType
- type SpaceTypes
- type SpaceTypesFilterPredicateFn
- type SpaceUserAttributes
- type SpacesFilterPredicateFn
- type Stopper
- type User
- type UserAttributes
- type UserType
- type UserTypes
- type UserTypesFilterPredicateFn
- type UserUserAttributes
- type World
- type WorldSettings
- type Worlds
- type WorldsFilterPredicateFn
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ReservedAttributes = struct { Node struct { GuestUserType ReservedAttribute NormalUserType ReservedAttribute PortalSpaceType ReservedAttribute WorldTemplate ReservedAttribute JWTKey ReservedAttribute } World struct { Meta ReservedAttribute Settings ReservedAttribute TeleportDestination ReservedAttribute } Space struct { Name ReservedAttribute Description ReservedAttribute NewsFeedItems ReservedAttribute Events ReservedAttribute } Kusama struct { User struct { Wallet ReservedAttribute } Challenges ReservedAttribute } User struct { HighFive ReservedAttribute } }{ Node: struct { GuestUserType ReservedAttribute NormalUserType ReservedAttribute PortalSpaceType ReservedAttribute WorldTemplate ReservedAttribute JWTKey ReservedAttribute }{ GuestUserType: ReservedAttribute{ Name: "node_settings", Key: "guest_user_type", }, NormalUserType: ReservedAttribute{ Name: "node_settings", Key: "normal_user_type", }, PortalSpaceType: ReservedAttribute{ Name: "node_settings", Key: "docking_hub_space_type", }, WorldTemplate: ReservedAttribute{ Name: "world_template", }, JWTKey: ReservedAttribute{ Name: "jwt_key", Key: "secret", }, }, World: struct { Meta ReservedAttribute Settings ReservedAttribute TeleportDestination ReservedAttribute }{ Meta: ReservedAttribute{ Name: "world_meta", }, Settings: ReservedAttribute{ Name: "world_settings", }, TeleportDestination: ReservedAttribute{ Name: "teleport", Key: "DestinationWorldID", }, }, Space: struct { Name ReservedAttribute Description ReservedAttribute NewsFeedItems ReservedAttribute Events ReservedAttribute }{ Name: ReservedAttribute{ Name: "name", Key: "name", }, Description: ReservedAttribute{ Name: "description", }, NewsFeedItems: ReservedAttribute{ Name: "news_feed", Key: "items", }, Events: ReservedAttribute{ Name: "events", Key: "", }, }, Kusama: struct { User struct { Wallet ReservedAttribute } Challenges ReservedAttribute }{ User: struct { Wallet ReservedAttribute }{ Wallet: ReservedAttribute{ Name: "wallet", Key: "wallet", }, }, Challenges: ReservedAttribute{ Name: "challenge_store", Key: "challenges", }, }, User: struct { HighFive ReservedAttribute }{ HighFive: ReservedAttribute{ Name: "high_five", Key: "counter", }, }, } )
Functions ¶
func GetKusamaPluginID ¶
func GetSystemPluginID ¶
func InitializeIDs ¶
func InitializeNode ¶
func InitializeNode(node Node)
Types ¶
type APIRegister ¶
type Asset2d ¶
type Asset2d interface {
IDer
Initializer
GetMeta() *entry.Asset2dMeta
SetMeta(meta *entry.Asset2dMeta, updateDB bool) error
GetOptions() *entry.Asset2dOptions
SetOptions(modifyFn modify.Fn[entry.Asset2dOptions], updateDB bool) (*entry.Asset2dOptions, error)
GetEntry() *entry.Asset2d
LoadFromEntry(entry *entry.Asset2d) error
}
type Asset3d ¶
type Asset3d interface {
IDer
Initializer
GetMeta() *entry.Asset3dMeta
SetMeta(meta *entry.Asset3dMeta, updateDB bool) error
GetOptions() *entry.Asset3dOptions
SetOptions(modifyFn modify.Fn[entry.Asset3dOptions], updateDB bool) (*entry.Asset3dOptions, error)
GetEntry() *entry.Asset3d
LoadFromEntry(entry *entry.Asset3d) error
}
type Assets2d ¶
type Assets2d interface {
Initializer
LoadSaver
APIRegister
CreateAsset2d(asset2dID uuid.UUID) (Asset2d, error)
GetAsset2d(asset2dID uuid.UUID) (Asset2d, bool)
GetAssets2d() map[uuid.UUID]Asset2d
FilterAssets2d(predicateFn Assets2dFilterPredicateFn) map[uuid.UUID]Asset2d
AddAsset2d(asset2d Asset2d, updateDB bool) error
AddAssets2d(assets2d []Asset2d, updateDB bool) error
RemoveAsset2d(asset2d Asset2d, updateDB bool) error
RemoveAssets2d(assets2d []Asset2d, updateDB bool) error
}
type Assets3d ¶
type Assets3d interface {
Initializer
LoadSaver
APIRegister
CreateAsset3d(asset3dID uuid.UUID) (Asset3d, error)
GetAsset3d(asset3dID uuid.UUID) (Asset3d, bool)
GetAssets3d() map[uuid.UUID]Asset3d
FilterAssets3d(predicateFn Assets3dFilterPredicateFn) map[uuid.UUID]Asset3d
AddAsset3d(asset3d Asset3d, updateDB bool) error
AddAssets3d(assets3d []Asset3d, updateDB bool) error
RemoveAsset3d(asset3d Asset3d, updateDB bool) error
RemoveAssets3d(assets3d []Asset3d, updateDB bool) error
RemoveAsset3dByID(asset3dID uuid.UUID, updateDB bool) error
RemoveAssets3dByIDs(assets3dIDs []uuid.UUID, updateDB bool) error
}
type AttributeChangeType ¶
type AttributeChangeType string
const ( InvalidAttributeChangeType AttributeChangeType = "" ChangedAttributeChangeType AttributeChangeType = "attribute_changed" RemovedAttributeChangeType AttributeChangeType = "attribute_removed" )
type AttributeType ¶
type AttributeType interface {
Initializer
GetID() entry.AttributeTypeID
GetName() string
GetPluginID() uuid.UUID
GetOptions() *entry.AttributeOptions
SetOptions(modifyFn modify.Fn[entry.AttributeOptions], updateDB bool) (*entry.AttributeOptions, error)
GetDescription() *string
SetDescription(description *string, updateDB bool) error
GetEntry() *entry.AttributeType
LoadFromEntry(entry *entry.AttributeType) error
}
type AttributeTypes ¶
type AttributeTypes interface {
Initializer
LoadSaver
APIRegister
CreateAttributeType(attributeTypeID entry.AttributeTypeID) (AttributeType, error)
GetAttributeType(attributeTypeID entry.AttributeTypeID) (AttributeType, bool)
GetAttributeTypes() map[entry.AttributeTypeID]AttributeType
FilterAttributeTypes(predicateFn AttributeTypesFilterPredicateFn) map[entry.AttributeTypeID]AttributeType
AddAttributeType(attributeType AttributeType, updateDB bool) error
AddAttributeTypes(attributeTypes []AttributeType, updateDB bool) error
RemoveAttributeType(attributeType AttributeType, updateDB bool) error
RemoveAttributeTypes(attributeTypes []AttributeType, updateDB bool) error
}
type AttributeTypesFilterPredicateFn ¶
type AttributeTypesFilterPredicateFn func(attributeTypeID entry.AttributeTypeID, attributeType AttributeType) bool
type Attributes ¶
type Attributes[ID comparable] interface { GetPayload(attributeID ID) (*entry.AttributePayload, bool) GetValue(attributeID ID) (*entry.AttributeValue, bool) GetOptions(attributeID ID) (*entry.AttributeOptions, bool) GetEffectiveOptions(attributeID ID) (*entry.AttributeOptions, bool) Upsert(attributeID ID, modifyFn modify.Fn[entry.AttributePayload], updateDB bool) (*entry.AttributePayload, error) UpdateValue(attributeID ID, modifyFn modify.Fn[entry.AttributeValue], updateDB bool) (*entry.AttributeValue, error) UpdateOptions(attributeID ID, modifyFn modify.Fn[entry.AttributeOptions], updateDB bool) ( *entry.AttributeOptions, error, ) Remove(attributeID ID, updateDB bool) (bool, error) }
type Calendar ¶
type Calendar interface {
Initializer
RunStopper
OnAttributeUpsert(attributeID entry.AttributeID, value any)
OnAttributeRemove(attributeID entry.AttributeID)
}
type DropCacher ¶
type DropCacher interface {
DropCache()
}
type Initializer ¶
type Node ¶
type Node interface {
Space
LoadSaver
APIRegister
SpaceCacher
ToSpace() Space
GetWorlds() Worlds
GetAssets2d() Assets2d
GetAssets3d() Assets3d
GetSpaceTypes() SpaceTypes
GetUserTypes() UserTypes
GetAttributeTypes() AttributeTypes
GetPlugins() Plugins
GetNodeAttributes() NodeAttributes
GetUserAttributes() UserAttributes
GetUserUserAttributes() UserUserAttributes
GetSpaceUserAttributes() SpaceUserAttributes
AddAPIRegister(register APIRegister)
WriteInfluxPoint(point *influxWrite.Point) error
}
type NodeAttributes ¶
type NodeAttributes interface {
Attributes[entry.AttributeID]
Len() int
}
type Plugin ¶
type Plugin interface {
IDer
Initializer
GetMeta() *entry.PluginMeta
SetMeta(meta *entry.PluginMeta, updateDB bool) error
GetOptions() *entry.PluginOptions
SetOptions(modifyFn modify.Fn[entry.PluginOptions], updateDB bool) (*entry.PluginOptions, error)
GetEntry() *entry.Plugin
LoadFromEntry(entry *entry.Plugin) error
}
type Plugins ¶
type Plugins interface {
Initializer
LoadSaver
APIRegister
CreatePlugin(pluginID uuid.UUID) (Plugin, error)
GetPlugin(pluginID uuid.UUID) (Plugin, bool)
GetPlugins() map[uuid.UUID]Plugin
FilterPlugins(predicateFn PluginsFilterPredicateFn) map[uuid.UUID]Plugin
AddPlugin(plugin Plugin, updateDB bool) error
AddPlugins(plugins []Plugin, updateDB bool) error
RemovePlugin(plugin Plugin, updateDB bool) error
RemovePlugins(plugins []Plugin, updateDB bool) error
}
type ReservedAttribute ¶
type RunStopper ¶
type Space ¶
type Space interface {
IDer
Enabler
Initializer
RunStopper
DropCacher
GetWorld() World
GetName() string
SetName(name string, updateDB bool) error
GetParent() Space
SetParent(parent Space, updateDB bool) error
GetOwnerID() uuid.UUID
SetOwnerID(ownerID uuid.UUID, updateDB bool) error
GetPosition() *cmath.SpacePosition
GetActualPosition() *cmath.SpacePosition
SetPosition(position *cmath.SpacePosition, updateDB bool) error
SetActualPosition(pos cmath.SpacePosition, theta float64) error
GetOptions() *entry.SpaceOptions
GetEffectiveOptions() *entry.SpaceOptions
SetOptions(modifyFn modify.Fn[entry.SpaceOptions], updateDB bool) (*entry.SpaceOptions, error)
GetAsset2D() Asset2d
SetAsset2D(asset2d Asset2d, updateDB bool) error
GetAsset3D() Asset3d
SetAsset3D(asset3d Asset3d, updateDB bool) error
GetSpaceType() SpaceType
SetSpaceType(spaceType SpaceType, updateDB bool) error
GetSpaceAttributes() SpaceAttributes
GetEntry() *entry.Space
LoadFromEntry(entry *entry.Space, recursive bool) error
Update(recursive bool) error
UpdateChildrenPosition(recursive bool) error
CreateSpace(spaceID uuid.UUID) (Space, error)
GetSpace(spaceID uuid.UUID, recursive bool) (Space, bool)
GetSpaces(recursive bool) map[uuid.UUID]Space
FilterSpaces(predicateFn SpacesFilterPredicateFn, recursive bool) map[uuid.UUID]Space
AddSpace(space Space, updateDB bool) error
AddSpaces(spaces []Space, updateDB bool) error
RemoveSpace(space Space, recursive, updateDB bool) (bool, error)
RemoveSpaces(spaces []Space, recursive, updateDB bool) (bool, error)
GetUser(userID uuid.UUID, recursive bool) (User, bool)
GetUsers(recursive bool) map[uuid.UUID]User
AddUser(user User, updateDB bool) error
RemoveUser(user User, updateDB bool) error
Send(msg *websocket.PreparedMessage, recursive bool) error
SendSpawnMessage(sendFn func(msg *websocket.PreparedMessage) error, recursive bool)
SendAttributes(sendFn func(*websocket.PreparedMessage), recursive bool)
SendAllAutoAttributes(sendFn func(msg *websocket.PreparedMessage) error, recursive bool)
LockUnityObject(user User, state uint32) bool
}
type SpaceAttributes ¶
type SpaceAttributes interface {
Attributes[entry.AttributeID]
Len() int
}
type SpaceCacher ¶
type SpaceType ¶
type SpaceType interface {
IDer
Initializer
GetName() string
SetName(name string, updateDB bool) error
GetCategoryName() string
SetCategoryName(categoryName string, updateDB bool) error
GetDescription() *string
SetDescription(description *string, updateDB bool) error
GetOptions() *entry.SpaceOptions
SetOptions(modifyFn modify.Fn[entry.SpaceOptions], updateDB bool) (*entry.SpaceOptions, error)
GetAsset2d() Asset2d
SetAsset2d(asset2d Asset2d, updateDB bool) error
GetAsset3d() Asset3d
SetAsset3d(asset3d Asset3d, updateDB bool) error
GetEntry() *entry.SpaceType
LoadFromEntry(entry *entry.SpaceType) error
}
type SpaceTypes ¶
type SpaceTypes interface {
Initializer
LoadSaver
APIRegister
CreateSpaceType(spaceTypeID uuid.UUID) (SpaceType, error)
GetSpaceType(spaceTypeID uuid.UUID) (SpaceType, bool)
GetSpaceTypes() map[uuid.UUID]SpaceType
FilterSpaceTypes(predicateFn SpaceTypesFilterPredicateFn) map[uuid.UUID]SpaceType
AddSpaceType(spaceType SpaceType, updateDB bool) error
AddSpaceTypes(spaceTypes []SpaceType, updateDB bool) error
RemoveSpaceType(spaceType SpaceType, updateDB bool) error
RemoveSpaceTypes(spaceTypes []SpaceType, updateDB bool) error
}
type SpaceUserAttributes ¶
type SpaceUserAttributes interface {
Attributes[entry.SpaceUserAttributeID]
}
SpaceUserAttributes ignores "updateDB" flag
type SpacesFilterPredicateFn ¶
type User ¶
type User interface {
IDer
Initializer
RunStopper
GetWorld() World
SetWorld(world World)
GetSpace() Space
SetSpace(space Space)
GetUserType() UserType
SetUserType(userType UserType, updateDB bool) error
GetProfile() *entry.UserProfile
GetPosition() cmath.Vec3
GetRotation() cmath.Vec3
SetPosition(position cmath.Vec3)
GetPosBuffer() []byte
Update() error
GetSessionID() uuid.UUID
SetConnection(sessionID uuid.UUID, socketConnection *websocket.Conn) error
Send(message *websocket.PreparedMessage) error
SendDirectly(message *websocket.PreparedMessage) error
ReleaseSendBuffer()
AddInfluxTags(prefix string, point *influxWrite.Point) *influxWrite.Point
}
type UserAttributes ¶
type UserAttributes interface {
Attributes[entry.UserAttributeID]
}
UserAttributes ignores "updateDB" flag
type UserType ¶
type UserType interface {
IDer
Initializer
GetName() string
SetName(name string, updateDB bool) error
GetDescription() *string
SetDescription(description *string, updateDB bool) error
GetOptions() *entry.UserOptions
SetOptions(modifyFn modify.Fn[entry.UserOptions], updateDB bool) (*entry.UserOptions, error)
GetEntry() *entry.UserType
LoadFromEntry(entry *entry.UserType) error
}
type UserTypes ¶
type UserTypes interface {
Initializer
LoadSaver
APIRegister
CreateUserType(userTypeID uuid.UUID) (UserType, error)
GetUserType(userTypeID uuid.UUID) (UserType, bool)
GetUserTypes() map[uuid.UUID]UserType
FilterUserTypes(predicateFn UserTypesFilterPredicateFn) map[uuid.UUID]UserType
AddUserType(spaceType UserType, updateDB bool) error
AddUserTypes(spaceTypes []UserType, updateDB bool) error
RemoveUserType(spaceType UserType, updateDB bool) error
RemoveUserTypes(spaceTypes []UserType, updateDB bool) error
}
type UserUserAttributes ¶
type UserUserAttributes interface {
Attributes[entry.UserUserAttributeID]
}
UserUserAttributes ignores "updateDB" flag
type World ¶
type World interface {
Space
LoadSaver
SpaceCacher
ToSpace() Space
GetSettings() *WorldSettings
GetCalendar() Calendar
WriteInfluxPoint(point *influxWrite.Point) error
TempSetSkybox(msg *websocket.PreparedMessage)
TempGetSkybox() *websocket.PreparedMessage
}
type WorldSettings ¶
type WorldSettings struct {
Kind string `db:"kind" json:"kind"`
Spaces map[string]uuid.UUID `db:"spaces" json:"spaces"`
Attributes map[string]uuid.UUID `db:"spaces" json:"attributes"`
SpaceTypes map[string]uuid.UUID `db:"space_types" json:"space_types"`
Effects map[string]uuid.UUID `db:"effects" json:"effects"`
}
type Worlds ¶
type Worlds interface {
Initializer
RunStopper
LoadSaver
APIRegister
CreateWorld(worldID uuid.UUID) (World, error)
GetWorld(worldID uuid.UUID) (World, bool)
GetWorlds() map[uuid.UUID]World
FilterWorlds(predicateFn WorldsFilterPredicateFn) map[uuid.UUID]World
AddWorld(world World, updateDB bool) error
AddWorlds(worlds []World, updateDB bool) error
RemoveWorld(world World, updateDB bool) error
RemoveWorlds(worlds []World, updateDB bool) error
}
Directories
¶
| Path | Synopsis |
|---|---|
|
Text chat functionality backed by getstream.io chat service.
|
Text chat functionality backed by getstream.io chat service. |
Click to show internal directories.
Click to hide internal directories.