mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 12:09:51 +02:00
fix: division by 0
This commit is contained in:
1 parent
0e57c37296
commit
c128d8ab0c
2 files changed
+9
-8
No files matched your search
@@ -230,12 +230,13 @@ export function ArmorMesh({
|
|||||||
shell.caliber >
|
shell.caliber >
|
||||||
2 *
|
2 *
|
||||||
(event.object.userData.thickness * thicknessCoefficient);
|
(event.object.userData.thickness * thicknessCoefficient);
|
||||||
const normalization = twoCalibersRule
|
const normalization =
|
||||||
? ((shell.normalization ?? 0) * 1.4 * shell.caliber) /
|
twoCalibersRule && event.object.userData.thickness > 0
|
||||||
(2 *
|
? ((shell.normalization ?? 0) * 1.4 * shell.caliber) /
|
||||||
event.object.userData.thickness *
|
(2 *
|
||||||
thicknessCoefficient)
|
event.object.userData.thickness *
|
||||||
: shell.normalization ?? 0;
|
thicknessCoefficient)
|
||||||
|
: shell.normalization ?? 0;
|
||||||
const angled =
|
const angled =
|
||||||
(event.object.userData.thickness * thicknessCoefficient) /
|
(event.object.userData.thickness * thicknessCoefficient) /
|
||||||
Math.cos(angle - degToRad(normalization));
|
Math.cos(angle - degToRad(normalization));
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ void main() {
|
|||||||
|
|
||||||
if (isUnderSpacedArmor) {
|
if (isUnderSpacedArmor) {
|
||||||
// spaced armor on the other hand, does care about angle
|
// spaced armor on the other hand, does care about angle
|
||||||
bool spacedArmorTwoCalibersRule = caliber > 2.0 * spacedArmorNominalThickness;
|
bool spacedArmorTwoCalibersRule = caliber > 2.0 * spacedArmorNominalThickness && spacedArmorNominalThickness > 0.0;
|
||||||
float finalSpacedArmorNormalization = spacedArmorTwoCalibersRule ? (normalization * 1.4 * caliber) / (2.0 * spacedArmorNominalThickness) : normalization;
|
float finalSpacedArmorNormalization = spacedArmorTwoCalibersRule ? (normalization * 1.4 * caliber) / (2.0 * spacedArmorNominalThickness) : normalization;
|
||||||
float finalSpacedArmorThickness = spacedArmorNominalThickness / cos(spacedArmorAngle - finalSpacedArmorNormalization);
|
float finalSpacedArmorThickness = spacedArmorNominalThickness / cos(spacedArmorAngle - finalSpacedArmorNormalization);
|
||||||
remainingPenetration -= finalSpacedArmorThickness;
|
remainingPenetration -= finalSpacedArmorThickness;
|
||||||
@@ -79,7 +79,7 @@ void main() {
|
|||||||
remainingPenetration -= 0.5 * remainingPenetration * distanceFromSpacedArmor;
|
remainingPenetration -= 0.5 * remainingPenetration * distanceFromSpacedArmor;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool coreArmorTwoCalibersRule = caliber > 2.0 * thickness;
|
bool coreArmorTwoCalibersRule = caliber > 2.0 * thickness && thickness > 0.0;
|
||||||
float finalNormalization = coreArmorTwoCalibersRule ? (normalization * 1.4 * caliber) / (2.0 * thickness) : normalization;
|
float finalNormalization = coreArmorTwoCalibersRule ? (normalization * 1.4 * caliber) / (2.0 * thickness) : normalization;
|
||||||
float finalCoreArmorThickness = thickness / cos(coreArmorangle - finalNormalization);
|
float finalCoreArmorThickness = thickness / cos(coreArmorangle - finalNormalization);
|
||||||
float deltaPenetration = finalCoreArmorThickness - remainingPenetration;
|
float deltaPenetration = finalCoreArmorThickness - remainingPenetration;
|
||||||
|
|||||||
Reference in new issue
Block a user