simplified-mojang-jsons 0.0.15 → 0.0.17
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/resources/renderControllers/RenderControllerTemplateBuilder.d.ts +26 -0
- package/dist/builders/resources/renderControllers/RenderControllerTemplateBuilder.d.ts.map +1 -1
- package/dist/index.js +106 -8
- package/dist/index.js.map +2 -2
- package/dist/types/resources/materials/entity/MaterialEntityTemplates.d.ts +2 -2
- package/dist/types/resources/materials/entity/MaterialEntityTemplates.d.ts.map +1 -1
- package/dist/types/resources/renderControllers/RenderControllerTemplate.d.ts +35 -7
- package/dist/types/resources/renderControllers/RenderControllerTemplate.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -35,6 +35,32 @@ export declare class FinalRPRenderControllerTemplateBuilder extends ResourceRend
|
|
|
35
35
|
* @private
|
|
36
36
|
*/
|
|
37
37
|
private deepMerge;
|
|
38
|
+
/**
|
|
39
|
+
* Metodo auxiliar que aplica las modificaciones post-edicion del render controller con las bases existentes.
|
|
40
|
+
* @param {RenderControllerBaseParams[]} renders Lista de bases a modificar.
|
|
41
|
+
* @param {Record<string, unknown>} patch Objecto con los cambios a aplicar para el render.
|
|
42
|
+
* @returns {void}
|
|
43
|
+
* @author HaJuegos - 05-11-2026
|
|
44
|
+
* @private
|
|
45
|
+
*/
|
|
46
|
+
private applyChange;
|
|
47
|
+
/**
|
|
48
|
+
* Metodo auxiliar que procesa e integra elementos adicionales, ya sea añadeindo nuevos renders completos o extendiendo los que ya estan definidos.
|
|
49
|
+
* @param {RenderControllerBaseParams[]} renders Lista de renders donde se integraran los elementos.
|
|
50
|
+
* @param {Array<RenderControllerBaseParams | Record<string, unknown>>} addItems Lista de nuevos renders o ediciones a procesar.
|
|
51
|
+
* @returns {void}
|
|
52
|
+
* @author HaJuegos - 05-11-2026
|
|
53
|
+
* @private
|
|
54
|
+
*/
|
|
55
|
+
private applyAdd;
|
|
56
|
+
/**
|
|
57
|
+
* Metodo auxiliar que filtra y extrae unicamente los renders completos nuevos especificados en la seccion de adicion cuando se limpian todos los datos previos.
|
|
58
|
+
* @param {Array<RenderControllerBaseParams | Record<string, unknown>>} addItems Lista de elementos mixtos de adicion.
|
|
59
|
+
* @returns {RenderControllerBaseParams[]} Devuelve la lista filtrada conteniendo solo los ernder completos validos.
|
|
60
|
+
* @author HaJuegos - 05-11-2026
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
private fixAdd;
|
|
38
64
|
/**
|
|
39
65
|
* Metodo auxiliar que integra la eliminacion profunda de datos aplicados en remove en la post-edicion en caso de eliminarse uno o varios datos a la vez.
|
|
40
66
|
* @template T Datos a considerar en cuestion.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RenderControllerTemplateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builders/resources/renderControllers/RenderControllerTemplateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAC3K,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAE5E;;;;;;GAMG;AACH,qBAAa,sCAAuC,SAAQ,+BAA+B;IACvF;;;;;;;OAOG;IACH,YAAoB,GAAG,EAAE,4BAA4B,EAAE,IAAI,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"RenderControllerTemplateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/builders/resources/renderControllers/RenderControllerTemplateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;AAC3K,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAE5E;;;;;;GAMG;AACH,qBAAa,sCAAuC,SAAQ,+BAA+B;IACvF;;;;;;;OAOG;IACH,YAAoB,GAAG,EAAE,4BAA4B,EAAE,IAAI,EAAE,0BAA0B,EAwBtF;IAED;;;;;;OAMG;IACH,OAAO,CAAC,KAAK;IAIb;;;;;;;;OAQG;IACH,OAAO,CAAC,SAAS;IAkBjB;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA8BnB;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ;IA8BhB;;;;;;OAMG;IACH,OAAO,CAAC,MAAM;IAWd;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IA2CnB;;;;;OAKG;IACI,UAAU,IAAI,MAAM,CAE1B;CACJ;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACpC,KAAK,CAAC,KAAK,SAAS,4BAA4B,EAClD,GAAG,EAAE,KAAK,WACM,0BAA0B,CAAC,KAAK,CAAC,4CAGlD"}
|
package/dist/index.js
CHANGED
|
@@ -227225,7 +227225,7 @@ var ResourceMaterialEntityBuilder = class {
|
|
|
227225
227225
|
return this;
|
|
227226
227226
|
}
|
|
227227
227227
|
convertToJSON(stringify) {
|
|
227228
|
-
const materials = {};
|
|
227228
|
+
const materials = { version: "1.0.0" };
|
|
227229
227229
|
for (const { idMaterial, idMaterialReference, variants, ...rest } of this.materialsData ?? []) {
|
|
227230
227230
|
const finalId = idMaterialReference ? `${idMaterial}:${idMaterialReference}` : idMaterial;
|
|
227231
227231
|
materials[finalId] = {
|
|
@@ -230682,16 +230682,17 @@ var FinalRPRenderControllerTemplateBuilder = class extends ResourceRenderControl
|
|
|
230682
230682
|
super();
|
|
230683
230683
|
let finalRenders = structuredClone(def.renderControllers);
|
|
230684
230684
|
if (over.clearAllData) {
|
|
230685
|
-
finalRenders = over.add ?
|
|
230685
|
+
finalRenders = over.add ? this.fixAdd(over.add) : [];
|
|
230686
230686
|
} else {
|
|
230687
|
-
if (over.changeRender) {
|
|
230688
|
-
this.deepMerge(finalRenders, over.changeRender);
|
|
230689
|
-
}
|
|
230690
230687
|
if (over.remove) {
|
|
230691
|
-
|
|
230688
|
+
const rm = over.remove;
|
|
230689
|
+
finalRenders = finalRenders.map((r) => r.idRender in rm ? this.applyRemove(r, rm[r.idRender]) : r).filter((r) => r !== void 0);
|
|
230690
|
+
}
|
|
230691
|
+
if (over.changeRender) {
|
|
230692
|
+
this.applyChange(finalRenders, over.changeRender);
|
|
230692
230693
|
}
|
|
230693
230694
|
if (over.add) {
|
|
230694
|
-
this.
|
|
230695
|
+
this.applyAdd(finalRenders, over.add);
|
|
230695
230696
|
}
|
|
230696
230697
|
}
|
|
230697
230698
|
this.setDataRender(finalRenders);
|
|
@@ -230716,16 +230717,100 @@ var FinalRPRenderControllerTemplateBuilder = class extends ResourceRenderControl
|
|
|
230716
230717
|
* @private
|
|
230717
230718
|
*/
|
|
230718
230719
|
deepMerge(base, patch) {
|
|
230720
|
+
if (Array.isArray(base) && Array.isArray(patch)) {
|
|
230721
|
+
return [...base, ...patch];
|
|
230722
|
+
}
|
|
230719
230723
|
if (!this.isObj(base) || !this.isObj(patch)) {
|
|
230720
230724
|
return patch ?? base;
|
|
230721
230725
|
}
|
|
230722
230726
|
;
|
|
230723
230727
|
const out = { ...base };
|
|
230724
230728
|
for (const [k, v] of Object.entries(patch)) {
|
|
230725
|
-
out[k] = this.isObj(v) && this.isObj(out[k]) ? this.deepMerge(out[k], v) : v;
|
|
230729
|
+
out[k] = this.isObj(v) && this.isObj(out[k]) || Array.isArray(out[k]) && Array.isArray(v) ? this.deepMerge(out[k], v) : v;
|
|
230726
230730
|
}
|
|
230727
230731
|
return out;
|
|
230728
230732
|
}
|
|
230733
|
+
/**
|
|
230734
|
+
* Metodo auxiliar que aplica las modificaciones post-edicion del render controller con las bases existentes.
|
|
230735
|
+
* @param {RenderControllerBaseParams[]} renders Lista de bases a modificar.
|
|
230736
|
+
* @param {Record<string, unknown>} patch Objecto con los cambios a aplicar para el render.
|
|
230737
|
+
* @returns {void}
|
|
230738
|
+
* @author HaJuegos - 05-11-2026
|
|
230739
|
+
* @private
|
|
230740
|
+
*/
|
|
230741
|
+
applyChange(renders, patch) {
|
|
230742
|
+
for (const [idRender, changes] of Object.entries(patch)) {
|
|
230743
|
+
const target = renders.find((r) => r.idRender == idRender);
|
|
230744
|
+
if (target && this.isObj(changes)) {
|
|
230745
|
+
for (const [prop, val] of Object.entries(changes)) {
|
|
230746
|
+
const targetValue = target[prop];
|
|
230747
|
+
if (Array.isArray(targetValue) && this.isObj(val)) {
|
|
230748
|
+
const arr = targetValue;
|
|
230749
|
+
for (const [idxStr, itemVal] of Object.entries(val)) {
|
|
230750
|
+
const idx = Number(idxStr);
|
|
230751
|
+
if (!Number.isInteger(idx) || idx < 0 || idx >= arr.length) {
|
|
230752
|
+
continue;
|
|
230753
|
+
}
|
|
230754
|
+
arr[idx] = this.deepMerge(arr[idx], itemVal);
|
|
230755
|
+
}
|
|
230756
|
+
} else if (this.isObj(targetValue) && this.isObj(val)) {
|
|
230757
|
+
target[prop] = this.deepMerge(targetValue, val);
|
|
230758
|
+
} else {
|
|
230759
|
+
target[prop] = val;
|
|
230760
|
+
}
|
|
230761
|
+
}
|
|
230762
|
+
}
|
|
230763
|
+
}
|
|
230764
|
+
}
|
|
230765
|
+
/**
|
|
230766
|
+
* Metodo auxiliar que procesa e integra elementos adicionales, ya sea añadeindo nuevos renders completos o extendiendo los que ya estan definidos.
|
|
230767
|
+
* @param {RenderControllerBaseParams[]} renders Lista de renders donde se integraran los elementos.
|
|
230768
|
+
* @param {Array<RenderControllerBaseParams | Record<string, unknown>>} addItems Lista de nuevos renders o ediciones a procesar.
|
|
230769
|
+
* @returns {void}
|
|
230770
|
+
* @author HaJuegos - 05-11-2026
|
|
230771
|
+
* @private
|
|
230772
|
+
*/
|
|
230773
|
+
applyAdd(renders, addItems) {
|
|
230774
|
+
for (const item of addItems) {
|
|
230775
|
+
if (!this.isObj(item)) continue;
|
|
230776
|
+
if ("idRender" in item && typeof item.idRender === "string") {
|
|
230777
|
+
renders.push(item);
|
|
230778
|
+
} else {
|
|
230779
|
+
for (const [idRender, changes] of Object.entries(item)) {
|
|
230780
|
+
const target = renders.find((r) => r.idRender == idRender);
|
|
230781
|
+
if (target && this.isObj(changes)) {
|
|
230782
|
+
for (const [prop, val] of Object.entries(changes)) {
|
|
230783
|
+
const targetValue = target[prop];
|
|
230784
|
+
if (Array.isArray(targetValue) && Array.isArray(val)) {
|
|
230785
|
+
const targetArr = targetValue;
|
|
230786
|
+
targetArr.push(...val);
|
|
230787
|
+
} else if (this.isObj(targetValue) && this.isObj(val)) {
|
|
230788
|
+
target[prop] = this.deepMerge(targetValue, val);
|
|
230789
|
+
} else {
|
|
230790
|
+
target[prop] = val;
|
|
230791
|
+
}
|
|
230792
|
+
}
|
|
230793
|
+
}
|
|
230794
|
+
}
|
|
230795
|
+
}
|
|
230796
|
+
}
|
|
230797
|
+
}
|
|
230798
|
+
/**
|
|
230799
|
+
* Metodo auxiliar que filtra y extrae unicamente los renders completos nuevos especificados en la seccion de adicion cuando se limpian todos los datos previos.
|
|
230800
|
+
* @param {Array<RenderControllerBaseParams | Record<string, unknown>>} addItems Lista de elementos mixtos de adicion.
|
|
230801
|
+
* @returns {RenderControllerBaseParams[]} Devuelve la lista filtrada conteniendo solo los ernder completos validos.
|
|
230802
|
+
* @author HaJuegos - 05-11-2026
|
|
230803
|
+
* @private
|
|
230804
|
+
*/
|
|
230805
|
+
fixAdd(addItems) {
|
|
230806
|
+
const renders = [];
|
|
230807
|
+
for (const item of addItems) {
|
|
230808
|
+
if (this.isObj(item) && "idRender" in item && typeof item.idRender == "string") {
|
|
230809
|
+
renders.push(item);
|
|
230810
|
+
}
|
|
230811
|
+
}
|
|
230812
|
+
return renders;
|
|
230813
|
+
}
|
|
230729
230814
|
/**
|
|
230730
230815
|
* Metodo auxiliar que integra la eliminacion profunda de datos aplicados en remove en la post-edicion en caso de eliminarse uno o varios datos a la vez.
|
|
230731
230816
|
* @template T Datos a considerar en cuestion.
|
|
@@ -230739,6 +230824,19 @@ var FinalRPRenderControllerTemplateBuilder = class extends ResourceRenderControl
|
|
|
230739
230824
|
if (rm === true) {
|
|
230740
230825
|
return void 0;
|
|
230741
230826
|
}
|
|
230827
|
+
if (Array.isArray(base) && this.isObj(rm)) {
|
|
230828
|
+
const arr = [...base];
|
|
230829
|
+
const indices = Object.keys(rm).map(Number).filter((idx) => Number.isInteger(idx) && idx >= 0 && idx < arr.length).sort((a, b) => b - a);
|
|
230830
|
+
for (const idx of indices) {
|
|
230831
|
+
const val = rm[idx];
|
|
230832
|
+
if (val === true) {
|
|
230833
|
+
arr.splice(idx, 1);
|
|
230834
|
+
} else {
|
|
230835
|
+
arr[idx] = this.applyRemove(arr[idx], val);
|
|
230836
|
+
}
|
|
230837
|
+
}
|
|
230838
|
+
return arr;
|
|
230839
|
+
}
|
|
230742
230840
|
if (Array.isArray(base) && Array.isArray(rm)) {
|
|
230743
230841
|
return base.filter((item) => !rm.includes(item));
|
|
230744
230842
|
}
|