code organization

This commit is contained in:
wass08
2026-01-16 09:46:19 +09:00
parent 45a34d7df6
commit 60cb60fdaa
11 changed files with 37 additions and 21 deletions
+1 -2
View File
@@ -25,7 +25,6 @@
"dedent": "^1.7.1",
"mitt": "^3.0.1",
"nanoid": "^5.1.6",
"zod": "^4.3.5",
"zustand": "^5.0.10"
"zod": "^4.3.5"
}
}
+2 -2
View File
@@ -1,5 +1,5 @@
// Store
export { default as useScene } from "./store/useScene";
export { default as useScene } from "./store/use-scene";
// Hooks
export {
@@ -8,7 +8,7 @@ export {
} from "./hooks/scene-registry/scene-registry";
// Systems
export { LevelSystem } from "./systems/level/level-system";
export { LevelSystem } from "../../viewer/src/systems/level/level-system";
export { WallSystem } from "./systems/wall/wall-system";
// Events
@@ -20,9 +20,6 @@ type SceneState = {
loadScene: () => void;
markDirty: (id: AnyNodeId) => void;
clearDirty: (id: AnyNodeId) => void;
levelMode: "stacked" | "exploded" | "solo" | "manual";
setLevelMode: (mode: "stacked" | "exploded" | "solo" | "manual") => void;
};
const useScene = create<SceneState>()((set, get) => ({
@@ -117,9 +114,6 @@ const useScene = create<SceneState>()((set, get) => ({
clearDirty: (id) => {
get().dirtyNodes.delete(id);
},
levelMode: "exploded",
setLevelMode: (mode) => set({ levelMode: mode }),
}));
useScene.getState().loadScene();
@@ -1,25 +0,0 @@
import { useFrame } from "@react-three/fiber";
import { lerp } from "three/src/math/MathUtils.js";
import { sceneRegistry } from "../../hooks/scene-registry/scene-registry";
import { LevelNode } from "../../schema";
import useScene from "../../store/useScene";
const LEVEL_HEIGHT = 2.5;
const EXPLODED_GAP = 5;
export const LevelSystem = () => {
useFrame((_, delta) => {
const levelMode = useScene.getState().levelMode;
sceneRegistry.byType.level.forEach((levelId) => {
const obj = sceneRegistry.nodes.get(levelId);
if (obj) {
const level = useScene.getState().nodes[levelId as LevelNode["id"]];
const targetY =
((level as any).level || 0) *
(LEVEL_HEIGHT + (levelMode === "stacked" ? 0 : EXPLODED_GAP));
obj.position.y = lerp(obj.position.y, targetY, delta * 3);
}
});
});
return null;
};
@@ -2,7 +2,7 @@ import { useFrame } from "@react-three/fiber";
import * as THREE from "three";
import { sceneRegistry } from "../../hooks/scene-registry/scene-registry";
import { AnyNode, WallNode } from "../../schema";
import useScene from "../../store/useScene";
import useScene from "../../store/use-scene";
export const WallSystem = () => {
const { nodes, dirtyNodes, clearDirty } = useScene();
+1 -1
View File
@@ -4,6 +4,6 @@
"outDir": "dist",
"rootDir": "src"
},
"include": ["src"],
"include": ["src", "../viewer/src/systems/level"],
"exclude": ["node_modules", "dist"]
}