[{"data":1,"prerenderedAt":270},["ShallowReactive",2],{"navigation_docs":3,"-explanation-measured-conventions":148,"-explanation-measured-conventions-surround":265},[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":124,"body":150,"description":258,"extension":259,"links":260,"meta":261,"navigation":262,"path":125,"seo":263,"stem":126,"__hash__":264},"docs\u002F4.explanation\u002F3.measured-conventions.md",{"type":151,"value":152,"toc":250},"minimark",[153,166,171,182,185,202,209,213,220,224,235,239],[154,155,156,157,161,162,165],"p",{},"Vanilla Minecraft textures follow conventions nobody wrote down: crops have no outline, items\ndo; no texture dithers at 16 px; a mature crop covers between a quarter and a half of its\nsprite. TextureScript's rules were measured on a selection of vanilla crop and item textures,\nnot assumed. The authoring skill's ",[158,159,160],"code",{},"rules\u002Fcrop.md"," and ",[158,163,164],{},"rules\u002Fitem.md"," record the measurements.",[167,168,170],"h2",{"id":169},"thresholds-describe-vanilla-not-taste","Thresholds describe vanilla, not taste",[154,172,173,174,177,178,181],{},"Each lint threshold sits at the edge of what vanilla does. The vanilla median is 6 colours and\nthe maximum 13, so 13 is where ",[158,175,176],{},"budget"," fails. No vanilla crop has more than 12 disconnected\npieces, so 12 is where ",[158,179,180],{},"islands"," warns. Nothing in the rules says what looks good; they say what\nlooks like Minecraft.",[154,183,184],{},"That is why there are two levels:",[186,187,188,196],"ul",{},[189,190,191,195],"li",{},[192,193,194],"strong",{},"FAIL"," means the texture breaks something vanilla never breaks and the game depends on, like\nsemi-transparent pixels or a two-block plant whose halves do not join.",[189,197,198,201],{},[192,199,200],{},"WARN"," means the texture does something vanilla rarely does. It may still be the right call.\nLook, decide, and if a rule is wrong for your texture, say so instead of nudging pixels until\nit is quiet.",[154,203,204,205,208],{},"Some rules are known to be weak. ",[158,206,207],{},"light"," trips on 5 of 19 vanilla items, so it is a prompt to\nlook, nothing more.",[167,210,212],{"id":211},"crops-and-items-are-different","Crops and items are different",[154,214,215,216,219],{},"Crops are drawn on crossing planes and seen through each other, so they are sparse and have no\noutline: an outline would draw dark lines through the middle of the plant. Items are flat and\nseen against the inventory background, so they carry a one-pixel outline in their darkest shade\nand are lit from the top left. ",[158,217,218],{},"lint --kind"," switches between the two sets of rules.",[167,221,223],{"id":222},"density-is-judged-on-the-model","Density is judged on the model",[154,225,226,227,230,231,234],{},"Measured in game, a crop sprite at 30% coverage looks as full as one at 43%, because the planes\noverlap. A flat sprite that looks thin is often right. This is why the coverage rule's range is\nwide, and why crops should be judged in ",[158,228,229],{},"view"," or ",[158,232,233],{},"shoot",", not as a flat PNG.",[167,236,238],{"id":237},"related","Related",[186,240,241,246],{},[189,242,243],{},[244,245,94],"a",{"href":95},[189,247,248],{},[244,249,134],{"href":135},{"title":251,"searchDepth":252,"depth":252,"links":253},"",2,[254,255,256,257],{"id":169,"depth":252,"text":170},{"id":211,"depth":252,"text":212},{"id":222,"depth":252,"text":223},{"id":237,"depth":252,"text":238},"Where the lint thresholds come from, and why a warning is a question rather than an order.","md",null,{},{"icon":127},{"title":124,"description":258},"gS66pqWpzge8P0CO90Cn663HweP2gmpHNwxuFruvzv4",[266,268],{"title":120,"path":121,"stem":122,"description":267,"icon":77,"children":-1},"Why you choose two colours per material and let TextureScript derive the rest.",{"title":129,"path":130,"stem":131,"description":269,"icon":132,"children":-1},"Why a crop's stages come from one mature drawing and a map of when each pixel appears.",1791722219614]