diff --git a/1.18.x.html b/1.18.x.html index 8ab57e6..3497585 100644 --- a/1.18.x.html +++ b/1.18.x.html @@ -4,7 +4,7 @@ Overview | Illusive Soulworks - + diff --git a/1.18.x/category/champions.html b/1.18.x/category/champions.html index 7ea6d2e..b99de35 100644 --- a/1.18.x/category/champions.html +++ b/1.18.x/category/champions.html @@ -4,7 +4,7 @@ Champions | Illusive Soulworks - + diff --git a/1.18.x/category/mod-integrations.html b/1.18.x/category/mod-integrations.html index 11139bd..71dd0e3 100644 --- a/1.18.x/category/mod-integrations.html +++ b/1.18.x/category/mod-integrations.html @@ -4,7 +4,7 @@ Mod Integrations | Illusive Soulworks - + diff --git a/1.18.x/champions/commands.html b/1.18.x/champions/commands.html index 3fd3f78..f0e4b6f 100644 --- a/1.18.x/champions/commands.html +++ b/1.18.x/champions/commands.html @@ -4,7 +4,7 @@ Commands | Illusive Soulworks - + diff --git a/1.18.x/champions/integration/gamestages.html b/1.18.x/champions/integration/gamestages.html index 2ca83ab..d44245b 100644 --- a/1.18.x/champions/integration/gamestages.html +++ b/1.18.x/champions/integration/gamestages.html @@ -4,7 +4,7 @@ Game Stages | Illusive Soulworks - + diff --git a/1.18.x/champions/integration/scalinghealth.html b/1.18.x/champions/integration/scalinghealth.html index 1ca8770..87fdfcf 100644 --- a/1.18.x/champions/integration/scalinghealth.html +++ b/1.18.x/champions/integration/scalinghealth.html @@ -4,7 +4,7 @@ Scaling Health | Illusive Soulworks - + diff --git a/1.18.x/champions/loottable.html b/1.18.x/champions/loottable.html index 83ab6e0..199a334 100644 --- a/1.18.x/champions/loottable.html +++ b/1.18.x/champions/loottable.html @@ -4,7 +4,7 @@ Loot | Illusive Soulworks - + diff --git a/1.18.x/champions/nbt.html b/1.18.x/champions/nbt.html index f606477..96a993e 100644 --- a/1.18.x/champions/nbt.html +++ b/1.18.x/champions/nbt.html @@ -4,7 +4,7 @@ NBT Tags | Illusive Soulworks - + diff --git a/404.html b/404.html index 7be3237..3fd0e5b 100644 --- a/404.html +++ b/404.html @@ -4,7 +4,7 @@ Illusive Soulworks - + diff --git a/assets/js/f0f42f24.303e72e8.js b/assets/js/f0f42f24.303e72e8.js deleted file mode 100644 index c0a6e13..0000000 --- a/assets/js/f0f42f24.303e72e8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkillusivesoulworks_docs=self.webpackChunkillusivesoulworks_docs||[]).push([[602],{8155:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var t=n(5893),i=n(1151);const o={sidebar_position:1},r="Slot Types",l={id:"curios/slots/slot-register",title:"Slot Types",description:"A tutorial on how to register and modify slot types that are recognized by Curios.",source:"@site/docs/curios/slots/slot-register.md",sourceDirName:"curios/slots",slug:"/curios/slots/slot-register",permalink:"/curios/slots/slot-register",draft:!1,unlisted:!1,editUrl:"https://github.com/illusivesoulworks/docs/edit/main/docs/curios/slots/slot-register.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Slots",permalink:"/category/slots"},next:{title:"Entity Slot Types",permalink:"/curios/slots/entity-register"}},d={},a=[{value:"Overview",id:"overview",level:2},{value:"Directory",id:"directory",level:2},{value:"Syntax",id:"syntax",level:2},{value:"replace (boolean)",id:"replace-boolean",level:3},{value:"size (integer)",id:"size-integer",level:3},{value:"operation ("SET"|"ADD"|"REMOVE")",id:"operation-setaddremove",level:3},{value:"order (integer)",id:"order-integer",level:3},{value:"icon (string)",id:"icon-string",level:3},{value:"add_cosmetic (boolean)",id:"add_cosmetic-boolean",level:3},{value:"use_native_gui (boolean)",id:"use_native_gui-boolean",level:3},{value:"render_toggle (boolean)",id:"render_toggle-boolean",level:3},{value:"drop_rule ("DEFAULT"|"ALWAYS_DROP"|"ALWAYS_KEEP"|"DESTROY")",id:"drop_rule-defaultalways_dropalways_keepdestroy",level:3},{value:"validators (string[])",id:"validators-string",level:3},{value:"Example",id:"example",level:2},{value:"Modifying a Slot Type",id:"modifying-a-slot-type",level:2},{value:"Example",id:"example-1",level:3}];function c(e){const s={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"slot-types",children:"Slot Types"}),"\n",(0,t.jsx)(s.p,{children:"A tutorial on how to register and modify slot types that are recognized by Curios."}),"\n",(0,t.jsx)(s.h2,{id:"overview",children:"Overview"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The recommended way to register a slot type is through a datapack. If a user or developer is unfamiliar with datapacks,\nit is recommended to read through the ",(0,t.jsx)(s.a,{href:"https://minecraft.fandom.com/wiki/Data_pack",children:"wiki page"})," in order to understand\nthe concept and structure before proceeding to the rest of this page."]}),"\n",(0,t.jsxs)(s.p,{children:["Alternatively, users can instead choose to use the ",(0,t.jsx)(s.a,{href:"../configuration#slot-configuration",children:"Curios configuration"})," to create\nand modify slot types. There are fewer features than those offered in the datapack method, but some users may find the\nprocess to be more straightforward."]}),"\n",(0,t.jsxs)(s.p,{children:["If using one of the ",(0,t.jsx)(s.a,{href:"./preset-slots",children:"Preset Slot Types"}),", this step can be skipped since Curios natively provides the\nneeded datapack registration."]}),"\n",(0,t.jsxs)(s.admonition,{type:"info",children:[(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Why are my registered slot types not appearing?"})}),(0,t.jsxs)(s.p,{children:["Registering slot types makes them available for use; however, they are ",(0,t.jsx)(s.em,{children:"not"})," added to any entities (including players)\nby default. In order to add them to an entity, please refer to ",(0,t.jsx)(s.a,{href:"/curios/slots/entity-register",children:"the next step"})," on adding slot\ntypes to entities."]})]}),"\n",(0,t.jsx)(s.h2,{id:"directory",children:"Directory"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The file should be a ",(0,t.jsx)(s.code,{children:".json"})," file with the ",(0,t.jsx)(s.code,{children:"identifier"})," for the slot type to be registered as the name. This file\nshould be located in the ",(0,t.jsx)(s.code,{children:"~/data/(namespace)/curios/slots/"})," folder of the datapack."]}),"\n",(0,t.jsxs)(s.p,{children:["Example: Registering a ",(0,t.jsx)(s.code,{children:"head"})," slot type requires creating a ",(0,t.jsx)(s.code,{children:"head.json"})," file located in ",(0,t.jsx)(s.code,{children:"~/data/(namespace)/curios/slots/"}),"\nso the final path should look like ",(0,t.jsx)(s.code,{children:"~/data/(namespace)/curios/slots/head.json"}),"."]}),"\n",(0,t.jsx)(s.admonition,{type:"note",children:(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"(namespace)"})," field should be replaced by the namespace chosen for this portion of the datapack. If this is a part\nof a mod, the namespace is usually the mod ID. If this is part of a user-defined datapack, then the namespace can be\nanything that is lowercased with no special characters."]})}),"\n",(0,t.jsx)(s.h2,{id:"syntax",children:"Syntax"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The structure of the ",(0,t.jsx)(s.code,{children:".json"})," file for the slot type consists of a top-level JSON object that holds various fields\nrelated to that slot type."]}),"\n",(0,t.jsx)(s.p,{children:"All fields are optional unless otherwise noted. Each field denotes certain merging behavior which defines how the\nfield is merged between all data files that include it."}),"\n",(0,t.jsxs)(s.h3,{id:"replace-boolean",children:[(0,t.jsx)(s.strong,{children:"replace"})," (boolean)"]}),"\n",(0,t.jsxs)(s.p,{children:["When ",(0,t.jsx)(s.code,{children:"true"}),", replaces data from lower-priority datapacks."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"false"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," N/A"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"size-integer",children:[(0,t.jsx)(s.strong,{children:"size"})," (integer)"]}),"\n",(0,t.jsx)(s.p,{children:"The number of slots of this slot type to give by default."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"1"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," The highest size will be used."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"operation-setaddremove",children:[(0,t.jsx)(s.strong,{children:"operation"})," (",(0,t.jsx)(s.code,{children:'"SET"'}),"|",(0,t.jsx)(s.code,{children:'"ADD"'}),"|",(0,t.jsx)(s.code,{children:'"REMOVE"'}),")"]}),"\n",(0,t.jsxs)(s.p,{children:["Whether to use ",(0,t.jsx)(s.code,{children:"size"})," to set, add, or remove from the total number of slots."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'"SET"'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," N/A"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"order-integer",children:[(0,t.jsx)(s.strong,{children:"order"})," (integer)"]}),"\n",(0,t.jsx)(s.p,{children:"The order the slots will appear in the native Curios GUI, lower numbers appear first."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"1000"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," The lowest order will be used."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"icon-string",children:[(0,t.jsx)(s.strong,{children:"icon"})," (string)"]}),"\n",(0,t.jsx)(s.p,{children:"The location of the icon to use for the slot type."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'"curios:slot/empty_curios_slot"'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," The last icon will be used."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"add_cosmetic-boolean",children:[(0,t.jsx)(s.strong,{children:"add_cosmetic"})," (boolean)"]}),"\n",(0,t.jsx)(s.p,{children:"The location of the icon to use for the slot type."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"false"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," ",(0,t.jsx)(s.code,{children:"true"})," if any data file sets this field to ",(0,t.jsx)(s.code,{children:"true"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"use_native_gui-boolean",children:[(0,t.jsx)(s.strong,{children:"use_native_gui"})," (boolean)"]}),"\n",(0,t.jsxs)(s.p,{children:["When ",(0,t.jsx)(s.code,{children:"false"}),", does not add the slot type to the native Curios GUI."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"true"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," ",(0,t.jsx)(s.code,{children:"false"})," if any data file sets this field to ",(0,t.jsx)(s.code,{children:"false"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"render_toggle-boolean",children:[(0,t.jsx)(s.strong,{children:"render_toggle"})," (boolean)"]}),"\n",(0,t.jsxs)(s.p,{children:["When ",(0,t.jsx)(s.code,{children:"false"}),", does not allow the slot type to toggle its rendering."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"true"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," ",(0,t.jsx)(s.code,{children:"false"})," if any data file sets this field to ",(0,t.jsx)(s.code,{children:"false"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"drop_rule-defaultalways_dropalways_keepdestroy",children:[(0,t.jsx)(s.strong,{children:"drop_rule"})," (",(0,t.jsx)(s.code,{children:'"DEFAULT"'}),"|",(0,t.jsx)(s.code,{children:'"ALWAYS_DROP"'}),"|",(0,t.jsx)(s.code,{children:'"ALWAYS_KEEP"'}),"|",(0,t.jsx)(s.code,{children:'"DESTROY"'}),")"]}),"\n",(0,t.jsxs)(s.p,{children:["Whether to drop, keep, destroy, or follow the ",(0,t.jsx)(s.code,{children:"keepCurios"})," configuration setting."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'"DEFAULT"'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," N/A"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"validators-string",children:[(0,t.jsx)(s.strong,{children:"validators"})," (string[])"]}),"\n",(0,t.jsxs)(s.p,{children:["The list of registered predicates from the Curios API used by this slot type to validate item insertions. For more\ninformation about validators, please see the page on ",(0,t.jsx)(s.a,{href:"../items/assign-slots#validators",children:"slot assignments"}),"."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'["curios:tag"]'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," Each entry is added into the final array."]}),"\n"]}),"\n",(0,t.jsxs)(s.admonition,{type:"info",children:[(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["Which ",(0,t.jsx)(s.code,{children:"operation"})," value should I use?"]})}),(0,t.jsxs)(s.p,{children:["In most cases, ",(0,t.jsx)(s.code,{children:'"SET"'})," (also the default if no value is defined) will accomplish the desired result. It denotes that a\nslot type should have a certain amount of slots by default, with the highest value among all consumers being used.\n",(0,t.jsx)(s.code,{children:'"ADD"'}),"and ",(0,t.jsx)(s.code,{children:'"REMOVE"'})," are inherent slot modifiers and are based on the amount of slots specified by all ",(0,t.jsx)(s.code,{children:'"SET"'}),"\noperations, the result of which can change based on the mods/datapacks loaded."]})]}),"\n",(0,t.jsx)(s.h2,{id:"example",children:"Example"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-json",children:'{\n "order": 20,\n "size": 4,\n "icon": "curios:slot/empty_custom_slot",\n "add_cosmetic": true\n}\n'})}),"\n",(0,t.jsxs)(s.p,{children:["This slot type will have a relatively low order of 20, which will make it appear higher than most slots. It also has\nsize of 4 which means that it will register 4 slots to any given entity by default. For the GUI, it uses an icon\nlocated at ",(0,t.jsx)(s.code,{children:"curios:slot/empty_custom_slot"}),". It also has added a cosmetic slot so there will be an additional slot for\ncosmetic items next to it in the Curios GUI."]}),"\n",(0,t.jsx)(s.h2,{id:"modifying-a-slot-type",children:"Modifying a Slot Type"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The process of modifying a slot type is identical to registering a new slot type, except using the same ",(0,t.jsx)(s.code,{children:"identifier"})," as\nthe existing slot type. All slot types that share an ",(0,t.jsx)(s.code,{children:"identifier"})," will be merged according to the ",(0,t.jsx)(s.strong,{children:"Merge Behavior"})," of\neach field as outlined above."]}),"\n",(0,t.jsx)(s.h3,{id:"example-1",children:"Example"}),"\n",(0,t.jsxs)(s.p,{children:["Curios natively provides data for the ",(0,t.jsx)(s.code,{children:"ring"})," slot, which defaults the size to 1. In order to increase the size to 2,\ncreate a ",(0,t.jsx)(s.code,{children:"ring.json"})," slot registration file in the datapack with the contents:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-json",children:'{\n "size": 2\n}\n'})}),"\n",(0,t.jsx)(s.p,{children:"This will merge the size data of this registration with the existing registration provided by Curios, keeping all of the\nother data intact while increasing the number of slots to 2."})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>r});var t=n(7294);const i={},o=t.createContext(i);function r(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f0f42f24.900f6d9d.js b/assets/js/f0f42f24.900f6d9d.js new file mode 100644 index 0000000..195c79c --- /dev/null +++ b/assets/js/f0f42f24.900f6d9d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkillusivesoulworks_docs=self.webpackChunkillusivesoulworks_docs||[]).push([[602],{8155:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>a});var t=n(5893),i=n(1151);const o={sidebar_position:1},r="Slot Types",l={id:"curios/slots/slot-register",title:"Slot Types",description:"A tutorial on how to register and modify slot types that are recognized by Curios.",source:"@site/docs/curios/slots/slot-register.md",sourceDirName:"curios/slots",slug:"/curios/slots/slot-register",permalink:"/curios/slots/slot-register",draft:!1,unlisted:!1,editUrl:"https://github.com/illusivesoulworks/docs/edit/main/docs/curios/slots/slot-register.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Slots",permalink:"/category/slots"},next:{title:"Entity Slot Types",permalink:"/curios/slots/entity-register"}},d={},a=[{value:"Overview",id:"overview",level:2},{value:"Directory",id:"directory",level:2},{value:"Syntax",id:"syntax",level:2},{value:"replace (boolean)",id:"replace-boolean",level:3},{value:"size (integer)",id:"size-integer",level:3},{value:"operation ("SET"|"ADD"|"REMOVE")",id:"operation-setaddremove",level:3},{value:"order (integer)",id:"order-integer",level:3},{value:"icon (string)",id:"icon-string",level:3},{value:"add_cosmetic (boolean)",id:"add_cosmetic-boolean",level:3},{value:"use_native_gui (boolean)",id:"use_native_gui-boolean",level:3},{value:"render_toggle (boolean)",id:"render_toggle-boolean",level:3},{value:"drop_rule ("DEFAULT"|"ALWAYS_DROP"|"ALWAYS_KEEP"|"DESTROY")",id:"drop_rule-defaultalways_dropalways_keepdestroy",level:3},{value:"validators (string[])",id:"validators-string",level:3},{value:"Example",id:"example",level:2},{value:"Modifying a Slot Type",id:"modifying-a-slot-type",level:2},{value:"Example",id:"example-1",level:3},{value:"Localization",id:"localization",level:2},{value:"Example",id:"example-2",level:3}];function c(e){const s={a:"a",admonition:"admonition",code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,i.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"slot-types",children:"Slot Types"}),"\n",(0,t.jsx)(s.p,{children:"A tutorial on how to register and modify slot types that are recognized by Curios."}),"\n",(0,t.jsx)(s.h2,{id:"overview",children:"Overview"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The recommended way to register a slot type is through a datapack. If a user or developer is unfamiliar with datapacks,\nit is recommended to read through the ",(0,t.jsx)(s.a,{href:"https://minecraft.fandom.com/wiki/Data_pack",children:"wiki page"})," in order to understand\nthe concept and structure before proceeding to the rest of this page."]}),"\n",(0,t.jsxs)(s.p,{children:["Alternatively, users can instead choose to use the ",(0,t.jsx)(s.a,{href:"../configuration#slot-configuration",children:"Curios configuration"})," to create\nand modify slot types. There are fewer features than those offered in the datapack method, but some users may find the\nprocess to be more straightforward."]}),"\n",(0,t.jsxs)(s.p,{children:["If using one of the ",(0,t.jsx)(s.a,{href:"./preset-slots",children:"Preset Slot Types"}),", this step can be skipped since Curios natively provides the\nneeded datapack registration."]}),"\n",(0,t.jsxs)(s.admonition,{type:"info",children:[(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Why are my registered slot types not appearing?"})}),(0,t.jsxs)(s.p,{children:["Registering slot types makes them available for use; however, they are ",(0,t.jsx)(s.em,{children:"not"})," added to any entities (including players)\nby default. In order to add them to an entity, please refer to ",(0,t.jsx)(s.a,{href:"/curios/slots/entity-register",children:"the next step"})," on adding slot\ntypes to entities."]})]}),"\n",(0,t.jsx)(s.h2,{id:"directory",children:"Directory"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The file should be a ",(0,t.jsx)(s.code,{children:".json"})," file with the ",(0,t.jsx)(s.code,{children:"identifier"})," for the slot type to be registered as the name. This file\nshould be located in the ",(0,t.jsx)(s.code,{children:"~/data/(namespace)/curios/slots/"})," folder of the datapack."]}),"\n",(0,t.jsxs)(s.p,{children:["Example: Registering a ",(0,t.jsx)(s.code,{children:"head"})," slot type requires creating a ",(0,t.jsx)(s.code,{children:"head.json"})," file located in ",(0,t.jsx)(s.code,{children:"~/data/(namespace)/curios/slots/"}),"\nso the final path should look like ",(0,t.jsx)(s.code,{children:"~/data/(namespace)/curios/slots/head.json"}),"."]}),"\n",(0,t.jsx)(s.admonition,{type:"note",children:(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"(namespace)"})," field should be replaced by the namespace chosen for this portion of the datapack. If this is a part\nof a mod, the namespace is usually the mod ID. If this is part of a user-defined datapack, then the namespace can be\nanything that is lowercased with no special characters."]})}),"\n",(0,t.jsx)(s.h2,{id:"syntax",children:"Syntax"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The structure of the ",(0,t.jsx)(s.code,{children:".json"})," file for the slot type consists of a top-level JSON object that holds various fields\nrelated to that slot type."]}),"\n",(0,t.jsx)(s.p,{children:"All fields are optional unless otherwise noted. Each field denotes certain merging behavior which defines how the\nfield is merged between all data files that include it."}),"\n",(0,t.jsxs)(s.h3,{id:"replace-boolean",children:[(0,t.jsx)(s.strong,{children:"replace"})," (boolean)"]}),"\n",(0,t.jsxs)(s.p,{children:["When ",(0,t.jsx)(s.code,{children:"true"}),", replaces data from lower-priority datapacks."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"false"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," N/A"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"size-integer",children:[(0,t.jsx)(s.strong,{children:"size"})," (integer)"]}),"\n",(0,t.jsx)(s.p,{children:"The number of slots of this slot type to give by default."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"1"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," The highest size will be used."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"operation-setaddremove",children:[(0,t.jsx)(s.strong,{children:"operation"})," (",(0,t.jsx)(s.code,{children:'"SET"'}),"|",(0,t.jsx)(s.code,{children:'"ADD"'}),"|",(0,t.jsx)(s.code,{children:'"REMOVE"'}),")"]}),"\n",(0,t.jsxs)(s.p,{children:["Whether to use ",(0,t.jsx)(s.code,{children:"size"})," to set, add, or remove from the total number of slots."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'"SET"'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," N/A"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"order-integer",children:[(0,t.jsx)(s.strong,{children:"order"})," (integer)"]}),"\n",(0,t.jsx)(s.p,{children:"The order the slots will appear in the native Curios GUI, lower numbers appear first."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"1000"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," The lowest order will be used."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"icon-string",children:[(0,t.jsx)(s.strong,{children:"icon"})," (string)"]}),"\n",(0,t.jsx)(s.p,{children:"The location of the icon to use for the slot type."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'"curios:slot/empty_curios_slot"'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," The last icon will be used."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"add_cosmetic-boolean",children:[(0,t.jsx)(s.strong,{children:"add_cosmetic"})," (boolean)"]}),"\n",(0,t.jsx)(s.p,{children:"The location of the icon to use for the slot type."}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"false"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," ",(0,t.jsx)(s.code,{children:"true"})," if any data file sets this field to ",(0,t.jsx)(s.code,{children:"true"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"use_native_gui-boolean",children:[(0,t.jsx)(s.strong,{children:"use_native_gui"})," (boolean)"]}),"\n",(0,t.jsxs)(s.p,{children:["When ",(0,t.jsx)(s.code,{children:"false"}),", does not add the slot type to the native Curios GUI."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"true"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," ",(0,t.jsx)(s.code,{children:"false"})," if any data file sets this field to ",(0,t.jsx)(s.code,{children:"false"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"render_toggle-boolean",children:[(0,t.jsx)(s.strong,{children:"render_toggle"})," (boolean)"]}),"\n",(0,t.jsxs)(s.p,{children:["When ",(0,t.jsx)(s.code,{children:"false"}),", does not allow the slot type to toggle its rendering."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:"true"})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," ",(0,t.jsx)(s.code,{children:"false"})," if any data file sets this field to ",(0,t.jsx)(s.code,{children:"false"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"drop_rule-defaultalways_dropalways_keepdestroy",children:[(0,t.jsx)(s.strong,{children:"drop_rule"})," (",(0,t.jsx)(s.code,{children:'"DEFAULT"'}),"|",(0,t.jsx)(s.code,{children:'"ALWAYS_DROP"'}),"|",(0,t.jsx)(s.code,{children:'"ALWAYS_KEEP"'}),"|",(0,t.jsx)(s.code,{children:'"DESTROY"'}),")"]}),"\n",(0,t.jsxs)(s.p,{children:["Whether to drop, keep, destroy, or follow the ",(0,t.jsx)(s.code,{children:"keepCurios"})," configuration setting."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'"DEFAULT"'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," N/A"]}),"\n"]}),"\n",(0,t.jsxs)(s.h3,{id:"validators-string",children:[(0,t.jsx)(s.strong,{children:"validators"})," (string[])"]}),"\n",(0,t.jsxs)(s.p,{children:["The list of registered predicates from the Curios API used by this slot type to validate item insertions. For more\ninformation about validators, please see the page on ",(0,t.jsx)(s.a,{href:"../items/assign-slots#validators",children:"slot assignments"}),"."]}),"\n",(0,t.jsxs)(s.ul,{children:["\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"default:"})," ",(0,t.jsx)(s.code,{children:'["curios:tag"]'})]}),"\n",(0,t.jsxs)(s.li,{children:[(0,t.jsx)(s.strong,{children:"merging:"})," Each entry is added into the final array."]}),"\n"]}),"\n",(0,t.jsxs)(s.admonition,{type:"info",children:[(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["Which ",(0,t.jsx)(s.code,{children:"operation"})," value should I use?"]})}),(0,t.jsxs)(s.p,{children:["In most cases, ",(0,t.jsx)(s.code,{children:'"SET"'})," (also the default if no value is defined) will accomplish the desired result. It denotes that a\nslot type should have a certain amount of slots by default, with the highest value among all consumers being used.\n",(0,t.jsx)(s.code,{children:'"ADD"'}),"and ",(0,t.jsx)(s.code,{children:'"REMOVE"'})," are inherent slot modifiers and are based on the amount of slots specified by all ",(0,t.jsx)(s.code,{children:'"SET"'}),"\noperations, the result of which can change based on the mods/datapacks loaded."]})]}),"\n",(0,t.jsx)(s.h2,{id:"example",children:"Example"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-json",children:'{\n "order": 20,\n "size": 4,\n "icon": "curios:slot/empty_custom_slot",\n "add_cosmetic": true\n}\n'})}),"\n",(0,t.jsxs)(s.p,{children:["This slot type will have a relatively low order of 20, which will make it appear higher than most slots. It also has\nsize of 4 which means that it will register 4 slots to any given entity by default. For the GUI, it uses an icon\nlocated at ",(0,t.jsx)(s.code,{children:"curios:slot/empty_custom_slot"}),". It also has added a cosmetic slot so there will be an additional slot for\ncosmetic items next to it in the Curios GUI."]}),"\n",(0,t.jsx)(s.h2,{id:"modifying-a-slot-type",children:"Modifying a Slot Type"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["The process of modifying a slot type is identical to registering a new slot type, except using the same ",(0,t.jsx)(s.code,{children:"identifier"})," as\nthe existing slot type. All slot types that share an ",(0,t.jsx)(s.code,{children:"identifier"})," will be merged according to the ",(0,t.jsx)(s.strong,{children:"Merge Behavior"})," of\neach field as outlined above."]}),"\n",(0,t.jsx)(s.h3,{id:"example-1",children:"Example"}),"\n",(0,t.jsxs)(s.p,{children:["Curios natively provides data for the ",(0,t.jsx)(s.code,{children:"ring"})," slot, which defaults the size to 1. In order to increase the size to 2,\ncreate a ",(0,t.jsx)(s.code,{children:"ring.json"})," slot registration file in the datapack with the contents:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-json",children:'{\n "size": 2\n}\n'})}),"\n",(0,t.jsx)(s.p,{children:"This will merge the size data of this registration with the existing registration provided by Curios, keeping all the\nother data intact while increasing the number of slots to 2."}),"\n",(0,t.jsx)(s.h2,{id:"localization",children:"Localization"}),"\n",(0,t.jsx)(s.hr,{}),"\n",(0,t.jsxs)(s.p,{children:["By default, slot types do not come with localizations for the slot name. Only ",(0,t.jsx)(s.a,{href:"/curios/slots/preset-slots",children:"Preset Slot Types"})," come\nwith native localizations, provided by Curios itself. For other slot types, a resource pack with a language file will\nbe necessary in order to properly localize the slot name. If you are unfamiliar with resource packs, it is recommended\nto read through the ",(0,t.jsx)(s.a,{href:"https://minecraft.wiki/w/Resource_pack",children:"wiki page"})," in order to understand the concept and\nstructure."]}),"\n",(0,t.jsxs)(s.p,{children:["The localization key for slot types follow the format ",(0,t.jsx)(s.code,{children:"curios.identifier.name"})," with ",(0,t.jsx)(s.code,{children:"name"})," being the ",(0,t.jsx)(s.code,{children:"identifier"}),"\nregistered for the slot type. For example, the ",(0,t.jsx)(s.code,{children:"ring"})," slot's localization key would be ",(0,t.jsx)(s.code,{children:"curios.identifier.ring"}),"."]}),"\n",(0,t.jsx)(s.h3,{id:"example-2",children:"Example"}),"\n",(0,t.jsxs)(s.p,{children:["To localize a slot type with the identifier ",(0,t.jsx)(s.code,{children:"custom"})," to the ",(0,t.jsx)(s.code,{children:"en_us"})," localization, a ",(0,t.jsx)(s.code,{children:"assets/(namespace)/lang"})," folder\nneeds to be created in the resource pack with a ",(0,t.jsx)(s.code,{children:"en_us.json"})," inside with the contents:"]}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-json",children:'{\n "curios.identifier.custom": "Custom Slot"\n}\n'})})]})}function h(e={}){const{wrapper:s}={...(0,i.a)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,s,n)=>{n.d(s,{Z:()=>l,a:()=>r});var t=n(7294);const i={},o=t.createContext(i);function r(e){const s=t.useContext(o);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function l(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),t.createElement(o.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.ab3bbfbc.js b/assets/js/runtime~main.8cbf8782.js similarity index 98% rename from assets/js/runtime~main.ab3bbfbc.js rename to assets/js/runtime~main.8cbf8782.js index b2948d6..49f554a 100644 --- a/assets/js/runtime~main.ab3bbfbc.js +++ b/assets/js/runtime~main.8cbf8782.js @@ -1 +1 @@ -(()=>{"use strict";var e,a,f,t,r,d={},o={};function c(e){var a=o[e];if(void 0!==a)return a.exports;var f=o[e]={exports:{}};return d[e].call(f.exports,f,f.exports,c),f.exports}c.m=d,e=[],c.O=(a,f,t,r)=>{if(!f){var d=1/0;for(i=0;i=r)&&Object.keys(c.O).every((e=>c.O[e](f[b])))?f.splice(b--,1):(o=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[f,t,r]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);c.r(r);var d={};a=a||[null,f({}),f([]),f(f)];for(var o=2&t&&e;"object"==typeof o&&!~a.indexOf(o);o=f(o))Object.getOwnPropertyNames(o).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,c.d(r,d),r},c.d=(e,a)=>{for(var f in a)c.o(a,f)&&!c.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((a,f)=>(c.f[f](e,a),a)),[])),c.u=e=>"assets/js/"+({18:"d943a703",53:"935f2afb",58:"93c91ab0",82:"bfeab3de",83:"f1e13461",107:"a94703ab",131:"09965537",168:"a0145bdd",181:"fa17a3e5",214:"f078da08",270:"4c92833a",334:"247783bb",335:"e380917f",368:"99097929",408:"bd58d19a",420:"e0b249dc",455:"94fad746",456:"20ff6a6d",492:"3a36d978",495:"96cf4fb7",499:"6e5aa4fa",518:"a7bd4aaa",551:"7ffb7c5f",564:"ab811e82",577:"46c0d933",596:"141528fa",602:"f0f42f24",645:"a7434565",661:"5e95c892",664:"99b1d78b",671:"0e384e19",691:"18c10e97",750:"a4f7be8a",755:"85ac19f8",789:"93d27ab8",805:"2e6e5734",817:"14eb3368",821:"e7ff71d3",842:"a54b83c5",882:"036fc41e",904:"d8ef455a",918:"17896441",922:"a61686b6",933:"6c8344a3",977:"71c056c1"}[e]||e)+"."+{18:"e4f3409d",53:"78f3c854",58:"dca9feb8",82:"5bc9b32a",83:"2ea46632",107:"7d1258e4",131:"5f34f1c3",168:"7ddcf081",181:"45788fe5",214:"f2b13b03",270:"3e9f3bb6",334:"899a41db",335:"04410a4d",368:"2c00f282",408:"9c6138f1",420:"e7365bbb",455:"1e903928",456:"cd92789a",492:"8b966a18",495:"325d709e",499:"5ab8692f",518:"84b976bc",551:"a42c9b9a",564:"55384db2",577:"19808eaf",596:"80fbeb89",602:"303e72e8",645:"82edb565",661:"477f59fb",664:"43c227b6",671:"1ec97c32",691:"c3608260",750:"8c4ddd02",755:"6d43aa8c",772:"4402a9bd",789:"789c181b",805:"8b970756",817:"0e3ce8ed",821:"61d863ad",842:"48ac735e",882:"f755e690",904:"44ce1a16",918:"c0174be7",922:"3b96c0df",933:"0f7b0e7b",977:"eb08e33a"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},r="illusivesoulworks-docs:",c.l=(e,a,f,d)=>{if(t[e])t[e].push(a);else{var o,b;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),b&&document.head.appendChild(o)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/",c.gca=function(e){return e={17896441:"918",99097929:"368",d943a703:"18","935f2afb":"53","93c91ab0":"58",bfeab3de:"82",f1e13461:"83",a94703ab:"107","09965537":"131",a0145bdd:"168",fa17a3e5:"181",f078da08:"214","4c92833a":"270","247783bb":"334",e380917f:"335",bd58d19a:"408",e0b249dc:"420","94fad746":"455","20ff6a6d":"456","3a36d978":"492","96cf4fb7":"495","6e5aa4fa":"499",a7bd4aaa:"518","7ffb7c5f":"551",ab811e82:"564","46c0d933":"577","141528fa":"596",f0f42f24:"602",a7434565:"645","5e95c892":"661","99b1d78b":"664","0e384e19":"671","18c10e97":"691",a4f7be8a:"750","85ac19f8":"755","93d27ab8":"789","2e6e5734":"805","14eb3368":"817",e7ff71d3:"821",a54b83c5:"842","036fc41e":"882",d8ef455a:"904",a61686b6:"922","6c8344a3":"933","71c056c1":"977"}[e]||e,c.p+c.u(e)},(()=>{var e={303:0,532:0};c.f.j=(a,f)=>{var t=c.o(e,a)?e[a]:void 0;if(0!==t)if(t)f.push(t[2]);else if(/^(303|532)$/.test(a))e[a]=0;else{var r=new Promise(((f,r)=>t=e[a]=[f,r]));f.push(t[2]=r);var d=c.p+c.u(a),o=new Error;c.l(d,(f=>{if(c.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var r=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;o.message="Loading chunk "+a+" failed.\n("+r+": "+d+")",o.name="ChunkLoadError",o.type=r,o.request=d,t[1](o)}}),"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,f)=>{var t,r,d=f[0],o=f[1],b=f[2],n=0;if(d.some((a=>0!==e[a]))){for(t in o)c.o(o,t)&&(c.m[t]=o[t]);if(b)var i=b(c)}for(a&&a(f);n{"use strict";var e,a,f,t,r,d={},o={};function c(e){var a=o[e];if(void 0!==a)return a.exports;var f=o[e]={exports:{}};return d[e].call(f.exports,f,f.exports,c),f.exports}c.m=d,e=[],c.O=(a,f,t,r)=>{if(!f){var d=1/0;for(i=0;i=r)&&Object.keys(c.O).every((e=>c.O[e](f[b])))?f.splice(b--,1):(o=!1,r0&&e[i-1][2]>r;i--)e[i]=e[i-1];e[i]=[f,t,r]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var r=Object.create(null);c.r(r);var d={};a=a||[null,f({}),f([]),f(f)];for(var o=2&t&&e;"object"==typeof o&&!~a.indexOf(o);o=f(o))Object.getOwnPropertyNames(o).forEach((a=>d[a]=()=>e[a]));return d.default=()=>e,c.d(r,d),r},c.d=(e,a)=>{for(var f in a)c.o(a,f)&&!c.o(e,f)&&Object.defineProperty(e,f,{enumerable:!0,get:a[f]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce(((a,f)=>(c.f[f](e,a),a)),[])),c.u=e=>"assets/js/"+({18:"d943a703",53:"935f2afb",58:"93c91ab0",82:"bfeab3de",83:"f1e13461",107:"a94703ab",131:"09965537",168:"a0145bdd",181:"fa17a3e5",214:"f078da08",270:"4c92833a",334:"247783bb",335:"e380917f",368:"99097929",408:"bd58d19a",420:"e0b249dc",455:"94fad746",456:"20ff6a6d",492:"3a36d978",495:"96cf4fb7",499:"6e5aa4fa",518:"a7bd4aaa",551:"7ffb7c5f",564:"ab811e82",577:"46c0d933",596:"141528fa",602:"f0f42f24",645:"a7434565",661:"5e95c892",664:"99b1d78b",671:"0e384e19",691:"18c10e97",750:"a4f7be8a",755:"85ac19f8",789:"93d27ab8",805:"2e6e5734",817:"14eb3368",821:"e7ff71d3",842:"a54b83c5",882:"036fc41e",904:"d8ef455a",918:"17896441",922:"a61686b6",933:"6c8344a3",977:"71c056c1"}[e]||e)+"."+{18:"e4f3409d",53:"78f3c854",58:"dca9feb8",82:"5bc9b32a",83:"2ea46632",107:"7d1258e4",131:"5f34f1c3",168:"7ddcf081",181:"45788fe5",214:"f2b13b03",270:"3e9f3bb6",334:"899a41db",335:"04410a4d",368:"2c00f282",408:"9c6138f1",420:"e7365bbb",455:"1e903928",456:"cd92789a",492:"8b966a18",495:"325d709e",499:"5ab8692f",518:"84b976bc",551:"a42c9b9a",564:"55384db2",577:"19808eaf",596:"80fbeb89",602:"900f6d9d",645:"82edb565",661:"477f59fb",664:"43c227b6",671:"1ec97c32",691:"c3608260",750:"8c4ddd02",755:"6d43aa8c",772:"4402a9bd",789:"789c181b",805:"8b970756",817:"0e3ce8ed",821:"61d863ad",842:"48ac735e",882:"f755e690",904:"44ce1a16",918:"c0174be7",922:"3b96c0df",933:"0f7b0e7b",977:"eb08e33a"}[e]+".js",c.miniCssF=e=>{},c.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},r="illusivesoulworks-docs:",c.l=(e,a,f,d)=>{if(t[e])t[e].push(a);else{var o,b;if(void 0!==f)for(var n=document.getElementsByTagName("script"),i=0;i{o.onerror=o.onload=null,clearTimeout(s);var r=t[e];if(delete t[e],o.parentNode&&o.parentNode.removeChild(o),r&&r.forEach((e=>e(f))),a)return a(f)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),b&&document.head.appendChild(o)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.p="/",c.gca=function(e){return e={17896441:"918",99097929:"368",d943a703:"18","935f2afb":"53","93c91ab0":"58",bfeab3de:"82",f1e13461:"83",a94703ab:"107","09965537":"131",a0145bdd:"168",fa17a3e5:"181",f078da08:"214","4c92833a":"270","247783bb":"334",e380917f:"335",bd58d19a:"408",e0b249dc:"420","94fad746":"455","20ff6a6d":"456","3a36d978":"492","96cf4fb7":"495","6e5aa4fa":"499",a7bd4aaa:"518","7ffb7c5f":"551",ab811e82:"564","46c0d933":"577","141528fa":"596",f0f42f24:"602",a7434565:"645","5e95c892":"661","99b1d78b":"664","0e384e19":"671","18c10e97":"691",a4f7be8a:"750","85ac19f8":"755","93d27ab8":"789","2e6e5734":"805","14eb3368":"817",e7ff71d3:"821",a54b83c5:"842","036fc41e":"882",d8ef455a:"904",a61686b6:"922","6c8344a3":"933","71c056c1":"977"}[e]||e,c.p+c.u(e)},(()=>{var e={303:0,532:0};c.f.j=(a,f)=>{var t=c.o(e,a)?e[a]:void 0;if(0!==t)if(t)f.push(t[2]);else if(/^(303|532)$/.test(a))e[a]=0;else{var r=new Promise(((f,r)=>t=e[a]=[f,r]));f.push(t[2]=r);var d=c.p+c.u(a),o=new Error;c.l(d,(f=>{if(c.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var r=f&&("load"===f.type?"missing":f.type),d=f&&f.target&&f.target.src;o.message="Loading chunk "+a+" failed.\n("+r+": "+d+")",o.name="ChunkLoadError",o.type=r,o.request=d,t[1](o)}}),"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,f)=>{var t,r,d=f[0],o=f[1],b=f[2],n=0;if(d.some((a=>0!==e[a]))){for(t in o)c.o(o,t)&&(c.m[t]=o[t]);if(b)var i=b(c)}for(a&&a(f);n API | Illusive Soulworks - + diff --git a/category/curios.html b/category/curios.html index d6875dc..52161ad 100644 --- a/category/curios.html +++ b/category/curios.html @@ -4,7 +4,7 @@ Curios | Illusive Soulworks - + diff --git a/category/diet.html b/category/diet.html index c1e10a4..43b80d0 100644 --- a/category/diet.html +++ b/category/diet.html @@ -4,7 +4,7 @@ Diet | Illusive Soulworks - + diff --git a/category/inventory.html b/category/inventory.html index 4734f85..421f047 100644 --- a/category/inventory.html +++ b/category/inventory.html @@ -4,7 +4,7 @@ Inventory | Illusive Soulworks - + diff --git a/category/items.html b/category/items.html index 4f31f46..98ddc6c 100644 --- a/category/items.html +++ b/category/items.html @@ -4,7 +4,7 @@ Items | Illusive Soulworks - + diff --git a/category/slots.html b/category/slots.html index 48ccf54..0fbf926 100644 --- a/category/slots.html +++ b/category/slots.html @@ -4,7 +4,7 @@ Slots | Illusive Soulworks - + diff --git a/curios/api/renderer-interface.html b/curios/api/renderer-interface.html index f09ebe0..d2c3e6d 100644 --- a/curios/api/renderer-interface.html +++ b/curios/api/renderer-interface.html @@ -4,7 +4,7 @@ ICurioRenderer | Illusive Soulworks - + diff --git a/curios/commands.html b/curios/commands.html index 45af94a..88b7c26 100644 --- a/curios/commands.html +++ b/curios/commands.html @@ -4,7 +4,7 @@ Commands | Illusive Soulworks - + diff --git a/curios/configuration.html b/curios/configuration.html index 5ad19cd..d6993c6 100644 --- a/curios/configuration.html +++ b/curios/configuration.html @@ -4,7 +4,7 @@ Configuration | Illusive Soulworks - + diff --git a/curios/getting-started.html b/curios/getting-started.html index 493c1e8..f7743f9 100644 --- a/curios/getting-started.html +++ b/curios/getting-started.html @@ -4,7 +4,7 @@ Setting Up the Development Environment | Illusive Soulworks - + diff --git a/curios/inventory/basic-inventory.html b/curios/inventory/basic-inventory.html index 58f1643..5223e16 100644 --- a/curios/inventory/basic-inventory.html +++ b/curios/inventory/basic-inventory.html @@ -4,7 +4,7 @@ Basic Inventory Management | Illusive Soulworks - + diff --git a/curios/items/assign-slots.html b/curios/items/assign-slots.html index 24088ca..5b78f68 100644 --- a/curios/items/assign-slots.html +++ b/curios/items/assign-slots.html @@ -4,7 +4,7 @@ Assigning Slots | Illusive Soulworks - + diff --git a/curios/items/curio-creation.html b/curios/items/curio-creation.html index f54488c..c86c96a 100644 --- a/curios/items/curio-creation.html +++ b/curios/items/curio-creation.html @@ -4,7 +4,7 @@ Creating a Curio | Illusive Soulworks - + diff --git a/curios/items/curios-nbt.html b/curios/items/curios-nbt.html index 937811d..d09eb68 100644 --- a/curios/items/curios-nbt.html +++ b/curios/items/curios-nbt.html @@ -4,7 +4,7 @@ Curios Attribute Modifiers (NBT) | Illusive Soulworks - + diff --git a/curios/items/rendering-registry.html b/curios/items/rendering-registry.html index 8de26b5..89029e6 100644 --- a/curios/items/rendering-registry.html +++ b/curios/items/rendering-registry.html @@ -4,7 +4,7 @@ Rendering a Curio | Illusive Soulworks - + diff --git a/curios/slots/data-generation.html b/curios/slots/data-generation.html index 88702ce..e0c777c 100644 --- a/curios/slots/data-generation.html +++ b/curios/slots/data-generation.html @@ -4,7 +4,7 @@ Data Generation | Illusive Soulworks - + diff --git a/curios/slots/datapack-example.html b/curios/slots/datapack-example.html index 1acc1e7..3864bc1 100644 --- a/curios/slots/datapack-example.html +++ b/curios/slots/datapack-example.html @@ -4,7 +4,7 @@ Example Datapack | Illusive Soulworks - + diff --git a/curios/slots/entity-register.html b/curios/slots/entity-register.html index 51d3aeb..8014e10 100644 --- a/curios/slots/entity-register.html +++ b/curios/slots/entity-register.html @@ -4,7 +4,7 @@ Entity Slot Types | Illusive Soulworks - + diff --git a/curios/slots/preset-slots.html b/curios/slots/preset-slots.html index 1178396..f199840 100644 --- a/curios/slots/preset-slots.html +++ b/curios/slots/preset-slots.html @@ -4,7 +4,7 @@ Preset Slot Types | Illusive Soulworks - + diff --git a/curios/slots/slot-modifiers.html b/curios/slots/slot-modifiers.html index 6e4b200..375391c 100644 --- a/curios/slots/slot-modifiers.html +++ b/curios/slots/slot-modifiers.html @@ -4,7 +4,7 @@ Slot Modifiers | Illusive Soulworks - + diff --git a/curios/slots/slot-register.html b/curios/slots/slot-register.html index 893eb76..90c972b 100644 --- a/curios/slots/slot-register.html +++ b/curios/slots/slot-register.html @@ -4,7 +4,7 @@ Slot Types | Illusive Soulworks - + @@ -119,7 +119,20 @@

Example
{
"size": 2
}
-

This will merge the size data of this registration with the existing registration provided by Curios, keeping all of the -other data intact while increasing the number of slots to 2.

+

This will merge the size data of this registration with the existing registration provided by Curios, keeping all the +other data intact while increasing the number of slots to 2.

+

Localization

+
+

By default, slot types do not come with localizations for the slot name. Only Preset Slot Types come +with native localizations, provided by Curios itself. For other slot types, a resource pack with a language file will +be necessary in order to properly localize the slot name. If you are unfamiliar with resource packs, it is recommended +to read through the wiki page in order to understand the concept and +structure.

+

The localization key for slot types follow the format curios.identifier.name with name being the identifier +registered for the slot type. For example, the ring slot's localization key would be curios.identifier.ring.

+

Example

+

To localize a slot type with the identifier custom to the en_us localization, a assets/(namespace)/lang folder +needs to be created in the resource pack with a en_us.json inside with the contents:

+
{
"curios.identifier.custom": "Custom Slot"
}
\ No newline at end of file diff --git a/curios/slots/slot-textures.html b/curios/slots/slot-textures.html index 278aa34..5b9bb26 100644 --- a/curios/slots/slot-textures.html +++ b/curios/slots/slot-textures.html @@ -4,7 +4,7 @@ Slot Icon Textures | Illusive Soulworks - + diff --git a/diet/datapack-example.html b/diet/datapack-example.html index 99a9e56..8328d50 100644 --- a/diet/datapack-example.html +++ b/diet/datapack-example.html @@ -4,7 +4,7 @@ Example Datapack | Illusive Soulworks - + diff --git a/diet/diet-groups.html b/diet/diet-groups.html index 3bfe3ed..b131652 100644 --- a/diet/diet-groups.html +++ b/diet/diet-groups.html @@ -4,7 +4,7 @@ Customizing Food Groups | Illusive Soulworks - + diff --git a/diet/diet-suites.html b/diet/diet-suites.html index 3b2d599..867930b 100644 --- a/diet/diet-suites.html +++ b/diet/diet-suites.html @@ -4,7 +4,7 @@ Customizing Diet Suites | Illusive Soulworks - + diff --git a/diet/food-classification.html b/diet/food-classification.html index de47627..56296d8 100644 --- a/diet/food-classification.html +++ b/diet/food-classification.html @@ -4,7 +4,7 @@ Categorizing Food to Groups | Illusive Soulworks - + diff --git a/index.html b/index.html index f33b39c..86824ca 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ Overview | Illusive Soulworks - + diff --git a/versions.html b/versions.html index 048a20c..a59b126 100644 --- a/versions.html +++ b/versions.html @@ -4,7 +4,7 @@ Versions | Illusive Soulworks - +