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) SendTextures(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 }
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.