From 85a44235d3ef3881c177d922fe78afa6d810cc73 Mon Sep 17 00:00:00 2001 From: Errilaz Date: Mon, 24 Aug 2026 15:54:44 +0200 Subject: [PATCH] refactor: tsconfig paths --- app/assets.ts | 34 +++++++++++++++++----------------- app/main.ts | 14 +++++++------- app/render-worker.ts | 6 +++--- app/renderer.ts | 12 ++++++------ game/actors/Boulder.ts | 8 ++++---- game/actors/Bush.ts | 8 ++++---- game/actors/Flower.ts | 8 ++++---- game/actors/Mob.ts | 10 +++++----- game/actors/Tree.ts | 2 +- game/actors/mobs/Bee.ts | 14 +++++++------- game/actors/mobs/Frog.ts | 14 +++++++------- game/actors/mobs/Robin.ts | 12 ++++++------ game/actors/mobs/mobkit.ts | 2 +- game/actors/trees/Birch.ts | 8 ++++---- game/actors/trees/Oak.ts | 8 ++++---- game/actors/trees/Spruce.ts | 6 +++--- game/actors/trees/treekit.ts | 4 ++-- game/level.ts | 22 +++++++++++----------- game/player.ts | 2 +- game/textures.ts | 2 +- meat.code-workspace | 3 --- tests/actors.test.ts | 2 +- tests/level.test.ts | 6 +++--- tests/render-protocol.test.ts | 6 +++--- tsconfig.base.json | 3 +++ 25 files changed, 108 insertions(+), 108 deletions(-) diff --git a/app/assets.ts b/app/assets.ts index ddf330f..2323d2f 100644 --- a/app/assets.ts +++ b/app/assets.ts @@ -1,20 +1,20 @@ -import type { Texture } from "../engine/render/Texture" -import type { Textures } from "../game/textures" -import barkUrl from "../assets/bark.png" -import beeUrl from "../assets/bee.png" -import birchUrl from "../assets/birch.png" -import crateUrl from "../assets/crate.png" -import floorUrl from "../assets/floor.png" -import flowerUrl from "../assets/flower.png" -import frogUrl from "../assets/frog.png" -import grassUrl from "../assets/grass.png" -import leafUrl from "../assets/leaf.png" -import needleUrl from "../assets/needle.png" -import npcUrl from "../assets/npc.png" -import robinUrl from "../assets/robin.png" -import rockUrl from "../assets/rock.png" -import skyboxUrl from "../assets/rockies.skybox.png" -import wallUrl from "../assets/wall.png" +import type { Texture } from "engine/render/Texture" +import type { Textures } from "game/textures" +import barkUrl from "assets/bark.png" +import beeUrl from "assets/bee.png" +import birchUrl from "assets/birch.png" +import crateUrl from "assets/crate.png" +import floorUrl from "assets/floor.png" +import flowerUrl from "assets/flower.png" +import frogUrl from "assets/frog.png" +import grassUrl from "assets/grass.png" +import leafUrl from "assets/leaf.png" +import needleUrl from "assets/needle.png" +import npcUrl from "assets/npc.png" +import robinUrl from "assets/robin.png" +import rockUrl from "assets/rock.png" +import skyboxUrl from "assets/rockies.skybox.png" +import wallUrl from "assets/wall.png" /** Load every game texture up front. Call once before starting the loop. */ export async function loadTextures(): Promise { diff --git a/app/main.ts b/app/main.ts index 9a360e7..b6dd7ac 100644 --- a/app/main.ts +++ b/app/main.ts @@ -1,14 +1,14 @@ -import { RenderConfig } from "../engine/render/RenderConfig" -import { RenderScene, type RenderInstance } from "../engine/render/RenderScene" -import { Camera } from "../engine/scene/Camera" +import { RenderConfig } from "engine/render/RenderConfig" +import { RenderScene, type RenderInstance } from "engine/render/RenderScene" +import { Camera } from "engine/scene/Camera" import { CharacterController, type CharacterInput, -} from "../engine/world/CharacterController" -import { Level } from "../engine/world/Level" +} from "engine/world/CharacterController" +import { Level } from "engine/world/Level" import { loadTextures } from "./assets" -import { buildLevel } from "../game/level" -import { Player, type Player as PlayerState } from "../game/player" +import { buildLevel } from "game/level" +import { Player, type Player as PlayerState } from "game/player" import { createRenderer } from "./renderer" const FOV_DEGREES = 75 diff --git a/app/render-worker.ts b/app/render-worker.ts index 7610fb9..a6d94e3 100644 --- a/app/render-worker.ts +++ b/app/render-worker.ts @@ -1,6 +1,6 @@ -import type { Framebuffer } from "../engine/render/Framebuffer" -import { RenderProtocol, type RenderWorkerInit } from "../engine/render/RenderProtocol" -import { RenderScene, type RenderInstance } from "../engine/render/RenderScene" +import type { Framebuffer } from "engine/render/Framebuffer" +import { RenderProtocol, type RenderWorkerInit } from "engine/render/RenderProtocol" +import { RenderScene, type RenderInstance } from "engine/render/RenderScene" const ctx = globalThis as unknown as { addEventListener: ( diff --git a/app/renderer.ts b/app/renderer.ts index 3fca7f2..c31260a 100644 --- a/app/renderer.ts +++ b/app/renderer.ts @@ -1,9 +1,9 @@ -import { Framebuffer } from "../engine/render/Framebuffer" -import type { RenderConfig } from "../engine/render/RenderConfig" -import type { Mat4 } from "../engine/math/Mat4" -import type { Camera } from "../engine/scene/Camera" -import { RenderProtocol, type RenderWorkerInit } from "../engine/render/RenderProtocol" -import { RenderScene, type RenderInstance } from "../engine/render/RenderScene" +import { Framebuffer } from "engine/render/Framebuffer" +import type { RenderConfig } from "engine/render/RenderConfig" +import type { Mat4 } from "engine/math/Mat4" +import type { Camera } from "engine/scene/Camera" +import { RenderProtocol, type RenderWorkerInit } from "engine/render/RenderProtocol" +import { RenderScene, type RenderInstance } from "engine/render/RenderScene" /** Clouds are drawn at 1/SKY_STEP resolution (the sky base + sun stay per-pixel); * band splits align to it so the cloud block grid stays seamless across workers. */ diff --git a/game/actors/Boulder.ts b/game/actors/Boulder.ts index 3c76819..c9e8a5e 100644 --- a/game/actors/Boulder.ts +++ b/game/actors/Boulder.ts @@ -1,7 +1,7 @@ -import type { Vec3 } from "../../engine/math/Vec3" -import { STRIDE, type Mesh } from "../../engine/scene/Mesh" -import type { Material } from "../../engine/render/Material" -import type { Prefab } from "../../engine/scene/Prefab" +import type { Vec3 } from "engine/math/Vec3" +import { STRIDE, type Mesh } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { Prefab } from "engine/scene/Prefab" const TAU = Math.PI * 2 diff --git a/game/actors/Bush.ts b/game/actors/Bush.ts index 1c6b47d..c8ca52a 100644 --- a/game/actors/Bush.ts +++ b/game/actors/Bush.ts @@ -1,7 +1,7 @@ -import type { Vec3 } from "../../engine/math/Vec3" -import { STRIDE, type Mesh } from "../../engine/scene/Mesh" -import type { Material } from "../../engine/render/Material" -import type { Prefab } from "../../engine/scene/Prefab" +import type { Vec3 } from "engine/math/Vec3" +import { STRIDE, type Mesh } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { Prefab } from "engine/scene/Prefab" const TAU = Math.PI * 2 diff --git a/game/actors/Flower.ts b/game/actors/Flower.ts index 5bcf167..6160402 100644 --- a/game/actors/Flower.ts +++ b/game/actors/Flower.ts @@ -1,7 +1,7 @@ -import type { Vec3 } from "../../engine/math/Vec3" -import { Mesh } from "../../engine/scene/Mesh" -import type { Material } from "../../engine/render/Material" -import type { Prefab } from "../../engine/scene/Prefab" +import type { Vec3 } from "engine/math/Vec3" +import { Mesh } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { Prefab } from "engine/scene/Prefab" const TAU = Math.PI * 2 diff --git a/game/actors/Mob.ts b/game/actors/Mob.ts index ff64bb5..123b840 100644 --- a/game/actors/Mob.ts +++ b/game/actors/Mob.ts @@ -1,8 +1,8 @@ -import type { Vec3 } from "../../engine/math/Vec3" -import type { Actor } from "../../engine/scene/Actor" -import type { RenderTransform } from "../../engine/render/RenderScene" -import type { BoxCollider } from "../../engine/world/Collider" -import type { Terrain } from "../../engine/world/Terrain" +import type { Vec3 } from "engine/math/Vec3" +import type { Actor } from "engine/scene/Actor" +import type { RenderTransform } from "engine/render/RenderScene" +import type { BoxCollider } from "engine/world/Collider" +import type { Terrain } from "engine/world/Terrain" /** Runtime actor using shared roaming-creature state. Concrete definitions are * direct object references supplied by Frog, Bee, Robin, or future content. */ diff --git a/game/actors/Tree.ts b/game/actors/Tree.ts index 0356872..7d57e01 100644 --- a/game/actors/Tree.ts +++ b/game/actors/Tree.ts @@ -1,4 +1,4 @@ -import type { Vec3 } from "../../engine/math/Vec3" +import type { Vec3 } from "engine/math/Vec3" /** One procedural tree instance. `growth` 0..1 runs sapling -> full grown: it scales * height and girth and adds canopy blobs / tiers. `seed` drives the per-tree random diff --git a/game/actors/mobs/Bee.ts b/game/actors/mobs/Bee.ts index 9befcbe..b9f3a31 100644 --- a/game/actors/mobs/Bee.ts +++ b/game/actors/mobs/Bee.ts @@ -1,11 +1,11 @@ -import { Terrain, type Terrain as Ground } from "../../../engine/world/Terrain" -import { Mesh, type Mesh as Geometry } from "../../../engine/scene/Mesh" -import type { Material } from "../../../engine/render/Material" -import type { ActorDefinition } from "../../../engine/scene/Actor" -import { Mob, type MobState } from "../Mob" +import { Terrain } from "engine/world/Terrain" +import { Mesh, type Mesh as Geometry } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { ActorDefinition } from "engine/scene/Actor" +import { Mob, type MobState } from "game/actors/Mob" import { ellipsoid, nextRand, ovoidZ, wanderHeading, wing } from "./mobkit" -export type Bee = ActorDefinition +export type Bee = ActorDefinition export namespace Bee { export function create(material: Material): Bee { @@ -43,7 +43,7 @@ function build(mesh: Geometry): void { wing(mesh, -1, 0.83, 0.99, 0, 1) } -function update(mob: MobState, dt: number, terrain: Ground): void { +function update(mob: MobState, dt: number, terrain: Terrain): void { mob.phase += dt mob.timer -= dt if (mob.timer <= 0) { diff --git a/game/actors/mobs/Frog.ts b/game/actors/mobs/Frog.ts index 4bdafd4..dfe8e99 100644 --- a/game/actors/mobs/Frog.ts +++ b/game/actors/mobs/Frog.ts @@ -1,13 +1,13 @@ -import { Terrain, type Terrain as Ground } from "../../../engine/world/Terrain" -import { Mesh, type Mesh as Geometry } from "../../../engine/scene/Mesh" -import type { Material } from "../../../engine/render/Material" -import type { ActorDefinition } from "../../../engine/scene/Actor" -import { Mob, type MobState } from "../Mob" +import { Terrain } from "engine/world/Terrain" +import { Mesh, type Mesh as Geometry } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { ActorDefinition } from "engine/scene/Actor" +import { Mob, type MobState } from "game/actors/Mob" import { ellipsoid, nextRand, wanderHeading } from "./mobkit" // Everything about the frog: squat, ground-bound, sits then springs a ballistic hop. -export type Frog = ActorDefinition +export type Frog = ActorDefinition export namespace Frog { export function create(material: Material): Frog { @@ -44,7 +44,7 @@ function build(mesh: Geometry): void { ellipsoid(mesh, -0.3, 0.2, -0.26, 0.2, 0.2, 0.26, 4, 3, 0, 0.68, 0, 1) } -function update(mob: MobState, dt: number, terrain: Ground): void { +function update(mob: MobState, dt: number, terrain: Terrain): void { if (mob.grounded) { mob.timer -= dt mob.position.y = Terrain.height(terrain, mob.position.x, mob.position.z) diff --git a/game/actors/mobs/Robin.ts b/game/actors/mobs/Robin.ts index 7473620..2ba6981 100644 --- a/game/actors/mobs/Robin.ts +++ b/game/actors/mobs/Robin.ts @@ -1,14 +1,14 @@ -import { Terrain, type Terrain as Ground } from "../../../engine/world/Terrain" -import { Mesh, type Mesh as Geometry } from "../../../engine/scene/Mesh" -import type { Material } from "../../../engine/render/Material" -import type { ActorDefinition } from "../../../engine/scene/Actor" +import { Terrain } from "engine/world/Terrain" +import { Mesh, type Mesh as Geometry } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { ActorDefinition } from "engine/scene/Actor" import { Mob, type MobState } from "../Mob" import { ellipsoid, nextRand, wanderHeading } from "./mobkit" // Everything about the robin: round red-breasted bird that mostly hops like a frog // but now and then takes a short powered flight to a new perch. -export type Robin = ActorDefinition +export type Robin = ActorDefinition export namespace Robin { export function create(material: Material): Robin { @@ -53,7 +53,7 @@ function build(mesh: Geometry): void { ellipsoid(mesh, 0, 0.26, -0.32, 0.09, 0.05, 0.16, 4, 2, 0, 0.38, 0, 1) // tail (brown) } -function update(mob: MobState, dt: number, terrain: Ground): void { +function update(mob: MobState, dt: number, terrain: Terrain): void { if (mob.grounded) { mob.timer -= dt mob.position.y = Terrain.height(terrain, mob.position.x, mob.position.z) diff --git a/game/actors/mobs/mobkit.ts b/game/actors/mobs/mobkit.ts index 630f940..cbddc03 100644 --- a/game/actors/mobs/mobkit.ts +++ b/game/actors/mobs/mobkit.ts @@ -1,5 +1,5 @@ import type { MobState } from "../Mob" -import { STRIDE, type Mesh } from "../../../engine/scene/Mesh" +import { STRIDE, type Mesh } from "engine/scene/Mesh" // Shared building blocks for concrete mob definitions: faceted geometry primitives // and deterministic wander helpers. diff --git a/game/actors/trees/Birch.ts b/game/actors/trees/Birch.ts index 01a8c97..7e55eff 100644 --- a/game/actors/trees/Birch.ts +++ b/game/actors/trees/Birch.ts @@ -1,7 +1,7 @@ -import { Vec3 } from "../../../engine/math/Vec3" -import type { Mesh } from "../../../engine/scene/Mesh" -import type { Material } from "../../../engine/render/Material" -import type { Prefab } from "../../../engine/scene/Prefab" +import { Vec3 } from "engine/math/Vec3" +import type { Mesh } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { Prefab } from "engine/scene/Prefab" import type { Tree } from "../Tree" import { blob, lerp, limb, TAU, rng } from "./treekit" diff --git a/game/actors/trees/Oak.ts b/game/actors/trees/Oak.ts index 30c37e9..55fdfe9 100644 --- a/game/actors/trees/Oak.ts +++ b/game/actors/trees/Oak.ts @@ -1,7 +1,7 @@ -import { Vec3 } from "../../../engine/math/Vec3" -import type { Mesh } from "../../../engine/scene/Mesh" -import type { Material } from "../../../engine/render/Material" -import type { Prefab } from "../../../engine/scene/Prefab" +import { Vec3 } from "engine/math/Vec3" +import type { Mesh } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { Prefab } from "engine/scene/Prefab" import type { Tree } from "../Tree" import { blob, lerp, limb, TAU, rng } from "./treekit" diff --git a/game/actors/trees/Spruce.ts b/game/actors/trees/Spruce.ts index b168f65..fa34662 100644 --- a/game/actors/trees/Spruce.ts +++ b/game/actors/trees/Spruce.ts @@ -1,6 +1,6 @@ -import type { Mesh } from "../../../engine/scene/Mesh" -import type { Material } from "../../../engine/render/Material" -import type { Prefab } from "../../../engine/scene/Prefab" +import type { Mesh } from "engine/scene/Mesh" +import type { Material } from "engine/render/Material" +import type { Prefab } from "engine/scene/Prefab" import type { Tree } from "../Tree" import { cone, lerp, limb, rng } from "./treekit" diff --git a/game/actors/trees/treekit.ts b/game/actors/trees/treekit.ts index dd9b833..2b71c87 100644 --- a/game/actors/trees/treekit.ts +++ b/game/actors/trees/treekit.ts @@ -1,5 +1,5 @@ -import { Vec3 } from "../../../engine/math/Vec3" -import { STRIDE, type Mesh } from "../../../engine/scene/Mesh" +import { Vec3 } from "engine/math/Vec3" +import { STRIDE, type Mesh } from "engine/scene/Mesh" // Shared faceted-geometry primitives + the per-tree RNG used by concrete tree // prefab modules. diff --git a/game/level.ts b/game/level.ts index 8244a78..75e3a71 100644 --- a/game/level.ts +++ b/game/level.ts @@ -1,22 +1,22 @@ -import { Color } from "../engine/render/Color" -import type { Material } from "../engine/render/Material" -import type { CloudLayer, SkyConfig } from "../engine/render/Sky" -import { ChunkBuilder } from "../engine/render/ChunkBuilder" -import { Actor, type ActorDefinition } from "../engine/scene/Actor" -import { Mesh } from "../engine/scene/Mesh" -import { MeshBuilder } from "../engine/scene/MeshBuilder" +import { Color } from "engine/render/Color" +import type { Material } from "engine/render/Material" +import type { CloudLayer, SkyConfig } from "engine/render/Sky" +import { ChunkBuilder } from "engine/render/ChunkBuilder" +import { Actor, type ActorDefinition } from "engine/scene/Actor" +import { Mesh } from "engine/scene/Mesh" +import { MeshBuilder } from "engine/scene/MeshBuilder" import { Prefab, type PlacedPrefab, type Prefab as PrefabDefinition, -} from "../engine/scene/Prefab" -import type { BoxCollider, Collider } from "../engine/world/Collider" -import { Level, type Level as RuntimeLevel } from "../engine/world/Level" +} from "engine/scene/Prefab" +import type { BoxCollider, Collider } from "engine/world/Collider" +import { Level, type Level as RuntimeLevel } from "engine/world/Level" import { Terrain, type RollingTerrainConfig, type Terrain as Ground, -} from "../engine/world/Terrain" +} from "engine/world/Terrain" import { Boulder } from "./actors/Boulder" import { Bush } from "./actors/Bush" import { Flower, type FlowerStyle } from "./actors/Flower" diff --git a/game/player.ts b/game/player.ts index 6fba438..4c6285c 100644 --- a/game/player.ts +++ b/game/player.ts @@ -1,7 +1,7 @@ import type { Character, CharacterConfig, -} from "../engine/world/CharacterController" +} from "engine/world/CharacterController" export type Player = Character & { pitch: number diff --git a/game/textures.ts b/game/textures.ts index b970e1e..9d70fe8 100644 --- a/game/textures.ts +++ b/game/textures.ts @@ -1,4 +1,4 @@ -import type { Texture } from "../engine/render/Texture" +import type { Texture } from "engine/render/Texture" /** The game's texture palette -- the named surfaces content refers to (materials, * mobs, room). `app/assets.ts` loads the actual pixels via the DOM; this is the diff --git a/meat.code-workspace b/meat.code-workspace index 019843d..d842094 100644 --- a/meat.code-workspace +++ b/meat.code-workspace @@ -3,9 +3,6 @@ { "name": "meat", "path": "." - }, - { - "path": "../meat.project" } ], "settings": { diff --git a/tests/actors.test.ts b/tests/actors.test.ts index 2f317ee..466f012 100644 --- a/tests/actors.test.ts +++ b/tests/actors.test.ts @@ -1,5 +1,5 @@ import { expect, test } from "bun:test" -import { Actor, type Actor as RuntimeActor, type ActorDefinition } from "../engine/scene/Actor" +import { Actor, type Actor as RuntimeActor, type ActorDefinition } from "engine/scene/Actor" type World = { updates: string[] } diff --git a/tests/level.test.ts b/tests/level.test.ts index d101283..64d49d5 100644 --- a/tests/level.test.ts +++ b/tests/level.test.ts @@ -1,7 +1,7 @@ import { expect, test } from "bun:test" -import type { Texture } from "../engine/render/Texture" -import { buildLevel } from "../game/level" -import type { Textures } from "../game/textures" +import type { Texture } from "engine/render/Texture" +import { buildLevel } from "game/level" +import type { Textures } from "game/textures" const texture: Texture = { width: 1, height: 1, data: new Uint32Array([0xFFFFFFFF]) } const textures: Textures = { diff --git a/tests/render-protocol.test.ts b/tests/render-protocol.test.ts index be64148..b1a6f80 100644 --- a/tests/render-protocol.test.ts +++ b/tests/render-protocol.test.ts @@ -1,7 +1,7 @@ import { expect, test } from "bun:test" -import { RenderProtocol } from "../engine/render/RenderProtocol" -import type { RenderInstance } from "../engine/render/RenderScene" -import type { Camera } from "../engine/scene/Camera" +import { RenderProtocol } from "engine/render/RenderProtocol" +import type { RenderInstance } from "engine/render/RenderScene" +import type { Camera } from "engine/scene/Camera" test("render camera protocol owns its complete shared layout", () => { const input: Camera = { position: { x: 1, y: 2, z: 3 }, yaw: 4, pitch: 5, fov: 6 } diff --git a/tsconfig.base.json b/tsconfig.base.json index efca3d5..0a3ffe2 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -6,6 +6,9 @@ "esnext" ], "types": [], + "paths": { + "*": ["./*"] + }, "moduleResolution": "bundler", "esModuleInterop": true, "skipDefaultLibCheck": true,