simplified-mojang-jsons 0.0.5 → 0.0.7
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/dist/builders/behaviors/entities/EntityTemplateBuilder.d.ts +32 -0
- package/dist/builders/behaviors/entities/EntityTemplateBuilder.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +150 -7
- package/dist/index.js.map +4 -4
- package/dist/templates/behaviors/entities/TntTemplate.d.ts +1 -1
- package/dist/templates/behaviors/entities/TntTemplate.d.ts.map +1 -1
- package/dist/types/behaviors/entities/EntitiesTemplate.d.ts +39 -0
- package/dist/types/behaviors/entities/EntitiesTemplate.d.ts.map +1 -1
- package/package.json +2 -1
- package/scripts/exporttojson.ts +2 -2
|
@@ -7,6 +7,20 @@ import { BehaviorEntityBuilder } from "./EntityBuilder";
|
|
|
7
7
|
* @author HaJuegos - 30-09-2026
|
|
8
8
|
*/
|
|
9
9
|
export declare class FinalEntityBuilderTemplate extends BehaviorEntityBuilder {
|
|
10
|
+
/**
|
|
11
|
+
* Variable general para identificar un valor unico y completo para separar los valores a eliminar de la plantilla base.
|
|
12
|
+
* @type {symbol}
|
|
13
|
+
* @readonly
|
|
14
|
+
* @private
|
|
15
|
+
*/
|
|
16
|
+
private readonly removedList;
|
|
17
|
+
/**
|
|
18
|
+
* Variable general para identificar los keys dentro de los eventos generales.
|
|
19
|
+
* @type {string[]}
|
|
20
|
+
* @readonly
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
private readonly metaKeys;
|
|
10
24
|
/**
|
|
11
25
|
* Argumentos principales para la creacion de una entidad a base de una plantilla en concreto.
|
|
12
26
|
* @param {LoseDefinition} def Los valores definidos de la entidad en la plantilla.
|
|
@@ -77,6 +91,24 @@ export declare class FinalEntityBuilderTemplate extends BehaviorEntityBuilder {
|
|
|
77
91
|
* @private
|
|
78
92
|
*/
|
|
79
93
|
private validateEvents;
|
|
94
|
+
/**
|
|
95
|
+
* Metodo auxiliar que comprueba de forma recursiva si un nodo contiene, como subconjunto, todo lo indicado de la mascara. Comparando cada clave.
|
|
96
|
+
* @param {unknown} node Nodo real de la plantilla base a evaluar.
|
|
97
|
+
* @param {unknown} mask Mascara de los valroes que deben estar presentes en el nodo.
|
|
98
|
+
* @returns {boolean} Devuelve true si el nodo contiene una mascara, de lo contrario, sera false.
|
|
99
|
+
* @author HaJuegos - 26-10-2026
|
|
100
|
+
* @private
|
|
101
|
+
*/
|
|
102
|
+
private matches;
|
|
103
|
+
/**
|
|
104
|
+
* Metodo auxiliar que elimina de forma no mutante, de un nodo, lo indicado en la mascara. Si la mascara es true se elimina el nodo por completo.
|
|
105
|
+
* @param {unknown} node Nodo real de la plantilla base a cual aplicar los cambios.
|
|
106
|
+
* @param {unknown} mask Mascara que describe lo que se debe eliminar.
|
|
107
|
+
* @returns {unknown} Devuelve el nodo resultante o el simbolo interno removedList si el nodo debe eliminarse por completo.
|
|
108
|
+
* @author HaJuegos - 26-10-2026
|
|
109
|
+
* @private
|
|
110
|
+
*/
|
|
111
|
+
private prune;
|
|
80
112
|
}
|
|
81
113
|
/**
|
|
82
114
|
* Funcion principal de fabrica para la creacion de una entidad custom o vanilla a partir de una definicion fija.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityTemplateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builders/behaviors/entities/EntityTemplateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,iBAAiB,EAAqD,iBAAiB,EAAE,sBAAsB,EAAE,UAAU,EAAe,cAAc,EAAE,QAAQ,EAAE,MAAM,oDAAoD,CAAC;AAC3R,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,qBAAqB;IACjE;;;;;;OAMG;IACH,YAAa,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"EntityTemplateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builders/behaviors/entities/EntityTemplateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,iBAAiB,EAAqD,iBAAiB,EAAE,sBAAsB,EAAE,UAAU,EAAe,cAAc,EAAE,QAAQ,EAAE,MAAM,oDAAoD,CAAC;AAC3R,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;;;;GAKG;AACH,qBAAa,0BAA2B,SAAQ,qBAAqB;IACjE;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IAEjF;;;;;;OAMG;IACH,YAAa,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAmI/C;IAED;;;;;OAKG;IACI,UAAU,IAAI,MAAM,CAE1B;IAED;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,QAAQ;IAwBhB;;;;;;;;OAQG;IACH,OAAO,CAAC,IAAI;IAcZ;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,cAAc;IAoCtB;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO;IAaf;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK;CAmDhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC1B,KAAK,CAAC,KAAK,SAAS,SAAS,iBAAiB,EAAE,EAChD,KAAK,CAAC,EAAE,SAAS,sBAAsB,EACvC,EAAE,SAAS,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAC9C,GAAG,EAAE,qBAAqB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAEnC,KAAK,CAAC,EAAE,SAAS,SAAS,iBAAiB,EAAE,GAAG,EAAE,EAClD,KAAK,CAAC,EAAE,SAAS,sBAAsB,GAAG,EAAE,SACxC,0BAA0B,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,KAAQ,0BAA0B,CAG9F"}
|
package/dist/index.d.ts
CHANGED
|
@@ -42,6 +42,7 @@ export type { BPLootTableTemplateDef, BPLootTableFinalOverDefinition, BPLootTabl
|
|
|
42
42
|
export type { BPRecipeDefinition, BPRecipeOverrideDefinition } from "./types/behaviors/recipes/RecipeTemplate";
|
|
43
43
|
export type { BPSpawnRuleDefinition, BPSpawnRuleOverride, BPSpawnRuleTemplateInstance } from "./types/behaviors/spawnRules/SpawnRuleTemplate";
|
|
44
44
|
export type { BPTradingDefinition, BPTradingOverInstance, BPTradingOverride } from "./types/behaviors/trading/TradingTemplate";
|
|
45
|
+
export { SpawnCategoryEntities, FormatVersionEntities } from "./types/behaviors/entities/EntitiesEnums";
|
|
45
46
|
export { EntityFilters } from './utils/EntityFilters';
|
|
46
47
|
export { MoLang } from './utils/MoLang';
|
|
47
48
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13223,6 +13223,30 @@ import { MinecraftEntityTypes } from "@minecraft/vanilla-data";
|
|
|
13223
13223
|
// src/types/behaviors/entities/EntitiesTemplate.ts
|
|
13224
13224
|
var BPEntityDefaultEventsNames = ["minecraft:entity_spawned", "minecraft:entity_transformed", "minecraft:entity_born", "minecraft:on_prime"];
|
|
13225
13225
|
|
|
13226
|
+
// src/types/behaviors/entities/EntitiesEnums.ts
|
|
13227
|
+
var FormatVersionEntities = /* @__PURE__ */ ((FormatVersionEntities2) => {
|
|
13228
|
+
FormatVersionEntities2["MostRecent"] = "1.26.50";
|
|
13229
|
+
FormatVersionEntities2["MostOlder"] = "1.21.90";
|
|
13230
|
+
FormatVersionEntities2["V1_26_0"] = "1.26.0";
|
|
13231
|
+
FormatVersionEntities2["V1_26_10"] = "1.26.10";
|
|
13232
|
+
FormatVersionEntities2["V1_26_20"] = "1.26.20";
|
|
13233
|
+
FormatVersionEntities2["V1_26_30"] = "1.26.30";
|
|
13234
|
+
FormatVersionEntities2["V1_26_40"] = "1.26.40";
|
|
13235
|
+
FormatVersionEntities2["V1_21_90"] = "1.21.90";
|
|
13236
|
+
return FormatVersionEntities2;
|
|
13237
|
+
})(FormatVersionEntities || {});
|
|
13238
|
+
var SpawnCategoryEntities = /* @__PURE__ */ ((SpawnCategoryEntities2) => {
|
|
13239
|
+
SpawnCategoryEntities2["Ambient"] = "ambient";
|
|
13240
|
+
SpawnCategoryEntities2["Axolotls"] = "axolotls";
|
|
13241
|
+
SpawnCategoryEntities2["Creature"] = "creature";
|
|
13242
|
+
SpawnCategoryEntities2["Misc"] = "misc";
|
|
13243
|
+
SpawnCategoryEntities2["Monster"] = "monster";
|
|
13244
|
+
SpawnCategoryEntities2["UndergroundWaterCreature"] = "underground_water_creature";
|
|
13245
|
+
SpawnCategoryEntities2["WaterAmbient"] = "water_ambient";
|
|
13246
|
+
SpawnCategoryEntities2["WaterCreature"] = "water_creature";
|
|
13247
|
+
return SpawnCategoryEntities2;
|
|
13248
|
+
})(SpawnCategoryEntities || {});
|
|
13249
|
+
|
|
13226
13250
|
// src/builders/behaviors/entities/EntityBuilder.ts
|
|
13227
13251
|
var BehaviorEntityBuilder = class {
|
|
13228
13252
|
/**
|
|
@@ -13415,6 +13439,20 @@ var FinalEntityBuilderTemplate = class extends BehaviorEntityBuilder {
|
|
|
13415
13439
|
*/
|
|
13416
13440
|
constructor(def, over) {
|
|
13417
13441
|
super(def.id);
|
|
13442
|
+
/**
|
|
13443
|
+
* Variable general para identificar un valor unico y completo para separar los valores a eliminar de la plantilla base.
|
|
13444
|
+
* @type {symbol}
|
|
13445
|
+
* @readonly
|
|
13446
|
+
* @private
|
|
13447
|
+
*/
|
|
13448
|
+
this.removedList = /* @__PURE__ */ Symbol("removed");
|
|
13449
|
+
/**
|
|
13450
|
+
* Variable general para identificar los keys dentro de los eventos generales.
|
|
13451
|
+
* @type {string[]}
|
|
13452
|
+
* @readonly
|
|
13453
|
+
* @private
|
|
13454
|
+
*/
|
|
13455
|
+
this.metaKeys = ["weight", "filters", "target", "trigger"];
|
|
13418
13456
|
const where = `[${def.id}]`;
|
|
13419
13457
|
if (def.formatVersion) {
|
|
13420
13458
|
this.setDefaultVersion(def.formatVersion);
|
|
@@ -13439,22 +13477,49 @@ var FinalEntityBuilderTemplate = class extends BehaviorEntityBuilder {
|
|
|
13439
13477
|
}
|
|
13440
13478
|
const baseComps = over.clearAllData ? {} : this.byID(def.components, `${where} components`);
|
|
13441
13479
|
const comps = over.clearAllData ? {} : this.patchMap(baseComps, over.components, `${where} components`);
|
|
13480
|
+
if (!over.clearAllData) {
|
|
13481
|
+
for (const id of over.remove?.components ?? []) {
|
|
13482
|
+
if (!(id in comps)) {
|
|
13483
|
+
throw new Error(`${where} remove.components: "${id}" no existe en la plantilla base.`);
|
|
13484
|
+
}
|
|
13485
|
+
delete comps[id];
|
|
13486
|
+
}
|
|
13487
|
+
}
|
|
13442
13488
|
this.addUnique(comps, over.add?.components, `${where} add.components`, "components");
|
|
13443
13489
|
const compsGroups = {};
|
|
13444
|
-
if (!over.clearAllData
|
|
13490
|
+
if (!over.clearAllData) {
|
|
13445
13491
|
for (const id of Object.keys(over.componentsGroups ?? {})) {
|
|
13446
|
-
if (!(id in def.componentsGroups)) {
|
|
13492
|
+
if (!(id in (def.componentsGroups ?? {}))) {
|
|
13447
13493
|
throw new Error(`${where} componentsGroups: el grupo "${id}" no existe en la plantilla base. Usa add.componentsGroups para crearlo y a\xF1adirlo a la plantilla base.`);
|
|
13448
13494
|
}
|
|
13449
13495
|
}
|
|
13450
|
-
for (const [id, list] of Object.entries(def.componentsGroups)) {
|
|
13496
|
+
for (const [id, list] of Object.entries(def.componentsGroups ?? {})) {
|
|
13451
13497
|
const groupOverride = over.componentsGroups?.[id];
|
|
13452
|
-
if (groupOverride
|
|
13498
|
+
if (groupOverride === null) {
|
|
13453
13499
|
continue;
|
|
13454
13500
|
}
|
|
13455
|
-
;
|
|
13456
13501
|
const path = `${where} componentsGroups."${id}"`;
|
|
13457
|
-
|
|
13502
|
+
const baseGroup = this.byID(list, path);
|
|
13503
|
+
compsGroups[id] = groupOverride ? this.patchMap(baseGroup, groupOverride, path) : baseGroup;
|
|
13504
|
+
}
|
|
13505
|
+
for (const [id, ids] of Object.entries(over.remove?.componentsGroups ?? {})) {
|
|
13506
|
+
const path = `${where} remove.componentsGroups."${id}"`;
|
|
13507
|
+
if (!(id in compsGroups)) {
|
|
13508
|
+
throw new Error(`${path}: el grupo no existe en la plantilla base.`);
|
|
13509
|
+
}
|
|
13510
|
+
if (!Array.isArray(ids) || ids.length == 0) {
|
|
13511
|
+
delete compsGroups[id];
|
|
13512
|
+
continue;
|
|
13513
|
+
}
|
|
13514
|
+
for (const compId of ids) {
|
|
13515
|
+
if (!(compId in compsGroups[id])) {
|
|
13516
|
+
throw new Error(`${path}: el componente "${compId}" no existe en el grupo.`);
|
|
13517
|
+
}
|
|
13518
|
+
delete compsGroups[id][compId];
|
|
13519
|
+
}
|
|
13520
|
+
if (Object.keys(compsGroups[id]).length == 0) {
|
|
13521
|
+
delete compsGroups[id];
|
|
13522
|
+
}
|
|
13458
13523
|
}
|
|
13459
13524
|
}
|
|
13460
13525
|
for (const [id, list] of Object.entries(over.add?.componentsGroups ?? {})) {
|
|
@@ -13463,6 +13528,19 @@ var FinalEntityBuilderTemplate = class extends BehaviorEntityBuilder {
|
|
|
13463
13528
|
}
|
|
13464
13529
|
const baseEvents = over.clearAllData ? {} : this.patchMap(def.events, over.events, `${where} events`, BPEntityDefaultEventsNames);
|
|
13465
13530
|
const events = { ...baseEvents };
|
|
13531
|
+
if (!over.clearAllData) {
|
|
13532
|
+
for (const [name, mask] of Object.entries(over.remove?.events ?? {})) {
|
|
13533
|
+
if (!(name in events)) {
|
|
13534
|
+
throw new Error(`${where} remove.events: el evento "${name}" no existe en la plantilla base.`);
|
|
13535
|
+
}
|
|
13536
|
+
const res = mask === true || Object.keys(mask).length == 0 ? this.removedList : this.prune(events[name], mask);
|
|
13537
|
+
if (res === this.removedList) {
|
|
13538
|
+
delete events[name];
|
|
13539
|
+
} else {
|
|
13540
|
+
events[name] = res;
|
|
13541
|
+
}
|
|
13542
|
+
}
|
|
13543
|
+
}
|
|
13466
13544
|
for (const [name, event] of Object.entries(over.add?.events ?? {})) {
|
|
13467
13545
|
if (!over.clearAllData && name in events) {
|
|
13468
13546
|
throw new Error(`${where} add.events: el evento "${name}" ya existe en la plantilla base. Usa events para reemplazarlo de la plantilla base.`);
|
|
@@ -13599,6 +13677,70 @@ var FinalEntityBuilderTemplate = class extends BehaviorEntityBuilder {
|
|
|
13599
13677
|
walk(event, name);
|
|
13600
13678
|
}
|
|
13601
13679
|
}
|
|
13680
|
+
/**
|
|
13681
|
+
* Metodo auxiliar que comprueba de forma recursiva si un nodo contiene, como subconjunto, todo lo indicado de la mascara. Comparando cada clave.
|
|
13682
|
+
* @param {unknown} node Nodo real de la plantilla base a evaluar.
|
|
13683
|
+
* @param {unknown} mask Mascara de los valroes que deben estar presentes en el nodo.
|
|
13684
|
+
* @returns {boolean} Devuelve true si el nodo contiene una mascara, de lo contrario, sera false.
|
|
13685
|
+
* @author HaJuegos - 26-10-2026
|
|
13686
|
+
* @private
|
|
13687
|
+
*/
|
|
13688
|
+
matches(node, mask) {
|
|
13689
|
+
if (Array.isArray(mask)) {
|
|
13690
|
+
return Array.isArray(node) && mask.every((m) => node.some((n) => this.matches(n, m)));
|
|
13691
|
+
}
|
|
13692
|
+
if (mask && typeof mask == "object") {
|
|
13693
|
+
return !!node && typeof node == "object" && !Array.isArray(node) && Object.entries(mask).every(([k, v]) => k in node && this.matches(node[k], v));
|
|
13694
|
+
}
|
|
13695
|
+
return node === mask;
|
|
13696
|
+
}
|
|
13697
|
+
/**
|
|
13698
|
+
* Metodo auxiliar que elimina de forma no mutante, de un nodo, lo indicado en la mascara. Si la mascara es true se elimina el nodo por completo.
|
|
13699
|
+
* @param {unknown} node Nodo real de la plantilla base a cual aplicar los cambios.
|
|
13700
|
+
* @param {unknown} mask Mascara que describe lo que se debe eliminar.
|
|
13701
|
+
* @returns {unknown} Devuelve el nodo resultante o el simbolo interno removedList si el nodo debe eliminarse por completo.
|
|
13702
|
+
* @author HaJuegos - 26-10-2026
|
|
13703
|
+
* @private
|
|
13704
|
+
*/
|
|
13705
|
+
prune(node, mask) {
|
|
13706
|
+
if (mask === true) {
|
|
13707
|
+
return this.removedList;
|
|
13708
|
+
}
|
|
13709
|
+
if (Array.isArray(node) && Array.isArray(mask)) {
|
|
13710
|
+
const out = [];
|
|
13711
|
+
for (const item of node) {
|
|
13712
|
+
let current = item;
|
|
13713
|
+
for (const m of mask) {
|
|
13714
|
+
if (current === this.removedList) {
|
|
13715
|
+
break;
|
|
13716
|
+
}
|
|
13717
|
+
if (current && typeof current == "object" ? this.matches(current, m) : current === m) {
|
|
13718
|
+
current = typeof m == "object" && m != null ? this.prune(current, m) : this.removedList;
|
|
13719
|
+
}
|
|
13720
|
+
}
|
|
13721
|
+
if (current !== this.removedList) {
|
|
13722
|
+
out.push(current);
|
|
13723
|
+
}
|
|
13724
|
+
}
|
|
13725
|
+
return out.length ? out : this.removedList;
|
|
13726
|
+
}
|
|
13727
|
+
if (node && mask && typeof node == "object" && typeof mask == "object" && !Array.isArray(node) && !Array.isArray(mask)) {
|
|
13728
|
+
const out = { ...node };
|
|
13729
|
+
for (const [key, sub] of Object.entries(mask)) {
|
|
13730
|
+
if (!(key in out) || this.metaKeys.includes(key)) {
|
|
13731
|
+
continue;
|
|
13732
|
+
}
|
|
13733
|
+
const res = this.prune(out[key], sub);
|
|
13734
|
+
if (res === this.removedList) {
|
|
13735
|
+
delete out[key];
|
|
13736
|
+
} else {
|
|
13737
|
+
out[key] = res;
|
|
13738
|
+
}
|
|
13739
|
+
}
|
|
13740
|
+
return Object.keys(out).every((k) => this.metaKeys.includes(k)) ? this.removedList : out;
|
|
13741
|
+
}
|
|
13742
|
+
return node;
|
|
13743
|
+
}
|
|
13602
13744
|
};
|
|
13603
13745
|
function createBPEntity(def) {
|
|
13604
13746
|
return (over = {}) => {
|
|
@@ -52356,7 +52498,6 @@ var TntTemplate = createBPEntity({
|
|
|
52356
52498
|
}),
|
|
52357
52499
|
new root_exports4.SetPhysics(),
|
|
52358
52500
|
new root_exports4.SetPushableByBlock(),
|
|
52359
|
-
new root_exports4.SetPushableByEntity(),
|
|
52360
52501
|
new root_exports4.SetTypeFamily({
|
|
52361
52502
|
family: ["tnt", "inanimate"]
|
|
52362
52503
|
})
|
|
@@ -169836,7 +169977,9 @@ export {
|
|
|
169836
169977
|
root_exports31 as BPSpawnRuleTemplates,
|
|
169837
169978
|
root_exports33 as BPTradingTemplates,
|
|
169838
169979
|
EntityFilters,
|
|
169980
|
+
FormatVersionEntities,
|
|
169839
169981
|
MoLang,
|
|
169982
|
+
SpawnCategoryEntities,
|
|
169840
169983
|
createBPAnimController,
|
|
169841
169984
|
createBPBiome,
|
|
169842
169985
|
createBPBlock,
|