From c9d5b46ae8c727ec9e40db40df276beb9322b704 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com>
Date: Mon, 1 Jan 2024 15:16:28 -0600
Subject: [PATCH] feat: omition
---
src/app/tools/tankopedia/[id]/page.tsx | 122 ++++++++++++-------------
src/core/blitzkrieg/resolveJsxTree.tsx | 36 ++++++++
2 files changed, 97 insertions(+), 61 deletions(-)
create mode 100644 src/core/blitzkrieg/resolveJsxTree.tsx
diff --git a/src/app/tools/tankopedia/[id]/page.tsx b/src/app/tools/tankopedia/[id]/page.tsx
index 302fbf22f..3837d6587 100644
--- a/src/app/tools/tankopedia/[id]/page.tsx
+++ b/src/app/tools/tankopedia/[id]/page.tsx
@@ -33,6 +33,7 @@ import { Flag } from '../../../../components/Flag';
import { ModuleButtons } from '../../../../components/ModuleButton';
import PageWrapper from '../../../../components/PageWrapper';
import { asset } from '../../../../core/blitzkrieg/asset';
+import { resolveJsxTree } from '../../../../core/blitzkrieg/resolveJsxTree';
import {
TIER_ROMAN_NUMERALS,
tankDefinitions,
@@ -131,32 +132,32 @@ export default function Page({ params }: { params: { id: string } }) {
- {Object.entries(gltf.nodes).map(([name, node]) => (
+ {gltf.scene.children[0].children.map((child) => (
))}
@@ -172,6 +173,50 @@ export default function Page({ params }: { params: { id: string } }) {
+
+
+
+ {tank.turrets.map((thisTurret) => {
+ return (
+
+
+
+ );
+ })}
+
+
+
+ {turret.guns.map((thisGun, index) => {
+ return (
+
+
+
+ );
+ })}
+
+
+
+
{mode === 'armor' && (
@@ -396,51 +441,6 @@ export default function Page({ params }: { params: { id: string } }) {
Modules
-
-
-
- {tank.turrets.map((thisTurret) => {
- return (
-
-
-
- );
- })}
-
-
-
- {turret.guns.map((thisGun, index) => {
- return (
-
-
-
- );
- })}
-
-
-
diff --git a/src/core/blitzkrieg/resolveJsxTree.tsx b/src/core/blitzkrieg/resolveJsxTree.tsx
new file mode 100644
index 000000000..c4800d64d
--- /dev/null
+++ b/src/core/blitzkrieg/resolveJsxTree.tsx
@@ -0,0 +1,36 @@
+import { Mesh, Object3D } from 'three';
+
+export function resolveJsxTree(parent: Object3D) {
+ return parent.children.map((child) => {
+ if (child.type === 'Mesh') {
+ return (
+
+ );
+ }
+ if (child.type === 'Object3D') {
+ return (
+
+ );
+ }
+
+ throw new TypeError(
+ `Unhandled three jsx type ${child.type} (${child.name})`,
+ );
+ });
+}