@nodecraft/rendermite 1.11.1 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -16
- package/assets/builtin/mobheads/items/frostbite.json +6 -0
- package/assets/builtin/mobheads/models/item/frostbite.json +6 -0
- package/assets/mod-models/README.md +24 -0
- package/dist/atlas/registry.d.ts +5 -6
- package/dist/atlas/registry.js +1 -2
- package/dist/atlas/sources.d.ts +2 -2
- package/dist/atlas/sources.js +1 -2
- package/dist/{atlas-pack-BUadroKy.d.ts → atlas-pack-Dxl3kwT2.d.ts} +1 -1
- package/dist/{biomes-BGOF6gRM.js → biomes-DTmzQfnL.js} +1 -1
- package/dist/{biomes-CnnhDCnk.d.ts → biomes-_HZ93QNR.d.ts} +1 -1
- package/dist/{blend-mJAeQB3C.d.ts → blend-DnogOnaU.d.ts} +1 -1
- package/dist/{block-behaviour-B5lD0RfG.d.ts → block-behaviour-D6NwU9bV.d.ts} +6 -6
- package/dist/{block-entities-C807EY2I.js → block-entities-Dp3rMxWq.js} +1 -1
- package/dist/{block-overrides-BhuJIxKC.js → block-overrides-DMzzzeq_.js} +1 -1
- package/dist/blocks/atlas-pack.d.ts +1 -1
- package/dist/blocks/atlas-pack.js +1 -2
- package/dist/blocks/biomes.d.ts +1 -1
- package/dist/blocks/biomes.js +1 -2
- package/dist/blocks/block-behaviour.d.ts +1 -1
- package/dist/blocks/block-behaviour.js +1 -2
- package/dist/blocks/block-entities.d.ts +12 -13
- package/dist/blocks/block-entities.js +1 -2
- package/dist/blocks/block-overrides.d.ts +7 -8
- package/dist/blocks/block-overrides.js +1 -2
- package/dist/blocks/blockstate-eval.js +1 -2
- package/dist/blocks/cli.d.ts +2 -3
- package/dist/blocks/cli.js +1 -2
- package/dist/blocks/datapack.d.ts +1 -1
- package/dist/blocks/datapack.js +1 -2
- package/dist/blocks/ender-storage.d.ts +4 -5
- package/dist/blocks/ender-storage.js +1 -2
- package/dist/blocks/entities.d.ts +8 -9
- package/dist/blocks/entities.js +1 -2
- package/dist/blocks/entity-geo.d.ts +4 -5
- package/dist/blocks/entity-geo.js +1 -2
- package/dist/blocks/entity-models.d.ts +8 -9
- package/dist/blocks/entity-models.js +1 -2
- package/dist/blocks/entity-sizes.d.ts +4 -4
- package/dist/blocks/entity-sizes.js +1 -2
- package/dist/blocks/export.d.ts +1 -1
- package/dist/blocks/export.js +1 -2
- package/dist/blocks/game-rules.js +1 -2
- package/dist/blocks/geo-blocks.d.ts +5 -6
- package/dist/blocks/geo-blocks.js +1 -2
- package/dist/blocks/item-sprites.d.ts +9 -10
- package/dist/blocks/item-sprites.js +1 -2
- package/dist/blocks/light-bytecode.d.ts +1 -1
- package/dist/blocks/light-bytecode.js +1 -2
- package/dist/blocks/light-eval.d.ts +1 -1
- package/dist/blocks/light-eval.js +1 -2
- package/dist/blocks/light.d.ts +8 -9
- package/dist/blocks/light.js +1 -2
- package/dist/blocks/names.d.ts +1 -1
- package/dist/blocks/names.js +1 -2
- package/dist/blocks/obj-mesh.d.ts +1 -1
- package/dist/blocks/obj-mesh.js +1 -2
- package/dist/blocks/pack-format.d.ts +1 -1
- package/dist/blocks/pack-format.js +1 -2
- package/dist/blocks/sprite-sheet.d.ts +11 -12
- package/dist/blocks/sprite-sheet.js +1 -2
- package/dist/blocks/states.js +1 -2
- package/dist/blocks/tints.d.ts +1 -1
- package/dist/blocks/tints.js +1 -2
- package/dist/{blockstate-DVb8Mhxc.js → blockstate-D5FgI-Qv.js} +3 -4
- package/dist/{blockstate-eval-CcgxVdKb.js → blockstate-eval-Cu-9TWH0.js} +1 -2
- package/dist/builtin.d.ts +5 -6
- package/dist/builtin.js +1 -2
- package/dist/{classfile-BJSs3JH0.js → classfile-YGjbyMPk.js} +3 -4
- package/dist/{cli-BUQzP6YF.js → cli-CeEAmdX9.js} +5 -5
- package/dist/cli.js +8 -8
- package/dist/{datapack-D6eH46ay.js → datapack-BZpO7nv-.js} +8 -9
- package/dist/{datapack-CmEg0Vko.d.ts → datapack-DhBAuxw5.d.ts} +1 -1
- package/dist/{definition-ColsvWrH.js → definition-Dab22cHd.js} +1 -1
- package/dist/{descriptor-Dz2cR-BH.js → descriptor-CJLtRmBc.js} +3 -3
- package/dist/{discovery-DWe_kX8W.d.ts → discovery-2Qk3x25z.d.ts} +1 -1
- package/dist/{discovery-CD0QqxSF.js → discovery-CMHJfdHQ.js} +13 -15
- package/dist/dynamic/generators.d.ts +1 -1
- package/dist/dynamic/generators.js +1 -2
- package/dist/{encode-TzYXOEId.js → encode-BIAWeZy2.js} +2 -3
- package/dist/{encode-BNEYHHR0.d.ts → encode-DZSVif8a.d.ts} +1 -1
- package/dist/{ender-storage-CKDiYgYc.js → ender-storage-COyXL-I4.js} +1 -1
- package/dist/entities/classfile.js +1 -2
- package/dist/entities/geo-model.d.ts +3 -4
- package/dist/entities/geo-model.js +1 -2
- package/dist/entities/inherit.d.ts +4 -5
- package/dist/entities/inherit.js +1 -2
- package/dist/entities/jar-classes.js +1 -2
- package/dist/entities/link.d.ts +9 -10
- package/dist/entities/link.js +1 -2
- package/dist/entities/mappings.js +1 -2
- package/dist/entities/merge.d.ts +7 -8
- package/dist/entities/merge.js +1 -2
- package/dist/entities/model-bytecode.d.ts +5 -6
- package/dist/entities/model-bytecode.js +1 -2
- package/dist/entities/model-code.js +1 -2
- package/dist/{entities-rQ4TZjEo.js → entities-4UMp3qXG.js} +4 -5
- package/dist/{entity-fallback-BEzCbJq0.js → entity-fallback-ZfurtmEQ.js} +9 -11
- package/dist/{entity-geo-DcrcN8TE.js → entity-geo-vJTSO0bB.js} +2 -2
- package/dist/{entity-models-D6AMLAy6.js → entity-models-CleLnlV4.js} +9 -10
- package/dist/{entity-sizes-Dmr4w0vu.js → entity-sizes-CC6-7DBz.js} +1 -1
- package/dist/{entity-textures-DG6NUNyp.js → entity-textures-BS5dI5dz.js} +15 -19
- package/dist/{export-CnKiSTiu.d.ts → export-BL_3VVZI.d.ts} +1 -1
- package/dist/{export-DE1V-ElS.js → export-BPH-b4LT.js} +25 -27
- package/dist/{face-uWXECGNr.d.ts → face-BOsq7v9f.d.ts} +4 -4
- package/dist/{face-D6SfTISC.js → face-DtbBpvbY.js} +2 -2
- package/dist/{game-rules-Dehe210A.js → game-rules-DrYU_6hd.js} +14 -16
- package/dist/{generators-D6giKoab.js → generators-7b5w6s0L.js} +1 -1
- package/dist/{generators-hu_vk10m.d.ts → generators-P1goUyvI.d.ts} +1 -1
- package/dist/{geo-BOYYFFQn.js → geo-CZHkm59F.js} +10 -12
- package/dist/{geo-DsWwuC5o.d.ts → geo-Ci_PGkFI.d.ts} +5 -5
- package/dist/{geo-blocks-BQqFfAQT.js → geo-blocks-BYSBc8uq.js} +1 -1
- package/dist/{geometry-bUDBhncX.js → geometry-BGTvfmbS.js} +1 -2
- package/dist/{geometry--UzHu1Vh.d.ts → geometry-Btiz31vH.d.ts} +1 -1
- package/dist/index.d.ts +21 -21
- package/dist/index.js +19 -19
- package/dist/{inherit-DJ45bOB_.js → inherit-LSSIV8N2.js} +2 -2
- package/dist/{item-sprites-CwiEBEAJ.js → item-sprites-Cip695Kk.js} +3 -3
- package/dist/{item-styles-BAeneY1R.js → item-styles-D-7N6j1i.js} +1 -1
- package/dist/items/blockstate.d.ts +5 -6
- package/dist/items/blockstate.js +1 -2
- package/dist/items/definition.js +1 -2
- package/dist/items/discovery.d.ts +1 -1
- package/dist/items/discovery.js +1 -2
- package/dist/{jar-DvofBm71.js → jar-Df0Xhw7X.js} +1 -1
- package/dist/{jar-4Jg7ufWK.d.ts → jar-IHoEeMdV.d.ts} +1 -1
- package/dist/{jar-classes-0wqWbTax.js → jar-classes-C5P3F18e.js} +1 -1
- package/dist/{legacy-reshape-CcdstKyI.js → legacy-reshape-ClEZFEVT.js} +6 -8
- package/dist/{light-c7l13kka.js → light-Bj0iD-ok.js} +19 -23
- package/dist/{light-bytecode-CQzTG8DJ.js → light-bytecode-B4_sP6ri.js} +3 -3
- package/dist/{light-eval-BuwUW4Tj.d.ts → light-eval-DJA58Kdg.d.ts} +1 -1
- package/dist/{lighting-3FGRC3Af.d.ts → lighting-DYkS-NlV.d.ts} +2 -2
- package/dist/{lighting--5myudVu.js → lighting-f_oZTiOx.js} +2 -2
- package/dist/{link-IDjVJ2Ij.js → link-CxzBRqeB.js} +4 -5
- package/dist/{loader-qOH0Jynq.js → loader-Ckhy0t8m.js} +3 -4
- package/dist/{loader-C4gsX_wO.d.ts → loader-CrPTL0zk.d.ts} +1 -1
- package/dist/{loader-BYyPIs9f.d.ts → loader-mGAKSRp6.d.ts} +2 -2
- package/dist/{manager-D6zXmFrO.js → manager-B1VPl4UQ.js} +4 -5
- package/dist/{manager-Ct0dEOMg.d.ts → manager-Ey26G_3e.d.ts} +1 -1
- package/dist/{model-bytecode-CXYAZ5dX.js → model-bytecode-Cp4LGfjI.js} +5 -6
- package/dist/{model-code-C5Au_FKU.js → model-code-B11iaTy1.js} +1 -1
- package/dist/models/loader.d.ts +1 -1
- package/dist/models/loader.js +1 -2
- package/dist/models/types.d.ts +1 -1
- package/dist/{models-BsYA-NZg.js → models-CvFehP26.js} +1 -1
- package/dist/mods/models.d.ts +3 -4
- package/dist/mods/models.js +1 -2
- package/dist/mods/prepare.d.ts +1 -1
- package/dist/mods/prepare.js +1 -2
- package/dist/mods/synthesize.d.ts +5 -6
- package/dist/mods/synthesize.js +1 -2
- package/dist/mods/tints.d.ts +7 -8
- package/dist/mods/tints.js +1 -2
- package/dist/{names-D1abAVIB.d.ts → names-D30ZIXkK.d.ts} +1 -1
- package/dist/{obj-NxBaySXt.js → obj-BWsU8pYz.js} +16 -18
- package/dist/{obj-mesh-BBSLG2Fv.js → obj-mesh-WShUgD4g.js} +1 -1
- package/dist/{obj-mesh-CzL0lOlJ.d.ts → obj-mesh-yN3ttPYf.d.ts} +2 -2
- package/dist/output/encode.d.ts +1 -1
- package/dist/output/encode.js +1 -2
- package/dist/output/item-styles.d.ts +3 -4
- package/dist/output/item-styles.js +1 -2
- package/dist/output/minify.js +1 -2
- package/dist/output/stylesheet.d.ts +1 -1
- package/dist/output/stylesheet.js +1 -2
- package/dist/pack.d.ts +5 -5
- package/dist/pack.js +1 -1
- package/dist/{pipeline-CCfkRth7.js → pipeline-DV4hIRMp.js} +12 -12
- package/dist/{pipeline-DuPF3sap.d.ts → pipeline-DmLQ49DB.d.ts} +4 -4
- package/dist/{pool-CKGp1qup.js → pool-Co7kPWwN.js} +1 -1
- package/dist/{prepare-DkJkZXuQ.js → prepare-BC5PYUmn.js} +7 -8
- package/dist/{prepare-Ce5SpR7Y.d.ts → prepare-BpwBH_m9.d.ts} +1 -1
- package/dist/{prepare-BPzsZI_S.d.ts → prepare-CZu44oTS.d.ts} +1 -1
- package/dist/{prepare-sj36BP90.js → prepare-DJnJQYtn.js} +9 -10
- package/dist/{rasterizer-M9Y7mn-W.js → rasterizer-B3tOyG4B.js} +5 -6
- package/dist/{rasterizer-DjnurUgD.d.ts → rasterizer-UBaTPhH4.d.ts} +1 -1
- package/dist/{registry-DafxsAhG.js → registry-CNFi94eo.js} +5 -7
- package/dist/render/blend.d.ts +1 -1
- package/dist/render/blend.js +1 -2
- package/dist/render/compose.d.ts +4 -5
- package/dist/render/compose.js +1 -2
- package/dist/render/entity-fallback.d.ts +12 -13
- package/dist/render/entity-fallback.js +1 -2
- package/dist/render/face.d.ts +1 -1
- package/dist/render/face.js +1 -2
- package/dist/render/fluid-bucket.d.ts +4 -5
- package/dist/render/fluid-bucket.js +1 -2
- package/dist/render/geo.d.ts +1 -1
- package/dist/render/geo.js +1 -2
- package/dist/render/geometry.d.ts +1 -1
- package/dist/render/geometry.js +1 -2
- package/dist/render/legacy-tints.d.ts +4 -5
- package/dist/render/legacy-tints.js +1 -2
- package/dist/render/lighting.d.ts +1 -1
- package/dist/render/lighting.js +1 -2
- package/dist/render/obj.d.ts +10 -10
- package/dist/render/obj.js +1 -2
- package/dist/render/pipeline.d.ts +1 -1
- package/dist/render/pipeline.js +1 -2
- package/dist/render/rasterizer.d.ts +1 -1
- package/dist/render/rasterizer.js +1 -2
- package/dist/render/renderer.d.ts +1 -1
- package/dist/render/renderer.js +1 -2
- package/dist/render/tints.d.ts +1 -1
- package/dist/render/tints.js +1 -2
- package/dist/render/vector.js +1 -2
- package/dist/{renderer-QgROYvPv.d.ts → renderer-DZSDiXL0.d.ts} +6 -6
- package/dist/resources/cache.d.ts +2 -3
- package/dist/resources/cache.js +1 -2
- package/dist/resources/cached.d.ts +3 -4
- package/dist/resources/cached.js +1 -2
- package/dist/resources/descriptor.d.ts +1 -1
- package/dist/resources/descriptor.js +1 -2
- package/dist/resources/entity-textures.d.ts +19 -20
- package/dist/resources/entity-textures.js +1 -2
- package/dist/resources/jar.d.ts +1 -1
- package/dist/resources/jar.js +1 -2
- package/dist/resources/locator.js +1 -2
- package/dist/resources/manager.d.ts +1 -1
- package/dist/resources/manager.js +1 -2
- package/dist/resources/read-ahead.d.ts +2 -3
- package/dist/resources/read-ahead.js +1 -2
- package/dist/resources/synthetic.d.ts +1 -1
- package/dist/resources/synthetic.js +1 -2
- package/dist/resources/zip-reader.d.ts +2 -3
- package/dist/resources/zip-reader.js +1 -2
- package/dist/{run-Bf5TLTJw.js → run-5Rc8hTHT.js} +15 -11
- package/dist/{run-CxB1qabg.d.ts → run-CfvR5OAR.d.ts} +3 -3
- package/dist/run.d.ts +1 -1
- package/dist/run.js +2 -2
- package/dist/{sources-DYY5Qu-t.js → sources-BsEa9YPc.js} +1 -1
- package/dist/{sources-sFtealLJ.d.ts → sources-ByuTQR_o.d.ts} +7 -3
- package/dist/{sprite-sheet-BWsLl0Vd.js → sprite-sheet-BQsUioOJ.js} +6 -7
- package/dist/{stylesheet-C61VrCAV.js → stylesheet-Cin7eCyU.js} +6 -7
- package/dist/{stylesheet-DxHkk4qA.d.ts → stylesheet-XJ-kH6kk.d.ts} +1 -1
- package/dist/{synthesize-jTjVjPAt.js → synthesize-DNvUwWhZ.js} +3 -4
- package/dist/{synthetic-CWtFtAkR.d.ts → synthetic-C8_0G5iP.d.ts} +1 -1
- package/dist/{synthetic-rc9BPT4P.js → synthetic-y9Mr-wB2.js} +0 -0
- package/dist/textures/loader.d.ts +1 -1
- package/dist/textures/loader.js +1 -2
- package/dist/textures/overlay.d.ts +3 -4
- package/dist/textures/overlay.js +1 -2
- package/dist/{tints-B0a1K11c.d.ts → tints-BNS9JGf7.d.ts} +2 -2
- package/dist/{tints-DwFmEkf3.d.ts → tints-CvHlfvDC.d.ts} +2 -2
- package/dist/{tints-B3WQcPtx.js → tints-Cw5okshA.js} +1 -1
- package/dist/{tints-CZeyKzMv.js → tints-DhSA5SCg.js} +3 -3
- package/dist/{types-qlp3I8_-.d.ts → types-BQQzfHEY.d.ts} +4 -0
- package/dist/versions/download.d.ts +2 -3
- package/dist/versions/download.js +1 -2
- package/dist/versions/legacy-reshape.d.ts +3 -4
- package/dist/versions/legacy-reshape.js +1 -2
- package/dist/versions/prepare.d.ts +1 -1
- package/dist/versions/prepare.js +1 -2
- package/dist/workers/pool.d.ts +6 -7
- package/dist/workers/pool.js +1 -2
- package/dist/workers/render-worker.d.ts +6 -7
- package/dist/workers/render-worker.js +2 -2
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ Or use an extracted asset tree directly:
|
|
|
44
44
|
rendermite --assets ./my-resource-pack --output ./icons
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
Useful flags: `--size <px>` (default 64), `--format webp|avif`, `--gif` for legacy-browser animation, `--lighting-profile modern|legacy`, `--
|
|
47
|
+
Useful flags: `--size <px>` (default 64), `--format webp|avif`, `--gif` for legacy-browser animation, `--lighting-profile modern|legacy`, `--workers <n>`. Run `rendermite --help` for the full list, and `rendermite blocks --help` for block packs.
|
|
48
48
|
|
|
49
49
|
### Output layout
|
|
50
50
|
|
|
@@ -99,10 +99,17 @@ Mods are first-class. Forge/NeoForge **OBJ geometry** exports as triangle meshes
|
|
|
99
99
|
Everything the CLI does is exported, from the high-level `run()` and `exportBlockPack()` down to individual pieces (`ModelLoader`, `TextureLoader`, `renderModel`, `prepareVersionResources`, `prepareModResources`, `generateStylesheet`, `evaluateBlockState`, `packAtlas`).
|
|
100
100
|
|
|
101
101
|
```ts
|
|
102
|
-
import {
|
|
102
|
+
import { prepareVersionResources, run } from '@nodecraft/rendermite';
|
|
103
|
+
|
|
104
|
+
const resources = await prepareVersionResources({ version: '1.21.8', jar: './1.21.8-client.jar' });
|
|
105
|
+
const result = await run({ resources, output: './icons', itemList: true });
|
|
106
|
+
|
|
107
|
+
console.log(`${result.rendered.length} rendered, ${result.failed.length} failed`);
|
|
103
108
|
```
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
The CLI also picks the era-appropriate builtin pack (chests, banners, heads) and donor jars for old versions, so it is the easiest starting point; [`src/cli.ts`](src/cli.ts) shows how it wires the pieces together.
|
|
111
|
+
|
|
112
|
+
Reading a published block pack needs none of that toolchain, so it has its own entry with no `sharp`,
|
|
106
113
|
no `node:` builtin, 13 KB bundled:
|
|
107
114
|
|
|
108
115
|
```ts
|
|
@@ -112,26 +119,55 @@ import type { BlockPackModel } from '@nodecraft/rendermite/pack';
|
|
|
112
119
|
|
|
113
120
|
## Performance
|
|
114
121
|
|
|
115
|
-
|
|
122
|
+
Compared with PHP renderchest v5.1.0 on the same machine, rendering the same extracted 1.21.8 assets at 64px (PNG + WebP):
|
|
123
|
+
|
|
124
|
+
| | wall time | items written | throughput |
|
|
125
|
+
| --- | --- | --- | --- |
|
|
126
|
+
| renderchest (docker, 8 cores) | 186s | 1,573 | ~506/min |
|
|
127
|
+
| rendermite (one Node process, 8 worker threads) | 12.1s | 2,035 | ~10,070/min |
|
|
116
128
|
|
|
117
|
-
|
|
118
|
-
| --- | --- | --- | --- | --- |
|
|
119
|
-
| renderchest (docker, 8 cores) | 186s | 1,573 | 33 | ~506/min |
|
|
120
|
-
| rendermite (one Node process, 8 worker threads) | 12.1s | 2,035 | 0 | ~10,070/min |
|
|
129
|
+
Both run with `--size 64 --format webp --fallback --item-list`, median of warm runs, measured September 2026. rendermite reports every item it could not draw in `rc-minecraft-failures.json`, and its summary counts files actually written. Run `node --run bench` for current numbers on your machine; CI runs the same suite and comments the delta on pull requests.
|
|
121
130
|
|
|
122
|
-
|
|
123
|
-
but wrote 1,573 of them; rendermite reports every item it could not draw in
|
|
124
|
-
`rc-minecraft-failures.json`. Both run with `--size 64 --format webp --fallback --item-list`,
|
|
125
|
-
median of warm runs, measured September 2026. Run `npm run bench` for current numbers on your
|
|
126
|
-
machine; CI runs the same suite and comments the delta on pull requests.
|
|
131
|
+
## Docs
|
|
127
132
|
|
|
128
|
-
|
|
133
|
+
- [DESIGN.md](DESIGN.md): architecture, version support matrix, mod support, output contract, performance notes
|
|
134
|
+
- [docs/block-pack-export.md](docs/block-pack-export.md): the block pack format, with [block light](docs/block-light.md) and [entity geometry](docs/entity-geometry.md)
|
|
135
|
+
- [docs/css-output.md](docs/css-output.md): the generated stylesheet
|
|
136
|
+
- [docs/renderchest-compat.md](docs/renderchest-compat.md) and [docs/renderchest-spec.md](docs/renderchest-spec.md): parity with renderchest
|
|
137
|
+
- [docs/mod-coverage.md](docs/mod-coverage.md): how mod coverage is measured
|
|
138
|
+
|
|
139
|
+
## Development
|
|
129
140
|
|
|
130
141
|
```sh
|
|
131
|
-
npm
|
|
142
|
+
npm ci
|
|
143
|
+
node --run lint # eslint with --fix (lint:ci for check only)
|
|
144
|
+
node --run typecheck
|
|
145
|
+
node --run build
|
|
146
|
+
node --run test
|
|
147
|
+
node --run bench # benchmarks for the working tree
|
|
148
|
+
node --run bench:against -- --base main # this tree against another ref, as CI does on PRs
|
|
132
149
|
```
|
|
133
150
|
|
|
134
|
-
The suite is
|
|
151
|
+
The test suite is self-contained. Vanilla jars download from Mojang on the first run and real mods from Modrinth, all cached under `.work/fixtures/`; synthetic mod jars are built from committed declarations in `test/fixtures/mods.ts`. Environment variables:
|
|
152
|
+
|
|
153
|
+
- `RENDERMITE_SKIP_ONLINE=1` skips the suites that download mods from Modrinth.
|
|
154
|
+
- `RENDERMITE_MODJARS=<dir>` runs an optional suite against a local directory of mod jars. Third-party jars are never committed.
|
|
155
|
+
|
|
156
|
+
The [rendermite.dev](https://rendermite.dev) landing page lives in [`website/`](website/) as a static assets Worker with its own pinned wrangler. `npm ci --ignore-scripts && node --run dev` inside it serves the page locally. Pushes to `main` that touch it deploy through `.github/workflows/website.yml`, which reads `CLOUDFLARE_API_TOKEN` and `CLOUDFLARE_ACCOUNT_ID` from the `website` GitHub environment.
|
|
157
|
+
|
|
158
|
+
The golden pixel tests compare against a local render from the renderchest v5.1.0 docker image placed in `.work/golden/1.21.8-docker/`, and skip when it is absent. The generators in `scripts/mod-models/` need a JDK (`javap`) and `unzip`; nothing else does.
|
|
159
|
+
|
|
160
|
+
## Contributing
|
|
161
|
+
|
|
162
|
+
Issues and pull requests are welcome. Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/) because [semantic-release](https://semantic-release.gitbook.io/) derives versions and the changelog from them, so use `fix:`, `feat:`, `perf:` and so on. Please run `node --run lint`, `node --run typecheck` and `node --run test` before opening a PR.
|
|
163
|
+
|
|
164
|
+
To report a security issue, see [SECURITY.md](SECURITY.md).
|
|
165
|
+
|
|
166
|
+
## Disclaimer
|
|
167
|
+
|
|
168
|
+
rendermite is not affiliated with or endorsed by Mojang Studios or Microsoft. Minecraft is a trademark of Mojang Synergies AB. Rendered icons are derived from game and mod assets that you supply or download, so you are responsible for having the rights to render and publish them.
|
|
169
|
+
|
|
170
|
+
The icons hosted on `assets.rendermite.dev` show artwork that belongs to Mojang and to the authors of each mod. Nodecraft claims no ownership of it, hosts the renders free of charge, and grants no license to them; the MIT license covers rendermite's code only. Mod authors who want their icons changed or removed can [open an issue](https://github.com/nodecraft/rendermite/issues).
|
|
135
171
|
|
|
136
172
|
## Attribution
|
|
137
173
|
|
|
@@ -18,6 +18,18 @@ node scripts/mod-models/build.ts
|
|
|
18
18
|
the texture, and which parts draw emissive or translucent — with each value citing the class
|
|
19
19
|
it came from. Regenerating after a mod update is one command; review the resulting diff.
|
|
20
20
|
|
|
21
|
+
## Provenance
|
|
22
|
+
|
|
23
|
+
Every value here is derived from the named mod's own jar: box geometry from its model classes,
|
|
24
|
+
and the `display` block copied from its item model. No textures are included; those still come
|
|
25
|
+
from the mod jar at render time. The data remains subject to each mod's license:
|
|
26
|
+
|
|
27
|
+
| namespace | mod | license |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| `mekanism` | [Mekanism](https://github.com/mekanism/Mekanism) | MIT |
|
|
30
|
+
| `botania` | [Botania](https://github.com/VazkiiMods/Botania) | Botania License, see upstream |
|
|
31
|
+
| `ad_astra` | [Ad Astra](https://github.com/terrarium-earth/Ad-Astra) | Terrarium License v1, see upstream |
|
|
32
|
+
|
|
21
33
|
## Precedence
|
|
22
34
|
|
|
23
35
|
This pack layers **above** the mod jars, so it shadows the jar's `builtin/entity` stub in
|
|
@@ -128,3 +140,15 @@ and crystal poses collapse into one; the brewery's plate heights are the excepti
|
|
|
128
140
|
`sin(i·40)` even at tick 0, exactly as in game on that tick.
|
|
129
141
|
|
|
130
142
|
All nine of Botania's `builtin/entity` items are ported.
|
|
143
|
+
|
|
144
|
+
### Ad Astra (1.20.1, Fabric)
|
|
145
|
+
|
|
146
|
+
Both vehicle `ItemRenderer`s pose identically: `Axis.ZP 180°` then `translate(0, -1.501, 0)`,
|
|
147
|
+
with no centring translate of their own. The jar is intermediary-mapped, which `extract.ts`
|
|
148
|
+
reads by rewriting the class ids. `RocketModel` holds all four tiers, so each spec names the
|
|
149
|
+
layer method to read.
|
|
150
|
+
|
|
151
|
+
| item | model class | layer method |
|
|
152
|
+
| --- | --- | --- |
|
|
153
|
+
| `tier_1_rocket` … `tier_4_rocket` | `RocketModel` | `createTier1Layer` … `createTier4Layer` |
|
|
154
|
+
| `tier_1_rover` | `RoverModel` | `createBodyLayer` |
|
package/dist/atlas/registry.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { n as ResourceLocator } from "../locator-jDbdUeTd.js";
|
|
2
|
-
import { a as ResourceManager } from "../manager-
|
|
3
|
-
import { r as Texture } from "../loader-
|
|
4
|
-
import { t as AtlasResolver } from "../sources-
|
|
2
|
+
import { a as ResourceManager } from "../manager-Ey26G_3e.js";
|
|
3
|
+
import { r as Texture } from "../loader-CrPTL0zk.js";
|
|
4
|
+
import { t as AtlasResolver } from "../sources-ByuTQR_o.js";
|
|
5
5
|
//#region src/atlas/registry.d.ts
|
|
6
|
-
declare function loadAtlasResolver(resources: ResourceManager, loadTexture: (locator: ResourceLocator) => Promise<Texture | null>, onWarning?: (message: string) => void): Promise<AtlasResolver>;
|
|
7
|
-
//#endregion
|
|
8
|
-
export { loadAtlasResolver };
|
|
6
|
+
export declare function loadAtlasResolver(resources: ResourceManager, loadTexture: (locator: ResourceLocator) => Promise<Texture | null>, onWarning?: (message: string) => void): Promise<AtlasResolver>;
|
|
7
|
+
//#endregion
|
package/dist/atlas/registry.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { loadAtlasResolver };
|
|
1
|
+
export { t as loadAtlasResolver } from "../registry-CNFi94eo.js";
|
package/dist/atlas/sources.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
export { AtlasResolver, AtlasSource, AtlasSourceError, DirectoryAtlasSource, HasTexture, PalettedPermutationsSource, ResolvedSprite, SingleAtlasSource, UnstitchAtlasSource, createAtlasResolver, parseAtlasSources };
|
|
1
|
+
import { a as DirectoryAtlasSource, c as ResolvedSprite, d as createAtlasResolver, f as parseAtlasSources, i as AtlasSourceError, l as SingleAtlasSource, n as AtlasSource, o as HasTexture, r as AtlasSourceEntry, s as PalettedPermutationsSource, t as AtlasResolver, u as UnstitchAtlasSource } from "../sources-ByuTQR_o.js";
|
|
2
|
+
export { AtlasResolver, AtlasSource, AtlasSourceEntry, AtlasSourceError, DirectoryAtlasSource, HasTexture, PalettedPermutationsSource, ResolvedSprite, SingleAtlasSource, UnstitchAtlasSource, createAtlasResolver, parseAtlasSources };
|
package/dist/atlas/sources.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { AtlasSourceError, DirectoryAtlasSource, PalettedPermutationsSource, SingleAtlasSource, UnstitchAtlasSource, createAtlasResolver, parseAtlasSources };
|
|
1
|
+
export { t as AtlasSourceError, n as DirectoryAtlasSource, r as PalettedPermutationsSource, i as SingleAtlasSource, a as UnstitchAtlasSource, o as createAtlasResolver, s as parseAtlasSources } from "../sources-BsEa9YPc.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as ResourceManager } from "./manager-
|
|
1
|
+
import { a as ResourceManager } from "./manager-Ey26G_3e.js";
|
|
2
2
|
//#region src/blocks/biomes.d.ts
|
|
3
3
|
/** Where a biome's colours come from. Colours are `#rrggbb`, as everywhere else in the pack. */
|
|
4
4
|
interface BiomeClimate {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { n as BiomeClimatePack } from "./biomes-
|
|
1
|
+
import { n as BiomeClimatePack } from "./biomes-_HZ93QNR.js";
|
|
2
2
|
import { a as BlockStateMultipartCase, o as BlockStateVariantCase } from "./blockstate-eval-C-ZSx78w.js";
|
|
3
|
-
import { r as TagPack, t as AdvancementPack } from "./datapack-
|
|
3
|
+
import { r as TagPack, t as AdvancementPack } from "./datapack-DhBAuxw5.js";
|
|
4
4
|
import { n as GameRulePack } from "./game-rules-ThvdDG3B.js";
|
|
5
|
-
import { t as NamePack } from "./names-
|
|
6
|
-
import { a as FaceDirectionName, l as Vec3, o as ModelElementJson, u as Vec4 } from "./types-
|
|
7
|
-
import { t as MeshGroup } from "./obj-mesh-
|
|
5
|
+
import { t as NamePack } from "./names-D30ZIXkK.js";
|
|
6
|
+
import { a as FaceDirectionName, l as Vec3, o as ModelElementJson, u as Vec4 } from "./types-BQQzfHEY.js";
|
|
7
|
+
import { t as MeshGroup } from "./obj-mesh-yN3ttPYf.js";
|
|
8
8
|
import { n as BlockStatesPack } from "./states-OzneeCTU.js";
|
|
9
|
-
import { n as BlockTintPack } from "./tints-
|
|
9
|
+
import { n as BlockTintPack } from "./tints-CvHlfvDC.js";
|
|
10
10
|
import { t as ClassFile } from "./classfile-Dzn0gW9M.js";
|
|
11
11
|
//#region src/blocks/pack-format.d.ts
|
|
12
12
|
/** How a sprite's alpha classifies it, inferred because assets rarely say. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as ResourceLocator } from "./locator-COMEtEn9.js";
|
|
2
2
|
import { t as overlaySheets } from "./overlay-BdHHd5WR.js";
|
|
3
|
-
import { c as findEntityTexture, d as findMobTexture, l as findFluidSibling, m as resolveChestSheets, n as HEAD_LAYOUTS, o as findBedTexture, p as layerAccentSheet, t as DYE_COLORS, u as findFluidStill } from "./entity-textures-
|
|
3
|
+
import { c as findEntityTexture, d as findMobTexture, l as findFluidSibling, m as resolveChestSheets, n as HEAD_LAYOUTS, o as findBedTexture, p as layerAccentSheet, t as DYE_COLORS, u as findFluidStill } from "./entity-textures-BS5dI5dz.js";
|
|
4
4
|
//#region src/blocks/block-entities.ts
|
|
5
5
|
/**
|
|
6
6
|
* Geometry for blocks the game draws from Java rather than from a model.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as instructions } from "./entity-sizes-
|
|
1
|
+
import { n as instructions } from "./entity-sizes-CC6-7DBz.js";
|
|
2
2
|
//#region src/blocks/block-overrides.ts
|
|
3
3
|
/**
|
|
4
4
|
* Where a block's own class answers a question itself, rather than leaving it to its `Properties`.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as PackedRect, i as PackedPage, n as PackOptions, o as packAtlas, r as PackedAtlas, t as PackEntry } from "../atlas-pack-
|
|
1
|
+
import { a as PackedRect, i as PackedPage, n as PackOptions, o as packAtlas, r as PackedAtlas, t as PackEntry } from "../atlas-pack-Dxl3kwT2.js";
|
|
2
2
|
export { PackEntry, PackOptions, PackedAtlas, PackedPage, PackedRect, packAtlas };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { packAtlas };
|
|
1
|
+
export { t as packAtlas } from "../atlas-pack-CoOih7By.js";
|
package/dist/blocks/biomes.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as LegacyBiome, c as buildBiomeClimates, i as LEGACY_BIOMES, l as parseBiomeClimate, n as BiomeClimatePack, o as PRE_JAR_BIOMES, r as DEFAULT_WATER_COLOR, s as VANILLA_BIOME_CLIMATES, t as BiomeClimate, u as vanillaBiomesFor } from "../biomes-
|
|
1
|
+
import { a as LegacyBiome, c as buildBiomeClimates, i as LEGACY_BIOMES, l as parseBiomeClimate, n as BiomeClimatePack, o as PRE_JAR_BIOMES, r as DEFAULT_WATER_COLOR, s as VANILLA_BIOME_CLIMATES, t as BiomeClimate, u as vanillaBiomesFor } from "../biomes-_HZ93QNR.js";
|
|
2
2
|
export { BiomeClimate, BiomeClimatePack, DEFAULT_WATER_COLOR, LEGACY_BIOMES, LegacyBiome, PRE_JAR_BIOMES, VANILLA_BIOME_CLIMATES, buildBiomeClimates, parseBiomeClimate, vanillaBiomesFor };
|
package/dist/blocks/biomes.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { DEFAULT_WATER_COLOR, LEGACY_BIOMES, PRE_JAR_BIOMES, VANILLA_BIOME_CLIMATES, buildBiomeClimates, parseBiomeClimate, vanillaBiomesFor };
|
|
1
|
+
export { t as DEFAULT_WATER_COLOR, n as LEGACY_BIOMES, r as PRE_JAR_BIOMES, i as VANILLA_BIOME_CLIMATES, a as buildBiomeClimates, o as parseBiomeClimate, s as vanillaBiomesFor } from "../biomes-DTmzQfnL.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as statedMapColor, n as PushReactionName, r as blockBehaviour, t as BlockBehaviour } from "../block-behaviour-
|
|
1
|
+
import { i as statedMapColor, n as PushReactionName, r as blockBehaviour, t as BlockBehaviour } from "../block-behaviour-D6NwU9bV.js";
|
|
2
2
|
export { BlockBehaviour, PushReactionName, blockBehaviour, statedMapColor };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { blockBehaviour, statedMapColor };
|
|
1
|
+
export { t as blockBehaviour, n as statedMapColor } from "../block-behaviour-DVjqeSkv.js";
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { i as TextureLoader } from "../loader-
|
|
3
|
-
import { t as ModelLoader } from "../loader-
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ey26G_3e.js";
|
|
2
|
+
import { i as TextureLoader } from "../loader-CrPTL0zk.js";
|
|
3
|
+
import { t as ModelLoader } from "../loader-mGAKSRp6.js";
|
|
4
4
|
//#region src/blocks/block-entities.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* What the table is allowed to look at. The vanilla families are a lookup, but
|
|
7
7
|
* a mod's chest or mob head is only findable by searching its own assets, so
|
|
8
8
|
* the table needs the pack in hand rather than just the block's name.
|
|
9
9
|
*/
|
|
10
|
-
interface GeometryContext {
|
|
10
|
+
export interface GeometryContext {
|
|
11
11
|
resources: ResourceManager;
|
|
12
12
|
textures: TextureLoader;
|
|
13
13
|
models: ModelLoader;
|
|
14
14
|
}
|
|
15
15
|
/** How a block's own properties turn into a rotation of the vendored model. */
|
|
16
|
-
type Orientation =
|
|
16
|
+
export type Orientation =
|
|
17
17
|
/** One shape, no property to read. */
|
|
18
18
|
{
|
|
19
19
|
kind: 'fixed';
|
|
@@ -34,7 +34,7 @@ type Orientation =
|
|
|
34
34
|
{
|
|
35
35
|
kind: 'rotation16';
|
|
36
36
|
};
|
|
37
|
-
interface BlockEntityShape {
|
|
37
|
+
export interface BlockEntityShape {
|
|
38
38
|
/** Vendored model drawn in place of the empty one. */
|
|
39
39
|
model: string;
|
|
40
40
|
/**
|
|
@@ -51,7 +51,7 @@ interface BlockEntityShape {
|
|
|
51
51
|
*/
|
|
52
52
|
translate?: [number, number, number];
|
|
53
53
|
}
|
|
54
|
-
interface BlockEntityGeometry {
|
|
54
|
+
export interface BlockEntityGeometry {
|
|
55
55
|
/** Usually one; more where a property picks between shapes. */
|
|
56
56
|
shapes: BlockEntityShape[];
|
|
57
57
|
/** Texture variables to bind where the vendored model leaves them open. */
|
|
@@ -72,8 +72,8 @@ interface BlockEntityGeometry {
|
|
|
72
72
|
* that came out empty by accident, so a consumer can tell a deliberate hole
|
|
73
73
|
* from a gap in this exporter.
|
|
74
74
|
*/
|
|
75
|
-
declare const INVISIBLE_BLOCKS: Record<string, string>;
|
|
76
|
-
interface SynthesizedVariant {
|
|
75
|
+
export declare const INVISIBLE_BLOCKS: Record<string, string>;
|
|
76
|
+
export interface SynthesizedVariant {
|
|
77
77
|
when: Record<string, string>;
|
|
78
78
|
x: number;
|
|
79
79
|
y: number;
|
|
@@ -83,11 +83,10 @@ interface SynthesizedVariant {
|
|
|
83
83
|
* block can be placed in, so a consumer holding the real property map from the
|
|
84
84
|
* chunk finds the case the game would have used.
|
|
85
85
|
*/
|
|
86
|
-
declare function synthesizeVariants(orient: Orientation): SynthesizedVariant[];
|
|
86
|
+
export declare function synthesizeVariants(orient: Orientation): SynthesizedVariant[];
|
|
87
87
|
/**
|
|
88
88
|
* The vendored geometry for a block the game draws in code, or null when there
|
|
89
89
|
* is none and the block stays empty.
|
|
90
90
|
*/
|
|
91
|
-
declare function blockEntityGeometry(blockId: string, context: GeometryContext): Promise<BlockEntityGeometry | null>;
|
|
92
|
-
//#endregion
|
|
93
|
-
export { BlockEntityGeometry, BlockEntityShape, GeometryContext, INVISIBLE_BLOCKS, Orientation, SynthesizedVariant, blockEntityGeometry, synthesizeVariants };
|
|
91
|
+
export declare function blockEntityGeometry(blockId: string, context: GeometryContext): Promise<BlockEntityGeometry | null>;
|
|
92
|
+
//#endregion
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { INVISIBLE_BLOCKS, blockEntityGeometry, synthesizeVariants };
|
|
1
|
+
export { t as INVISIBLE_BLOCKS, n as blockEntityGeometry, r as synthesizeVariants } from "../block-entities-Dp3rMxWq.js";
|
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import { d as MemberReference } from "../block-behaviour-
|
|
1
|
+
import { d as MemberReference } from "../block-behaviour-D6NwU9bV.js";
|
|
2
2
|
import { t as ClassFile } from "../classfile-Dzn0gW9M.js";
|
|
3
3
|
//#region src/blocks/block-overrides.d.ts
|
|
4
|
-
interface OverrideSource {
|
|
4
|
+
export interface OverrideSource {
|
|
5
5
|
resolve: (internalName: string) => ClassFile | null;
|
|
6
6
|
/** A member's original name, for a jar that spells the game's own obfuscated. */
|
|
7
7
|
nameOf: (reference: MemberReference, field: boolean) => string;
|
|
8
8
|
}
|
|
9
9
|
/** The nearest override of one of `names` above `blockType`, or null where only the base declares it. */
|
|
10
|
-
declare function overrideOf(source: OverrideSource, blockType: string, names: readonly string[]): MemberReference | null;
|
|
10
|
+
export declare function overrideOf(source: OverrideSource, blockType: string, names: readonly string[]): MemberReference | null;
|
|
11
11
|
/**
|
|
12
12
|
* The constants an override reads, by original name, and whether it reads a block property: enough to
|
|
13
13
|
* answer from its code without running it. Kelp's `getFluidState` reads `Fluids.WATER` and nothing
|
|
14
14
|
* else; a barrier's `getRenderShape` reads `RenderShape.INVISIBLE`. One that reads a property
|
|
15
15
|
* (`waterlogged`) answers per state, which the state already says.
|
|
16
16
|
*/
|
|
17
|
-
declare function constantsReadBy(source: OverrideSource, method: MemberReference): {
|
|
17
|
+
export declare function constantsReadBy(source: OverrideSource, method: MemberReference): {
|
|
18
18
|
statics: Set<string>;
|
|
19
19
|
readsState: boolean;
|
|
20
20
|
} | null;
|
|
21
21
|
/** The fluid an override of `getFluidState` holds in every state, or null where it depends on one. */
|
|
22
|
-
declare function constantFluidOf(source: OverrideSource, method: MemberReference): 'water' | 'lava' | null;
|
|
22
|
+
export declare function constantFluidOf(source: OverrideSource, method: MemberReference): 'water' | 'lava' | null;
|
|
23
23
|
/** Whether an override of `getRenderShape` always answers `INVISIBLE`, as a barrier's and a light block's do. */
|
|
24
|
-
declare function alwaysInvisible(source: OverrideSource, method: MemberReference): boolean;
|
|
25
|
-
//#endregion
|
|
26
|
-
export { OverrideSource, alwaysInvisible, constantFluidOf, constantsReadBy, overrideOf };
|
|
24
|
+
export declare function alwaysInvisible(source: OverrideSource, method: MemberReference): boolean;
|
|
25
|
+
//#endregion
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { alwaysInvisible, constantFluidOf, constantsReadBy, overrideOf };
|
|
1
|
+
export { t as alwaysInvisible, n as constantFluidOf, r as constantsReadBy, i as overrideOf } from "../block-overrides-DMzzzeq_.js";
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { BlockStateError, collectModels, evaluateBlockState, matchesCondition, parseBlockState, weightedVariantIndex };
|
|
1
|
+
export { t as BlockStateError, n as collectModels, r as evaluateBlockState, i as matchesCondition, a as parseBlockState, o as weightedVariantIndex } from "../blockstate-eval-Cu-9TWH0.js";
|
package/dist/blocks/cli.d.ts
CHANGED
|
@@ -4,6 +4,5 @@
|
|
|
4
4
|
* handling (download a version's jar, or read asset folders, plus mod jars) but
|
|
5
5
|
* emitting geometry and an atlas instead of icons.
|
|
6
6
|
*/
|
|
7
|
-
declare function runBlocksCli(argv: string[]): Promise<number>;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { runBlocksCli };
|
|
7
|
+
export declare function runBlocksCli(argv: string[]): Promise<number>;
|
|
8
|
+
//#endregion
|
package/dist/blocks/cli.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { runBlocksCli };
|
|
1
|
+
export { t as runBlocksCli } from "../cli-CeEAmdX9.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as collectDatapack, n as DatapackResult, r as TagPack, t as AdvancementPack } from "../datapack-
|
|
1
|
+
import { i as collectDatapack, n as DatapackResult, r as TagPack, t as AdvancementPack } from "../datapack-DhBAuxw5.js";
|
|
2
2
|
export { AdvancementPack, DatapackResult, TagPack, collectDatapack };
|
package/dist/blocks/datapack.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { collectDatapack };
|
|
1
|
+
export { t as collectDatapack } from "../datapack-BZpO7nv-.js";
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { P as BlockPackModel } from "../block-behaviour-
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ey26G_3e.js";
|
|
2
|
+
import { P as BlockPackModel } from "../block-behaviour-D6NwU9bV.js";
|
|
3
3
|
//#region src/blocks/ender-storage.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Ender Storage feeds this OBJ through CodeChickenLib's `swapYZ`, translates it almost exactly onto
|
|
6
6
|
* the block centre, and takes a backfaced copy so its glass/frame can be seen from either side.
|
|
7
7
|
*/
|
|
8
|
-
declare function enderStorageBlockModel(blockId: string, resources: ResourceManager): Promise<BlockPackModel | null>;
|
|
9
|
-
//#endregion
|
|
10
|
-
export { enderStorageBlockModel };
|
|
8
|
+
export declare function enderStorageBlockModel(blockId: string, resources: ResourceManager): Promise<BlockPackModel | null>;
|
|
9
|
+
//#endregion
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { enderStorageBlockModel };
|
|
1
|
+
export { t as enderStorageBlockModel } from "../ender-storage-COyXL-I4.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { i as TextureLoader } from "../loader-
|
|
3
|
-
import { q as EntityPackEntry } from "../block-behaviour-
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ey26G_3e.js";
|
|
2
|
+
import { i as TextureLoader } from "../loader-CrPTL0zk.js";
|
|
3
|
+
import { q as EntityPackEntry } from "../block-behaviour-D6NwU9bV.js";
|
|
4
4
|
//#region src/blocks/entities.d.ts
|
|
5
|
-
interface EntityPackResult {
|
|
5
|
+
export interface EntityPackResult {
|
|
6
6
|
entities: Record<string, EntityPackEntry>;
|
|
7
7
|
failures: Array<{
|
|
8
8
|
id: string;
|
|
@@ -15,16 +15,15 @@ interface EntityPackResult {
|
|
|
15
15
|
* Keys with more segments than `<prefix>.<ns>.<name>` are dropped: those are a variant's own label
|
|
16
16
|
* (`entity.minecraft.villager.farmer`) or a death message, never a type.
|
|
17
17
|
*/
|
|
18
|
-
declare function entityTypesOf(resources: ResourceManager, namespace: string): Promise<Array<{
|
|
18
|
+
export declare function entityTypesOf(resources: ResourceManager, namespace: string): Promise<Array<{
|
|
19
19
|
id: string;
|
|
20
20
|
name: string;
|
|
21
21
|
}>>;
|
|
22
|
-
interface CollectEntitiesOptions {
|
|
22
|
+
export interface CollectEntitiesOptions {
|
|
23
23
|
resources: ResourceManager;
|
|
24
24
|
textures: TextureLoader;
|
|
25
25
|
namespaces: readonly string[];
|
|
26
26
|
onProgress?: (done: number, total: number) => void;
|
|
27
27
|
}
|
|
28
|
-
declare function collectEntities(options: CollectEntitiesOptions): Promise<EntityPackResult>;
|
|
29
|
-
//#endregion
|
|
30
|
-
export { CollectEntitiesOptions, EntityPackResult, collectEntities, entityTypesOf };
|
|
28
|
+
export declare function collectEntities(options: CollectEntitiesOptions): Promise<EntityPackResult>;
|
|
29
|
+
//#endregion
|
package/dist/blocks/entities.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { collectEntities, entityTypesOf };
|
|
1
|
+
export { t as collectEntities, n as entityTypesOf } from "../entities-4UMp3qXG.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ey26G_3e.js";
|
|
2
2
|
import { r as ExtractedModel } from "../model-PnQ4gV0-.js";
|
|
3
3
|
//#region src/blocks/entity-geo.d.ts
|
|
4
|
-
interface GeoEntityModel {
|
|
4
|
+
export interface GeoEntityModel {
|
|
5
5
|
/** Model id: the resource that produced it, which is also what makes it unique in the pack. */
|
|
6
6
|
id: string;
|
|
7
7
|
model: ExtractedModel;
|
|
@@ -13,6 +13,5 @@ interface GeoEntityModel {
|
|
|
13
13
|
* `assets/occultism/geo/entity/afrit.geo.json` and its neighbours. Nothing is inferred from the
|
|
14
14
|
* *class* here: a GeckoLib mob has no model class to inspect.
|
|
15
15
|
*/
|
|
16
|
-
declare function findGeoForEntity(resources: ResourceManager, namespace: string, name: string): Promise<GeoEntityModel | null>;
|
|
17
|
-
//#endregion
|
|
18
|
-
export { GeoEntityModel, findGeoForEntity };
|
|
16
|
+
export declare function findGeoForEntity(resources: ResourceManager, namespace: string, name: string): Promise<GeoEntityModel | null>;
|
|
17
|
+
//#endregion
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { findGeoForEntity };
|
|
1
|
+
export { t as findGeoForEntity } from "../entity-geo-vJTSO0bB.js";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ey26G_3e.js";
|
|
2
2
|
import { t as ClassSource } from "../jar-classes-CSRrPAUy.js";
|
|
3
|
-
import { J as EntityPackModel, X as EquipmentPack } from "../block-behaviour-
|
|
3
|
+
import { J as EntityPackModel, X as EquipmentPack } from "../block-behaviour-D6NwU9bV.js";
|
|
4
4
|
import { t as Mappings } from "../mappings-DhOPQTgV.js";
|
|
5
5
|
import { t as ModelCode } from "../model-code-BclYt1do.js";
|
|
6
6
|
//#region src/blocks/entity-models.d.ts
|
|
7
|
-
interface EntityGeometryResult {
|
|
7
|
+
export interface EntityGeometryResult {
|
|
8
8
|
/** Model id (the class it came from) → geometry. */
|
|
9
9
|
models: Record<string, EntityPackModel>;
|
|
10
10
|
/** Entity id → model id, for the entity table to point with. */
|
|
@@ -18,7 +18,7 @@ interface EntityGeometryResult {
|
|
|
18
18
|
reason: string;
|
|
19
19
|
}>;
|
|
20
20
|
}
|
|
21
|
-
interface CollectEntityGeometryOptions {
|
|
21
|
+
export interface CollectEntityGeometryOptions {
|
|
22
22
|
version: string;
|
|
23
23
|
/** Where mappings cache; the same directory the jars do. */
|
|
24
24
|
cacheDir: string;
|
|
@@ -44,7 +44,7 @@ interface CollectEntityGeometryOptions {
|
|
|
44
44
|
* is obfuscated *and* unmapped — 1.13.x — yields nothing, with the reason recorded once rather than
|
|
45
45
|
* per entity.
|
|
46
46
|
*/
|
|
47
|
-
declare function collectEntityGeometry(options: CollectEntityGeometryOptions): Promise<EntityGeometryResult>;
|
|
47
|
+
export declare function collectEntityGeometry(options: CollectEntityGeometryOptions): Promise<EntityGeometryResult>;
|
|
48
48
|
/**
|
|
49
49
|
* Reads the authored armour-trim atlas and names every generated worn sheet.
|
|
50
50
|
*
|
|
@@ -52,7 +52,6 @@ declare function collectEntityGeometry(options: CollectEntityGeometryOptions): P
|
|
|
52
52
|
* sprite ids so the normal entity-atlas stitcher asks it for those pixels. Copies are visited from
|
|
53
53
|
* lowest to highest precedence, matching atlas source resolution when packs extend the vanilla file.
|
|
54
54
|
*/
|
|
55
|
-
declare function collectArmourTrims(resources: ResourceManager, spriteIds: Set<string>): Promise<EquipmentPack['trims']>;
|
|
56
|
-
declare function collectEquipment(names: readonly string[], mappings: Mappings, read: (internal: string) => Promise<Uint8Array | null>, code: ModelCode, resources: ResourceManager | undefined, models: Record<string, EntityPackModel>, spriteIds: Set<string>): Promise<EquipmentPack | null>;
|
|
57
|
-
//#endregion
|
|
58
|
-
export { CollectEntityGeometryOptions, EntityGeometryResult, collectArmourTrims, collectEntityGeometry, collectEquipment };
|
|
55
|
+
export declare function collectArmourTrims(resources: ResourceManager, spriteIds: Set<string>): Promise<EquipmentPack['trims']>;
|
|
56
|
+
export declare function collectEquipment(names: readonly string[], mappings: Mappings, read: (internal: string) => Promise<Uint8Array | null>, code: ModelCode, resources: ResourceManager | undefined, models: Record<string, EntityPackModel>, spriteIds: Set<string>): Promise<EquipmentPack | null>;
|
|
57
|
+
//#endregion
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { collectArmourTrims, collectEntityGeometry, collectEquipment };
|
|
1
|
+
export { t as collectArmourTrims, n as collectEntityGeometry, r as collectEquipment } from "../entity-models-CleLnlV4.js";
|
|
@@ -6,8 +6,8 @@ interface Instruction {
|
|
|
6
6
|
index: number;
|
|
7
7
|
}
|
|
8
8
|
/** Every instruction of a method, in order. */
|
|
9
|
-
declare function instructions(code: Uint8Array): Generator<Instruction>;
|
|
10
|
-
interface EntitySizeResult {
|
|
9
|
+
export declare function instructions(code: Uint8Array): Generator<Instruction>;
|
|
10
|
+
export interface EntitySizeResult {
|
|
11
11
|
/** Entity id → [width, height], in blocks. */
|
|
12
12
|
sizes: Map<string, [number, number]>;
|
|
13
13
|
failures: Array<{
|
|
@@ -15,11 +15,11 @@ interface EntitySizeResult {
|
|
|
15
15
|
reason: string;
|
|
16
16
|
}>;
|
|
17
17
|
}
|
|
18
|
-
declare function collectEntitySizes(options: {
|
|
18
|
+
export declare function collectEntitySizes(options: {
|
|
19
19
|
classes: ClassSource;
|
|
20
20
|
version: string;
|
|
21
21
|
cacheDir: string;
|
|
22
22
|
entityIds: readonly string[];
|
|
23
23
|
}): Promise<EntitySizeResult>;
|
|
24
24
|
//#endregion
|
|
25
|
-
export {
|
|
25
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { collectEntitySizes, instructions };
|
|
1
|
+
export { t as collectEntitySizes, n as instructions } from "../entity-sizes-CC6-7DBz.js";
|
package/dist/blocks/export.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as exportBlockPack, n as BlockPackResult, r as ExportBlockPackOptions, t as BlockPackFailure } from "../export-
|
|
1
|
+
import { i as exportBlockPack, n as BlockPackResult, r as ExportBlockPackOptions, t as BlockPackFailure } from "../export-BL_3VVZI.js";
|
|
2
2
|
export { BlockPackFailure, BlockPackResult, ExportBlockPackOptions, exportBlockPack };
|
package/dist/blocks/export.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { exportBlockPack };
|
|
1
|
+
export { t as exportBlockPack } from "../export-BPH-b4LT.js";
|