diff --git a/README.md b/README.md index be03c63..9287e69 100644 --- a/README.md +++ b/README.md @@ -101,8 +101,4 @@ as well as see all models made in any window. - Music by [Nicholas Palmer](https://soundcloud.com/nicholas-palmer-4) -worlds: - -- co_zZjA7PJnSUXEP7VVKomrT3gL7hf -- co_z7FMaWBpkYGHixseZu9iuA2LmTL -- co_zQLdXMAmNc7kkzeRBu7MyWDoRD1 \ No newline at end of file +- co_zVcp8qwBoWE6X95YWHMQHEuM1dX \ No newline at end of file diff --git a/src/lib/player/OtherPlayer.svelte b/src/lib/player/OtherPlayer.svelte new file mode 100644 index 0000000..35e75ce --- /dev/null +++ b/src/lib/player/OtherPlayer.svelte @@ -0,0 +1,103 @@ + + +{#if show} + + {#if player.character === 'protagonist a'} + + {:else if player.character === 'protagonist b'} + + {:else if player.character === 'hiker'} + + {:else if player.character === 'caveman'} + + {:else if player.character === 'witch'} + + {:else if player.character === 'combat mech'} + + {:else if player.character === 'superhero'} + + {:else if player.character === 'vampire'} + + {/if} + +{/if} diff --git a/src/lib/player/Player.svelte b/src/lib/player/Player.svelte index 6ca8823..5ed375f 100644 --- a/src/lib/player/Player.svelte +++ b/src/lib/player/Player.svelte @@ -5,7 +5,7 @@ import Controller from './ThirdPersonControls.svelte'; import type { RigidBody as RapierRigidBody } from '@dimforge/rapier3d-compat'; import { onMount } from 'svelte'; - import { editingState } from '$lib/world-editor/state.svelte'; + import { editingState, updatePlayerData } from '$lib/world-editor/state.svelte'; import ProtagonistA, { type ActionName } from './Protagonist_A.svelte'; import ProtagonistB from './Protagonist_B.svelte'; import Hiker from './Hiker.svelte'; @@ -14,12 +14,14 @@ import CombatMech from './CombatMech.svelte'; import Superhero from './Superhero.svelte'; import Vampire from './Vampire.svelte'; + import { AccountCoState } from 'jazz-svelte'; + import { MyAppAccount } from '$lib/schema'; let { position = [0, 10, 0], radius = 0.4, height = 1.4, - speed = 4, + speed = 5, runningSpeed = 8 }: { position?: [number, number, number]; @@ -29,6 +31,14 @@ runningSpeed?: number; } = $props(); + const me = new AccountCoState(MyAppAccount, { + resolve: { + profile: true + } + }); + + const playerId = $derived(me.current?.profile?.id); + let isRunning = false; let capsule: Group | undefined = $state(); @@ -55,9 +65,12 @@ let direction = new Vector3(); + let timeSinceLastUpdate = 0; + usePhysicsTask((delta) => { if (!rigidBody || !capsule) return; + timeSinceLastUpdate += delta; total += delta; // get direction @@ -108,7 +121,7 @@ if (temp.length() > 3 && isRunning) { animation = 'Running_A'; } else if (temp.length() > 0.5) { - animation = 'Walking_B'; + animation = 'Walking_A'; } else { animation = 'Idle'; } @@ -131,6 +144,16 @@ rigidBody.setTranslation(new Vector3(0, 10, 0), true); rigidBody.setLinvel(new Vector3(0, 0, 0), true); } + + if (timeSinceLastUpdate > 0.1 && playerId) { + timeSinceLastUpdate = 0; + updatePlayerData(playerId, pos, rotation); + + } else { + if(!playerId) { + console.log("no player id", me.current?.profile?.id) + } + } }); function jump() { @@ -208,7 +231,7 @@ - + ; export const InstanceList = co.list(Instance); -export const World = co.map({ + +export const PlayerData = co.map({ + position: z.object({ + x: z.number(), + y: z.number(), + z: z.number() + }), + rotation: z.number(), + timestamp: z.number(), + character: z.string(), + velocity: z.object({ + x: z.number(), + y: z.number(), + z: z.number() + }) +}); + +export const PlayerDataList = co.record(z.string(), PlayerData); + +export const Cell = co.map({ instances: InstanceList }); +export const WorldCells = co.record(z.string(), Cell); + +export const World = co.map({ + cells: WorldCells, + players: PlayerDataList +}); + + export const MyAppProfile = co.profile({ name: z.string(), image: co.image().optional(), diff --git a/src/lib/utils.svelte.ts b/src/lib/utils.svelte.ts index afda905..026a56a 100644 --- a/src/lib/utils.svelte.ts +++ b/src/lib/utils.svelte.ts @@ -1,6 +1,14 @@ import { goto } from '$app/navigation'; import { Group } from 'jazz-tools'; -import { Instance, InstanceList, Transform, World } from './schema'; +import { + Cell, + Instance, + InstanceList, + PlayerDataList, + Transform, + World, + WorldCells +} from './schema'; import { editingState } from './world-editor/state.svelte'; import { getPathsForModel, models } from './world-editor/models'; @@ -35,7 +43,18 @@ export async function createWorld(base: string) { const world = World.create( { - instances: InstanceList.create([startInstance], publicGroup()) + cells: WorldCells.create( + { + '0,0': Cell.create( + { + instances: InstanceList.create([startInstance], publicGroup()) + }, + publicGroup() + ) + }, + publicGroup() + ), + players: PlayerDataList.create({}, publicGroup()) }, publicGroup() ); diff --git a/src/lib/world-editor/Instance.svelte b/src/lib/world-editor/Instance.svelte index faf5ed9..8d57ca5 100644 --- a/src/lib/world-editor/Instance.svelte +++ b/src/lib/world-editor/Instance.svelte @@ -10,7 +10,7 @@ import AutoColliderWrapper from '$lib/world/AutoColliderWrapper.svelte'; import { Vector2 } from 'three'; - let { instance }: { instance: Loaded } = $props(); + let { instance, interactive, cellId }: { instance: Loaded; interactive: boolean; cellId: string } = $props(); let scale = new Spring(0); @@ -21,6 +21,8 @@ let pointerDownPosition: Vector2 | null = $state(null); async function onclick(e: IntersectionEvent) { + if (!interactive) return; + e.stopPropagation(); if (editingState.selectedModel) { @@ -31,6 +33,7 @@ await applyTransform(); editingState.selectedInstance = instance; + editingState.selectedCellId = cellId; return; } diff --git a/src/lib/world-editor/WorldEditorScene.svelte b/src/lib/world-editor/WorldEditorScene.svelte index 27255de..a3561e5 100644 --- a/src/lib/world-editor/WorldEditorScene.svelte +++ b/src/lib/world-editor/WorldEditorScene.svelte @@ -10,6 +10,17 @@ import Ground from '$lib/world/Ground.svelte'; import Dof from '$lib/world/DOF.svelte'; import { Debug } from '@threlte/rapier'; + import OtherPlayer from '$lib/player/OtherPlayer.svelte'; + import { AccountCoState } from 'jazz-svelte'; + import { MyAppAccount } from '$lib/schema'; + + const me = new AccountCoState(MyAppAccount, { + resolve: { + profile: true + } + }); + + const playerId = $derived(me.current?.profile?.id); interactivity({ filter: (hits) => { @@ -19,6 +30,12 @@ const { renderer } = useThrelte(); + let { + interactive = true, + y = 0, + position = [0, 0, 0] + }: { interactive?: boolean; y?: number; position?: [number, number, number] } = $props(); + onMount(async () => { window.addEventListener('keydown', (e) => { if ( @@ -70,13 +87,10 @@ shadow.bias={-0.00001} /> - - - - - { + if (!interactive) return; + clickedOn(e.point, true); }} /> @@ -86,10 +100,30 @@ -{#each editingState.world?.current?.instances ?? [] as instance (instance.id)} - -{/each} + + + + + + + {#each Object.entries(editingState.world?.current?.cells ?? {}) as [cellId, cell]} + {#if cell && cell.instances} + {#each cell.instances ?? [] as instance (instance?.id)} + {#if instance} + + {/if} + {/each} + {/if} + {/each} + {#if playerId} + {#each Object.entries(editingState.world?.current?.players ?? {}) as [id, player] (id)} + {#if player && id !== playerId} + + {/if} + {/each} + {/if} + diff --git a/src/lib/world-editor/state.svelte.ts b/src/lib/world-editor/state.svelte.ts index 5b73c88..5b6a969 100644 --- a/src/lib/world-editor/state.svelte.ts +++ b/src/lib/world-editor/state.svelte.ts @@ -1,4 +1,12 @@ -import { Instance, Transform, World } from '$lib/schema'; +import { + Cell, + Instance, + InstanceList, + PlayerData, + PlayerDataList, + Transform, + World +} from '$lib/schema'; import { publicGroup } from '$lib/utils.svelte'; import type { EntityIdStr } from '@muni-town/leaf'; import type { Loaded } from 'jazz-tools'; @@ -9,6 +17,7 @@ import { toast } from '$lib/sonner'; export const editingState = $state({ selectedInstance: null as Loaded | null, + selectedCellId: null as string | null, selectedModelId: null as string | null, selectedModel: null as Model | null, @@ -75,7 +84,13 @@ export function clickedOn(point: Vector3, isFloor?: boolean) { } const currentColor = (editingState.modelPickerColor ?? 0) + 1; - const paths = getPathsForModel(editingState.selectedModel, undefined, currentColor.toString()); + let variant = undefined; + if (editingState.selectedModel.variants) { + const randomVariant = Math.floor(Math.random() * editingState.selectedModel.variants?.length); + variant = editingState.selectedModel.variants[randomVariant]; + } + + const paths = getPathsForModel(editingState.selectedModel, variant, currentColor.toString()); const randomIndex = Math.floor(Math.random() * paths.length); addInstance( paths[randomIndex], @@ -87,6 +102,14 @@ export function clickedOn(point: Vector3, isFloor?: boolean) { ); } +export const cellSize = 50; + +export function getCellId(position: { x: number; y: number; z: number }) { + const x = Math.floor(position.x / cellSize); + const z = Math.floor(position.z / cellSize); + return `${x},${z}`; +} + export async function addInstance( id: string, model: string, @@ -95,6 +118,8 @@ export async function addInstance( variant?: string, collision?: boolean ) { + if (!editingState.world) return; + const quaternion = new Quaternion(); quaternion.setFromAxisAngle(new Vector3(0, 1, 0), Math.random() * 2 * Math.PI); const instance = Instance.create( @@ -129,14 +154,85 @@ export async function addInstance( { owner: publicGroup() } ); - editingState.world?.current?.instances?.push(instance); + // check if cell exists + const cellId = getCellId(position); + const cell = editingState.world?.current?.cells[cellId]; + if (!cell) { + createCell(cellId); + } + + cell.instances.push(instance); + // editingState.world?.current?.instances?.push(instance); +} + +export function createCell(cellId: string) { + if (!editingState.world) return; + + const cell = Cell.create( + { + instances: InstanceList.create([], publicGroup()) + }, + publicGroup() + ); + + editingState.world.current.cells[cellId] = cell; + + return cell; } export async function deleteInstance(id: string) { + const cell = editingState.selectedCellId; + if (!cell) return; + // find voxel by id - const instance = editingState.world?.current?.instances?.findIndex((v) => v?.id === id); + const instance = editingState.world?.current?.cells[cell]?.instances?.findIndex( + (v) => v?.id === id + ); console.log(instance); if (instance === undefined || instance < 0) return; - editingState.world?.current?.instances?.splice(instance, 1); + editingState.world?.current?.cells[cell]?.instances?.splice(instance, 1); +} + +export function updatePlayerData( + playerId: string, + position: { x: number; y: number; z: number }, + rotation: number +) { + if (!editingState.world) return; + + const players = editingState.world.current.players; + + if (!players[playerId]) { + console.log('creating player data', playerId); + players[playerId] = PlayerData.create( + { + position: position, + rotation: rotation, + timestamp: Date.now(), + character: editingState.selectedCharacter ?? 'player', + velocity: { + x: 0, + y: 0, + z: 0 + } + }, + publicGroup() + ); + } else { + console.log('updating player data', playerId); + players[playerId].position = { + x: position.x, + y: position.y, + z: position.z + }; + players[playerId].rotation = rotation; + players[playerId].timestamp = Date.now(); + players[playerId].character = editingState.selectedCharacter ?? 'player'; + players[playerId].velocity = { + x: 0, + y: 0, + z: 0 + }; + } } diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index d57b3f7..e49c51d 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -3,10 +3,43 @@ import { createWorld } from '$lib/utils.svelte'; import { Badge, Button, Prose } from '@fuxui/base'; import { goto } from '$app/navigation'; - + import { Canvas } from '@threlte/core'; + import { CineonToneMapping } from 'three'; + import Scene from '$lib/world-editor/WorldEditorScene.svelte'; + import { onMount } from 'svelte'; + import { editingState } from '$lib/world-editor/state.svelte'; + import { CoState } from 'jazz-svelte'; + import { World as RapierWorld } from '@threlte/rapier'; + import { World } from '$lib/schema'; + let showText = $state(true); + + onMount(() => { + editingState.worldId = 'co_zioLGB74w8coU8iQ6tab4EbZbCL'; + editingState.world = new CoState(World, 'co_zioLGB74w8coU8iQ6tab4EbZbCL', { + resolve: { + cells: { + $each: { + instances: { + $each: true, + $onError: null + } + }, + $onError: null + } + } + }); + }); +
+ + + + + +
+ {#if showText}
@@ -31,10 +64,10 @@

Roomy Worlds

work in progress! -

Roomy Worlds is a tool for creating and sharing small 3D worlds as a community.

+

Roomy Worlds is a tool for creating, sharing and editing 3D worlds as a community.

- Work in progress/Preview only: You can create new worlds/models, but might + Work in progress/Preview only: You can create new worlds/models, but they might disappear/change unexpectedly with new updates. Lots of bugs too.

@@ -47,7 +80,7 @@

- + -->
diff --git a/src/routes/world/+layout.svelte b/src/routes/world/+layout.svelte index e3d7366..63972a1 100644 --- a/src/routes/world/+layout.svelte +++ b/src/routes/world/+layout.svelte @@ -20,13 +20,25 @@ editingState.worldId = worldId; editingState.world = new CoState(World, worldId, { resolve: { - instances: { + cells: { + $each: { + instances: { + $each: true, + $onError: null + }, + $onError: null + }, + $onError: null + }, + players: { $each: true, $onError: null } } }); }); + + // $inspect(Object.keys(editingState.world?.current?.cells ?? {})); {#if showWorld} diff --git a/src/routes/world/+page.svelte b/src/routes/world/+page.svelte index 394c37c..57741f9 100644 --- a/src/routes/world/+page.svelte +++ b/src/routes/world/+page.svelte @@ -43,7 +43,7 @@ {/if} --> -
+
{#if showPerfMonitor} diff --git a/static/kaykit-forest-nature/forest_texture.png b/static/kaykit-forest-nature/forest_texture.png index 8de0b695cd25d824f4c871b169038785711681ad..adf69e9349889f85cc84c2609261a96c572ad3f2 100644 GIT binary patch literal 10245 zcmeAS@N?(olHy`uVBq!ia0y~yU}ykg4mJh`hQoG=rx_R+7>k44ofy`glX=O&z|fK! z;hE;^%b>-;z`()4$|%IZ3{t|t$iToT#lQ+?Gcb5DO2gSfj2ciiObiU|nG7sYHBk%@ z-~r`BXyyfsP}PhK3=5dxsv8zCBiJB~ySHSPFfcH17I;J!Gca%qgD@k*tT_@442+SP zArU1JzCKpT`MG+DDfvmMdKI|^AYBYL6;>6w1-Ypui3%0DIeEoa6}C!X6;^r0Rv=-0 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 E0O)lOb^rhX literal 24100 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 z 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 diff --git a/static/kaykit-forest-nature/forest_texture_orig.png b/static/kaykit-forest-nature/forest_texture_orig.png new file mode 100644 index 0000000000000000000000000000000000000000..8de0b695cd25d824f4c871b169038785711681ad GIT binary patch literal 24100 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 z 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 literal 0 HcmV?d00001