mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-11-13 04:36:12 +01:00
feat: i tried my best to implement dynamic armor :(
This commit is contained in:
1 parent
952523d3f9
commit
46f1461de6
9 files changed
+182
-92
No files matched your search
@@ -6,7 +6,6 @@ import {
|
||||
useImperativeHandle,
|
||||
useRef,
|
||||
} from 'react';
|
||||
import { Armor } from '../../../../../../components/Armor';
|
||||
import { ArmorPlateDisplay } from '../../../../../../components/Armor/components/ArmorPlateDisplay';
|
||||
import { ShotDisplay } from '../../../../../../components/Armor/components/ShotDisplay';
|
||||
import {
|
||||
@@ -185,7 +184,7 @@ export const TankSandbox = forwardRef<HTMLCanvasElement, TankSandboxProps>(
|
||||
|
||||
{/* idk why the shot display doesn't work without suspense here lol */}
|
||||
<Suspense fallback={<ModelLoader />}>
|
||||
{display === TankopediaDisplay.DynamicArmor && <Armor />}
|
||||
{/* {display === TankopediaDisplay.DynamicArmor && <Armor />} */}
|
||||
{display === TankopediaDisplay.StaticArmor && (
|
||||
<StaticArmor thicknessRange={thicknessRange} />
|
||||
)}
|
||||
|
||||
@@ -31,6 +31,9 @@ export const TankModel = memo(() => {
|
||||
const gunModelDefinition = turretModelDefinition.guns[protagonist.gun.id];
|
||||
const { gltf } = useModel(protagonist.tank.id);
|
||||
const nodes = Object.values(gltf.nodes);
|
||||
const isDynamicArmorActive = Duel.use((state) =>
|
||||
state.protagonist.consumables.includes(73),
|
||||
);
|
||||
|
||||
useTankTransform(protagonist, turretContainer, gunContainer);
|
||||
|
||||
@@ -100,9 +103,28 @@ export const TankModel = memo(() => {
|
||||
return jsxTree(
|
||||
node,
|
||||
{
|
||||
castShadow: true,
|
||||
receiveShadow: true,
|
||||
onPointerDown,
|
||||
mesh: {
|
||||
castShadow: true,
|
||||
receiveShadow: true,
|
||||
onPointerDown,
|
||||
},
|
||||
// group(group) {
|
||||
// console.log(group.name);
|
||||
// return {
|
||||
// visible:
|
||||
// group.name !== 'ST_base' &&
|
||||
// group.name !== 'MR_Base2' &&
|
||||
// (!group.name.includes('state_entity') ||
|
||||
// (isDynamicArmorActive &&
|
||||
// group.name.includes('state_entity_01')) ||
|
||||
// (!isDynamicArmorActive &&
|
||||
// group.name.includes('state_entity_00'))) &&
|
||||
// (!group.name.includes('shields') ||
|
||||
// (isDynamicArmorActive &&
|
||||
// group.name.includes('shields_rev')) ||
|
||||
// (!isDynamicArmorActive && group.name.endsWith('shields'))),
|
||||
// };
|
||||
// },
|
||||
},
|
||||
node.uuid,
|
||||
);
|
||||
@@ -178,9 +200,28 @@ export const TankModel = memo(() => {
|
||||
return jsxTree(
|
||||
node,
|
||||
{
|
||||
castShadow: true,
|
||||
receiveShadow: true,
|
||||
onPointerDown,
|
||||
mesh: {
|
||||
castShadow: true,
|
||||
receiveShadow: true,
|
||||
onPointerDown,
|
||||
},
|
||||
// group(group) {
|
||||
// return {
|
||||
// visible:
|
||||
// group.name !== 'ST_base' &&
|
||||
// group.name !== 'MR_Base2' &&
|
||||
// (!group.name.includes('state_entity') ||
|
||||
// (isDynamicArmorActive &&
|
||||
// group.name.includes('state_entity_01')) ||
|
||||
// (!isDynamicArmorActive &&
|
||||
// group.name.includes('state_entity_00'))) &&
|
||||
// (!group.name.includes('shields') ||
|
||||
// (isDynamicArmorActive &&
|
||||
// group.name.includes('shields_rev')) ||
|
||||
// (!isDynamicArmorActive &&
|
||||
// group.name.endsWith('shields'))),
|
||||
// };
|
||||
// },
|
||||
},
|
||||
node.uuid,
|
||||
);
|
||||
@@ -258,9 +299,28 @@ export const TankModel = memo(() => {
|
||||
return jsxTree(
|
||||
node,
|
||||
{
|
||||
castShadow: true,
|
||||
receiveShadow: true,
|
||||
onPointerDown,
|
||||
mesh: {
|
||||
castShadow: true,
|
||||
receiveShadow: true,
|
||||
onPointerDown,
|
||||
},
|
||||
// group(group) {
|
||||
// return {
|
||||
// visible:
|
||||
// group.name !== 'ST_base' &&
|
||||
// group.name !== 'MR_Base2' &&
|
||||
// (!group.name.includes('state_entity') ||
|
||||
// (isDynamicArmorActive &&
|
||||
// group.name.includes('state_entity_01')) ||
|
||||
// (!isDynamicArmorActive &&
|
||||
// group.name.includes('state_entity_00'))) &&
|
||||
// (!group.name.includes('shields') ||
|
||||
// (isDynamicArmorActive &&
|
||||
// group.name.includes('shields_rev')) ||
|
||||
// (!isDynamicArmorActive &&
|
||||
// group.name.endsWith('shields'))),
|
||||
// };
|
||||
// },
|
||||
},
|
||||
node.uuid,
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user