[{"data":1,"prerenderedAt":454},["ShallowReactive",2],{"navigation_docs":3,"-how-to-compare-with-vanilla":148,"-how-to-compare-with-vanilla-surround":449},[4,21,62,108],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":20},"Tutorials","i-lucide-graduation-cap","\u002Ftutorials","1.tutorials",[10,15],{"title":11,"path":12,"stem":13,"icon":14},"Your first texture","\u002Ftutorials\u002Ffirst-texture","1.tutorials\u002F1.first-texture","i-lucide-sprout",{"title":16,"path":17,"stem":18,"icon":19},"Grow a crop through its stages","\u002Ftutorials\u002Fgrowth-stages","1.tutorials\u002F2.growth-stages","i-lucide-wheat",false,{"title":22,"icon":23,"path":24,"stem":25,"children":26,"page":20},"How-to guides","i-lucide-wrench","\u002Fhow-to","2.how-to",[27,32,37,42,47,52,57],{"title":28,"path":29,"stem":30,"icon":31},"Install TextureScript","\u002Fhow-to\u002Finstall","2.how-to\u002F1.install","i-lucide-download",{"title":33,"path":34,"stem":35,"icon":36},"Compare a crop with vanilla","\u002Fhow-to\u002Fcompare-with-vanilla","2.how-to\u002F2.compare-with-vanilla","i-lucide-columns-2",{"title":38,"path":39,"stem":40,"icon":41},"Connect an agent","\u002Fhow-to\u002Fconnect-an-agent","2.how-to\u002F3.connect-an-agent","i-lucide-bot",{"title":43,"path":44,"stem":45,"icon":46},"Hand-edit a growth stage","\u002Fhow-to\u002Fhand-edit-a-stage","2.how-to\u002F4.hand-edit-a-stage","i-lucide-pencil",{"title":48,"path":49,"stem":50,"icon":51},"Turn a PNG into a grid","\u002Fhow-to\u002Fimport-a-png","2.how-to\u002F5.import-a-png","i-lucide-file-image",{"title":53,"path":54,"stem":55,"icon":56},"Prove a fix stayed in its region","\u002Fhow-to\u002Fprove-a-fix","2.how-to\u002F6.prove-a-fix","i-lucide-diff",{"title":58,"path":59,"stem":60,"icon":61},"Keep game assets out of git","\u002Fhow-to\u002Fkeep-game-assets-out","2.how-to\u002F7.keep-game-assets-out","i-lucide-shield-check",{"title":63,"icon":64,"path":65,"stem":66,"children":67,"page":20},"Reference","i-lucide-book-open","\u002Freference","3.reference",[68,73,78,83,88,93,98,103],{"title":69,"path":70,"stem":71,"icon":72},"Commands","\u002Freference\u002Fcommands","3.reference\u002F1.commands","i-lucide-terminal",{"title":74,"path":75,"stem":76,"icon":77},"Palette files","\u002Freference\u002Fpalette-files","3.reference\u002F2.palette-files","i-lucide-palette",{"title":79,"path":80,"stem":81,"icon":82},"Grid files","\u002Freference\u002Fgrid-files","3.reference\u002F3.grid-files","i-lucide-grid-3x3",{"title":84,"path":85,"stem":86,"icon":87},"Stages files","\u002Freference\u002Fstages-files","3.reference\u002F4.stages-files","i-lucide-layers",{"title":89,"path":90,"stem":91,"icon":92},"Scene files","\u002Freference\u002Fscene-files","3.reference\u002F5.scene-files","i-lucide-box",{"title":94,"path":95,"stem":96,"icon":97},"Lint rules","\u002Freference\u002Flint-rules","3.reference\u002F6.lint-rules","i-lucide-list-checks",{"title":99,"path":100,"stem":101,"icon":102},"MCP server","\u002Freference\u002Fmcp-server","3.reference\u002F7.mcp-server","i-lucide-plug",{"title":104,"path":105,"stem":106,"icon":107},"Environment","\u002Freference\u002Fenvironment","3.reference\u002F8.environment","i-lucide-settings",{"title":109,"icon":110,"path":111,"stem":112,"children":113,"page":20},"Explanation","i-lucide-lightbulb","\u002Fexplanation","4.explanation",[114,119,123,128,133,138,143],{"title":115,"path":116,"stem":117,"icon":118},"Textures as text","\u002Fexplanation\u002Ftextures-as-text","4.explanation\u002F1.textures-as-text","i-lucide-type",{"title":120,"path":121,"stem":122,"icon":77},"Colour from two anchors","\u002Fexplanation\u002Fcolour","4.explanation\u002F2.colour",{"title":124,"path":125,"stem":126,"icon":127},"Measured conventions","\u002Fexplanation\u002Fmeasured-conventions","4.explanation\u002F3.measured-conventions","i-lucide-ruler",{"title":129,"path":130,"stem":131,"icon":132},"Growth stages as maps","\u002Fexplanation\u002Fgrowth-stages","4.explanation\u002F4.growth-stages","i-lucide-chart-no-axes-column-increasing",{"title":134,"path":135,"stem":136,"icon":137},"The 3D view","\u002Fexplanation\u002Fthe-3d-view","4.explanation\u002F5.the-3d-view","i-lucide-rotate-3d",{"title":139,"path":140,"stem":141,"icon":142},"No game assets","\u002Fexplanation\u002Fno-game-assets","4.explanation\u002F6.no-game-assets","i-lucide-shield",{"title":144,"path":145,"stem":146,"icon":147},"Architecture","\u002Fexplanation\u002Farchitecture","4.explanation\u002F7.architecture","i-lucide-boxes",{"id":149,"title":33,"body":150,"description":442,"extension":443,"links":444,"meta":445,"navigation":446,"path":34,"seo":447,"stem":35,"__hash__":448},"docs\u002F2.how-to\u002F2.compare-with-vanilla.md",{"type":151,"value":152,"toc":435},"minimark",[153,167,172,178,273,308,313,317,328,335,339,342,351,354,363,367,374,396,415,419,422,431],[154,155,156,157,161,162,166],"p",{},"A crop's density and read can only be judged on the block model, next to vanilla. This guide\nassumes you have a ",[158,159,160],"code",{},".stages"," file for your crop and Minecraft installed (see\n",[163,164,28],"a",{"href":165},"\u002Fhow-to\u002Finstall#show-vanilla-blocks",").",[168,169,171],"h2",{"id":170},"write-the-scene","Write the scene",[154,173,174,175,177],{},"Create a TOML file next to your ",[158,176,160],{}," file:",[179,180,186],"pre",{"className":181,"code":182,"filename":183,"language":184,"meta":185,"style":185},"language-toml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","camera = { yaw = 30, pitch = 22, distance = 7 }\nfloor = \"minecraft:grass_block\"\nground = \"minecraft:farmland[moisture=7]\"\n\n[[plot]]\nlabel = \"tomato\"\nstages = \"tomato.stages\"\nages = [0, 3, 7]\nat = [0, 0]\n\n[[plot]]\nlabel = \"wheat (vanilla)\"\nblock = \"minecraft:wheat[age=7]\"\nat = [4, 0]\n","tomato.toml","toml","",[158,187,188,196,202,208,215,221,227,233,239,245,250,255,261,267],{"__ignoreMap":185},[189,190,193],"span",{"class":191,"line":192},"line",1,[189,194,195],{},"camera = { yaw = 30, pitch = 22, distance = 7 }\n",[189,197,199],{"class":191,"line":198},2,[189,200,201],{},"floor = \"minecraft:grass_block\"\n",[189,203,205],{"class":191,"line":204},3,[189,206,207],{},"ground = \"minecraft:farmland[moisture=7]\"\n",[189,209,211],{"class":191,"line":210},4,[189,212,214],{"emptyLinePlaceholder":213},true,"\n",[189,216,218],{"class":191,"line":217},5,[189,219,220],{},"[[plot]]\n",[189,222,224],{"class":191,"line":223},6,[189,225,226],{},"label = \"tomato\"\n",[189,228,230],{"class":191,"line":229},7,[189,231,232],{},"stages = \"tomato.stages\"\n",[189,234,236],{"class":191,"line":235},8,[189,237,238],{},"ages = [0, 3, 7]\n",[189,240,242],{"class":191,"line":241},9,[189,243,244],{},"at = [0, 0]\n",[189,246,248],{"class":191,"line":247},10,[189,249,214],{"emptyLinePlaceholder":213},[189,251,253],{"class":191,"line":252},11,[189,254,220],{},[189,256,258],{"class":191,"line":257},12,[189,259,260],{},"label = \"wheat (vanilla)\"\n",[189,262,264],{"class":191,"line":263},13,[189,265,266],{},"block = \"minecraft:wheat[age=7]\"\n",[189,268,270],{"class":191,"line":269},14,[189,271,272],{},"at = [4, 0]\n",[274,275,276,288,291,298],"ul",{},[277,278,279,280,283,284,287],"li",{},"Each age takes the next block along +x, so ",[158,281,282],{},"ages = [0, 3, 7]"," at ",[158,285,286],{},"[0, 0]"," fills x 0 to 2.",[277,289,290],{},"Leave one empty block between plots, along x and z. Plots that touch merge into one bed and\ntheir labels overlap.",[277,292,293,294,297],{},"Use ",[158,295,296],{},"model = \"cross\""," for flowers and saplings, which sit on two diagonal planes.",[277,299,300,303,304,307],{},[158,301,302],{},"block"," takes any block state your jar has, like ",[158,305,306],{},"minecraft:sunflower[half=lower]",".",[154,309,310,311,307],{},"Every key is described in ",[163,312,89],{"href":90},[168,314,316],{"id":315},"look-at-it-live","Look at it live",[179,318,322],{"className":319,"code":320,"language":321,"meta":185,"style":185},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","texturescript view tomato.toml\n","sh",[158,323,324],{"__ignoreMap":185},[189,325,326],{"class":191,"line":192},[189,327,320],{},[154,329,330,331,334],{},"The view updates whenever you save the scene, a grid, a palette or a map. Drag to orbit, scroll\nto zoom, ",[158,332,333],{},"l"," toggles labels.",[168,336,338],{"id":337},"screenshot-it","Screenshot it",[154,340,341],{},"When you cannot see a browser, or want a picture to share, shoot the same scene. One angle hides\noverlaps, so take two or three:",[179,343,345],{"className":319,"code":344,"language":321,"meta":185,"style":185},"texturescript shoot tomato.toml shot.png --cam 30,22,7 --cam 120,10,5 --cam 0,60,6\n",[158,346,347],{"__ignoreMap":185},[189,348,349],{"class":191,"line":192},[189,350,344],{},[154,352,353],{},"Those frame the whole scene. To judge one plant, move in and enlarge the shots:",[179,355,357],{"className":319,"code":356,"language":321,"meta":185,"style":185},"texturescript shoot tomato.toml close.png --cam 30,22,4 --size 900x600\n",[158,358,359],{"__ignoreMap":185},[189,360,361],{"class":191,"line":192},[189,362,356],{},[168,364,366],{"id":365},"compare-two-drafts","Compare two drafts",[154,368,369,370,373],{},"Give a plot several ",[158,371,372],{},"stages"," as named variants:",[179,375,377],{"className":181,"code":376,"language":184,"meta":185,"style":185},"[[plot]]\nlabel = \"tomato\"\nstages = { first = \"tomato-a.stages\", second = \"tomato-b.stages\" }\nat = [0, 0]\n",[158,378,379,383,387,392],{"__ignoreMap":185},[189,380,381],{"class":191,"line":192},[189,382,220],{},[189,384,385],{"class":191,"line":198},[189,386,226],{},[189,388,389],{"class":191,"line":204},[189,390,391],{},"stages = { first = \"tomato-a.stages\", second = \"tomato-b.stages\" }\n",[189,393,394],{"class":191,"line":210},[189,395,244],{},[154,397,398,399,402,403,406,407,410,411,414],{},"In ",[158,400,401],{},"view",", keys 1 to 9 switch between variants and ",[158,404,405],{},"v"," cycles through them. ",[158,408,409],{},"shoot"," puts each\nvariant in its own row of the sheet; ",[158,412,413],{},"--variant NAME"," limits it to some of them.",[168,416,418],{"id":417},"compare-items","Compare items",[154,420,421],{},"Items are flat, so compare them on a contact sheet instead, at three times their size:",[179,423,425],{"className":319,"code":424,"language":321,"meta":185,"style":185},"texturescript sheet items.png out\u002Fcorn_item.png vanilla-items\u002F --scale 3\n",[158,426,427],{"__ignoreMap":185},[189,428,429],{"class":191,"line":192},[189,430,424],{},[432,433,434],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":185,"searchDepth":198,"depth":198,"links":436},[437,438,439,440,441],{"id":170,"depth":198,"text":171},{"id":315,"depth":198,"text":316},{"id":337,"depth":198,"text":338},{"id":365,"depth":198,"text":366},{"id":417,"depth":198,"text":418},"Write a scene that plants your crop beside vanilla blocks, then view it live or screenshot it.","md",null,{},{"icon":36},{"title":33,"description":442},"P5u7k8ougcXmoa8CmbKEkgQYKkHIEKVwMwLTa_jVCFo",[450,452],{"title":28,"path":29,"stem":30,"description":451,"icon":31,"children":-1},"Install the binary or run from source, and set up screenshots and vanilla blocks.",{"title":38,"path":39,"stem":40,"description":453,"icon":41,"children":-1},"Give an AI agent the authoring skill, the vanilla references and the MCP tools.",1791722218267]