mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-22 19:19:52 +02:00
fix: unified max thicknesses
This commit is contained in:
1 parent
c56eaa258d
commit
8199bd550d
8 files changed
+26
-37
No files matched your search
+5
-15
@@ -123,20 +123,13 @@ export function ArmorHighlighting({ duel }: ArmorHighlightingProps) {
|
||||
turretModelDefinition.gunOrigin[1],
|
||||
-turretModelDefinition.gunOrigin[2],
|
||||
).applyAxisAngle(X_AXIS, Math.PI / 2);
|
||||
const maxExternalModuleThickness = Math.max(
|
||||
const maxThickness = Math.max(
|
||||
tankModelDefinition.trackThickness,
|
||||
gunModelDefinition.barrelThickness,
|
||||
);
|
||||
const maxSpacedArmorThickness = Math.max(
|
||||
...armorNodes
|
||||
.map((node) => {
|
||||
const armorId = nameToArmorId(node.name);
|
||||
const { spaced, thickness } = resolveArmor(
|
||||
tankModelDefinition.armor,
|
||||
armorId,
|
||||
);
|
||||
|
||||
return spaced ? thickness : null;
|
||||
return resolveArmor(tankModelDefinition.armor, armorId).thickness;
|
||||
})
|
||||
.filter(Boolean),
|
||||
);
|
||||
@@ -160,8 +153,7 @@ export function ArmorHighlighting({ duel }: ArmorHighlightingProps) {
|
||||
|
||||
return (
|
||||
<ArmorMesh
|
||||
maxExternalModuleThickness={maxExternalModuleThickness}
|
||||
maxSpacedArmorThickness={maxSpacedArmorThickness}
|
||||
maxThickness={maxThickness}
|
||||
duel={duel}
|
||||
key={node.uuid}
|
||||
geometry={(node as Mesh).geometry}
|
||||
@@ -186,8 +178,7 @@ export function ArmorHighlighting({ duel }: ArmorHighlightingProps) {
|
||||
|
||||
return (
|
||||
<ArmorMesh
|
||||
maxExternalModuleThickness={maxExternalModuleThickness}
|
||||
maxSpacedArmorThickness={maxSpacedArmorThickness}
|
||||
maxThickness={maxThickness}
|
||||
duel={duel}
|
||||
key={node.uuid}
|
||||
geometry={(node as Mesh).geometry}
|
||||
@@ -212,8 +203,7 @@ export function ArmorHighlighting({ duel }: ArmorHighlightingProps) {
|
||||
|
||||
return (
|
||||
<ArmorMesh
|
||||
maxExternalModuleThickness={maxExternalModuleThickness}
|
||||
maxSpacedArmorThickness={maxSpacedArmorThickness}
|
||||
maxThickness={maxThickness}
|
||||
duel={duel}
|
||||
key={node.uuid}
|
||||
geometry={(node as Mesh).geometry}
|
||||
|
||||
+7
-1
@@ -25,7 +25,7 @@ interface ExternalModuleMaskProps {
|
||||
|
||||
/**
|
||||
* When rendered, generates a mask and thickness buffer for external modules.
|
||||
* - R: 0 means not external module
|
||||
* - R: 1 means external module
|
||||
* - G: normalized thickness; multiply with max thickness to get nominal thickness
|
||||
* - B: no data
|
||||
* - A: 1 means is armor; 0 is background
|
||||
@@ -126,6 +126,12 @@ export const ExternalModuleMask = memo<ExternalModuleMaskProps>(({ duel }) => {
|
||||
const maxThickness = Math.max(
|
||||
tankModelDefinition.trackThickness,
|
||||
gunModelDefinition.barrelThickness,
|
||||
...armorNodes
|
||||
.map((node) => {
|
||||
const armorId = nameToArmorId(node.name);
|
||||
return resolveArmor(tankModelDefinition.armor, armorId).thickness;
|
||||
})
|
||||
.filter(Boolean),
|
||||
);
|
||||
const turretOrigin = new Vector3(
|
||||
tankModelDefinition.turretOrigin[0],
|
||||
|
||||
+3
-6
@@ -130,15 +130,12 @@ export const SpacedArmorDepth = memo<SpacedArmorDepthProps>(({ duel }) => {
|
||||
const gunModelDefinition =
|
||||
turretModelDefinition.guns[duel.protagonist.gun.id];
|
||||
const maxThickness = Math.max(
|
||||
tankModelDefinition.trackThickness,
|
||||
gunModelDefinition.barrelThickness,
|
||||
...armorNodes
|
||||
.map((node) => {
|
||||
const armorId = nameToArmorId(node.name);
|
||||
const { spaced, thickness } = resolveArmor(
|
||||
tankModelDefinition.armor,
|
||||
armorId,
|
||||
);
|
||||
|
||||
return spaced ? thickness : null;
|
||||
return resolveArmor(tankModelDefinition.armor, armorId).thickness;
|
||||
})
|
||||
.filter(Boolean),
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user