[{"data":1,"prerenderedAt":646},["ShallowReactive",2],{"data":3,"\u002Fwiki\u002Fdocs\u002Futility":113},[4,9,14,19,24,29,34,39,44,49,54,59,64,68,73,78,83,88,93,98,103,108],{"title":5,"path":6,"description":7,"id":8},"FAQ","\u002Fblockbench\u002Ffaq","Frequently Asked Questions about Blockbench","content\u002Fblockbench\u002Ffaq.md",{"title":10,"path":11,"description":12,"id":13},"Formats","\u002Fblockbench\u002Fformats","formats","content\u002Fblockbench\u002Fformats.md",{"title":15,"path":16,"description":17,"id":18},"Legacy Versions","\u002Fblockbench\u002Flegacy-versions","Blockbench version history and changelogs prior to switching to Github Releases","content\u002Fblockbench\u002Flegacy-versions.md",{"title":20,"path":21,"description":22,"id":23},"Localization","\u002Fblockbench\u002Flocalization","How to contribute to Blockbench languages","content\u002Fblockbench\u002Flocalization.md",{"title":25,"path":26,"description":27,"id":28},"Logos and Brand Assets","\u002Fblockbench\u002Flogos","Frequently Asked Questions about the Blockbench app","content\u002Fblockbench\u002Flogos.md",{"title":30,"path":31,"description":32,"id":33},"Custom Themes","\u002Fblockbench\u002Fthemes","Themes allow you to change the visual appearance of Blockbench. You can drag and drop .bbtheme files into Blockbench to load them.","content\u002Fblockbench\u002Fthemes.md",{"title":35,"path":36,"description":37,"id":38},"The .bbmodel format","\u002Fdocs\u002Fbbmodel","An overview of the .bbmodel file format","content\u002Fdocs\u002Fbbmodel.md",{"title":40,"path":41,"description":42,"id":43},"Blockbench","\u002Fdocs\u002Fblockbench","The Blockbench object provides useful variables and methods to interact with general functionality of Blockbench.","content\u002Fdocs\u002Fblockbench.md",{"title":45,"path":46,"description":47,"id":48},"Upgrading Plugins to 5.0","\u002Fdocs\u002Fplugin-upgrade-to-5.0","An overview of breaking changes in the plugin API in 5.0","content\u002Fdocs\u002Fplugin-upgrade-to-5.0.md",{"title":50,"path":51,"description":52,"id":53},"Creating a Plugin","\u002Fdocs\u002Fplugin","This article will go over the basic steps needed to create your first plugin.","content\u002Fdocs\u002Fplugin.md",{"title":55,"path":56,"description":57,"id":58},"Properties","\u002Fdocs\u002Fproperty","Properties are used to dynamically assign properties to existing classes that are undo-relevant.\nThe advantages of using properties include:","content\u002Fdocs\u002Fproperty.md",{"title":60,"path":61,"description":62,"id":63},"Interface","\u002Fdocs\u002Fui","","content\u002Fdocs\u002Fui.md",{"title":65,"path":66,"description":62,"id":67},"Undo","\u002Fdocs\u002Fundo","content\u002Fdocs\u002Fundo.md",{"title":69,"path":70,"description":71,"id":72},"Web App URL Parameters","\u002Fdocs\u002Furl-parameters","How to provide integration with the Blockbench web app using URL parameters","content\u002Fdocs\u002Furl-parameters.md",{"title":74,"path":75,"description":76,"id":77},"Utils","\u002Fdocs\u002Futility","Blockbench comes with a bunch of custom utility functions to make the life of developers easier.","content\u002Fdocs\u002Futility.md",{"title":79,"path":80,"description":81,"id":82},"Bedrock Modeling and Animation","\u002Fguides\u002Fbedrock-modeling","Learn how to create entity models and animations for Minecraft Bedrock Edition","content\u002Fguides\u002Fbedrock-modeling.md",{"title":84,"path":85,"description":86,"id":87},"Blockbench Overview & Tips","\u002Fguides\u002Fblockbench-overview-tips","The fundamentals of Blockbench and how to use it efficiently","content\u002Fguides\u002Fblockbench-overview-tips.md",{"title":89,"path":90,"description":91,"id":92},"Emissive Textures in Renders","\u002Fguides\u002Femissive-textures-renders","How to create elegant emissive textures in renders","content\u002Fguides\u002Femissive-textures-renders.md",{"title":94,"path":95,"description":96,"id":97},"3D Export","\u002Fguides\u002Fexport-formats","An overview of the different export formats and how to transfer your model into other programs","content\u002Fguides\u002Fexport-formats.md",{"title":99,"path":100,"description":101,"id":102},"Particles and Sounds in MC Bedrock","\u002Fguides\u002Fminecraft-particles-sounds","How to add particles and sounds effects to animations for Minecraft Bedrock Edition","content\u002Fguides\u002Fminecraft-particles-sounds.md",{"title":104,"path":105,"description":106,"id":107},"Minecraft Style Guide","\u002Fguides\u002Fminecraft-style-guide","Tips for creating art in the Minecraft style","content\u002Fguides\u002Fminecraft-style-guide.md",{"title":109,"path":110,"description":111,"id":112},"Rendering Models","\u002Fguides\u002Fmodel-rendering","Learn how to create renders of your Blockbench models","content\u002Fguides\u002Fmodel-rendering.md",{"id":77,"title":74,"body":114,"description":76,"extension":640,"meta":641,"navigation":642,"path":75,"seo":643,"stem":644,"__hash__":645},{"type":115,"value":116,"toc":585},"minimark",[117,121,124,129,139,142,155,159,162,166,173,177,184,188,199,203,210,218,225,229,232,236,241,251,255,270,274,283,287,291,294,298,301,305,316,320,334,338,349,353,356,360,366,370,377,381,392,396,404,408,414,418,428,432,440,444,448,458,462,470,474,477,481,485,494,498,506,510,518,522,525,529,532,536,543,547,550,554,557,561,567,571,574,578],[118,119,74],"h1",{"id":120},"utils",[122,123,76],"p",{},[125,126,128],"h2",{"id":127},"general-things","General Things",[130,131,133,134,138],"h4",{"id":132},"condition-condition-booleanfunctionundefined-context-object","Condition( condition: Boolean\u002FFunction\u002Fundefined ",[135,136,137],"span",{},", context: Object",")",[122,140,141],{},"Returns true if the condition checks out. Conditions can be",[143,144,145,149,152],"ul",{},[146,147,148],"li",{},"Simple booleans",[146,150,151],{},"Functions returning a value",[146,153,154],{},"If the condition is undefined, it will return true",[130,156,158],{"id":157},"oneliner-data-object","oneLiner( data: Object )",[122,160,161],{},"Used as a wrapper for an object to tell the JSON exporter to print the entire Object in one line.",[130,163,165],{"id":164},"guid","guid()",[122,167,168,169],{},"Generates a uuid. Example: ",[170,171,172],"code",{},"df818b11-0785-2753-599a-95d6818ed846",[130,174,176],{"id":175},"isuuid-uuid-string","isUUID( uuid: String )",[122,178,179,180,183],{},"returns true if ",[170,181,182],{},"uuid"," is in fact a UUID.",[130,185,187],{"id":186},"bbuid-length-number","bbuid( length: Number )",[122,189,190,191,194,195,198],{},"Returns a short random unique identifier using the given ",[170,192,193],{},"length"," and the characters ",[135,196,197],{},"a-zA-Z0-9",".",[130,200,202],{"id":201},"autostringify-object-object","autoStringify( object: Object )",[122,204,205,206,209],{},"Compiles the ",[170,207,208],{},"object"," to a JSON string using the Blockbench custom JSON compiler under consideration of the minified output setting.",[130,211,213,214,217],{"id":212},"pathtoname-path-string-extension-string","pathToName( path: String",[135,215,216],{},", extension: String"," )",[122,219,220,221,224],{},"Turns the file path ",[170,222,223],{},"path"," into the corresponding file name, including file extension of extension is set to true.",[130,226,228],{"id":227},"pathtoextension-path-string","pathToExtension( path: String )",[122,230,231],{},"Returns the extension of a file path or name.",[125,233,235],{"id":234},"libraries","Libraries",[237,238,240],"h3",{"id":239},"dom-manipulation","DOM Manipulation",[122,242,243,250],{},[244,245,249],"a",{"href":246,"rel":247},"https:\u002F\u002Fapi.jquery.com",[248],"nofollow","jQuery"," is available as a simple way to interact with the DOM. Note that native DOM manipulation functions are usually faster than jQuery. The use of native functions or vue components is generally encouraged over jQuery.",[237,252,254],{"id":253},"colors","Colors",[122,256,257,258,263,264,269],{},"Blockbench uses ",[244,259,262],{"href":260,"rel":261},"https:\u002F\u002Fbgrins.github.io\u002Fspectrum\u002F",[248],"Spectrum"," as a Color picker and ",[244,265,268],{"href":266,"rel":267},"https:\u002F\u002Fgithub.com\u002Fbgrins\u002FTinyColor",[248],"tinycolor"," as a color handling and conversion library.",[237,271,273],{"id":272},"_3d-editor","3D Editor",[122,275,276,277,282],{},"THREE.JS is used to display and handle the 3D preview. Read the ",[244,278,281],{"href":279,"rel":280},"https:\u002F\u002Fthreejs.org\u002Fdocs\u002F",[248],"three.js docs"," for more info.",[125,284,286],{"id":285},"math","Math",[130,288,290],{"id":289},"mathradtodeg-rad","Math.radToDeg( rad )",[122,292,293],{},"Converts radiants into degrees",[130,295,297],{"id":296},"mathdegtorad-deg","Math.degToRad( deg )",[122,299,300],{},"Converts degrees into radiants",[130,302,304],{"id":303},"mathroundto-number-digits","Math.roundTo( number, digits )",[122,306,307,308,311,312,315],{},"Rounds the number ",[170,309,310],{},"number"," to ",[170,313,314],{},"digits"," decimal places.",[130,317,319],{"id":318},"mathlerp-a-b-m","Math.lerp( a, b, m )",[122,321,322,323,325,326,329,330,333],{},"Lerps between the values ",[170,324,244],{}," and ",[170,327,328],{},"b"," using ",[170,331,332],{},"lerp"," (between 0 and 1)",[130,335,337],{"id":336},"mathisbetween-n-a-b","Math.isBetween( n, a, b )",[122,339,340,341,344,345,325,347,198],{},"Returns true if ",[170,342,343],{},"n"," is in between ",[170,346,244],{},[170,348,328],{},[130,350,352],{"id":351},"mathtrimdeg-deg","Math.trimDeg( deg )",[122,354,355],{},"Trims the given degree number to a normalized value between -180 and 180.",[130,357,359],{"id":358},"mathispoweroftwo-x","Math.isPowerOfTwo( x )",[122,361,340,362,365],{},[170,363,364],{},"x"," is a power of two.",[130,367,369],{"id":368},"mathrandomab-a-b","Math.randomab( a, b )",[122,371,372,373,325,375],{},"Returns a random number between ",[170,374,244],{},[170,376,328],{},[130,378,380],{"id":379},"mathclamp-n-a-b","Math.clamp( n, a, b )",[122,382,383,384,386,387,389,390,198],{},"Clamps the number ",[170,385,343],{}," to a number in between or equal to ",[170,388,244],{}," or ",[170,391,328],{},[130,393,395],{"id":394},"matharemultiples-a-b","Math.areMultiples( a, b )",[122,397,340,398,400,401,403],{},[170,399,244],{}," is a multiple of ",[170,402,328],{}," or vice versa.",[130,405,407],{"id":406},"trimfloatnumber-n","trimFloatNumber( n )",[122,409,410,411],{},"Trims the given float to a readable by rounding it to 4 decimal places maximum, to avoid values such as ",[170,412,413],{},"1.59999999",[130,415,417],{"id":416},"getaxisnumber-letter-string","getAxisNumber( letter: String )",[122,419,420,421,424,425,138],{},"Converts an axis letter (",[170,422,423],{},"x, y, z",") into an axis number (",[170,426,427],{},"0, 1, 2",[130,429,431],{"id":430},"getaxisletter-number-number","getAxisLetter( number: Number )",[122,433,434,435,437,438,138],{},"Converts an axis number (",[170,436,427],{},") into an axis letter (",[170,439,423],{},[125,441,443],{"id":442},"dates","Dates",[130,445,447],{"id":446},"dategetdatearray","Date.getDateArray()",[122,449,450,451,454,455],{},"Returns an array of the date of ",[170,452,453],{},"Date"," in the format ",[170,456,457],{},"[d, m, yyyy]",[130,459,461],{"id":460},"dategetdatestring","Date.getDateString()",[122,463,464,465,454,467],{},"Returns a string of the data ",[170,466,453],{},[170,468,469],{},"\"dd.mm.yyyy\"",[130,471,473],{"id":472},"datedayofyear","Date.dayOfYear()",[122,475,476],{},"Returns the day of the year",[125,478,480],{"id":479},"array","Array",[130,482,484],{"id":483},"arraysafepush-item-any","Array.safePush( item: Any )",[122,486,487,488,311,491,493],{},"Pushes ",[170,489,490],{},"item",[170,492,480],{}," only if it is not in the array yet.",[130,495,497],{"id":496},"arrayequals-array-array","Array.equals( array: Array )",[122,499,500,501,325,503,505],{},"Checks if ",[170,502,480],{},[170,504,479],{}," have the same content.",[130,507,509],{"id":508},"arrayremove-item-any","Array.remove( item: Any )",[122,511,512,513,515,516],{},"Removes ",[170,514,490],{}," from ",[170,517,480],{},[130,519,521],{"id":520},"arrayempty","Array.empty()",[122,523,524],{},"Empties the array",[130,526,528],{"id":527},"arraypurge","Array.purge()",[122,530,531],{},"Empties an array while also updating it for VueJS",[130,533,535],{"id":534},"arrayfindinarray-key-string-value-any","Array.findInArray( key: String, value: Any )",[122,537,538,539,542],{},"Find an object in the array by looking for a ",[170,540,541],{},"key: value"," match",[130,544,546],{"id":545},"arraylast","Array.last()",[122,548,549],{},"Returns the last item of the array",[130,551,553],{"id":552},"arraypositiveitems","Array.positiveItems()",[122,555,556],{},"Returns the number of truthy items in the array.",[130,558,560],{"id":559},"arrayallequal-value-any","Array.allEqual( value: Any )",[122,562,563,564,198],{},"Returns true if all items in the array equal ",[170,565,566],{},"value",[130,568,570],{"id":569},"arrayrandom","Array.random()",[122,572,573],{},"Returns a random item of the array.",[130,575,577],{"id":576},"arrayforeachreverse-callback-function","Array.forEachReverse( callback: Function )",[122,579,580,581,584],{},"Runs the function ",[170,582,583],{},"callback"," for each item in the list, starting from the end.",{"title":62,"searchDepth":586,"depth":587,"links":588},2,3,[589,602,607,622,627],{"id":127,"depth":586,"text":128,"children":590},[591,594,595,596,597,598,599,601],{"id":132,"depth":592,"text":593},4,"Condition( condition: Boolean\u002FFunction\u002Fundefined , context: Object)",{"id":157,"depth":592,"text":158},{"id":164,"depth":592,"text":165},{"id":175,"depth":592,"text":176},{"id":186,"depth":592,"text":187},{"id":201,"depth":592,"text":202},{"id":212,"depth":592,"text":600},"pathToName( path: String, extension: String )",{"id":227,"depth":592,"text":228},{"id":234,"depth":586,"text":235,"children":603},[604,605,606],{"id":239,"depth":587,"text":240},{"id":253,"depth":587,"text":254},{"id":272,"depth":587,"text":273},{"id":285,"depth":586,"text":286,"children":608},[609,610,611,612,613,614,615,616,617,618,619,620,621],{"id":289,"depth":592,"text":290},{"id":296,"depth":592,"text":297},{"id":303,"depth":592,"text":304},{"id":318,"depth":592,"text":319},{"id":336,"depth":592,"text":337},{"id":351,"depth":592,"text":352},{"id":358,"depth":592,"text":359},{"id":368,"depth":592,"text":369},{"id":379,"depth":592,"text":380},{"id":394,"depth":592,"text":395},{"id":406,"depth":592,"text":407},{"id":416,"depth":592,"text":417},{"id":430,"depth":592,"text":431},{"id":442,"depth":586,"text":443,"children":623},[624,625,626],{"id":446,"depth":592,"text":447},{"id":460,"depth":592,"text":461},{"id":472,"depth":592,"text":473},{"id":479,"depth":586,"text":480,"children":628},[629,630,631,632,633,634,635,636,637,638,639],{"id":483,"depth":592,"text":484},{"id":496,"depth":592,"text":497},{"id":508,"depth":592,"text":509},{"id":520,"depth":592,"text":521},{"id":527,"depth":592,"text":528},{"id":534,"depth":592,"text":535},{"id":545,"depth":592,"text":546},{"id":552,"depth":592,"text":553},{"id":559,"depth":592,"text":560},{"id":569,"depth":592,"text":570},{"id":576,"depth":592,"text":577},"md",{},true,{"title":74,"description":76},"docs\u002Futility","g2f796Zgytdld5qNLDNfAeIt4JgLFm49mRKHxbCynFA",1775238418450]