@adatechnology/game-vehicles-three 0.3.0 → 0.3.1
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/index.global.js +80 -71
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.global.js
CHANGED
|
@@ -41,6 +41,84 @@ var GameVehiclesThree = (() => {
|
|
|
41
41
|
loadVehiclesTestModule: () => loadVehiclesTestModule
|
|
42
42
|
});
|
|
43
43
|
|
|
44
|
+
// ../game-contracts/dist/index.js
|
|
45
|
+
var DEFAULT_IGNITION_RULES = {
|
|
46
|
+
fillCurve: [
|
|
47
|
+
[0, 0.6],
|
|
48
|
+
[0.1, 1],
|
|
49
|
+
[0.35, 0.6],
|
|
50
|
+
[0.65, 0.3],
|
|
51
|
+
[0.9, 0.15],
|
|
52
|
+
[1, 0.12]
|
|
53
|
+
],
|
|
54
|
+
flameFillInfluence: 0.5,
|
|
55
|
+
flameDefaults: { incendiary: 0.7, tracer: 0.2 },
|
|
56
|
+
sparkTarget: { steel: 1, iron: 1, aluminium: 0.25 },
|
|
57
|
+
sparkMetalDefault: 0.5,
|
|
58
|
+
sparkFluid: { diesel: 0.15 },
|
|
59
|
+
fireNear: { radius: 1.5, chancePerSecond: 0.5 }
|
|
60
|
+
};
|
|
61
|
+
var resolveIgnitionRules = (rules) => ({
|
|
62
|
+
...DEFAULT_IGNITION_RULES,
|
|
63
|
+
...rules,
|
|
64
|
+
flameDefaults: { ...DEFAULT_IGNITION_RULES.flameDefaults, ...rules?.flameDefaults },
|
|
65
|
+
sparkTarget: { ...DEFAULT_IGNITION_RULES.sparkTarget, ...rules?.sparkTarget },
|
|
66
|
+
sparkFluid: { ...DEFAULT_IGNITION_RULES.sparkFluid, ...rules?.sparkFluid },
|
|
67
|
+
fireNear: { ...DEFAULT_IGNITION_RULES.fireNear, ...rules?.fireNear }
|
|
68
|
+
});
|
|
69
|
+
var fillFactor = (fill2, curve = DEFAULT_IGNITION_RULES.fillCurve) => {
|
|
70
|
+
if (curve.length === 0) return 1;
|
|
71
|
+
const f = Math.min(1, Math.max(0, fill2));
|
|
72
|
+
if (f <= curve[0][0]) return curve[0][1];
|
|
73
|
+
for (let i = 1; i < curve.length; i++) {
|
|
74
|
+
const [x1, y1] = curve[i];
|
|
75
|
+
const [x0, y0] = curve[i - 1];
|
|
76
|
+
if (f <= x1) return x1 === x0 ? y1 : y0 + (y1 - y0) * (f - x0) / (x1 - x0);
|
|
77
|
+
}
|
|
78
|
+
return curve[curve.length - 1][1];
|
|
79
|
+
};
|
|
80
|
+
var sparkTargetFactor = (materialId, metal, rules = DEFAULT_IGNITION_RULES) => !metal ? 0 : rules.sparkTarget[materialId] ?? rules.sparkMetalDefault;
|
|
81
|
+
var ignitionChance = (hit, target, rules = DEFAULT_IGNITION_RULES) => {
|
|
82
|
+
const k = fillFactor(target.fill, rules.fillCurve);
|
|
83
|
+
const spark = (hit.ignition?.spark ?? 0) * target.sparkTarget * (target.fluid === void 0 ? 1 : rules.sparkFluid[target.fluid] ?? 1) * k;
|
|
84
|
+
const flameBase = hit.ignition?.flame ?? Math.max(hit.incendiary ? rules.flameDefaults.incendiary : 0, hit.tracer ? rules.flameDefaults.tracer : 0);
|
|
85
|
+
const flame = flameBase * (1 - rules.flameFillInfluence * (1 - k));
|
|
86
|
+
return 1 - (1 - Math.min(1, Math.max(0, spark))) * (1 - Math.min(1, Math.max(0, flame)));
|
|
87
|
+
};
|
|
88
|
+
var UNSAFE_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
|
|
89
|
+
var isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
|
|
90
|
+
var deepMerge = (base, patch) => {
|
|
91
|
+
if (!patch) return base;
|
|
92
|
+
const result = { ...base };
|
|
93
|
+
for (const [key, value] of Object.entries(patch)) {
|
|
94
|
+
if (value === void 0 || UNSAFE_KEYS.has(key)) continue;
|
|
95
|
+
const current = result[key];
|
|
96
|
+
result[key] = isPlainObject(current) && isPlainObject(value) ? deepMerge(current, value) : value;
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
};
|
|
100
|
+
var mergeById = (shipped, extra) => {
|
|
101
|
+
const entries = /* @__PURE__ */ new Map();
|
|
102
|
+
for (const entry of [...shipped, ...extra ?? []]) entries.set(entry.id, entry);
|
|
103
|
+
return entries;
|
|
104
|
+
};
|
|
105
|
+
var applyPatches = (entries, patches) => {
|
|
106
|
+
for (const [id, patch] of Object.entries(patches ?? {})) {
|
|
107
|
+
const entry = entries.get(id);
|
|
108
|
+
if (entry) entries.set(id, deepMerge(entry, patch));
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
var removeIds = (entries, ids) => {
|
|
112
|
+
for (const id of ids ?? []) entries.delete(id);
|
|
113
|
+
};
|
|
114
|
+
var KIT_ORIGIN_KEY = "kitOrigin";
|
|
115
|
+
function markKitOrigin(object2, origin) {
|
|
116
|
+
const node = object2;
|
|
117
|
+
node.userData = node.userData ?? {};
|
|
118
|
+
node.userData[KIT_ORIGIN_KEY] = { ...origin };
|
|
119
|
+
return object2;
|
|
120
|
+
}
|
|
121
|
+
|
|
44
122
|
// ../game-vehicles-fleet/dist/index.js
|
|
45
123
|
var military = [
|
|
46
124
|
"light_4x4",
|
|
@@ -27826,6 +27904,7 @@ var GameVehiclesThree = (() => {
|
|
|
27826
27904
|
const pivotMatrix = new THREE.Matrix4().makeTranslation(-cx, -bounds.min.y, -cz).multiply(rotation);
|
|
27827
27905
|
const group = new THREE.Group();
|
|
27828
27906
|
group.name = `vehicle:${key}`;
|
|
27907
|
+
markKitOrigin(group, { owner: "game-vehicles-three", kind: "vehicle", id: key });
|
|
27829
27908
|
const damageables = kit.damageables(c, pivotMatrix);
|
|
27830
27909
|
let pruned = 0;
|
|
27831
27910
|
if (quality === "high") {
|
|
@@ -29413,77 +29492,6 @@ var GameVehiclesThree = (() => {
|
|
|
29413
29492
|
return result;
|
|
29414
29493
|
}
|
|
29415
29494
|
|
|
29416
|
-
// ../game-contracts/dist/index.js
|
|
29417
|
-
var DEFAULT_IGNITION_RULES = {
|
|
29418
|
-
fillCurve: [
|
|
29419
|
-
[0, 0.6],
|
|
29420
|
-
[0.1, 1],
|
|
29421
|
-
[0.35, 0.6],
|
|
29422
|
-
[0.65, 0.3],
|
|
29423
|
-
[0.9, 0.15],
|
|
29424
|
-
[1, 0.12]
|
|
29425
|
-
],
|
|
29426
|
-
flameFillInfluence: 0.5,
|
|
29427
|
-
flameDefaults: { incendiary: 0.7, tracer: 0.2 },
|
|
29428
|
-
sparkTarget: { steel: 1, iron: 1, aluminium: 0.25 },
|
|
29429
|
-
sparkMetalDefault: 0.5,
|
|
29430
|
-
sparkFluid: { diesel: 0.15 },
|
|
29431
|
-
fireNear: { radius: 1.5, chancePerSecond: 0.5 }
|
|
29432
|
-
};
|
|
29433
|
-
var resolveIgnitionRules = (rules) => ({
|
|
29434
|
-
...DEFAULT_IGNITION_RULES,
|
|
29435
|
-
...rules,
|
|
29436
|
-
flameDefaults: { ...DEFAULT_IGNITION_RULES.flameDefaults, ...rules?.flameDefaults },
|
|
29437
|
-
sparkTarget: { ...DEFAULT_IGNITION_RULES.sparkTarget, ...rules?.sparkTarget },
|
|
29438
|
-
sparkFluid: { ...DEFAULT_IGNITION_RULES.sparkFluid, ...rules?.sparkFluid },
|
|
29439
|
-
fireNear: { ...DEFAULT_IGNITION_RULES.fireNear, ...rules?.fireNear }
|
|
29440
|
-
});
|
|
29441
|
-
var fillFactor = (fill2, curve = DEFAULT_IGNITION_RULES.fillCurve) => {
|
|
29442
|
-
if (curve.length === 0) return 1;
|
|
29443
|
-
const f = Math.min(1, Math.max(0, fill2));
|
|
29444
|
-
if (f <= curve[0][0]) return curve[0][1];
|
|
29445
|
-
for (let i = 1; i < curve.length; i++) {
|
|
29446
|
-
const [x1, y1] = curve[i];
|
|
29447
|
-
const [x0, y0] = curve[i - 1];
|
|
29448
|
-
if (f <= x1) return x1 === x0 ? y1 : y0 + (y1 - y0) * (f - x0) / (x1 - x0);
|
|
29449
|
-
}
|
|
29450
|
-
return curve[curve.length - 1][1];
|
|
29451
|
-
};
|
|
29452
|
-
var sparkTargetFactor = (materialId, metal, rules = DEFAULT_IGNITION_RULES) => !metal ? 0 : rules.sparkTarget[materialId] ?? rules.sparkMetalDefault;
|
|
29453
|
-
var ignitionChance = (hit, target, rules = DEFAULT_IGNITION_RULES) => {
|
|
29454
|
-
const k = fillFactor(target.fill, rules.fillCurve);
|
|
29455
|
-
const spark = (hit.ignition?.spark ?? 0) * target.sparkTarget * (target.fluid === void 0 ? 1 : rules.sparkFluid[target.fluid] ?? 1) * k;
|
|
29456
|
-
const flameBase = hit.ignition?.flame ?? Math.max(hit.incendiary ? rules.flameDefaults.incendiary : 0, hit.tracer ? rules.flameDefaults.tracer : 0);
|
|
29457
|
-
const flame = flameBase * (1 - rules.flameFillInfluence * (1 - k));
|
|
29458
|
-
return 1 - (1 - Math.min(1, Math.max(0, spark))) * (1 - Math.min(1, Math.max(0, flame)));
|
|
29459
|
-
};
|
|
29460
|
-
var UNSAFE_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
|
|
29461
|
-
var isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
|
|
29462
|
-
var deepMerge = (base, patch) => {
|
|
29463
|
-
if (!patch) return base;
|
|
29464
|
-
const result = { ...base };
|
|
29465
|
-
for (const [key, value] of Object.entries(patch)) {
|
|
29466
|
-
if (value === void 0 || UNSAFE_KEYS.has(key)) continue;
|
|
29467
|
-
const current = result[key];
|
|
29468
|
-
result[key] = isPlainObject(current) && isPlainObject(value) ? deepMerge(current, value) : value;
|
|
29469
|
-
}
|
|
29470
|
-
return result;
|
|
29471
|
-
};
|
|
29472
|
-
var mergeById = (shipped, extra) => {
|
|
29473
|
-
const entries = /* @__PURE__ */ new Map();
|
|
29474
|
-
for (const entry of [...shipped, ...extra ?? []]) entries.set(entry.id, entry);
|
|
29475
|
-
return entries;
|
|
29476
|
-
};
|
|
29477
|
-
var applyPatches = (entries, patches) => {
|
|
29478
|
-
for (const [id, patch] of Object.entries(patches ?? {})) {
|
|
29479
|
-
const entry = entries.get(id);
|
|
29480
|
-
if (entry) entries.set(id, deepMerge(entry, patch));
|
|
29481
|
-
}
|
|
29482
|
-
};
|
|
29483
|
-
var removeIds = (entries, ids) => {
|
|
29484
|
-
for (const id of ids ?? []) entries.delete(id);
|
|
29485
|
-
};
|
|
29486
|
-
|
|
29487
29495
|
// ../game-vehicles/dist/index.js
|
|
29488
29496
|
var __defProp2 = Object.defineProperty;
|
|
29489
29497
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -30879,6 +30887,7 @@ var GameVehiclesThree = (() => {
|
|
|
30879
30887
|
this.effects = new THREE.Group();
|
|
30880
30888
|
this.root.add(this.vehicle);
|
|
30881
30889
|
this.root.add(this.effects);
|
|
30890
|
+
markKitOrigin(this.root, { owner: "game-vehicles", kind: "vehicle" });
|
|
30882
30891
|
this.state = state;
|
|
30883
30892
|
this.glass = [];
|
|
30884
30893
|
this.quads = [];
|