1 line
20 KiB
JavaScript
1 line
20 KiB
JavaScript
import{_ as e,c as t,o as a,a as r}from"./app.ab34650d.js";const g=JSON.parse('{"title":"Module: game/layers","description":"","frontmatter":{"editLink":false},"headers":[{"level":2,"title":"Interfaces","slug":"interfaces"},{"level":2,"title":"Type Aliases","slug":"type-aliases"},{"level":3,"title":"GenericLayer","slug":"genericlayer"},{"level":3,"title":"Layer","slug":"layer"},{"level":2,"title":"Variables","slug":"variables"},{"level":3,"title":"BoundsInjectionKey","slug":"boundsinjectionkey"},{"level":3,"title":"NodesInjectionKey","slug":"nodesinjectionkey"},{"level":3,"title":"RegisterNodeInjectionKey","slug":"registernodeinjectionkey"},{"level":3,"title":"UnregisterNodeInjectionKey","slug":"unregisternodeinjectionkey"},{"level":3,"title":"addingLayers","slug":"addinglayers"},{"level":3,"title":"layers","slug":"layers"},{"level":3,"title":"persistentRefs","slug":"persistentrefs"},{"level":2,"title":"Functions","slug":"functions"},{"level":3,"title":"addLayer","slug":"addlayer"},{"level":3,"title":"createLayer","slug":"createlayer"},{"level":3,"title":"getLayer","slug":"getlayer"},{"level":3,"title":"reloadLayer","slug":"reloadlayer"},{"level":3,"title":"removeLayer","slug":"removelayer"},{"level":3,"title":"setupLayerModal","slug":"setuplayermodal"}],"relativePath":"api/modules/game/layers.md","lastUpdated":null}'),d={name:"api/modules/game/layers.md"},o=r('<h1 id="module-game-layers" tabindex="-1">Module: game/layers <a class="header-anchor" href="#module-game-layers" aria-hidden="true">#</a></h1><h2 id="interfaces" tabindex="-1">Interfaces <a class="header-anchor" href="#interfaces" aria-hidden="true">#</a></h2><ul><li><a href="../../interfaces/game/layers.BaseLayer">BaseLayer</a></li><li><a href="../../interfaces/game/layers.FeatureNode">FeatureNode</a></li><li><a href="../../interfaces/game/layers.LayerEvents">LayerEvents</a></li><li><a href="../../interfaces/game/layers.LayerOptions">LayerOptions</a></li><li><a href="../../interfaces/game/layers.Position">Position</a></li></ul><h2 id="type-aliases" tabindex="-1">Type Aliases <a class="header-anchor" href="#type-aliases" aria-hidden="true">#</a></h2><h3 id="genericlayer" tabindex="-1">GenericLayer <a class="header-anchor" href="#genericlayer" aria-hidden="true">#</a></h3><p>\u01AC <strong>GenericLayer</strong>: <a href="./../features/feature.html#replace"><code>Replace</code></a><<a href="./layers.html#layer"><code>Layer</code></a><<a href="../../interfaces/game/layers.LayerOptions"><code>LayerOptions</code></a>>, { <code>minWidth</code>: <a href="./../util/computed.html#processedcomputable"><code>ProcessedComputable</code></a><<code>number</code>> ; <code>minimizable</code>: <a href="./../util/computed.html#processedcomputable"><code>ProcessedComputable</code></a><<code>boolean</code>> ; <code>name</code>: <a href="./../util/computed.html#processedcomputable"><code>ProcessedComputable</code></a><<code>string</code>> }></p><p>A type that matches any valid <a href="./layers.html#layer">Layer</a> object.</p><h4 id="defined-in" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L178" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:178</a></p><hr><h3 id="layer" tabindex="-1">Layer <a class="header-anchor" href="#layer" aria-hidden="true">#</a></h3><p>\u01AC <strong>Layer</strong><<code>T</code>>: <a href="./../features/feature.html#replace"><code>Replace</code></a><<code>T</code> & <a href="../../interfaces/game/layers.BaseLayer"><code>BaseLayer</code></a>, { <code>classes</code>: <a href="./../util/computed.html#getcomputabletype"><code>GetComputableType</code></a><<code>T</code>[<code>"classes"</code>]> ; <code>color</code>: <a href="./../util/computed.html#getcomputabletype"><code>GetComputableType</code></a><<code>T</code>[<code>"color"</code>]> ; <code>display</code>: <a href="./../util/computed.html#getcomputabletype"><code>GetComputableType</code></a><<code>T</code>[<code>"display"</code>]> ; <code>forceHideGoBack</code>: <a href="./../util/computed.html#getcomputabletype"><code>GetComputableType</code></a><<code>T</code>[<code>"forceHideGoBack"</code>]> ; <code>minWidth</code>: <a href="./../util/computed.html#getcomputabletypewithdefault"><code>GetComputableTypeWithDefault</code></a><<code>T</code>[<code>"minWidth"</code>], <code>600</code>> ; <code>minimizable</code>: <a href="./../util/computed.html#getcomputabletypewithdefault"><code>GetComputableTypeWithDefault</code></a><<code>T</code>[<code>"minimizable"</code>], <code>true</code>> ; <code>name</code>: <a href="./../util/computed.html#getcomputabletypewithdefault"><code>GetComputableTypeWithDefault</code></a><<code>T</code>[<code>"name"</code>], <code>string</code>> ; <code>style</code>: <a href="./../util/computed.html#getcomputabletype"><code>GetComputableType</code></a><<code>T</code>[<code>"style"</code>]> }></p><p>An unit of game content. Displayed to the user as a tab or modal.</p><h4 id="type-parameters" tabindex="-1">Type parameters <a class="header-anchor" href="#type-parameters" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>T</code></td><td style="text-align:left;">extends <a href="../../interfaces/game/layers.LayerOptions"><code>LayerOptions</code></a></td></tr></tbody></table><h4 id="defined-in-1" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-1" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L163" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:163</a></p><h2 id="variables" tabindex="-1">Variables <a class="header-anchor" href="#variables" aria-hidden="true">#</a></h2><h3 id="boundsinjectionkey" tabindex="-1">BoundsInjectionKey <a class="header-anchor" href="#boundsinjectionkey" aria-hidden="true">#</a></h3><p>\u2022 <code>Const</code> <strong>BoundsInjectionKey</strong>: <code>InjectionKey</code><<code>Ref</code><<code>DOMRect</code> | <code>undefined</code>>></p><p>An injection key that a ContextComponent will use to provide a ref to a bounding rect of the Context.</p><h4 id="defined-in-2" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-2" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L52" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:52</a></p><hr><h3 id="nodesinjectionkey" tabindex="-1">NodesInjectionKey <a class="header-anchor" href="#nodesinjectionkey" aria-hidden="true">#</a></h3><p>\u2022 <code>Const</code> <strong>NodesInjectionKey</strong>: <code>InjectionKey</code><<code>Ref</code><<code>Record</code><<code>string</code>, <a href="../../interfaces/game/layers.FeatureNode"><code>FeatureNode</code></a> | <code>undefined</code>>>></p><p>An injection key that a ContextComponent will use to provide a ref to a map of all currently registered <a href="../../interfaces/game/layers.FeatureNode">FeatureNode</a>s.</p><h4 id="defined-in-3" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-3" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L47" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:47</a></p><hr><h3 id="registernodeinjectionkey" tabindex="-1">RegisterNodeInjectionKey <a class="header-anchor" href="#registernodeinjectionkey" aria-hidden="true">#</a></h3><p>\u2022 <code>Const</code> <strong>RegisterNodeInjectionKey</strong>: <code>InjectionKey</code><(<code>id</code>: <code>string</code>, <code>element</code>: <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement" target="_blank" rel="noopener noreferrer"><code>HTMLElement</code></a>) => <code>void</code>></p><p>An injection key that a ContextComponent will use to provide a function that registers a <a href="../../interfaces/game/layers.FeatureNode">FeatureNode</a> with the given id and HTML element.</p><h4 id="defined-in-4" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-4" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L37" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:37</a></p><hr><h3 id="unregisternodeinjectionkey" tabindex="-1">UnregisterNodeInjectionKey <a class="header-anchor" href="#unregisternodeinjectionkey" aria-hidden="true">#</a></h3><p>\u2022 <code>Const</code> <strong>UnregisterNodeInjectionKey</strong>: <code>InjectionKey</code><(<code>id</code>: <code>string</code>) => <code>void</code>></p><p>An injection key that a ContextComponent will use to provide a function that unregisters a <a href="../../interfaces/game/layers.FeatureNode">FeatureNode</a> with the given id.</p><h4 id="defined-in-5" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-5" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L42" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:42</a></p><hr><h3 id="addinglayers" tabindex="-1">addingLayers <a class="header-anchor" href="#addinglayers" aria-hidden="true">#</a></h3><p>\u2022 <code>Const</code> <strong>addingLayers</strong>: <code>string</code>[] = <code>[]</code></p><p>When creating layers, this array stores the layers currently being created, as a stack.</p><h4 id="defined-in-6" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-6" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L194" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:194</a></p><hr><h3 id="layers" tabindex="-1">layers <a class="header-anchor" href="#layers" aria-hidden="true">#</a></h3><p>\u2022 <code>Const</code> <strong>layers</strong>: <code>Record</code><<code>string</code>, <code>Readonly</code><<a href="./layers.html#genericlayer"><code>GenericLayer</code></a>> | <code>undefined</code>></p><p>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.</p><h4 id="defined-in-7" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-7" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L77" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:77</a></p><hr><h3 id="persistentrefs" tabindex="-1">persistentRefs <a class="header-anchor" href="#persistentrefs" aria-hidden="true">#</a></h3><p>\u2022 <code>Const</code> <strong>persistentRefs</strong>: <code>Record</code><<code>string</code>, <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set" target="_blank" rel="noopener noreferrer"><code>Set</code></a><<a href="./persistence.html#persistent"><code>Persistent</code></a>>> = <code>{}</code></p><p>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.</p><h4 id="defined-in-8" tabindex="-1">Defined in <a class="header-anchor" href="#defined-in-8" aria-hidden="true">#</a></h4><p><a href="https://github.com/profectus-engine/Profectus/blob/013092f/src/game/layers.tsx#L190" target="_blank" rel="noopener noreferrer">profectus/src/game/layers.tsx:190</a></p><h2 id="functions" tabindex="-1">Functions <a class="header-anchor" href="#functions" aria-hidden="true">#</a></h2><h3 id="addlayer" tabindex="-1">addLayer <a class="header-anchor" href="#addlayer" aria-hidden="true">#</a></h3><p>\u25B8 <strong>addLayer</strong>(<code>layer</code>, <code>player</code>): <code>void</code></p><p>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 <a href="./layers.html#removelayer">removeLayer</a> as necessary. Just make sure <a href="./../data/projEntry.html#getinitiallayers">getInitialLayers</a> will provide an accurate list of layers based on the player data object. For static layers just make <a href="./../data/projEntry.html#getinitiallayers">getInitialLayers</a> return all the layers.</p><h4 id="parameters" tabindex="-1">Parameters <a class="header-anchor" href="#parameters" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>layer</code></td><td style="text-align:left;"><a href="./layers.html#genericlayer"><code>GenericLayer</code></a></td><td style="text-align:left;">The layer to add.</td></tr><tr><td style="text-align:left;"><code>player</code></td><td style="text-align:left;"><code>Object</code></td><td style="text-align:left;">The player data object, which will have a data object for this layer.</td></tr><tr><td style="text-align:left;"><code>player.layers?</code></td><td style="text-align:left;"><code>Record</code><<code>string</code>, <code>Record</code><<code>string</code>, <code>unknown</code>>></td><td style="text-align:left;">-</td></tr></tbody></table><h4 id="returns" tabindex="-1">Returns <a class="header-anchor" href="#returns" aria-hidden="true">#</a></h4><p><code>void</code></p><hr><h3 id="createlayer" tabindex="-1">createLayer <a class="header-anchor" href="#createlayer" aria-hidden="true">#</a></h3><p>\u25B8 <strong>createLayer</strong><<code>T</code>>(<code>id</code>, <code>optionsFunc</code>): <a href="./layers.html#layer"><code>Layer</code></a><<code>T</code>></p><p>Lazily creates a layer with the given options.</p><h4 id="type-parameters-1" tabindex="-1">Type parameters <a class="header-anchor" href="#type-parameters-1" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>T</code></td><td style="text-align:left;">extends <a href="../../interfaces/game/layers.LayerOptions"><code>LayerOptions</code></a></td></tr></tbody></table><h4 id="parameters-1" tabindex="-1">Parameters <a class="header-anchor" href="#parameters-1" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>id</code></td><td style="text-align:left;"><code>string</code></td><td style="text-align:left;">The ID this layer will have. See <a href="./../../interfaces/game/layers.BaseLayer.html#id">id</a>.</td></tr><tr><td style="text-align:left;"><code>optionsFunc</code></td><td style="text-align:left;"><a href="./../features/feature.html#optionsfunc"><code>OptionsFunc</code></a><<code>T</code>, <a href="../../interfaces/game/layers.BaseLayer"><code>BaseLayer</code></a>, <a href="../../interfaces/game/layers.BaseLayer"><code>BaseLayer</code></a>></td><td style="text-align:left;">Layer options.</td></tr></tbody></table><h4 id="returns-1" tabindex="-1">Returns <a class="header-anchor" href="#returns-1" aria-hidden="true">#</a></h4><p><a href="./layers.html#layer"><code>Layer</code></a><<code>T</code>></p><hr><h3 id="getlayer" tabindex="-1">getLayer <a class="header-anchor" href="#getlayer" aria-hidden="true">#</a></h3><p>\u25B8 <strong>getLayer</strong><<code>T</code>>(<code>layerID</code>): <code>T</code></p><p>Convenience method for getting a layer by its ID with correct typing.</p><h4 id="type-parameters-2" tabindex="-1">Type parameters <a class="header-anchor" href="#type-parameters-2" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>T</code></td><td style="text-align:left;">extends <a href="./layers.html#genericlayer"><code>GenericLayer</code></a></td></tr></tbody></table><h4 id="parameters-2" tabindex="-1">Parameters <a class="header-anchor" href="#parameters-2" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>layerID</code></td><td style="text-align:left;"><code>string</code></td><td style="text-align:left;">The ID of the layer to get.</td></tr></tbody></table><h4 id="returns-2" tabindex="-1">Returns <a class="header-anchor" href="#returns-2" aria-hidden="true">#</a></h4><p><code>T</code></p><hr><h3 id="reloadlayer" tabindex="-1">reloadLayer <a class="header-anchor" href="#reloadlayer" aria-hidden="true">#</a></h3><p>\u25B8 <strong>reloadLayer</strong>(<code>layer</code>): <code>void</code></p><p>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.</p><h4 id="parameters-3" tabindex="-1">Parameters <a class="header-anchor" href="#parameters-3" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>layer</code></td><td style="text-align:left;"><a href="./layers.html#genericlayer"><code>GenericLayer</code></a></td><td style="text-align:left;">Layer to remove and then re-add</td></tr></tbody></table><h4 id="returns-3" tabindex="-1">Returns <a class="header-anchor" href="#returns-3" aria-hidden="true">#</a></h4><p><code>void</code></p><hr><h3 id="removelayer" tabindex="-1">removeLayer <a class="header-anchor" href="#removelayer" aria-hidden="true">#</a></h3><p>\u25B8 <strong>removeLayer</strong>(<code>layer</code>): <code>void</code></p><p>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.</p><h4 id="parameters-4" tabindex="-1">Parameters <a class="header-anchor" href="#parameters-4" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>layer</code></td><td style="text-align:left;"><a href="./layers.html#genericlayer"><code>GenericLayer</code></a></td><td style="text-align:left;">The layer to remove.</td></tr></tbody></table><h4 id="returns-4" tabindex="-1">Returns <a class="header-anchor" href="#returns-4" aria-hidden="true">#</a></h4><p><code>void</code></p><hr><h3 id="setuplayermodal" tabindex="-1">setupLayerModal <a class="header-anchor" href="#setuplayermodal" aria-hidden="true">#</a></h3><p>\u25B8 <strong>setupLayerModal</strong>(<code>layer</code>): <code>Object</code></p><p>Utility function for creating a modal that display's a <a href="./../../interfaces/game/layers.LayerOptions.html#display">display</a>. Returns the modal itself, which can be rendered anywhere you need, as well as a function to open the modal.</p><h4 id="parameters-5" tabindex="-1">Parameters <a class="header-anchor" href="#parameters-5" aria-hidden="true">#</a></h4><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th><th style="text-align:left;">Description</th></tr></thead><tbody><tr><td style="text-align:left;"><code>layer</code></td><td style="text-align:left;"><a href="./layers.html#genericlayer"><code>GenericLayer</code></a></td><td style="text-align:left;">The layer to display in the modal.</td></tr></tbody></table><h4 id="returns-5" tabindex="-1">Returns <a class="header-anchor" href="#returns-5" aria-hidden="true">#</a></h4><p><code>Object</code></p><table><thead><tr><th style="text-align:left;">Name</th><th style="text-align:left;">Type</th></tr></thead><tbody><tr><td style="text-align:left;"><code>modal</code></td><td style="text-align:left;"><a href="./../features/feature.html#jsxfunction"><code>JSXFunction</code></a></td></tr><tr><td style="text-align:left;"><code>openModal</code></td><td style="text-align:left;"><code>VoidFunction</code></td></tr></tbody></table>',112),l=[o];function n(i,s,c,h,y,f){return a(),t("div",null,l)}var u=e(d,[["render",n]]);export{g as __pageData,u as default};
|