@adatechnology/game-vehicles 0.4.0 → 0.4.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 +53 -45
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.global.js
CHANGED
|
@@ -2957,6 +2957,58 @@ var GameVehicles = (() => {
|
|
|
2957
2957
|
Object.assign(I, { roundedBoxGeometry, taper, subdivide, crease, pathShape, tumble, loftGeometry, hullGeometry, cutGeometry, mergeGeometries, uvProject });
|
|
2958
2958
|
}
|
|
2959
2959
|
|
|
2960
|
+
// ../game-contracts/dist/index.js
|
|
2961
|
+
var DEFAULT_IGNITION_RULES = {
|
|
2962
|
+
fillCurve: [
|
|
2963
|
+
[0, 0.6],
|
|
2964
|
+
[0.1, 1],
|
|
2965
|
+
[0.35, 0.6],
|
|
2966
|
+
[0.65, 0.3],
|
|
2967
|
+
[0.9, 0.15],
|
|
2968
|
+
[1, 0.12]
|
|
2969
|
+
],
|
|
2970
|
+
flameFillInfluence: 0.5,
|
|
2971
|
+
flameDefaults: { incendiary: 0.7, tracer: 0.2 },
|
|
2972
|
+
sparkTarget: { steel: 1, iron: 1, aluminium: 0.25 },
|
|
2973
|
+
sparkMetalDefault: 0.5,
|
|
2974
|
+
sparkFluid: { diesel: 0.15 },
|
|
2975
|
+
fireNear: { radius: 1.5, chancePerSecond: 0.5 }
|
|
2976
|
+
};
|
|
2977
|
+
var resolveIgnitionRules = (rules) => ({
|
|
2978
|
+
...DEFAULT_IGNITION_RULES,
|
|
2979
|
+
...rules,
|
|
2980
|
+
flameDefaults: { ...DEFAULT_IGNITION_RULES.flameDefaults, ...rules?.flameDefaults },
|
|
2981
|
+
sparkTarget: { ...DEFAULT_IGNITION_RULES.sparkTarget, ...rules?.sparkTarget },
|
|
2982
|
+
sparkFluid: { ...DEFAULT_IGNITION_RULES.sparkFluid, ...rules?.sparkFluid },
|
|
2983
|
+
fireNear: { ...DEFAULT_IGNITION_RULES.fireNear, ...rules?.fireNear }
|
|
2984
|
+
});
|
|
2985
|
+
var fillFactor = (fill, curve = DEFAULT_IGNITION_RULES.fillCurve) => {
|
|
2986
|
+
if (curve.length === 0) return 1;
|
|
2987
|
+
const f = Math.min(1, Math.max(0, fill));
|
|
2988
|
+
if (f <= curve[0][0]) return curve[0][1];
|
|
2989
|
+
for (let i = 1; i < curve.length; i++) {
|
|
2990
|
+
const [x1, y1] = curve[i];
|
|
2991
|
+
const [x0, y0] = curve[i - 1];
|
|
2992
|
+
if (f <= x1) return x1 === x0 ? y1 : y0 + (y1 - y0) * (f - x0) / (x1 - x0);
|
|
2993
|
+
}
|
|
2994
|
+
return curve[curve.length - 1][1];
|
|
2995
|
+
};
|
|
2996
|
+
var sparkTargetFactor = (materialId, metal, rules = DEFAULT_IGNITION_RULES) => !metal ? 0 : rules.sparkTarget[materialId] ?? rules.sparkMetalDefault;
|
|
2997
|
+
var ignitionChance = (hit, target, rules = DEFAULT_IGNITION_RULES) => {
|
|
2998
|
+
const k = fillFactor(target.fill, rules.fillCurve);
|
|
2999
|
+
const spark = (hit.ignition?.spark ?? 0) * target.sparkTarget * (target.fluid === void 0 ? 1 : rules.sparkFluid[target.fluid] ?? 1) * k;
|
|
3000
|
+
const flameBase = hit.ignition?.flame ?? Math.max(hit.incendiary ? rules.flameDefaults.incendiary : 0, hit.tracer ? rules.flameDefaults.tracer : 0);
|
|
3001
|
+
const flame = flameBase * (1 - rules.flameFillInfluence * (1 - k));
|
|
3002
|
+
return 1 - (1 - Math.min(1, Math.max(0, spark))) * (1 - Math.min(1, Math.max(0, flame)));
|
|
3003
|
+
};
|
|
3004
|
+
var KIT_ORIGIN_KEY = "kitOrigin";
|
|
3005
|
+
function markKitOrigin(object2, origin) {
|
|
3006
|
+
const node = object2;
|
|
3007
|
+
node.userData = node.userData ?? {};
|
|
3008
|
+
node.userData[KIT_ORIGIN_KEY] = { ...origin };
|
|
3009
|
+
return object2;
|
|
3010
|
+
}
|
|
3011
|
+
|
|
2960
3012
|
// src/context.ts
|
|
2961
3013
|
function installContext(kit) {
|
|
2962
3014
|
const THREE = kit.THREE;
|
|
@@ -2977,6 +3029,7 @@ var GameVehicles = (() => {
|
|
|
2977
3029
|
this.effects = new THREE.Group();
|
|
2978
3030
|
this.root.add(this.vehicle);
|
|
2979
3031
|
this.root.add(this.effects);
|
|
3032
|
+
markKitOrigin(this.root, { owner: "game-vehicles", kind: "vehicle" });
|
|
2980
3033
|
this.state = state;
|
|
2981
3034
|
this.glass = [];
|
|
2982
3035
|
this.quads = [];
|
|
@@ -11965,51 +12018,6 @@ var GameVehicles = (() => {
|
|
|
11965
12018
|
return kit;
|
|
11966
12019
|
}
|
|
11967
12020
|
|
|
11968
|
-
// ../game-contracts/dist/index.js
|
|
11969
|
-
var DEFAULT_IGNITION_RULES = {
|
|
11970
|
-
fillCurve: [
|
|
11971
|
-
[0, 0.6],
|
|
11972
|
-
[0.1, 1],
|
|
11973
|
-
[0.35, 0.6],
|
|
11974
|
-
[0.65, 0.3],
|
|
11975
|
-
[0.9, 0.15],
|
|
11976
|
-
[1, 0.12]
|
|
11977
|
-
],
|
|
11978
|
-
flameFillInfluence: 0.5,
|
|
11979
|
-
flameDefaults: { incendiary: 0.7, tracer: 0.2 },
|
|
11980
|
-
sparkTarget: { steel: 1, iron: 1, aluminium: 0.25 },
|
|
11981
|
-
sparkMetalDefault: 0.5,
|
|
11982
|
-
sparkFluid: { diesel: 0.15 },
|
|
11983
|
-
fireNear: { radius: 1.5, chancePerSecond: 0.5 }
|
|
11984
|
-
};
|
|
11985
|
-
var resolveIgnitionRules = (rules) => ({
|
|
11986
|
-
...DEFAULT_IGNITION_RULES,
|
|
11987
|
-
...rules,
|
|
11988
|
-
flameDefaults: { ...DEFAULT_IGNITION_RULES.flameDefaults, ...rules?.flameDefaults },
|
|
11989
|
-
sparkTarget: { ...DEFAULT_IGNITION_RULES.sparkTarget, ...rules?.sparkTarget },
|
|
11990
|
-
sparkFluid: { ...DEFAULT_IGNITION_RULES.sparkFluid, ...rules?.sparkFluid },
|
|
11991
|
-
fireNear: { ...DEFAULT_IGNITION_RULES.fireNear, ...rules?.fireNear }
|
|
11992
|
-
});
|
|
11993
|
-
var fillFactor = (fill, curve = DEFAULT_IGNITION_RULES.fillCurve) => {
|
|
11994
|
-
if (curve.length === 0) return 1;
|
|
11995
|
-
const f = Math.min(1, Math.max(0, fill));
|
|
11996
|
-
if (f <= curve[0][0]) return curve[0][1];
|
|
11997
|
-
for (let i = 1; i < curve.length; i++) {
|
|
11998
|
-
const [x1, y1] = curve[i];
|
|
11999
|
-
const [x0, y0] = curve[i - 1];
|
|
12000
|
-
if (f <= x1) return x1 === x0 ? y1 : y0 + (y1 - y0) * (f - x0) / (x1 - x0);
|
|
12001
|
-
}
|
|
12002
|
-
return curve[curve.length - 1][1];
|
|
12003
|
-
};
|
|
12004
|
-
var sparkTargetFactor = (materialId, metal, rules = DEFAULT_IGNITION_RULES) => !metal ? 0 : rules.sparkTarget[materialId] ?? rules.sparkMetalDefault;
|
|
12005
|
-
var ignitionChance = (hit, target, rules = DEFAULT_IGNITION_RULES) => {
|
|
12006
|
-
const k = fillFactor(target.fill, rules.fillCurve);
|
|
12007
|
-
const spark = (hit.ignition?.spark ?? 0) * target.sparkTarget * (target.fluid === void 0 ? 1 : rules.sparkFluid[target.fluid] ?? 1) * k;
|
|
12008
|
-
const flameBase = hit.ignition?.flame ?? Math.max(hit.incendiary ? rules.flameDefaults.incendiary : 0, hit.tracer ? rules.flameDefaults.tracer : 0);
|
|
12009
|
-
const flame = flameBase * (1 - rules.flameFillInfluence * (1 - k));
|
|
12010
|
-
return 1 - (1 - Math.min(1, Math.max(0, spark))) * (1 - Math.min(1, Math.max(0, flame)));
|
|
12011
|
-
};
|
|
12012
|
-
|
|
12013
12021
|
// src/destructible/model.ts
|
|
12014
12022
|
var JOINT_RULES = {
|
|
12015
12023
|
hinge: { strength: 5e3, tools: ["wrench", "screwdriver"], seconds: 3 },
|