@nodecraft/rendermite 1.8.0 → 1.9.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 +8 -1
- package/dist/atlas/registry.d.ts +3 -3
- package/dist/atlas/sources.d.ts +1 -1
- package/dist/{atlas-pack-C56gzqAg.d.ts → atlas-pack-BUadroKy.d.ts} +1 -1
- package/dist/biomes-BGOF6gRM.js +1100 -0
- package/dist/biomes-CnnhDCnk.d.ts +59 -0
- package/dist/{blend-C5UYzink.d.ts → blend-mJAeQB3C.d.ts} +1 -1
- package/dist/{pack-format-BqWf-DNc.d.ts → block-behaviour-9Tj_GIUC.d.ts} +287 -5
- package/dist/block-behaviour-D-SG2Xfp.js +155 -0
- package/dist/blocks/atlas-pack.d.ts +1 -1
- package/dist/blocks/biomes.d.ts +2 -2
- package/dist/blocks/biomes.js +2 -2
- package/dist/blocks/block-behaviour.d.ts +2 -0
- package/dist/blocks/block-behaviour.js +2 -0
- package/dist/blocks/block-entities.d.ts +3 -3
- package/dist/blocks/cli.js +1 -1
- package/dist/blocks/datapack.d.ts +2 -0
- package/dist/blocks/datapack.js +2 -0
- package/dist/blocks/ender-storage.d.ts +2 -2
- package/dist/blocks/entities.d.ts +3 -3
- package/dist/blocks/entity-geo.d.ts +1 -1
- package/dist/blocks/entity-models.d.ts +3 -3
- package/dist/blocks/entity-models.js +1 -1
- package/dist/blocks/entity-sizes.d.ts +25 -0
- package/dist/blocks/entity-sizes.js +2 -0
- package/dist/blocks/export.d.ts +1 -1
- package/dist/blocks/export.js +1 -1
- package/dist/blocks/game-rules.d.ts +2 -0
- package/dist/blocks/game-rules.js +2 -0
- package/dist/blocks/geo-blocks.d.ts +2 -2
- package/dist/blocks/item-sprites.d.ts +4 -4
- package/dist/blocks/light-bytecode.d.ts +2 -174
- package/dist/blocks/light-bytecode.js +1 -1
- package/dist/blocks/light-eval.d.ts +1 -1
- package/dist/blocks/light.d.ts +11 -1
- package/dist/blocks/light.js +1 -1
- package/dist/blocks/obj-mesh.d.ts +1 -1
- package/dist/blocks/pack-format.d.ts +2 -2
- package/dist/blocks/sprite-sheet.d.ts +3 -3
- package/dist/blocks/states.d.ts +2 -0
- package/dist/blocks/states.js +2 -0
- package/dist/blocks/tints.d.ts +1 -1
- package/dist/{cli-Dw1Q5CPR.js → cli-xBcMuKA3.js} +10 -5
- package/dist/cli.js +7 -7
- package/dist/datapack-CmEg0Vko.d.ts +15 -0
- package/dist/datapack-D6eH46ay.js +71 -0
- package/dist/{descriptor-CmkIkDKL.js → descriptor-Dz2cR-BH.js} +2 -2
- package/dist/{discovery-Cmir3QfC.d.ts → discovery-DWe_kX8W.d.ts} +1 -1
- package/dist/dynamic/generators.d.ts +1 -1
- package/dist/{encode-Br_vPrd8.d.ts → encode-BNEYHHR0.d.ts} +1 -1
- package/dist/entities/geo-model.d.ts +1 -1
- package/dist/entities/inherit.d.ts +1 -1
- package/dist/entities/jar-classes.js +1 -1
- package/dist/entities/link.d.ts +1 -1
- package/dist/entities/mappings.d.ts +1 -1
- package/dist/entities/mappings.js +1 -1
- package/dist/entities/model-bytecode.d.ts +1 -1
- package/dist/{entity-models-BGiy3pey.js → entity-models-BYAxrTsk.js} +1 -1
- package/dist/entity-sizes-CpO1gA7p.js +194 -0
- package/dist/{export-t8X_oRws.js → export-CbG2Rx3i.js} +54 -5
- package/dist/{export-J13L9Lqu.d.ts → export-HEoqcV-Y.d.ts} +17 -2
- package/dist/{face-DqEd9G_U.d.ts → face-uWXECGNr.d.ts} +2 -2
- package/dist/game-rules-DuLlFc7o.js +104 -0
- package/dist/game-rules-ThvdDG3B.d.ts +16 -0
- package/dist/{generators-BnIzAftW.d.ts → generators-hu_vk10m.d.ts} +1 -1
- package/dist/{geo-C9QYeLVN.d.ts → geo-DsWwuC5o.d.ts} +4 -4
- package/dist/index.d.ts +20 -20
- package/dist/index.js +8 -8
- package/dist/items/blockstate.d.ts +1 -1
- package/dist/items/discovery.d.ts +1 -1
- package/dist/{jar-B5iRZQeL.d.ts → jar-4Jg7ufWK.d.ts} +1 -1
- package/dist/{jar-CBYPMbw7.js → jar-DvofBm71.js} +2 -2
- package/dist/{jar-classes-CSm7qq1R.js → jar-classes-0wqWbTax.js} +2 -2
- package/dist/{light-CyRhYulM.js → light-CC3VMsjl.js} +37 -5
- package/dist/{light-bytecode-Cpyuxo9b.js → light-bytecode-DYxb6pJk.js} +80 -30
- package/dist/{light-eval-D9x0ufZx.d.ts → light-eval-DMjK6xnb.d.ts} +1 -1
- package/dist/{loader-DSir1-P0.d.ts → loader-BYyPIs9f.d.ts} +1 -1
- package/dist/{loader-59_eMa8e.d.ts → loader-C4gsX_wO.d.ts} +1 -1
- package/dist/{manager-exOIcdyx.d.ts → manager-Ct0dEOMg.d.ts} +6 -0
- package/dist/{manager-BNibYkmI.js → manager-D6zXmFrO.js} +6 -0
- package/dist/{mappings-Ep6ko0rg.js → mappings-DEl_7xxQ.js} +18 -1
- package/dist/{mappings-USwcjtcH.d.ts → mappings-DhOPQTgV.d.ts} +5 -0
- package/dist/models/loader.d.ts +1 -1
- package/dist/{models-CZjCOjs4.js → models-BsYA-NZg.js} +1 -1
- package/dist/mods/models.d.ts +1 -1
- package/dist/mods/models.js +1 -1
- package/dist/mods/prepare.d.ts +1 -1
- package/dist/mods/prepare.js +1 -1
- package/dist/mods/synthesize.d.ts +2 -2
- package/dist/mods/tints.d.ts +2 -2
- package/dist/mods/tints.js +1 -1
- package/dist/{obj-mesh-ydhVfLKs.d.ts → obj-mesh-CzL0lOlJ.d.ts} +2 -2
- package/dist/output/encode.d.ts +1 -1
- package/dist/pack.d.ts +7 -6
- package/dist/{pipeline-DFuQa8ZT.d.ts → pipeline-DuPF3sap.d.ts} +3 -3
- package/dist/{pipeline-CRTQGba7.js → pipeline-Q_185kY6.js} +1 -1
- package/dist/{prepare-OS7wL3jv.d.ts → prepare-BPzsZI_S.d.ts} +1 -1
- package/dist/{prepare-6pH3CNpg.d.ts → prepare-Ce5SpR7Y.d.ts} +1 -1
- package/dist/{prepare-C61BcwFA.js → prepare-DkJkZXuQ.js} +2 -2
- package/dist/{prepare-DxPEu9mo.js → prepare-sj36BP90.js} +4 -4
- package/dist/{rasterizer-C2wgJZ6J.d.ts → rasterizer-DjnurUgD.d.ts} +1 -1
- package/dist/render/blend.d.ts +1 -1
- package/dist/render/compose.d.ts +2 -2
- package/dist/render/entity-fallback.d.ts +6 -6
- package/dist/render/face.d.ts +1 -1
- package/dist/render/fluid-bucket.d.ts +2 -2
- package/dist/render/geo.d.ts +1 -1
- package/dist/render/legacy-tints.d.ts +2 -2
- package/dist/render/obj.d.ts +5 -5
- package/dist/render/pipeline.d.ts +1 -1
- package/dist/render/pipeline.js +1 -1
- package/dist/render/rasterizer.d.ts +1 -1
- package/dist/render/renderer.d.ts +1 -1
- package/dist/render/tints.d.ts +1 -1
- package/dist/{renderer-DbUmTFDb.d.ts → renderer-QgROYvPv.d.ts} +5 -5
- package/dist/resources/descriptor.d.ts +1 -1
- package/dist/resources/descriptor.js +1 -1
- package/dist/resources/entity-textures.d.ts +2 -2
- package/dist/resources/jar.d.ts +1 -1
- package/dist/resources/jar.js +1 -1
- package/dist/resources/manager.d.ts +1 -1
- package/dist/resources/manager.js +1 -1
- package/dist/resources/synthetic.d.ts +1 -1
- package/dist/resources/zip-reader.js +1 -1
- package/dist/{run-DYcem_Vv.js → run-5yX5KRiI.js} +4 -4
- package/dist/{run-CLjF0N2d.d.ts → run-CxB1qabg.d.ts} +2 -2
- package/dist/run.d.ts +1 -1
- package/dist/run.js +1 -1
- package/dist/{sources-e5D09Jz_.d.ts → sources-sFtealLJ.d.ts} +1 -1
- package/dist/states-BvoZA-ql.js +40 -0
- package/dist/states-OzneeCTU.d.ts +25 -0
- package/dist/{synthetic-B3R7mW9k.d.ts → synthetic-CWtFtAkR.d.ts} +1 -1
- package/dist/textures/loader.d.ts +1 -1
- package/dist/textures/overlay.d.ts +1 -1
- package/dist/{tints-uLl1CIkC.d.ts → tints-B0a1K11c.d.ts} +2 -2
- package/dist/{tints-CWQz6UkM.js → tints-CZeyKzMv.js} +2 -2
- package/dist/{tints-CQX8a1F0.d.ts → tints-DwFmEkf3.d.ts} +2 -2
- package/dist/versions/legacy-reshape.d.ts +1 -1
- package/dist/versions/prepare.d.ts +1 -1
- package/dist/versions/prepare.js +1 -1
- package/dist/workers/render-worker.d.ts +2 -2
- package/dist/workers/render-worker.js +2 -2
- package/dist/{zip-reader-zx3kdSq4.js → zip-reader-onwEVMea.js} +4 -4
- package/package.json +1 -1
- package/dist/biomes-5ZwYxMYe.js +0 -384
- package/dist/biomes-CJDJQqJb.d.ts +0 -38
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { a as ResourceManager } from "./manager-Ct0dEOMg.js";
|
|
2
|
+
//#region src/blocks/biomes.d.ts
|
|
3
|
+
/** Where a biome's colours come from. Colours are `#rrggbb`, as everywhere else in the pack. */
|
|
4
|
+
interface BiomeClimate {
|
|
5
|
+
/**
|
|
6
|
+
* The numeric id a chunk stores this biome as, before 1.18 replaced ids with names. Absent from a
|
|
7
|
+
* 1.18+ pack and from a mod's biomes, whose ids were assigned per world.
|
|
8
|
+
*/
|
|
9
|
+
id?: number;
|
|
10
|
+
/** As the biome declares it, unclamped: the peaks run to -0.7 and the deserts to 2. */
|
|
11
|
+
temperature: number;
|
|
12
|
+
downfall: number;
|
|
13
|
+
/** `effects.water_color`, when it is not the default. */
|
|
14
|
+
water?: string;
|
|
15
|
+
/** `effects.grass_color_modifier`, applied after the colormap lookup. */
|
|
16
|
+
modifier?: 'dark_forest' | 'swamp';
|
|
17
|
+
/** `effects.grass_color`, which replaces the colormap lookup outright. */
|
|
18
|
+
grass?: string;
|
|
19
|
+
foliage?: string;
|
|
20
|
+
dryFoliage?: string;
|
|
21
|
+
}
|
|
22
|
+
/** `biomes.json`: biome id → climate. */
|
|
23
|
+
type BiomeClimatePack = Record<string, BiomeClimate>;
|
|
24
|
+
/** `effects.water_color` where a biome does not override it, which is most of them. */
|
|
25
|
+
declare const DEFAULT_WATER_COLOR = "#3f76e4";
|
|
26
|
+
interface LegacyBiome {
|
|
27
|
+
id: number;
|
|
28
|
+
name: string;
|
|
29
|
+
/** The release that added it; absent for the biomes 1.13 already had. */
|
|
30
|
+
since?: '1.14' | '1.16' | '1.17';
|
|
31
|
+
climate: Omit<BiomeClimate, 'id'>;
|
|
32
|
+
}
|
|
33
|
+
/** 1.13–1.17, from the 1.17.1 data generator's `reports/biomes`, in id order. */
|
|
34
|
+
declare const LEGACY_BIOMES: readonly LegacyBiome[];
|
|
35
|
+
/** 1.18–1.19.2, from the 1.19.2 data generator's `worldgen/biome` report. Ordered so a regenerated table diffs cleanly. */
|
|
36
|
+
declare const PRE_JAR_BIOMES: BiomeClimatePack;
|
|
37
|
+
/** @deprecated One version's table stood in for all of them; use `vanillaBiomesFor(version)`. */
|
|
38
|
+
declare const VANILLA_BIOME_CLIMATES: BiomeClimatePack;
|
|
39
|
+
/**
|
|
40
|
+
* Vanilla's biomes as a version without biome data in its jar has them: the version's own set,
|
|
41
|
+
* under its own names. A version that is not a release number (an `--assets` run) gets the newest.
|
|
42
|
+
*/
|
|
43
|
+
declare function vanillaBiomesFor(version: string): BiomeClimatePack;
|
|
44
|
+
/** One biome definition as a datapack states it, or `null` when it states no climate. */
|
|
45
|
+
declare function parseBiomeClimate(json: unknown): BiomeClimate | null;
|
|
46
|
+
/**
|
|
47
|
+
* Climates for the namespaces a pack exports: whatever their datapacks declare,
|
|
48
|
+
* or for `minecraft` in a jar that declares none, the version's table.
|
|
49
|
+
*
|
|
50
|
+
* A mod pack carries only its own biomes. The vanilla pack is always fetched
|
|
51
|
+
* beside it, so repeating vanilla's would be the same bytes in every one of the
|
|
52
|
+
* hundreds of mod packs published.
|
|
53
|
+
*/
|
|
54
|
+
declare function buildBiomeClimates(resources: ResourceManager, namespaces: readonly string[], version?: string): Promise<{
|
|
55
|
+
pack: BiomeClimatePack;
|
|
56
|
+
unreadable: string[];
|
|
57
|
+
}>;
|
|
58
|
+
//#endregion
|
|
59
|
+
export { LegacyBiome as a, buildBiomeClimates as c, LEGACY_BIOMES as i, parseBiomeClimate as l, BiomeClimatePack as n, PRE_JAR_BIOMES as o, DEFAULT_WATER_COLOR as r, VANILLA_BIOME_CLIMATES as s, BiomeClimate as t, vanillaBiomesFor as u };
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { n as BiomeClimatePack } from "./biomes-
|
|
2
|
-
import { a as FaceDirectionName, l as Vec3, o as ModelElementJson, u as Vec4 } from "./types-qlp3I8_-.js";
|
|
1
|
+
import { n as BiomeClimatePack } from "./biomes-CnnhDCnk.js";
|
|
3
2
|
import { a as BlockStateMultipartCase, o as BlockStateVariantCase } from "./blockstate-eval-BzznRcVY.js";
|
|
4
|
-
import { t as
|
|
5
|
-
import { n as
|
|
3
|
+
import { r as TagPack, t as AdvancementPack } from "./datapack-CmEg0Vko.js";
|
|
4
|
+
import { n as GameRulePack } from "./game-rules-ThvdDG3B.js";
|
|
5
|
+
import { a as FaceDirectionName, l as Vec3, o as ModelElementJson, u as Vec4 } from "./types-qlp3I8_-.js";
|
|
6
|
+
import { t as MeshGroup } from "./obj-mesh-CzL0lOlJ.js";
|
|
7
|
+
import { n as BlockStatesPack } from "./states-OzneeCTU.js";
|
|
8
|
+
import { n as BlockTintPack } from "./tints-DwFmEkf3.js";
|
|
9
|
+
import { t as ClassFile } from "./classfile-CsLXlh5z.js";
|
|
6
10
|
//#region src/blocks/pack-format.d.ts
|
|
7
11
|
/** How a sprite's alpha classifies it, inferred because assets rarely say. */
|
|
8
12
|
type BlockPackRenderLayer = 'solid' | 'cutout' | 'translucent';
|
|
@@ -133,12 +137,36 @@ type BlockPackLight = number | {
|
|
|
133
137
|
* pack has emitters and the export could read the code for them — an `--assets` run has none.
|
|
134
138
|
*/
|
|
135
139
|
type BlockPackLightFile = Record<string, BlockPackLight>;
|
|
140
|
+
/**
|
|
141
|
+
* `behaviour.json`, by block id: hardness, collision, replaceability, map colour and the rest of what
|
|
142
|
+
* the block's `Properties` builder chain states. Read from the code, like `light.json`, so absent
|
|
143
|
+
* from an `--assets` run and from 1.13, whose builder calls have no names without mappings.
|
|
144
|
+
*/
|
|
145
|
+
type BlockPackBehaviourFile = Record<string, BlockBehaviour>;
|
|
136
146
|
/**
|
|
137
147
|
* `biomes.json`, present only when the pack has biomes to describe: vanilla's
|
|
138
148
|
* whole table, or the ones a mod's datapack declares. Absent is not empty — a
|
|
139
149
|
* consumer with no file falls back to tinting at `tints.json`'s flat climate.
|
|
140
150
|
*/
|
|
141
151
|
type BlockPackBiomesFile = BiomeClimatePack;
|
|
152
|
+
/**
|
|
153
|
+
* `tags.json`: registry → tag id → values, exactly as the version's datapack states them. Unexpanded,
|
|
154
|
+
* so a value starting `#` names another tag in the same registry. Registries are keyed by their 1.21+
|
|
155
|
+
* singular folder name (`block`, `item`, `entity_type`, `worldgen/biome`) at every version.
|
|
156
|
+
*/
|
|
157
|
+
type BlockPackTagsFile = TagPack;
|
|
158
|
+
/** `advancements.json`: advancement id → its criteria names, recipe unlocks left out. */
|
|
159
|
+
type BlockPackAdvancementsFile = AdvancementPack;
|
|
160
|
+
/**
|
|
161
|
+
* `states.json`: every block's properties, values in the game's order, and its default state. Present
|
|
162
|
+
* only when the export was given the version's data generator reports.
|
|
163
|
+
*/
|
|
164
|
+
type BlockPackStatesFile = BlockStatesPack;
|
|
165
|
+
/**
|
|
166
|
+
* `game-rules.json`: every rule the version registers, by the name `level.dat` stores it under
|
|
167
|
+
* (camelCase before 26.x, snake_case from it), with its type and default. Vanilla packs only.
|
|
168
|
+
*/
|
|
169
|
+
type BlockPackGameRulesFile = GameRulePack;
|
|
142
170
|
/** One flat sprite of an item's layer stack, in the order the client draws them. */
|
|
143
171
|
interface ItemPackLayer {
|
|
144
172
|
sprite: string;
|
|
@@ -203,6 +231,12 @@ interface EntityPackEntry {
|
|
|
203
231
|
texture?: string;
|
|
204
232
|
/** Key into `entity-models.json`'s `models`, when geometry was recovered for this entity. */
|
|
205
233
|
model?: string;
|
|
234
|
+
/**
|
|
235
|
+
* Hitbox in blocks, as `EntityType.Builder.sized` states it: the base size, before a baby or a big
|
|
236
|
+
* slime scales its own. Absent where no code was read (an `--assets` run, 1.13).
|
|
237
|
+
*/
|
|
238
|
+
width?: number;
|
|
239
|
+
height?: number;
|
|
206
240
|
}
|
|
207
241
|
/**
|
|
208
242
|
* `entities.json`, by entity id. The registry read off the lang file, which is the closest thing a jar
|
|
@@ -341,10 +375,258 @@ interface BlockPackMetaFile {
|
|
|
341
375
|
entityModels: number;
|
|
342
376
|
/** Emitting blocks in `light.json`; `0` means the file is absent. */
|
|
343
377
|
light: number;
|
|
378
|
+
/** Blocks in `behaviour.json`; `0` means the file is absent. */
|
|
379
|
+
behaviour: number;
|
|
380
|
+
/** Tags across every registry in `tags.json`; `0` means the file is absent. */
|
|
381
|
+
tags: number;
|
|
382
|
+
/** Advancements in `advancements.json`; `0` means the file is absent. */
|
|
383
|
+
advancements: number;
|
|
384
|
+
/** Blocks in `states.json`; `0` means the file is absent. */
|
|
385
|
+
states: number;
|
|
386
|
+
/** Rules in `game-rules.json`; `0` means the file is absent. */
|
|
387
|
+
gameRules: number;
|
|
344
388
|
failures: number;
|
|
345
389
|
};
|
|
346
390
|
/** sha256 per file, enough to verify a cached copy without refetching it. */
|
|
347
391
|
hashes: Record<string, string>;
|
|
348
392
|
}
|
|
349
393
|
//#endregion
|
|
350
|
-
|
|
394
|
+
//#region src/blocks/light-bytecode.d.ts
|
|
395
|
+
/** A member reference as the constant pool spells it. */
|
|
396
|
+
interface MemberReference {
|
|
397
|
+
owner: string;
|
|
398
|
+
name: string;
|
|
399
|
+
descriptor: string;
|
|
400
|
+
}
|
|
401
|
+
/** What the caller supplies: how to find code, and how to rename a reference before looking. */
|
|
402
|
+
interface LightCodeSource {
|
|
403
|
+
/** The parsed class, or null for anything outside the jars (the JDK, a loader). */
|
|
404
|
+
resolve: (internalName: string) => ClassFile | null;
|
|
405
|
+
/**
|
|
406
|
+
* A reference as the jar spells it. A mod names the game's classes and members by their original
|
|
407
|
+
* names; against an obfuscated client those have to be renamed before they can be found.
|
|
408
|
+
*/
|
|
409
|
+
remap: (reference: MemberReference, field: boolean) => MemberReference;
|
|
410
|
+
remapClass: (internalName: string) => string;
|
|
411
|
+
/**
|
|
412
|
+
* A member's original name, for reading the game's own obfuscated calls: `eea$d.a(FF)` is `strength`.
|
|
413
|
+
* Absent, or answering the name it was given, where the jar already speaks original names.
|
|
414
|
+
*/
|
|
415
|
+
nameOf?: (reference: MemberReference, field: boolean) => string;
|
|
416
|
+
/** Classes that are a block `Properties` builder, in every spelling the jars use. */
|
|
417
|
+
propsClasses: ReadonlySet<string>;
|
|
418
|
+
/**
|
|
419
|
+
* Whether a class is the game's rather than a mod's. A mod export runs the game's own `Blocks` too,
|
|
420
|
+
* for the properties mods copy, and its registrations must not answer for a mod block that happens
|
|
421
|
+
* to share a name — `immersiveengineering:lantern` is not `minecraft:lantern`.
|
|
422
|
+
*/
|
|
423
|
+
isVanillaClass: (internalName: string) => boolean;
|
|
424
|
+
/**
|
|
425
|
+
* Methods a block class may override to answer its own light: the game's `getLightValue(state)`
|
|
426
|
+
* before 1.16, when a lit furnace was an override rather than a lambda, and a loader's
|
|
427
|
+
* `getLightEmission(state, level, pos)`. `root` is the class whose implementation is the plain
|
|
428
|
+
* property read, so a call resolving there — `super.getLightValue(state)` — is answered from the
|
|
429
|
+
* block's `Properties`.
|
|
430
|
+
*/
|
|
431
|
+
lightGetters: ReadonlyArray<LightGetter>;
|
|
432
|
+
}
|
|
433
|
+
interface LightGetter {
|
|
434
|
+
name: string;
|
|
435
|
+
/** Empty to match by name alone: a loader method whose parameter types the jar does not spell. */
|
|
436
|
+
descriptor: string;
|
|
437
|
+
root: string | null;
|
|
438
|
+
}
|
|
439
|
+
/** How a block's light is stated, before it is evaluated. */
|
|
440
|
+
type LightSpec = {
|
|
441
|
+
kind: 'constant';
|
|
442
|
+
level: number;
|
|
443
|
+
} |
|
|
444
|
+
/** A `ToIntFunction<BlockState>`, to be run per state. */
|
|
445
|
+
{
|
|
446
|
+
kind: 'function';
|
|
447
|
+
fn: LambdaValue;
|
|
448
|
+
} |
|
|
449
|
+
/** A block class's own light method: a 1.13–1.15 `getLightValue` override, or a loader's `getLightEmission`. */
|
|
450
|
+
{
|
|
451
|
+
kind: 'method';
|
|
452
|
+
owner: string;
|
|
453
|
+
getter: LightGetter;
|
|
454
|
+
receiver: Handle | null;
|
|
455
|
+
} |
|
|
456
|
+
/** A light function the interpreter could not identify — one built from a value it never saw. */
|
|
457
|
+
{
|
|
458
|
+
kind: 'opaque';
|
|
459
|
+
reason: string;
|
|
460
|
+
};
|
|
461
|
+
interface PropsCall {
|
|
462
|
+
name: string;
|
|
463
|
+
descriptor: string;
|
|
464
|
+
args: Value[];
|
|
465
|
+
}
|
|
466
|
+
interface Handle {
|
|
467
|
+
id: number;
|
|
468
|
+
/** Internal class name, from `new` or the declared return type of the opaque call that made it. */
|
|
469
|
+
type: string | null;
|
|
470
|
+
/** Strings that flowed into this object: the name a registration key or a property was made from. */
|
|
471
|
+
strings: string[];
|
|
472
|
+
numbers: number[];
|
|
473
|
+
/** Class literals that flowed in: the value class of an enum property. */
|
|
474
|
+
classes: string[];
|
|
475
|
+
fields: Map<string, Value>;
|
|
476
|
+
isProps: boolean;
|
|
477
|
+
light: LightSpec | null;
|
|
478
|
+
/** For a `Properties`: every builder call made on it, by its mapped name, for `block-behaviour.ts` to read. */
|
|
479
|
+
calls?: PropsCall[];
|
|
480
|
+
/** For a `Properties` made by copying a block's: the properties it copied, whose calls come first. */
|
|
481
|
+
copyOf?: Handle | null;
|
|
482
|
+
/** For a block: the `Properties` it was constructed with. */
|
|
483
|
+
props: Handle | null;
|
|
484
|
+
ctorArgs: Value[] | null;
|
|
485
|
+
/** `StringBuilder` parts, for the pre-Java 9 way of building a name. */
|
|
486
|
+
builder?: Array<string | number>;
|
|
487
|
+
origin?: string;
|
|
488
|
+
/** Entries of a map the code filled, for a lookup table of properties by direction. */
|
|
489
|
+
map?: Array<{
|
|
490
|
+
key: Value;
|
|
491
|
+
value: Value;
|
|
492
|
+
}>;
|
|
493
|
+
/** Elements of a list or set the code filled, for a table of names a mod registers in a loop. */
|
|
494
|
+
items?: Value[];
|
|
495
|
+
/** An iterator over a list: what it walks and where it is. */
|
|
496
|
+
iterator?: {
|
|
497
|
+
items: Value[];
|
|
498
|
+
at: number;
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
interface LambdaValue {
|
|
502
|
+
kind: 'lambda';
|
|
503
|
+
owner: string;
|
|
504
|
+
name: string;
|
|
505
|
+
descriptor: string;
|
|
506
|
+
captured: Value[];
|
|
507
|
+
}
|
|
508
|
+
/** A `BlockState` during evaluation of a light function: a bag of property values being read. */
|
|
509
|
+
interface StateProbe {
|
|
510
|
+
values: Map<string, string>;
|
|
511
|
+
domains: Map<string, PropertyDomain>;
|
|
512
|
+
reads: Set<string>;
|
|
513
|
+
failure: string | null;
|
|
514
|
+
}
|
|
515
|
+
interface PropertyDomain {
|
|
516
|
+
name: string;
|
|
517
|
+
values: string[];
|
|
518
|
+
/** The enum constant per serialized value, for a property whose values are an enum. */
|
|
519
|
+
constants?: Map<string, Handle>;
|
|
520
|
+
}
|
|
521
|
+
type Value = LambdaValue | {
|
|
522
|
+
kind: 'number';
|
|
523
|
+
value: number;
|
|
524
|
+
wide?: boolean;
|
|
525
|
+
} | {
|
|
526
|
+
kind: 'string';
|
|
527
|
+
value: string;
|
|
528
|
+
} | {
|
|
529
|
+
kind: 'object';
|
|
530
|
+
handle: Handle;
|
|
531
|
+
} | {
|
|
532
|
+
kind: 'array';
|
|
533
|
+
items: Value[];
|
|
534
|
+
} | {
|
|
535
|
+
kind: 'class';
|
|
536
|
+
name: string;
|
|
537
|
+
} | {
|
|
538
|
+
kind: 'null';
|
|
539
|
+
} | {
|
|
540
|
+
kind: 'state';
|
|
541
|
+
probe: StateProbe;
|
|
542
|
+
} | {
|
|
543
|
+
kind: 'unknown';
|
|
544
|
+
};
|
|
545
|
+
/** One registration this found: which `Properties` a name was registered with, and the block if seen. */
|
|
546
|
+
interface Registration {
|
|
547
|
+
props: Handle | null;
|
|
548
|
+
block: Handle | null;
|
|
549
|
+
/** The block's class, when a factory method reference named it. */
|
|
550
|
+
blockType: string | null;
|
|
551
|
+
/** The call that registered it, for a person chasing a wrong answer. */
|
|
552
|
+
site: string;
|
|
553
|
+
/** Made by the game's own code, which a mod's block of the same bare name must not inherit. */
|
|
554
|
+
vanilla: boolean;
|
|
555
|
+
}
|
|
556
|
+
/** What one run over a set of registry classes found. */
|
|
557
|
+
interface LightExtraction {
|
|
558
|
+
registrations: Map<string, Registration>;
|
|
559
|
+
notes: string[];
|
|
560
|
+
/** The light a block emits, or why it could not be worked out. */
|
|
561
|
+
lightOf: (blockId: string) => {
|
|
562
|
+
light: BlockPackLight;
|
|
563
|
+
} | {
|
|
564
|
+
failure: string;
|
|
565
|
+
};
|
|
566
|
+
/** The registration the code made for a block, under its full id or its own side's bare path. */
|
|
567
|
+
registrationOf: (blockId: string) => Registration | null;
|
|
568
|
+
/**
|
|
569
|
+
* Runs a function of a block state once per combination of the properties it reads, folded like
|
|
570
|
+
* light: a number when every state agrees, a default and cases otherwise. `read` turns what the
|
|
571
|
+
* function returned into a number, or null when it is not one this can use.
|
|
572
|
+
*/
|
|
573
|
+
tabulate: (fn: LambdaValue, read: (value: Value) => number | null) => {
|
|
574
|
+
value: BlockPackLight;
|
|
575
|
+
} | {
|
|
576
|
+
failure: string;
|
|
577
|
+
};
|
|
578
|
+
/** What was recorded for a block, for a person chasing a failure. */
|
|
579
|
+
describe: (blockId: string) => string;
|
|
580
|
+
}
|
|
581
|
+
/**
|
|
582
|
+
* Runs the registry code of a set of classes and answers, per block, what it emits.
|
|
583
|
+
*
|
|
584
|
+
* `roots` are the classes whose methods register blocks; every method of each is run, because where
|
|
585
|
+
* the registrations sit differs by era and mod — `<clinit>` for a modern registry, a static
|
|
586
|
+
* `registerBlocks()` in 1.13, an instance `init()` in a mod. The order is `<clinit>` first, since the
|
|
587
|
+
* others read what it set up.
|
|
588
|
+
*/
|
|
589
|
+
declare function extractBlockLight(roots: readonly ClassFile[], source: LightCodeSource): LightExtraction;
|
|
590
|
+
//#endregion
|
|
591
|
+
//#region src/blocks/block-behaviour.d.ts
|
|
592
|
+
/** How pistons treat a block; absent means `normal`, pushed and pulled like stone. */
|
|
593
|
+
type PushReactionName = 'destroy' | 'block' | 'ignore' | 'push_only';
|
|
594
|
+
interface BlockBehaviour {
|
|
595
|
+
/** Seconds-ish to mine by hand, as `destroyTime`; `-1` is unbreakable. */
|
|
596
|
+
hardness: number;
|
|
597
|
+
/** Explosion resistance. */
|
|
598
|
+
resistance: number;
|
|
599
|
+
/**
|
|
600
|
+
* Map colour id (0–63, 0 draws nothing). A number, or per-state cases in the shape `light.json`
|
|
601
|
+
* uses: a log is one colour on its end grain and another on its bark.
|
|
602
|
+
*/
|
|
603
|
+
mapColor?: BlockPackLight;
|
|
604
|
+
/** Entities walk through it: grass, flowers, torches. */
|
|
605
|
+
collision?: false;
|
|
606
|
+
/** It hides nothing behind it: glass, leaves, anything `noOcclusion()`. */
|
|
607
|
+
occludes?: false;
|
|
608
|
+
/** A placed block or a growing tree takes its place without breaking it. */
|
|
609
|
+
replaceable?: true;
|
|
610
|
+
air?: true;
|
|
611
|
+
liquid?: true;
|
|
612
|
+
/** Lava sets it alight (`ignitedByLava`, or a flammable `Material` before 1.20). */
|
|
613
|
+
flammable?: true;
|
|
614
|
+
pushReaction?: PushReactionName;
|
|
615
|
+
/** Drops nothing unless mined with the right tool. */
|
|
616
|
+
requiresTool?: true;
|
|
617
|
+
randomTicks?: true;
|
|
618
|
+
friction?: number;
|
|
619
|
+
speedFactor?: number;
|
|
620
|
+
jumpFactor?: number;
|
|
621
|
+
}
|
|
622
|
+
/**
|
|
623
|
+
* The colour a block's `Properties` state: a `mapColor` call, the colour a pre-1.20 `Properties` was
|
|
624
|
+
* constructed with, or its `Material`'s, latest first. A constant or a function of state.
|
|
625
|
+
*/
|
|
626
|
+
declare function statedMapColor(props: Handle): Value | undefined;
|
|
627
|
+
declare function blockBehaviour(registration: Registration, extraction: Pick<LightExtraction, 'tabulate'>): {
|
|
628
|
+
behaviour: BlockBehaviour;
|
|
629
|
+
failures: string[];
|
|
630
|
+
} | null;
|
|
631
|
+
//#endregion
|
|
632
|
+
export { BlockPackItemsFile as A, BlockPackTagsFile as B, BlockPackBlockState as C, BlockPackEntityModelsFile as D, BlockPackEntitiesFile as E, BlockPackModelsFile as F, EntityPackCubeFace as G, BlockPackVariant as H, BlockPackRenderLayer as I, EntityPackPart as J, EntityPackEntry as K, BlockPackSprite as L, BlockPackLightFile as M, BlockPackMetaFile as N, BlockPackFace as O, BlockPackModel as P, ItemPackLayer as Q, BlockPackSpriteFrame as R, BlockPackBiomesFile as S, BlockPackElement as T, EQUIPMENT_SLOTS as U, BlockPackTintsFile as V, EntityPackCube as W, EquipmentSlot as X, EquipmentPack as Y, ItemPackEntry as Z, extractBlockLight as _, Handle as a, BlockPackAtlasPage as b, LightExtraction as c, MemberReference as d, PropertyDomain as f, Value as g, StateProbe as h, statedMapColor as i, BlockPackLight as j, BlockPackGameRulesFile as k, LightGetter as l, Registration as m, PushReactionName as n, LambdaValue as o, PropsCall as p, EntityPackModel as q, blockBehaviour as r, LightCodeSource as s, BlockBehaviour as t, LightSpec as u, BlockPackAdvancementsFile as v, BlockPackBlockStatesFile as w, BlockPackBehaviourFile as x, BlockPackAtlasFile as y, BlockPackStatesFile as z };
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
//#region src/blocks/block-behaviour.ts
|
|
2
|
+
const PUSH_REACTIONS = /* @__PURE__ */ new Set([
|
|
3
|
+
"destroy",
|
|
4
|
+
"block",
|
|
5
|
+
"ignore",
|
|
6
|
+
"push_only"
|
|
7
|
+
]);
|
|
8
|
+
function num(value) {
|
|
9
|
+
return value?.kind === "number" ? value.value : null;
|
|
10
|
+
}
|
|
11
|
+
function field(handle, name) {
|
|
12
|
+
return handle.fields.get(`mapped:${name}`) ?? handle.fields.get(name);
|
|
13
|
+
}
|
|
14
|
+
/** A `MapColor` (`MaterialColor` before 1.20) is constructed as `(id, rgb)`; its id is the first. */
|
|
15
|
+
function mapColorId(value) {
|
|
16
|
+
if (value?.kind !== "object") return null;
|
|
17
|
+
const args = value.handle.ctorArgs ?? [];
|
|
18
|
+
const id = num(args[0]);
|
|
19
|
+
if (args.length === 2 && id !== null && num(args[1]) !== null && id >= 0 && id < 64) return id;
|
|
20
|
+
if (args[0]?.kind !== "string" || args[1]?.kind !== "number") return null;
|
|
21
|
+
for (const arg of args) {
|
|
22
|
+
const nested = arg.kind === "object" && arg.handle !== value.handle ? mapColorId(arg) : null;
|
|
23
|
+
if (nested !== null) return nested;
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
/** An enum constant's serialized name: the lower-cased constant name it was constructed with. */
|
|
28
|
+
function enumName(value) {
|
|
29
|
+
const name = value?.kind === "object" ? value.handle.ctorArgs?.[0] : void 0;
|
|
30
|
+
return name?.kind === "string" ? name.value.toLowerCase() : null;
|
|
31
|
+
}
|
|
32
|
+
/** The chain of `Properties` a block's came from, oldest copy first, so later calls win. */
|
|
33
|
+
function lineage(props) {
|
|
34
|
+
const chain = [];
|
|
35
|
+
for (let at = props; at && !chain.includes(at); at = at.copyOf) chain.unshift(at);
|
|
36
|
+
return chain;
|
|
37
|
+
}
|
|
38
|
+
/** The `Material` a pre-1.20 `Properties` was constructed with, when it was. */
|
|
39
|
+
function materialOf(props) {
|
|
40
|
+
for (const handle of lineage(props)) for (const arg of handle.ctorArgs ?? []) if (arg.kind === "object" && field(arg.handle, "replaceable") !== void 0) return arg.handle;
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The colour a block's `Properties` state: a `mapColor` call, the colour a pre-1.20 `Properties` was
|
|
45
|
+
* constructed with, or its `Material`'s, latest first. A constant or a function of state.
|
|
46
|
+
*/
|
|
47
|
+
function statedMapColor(props) {
|
|
48
|
+
const material = materialOf(props);
|
|
49
|
+
let colour = material ? field(material, "color") : void 0;
|
|
50
|
+
for (const handle of lineage(props)) {
|
|
51
|
+
colour = (handle.ctorArgs ?? []).find((arg) => arg.kind === "lambda" || mapColorId(arg) !== null) ?? colour;
|
|
52
|
+
for (const call of handle.calls ?? []) if (call.name === "mapColor") colour = call.args[0];
|
|
53
|
+
}
|
|
54
|
+
return colour;
|
|
55
|
+
}
|
|
56
|
+
/** A float as Java wrote it: `0.3F` is 0.30000001192092896 as a double, and 0.3 is what the code says. */
|
|
57
|
+
function float32(value) {
|
|
58
|
+
for (let digits = 1; digits < 10; digits++) {
|
|
59
|
+
const candidate = Number(value.toPrecision(digits));
|
|
60
|
+
if (Math.fround(candidate) === Math.fround(value)) return candidate;
|
|
61
|
+
}
|
|
62
|
+
return value;
|
|
63
|
+
}
|
|
64
|
+
function blockBehaviour(registration, extraction) {
|
|
65
|
+
const props = registration.props;
|
|
66
|
+
if (!props) return null;
|
|
67
|
+
const failures = [];
|
|
68
|
+
const behaviour = {
|
|
69
|
+
hardness: 0,
|
|
70
|
+
resistance: 0
|
|
71
|
+
};
|
|
72
|
+
const mapColor = statedMapColor(props);
|
|
73
|
+
const material = materialOf(props);
|
|
74
|
+
if (material) {
|
|
75
|
+
if (num(field(material, "replaceable")) === 1) behaviour.replaceable = true;
|
|
76
|
+
if (num(field(material, "liquid")) === 1) behaviour.liquid = true;
|
|
77
|
+
if (num(field(material, "flammable")) === 1) behaviour.flammable = true;
|
|
78
|
+
if (num(field(material, "alwaysDestroyable")) === 0) behaviour.requiresTool = true;
|
|
79
|
+
const reaction = enumName(field(material, "pushReaction"));
|
|
80
|
+
if (reaction && PUSH_REACTIONS.has(reaction)) behaviour.pushReaction = reaction;
|
|
81
|
+
}
|
|
82
|
+
for (const handle of lineage(props)) for (const call of handle.calls ?? []) {
|
|
83
|
+
const [first, second] = call.args;
|
|
84
|
+
switch (call.name) {
|
|
85
|
+
case "strength":
|
|
86
|
+
behaviour.hardness = float32(num(first) ?? behaviour.hardness);
|
|
87
|
+
behaviour.resistance = float32(num(second ?? first) ?? behaviour.resistance);
|
|
88
|
+
break;
|
|
89
|
+
case "destroyTime":
|
|
90
|
+
behaviour.hardness = float32(num(first) ?? behaviour.hardness);
|
|
91
|
+
break;
|
|
92
|
+
case "explosionResistance":
|
|
93
|
+
behaviour.resistance = float32(num(first) ?? behaviour.resistance);
|
|
94
|
+
break;
|
|
95
|
+
case "instabreak":
|
|
96
|
+
behaviour.hardness = 0;
|
|
97
|
+
behaviour.resistance = 0;
|
|
98
|
+
break;
|
|
99
|
+
case "noCollission":
|
|
100
|
+
case "noCollision":
|
|
101
|
+
behaviour.collision = false;
|
|
102
|
+
behaviour.occludes = false;
|
|
103
|
+
break;
|
|
104
|
+
case "noOcclusion":
|
|
105
|
+
behaviour.occludes = false;
|
|
106
|
+
break;
|
|
107
|
+
case "replaceable":
|
|
108
|
+
behaviour.replaceable = true;
|
|
109
|
+
break;
|
|
110
|
+
case "air":
|
|
111
|
+
behaviour.air = true;
|
|
112
|
+
break;
|
|
113
|
+
case "liquid":
|
|
114
|
+
behaviour.liquid = true;
|
|
115
|
+
break;
|
|
116
|
+
case "ignitedByLava":
|
|
117
|
+
behaviour.flammable = true;
|
|
118
|
+
break;
|
|
119
|
+
case "requiresCorrectToolForDrops":
|
|
120
|
+
behaviour.requiresTool = true;
|
|
121
|
+
break;
|
|
122
|
+
case "randomTicks":
|
|
123
|
+
behaviour.randomTicks = true;
|
|
124
|
+
break;
|
|
125
|
+
case "pushReaction": {
|
|
126
|
+
const reaction = enumName(first);
|
|
127
|
+
if (reaction === "normal") delete behaviour.pushReaction;
|
|
128
|
+
else if (reaction && PUSH_REACTIONS.has(reaction)) behaviour.pushReaction = reaction;
|
|
129
|
+
break;
|
|
130
|
+
}
|
|
131
|
+
case "friction":
|
|
132
|
+
case "speedFactor":
|
|
133
|
+
case "jumpFactor": {
|
|
134
|
+
const value = num(first);
|
|
135
|
+
if (value !== null) behaviour[call.name] = float32(value);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (mapColor?.kind === "lambda") {
|
|
141
|
+
const folded = extraction.tabulate(mapColor, mapColorId);
|
|
142
|
+
if ("failure" in folded) failures.push(`map colour: ${folded.failure}`);
|
|
143
|
+
else behaviour.mapColor = folded.value;
|
|
144
|
+
} else if (mapColor !== void 0) {
|
|
145
|
+
const id = mapColorId(mapColor);
|
|
146
|
+
if (id === null) failures.push("map colour is a value the interpreter could not identify");
|
|
147
|
+
else behaviour.mapColor = id;
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
behaviour,
|
|
151
|
+
failures
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//#endregion
|
|
155
|
+
export { statedMapColor as n, blockBehaviour as t };
|
|
@@ -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-BUadroKy.js";
|
|
2
2
|
export { PackEntry, PackOptions, PackedAtlas, PackedPage, PackedRect, packAtlas };
|
package/dist/blocks/biomes.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as buildBiomeClimates, i as
|
|
2
|
-
export { BiomeClimate, BiomeClimatePack, DEFAULT_WATER_COLOR, VANILLA_BIOME_CLIMATES, buildBiomeClimates, parseBiomeClimate };
|
|
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-CnnhDCnk.js";
|
|
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,2 @@
|
|
|
1
|
-
import { i as
|
|
2
|
-
export { DEFAULT_WATER_COLOR, VANILLA_BIOME_CLIMATES, buildBiomeClimates, parseBiomeClimate };
|
|
1
|
+
import { a as buildBiomeClimates, i as VANILLA_BIOME_CLIMATES, n as LEGACY_BIOMES, o as parseBiomeClimate, r as PRE_JAR_BIOMES, s as vanillaBiomesFor, t as DEFAULT_WATER_COLOR } from "../biomes-BGOF6gRM.js";
|
|
2
|
+
export { DEFAULT_WATER_COLOR, LEGACY_BIOMES, PRE_JAR_BIOMES, VANILLA_BIOME_CLIMATES, buildBiomeClimates, parseBiomeClimate, vanillaBiomesFor };
|
|
@@ -1,6 +1,6 @@
|
|
|
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-Ct0dEOMg.js";
|
|
2
|
+
import { i as TextureLoader } from "../loader-C4gsX_wO.js";
|
|
3
|
+
import { t as ModelLoader } from "../loader-BYyPIs9f.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
|
package/dist/blocks/cli.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as runBlocksCli } from "../cli-
|
|
1
|
+
import { t as runBlocksCli } from "../cli-xBcMuKA3.js";
|
|
2
2
|
export { runBlocksCli };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import {
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ct0dEOMg.js";
|
|
2
|
+
import { P as BlockPackModel } from "../block-behaviour-9Tj_GIUC.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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { i as TextureLoader } from "../loader-
|
|
3
|
-
import {
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ct0dEOMg.js";
|
|
2
|
+
import { i as TextureLoader } from "../loader-C4gsX_wO.js";
|
|
3
|
+
import { K as EntityPackEntry } from "../block-behaviour-9Tj_GIUC.js";
|
|
4
4
|
//#region src/blocks/entities.d.ts
|
|
5
5
|
interface EntityPackResult {
|
|
6
6
|
entities: Record<string, EntityPackEntry>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as ResourceManager } from "../manager-
|
|
2
|
-
import { D as EquipmentPack, T as EntityPackModel } from "../pack-format-BqWf-DNc.js";
|
|
1
|
+
import { a as ResourceManager } from "../manager-Ct0dEOMg.js";
|
|
3
2
|
import { t as ClassSource } from "../jar-classes-CSRrPAUy.js";
|
|
4
|
-
import {
|
|
3
|
+
import { Y as EquipmentPack, q as EntityPackModel } from "../block-behaviour-9Tj_GIUC.js";
|
|
4
|
+
import { t as Mappings } from "../mappings-DhOPQTgV.js";
|
|
5
5
|
import { t as ModelCode } from "../model-code-Csc3bs3h.js";
|
|
6
6
|
//#region src/blocks/entity-models.d.ts
|
|
7
7
|
interface EntityGeometryResult {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as collectEntityGeometry, r as collectEquipment, t as collectArmourTrims } from "../entity-models-
|
|
1
|
+
import { n as collectEntityGeometry, r as collectEquipment, t as collectArmourTrims } from "../entity-models-BYAxrTsk.js";
|
|
2
2
|
export { collectArmourTrims, collectEntityGeometry, collectEquipment };
|