Skip to content
On this page

Module: game/layers

Interfaces

Type Aliases

GenericLayer

Ƭ GenericLayer: Replace<Layer<LayerOptions>, { minWidth: ProcessedComputable<number> ; minimizable: ProcessedComputable<boolean> ; name: ProcessedComputable<string> }>

A type that matches any valid Layer object.

Defined in

profectus/src/game/layers.tsx:169


Layer

Ƭ Layer<T>: Replace<T & BaseLayer, { classes: GetComputableType<T["classes"]> ; color: GetComputableType<T["color"]> ; display: GetComputableType<T["display"]> ; forceHideGoBack: GetComputableType<T["forceHideGoBack"]> ; minWidth: GetComputableTypeWithDefault<T["minWidth"], 600> ; minimizable: GetComputableTypeWithDefault<T["minimizable"], true> ; name: GetComputableTypeWithDefault<T["name"], string> ; style: GetComputableType<T["style"]> }>

An unit of game content. Displayed to the user as a tab or modal.

Type parameters

NameType
Textends LayerOptions

Defined in

profectus/src/game/layers.tsx:154

Variables

BoundsInjectionKey

Const BoundsInjectionKey: InjectionKey<Ref<DOMRect | undefined>>

An injection key that a ContextComponent will use to provide a ref to a bounding rect of the Context.

Defined in

profectus/src/game/layers.tsx:52


NodesInjectionKey

Const NodesInjectionKey: InjectionKey<Ref<Record<string, FeatureNode | undefined>>>

An injection key that a ContextComponent will use to provide a ref to a map of all currently registered FeatureNodes.

Defined in

profectus/src/game/layers.tsx:47


RegisterNodeInjectionKey

Const RegisterNodeInjectionKey: InjectionKey<(id: string, element: HTMLElement) => void>

An injection key that a ContextComponent will use to provide a function that registers a FeatureNode with the given id and HTML element.

Defined in

profectus/src/game/layers.tsx:37


UnregisterNodeInjectionKey

Const UnregisterNodeInjectionKey: InjectionKey<(id: string) => void>

An injection key that a ContextComponent will use to provide a function that unregisters a FeatureNode with the given id.

Defined in

profectus/src/game/layers.tsx:42


addingLayers

Const addingLayers: string[] = []

When creating layers, this array stores the layers currently being created, as a stack.

Defined in

profectus/src/game/layers.tsx:185


layers

Const layers: Record<string, Readonly<GenericLayer> | undefined>

A reference to all the current layers. It is shallow reactive so it will update when layers are added or removed, but not interfere with the existing refs within each layer.

Defined in

profectus/src/game/layers.tsx:68


persistentRefs

Const persistentRefs: Record<string, Set<Persistent>> = {}

When creating layers, this object a map of layer ID to a set of any created persistent refs in order to check they're all included in the final layer object.

Defined in

profectus/src/game/layers.tsx:181

Functions

addLayer

addLayer(layer, player): void

Enables a layer object, so it will be updated every tick. Note that accessing a layer/its properties does NOT require it to be enabled. For dynamic layers you can call this function and removeLayer as necessary. Just make sure getInitialLayers will provide an accurate list of layers based on the player data object. For static layers just make getInitialLayers return all the layers.

Parameters

NameTypeDescription
layerGenericLayerThe layer to add.
playerObjectThe player data object, which will have a data object for this layer.
player.layers?Record<string, Record<string, unknown>>-

Returns

void


createLayer

createLayer<T>(id, optionsFunc): Layer<T>

Lazily creates a layer with the given options.

Type parameters

NameType
Textends LayerOptions

Parameters

NameTypeDescription
idstringThe ID this layer will have. See id.
optionsFuncOptionsFunc<T, BaseLayer, BaseLayer>Layer options.

Returns

Layer<T>


getLayer

getLayer<T>(layerID): T

Convenience method for getting a layer by its ID with correct typing.

Type parameters

NameType
Textends GenericLayer

Parameters

NameTypeDescription
layerIDstringThe ID of the layer to get.

Returns

T


reloadLayer

reloadLayer(layer): void

Convenience method for removing and immediately re-adding a layer. This is useful for layers with dynamic content, to ensure persistent refs are correctly configured.

Parameters

NameTypeDescription
layerGenericLayerLayer to remove and then re-add

Returns

void


removeLayer

removeLayer(layer): void

Disables a layer, so it will no longer be updated every tick. Note that accessing a layer/its properties does NOT require it to be enabled.

Parameters

NameTypeDescription
layerGenericLayerThe layer to remove.

Returns

void


setupLayerModal

setupLayerModal(layer): Object

Utility function for creating a modal that display's a display. Returns the modal itself, which can be rendered anywhere you need, as well as a function to open the modal.

Parameters

NameTypeDescription
layerGenericLayerThe layer to display in the modal.

Returns

Object

NameType
modalJSXFunction
openModalVoidFunction