import{_ase,casa,oast,Nasr}from"./chunks/framework.0799945b.js";constf=JSON.parse('{"title":"Layers","description":"","frontmatter":{},"headers":[],"relativePath":"guide/important-concepts/layers.md","lastUpdated":1681388423000}'),o={name:"guide/important-concepts/layers.md"},s=r('<h1 id="layers" tabindex="-1">Layers <a class="header-anchor" href="#layers" aria-label="Permalink to "Layers""></a></h1><p>Profectus content is organized into units called "Layers". When displaying content to the user, the screen will be divided into several tabs that each display the content of a layer. These layers are stored in <code>/src/data/layers</code>.</p><p>Each layer is ultimately a collection of different features, and a display function. While there are a couple reserved properties for layers, most of its structure is fully up to the creator.</p><p>Layers can be dynamically added or removed at any time, which also allows for effectively disabling or enabling content based on arbitrary conditions. Just make sure <a href="./../creating-your-project/project-entry#getinitiallayers">getInitialLayers</a> can process the player save data object and determine which layers should be currently active.</p><h2 id="lazy-proxies" tabindex="-1">Lazy Proxies <a class="header-anchor" href="#lazy-proxies" aria-label="Permalink to "Lazy Proxies""></a></h2><p>Layers (and features) are not actually created immediately. Instead, their options are gotten through a function which is then run the first time something <em>inside</em> the layer is accessed. This is a concept called lazy evaluation, which is also used for things like <code>computed</code>, and allows for features to reference each other without worrying about cyclical dependencies.</p>',6),i=[s];functionn(c,l,d,h,y,p){returnt(),a("div",null,i)}const_=e(o,[["render",n]]);export{fas__pageData,_asdefault};