@mavonengine/core 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/BaseGame.cjs +112 -0
- package/dist/BaseGame.d.ts +34 -0
- package/dist/BaseGame.js +90 -0
- package/dist/Camera.cjs +52 -0
- package/dist/Camera.d.ts +8 -0
- package/dist/Camera.js +16 -0
- package/dist/Components/MinimapComponent.cjs +92 -0
- package/dist/Components/MinimapComponent.d.ts +15 -0
- package/dist/Components/MinimapComponent.js +57 -0
- package/dist/Components/TrailComponent.cjs +101 -0
- package/dist/Components/TrailComponent.d.ts +24 -0
- package/dist/Components/TrailComponent.js +73 -0
- package/dist/Editor/EditorHelper.cjs +73 -0
- package/dist/Editor/EditorHelper.d.ts +55 -0
- package/dist/Editor/EditorHelper.js +52 -0
- package/dist/Editor/WithEditorHelper.cjs +65 -0
- package/dist/Editor/WithEditorHelper.d.ts +22 -0
- package/dist/Editor/WithEditorHelper.js +38 -0
- package/dist/Game.cjs +131 -0
- package/dist/Game.d.ts +51 -0
- package/dist/Game.js +100 -0
- package/dist/InputManager.cjs +88 -0
- package/dist/InputManager.d.ts +12 -0
- package/dist/InputManager.js +50 -0
- package/dist/Networking/Client/NetworkManager.cjs +94 -0
- package/dist/Networking/Client/NetworkManager.d.ts +18 -0
- package/dist/Networking/Client/NetworkManager.js +60 -0
- package/dist/Networking/Entities/Player.cjs +47 -0
- package/dist/Networking/Entities/Player.d.ts +9 -0
- package/dist/Networking/Entities/Player.js +17 -0
- package/dist/Networking/NetworkedActor.cjs +43 -0
- package/dist/Networking/NetworkedActor.d.ts +31 -0
- package/dist/Networking/NetworkedActor.js +10 -0
- package/dist/Networking/NetworkedEntity.cjs +16 -0
- package/dist/Networking/NetworkedEntity.d.ts +7 -0
- package/dist/Networking/NetworkedEntity.js +1 -0
- package/dist/Networking/NetworkedEntityState.cjs +44 -0
- package/dist/Networking/NetworkedEntityState.d.ts +10 -0
- package/dist/Networking/NetworkedEntityState.js +11 -0
- package/dist/Networking/NetworkedGameObject.cjs +74 -0
- package/dist/Networking/NetworkedGameObject.d.ts +35 -0
- package/dist/Networking/NetworkedGameObject.js +41 -0
- package/dist/Networking/NetworkedLivingActor.cjs +62 -0
- package/dist/Networking/NetworkedLivingActor.d.ts +35 -0
- package/dist/Networking/NetworkedLivingActor.js +32 -0
- package/dist/Networking/Server/Client.cjs +37 -0
- package/dist/Networking/Server/Client.d.ts +5 -0
- package/dist/Networking/Server/Client.js +14 -0
- package/dist/Networking/Server/Commands.cjs +32 -0
- package/dist/Networking/Server/Commands.d.ts +11 -0
- package/dist/Networking/Server/Commands.js +5 -0
- package/dist/Networking/Server/Server.cjs +202 -0
- package/dist/Networking/Server/Server.d.ts +40 -0
- package/dist/Networking/Server/Server.js +182 -0
- package/dist/Networking/Server/Stats/BandwidthTracker.cjs +45 -0
- package/dist/Networking/Server/Stats/BandwidthTracker.d.ts +11 -0
- package/dist/Networking/Server/Stats/BandwidthTracker.js +22 -0
- package/dist/Networking/Server/Stats/CpuTracker.cjs +101 -0
- package/dist/Networking/Server/Stats/CpuTracker.d.ts +13 -0
- package/dist/Networking/Server/Stats/CpuTracker.js +69 -0
- package/dist/Networking/Server/World.cjs +42 -0
- package/dist/Networking/Server/World.d.ts +5 -0
- package/dist/Networking/Server/World.js +7 -0
- package/dist/Networking/syncState.cjs +51 -0
- package/dist/Networking/syncState.d.ts +11 -0
- package/dist/Networking/syncState.js +33 -0
- package/dist/Particles/Effects/Rain.cjs +90 -0
- package/dist/Particles/Effects/Rain.d.ts +19 -0
- package/dist/Particles/Effects/Rain.js +51 -0
- package/dist/Particles/Effects/Smoke.cjs +144 -0
- package/dist/Particles/Effects/Smoke.d.ts +27 -0
- package/dist/Particles/Effects/Smoke.js +104 -0
- package/dist/Particles/Shaders/LoadingScreen/Fragment.glsl +6 -0
- package/dist/Particles/Shaders/LoadingScreen/Vertex.glsl +3 -0
- package/dist/Particles/Shaders/Rain/Fragment.glsl +4 -0
- package/dist/Particles/Shaders/Rain/Vertex.glsl +23 -0
- package/dist/Particles/Shaders/Smoke/Fragment.glsl +8 -0
- package/dist/Particles/Shaders/Smoke/Vertex.glsl +25 -0
- package/dist/Particles/System/Emitter.cjs +81 -0
- package/dist/Particles/System/Emitter.d.ts +36 -0
- package/dist/Particles/System/Emitter.js +50 -0
- package/dist/Particles/System/Particle.cjs +49 -0
- package/dist/Particles/System/Particle.d.ts +11 -0
- package/dist/Particles/System/Particle.js +16 -0
- package/dist/Particles/System/ParticleEffect.cjs +59 -0
- package/dist/Particles/System/ParticleEffect.d.ts +22 -0
- package/dist/Particles/System/ParticleEffect.js +30 -0
- package/dist/Particles/System/ParticlePreviewRegistry.cjs +63 -0
- package/dist/Particles/System/ParticlePreviewRegistry.d.ts +10 -0
- package/dist/Particles/System/ParticlePreviewRegistry.js +23 -0
- package/dist/Particles/System/ParticleSystem.cjs +61 -0
- package/dist/Particles/System/ParticleSystem.d.ts +11 -0
- package/dist/Particles/System/ParticleSystem.js +28 -0
- package/dist/Prefab/Grass/Fragment.glsl +11 -0
- package/dist/Prefab/Grass/Grass.cjs +214 -0
- package/dist/Prefab/Grass/Grass.d.ts +32 -0
- package/dist/Prefab/Grass/Grass.js +182 -0
- package/dist/Prefab/Grass/GrassAffectingEntity.cjs +30 -0
- package/dist/Prefab/Grass/GrassAffectingEntity.d.ts +8 -0
- package/dist/Prefab/Grass/GrassAffectingEntity.js +3 -0
- package/dist/Prefab/Grass/Vertex.glsl +102 -0
- package/dist/Prefab/Lights/index.cjs +233 -0
- package/dist/Prefab/Lights/index.d.ts +77 -0
- package/dist/Prefab/Lights/index.js +164 -0
- package/dist/Prefab/Primitives/index.cjs +300 -0
- package/dist/Prefab/Primitives/index.d.ts +82 -0
- package/dist/Prefab/Primitives/index.js +217 -0
- package/dist/Prefab/Water/Fragment.glsl +36 -0
- package/dist/Prefab/Water/Vertex.glsl +60 -0
- package/dist/Prefab/Water/Water.cjs +234 -0
- package/dist/Prefab/Water/Water.d.ts +41 -0
- package/dist/Prefab/Water/Water.js +192 -0
- package/dist/Prefab/Water/WaterManager.cjs +146 -0
- package/dist/Prefab/Water/WaterManager.d.ts +28 -0
- package/dist/Prefab/Water/WaterManager.js +113 -0
- package/dist/Renderer/AssetRenderer.cjs +85 -0
- package/dist/Renderer/AssetRenderer.d.ts +14 -0
- package/dist/Renderer/AssetRenderer.js +52 -0
- package/dist/Renderer/PhysicsRenderer.cjs +84 -0
- package/dist/Renderer/PhysicsRenderer.d.ts +16 -0
- package/dist/Renderer/PhysicsRenderer.js +48 -0
- package/dist/Renderer.cjs +135 -0
- package/dist/Renderer.d.ts +23 -0
- package/dist/Renderer.js +86 -0
- package/dist/Shaders/Vertex/ClassicPerlin3DNoise.glsl +84 -0
- package/dist/Types/Asset.cjs +16 -0
- package/dist/Types/Asset.d.ts +6 -0
- package/dist/Types/Asset.js +1 -0
- package/dist/Types/Events.cjs +16 -0
- package/dist/Types/Events.d.ts +4 -0
- package/dist/Types/Events.js +1 -0
- package/dist/Types/IEditor.cjs +16 -0
- package/dist/Types/IEditor.d.ts +21 -0
- package/dist/Types/IEditor.js +1 -0
- package/dist/Utils/Debug.cjs +47 -0
- package/dist/Utils/Debug.d.ts +7 -0
- package/dist/Utils/Debug.js +14 -0
- package/dist/Utils/EventEmitter.cjs +58 -0
- package/dist/Utils/EventEmitter.d.ts +25 -0
- package/dist/Utils/EventEmitter.js +31 -0
- package/dist/Utils/Helpers.cjs +33 -0
- package/dist/Utils/Helpers.d.ts +6 -0
- package/dist/Utils/Helpers.js +10 -0
- package/dist/Utils/LoadingScreen.cjs +91 -0
- package/dist/Utils/LoadingScreen.d.ts +12 -0
- package/dist/Utils/LoadingScreen.js +59 -0
- package/dist/Utils/Logger.cjs +60 -0
- package/dist/Utils/Logger.d.ts +11 -0
- package/dist/Utils/Logger.js +39 -0
- package/dist/Utils/Math.cjs +35 -0
- package/dist/Utils/Math.d.ts +10 -0
- package/dist/Utils/Math.js +14 -0
- package/dist/Utils/Resources.cjs +101 -0
- package/dist/Utils/Resources.d.ts +29 -0
- package/dist/Utils/Resources.js +69 -0
- package/dist/Utils/Sizes.cjs +51 -0
- package/dist/Utils/Sizes.d.ts +8 -0
- package/dist/Utils/Sizes.js +18 -0
- package/dist/Utils/SkeletonAxesHelper.cjs +60 -0
- package/dist/Utils/SkeletonAxesHelper.d.ts +11 -0
- package/dist/Utils/SkeletonAxesHelper.js +40 -0
- package/dist/World/Actor.cjs +55 -0
- package/dist/World/Actor.d.ts +13 -0
- package/dist/World/Actor.js +25 -0
- package/dist/World/BaseChunkManager.cjs +34 -0
- package/dist/World/BaseChunkManager.d.ts +10 -0
- package/dist/World/BaseChunkManager.js +14 -0
- package/dist/World/BaseWorld.cjs +73 -0
- package/dist/World/BaseWorld.d.ts +23 -0
- package/dist/World/BaseWorld.js +45 -0
- package/dist/World/Chunk.cjs +45 -0
- package/dist/World/Chunk.d.ts +7 -0
- package/dist/World/Chunk.js +12 -0
- package/dist/World/Entity/State.cjs +52 -0
- package/dist/World/Entity/State.d.ts +20 -0
- package/dist/World/Entity/State.js +32 -0
- package/dist/World/Entity/interface/Damageable.cjs +16 -0
- package/dist/World/Entity/interface/Damageable.d.ts +7 -0
- package/dist/World/Entity/interface/Damageable.js +1 -0
- package/dist/World/Entity/interface/LivingEntity.cjs +16 -0
- package/dist/World/Entity/interface/LivingEntity.d.ts +3 -0
- package/dist/World/Entity/interface/LivingEntity.js +1 -0
- package/dist/World/Entity3D.cjs +92 -0
- package/dist/World/Entity3D.d.ts +23 -0
- package/dist/World/Entity3D.js +67 -0
- package/dist/World/Environment.cjs +59 -0
- package/dist/World/Environment.d.ts +7 -0
- package/dist/World/Environment.js +26 -0
- package/dist/World/GameObject.cjs +59 -0
- package/dist/World/GameObject.d.ts +16 -0
- package/dist/World/GameObject.js +26 -0
- package/dist/World/GameObjectInterface.cjs +16 -0
- package/dist/World/GameObjectInterface.d.ts +4 -0
- package/dist/World/GameObjectInterface.js +1 -0
- package/dist/World/LivingActor.cjs +42 -0
- package/dist/World/LivingActor.d.ts +10 -0
- package/dist/World/LivingActor.js +9 -0
- package/dist/World/StateManager.cjs +47 -0
- package/dist/World/StateManager.d.ts +6 -0
- package/dist/World/StateManager.js +14 -0
- package/dist/World/World.cjs +58 -0
- package/dist/World/World.d.ts +6 -0
- package/dist/World/World.js +25 -0
- package/dist/browser/BaseGame.js +10 -0
- package/dist/browser/BaseGame.js.map +1 -0
- package/dist/browser/Camera.css +51 -0
- package/dist/browser/Camera.css.map +1 -0
- package/dist/browser/Camera.js +18 -0
- package/dist/browser/Camera.js.map +1 -0
- package/dist/browser/Components/MinimapComponent.css +51 -0
- package/dist/browser/Components/MinimapComponent.css.map +1 -0
- package/dist/browser/Components/MinimapComponent.js +74 -0
- package/dist/browser/Components/MinimapComponent.js.map +1 -0
- package/dist/browser/Components/TrailComponent.css +51 -0
- package/dist/browser/Components/TrailComponent.css.map +1 -0
- package/dist/browser/Components/TrailComponent.js +94 -0
- package/dist/browser/Components/TrailComponent.js.map +1 -0
- package/dist/browser/Editor/EditorHelper.css +51 -0
- package/dist/browser/Editor/EditorHelper.css.map +1 -0
- package/dist/browser/Editor/EditorHelper.js +21 -0
- package/dist/browser/Editor/EditorHelper.js.map +1 -0
- package/dist/browser/Editor/WithEditorHelper.css +51 -0
- package/dist/browser/Editor/WithEditorHelper.css.map +1 -0
- package/dist/browser/Editor/WithEditorHelper.js +22 -0
- package/dist/browser/Editor/WithEditorHelper.js.map +1 -0
- package/dist/browser/Game.css +51 -0
- package/dist/browser/Game.css.map +1 -0
- package/dist/browser/Game.js +18 -0
- package/dist/browser/Game.js.map +1 -0
- package/dist/browser/InputManager.css +51 -0
- package/dist/browser/InputManager.css.map +1 -0
- package/dist/browser/InputManager.js +18 -0
- package/dist/browser/InputManager.js.map +1 -0
- package/dist/browser/Networking/Client/NetworkManager.js +73 -0
- package/dist/browser/Networking/Client/NetworkManager.js.map +1 -0
- package/dist/browser/Networking/Entities/Player.js +15 -0
- package/dist/browser/Networking/Entities/Player.js.map +1 -0
- package/dist/browser/Networking/NetworkedActor.js +24 -0
- package/dist/browser/Networking/NetworkedActor.js.map +1 -0
- package/dist/browser/Networking/NetworkedEntity.js +1 -0
- package/dist/browser/Networking/NetworkedEntity.js.map +1 -0
- package/dist/browser/Networking/NetworkedEntityState.js +20 -0
- package/dist/browser/Networking/NetworkedEntityState.js.map +1 -0
- package/dist/browser/Networking/NetworkedGameObject.js +12 -0
- package/dist/browser/Networking/NetworkedGameObject.js.map +1 -0
- package/dist/browser/Networking/NetworkedLivingActor.js +14 -0
- package/dist/browser/Networking/NetworkedLivingActor.js.map +1 -0
- package/dist/browser/Networking/Server/Client.js +8 -0
- package/dist/browser/Networking/Server/Client.js.map +1 -0
- package/dist/browser/Networking/Server/Commands.js +8 -0
- package/dist/browser/Networking/Server/Commands.js.map +1 -0
- package/dist/browser/Networking/Server/Server.js +194 -0
- package/dist/browser/Networking/Server/Server.js.map +1 -0
- package/dist/browser/Networking/Server/Stats/BandwidthTracker.js +8 -0
- package/dist/browser/Networking/Server/Stats/BandwidthTracker.js.map +1 -0
- package/dist/browser/Networking/Server/Stats/CpuTracker.js +8 -0
- package/dist/browser/Networking/Server/Stats/CpuTracker.js.map +1 -0
- package/dist/browser/Networking/Server/World.js +19 -0
- package/dist/browser/Networking/Server/World.js.map +1 -0
- package/dist/browser/Networking/syncState.js +31 -0
- package/dist/browser/Networking/syncState.js.map +1 -0
- package/dist/browser/Particles/Effects/Rain.css +51 -0
- package/dist/browser/Particles/Effects/Rain.css.map +1 -0
- package/dist/browser/Particles/Effects/Rain.js +88 -0
- package/dist/browser/Particles/Effects/Rain.js.map +1 -0
- package/dist/browser/Particles/Effects/Smoke.css +51 -0
- package/dist/browser/Particles/Effects/Smoke.css.map +1 -0
- package/dist/browser/Particles/Effects/Smoke.js +143 -0
- package/dist/browser/Particles/Effects/Smoke.js.map +1 -0
- package/dist/browser/Particles/Shaders/LoadingScreen/Fragment.glsl +6 -0
- package/dist/browser/Particles/Shaders/LoadingScreen/Vertex.glsl +3 -0
- package/dist/browser/Particles/Shaders/Rain/Fragment.glsl +4 -0
- package/dist/browser/Particles/Shaders/Rain/Vertex.glsl +23 -0
- package/dist/browser/Particles/Shaders/Smoke/Fragment.glsl +8 -0
- package/dist/browser/Particles/Shaders/Smoke/Vertex.glsl +25 -0
- package/dist/browser/Particles/System/Emitter.css +51 -0
- package/dist/browser/Particles/System/Emitter.css.map +1 -0
- package/dist/browser/Particles/System/Emitter.js +19 -0
- package/dist/browser/Particles/System/Emitter.js.map +1 -0
- package/dist/browser/Particles/System/Particle.js +10 -0
- package/dist/browser/Particles/System/Particle.js.map +1 -0
- package/dist/browser/Particles/System/ParticleEffect.css +51 -0
- package/dist/browser/Particles/System/ParticleEffect.css.map +1 -0
- package/dist/browser/Particles/System/ParticleEffect.js +23 -0
- package/dist/browser/Particles/System/ParticleEffect.js.map +1 -0
- package/dist/browser/Particles/System/ParticlePreviewRegistry.js +13 -0
- package/dist/browser/Particles/System/ParticlePreviewRegistry.js.map +1 -0
- package/dist/browser/Particles/System/ParticleSystem.css +51 -0
- package/dist/browser/Particles/System/ParticleSystem.css.map +1 -0
- package/dist/browser/Particles/System/ParticleSystem.js +18 -0
- package/dist/browser/Particles/System/ParticleSystem.js.map +1 -0
- package/dist/browser/Prefab/Grass/Fragment.glsl +11 -0
- package/dist/browser/Prefab/Grass/Grass.css +51 -0
- package/dist/browser/Prefab/Grass/Grass.css.map +1 -0
- package/dist/browser/Prefab/Grass/Grass.js +226 -0
- package/dist/browser/Prefab/Grass/Grass.js.map +1 -0
- package/dist/browser/Prefab/Grass/GrassAffectingEntity.js +10 -0
- package/dist/browser/Prefab/Grass/GrassAffectingEntity.js.map +1 -0
- package/dist/browser/Prefab/Grass/Vertex.glsl +102 -0
- package/dist/browser/Prefab/Lights/index.css +51 -0
- package/dist/browser/Prefab/Lights/index.css.map +1 -0
- package/dist/browser/Prefab/Lights/index.js +224 -0
- package/dist/browser/Prefab/Lights/index.js.map +1 -0
- package/dist/browser/Prefab/Primitives/index.css +51 -0
- package/dist/browser/Prefab/Primitives/index.css.map +1 -0
- package/dist/browser/Prefab/Primitives/index.js +296 -0
- package/dist/browser/Prefab/Primitives/index.js.map +1 -0
- package/dist/browser/Prefab/Water/Fragment.glsl +36 -0
- package/dist/browser/Prefab/Water/Vertex.glsl +60 -0
- package/dist/browser/Prefab/Water/Water.css +51 -0
- package/dist/browser/Prefab/Water/Water.css.map +1 -0
- package/dist/browser/Prefab/Water/Water.js +234 -0
- package/dist/browser/Prefab/Water/Water.js.map +1 -0
- package/dist/browser/Prefab/Water/WaterManager.css +51 -0
- package/dist/browser/Prefab/Water/WaterManager.css.map +1 -0
- package/dist/browser/Prefab/Water/WaterManager.js +19 -0
- package/dist/browser/Prefab/Water/WaterManager.js.map +1 -0
- package/dist/browser/Renderer/AssetRenderer.css +51 -0
- package/dist/browser/Renderer/AssetRenderer.css.map +1 -0
- package/dist/browser/Renderer/AssetRenderer.js +71 -0
- package/dist/browser/Renderer/AssetRenderer.js.map +1 -0
- package/dist/browser/Renderer/PhysicsRenderer.css +51 -0
- package/dist/browser/Renderer/PhysicsRenderer.css.map +1 -0
- package/dist/browser/Renderer/PhysicsRenderer.js +18 -0
- package/dist/browser/Renderer/PhysicsRenderer.js.map +1 -0
- package/dist/browser/Renderer.css +51 -0
- package/dist/browser/Renderer.css.map +1 -0
- package/dist/browser/Renderer.js +18 -0
- package/dist/browser/Renderer.js.map +1 -0
- package/dist/browser/Shaders/Vertex/ClassicPerlin3DNoise.glsl +84 -0
- package/dist/browser/Types/Asset.js +1 -0
- package/dist/browser/Types/Asset.js.map +1 -0
- package/dist/browser/Types/Events.js +1 -0
- package/dist/browser/Types/Events.js.map +1 -0
- package/dist/browser/Types/IEditor.js +1 -0
- package/dist/browser/Types/IEditor.js.map +1 -0
- package/dist/browser/Utils/Debug.js +9 -0
- package/dist/browser/Utils/Debug.js.map +1 -0
- package/dist/browser/Utils/EventEmitter.js +10 -0
- package/dist/browser/Utils/EventEmitter.js.map +1 -0
- package/dist/browser/Utils/Helpers.js +13 -0
- package/dist/browser/Utils/Helpers.js.map +1 -0
- package/dist/browser/Utils/LoadingScreen.css +51 -0
- package/dist/browser/Utils/LoadingScreen.css.map +1 -0
- package/dist/browser/Utils/LoadingScreen.js +18 -0
- package/dist/browser/Utils/LoadingScreen.js.map +1 -0
- package/dist/browser/Utils/Logger.js +8 -0
- package/dist/browser/Utils/Logger.js.map +1 -0
- package/dist/browser/Utils/Math.js +10 -0
- package/dist/browser/Utils/Math.js.map +1 -0
- package/dist/browser/Utils/Resources.js +9 -0
- package/dist/browser/Utils/Resources.js.map +1 -0
- package/dist/browser/Utils/Sizes.js +9 -0
- package/dist/browser/Utils/Sizes.js.map +1 -0
- package/dist/browser/Utils/SkeletonAxesHelper.js +8 -0
- package/dist/browser/Utils/SkeletonAxesHelper.js.map +1 -0
- package/dist/browser/World/Actor.js +11 -0
- package/dist/browser/World/Actor.js.map +1 -0
- package/dist/browser/World/BaseChunkManager.js +8 -0
- package/dist/browser/World/BaseChunkManager.js.map +1 -0
- package/dist/browser/World/BaseWorld.js +10 -0
- package/dist/browser/World/BaseWorld.js.map +1 -0
- package/dist/browser/World/Chunk.js +22 -0
- package/dist/browser/World/Chunk.js.map +1 -0
- package/dist/browser/World/Entity/State.js +8 -0
- package/dist/browser/World/Entity/State.js.map +1 -0
- package/dist/browser/World/Entity/interface/Damageable.js +1 -0
- package/dist/browser/World/Entity/interface/Damageable.js.map +1 -0
- package/dist/browser/World/Entity/interface/LivingEntity.js +1 -0
- package/dist/browser/World/Entity/interface/LivingEntity.js.map +1 -0
- package/dist/browser/World/Entity3D.css +51 -0
- package/dist/browser/World/Entity3D.css.map +1 -0
- package/dist/browser/World/Entity3D.js +21 -0
- package/dist/browser/World/Entity3D.js.map +1 -0
- package/dist/browser/World/Environment.css +51 -0
- package/dist/browser/World/Environment.css.map +1 -0
- package/dist/browser/World/Environment.js +18 -0
- package/dist/browser/World/Environment.js.map +1 -0
- package/dist/browser/World/GameObject.js +9 -0
- package/dist/browser/World/GameObject.js.map +1 -0
- package/dist/browser/World/GameObjectInterface.js +1 -0
- package/dist/browser/World/GameObjectInterface.js.map +1 -0
- package/dist/browser/World/LivingActor.js +12 -0
- package/dist/browser/World/LivingActor.js.map +1 -0
- package/dist/browser/World/StateManager.js +23 -0
- package/dist/browser/World/StateManager.js.map +1 -0
- package/dist/browser/World/World.css +51 -0
- package/dist/browser/World/World.css.map +1 -0
- package/dist/browser/World/World.js +18 -0
- package/dist/browser/World/World.js.map +1 -0
- package/dist/browser/chunk-2D7GC2Z6.js +17 -0
- package/dist/browser/chunk-2D7GC2Z6.js.map +1 -0
- package/dist/browser/chunk-2UXBMKXV.js +56 -0
- package/dist/browser/chunk-2UXBMKXV.js.map +1 -0
- package/dist/browser/chunk-36BXDTHA.js +35 -0
- package/dist/browser/chunk-36BXDTHA.js.map +1 -0
- package/dist/browser/chunk-374CRENE.js +56 -0
- package/dist/browser/chunk-374CRENE.js.map +1 -0
- package/dist/browser/chunk-3KYMJLQ5.js +46 -0
- package/dist/browser/chunk-3KYMJLQ5.js.map +1 -0
- package/dist/browser/chunk-4I6AZDRZ.js +14356 -0
- package/dist/browser/chunk-4I6AZDRZ.js.map +1 -0
- package/dist/browser/chunk-5LZSI46V.js +122 -0
- package/dist/browser/chunk-5LZSI46V.js.map +1 -0
- package/dist/browser/chunk-6K25QHWN.js +70 -0
- package/dist/browser/chunk-6K25QHWN.js.map +1 -0
- package/dist/browser/chunk-72INBIW4.js +122 -0
- package/dist/browser/chunk-72INBIW4.js.map +1 -0
- package/dist/browser/chunk-7QLYKS4T.js +77 -0
- package/dist/browser/chunk-7QLYKS4T.js.map +1 -0
- package/dist/browser/chunk-7ZSIOAT6.js +56 -0
- package/dist/browser/chunk-7ZSIOAT6.js.map +1 -0
- package/dist/browser/chunk-A5XMBADG.js +14356 -0
- package/dist/browser/chunk-A5XMBADG.js.map +1 -0
- package/dist/browser/chunk-ANVCAFXE.js +39 -0
- package/dist/browser/chunk-ANVCAFXE.js.map +1 -0
- package/dist/browser/chunk-AYRIMARL.js +56 -0
- package/dist/browser/chunk-AYRIMARL.js.map +1 -0
- package/dist/browser/chunk-BTC6Q4AH.js +39 -0
- package/dist/browser/chunk-BTC6Q4AH.js.map +1 -0
- package/dist/browser/chunk-BZO35RV2.js +135 -0
- package/dist/browser/chunk-BZO35RV2.js.map +1 -0
- package/dist/browser/chunk-C6AZ3L5F.js +70 -0
- package/dist/browser/chunk-C6AZ3L5F.js.map +1 -0
- package/dist/browser/chunk-CZUIHQMY.js +35 -0
- package/dist/browser/chunk-CZUIHQMY.js.map +1 -0
- package/dist/browser/chunk-D6OGGUMR.js +37 -0
- package/dist/browser/chunk-D6OGGUMR.js.map +1 -0
- package/dist/browser/chunk-DDHAPXFM.js +59 -0
- package/dist/browser/chunk-DDHAPXFM.js.map +1 -0
- package/dist/browser/chunk-DXO5V45O.js +122 -0
- package/dist/browser/chunk-DXO5V45O.js.map +1 -0
- package/dist/browser/chunk-EAQXXB5M.js +33 -0
- package/dist/browser/chunk-EAQXXB5M.js.map +1 -0
- package/dist/browser/chunk-FEGN4PF3.js +70 -0
- package/dist/browser/chunk-FEGN4PF3.js.map +1 -0
- package/dist/browser/chunk-G3PMV62Z.js +36 -0
- package/dist/browser/chunk-G3PMV62Z.js.map +1 -0
- package/dist/browser/chunk-GDOID2XG.js +43 -0
- package/dist/browser/chunk-GDOID2XG.js.map +1 -0
- package/dist/browser/chunk-GQ7NSGUB.js +37 -0
- package/dist/browser/chunk-GQ7NSGUB.js.map +1 -0
- package/dist/browser/chunk-GQMXKH26.js +20 -0
- package/dist/browser/chunk-GQMXKH26.js.map +1 -0
- package/dist/browser/chunk-GTPU5BFU.js +33 -0
- package/dist/browser/chunk-GTPU5BFU.js.map +1 -0
- package/dist/browser/chunk-HKJQDU25.js +74 -0
- package/dist/browser/chunk-HKJQDU25.js.map +1 -0
- package/dist/browser/chunk-HQ264K3X.js +20 -0
- package/dist/browser/chunk-HQ264K3X.js.map +1 -0
- package/dist/browser/chunk-HU53VGSY.js +37 -0
- package/dist/browser/chunk-HU53VGSY.js.map +1 -0
- package/dist/browser/chunk-HYBS64DV.js +13 -0
- package/dist/browser/chunk-HYBS64DV.js.map +1 -0
- package/dist/browser/chunk-IEOCTIMD.js +39 -0
- package/dist/browser/chunk-IEOCTIMD.js.map +1 -0
- package/dist/browser/chunk-INBJUTI4.js +51 -0
- package/dist/browser/chunk-INBJUTI4.js.map +1 -0
- package/dist/browser/chunk-IRDAPFOT.js +33 -0
- package/dist/browser/chunk-IRDAPFOT.js.map +1 -0
- package/dist/browser/chunk-J3ORUAIB.js +14356 -0
- package/dist/browser/chunk-J3ORUAIB.js.map +1 -0
- package/dist/browser/chunk-J7UBIWHX.js +27 -0
- package/dist/browser/chunk-J7UBIWHX.js.map +1 -0
- package/dist/browser/chunk-JAQ4MYZU.js +56 -0
- package/dist/browser/chunk-JAQ4MYZU.js.map +1 -0
- package/dist/browser/chunk-JVAFQ3HV.js +39 -0
- package/dist/browser/chunk-JVAFQ3HV.js.map +1 -0
- package/dist/browser/chunk-K5X3CO2X.js +33 -0
- package/dist/browser/chunk-K5X3CO2X.js.map +1 -0
- package/dist/browser/chunk-K6YNA7KS.js +59 -0
- package/dist/browser/chunk-K6YNA7KS.js.map +1 -0
- package/dist/browser/chunk-KJJCXAUN.js +33 -0
- package/dist/browser/chunk-KJJCXAUN.js.map +1 -0
- package/dist/browser/chunk-KQWQS3PJ.js +51 -0
- package/dist/browser/chunk-KQWQS3PJ.js.map +1 -0
- package/dist/browser/chunk-KRACPY5Q.js +14356 -0
- package/dist/browser/chunk-KRACPY5Q.js.map +1 -0
- package/dist/browser/chunk-LLU7BAGD.js +122 -0
- package/dist/browser/chunk-LLU7BAGD.js.map +1 -0
- package/dist/browser/chunk-MAGAUADA.js +33 -0
- package/dist/browser/chunk-MAGAUADA.js.map +1 -0
- package/dist/browser/chunk-MSCP7BC3.js +37 -0
- package/dist/browser/chunk-MSCP7BC3.js.map +1 -0
- package/dist/browser/chunk-MSSBGJJT.js +40 -0
- package/dist/browser/chunk-MSSBGJJT.js.map +1 -0
- package/dist/browser/chunk-NGCKXPYU.js +70 -0
- package/dist/browser/chunk-NGCKXPYU.js.map +1 -0
- package/dist/browser/chunk-ORBRJSRE.js +25 -0
- package/dist/browser/chunk-ORBRJSRE.js.map +1 -0
- package/dist/browser/chunk-OVP75QOD.js +15744 -0
- package/dist/browser/chunk-OVP75QOD.js.map +1 -0
- package/dist/browser/chunk-PESPCN4F.js +14356 -0
- package/dist/browser/chunk-PESPCN4F.js.map +1 -0
- package/dist/browser/chunk-PMZKVZCW.js +20 -0
- package/dist/browser/chunk-PMZKVZCW.js.map +1 -0
- package/dist/browser/chunk-RZJPUR5S.js +23 -0
- package/dist/browser/chunk-RZJPUR5S.js.map +1 -0
- package/dist/browser/chunk-S7PIA5U4.js +70 -0
- package/dist/browser/chunk-S7PIA5U4.js.map +1 -0
- package/dist/browser/chunk-SOW4TZP2.js +59 -0
- package/dist/browser/chunk-SOW4TZP2.js.map +1 -0
- package/dist/browser/chunk-SR7IBOM4.js +33 -0
- package/dist/browser/chunk-SR7IBOM4.js.map +1 -0
- package/dist/browser/chunk-TCU5NEY6.js +51 -0
- package/dist/browser/chunk-TCU5NEY6.js.map +1 -0
- package/dist/browser/chunk-U7MSUO62.js +11 -0
- package/dist/browser/chunk-U7MSUO62.js.map +1 -0
- package/dist/browser/chunk-UA75LFFB.js +39 -0
- package/dist/browser/chunk-UA75LFFB.js.map +1 -0
- package/dist/browser/chunk-UK2P4JGN.js +18 -0
- package/dist/browser/chunk-UK2P4JGN.js.map +1 -0
- package/dist/browser/chunk-VU7FUAOS.js +51 -0
- package/dist/browser/chunk-VU7FUAOS.js.map +1 -0
- package/dist/browser/chunk-VWCQZXBU.js +28 -0
- package/dist/browser/chunk-VWCQZXBU.js.map +1 -0
- package/dist/browser/chunk-VZ3QIXWK.js +43 -0
- package/dist/browser/chunk-VZ3QIXWK.js.map +1 -0
- package/dist/browser/chunk-WXOHFWTK.js +135 -0
- package/dist/browser/chunk-WXOHFWTK.js.map +1 -0
- package/dist/browser/chunk-XLZIPQ5H.js +122 -0
- package/dist/browser/chunk-XLZIPQ5H.js.map +1 -0
- package/dist/browser/chunk-XYI6B5DC.js +59 -0
- package/dist/browser/chunk-XYI6B5DC.js.map +1 -0
- package/dist/browser/chunk-Y7C4YAUZ.js +37 -0
- package/dist/browser/chunk-Y7C4YAUZ.js.map +1 -0
- package/dist/browser/chunk-YN5JXQTD.js +51 -0
- package/dist/browser/chunk-YN5JXQTD.js.map +1 -0
- package/dist/browser/chunk-YSGEW6PQ.js +59 -0
- package/dist/browser/chunk-YSGEW6PQ.js.map +1 -0
- package/dist/browser/chunk-YUIIN7WJ.js +37 -0
- package/dist/browser/chunk-YUIIN7WJ.js.map +1 -0
- package/dist/browser/ui/ObjectLabel.css +51 -0
- package/dist/browser/ui/ObjectLabel.css.map +1 -0
- package/dist/browser/ui/ObjectLabel.js +19 -0
- package/dist/browser/ui/ObjectLabel.js.map +1 -0
- package/dist/browser/ui/UILabel.css +51 -0
- package/dist/browser/ui/UILabel.css.map +1 -0
- package/dist/browser/ui/UILabel.js +20 -0
- package/dist/browser/ui/UILabel.js.map +1 -0
- package/dist/cjs/BaseGame.cjs +112 -0
- package/dist/cjs/Camera.cjs +52 -0
- package/dist/cjs/Components/MinimapComponent.cjs +92 -0
- package/dist/cjs/Components/TrailComponent.cjs +101 -0
- package/dist/cjs/Editor/EditorHelper.cjs +73 -0
- package/dist/cjs/Editor/WithEditorHelper.cjs +65 -0
- package/dist/cjs/Game.cjs +131 -0
- package/dist/cjs/InputManager.cjs +88 -0
- package/dist/cjs/Networking/Client/NetworkManager.cjs +94 -0
- package/dist/cjs/Networking/Entities/Player.cjs +47 -0
- package/dist/cjs/Networking/NetworkedActor.cjs +43 -0
- package/dist/cjs/Networking/NetworkedEntity.cjs +16 -0
- package/dist/cjs/Networking/NetworkedEntityState.cjs +44 -0
- package/dist/cjs/Networking/NetworkedGameObject.cjs +74 -0
- package/dist/cjs/Networking/NetworkedLivingActor.cjs +62 -0
- package/dist/cjs/Networking/Server/Client.cjs +37 -0
- package/dist/cjs/Networking/Server/Commands.cjs +32 -0
- package/dist/cjs/Networking/Server/Server.cjs +202 -0
- package/dist/cjs/Networking/Server/Stats/BandwidthTracker.cjs +45 -0
- package/dist/cjs/Networking/Server/Stats/CpuTracker.cjs +101 -0
- package/dist/cjs/Networking/Server/World.cjs +42 -0
- package/dist/cjs/Networking/syncState.cjs +51 -0
- package/dist/cjs/Particles/Effects/Rain.cjs +90 -0
- package/dist/cjs/Particles/Effects/Smoke.cjs +144 -0
- package/dist/cjs/Particles/System/Emitter.cjs +81 -0
- package/dist/cjs/Particles/System/Particle.cjs +49 -0
- package/dist/cjs/Particles/System/ParticleEffect.cjs +59 -0
- package/dist/cjs/Particles/System/ParticlePreviewRegistry.cjs +63 -0
- package/dist/cjs/Particles/System/ParticleSystem.cjs +61 -0
- package/dist/cjs/Prefab/Grass/Grass.cjs +214 -0
- package/dist/cjs/Prefab/Grass/GrassAffectingEntity.cjs +30 -0
- package/dist/cjs/Prefab/Lights/index.cjs +233 -0
- package/dist/cjs/Prefab/Primitives/index.cjs +300 -0
- package/dist/cjs/Prefab/Water/Water.cjs +234 -0
- package/dist/cjs/Prefab/Water/WaterManager.cjs +146 -0
- package/dist/cjs/Renderer/AssetRenderer.cjs +85 -0
- package/dist/cjs/Renderer/PhysicsRenderer.cjs +84 -0
- package/dist/cjs/Renderer.cjs +135 -0
- package/dist/cjs/Types/Asset.cjs +16 -0
- package/dist/cjs/Types/Events.cjs +16 -0
- package/dist/cjs/Types/IEditor.cjs +16 -0
- package/dist/cjs/Utils/Debug.cjs +47 -0
- package/dist/cjs/Utils/EventEmitter.cjs +58 -0
- package/dist/cjs/Utils/Helpers.cjs +33 -0
- package/dist/cjs/Utils/LoadingScreen.cjs +91 -0
- package/dist/cjs/Utils/Logger.cjs +60 -0
- package/dist/cjs/Utils/Math.cjs +35 -0
- package/dist/cjs/Utils/Resources.cjs +101 -0
- package/dist/cjs/Utils/Sizes.cjs +51 -0
- package/dist/cjs/Utils/SkeletonAxesHelper.cjs +60 -0
- package/dist/cjs/World/Actor.cjs +55 -0
- package/dist/cjs/World/BaseChunkManager.cjs +34 -0
- package/dist/cjs/World/BaseWorld.cjs +73 -0
- package/dist/cjs/World/Chunk.cjs +45 -0
- package/dist/cjs/World/Entity/State.cjs +52 -0
- package/dist/cjs/World/Entity/interface/Damageable.cjs +16 -0
- package/dist/cjs/World/Entity/interface/LivingEntity.cjs +16 -0
- package/dist/cjs/World/Entity3D.cjs +92 -0
- package/dist/cjs/World/Environment.cjs +59 -0
- package/dist/cjs/World/GameObject.cjs +59 -0
- package/dist/cjs/World/GameObjectInterface.cjs +16 -0
- package/dist/cjs/World/LivingActor.cjs +42 -0
- package/dist/cjs/World/StateManager.cjs +47 -0
- package/dist/cjs/World/World.cjs +58 -0
- package/dist/cjs/types.d.cjs +1 -0
- package/dist/cjs/ui/ObjectLabel.cjs +80 -0
- package/dist/cjs/ui/UILabel.cjs +57 -0
- package/dist/node/BaseGame.js +10 -0
- package/dist/node/BaseGame.js.map +1 -0
- package/dist/node/Camera.css +51 -0
- package/dist/node/Camera.css.map +1 -0
- package/dist/node/Camera.js +18 -0
- package/dist/node/Camera.js.map +1 -0
- package/dist/node/Components/MinimapComponent.css +51 -0
- package/dist/node/Components/MinimapComponent.css.map +1 -0
- package/dist/node/Components/MinimapComponent.js +74 -0
- package/dist/node/Components/MinimapComponent.js.map +1 -0
- package/dist/node/Components/TrailComponent.css +51 -0
- package/dist/node/Components/TrailComponent.css.map +1 -0
- package/dist/node/Components/TrailComponent.js +94 -0
- package/dist/node/Components/TrailComponent.js.map +1 -0
- package/dist/node/Editor/EditorHelper.css +51 -0
- package/dist/node/Editor/EditorHelper.css.map +1 -0
- package/dist/node/Editor/EditorHelper.js +21 -0
- package/dist/node/Editor/EditorHelper.js.map +1 -0
- package/dist/node/Editor/WithEditorHelper.css +51 -0
- package/dist/node/Editor/WithEditorHelper.css.map +1 -0
- package/dist/node/Editor/WithEditorHelper.js +22 -0
- package/dist/node/Editor/WithEditorHelper.js.map +1 -0
- package/dist/node/Game.css +51 -0
- package/dist/node/Game.css.map +1 -0
- package/dist/node/Game.js +18 -0
- package/dist/node/Game.js.map +1 -0
- package/dist/node/InputManager.css +51 -0
- package/dist/node/InputManager.css.map +1 -0
- package/dist/node/InputManager.js +18 -0
- package/dist/node/InputManager.js.map +1 -0
- package/dist/node/Networking/Client/NetworkManager.js +73 -0
- package/dist/node/Networking/Client/NetworkManager.js.map +1 -0
- package/dist/node/Networking/Entities/Player.js +15 -0
- package/dist/node/Networking/Entities/Player.js.map +1 -0
- package/dist/node/Networking/NetworkedActor.js +24 -0
- package/dist/node/Networking/NetworkedActor.js.map +1 -0
- package/dist/node/Networking/NetworkedEntity.js +1 -0
- package/dist/node/Networking/NetworkedEntity.js.map +1 -0
- package/dist/node/Networking/NetworkedEntityState.js +20 -0
- package/dist/node/Networking/NetworkedEntityState.js.map +1 -0
- package/dist/node/Networking/NetworkedGameObject.js +12 -0
- package/dist/node/Networking/NetworkedGameObject.js.map +1 -0
- package/dist/node/Networking/NetworkedLivingActor.js +14 -0
- package/dist/node/Networking/NetworkedLivingActor.js.map +1 -0
- package/dist/node/Networking/Server/Client.js +8 -0
- package/dist/node/Networking/Server/Client.js.map +1 -0
- package/dist/node/Networking/Server/Commands.js +8 -0
- package/dist/node/Networking/Server/Commands.js.map +1 -0
- package/dist/node/Networking/Server/Server.js +194 -0
- package/dist/node/Networking/Server/Server.js.map +1 -0
- package/dist/node/Networking/Server/Stats/BandwidthTracker.js +8 -0
- package/dist/node/Networking/Server/Stats/BandwidthTracker.js.map +1 -0
- package/dist/node/Networking/Server/Stats/CpuTracker.js +8 -0
- package/dist/node/Networking/Server/Stats/CpuTracker.js.map +1 -0
- package/dist/node/Networking/Server/World.js +19 -0
- package/dist/node/Networking/Server/World.js.map +1 -0
- package/dist/node/Networking/syncState.js +31 -0
- package/dist/node/Networking/syncState.js.map +1 -0
- package/dist/node/Particles/Effects/Rain.css +51 -0
- package/dist/node/Particles/Effects/Rain.css.map +1 -0
- package/dist/node/Particles/Effects/Rain.js +88 -0
- package/dist/node/Particles/Effects/Rain.js.map +1 -0
- package/dist/node/Particles/Effects/Smoke.css +51 -0
- package/dist/node/Particles/Effects/Smoke.css.map +1 -0
- package/dist/node/Particles/Effects/Smoke.js +143 -0
- package/dist/node/Particles/Effects/Smoke.js.map +1 -0
- package/dist/node/Particles/System/Emitter.css +51 -0
- package/dist/node/Particles/System/Emitter.css.map +1 -0
- package/dist/node/Particles/System/Emitter.js +19 -0
- package/dist/node/Particles/System/Emitter.js.map +1 -0
- package/dist/node/Particles/System/Particle.js +10 -0
- package/dist/node/Particles/System/Particle.js.map +1 -0
- package/dist/node/Particles/System/ParticleEffect.css +51 -0
- package/dist/node/Particles/System/ParticleEffect.css.map +1 -0
- package/dist/node/Particles/System/ParticleEffect.js +23 -0
- package/dist/node/Particles/System/ParticleEffect.js.map +1 -0
- package/dist/node/Particles/System/ParticlePreviewRegistry.js +13 -0
- package/dist/node/Particles/System/ParticlePreviewRegistry.js.map +1 -0
- package/dist/node/Particles/System/ParticleSystem.css +51 -0
- package/dist/node/Particles/System/ParticleSystem.css.map +1 -0
- package/dist/node/Particles/System/ParticleSystem.js +18 -0
- package/dist/node/Particles/System/ParticleSystem.js.map +1 -0
- package/dist/node/Prefab/Grass/Grass.css +51 -0
- package/dist/node/Prefab/Grass/Grass.css.map +1 -0
- package/dist/node/Prefab/Grass/Grass.js +226 -0
- package/dist/node/Prefab/Grass/Grass.js.map +1 -0
- package/dist/node/Prefab/Grass/GrassAffectingEntity.js +10 -0
- package/dist/node/Prefab/Grass/GrassAffectingEntity.js.map +1 -0
- package/dist/node/Prefab/Lights/index.css +51 -0
- package/dist/node/Prefab/Lights/index.css.map +1 -0
- package/dist/node/Prefab/Lights/index.js +224 -0
- package/dist/node/Prefab/Lights/index.js.map +1 -0
- package/dist/node/Prefab/Primitives/index.css +51 -0
- package/dist/node/Prefab/Primitives/index.css.map +1 -0
- package/dist/node/Prefab/Primitives/index.js +296 -0
- package/dist/node/Prefab/Primitives/index.js.map +1 -0
- package/dist/node/Prefab/Water/Water.css +51 -0
- package/dist/node/Prefab/Water/Water.css.map +1 -0
- package/dist/node/Prefab/Water/Water.js +234 -0
- package/dist/node/Prefab/Water/Water.js.map +1 -0
- package/dist/node/Prefab/Water/WaterManager.css +51 -0
- package/dist/node/Prefab/Water/WaterManager.css.map +1 -0
- package/dist/node/Prefab/Water/WaterManager.js +19 -0
- package/dist/node/Prefab/Water/WaterManager.js.map +1 -0
- package/dist/node/Renderer/AssetRenderer.css +51 -0
- package/dist/node/Renderer/AssetRenderer.css.map +1 -0
- package/dist/node/Renderer/AssetRenderer.js +71 -0
- package/dist/node/Renderer/AssetRenderer.js.map +1 -0
- package/dist/node/Renderer/PhysicsRenderer.css +51 -0
- package/dist/node/Renderer/PhysicsRenderer.css.map +1 -0
- package/dist/node/Renderer/PhysicsRenderer.js +18 -0
- package/dist/node/Renderer/PhysicsRenderer.js.map +1 -0
- package/dist/node/Renderer.css +51 -0
- package/dist/node/Renderer.css.map +1 -0
- package/dist/node/Renderer.js +18 -0
- package/dist/node/Renderer.js.map +1 -0
- package/dist/node/Types/Asset.js +1 -0
- package/dist/node/Types/Asset.js.map +1 -0
- package/dist/node/Types/Events.js +1 -0
- package/dist/node/Types/Events.js.map +1 -0
- package/dist/node/Types/IEditor.js +1 -0
- package/dist/node/Types/IEditor.js.map +1 -0
- package/dist/node/Utils/Debug.js +9 -0
- package/dist/node/Utils/Debug.js.map +1 -0
- package/dist/node/Utils/EventEmitter.js +10 -0
- package/dist/node/Utils/EventEmitter.js.map +1 -0
- package/dist/node/Utils/Helpers.js +13 -0
- package/dist/node/Utils/Helpers.js.map +1 -0
- package/dist/node/Utils/LoadingScreen.css +51 -0
- package/dist/node/Utils/LoadingScreen.css.map +1 -0
- package/dist/node/Utils/LoadingScreen.js +18 -0
- package/dist/node/Utils/LoadingScreen.js.map +1 -0
- package/dist/node/Utils/Logger.js +8 -0
- package/dist/node/Utils/Logger.js.map +1 -0
- package/dist/node/Utils/Math.js +10 -0
- package/dist/node/Utils/Math.js.map +1 -0
- package/dist/node/Utils/Resources.js +9 -0
- package/dist/node/Utils/Resources.js.map +1 -0
- package/dist/node/Utils/Sizes.js +9 -0
- package/dist/node/Utils/Sizes.js.map +1 -0
- package/dist/node/Utils/SkeletonAxesHelper.js +8 -0
- package/dist/node/Utils/SkeletonAxesHelper.js.map +1 -0
- package/dist/node/World/Actor.js +11 -0
- package/dist/node/World/Actor.js.map +1 -0
- package/dist/node/World/BaseChunkManager.js +8 -0
- package/dist/node/World/BaseChunkManager.js.map +1 -0
- package/dist/node/World/BaseWorld.js +10 -0
- package/dist/node/World/BaseWorld.js.map +1 -0
- package/dist/node/World/Chunk.js +22 -0
- package/dist/node/World/Chunk.js.map +1 -0
- package/dist/node/World/Entity/State.js +8 -0
- package/dist/node/World/Entity/State.js.map +1 -0
- package/dist/node/World/Entity/interface/Damageable.js +1 -0
- package/dist/node/World/Entity/interface/Damageable.js.map +1 -0
- package/dist/node/World/Entity/interface/LivingEntity.js +1 -0
- package/dist/node/World/Entity/interface/LivingEntity.js.map +1 -0
- package/dist/node/World/Entity3D.css +51 -0
- package/dist/node/World/Entity3D.css.map +1 -0
- package/dist/node/World/Entity3D.js +21 -0
- package/dist/node/World/Entity3D.js.map +1 -0
- package/dist/node/World/Environment.css +51 -0
- package/dist/node/World/Environment.css.map +1 -0
- package/dist/node/World/Environment.js +18 -0
- package/dist/node/World/Environment.js.map +1 -0
- package/dist/node/World/GameObject.js +9 -0
- package/dist/node/World/GameObject.js.map +1 -0
- package/dist/node/World/GameObjectInterface.js +1 -0
- package/dist/node/World/GameObjectInterface.js.map +1 -0
- package/dist/node/World/LivingActor.js +12 -0
- package/dist/node/World/LivingActor.js.map +1 -0
- package/dist/node/World/StateManager.js +23 -0
- package/dist/node/World/StateManager.js.map +1 -0
- package/dist/node/World/World.css +51 -0
- package/dist/node/World/World.css.map +1 -0
- package/dist/node/World/World.js +18 -0
- package/dist/node/World/World.js.map +1 -0
- package/dist/node/chunk-2D7GC2Z6.js +17 -0
- package/dist/node/chunk-2D7GC2Z6.js.map +1 -0
- package/dist/node/chunk-36BXDTHA.js +35 -0
- package/dist/node/chunk-36BXDTHA.js.map +1 -0
- package/dist/node/chunk-3KYMJLQ5.js +46 -0
- package/dist/node/chunk-3KYMJLQ5.js.map +1 -0
- package/dist/node/chunk-56YEZTOR.js +51 -0
- package/dist/node/chunk-56YEZTOR.js.map +1 -0
- package/dist/node/chunk-665EGLMD.js +20 -0
- package/dist/node/chunk-665EGLMD.js.map +1 -0
- package/dist/node/chunk-7QLYKS4T.js +77 -0
- package/dist/node/chunk-7QLYKS4T.js.map +1 -0
- package/dist/node/chunk-A3EB5HP2.js +59 -0
- package/dist/node/chunk-A3EB5HP2.js.map +1 -0
- package/dist/node/chunk-ABRATJQQ.js +56 -0
- package/dist/node/chunk-ABRATJQQ.js.map +1 -0
- package/dist/node/chunk-ARZ4UYTY.js +59 -0
- package/dist/node/chunk-ARZ4UYTY.js.map +1 -0
- package/dist/node/chunk-BN6FIYXJ.js +70 -0
- package/dist/node/chunk-BN6FIYXJ.js.map +1 -0
- package/dist/node/chunk-BNMD73EG.js +33 -0
- package/dist/node/chunk-BNMD73EG.js.map +1 -0
- package/dist/node/chunk-BXWY2BKG.js +122 -0
- package/dist/node/chunk-BXWY2BKG.js.map +1 -0
- package/dist/node/chunk-CMCOFHDS.js +14356 -0
- package/dist/node/chunk-CMCOFHDS.js.map +1 -0
- package/dist/node/chunk-CZUIHQMY.js +35 -0
- package/dist/node/chunk-CZUIHQMY.js.map +1 -0
- package/dist/node/chunk-DA47ZKJK.js +33 -0
- package/dist/node/chunk-DA47ZKJK.js.map +1 -0
- package/dist/node/chunk-DOBGB35A.js +122 -0
- package/dist/node/chunk-DOBGB35A.js.map +1 -0
- package/dist/node/chunk-DVEU42K3.js +59 -0
- package/dist/node/chunk-DVEU42K3.js.map +1 -0
- package/dist/node/chunk-EYW5XGVO.js +122 -0
- package/dist/node/chunk-EYW5XGVO.js.map +1 -0
- package/dist/node/chunk-F6DU4VFH.js +51 -0
- package/dist/node/chunk-F6DU4VFH.js.map +1 -0
- package/dist/node/chunk-FKEQHNYZ.js +37 -0
- package/dist/node/chunk-FKEQHNYZ.js.map +1 -0
- package/dist/node/chunk-G3PMV62Z.js +36 -0
- package/dist/node/chunk-G3PMV62Z.js.map +1 -0
- package/dist/node/chunk-GDOID2XG.js +43 -0
- package/dist/node/chunk-GDOID2XG.js.map +1 -0
- package/dist/node/chunk-HKJQDU25.js +74 -0
- package/dist/node/chunk-HKJQDU25.js.map +1 -0
- package/dist/node/chunk-HU53VGSY.js +37 -0
- package/dist/node/chunk-HU53VGSY.js.map +1 -0
- package/dist/node/chunk-HWTEWVF5.js +14356 -0
- package/dist/node/chunk-HWTEWVF5.js.map +1 -0
- package/dist/node/chunk-HYBS64DV.js +13 -0
- package/dist/node/chunk-HYBS64DV.js.map +1 -0
- package/dist/node/chunk-IGUYMCHB.js +135 -0
- package/dist/node/chunk-IGUYMCHB.js.map +1 -0
- package/dist/node/chunk-IKQALMVH.js +37 -0
- package/dist/node/chunk-IKQALMVH.js.map +1 -0
- package/dist/node/chunk-J7UBIWHX.js +27 -0
- package/dist/node/chunk-J7UBIWHX.js.map +1 -0
- package/dist/node/chunk-JEWEYJ5N.js +33 -0
- package/dist/node/chunk-JEWEYJ5N.js.map +1 -0
- package/dist/node/chunk-JQEJEQFD.js +122 -0
- package/dist/node/chunk-JQEJEQFD.js.map +1 -0
- package/dist/node/chunk-JUTNFQ4M.js +70 -0
- package/dist/node/chunk-JUTNFQ4M.js.map +1 -0
- package/dist/node/chunk-KF7BK5K3.js +135 -0
- package/dist/node/chunk-KF7BK5K3.js.map +1 -0
- package/dist/node/chunk-KJJCXAUN.js +33 -0
- package/dist/node/chunk-KJJCXAUN.js.map +1 -0
- package/dist/node/chunk-KL7DL5UI.js +135 -0
- package/dist/node/chunk-KL7DL5UI.js.map +1 -0
- package/dist/node/chunk-L6YOBSGZ.js +122 -0
- package/dist/node/chunk-L6YOBSGZ.js.map +1 -0
- package/dist/node/chunk-LCQFGY4N.js +70 -0
- package/dist/node/chunk-LCQFGY4N.js.map +1 -0
- package/dist/node/chunk-MG3V6544.js +39 -0
- package/dist/node/chunk-MG3V6544.js.map +1 -0
- package/dist/node/chunk-MSSBGJJT.js +40 -0
- package/dist/node/chunk-MSSBGJJT.js.map +1 -0
- package/dist/node/chunk-NAPFSFNP.js +14356 -0
- package/dist/node/chunk-NAPFSFNP.js.map +1 -0
- package/dist/node/chunk-O6R263IC.js +37 -0
- package/dist/node/chunk-O6R263IC.js.map +1 -0
- package/dist/node/chunk-ORBRJSRE.js +25 -0
- package/dist/node/chunk-ORBRJSRE.js.map +1 -0
- package/dist/node/chunk-OVP75QOD.js +15744 -0
- package/dist/node/chunk-OVP75QOD.js.map +1 -0
- package/dist/node/chunk-OXQNULUL.js +33 -0
- package/dist/node/chunk-OXQNULUL.js.map +1 -0
- package/dist/node/chunk-P6KB6QQA.js +59 -0
- package/dist/node/chunk-P6KB6QQA.js.map +1 -0
- package/dist/node/chunk-PGFA4SIU.js +20 -0
- package/dist/node/chunk-PGFA4SIU.js.map +1 -0
- package/dist/node/chunk-PMZKVZCW.js +20 -0
- package/dist/node/chunk-PMZKVZCW.js.map +1 -0
- package/dist/node/chunk-PRTEU3OX.js +56 -0
- package/dist/node/chunk-PRTEU3OX.js.map +1 -0
- package/dist/node/chunk-R75XUIQX.js +51 -0
- package/dist/node/chunk-R75XUIQX.js.map +1 -0
- package/dist/node/chunk-RECAQ7AB.js +39 -0
- package/dist/node/chunk-RECAQ7AB.js.map +1 -0
- package/dist/node/chunk-RG7R7WF2.js +56 -0
- package/dist/node/chunk-RG7R7WF2.js.map +1 -0
- package/dist/node/chunk-RVYDJWA2.js +56 -0
- package/dist/node/chunk-RVYDJWA2.js.map +1 -0
- package/dist/node/chunk-RZJPUR5S.js +23 -0
- package/dist/node/chunk-RZJPUR5S.js.map +1 -0
- package/dist/node/chunk-TD2MVFAF.js +14356 -0
- package/dist/node/chunk-TD2MVFAF.js.map +1 -0
- package/dist/node/chunk-U7MSUO62.js +11 -0
- package/dist/node/chunk-U7MSUO62.js.map +1 -0
- package/dist/node/chunk-UCZNQSLE.js +59 -0
- package/dist/node/chunk-UCZNQSLE.js.map +1 -0
- package/dist/node/chunk-UF5EIM2X.js +37 -0
- package/dist/node/chunk-UF5EIM2X.js.map +1 -0
- package/dist/node/chunk-UK2P4JGN.js +18 -0
- package/dist/node/chunk-UK2P4JGN.js.map +1 -0
- package/dist/node/chunk-UPVPF3FB.js +39 -0
- package/dist/node/chunk-UPVPF3FB.js.map +1 -0
- package/dist/node/chunk-VKT4KUVH.js +70 -0
- package/dist/node/chunk-VKT4KUVH.js.map +1 -0
- package/dist/node/chunk-VVMVUIFH.js +39 -0
- package/dist/node/chunk-VVMVUIFH.js.map +1 -0
- package/dist/node/chunk-VW2HJI67.js +39 -0
- package/dist/node/chunk-VW2HJI67.js.map +1 -0
- package/dist/node/chunk-VWCQZXBU.js +28 -0
- package/dist/node/chunk-VWCQZXBU.js.map +1 -0
- package/dist/node/chunk-VYVDNYIE.js +14356 -0
- package/dist/node/chunk-VYVDNYIE.js.map +1 -0
- package/dist/node/chunk-VZ3QIXWK.js +43 -0
- package/dist/node/chunk-VZ3QIXWK.js.map +1 -0
- package/dist/node/chunk-W2GJBTWD.js +37 -0
- package/dist/node/chunk-W2GJBTWD.js.map +1 -0
- package/dist/node/chunk-WAEF3D5Y.js +56 -0
- package/dist/node/chunk-WAEF3D5Y.js.map +1 -0
- package/dist/node/chunk-XUIBVVM4.js +33 -0
- package/dist/node/chunk-XUIBVVM4.js.map +1 -0
- package/dist/node/chunk-YMAVMWJ7.js +20 -0
- package/dist/node/chunk-YMAVMWJ7.js.map +1 -0
- package/dist/node/chunk-Z36ELCPA.js +51 -0
- package/dist/node/chunk-Z36ELCPA.js.map +1 -0
- package/dist/node/chunk-ZA6ZEGAE.js +33 -0
- package/dist/node/chunk-ZA6ZEGAE.js.map +1 -0
- package/dist/node/chunk-ZC6HCA4W.js +70 -0
- package/dist/node/chunk-ZC6HCA4W.js.map +1 -0
- package/dist/node/chunk-ZGBQKFK7.js +51 -0
- package/dist/node/chunk-ZGBQKFK7.js.map +1 -0
- package/dist/node/ui/ObjectLabel.css +51 -0
- package/dist/node/ui/ObjectLabel.css.map +1 -0
- package/dist/node/ui/ObjectLabel.js +19 -0
- package/dist/node/ui/ObjectLabel.js.map +1 -0
- package/dist/node/ui/UILabel.css +51 -0
- package/dist/node/ui/UILabel.css.map +1 -0
- package/dist/node/ui/UILabel.js +20 -0
- package/dist/node/ui/UILabel.js.map +1 -0
- package/dist/style.css +53 -0
- package/dist/types.d.cjs +1 -0
- package/dist/types.d.js +0 -0
- package/dist/ui/ObjectLabel.cjs +80 -0
- package/dist/ui/ObjectLabel.d.ts +14 -0
- package/dist/ui/ObjectLabel.js +53 -0
- package/dist/ui/UILabel.cjs +57 -0
- package/dist/ui/UILabel.d.ts +9 -0
- package/dist/ui/UILabel.js +24 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/BaseGame.ts","raw-json:/home/mattvb91/www/core/packages/core/package.json","../../src/World/BaseWorld.ts"],"sourcesContent":["import type { KinematicCharacterController, World } from '@dimforge/rapier3d-compat'\nimport type winston from 'winston'\nimport type Logger from './Utils/Logger'\nimport type GameObjectInterface from './World/GameObjectInterface'\nimport { Clock, Raycaster, Scene } from 'three'\nimport { version as ENGINE_VERSION } from '../package.json' with { type: 'json' }\nimport EventEmitter from './Utils/EventEmitter'\n\nimport BaseWorld from './World/BaseWorld'\n\nlet instance: BaseGame\n\n/**\n * This is the headless representation of the game.\n * This is what the game server uses to represent the game state.\n *\n * Do not add anything related to audio or rendering here\n */\nexport default class BaseGame extends EventEmitter implements GameObjectInterface {\n readonly clock: Clock\n\n logger?: winston.Logger | Logger | null\n\n physicsWorld?: World\n characterController?: KinematicCharacterController\n\n scene: Scene\n rayCaster: Raycaster\n world: BaseWorld\n\n protected updateCallbacks: Set<(delta: number) => void> = new Set()\n\n tickRate = 30\n lastTickTime = 0\n\n constructor(logger?: winston.Logger | Logger | null, physicsWorld?: World) {\n super()\n\n // eslint-disable-next-line ts/no-this-alias\n instance = this\n\n this.logger = logger\n this.logger?.info([\n '',\n '',\n '┌─────────────────────────────────────────┐',\n '│ │',\n '│ MavonEngine │',\n '│ │',\n `│ Version: ${ENGINE_VERSION.padEnd(28)} │`,\n // eslint-disable-next-line node/prefer-global/process\n `│ Mode: ${(process.env.NODE_ENV ?? 'development').padEnd(28)} │`,\n '│ │',\n '│ https://github.com/MavonEngine/core │',\n '│ https://mavonengine.com │',\n '│ │',\n '└─────────────────────────────────────────┘',\n '',\n ].join('\\n'))\n\n this.physicsWorld = physicsWorld\n\n if (this.physicsWorld) {\n this.characterController = this.physicsWorld.createCharacterController(0.01)\n this.characterController.setApplyImpulsesToDynamicBodies(true)\n this.characterController.enableSnapToGround(30)\n\n // Don’t allow climbing slopes larger than 45 degrees.\n this.characterController.setMaxSlopeClimbAngle(45 * Math.PI / 180)\n\n // Automatically slide down on slopes bigger than 30 degrees.\n this.characterController.setMinSlopeSlideAngle(30 * Math.PI / 180)\n }\n\n this.clock = new Clock()\n this.clock.start()\n\n this.scene = new Scene()\n this.rayCaster = new Raycaster()\n\n this.world = new BaseWorld()\n\n setInterval(() => {\n this.tick()\n }, 1000 / this.tickRate)\n }\n\n destroy(): void {\n this.logger?.emerg('Destroy called on server game instance')\n }\n\n static instance() {\n return instance\n }\n\n tick() {\n const tickNow = performance.now()\n this.update((tickNow - this.lastTickTime) / 1000)\n this.lastTickTime = tickNow\n }\n\n onUpdate(callback: (delta: number) => void): void {\n this.updateCallbacks.add(callback)\n }\n\n unregisterOnUpdate(callback: (delta: number) => void): void {\n this.updateCallbacks.delete(callback)\n }\n\n update(delta: number): void {\n if (this.physicsWorld) {\n this.physicsWorld.timestep = delta\n this.physicsWorld.step()\n }\n\n this.world.update(delta)\n\n this.updateCallbacks.forEach(callbackFn => callbackFn(delta))\n }\n\n isDevMode() {\n // eslint-disable-next-line node/prefer-global/process\n return process.env.NODE_ENV !== 'production'\n }\n\n isProductionMode() {\n // eslint-disable-next-line node/prefer-global/process\n return process.env.NODE_ENV === 'production'\n }\n}\n","{\n \"name\": \"@mavonengine/core\",\n \"type\": \"module\",\n \"version\": \"0.0.0\",\n \"description\": \"\",\n \"author\": \"\",\n \"license\": \"ISC\",\n \"main\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \"./vite.config\": \"./vite.config.js\",\n \"./*.glsl\": \"./dist/browser/*.glsl\",\n \"./*.css\": \"./dist/browser/*.css\",\n \"./*\": {\n \"browser\": \"./dist/browser/*.js\",\n \"node\": \"./dist/node/*.js\",\n \"types\": \"./dist/browser/*.d.ts\",\n \"default\": \"./dist/node/*.js\"\n }\n },\n \"scripts\": {\n \"build\": \"tsup && find src -name '*.glsl' | while read f; do mkdir -p dist/browser/$(dirname ${f#src/}) && cp $f dist/browser/${f#src/}; done\",\n \"dev\": \"tsup --watch\",\n \"lint\": \"eslint .\",\n \"lint:fix\": \"eslint . --fix\",\n \"test\": \"vitest\",\n \"test:ui\": \"vitest --ui --coverage.enabled true --coverage.reporter html\",\n \"test:coverage\": \"vitest --coverage.enabled true --coverage.reporter json-summary\",\n \"test:dev\": \"vitest\"\n },\n \"peerDependencies\": {\n \"@dimforge/rapier3d-compat\": \"0.18.2\",\n \"@geckos.io/client\": \"^3.0.2\",\n \"@geckos.io/server\": \"^3.0.0\",\n \"express\": \"5.1.0\",\n \"three\": \"^0.176.0\",\n \"vite\": \"^6.3.5\",\n \"winston\": \"3.17.0\"\n },\n \"dependencies\": {\n \"alea\": \"^1.0.1\"\n },\n \"devDependencies\": {\n \"@dimforge/rapier3d-compat\": \"0.18.2\",\n \"@geckos.io/server\": \"^3.0.0\",\n \"@testing-library/jest-dom\": \"^6.9.1\",\n \"@types/express\": \"^5.0.3\",\n \"@types/three\": \"^0.176.0\",\n \"@vitejs/plugin-react\": \"^5.1.2\",\n \"@vitest/coverage-v8\": \"^3.2.4\",\n \"@vitest/ui\": \"^3.2.4\",\n \"jsdom\": \"^28.1.0\",\n \"three\": \"^0.176.0\",\n \"tsup\": \"^8.5.1\",\n \"typescript\": \"5.9.2\",\n \"vite\": \"^6.3.5\",\n \"vite-plugin-glsl\": \"^1.4.1\",\n \"vitest\": \"^3.2.4\"\n }\n}\n","import type GameObject from './GameObject'\nimport type GameObjectInterface from './GameObjectInterface'\nimport BaseGame from '../BaseGame'\nimport ChunkManager from './BaseChunkManager'\n\n/**\n * The barebones representation of all the entities in our\n * world. This is the server world class. The client render is in World.ts\n */\nexport default class BaseWorld implements GameObjectInterface {\n chunkManager = new ChunkManager()\n\n /**\n * The game entities in the world, stored by ID\n */\n entities: {\n items: Map<string, GameObject>\n get length(): number\n } = {\n items: new Map(),\n get length() {\n return this.items.size\n },\n }\n\n /**\n * Add game objects by unique string IDs\n */\n add(objects: Record<string, GameObject>) {\n for (const [id, object] of Object.entries(objects)) {\n this.entities.items.set(id, object)\n }\n }\n\n update(delta: number): void {\n this.chunkManager.update(delta)\n\n for (const [id, item] of this.entities.items) {\n if (item.garbageCollect) {\n BaseGame.instance().logger?.debug('Destroying entity', item)\n item.destroy()\n\n this.entities.items.delete(id)\n }\n else {\n item.update(delta)\n }\n }\n }\n\n destroy() {\n this.chunkManager.destroy()\n this.entities.items.forEach(item => item.destroy())\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EntityState
|
|
3
|
+
} from "./chunk-36BXDTHA.js";
|
|
4
|
+
import {
|
|
5
|
+
GameObject
|
|
6
|
+
} from "./chunk-CZUIHQMY.js";
|
|
7
|
+
|
|
8
|
+
// src/World/Actor.ts
|
|
9
|
+
var Actor = class extends GameObject {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
/**
|
|
13
|
+
* TODO rename to states and then have a get state() that will get the last entry
|
|
14
|
+
*/
|
|
15
|
+
this.state = [];
|
|
16
|
+
}
|
|
17
|
+
update(delta) {
|
|
18
|
+
if (this.state.length) {
|
|
19
|
+
const res = this.state[this.state.length - 1].update(delta);
|
|
20
|
+
if (res instanceof EntityState) {
|
|
21
|
+
this.state.push(res);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
get stateHash() {
|
|
26
|
+
return btoa(JSON.stringify(this.serialize()));
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export {
|
|
31
|
+
Actor
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=chunk-KJJCXAUN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/World/Actor.ts"],"sourcesContent":["import EntityState from './Entity/State'\nimport GameObject from './GameObject'\n\n/**\n * An actor can have states associated with\n */\nexport default abstract class Actor extends GameObject {\n /**\n * TODO rename to states and then have a get state() that will get the last entry\n */\n state: EntityState[] = []\n\n update(delta: number): void {\n if (this.state.length) {\n const res = this.state[this.state.length - 1].update(delta)\n\n if (res instanceof EntityState) {\n this.state.push(res)\n }\n }\n }\n\n get stateHash() {\n return btoa(JSON.stringify(this.serialize()))\n }\n}\n"],"mappings":";;;;;;;;AAMA,IAA8B,QAA9B,cAA4C,WAAW;AAAA,EAAvD;AAAA;AAIE;AAAA;AAAA;AAAA,iBAAuB,CAAC;AAAA;AAAA,EAExB,OAAO,OAAqB;AAC1B,QAAI,KAAK,MAAM,QAAQ;AACrB,YAAM,MAAM,KAAK,MAAM,KAAK,MAAM,SAAS,CAAC,EAAE,OAAO,KAAK;AAE1D,UAAI,eAAe,aAAa;AAC9B,aAAK,MAAM,KAAK,GAAG;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,IAAI,YAAY;AACd,WAAO,KAAK,KAAK,UAAU,KAAK,UAAU,CAAC,CAAC;AAAA,EAC9C;AACF;","names":[]}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseChunkManager
|
|
3
|
+
} from "./chunk-2D7GC2Z6.js";
|
|
4
|
+
import {
|
|
5
|
+
EventEmitter
|
|
6
|
+
} from "./chunk-HU53VGSY.js";
|
|
7
|
+
|
|
8
|
+
// src/BaseGame.ts
|
|
9
|
+
import { Clock, Raycaster, Scene } from "three";
|
|
10
|
+
|
|
11
|
+
// raw-json:/home/mattvb91/www/core/packages/core/package.json
|
|
12
|
+
var version = "0.0.0";
|
|
13
|
+
|
|
14
|
+
// src/BaseGame.ts
|
|
15
|
+
var instance;
|
|
16
|
+
var BaseGame = class extends EventEmitter {
|
|
17
|
+
constructor(logger, physicsWorld) {
|
|
18
|
+
super();
|
|
19
|
+
this.updateCallbacks = /* @__PURE__ */ new Set();
|
|
20
|
+
this.tickRate = 30;
|
|
21
|
+
this.lastTickTime = 0;
|
|
22
|
+
instance = this;
|
|
23
|
+
this.logger = logger;
|
|
24
|
+
this.logger?.info([
|
|
25
|
+
"",
|
|
26
|
+
"",
|
|
27
|
+
"\u250C\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510",
|
|
28
|
+
"\u2502 \u2502",
|
|
29
|
+
"\u2502 MavonEngine \u2502",
|
|
30
|
+
"\u2502 \u2502",
|
|
31
|
+
`\u2502 Version: ${version.padEnd(28)} \u2502`,
|
|
32
|
+
// eslint-disable-next-line node/prefer-global/process
|
|
33
|
+
`\u2502 Mode: ${(process.env.NODE_ENV ?? "development").padEnd(28)} \u2502`,
|
|
34
|
+
"\u2502 \u2502",
|
|
35
|
+
"\u2502 https://github.com/MavonEngine/core \u2502",
|
|
36
|
+
"\u2502 https://mavonengine.com \u2502",
|
|
37
|
+
"\u2502 \u2502",
|
|
38
|
+
"\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518",
|
|
39
|
+
""
|
|
40
|
+
].join("\n"));
|
|
41
|
+
this.physicsWorld = physicsWorld;
|
|
42
|
+
if (this.physicsWorld) {
|
|
43
|
+
this.characterController = this.physicsWorld.createCharacterController(0.01);
|
|
44
|
+
this.characterController.setApplyImpulsesToDynamicBodies(true);
|
|
45
|
+
this.characterController.enableSnapToGround(30);
|
|
46
|
+
this.characterController.setMaxSlopeClimbAngle(45 * Math.PI / 180);
|
|
47
|
+
this.characterController.setMinSlopeSlideAngle(30 * Math.PI / 180);
|
|
48
|
+
}
|
|
49
|
+
this.clock = new Clock();
|
|
50
|
+
this.clock.start();
|
|
51
|
+
this.scene = new Scene();
|
|
52
|
+
this.rayCaster = new Raycaster();
|
|
53
|
+
this.world = new BaseWorld();
|
|
54
|
+
setInterval(() => {
|
|
55
|
+
this.tick();
|
|
56
|
+
}, 1e3 / this.tickRate);
|
|
57
|
+
}
|
|
58
|
+
destroy() {
|
|
59
|
+
this.logger?.emerg("Destroy called on server game instance");
|
|
60
|
+
}
|
|
61
|
+
static instance() {
|
|
62
|
+
return instance;
|
|
63
|
+
}
|
|
64
|
+
tick() {
|
|
65
|
+
const tickNow = performance.now();
|
|
66
|
+
this.update((tickNow - this.lastTickTime) / 1e3);
|
|
67
|
+
this.lastTickTime = tickNow;
|
|
68
|
+
}
|
|
69
|
+
onUpdate(callback) {
|
|
70
|
+
this.updateCallbacks.add(callback);
|
|
71
|
+
}
|
|
72
|
+
unregisterOnUpdate(callback) {
|
|
73
|
+
this.updateCallbacks.delete(callback);
|
|
74
|
+
}
|
|
75
|
+
update(delta) {
|
|
76
|
+
if (this.physicsWorld) {
|
|
77
|
+
this.physicsWorld.timestep = delta;
|
|
78
|
+
this.physicsWorld.step();
|
|
79
|
+
}
|
|
80
|
+
this.world.update(delta);
|
|
81
|
+
this.updateCallbacks.forEach((callbackFn) => callbackFn(delta));
|
|
82
|
+
}
|
|
83
|
+
isDevMode() {
|
|
84
|
+
return process.env.NODE_ENV !== "production";
|
|
85
|
+
}
|
|
86
|
+
isProductionMode() {
|
|
87
|
+
return process.env.NODE_ENV === "production";
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// src/World/BaseWorld.ts
|
|
92
|
+
var BaseWorld = class {
|
|
93
|
+
constructor() {
|
|
94
|
+
this.chunkManager = new BaseChunkManager();
|
|
95
|
+
/**
|
|
96
|
+
* The game entities in the world, stored by ID
|
|
97
|
+
*/
|
|
98
|
+
this.entities = {
|
|
99
|
+
items: /* @__PURE__ */ new Map(),
|
|
100
|
+
get length() {
|
|
101
|
+
return this.items.size;
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Add game objects by unique string IDs
|
|
107
|
+
*/
|
|
108
|
+
add(objects) {
|
|
109
|
+
for (const [id, object] of Object.entries(objects)) {
|
|
110
|
+
this.entities.items.set(id, object);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
update(delta) {
|
|
114
|
+
this.chunkManager.update(delta);
|
|
115
|
+
for (const [id, item] of this.entities.items) {
|
|
116
|
+
if (item.garbageCollect) {
|
|
117
|
+
BaseGame.instance().logger?.debug("Destroying entity", item);
|
|
118
|
+
item.destroy();
|
|
119
|
+
this.entities.items.delete(id);
|
|
120
|
+
} else {
|
|
121
|
+
item.update(delta);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
destroy() {
|
|
126
|
+
this.chunkManager.destroy();
|
|
127
|
+
this.entities.items.forEach((item) => item.destroy());
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export {
|
|
132
|
+
BaseWorld,
|
|
133
|
+
BaseGame
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=chunk-KL7DL5UI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/BaseGame.ts","raw-json:/home/mattvb91/www/core/packages/core/package.json","../../src/World/BaseWorld.ts"],"sourcesContent":["import type { KinematicCharacterController, World } from '@dimforge/rapier3d-compat'\nimport type winston from 'winston'\nimport type Logger from './Utils/Logger'\nimport type GameObjectInterface from './World/GameObjectInterface'\nimport { Clock, Raycaster, Scene } from 'three'\nimport { version as ENGINE_VERSION } from '../package.json' with { type: 'json' }\nimport EventEmitter from './Utils/EventEmitter'\n\nimport BaseWorld from './World/BaseWorld'\n\nlet instance: BaseGame\n\n/**\n * This is the headless representation of the game.\n * This is what the game server uses to represent the game state.\n *\n * Do not add anything related to audio or rendering here\n */\nexport default class BaseGame extends EventEmitter implements GameObjectInterface {\n readonly clock: Clock\n\n logger?: winston.Logger | Logger | null\n\n physicsWorld?: World\n characterController?: KinematicCharacterController\n\n scene: Scene\n rayCaster: Raycaster\n world: BaseWorld\n\n protected updateCallbacks: Set<(delta: number) => void> = new Set()\n\n tickRate = 30\n lastTickTime = 0\n\n constructor(logger?: winston.Logger | Logger | null, physicsWorld?: World) {\n super()\n\n // eslint-disable-next-line ts/no-this-alias\n instance = this\n\n this.logger = logger\n this.logger?.info([\n '',\n '',\n '┌─────────────────────────────────────────┐',\n '│ │',\n '│ MavonEngine │',\n '│ │',\n `│ Version: ${ENGINE_VERSION.padEnd(28)} │`,\n // eslint-disable-next-line node/prefer-global/process\n `│ Mode: ${(process.env.NODE_ENV ?? 'development').padEnd(28)} │`,\n '│ │',\n '│ https://github.com/MavonEngine/core │',\n '│ https://mavonengine.com │',\n '│ │',\n '└─────────────────────────────────────────┘',\n '',\n ].join('\\n'))\n\n this.physicsWorld = physicsWorld\n\n if (this.physicsWorld) {\n this.characterController = this.physicsWorld.createCharacterController(0.01)\n this.characterController.setApplyImpulsesToDynamicBodies(true)\n this.characterController.enableSnapToGround(30)\n\n // Don’t allow climbing slopes larger than 45 degrees.\n this.characterController.setMaxSlopeClimbAngle(45 * Math.PI / 180)\n\n // Automatically slide down on slopes bigger than 30 degrees.\n this.characterController.setMinSlopeSlideAngle(30 * Math.PI / 180)\n }\n\n this.clock = new Clock()\n this.clock.start()\n\n this.scene = new Scene()\n this.rayCaster = new Raycaster()\n\n this.world = new BaseWorld()\n\n setInterval(() => {\n this.tick()\n }, 1000 / this.tickRate)\n }\n\n destroy(): void {\n this.logger?.emerg('Destroy called on server game instance')\n }\n\n static instance() {\n return instance\n }\n\n tick() {\n const tickNow = performance.now()\n this.update((tickNow - this.lastTickTime) / 1000)\n this.lastTickTime = tickNow\n }\n\n onUpdate(callback: (delta: number) => void): void {\n this.updateCallbacks.add(callback)\n }\n\n unregisterOnUpdate(callback: (delta: number) => void): void {\n this.updateCallbacks.delete(callback)\n }\n\n update(delta: number): void {\n if (this.physicsWorld) {\n this.physicsWorld.timestep = delta\n this.physicsWorld.step()\n }\n\n this.world.update(delta)\n\n this.updateCallbacks.forEach(callbackFn => callbackFn(delta))\n }\n\n isDevMode() {\n // eslint-disable-next-line node/prefer-global/process\n return process.env.NODE_ENV !== 'production'\n }\n\n isProductionMode() {\n // eslint-disable-next-line node/prefer-global/process\n return process.env.NODE_ENV === 'production'\n }\n}\n","{\n \"name\": \"@mavonengine/core\",\n \"type\": \"module\",\n \"version\": \"0.0.0\",\n \"description\": \"\",\n \"author\": \"\",\n \"license\": \"ISC\",\n \"main\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \"./vite.config\": \"./vite.config.js\",\n \"./*.css\": \"./dist/browser/*.css\",\n \"./*\": {\n \"browser\": \"./dist/browser/*.js\",\n \"node\": \"./dist/node/*.js\",\n \"types\": \"./dist/browser/*.d.ts\",\n \"default\": \"./dist/node/*.js\"\n }\n },\n \"scripts\": {\n \"build\": \"tsup\",\n \"dev\": \"tsup --watch\",\n \"lint\": \"eslint .\",\n \"lint:fix\": \"eslint . --fix\",\n \"test\": \"vitest\",\n \"test:ui\": \"vitest --ui --coverage.enabled true --coverage.reporter html\",\n \"test:coverage\": \"vitest --coverage.enabled true --coverage.reporter json-summary\",\n \"test:dev\": \"vitest\"\n },\n \"peerDependencies\": {\n \"@dimforge/rapier3d-compat\": \"0.18.2\",\n \"@geckos.io/client\": \"^3.0.2\",\n \"@geckos.io/server\": \"^3.0.0\",\n \"express\": \"5.1.0\",\n \"three\": \"^0.176.0\",\n \"vite\": \"^6.3.5\",\n \"winston\": \"3.17.0\"\n },\n \"dependencies\": {\n \"alea\": \"^1.0.1\"\n },\n \"devDependencies\": {\n \"@dimforge/rapier3d-compat\": \"0.18.2\",\n \"@geckos.io/server\": \"^3.0.0\",\n \"@testing-library/jest-dom\": \"^6.9.1\",\n \"@types/express\": \"^5.0.3\",\n \"@types/three\": \"^0.176.0\",\n \"@vitejs/plugin-react\": \"^5.1.2\",\n \"@vitest/coverage-v8\": \"^3.2.4\",\n \"@vitest/ui\": \"^3.2.4\",\n \"jsdom\": \"^28.1.0\",\n \"three\": \"^0.176.0\",\n \"tsup\": \"^8.5.1\",\n \"typescript\": \"5.9.2\",\n \"vite\": \"^6.3.5\",\n \"vite-plugin-glsl\": \"^1.4.1\",\n \"vitest\": \"^3.2.4\"\n }\n}\n","import type GameObject from './GameObject'\nimport type GameObjectInterface from './GameObjectInterface'\nimport BaseGame from '../BaseGame'\nimport ChunkManager from './BaseChunkManager'\n\n/**\n * The barebones representation of all the entities in our\n * world. This is the server world class. The client render is in World.ts\n */\nexport default class BaseWorld implements GameObjectInterface {\n chunkManager = new ChunkManager()\n\n /**\n * The game entities in the world, stored by ID\n */\n entities: {\n items: Map<string, GameObject>\n get length(): number\n } = {\n items: new Map(),\n get length() {\n return this.items.size\n },\n }\n\n /**\n * Add game objects by unique string IDs\n */\n add(objects: Record<string, GameObject>) {\n for (const [id, object] of Object.entries(objects)) {\n this.entities.items.set(id, object)\n }\n }\n\n update(delta: number): void {\n this.chunkManager.update(delta)\n\n for (const [id, item] of this.entities.items) {\n if (item.garbageCollect) {\n BaseGame.instance().logger?.debug('Destroying entity', item)\n item.destroy()\n\n this.entities.items.delete(id)\n }\n else {\n item.update(delta)\n }\n }\n }\n\n destroy() {\n this.chunkManager.destroy()\n this.entities.items.forEach(item => item.destroy())\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Game
|
|
3
|
+
} from "./chunk-CMCOFHDS.js";
|
|
4
|
+
|
|
5
|
+
// src/Prefab/Water/WaterManager.ts
|
|
6
|
+
import { Vector2, Vector3 } from "three";
|
|
7
|
+
var WaterManager = class _WaterManager {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.uBigwavesElevation = 0.2;
|
|
10
|
+
this.uBigwavesFrequency = new Vector2(4, 1.5);
|
|
11
|
+
this.uBigWavesSpeed = 0.75;
|
|
12
|
+
this.uSurfaceColor = "#9bd8ff";
|
|
13
|
+
this.uDepthColor = "#186691";
|
|
14
|
+
this.uColorOffset = 0.08;
|
|
15
|
+
this.uColorMultiplier = 5;
|
|
16
|
+
this.sunPosition = new Vector3(0, 1, 0);
|
|
17
|
+
this.uSunReflectionStrength = 1;
|
|
18
|
+
this.waters = [];
|
|
19
|
+
_WaterManager.instance = this;
|
|
20
|
+
if (Game.instance().debug.active || Game.instance().editor) {
|
|
21
|
+
const waterFolder = Game.instance().debug.ui?.addFolder({ title: "Water" });
|
|
22
|
+
if (waterFolder)
|
|
23
|
+
this.addBindings(waterFolder);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
static init() {
|
|
27
|
+
_WaterManager.instance = new _WaterManager();
|
|
28
|
+
}
|
|
29
|
+
addBindings(folder) {
|
|
30
|
+
this.uBigWavesElevationController = folder.addBinding(this, "uBigwavesElevation", {
|
|
31
|
+
min: 0,
|
|
32
|
+
max: 1,
|
|
33
|
+
step: 1e-3,
|
|
34
|
+
label: "Height"
|
|
35
|
+
}).on("change", ({ value }) => {
|
|
36
|
+
this.waters.forEach((w) => {
|
|
37
|
+
w.material.uniforms.uBigWavesElevation.value = value;
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
this.uBigWavesFrequencyControllerX = folder.addBinding(this.uBigwavesFrequency, "x", {
|
|
41
|
+
min: 0,
|
|
42
|
+
max: 10,
|
|
43
|
+
step: 1e-3,
|
|
44
|
+
label: "FrequencyX"
|
|
45
|
+
}).on("change", ({ value }) => {
|
|
46
|
+
this.waters.forEach((w) => {
|
|
47
|
+
w.material.uniforms.uBigWavesFrequency.value.setX(value);
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
this.uBigWavesFrequencyControllerY = folder.addBinding(this.uBigwavesFrequency, "y", {
|
|
51
|
+
min: 0,
|
|
52
|
+
max: 10,
|
|
53
|
+
step: 1e-3,
|
|
54
|
+
label: "FrequencyY"
|
|
55
|
+
}).on("change", ({ value }) => {
|
|
56
|
+
this.waters.forEach((w) => {
|
|
57
|
+
w.material.uniforms.uBigWavesFrequency.value.setY(value);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
this.uBigWavesSpeedController = folder.addBinding(this, "uBigWavesSpeed", {
|
|
61
|
+
min: 0,
|
|
62
|
+
max: 4,
|
|
63
|
+
step: 1e-3,
|
|
64
|
+
label: "Speed"
|
|
65
|
+
}).on("change", ({ value }) => {
|
|
66
|
+
this.waters.forEach((w) => {
|
|
67
|
+
w.material.uniforms.uBigWavesSpeed.value = value;
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
this.uSurfaceColorController = folder.addBinding(this, "uSurfaceColor", {
|
|
71
|
+
label: "Surface Color",
|
|
72
|
+
view: "color"
|
|
73
|
+
}).on("change", ({ value }) => {
|
|
74
|
+
this.waters.forEach((w) => {
|
|
75
|
+
w.material.uniforms.uSurfaceColor.value.set(value);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
this.uDepthColorController = folder.addBinding(this, "uDepthColor", {
|
|
79
|
+
label: "Depth Color",
|
|
80
|
+
view: "color"
|
|
81
|
+
}).on("change", ({ value }) => {
|
|
82
|
+
this.waters.forEach((w) => {
|
|
83
|
+
w.material.uniforms.uDepthColor.value.set(value);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
this.uColorOffsetController = folder.addBinding(this, "uColorOffset", {
|
|
87
|
+
min: 0,
|
|
88
|
+
max: 1,
|
|
89
|
+
step: 1e-3,
|
|
90
|
+
label: "uColorOffset"
|
|
91
|
+
}).on("change", ({ value }) => {
|
|
92
|
+
this.waters.forEach((w) => {
|
|
93
|
+
w.material.uniforms.uColorOffset.value = value;
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
this.uColorMultiplierController = folder.addBinding(this, "uColorMultiplier", {
|
|
97
|
+
min: 0,
|
|
98
|
+
max: 10,
|
|
99
|
+
step: 1e-3,
|
|
100
|
+
label: "uColorMultiplier"
|
|
101
|
+
}).on("change", ({ value }) => {
|
|
102
|
+
this.waters.forEach((w) => {
|
|
103
|
+
w.material.uniforms.uColorMultiplier.value = value;
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
this.uSunReflectionStrengthController = folder.addBinding(this, "uSunReflectionStrength", {
|
|
107
|
+
min: 0,
|
|
108
|
+
max: 3,
|
|
109
|
+
step: 0.01,
|
|
110
|
+
label: "Sun Reflection"
|
|
111
|
+
}).on("change", ({ value }) => {
|
|
112
|
+
this.waters.forEach((w) => {
|
|
113
|
+
w.material.uniforms.uSunReflectionStrength.value = value;
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
export {
|
|
120
|
+
WaterManager
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=chunk-L6YOBSGZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Prefab/Water/WaterManager.ts"],"sourcesContent":["import type { BindingApi, ContainerApi } from '@tweakpane/core'\nimport type Water from './Water'\nimport Game from '../../Game'\nimport { Vector2, Vector3 } from 'three'\n\nexport default class WaterManager {\n uBigwavesElevation = 0.2\n uBigWavesElevationController: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n\n uBigwavesFrequency = new Vector2(4, 1.5)\n uBigWavesFrequencyControllerX: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n uBigWavesFrequencyControllerY: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n\n uBigWavesSpeed = 0.75\n uBigWavesSpeedController: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n\n uSurfaceColor = '#9bd8ff'\n uSurfaceColorController: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n\n uDepthColor = '#186691'\n uDepthColorController: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n\n uColorOffset = 0.08\n uColorOffsetController: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n\n uColorMultiplier = 5.0\n uColorMultiplierController: BindingApi<unknown, this['uBigwavesElevation'], any> | undefined\n\n sunPosition = new Vector3(0, 1, 0)\n\n uSunReflectionStrength = 1.0\n uSunReflectionStrengthController: BindingApi<unknown, this['uSunReflectionStrength'], any> | undefined\n\n waters: Water[] = []\n\n static instance?: WaterManager\n\n static init() {\n WaterManager.instance = new WaterManager()\n }\n\n constructor() {\n WaterManager.instance = this\n\n if (Game.instance().debug.active || Game.instance().editor) {\n const waterFolder = Game.instance().debug.ui?.addFolder({ title: 'Water' })\n if (waterFolder)\n this.addBindings(waterFolder)\n }\n }\n\n addBindings(folder: ContainerApi): void {\n this.uBigWavesElevationController = folder.addBinding(this, 'uBigwavesElevation', {\n min: 0,\n max: 1,\n step: 0.001,\n label: 'Height',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uBigWavesElevation.value = value\n })\n })\n\n this.uBigWavesFrequencyControllerX = folder.addBinding(this.uBigwavesFrequency, 'x', {\n min: 0,\n max: 10,\n step: 0.001,\n label: 'FrequencyX',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uBigWavesFrequency.value.setX(value)\n })\n })\n\n this.uBigWavesFrequencyControllerY = folder.addBinding(this.uBigwavesFrequency, 'y', {\n min: 0,\n max: 10,\n step: 0.001,\n label: 'FrequencyY',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uBigWavesFrequency.value.setY(value)\n })\n })\n\n this.uBigWavesSpeedController = folder.addBinding(this, 'uBigWavesSpeed', {\n min: 0,\n max: 4,\n step: 0.001,\n label: 'Speed',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uBigWavesSpeed.value = value\n })\n })\n\n this.uSurfaceColorController = folder.addBinding(this, 'uSurfaceColor', {\n label: 'Surface Color',\n view: 'color',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uSurfaceColor.value.set(value)\n })\n })\n\n this.uDepthColorController = folder.addBinding(this, 'uDepthColor', {\n label: 'Depth Color',\n view: 'color',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uDepthColor.value.set(value)\n })\n })\n\n this.uColorOffsetController = folder.addBinding(this, 'uColorOffset', {\n min: 0,\n max: 1,\n step: 0.001,\n label: 'uColorOffset',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uColorOffset.value = value\n })\n })\n\n this.uColorMultiplierController = folder.addBinding(this, 'uColorMultiplier', {\n min: 0,\n max: 10,\n step: 0.001,\n label: 'uColorMultiplier',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uColorMultiplier.value = value\n })\n })\n\n this.uSunReflectionStrengthController = folder.addBinding(this, 'uSunReflectionStrength', {\n min: 0,\n max: 3,\n step: 0.01,\n label: 'Sun Reflection',\n }).on('change', ({ value }) => {\n this.waters.forEach((w) => {\n w.material.uniforms.uSunReflectionStrength.value = value\n })\n })\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Actor
|
|
3
|
+
} from "./chunk-KJJCXAUN.js";
|
|
4
|
+
import {
|
|
5
|
+
Game
|
|
6
|
+
} from "./chunk-VYVDNYIE.js";
|
|
7
|
+
|
|
8
|
+
// src/World/Entity3D.ts
|
|
9
|
+
import { AnimationMixer, Mesh } from "three";
|
|
10
|
+
import { clone } from "three/examples/jsm/utils/SkeletonUtils.js";
|
|
11
|
+
var Entity3D = class extends Actor {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.animationsMap = /* @__PURE__ */ new Map();
|
|
15
|
+
}
|
|
16
|
+
initModel(model) {
|
|
17
|
+
this.instance = clone(model.scene);
|
|
18
|
+
this.instance.traverse((o) => {
|
|
19
|
+
if (o instanceof Mesh) {
|
|
20
|
+
o.castShadow = true;
|
|
21
|
+
o.receiveShadow = true;
|
|
22
|
+
const geometry = o.geometry;
|
|
23
|
+
geometry.computeBoundingBox();
|
|
24
|
+
geometry.computeBoundingSphere();
|
|
25
|
+
if (geometry.boundingBox) {
|
|
26
|
+
geometry.boundingBox.min.multiplyScalar(400);
|
|
27
|
+
geometry.boundingBox.max.multiplyScalar(400);
|
|
28
|
+
}
|
|
29
|
+
if (geometry.boundingSphere) {
|
|
30
|
+
geometry.boundingSphere.radius *= 400;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
this.animationMixer = new AnimationMixer(this.instance);
|
|
35
|
+
model.animations.forEach((a) => this.animationsMap.set(a.name, this.animationMixer.clipAction(a)));
|
|
36
|
+
Game.instance().scene.add(this.instance);
|
|
37
|
+
}
|
|
38
|
+
destroy() {
|
|
39
|
+
super.destroy();
|
|
40
|
+
this.instance?.traverse((o) => {
|
|
41
|
+
if (o instanceof Mesh) {
|
|
42
|
+
o.geometry.dispose();
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
if (this.instance)
|
|
46
|
+
Game.instance().scene.remove(this.instance);
|
|
47
|
+
}
|
|
48
|
+
update(delta) {
|
|
49
|
+
this.animationMixer?.update(delta);
|
|
50
|
+
super.update(delta);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Blend between different animation states for this Entity3D
|
|
54
|
+
*
|
|
55
|
+
* https://threejs.org/examples/?q=skin#webgl_animation_skinning_morph
|
|
56
|
+
*/
|
|
57
|
+
fadeToAction(action, duration) {
|
|
58
|
+
this.previousAction = this.activeAction;
|
|
59
|
+
this.activeAction = action;
|
|
60
|
+
if (this.previousAction !== this.activeAction) {
|
|
61
|
+
this.previousAction?.fadeOut(duration);
|
|
62
|
+
}
|
|
63
|
+
action.reset().setEffectiveTimeScale(1).setEffectiveWeight(1).fadeIn(duration).play();
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export {
|
|
68
|
+
Entity3D
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=chunk-LCQFGY4N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/World/Entity3D.ts"],"sourcesContent":["import type { AnimationAction, Group, Object3DEventMap } from 'three'\nimport type { GLTF } from 'three/examples/jsm/loaders/GLTFLoader.js'\nimport { AnimationMixer, Mesh } from 'three'\nimport { clone } from 'three/examples/jsm/utils/SkeletonUtils.js'\nimport Game from '../Game'\nimport Actor from './Actor'\n\n/**\n * An object in the game world with an Object3D (or Mesh).\n */\nexport default class Entity3D extends Actor {\n instance!: Group<Object3DEventMap>\n\n animationMixer?: AnimationMixer\n animationsMap = new Map<string, AnimationAction>()\n previousAction?: AnimationAction\n activeAction?: AnimationAction\n\n protected initModel(model: GLTF) {\n this.instance = clone(model.scene) as Group<Object3DEventMap>\n\n this.instance.traverse((o) => {\n if (o instanceof Mesh) {\n o.castShadow = true\n o.receiveShadow = true\n\n const geometry = o.geometry\n geometry.computeBoundingBox()\n geometry.computeBoundingSphere()\n\n if (geometry.boundingBox) {\n geometry.boundingBox.min.multiplyScalar(400)\n geometry.boundingBox.max.multiplyScalar(400)\n }\n\n if (geometry.boundingSphere) {\n geometry.boundingSphere.radius *= 400\n }\n }\n })\n\n this.animationMixer = new AnimationMixer(this.instance)\n model.animations.forEach(a => this.animationsMap!.set(a.name, this.animationMixer!.clipAction(a)))\n\n Game.instance().scene.add(this.instance)\n }\n\n destroy(): void {\n super.destroy()\n\n this.instance?.traverse((o) => {\n if (o instanceof Mesh) {\n o.geometry.dispose()\n }\n })\n\n if (this.instance)\n Game.instance().scene.remove(this.instance)\n }\n\n update(delta: number): void {\n this.animationMixer?.update(delta)\n\n super.update(delta)\n }\n\n /**\n * Blend between different animation states for this Entity3D\n *\n * https://threejs.org/examples/?q=skin#webgl_animation_skinning_morph\n */\n fadeToAction(action: AnimationAction, duration: number) {\n this.previousAction = this.activeAction\n this.activeAction = action\n\n if (this.previousAction !== this.activeAction) {\n this.previousAction?.fadeOut(duration)\n }\n\n action\n .reset()\n .setEffectiveTimeScale(1)\n .setEffectiveWeight(1)\n .fadeIn(duration)\n .play()\n }\n}\n"],"mappings":";;;;;;;;AAEA,SAAS,gBAAgB,YAAY;AACrC,SAAS,aAAa;AAOtB,IAAqB,WAArB,cAAsC,MAAM;AAAA,EAA5C;AAAA;AAIE,yBAAgB,oBAAI,IAA6B;AAAA;AAAA,EAIvC,UAAU,OAAa;AAC/B,SAAK,WAAW,MAAM,MAAM,KAAK;AAEjC,SAAK,SAAS,SAAS,CAAC,MAAM;AAC5B,UAAI,aAAa,MAAM;AACrB,UAAE,aAAa;AACf,UAAE,gBAAgB;AAElB,cAAM,WAAW,EAAE;AACnB,iBAAS,mBAAmB;AAC5B,iBAAS,sBAAsB;AAE/B,YAAI,SAAS,aAAa;AACxB,mBAAS,YAAY,IAAI,eAAe,GAAG;AAC3C,mBAAS,YAAY,IAAI,eAAe,GAAG;AAAA,QAC7C;AAEA,YAAI,SAAS,gBAAgB;AAC3B,mBAAS,eAAe,UAAU;AAAA,QACpC;AAAA,MACF;AAAA,IACF,CAAC;AAED,SAAK,iBAAiB,IAAI,eAAe,KAAK,QAAQ;AACtD,UAAM,WAAW,QAAQ,OAAK,KAAK,cAAe,IAAI,EAAE,MAAM,KAAK,eAAgB,WAAW,CAAC,CAAC,CAAC;AAEjG,SAAK,SAAS,EAAE,MAAM,IAAI,KAAK,QAAQ;AAAA,EACzC;AAAA,EAEA,UAAgB;AACd,UAAM,QAAQ;AAEd,SAAK,UAAU,SAAS,CAAC,MAAM;AAC7B,UAAI,aAAa,MAAM;AACrB,UAAE,SAAS,QAAQ;AAAA,MACrB;AAAA,IACF,CAAC;AAED,QAAI,KAAK;AACP,WAAK,SAAS,EAAE,MAAM,OAAO,KAAK,QAAQ;AAAA,EAC9C;AAAA,EAEA,OAAO,OAAqB;AAC1B,SAAK,gBAAgB,OAAO,KAAK;AAEjC,UAAM,OAAO,KAAK;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,QAAyB,UAAkB;AACtD,SAAK,iBAAiB,KAAK;AAC3B,SAAK,eAAe;AAEpB,QAAI,KAAK,mBAAmB,KAAK,cAAc;AAC7C,WAAK,gBAAgB,QAAQ,QAAQ;AAAA,IACvC;AAEA,WACG,MAAM,EACN,sBAAsB,CAAC,EACvB,mBAAmB,CAAC,EACpB,OAAO,QAAQ,EACf,KAAK;AAAA,EACV;AACF;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EditorHelper
|
|
3
|
+
} from "./chunk-F6DU4VFH.js";
|
|
4
|
+
import {
|
|
5
|
+
Game
|
|
6
|
+
} from "./chunk-TD2MVFAF.js";
|
|
7
|
+
|
|
8
|
+
// src/Editor/WithEditorHelper.ts
|
|
9
|
+
function WithEditorHelper(Base) {
|
|
10
|
+
class Mixed extends Base {
|
|
11
|
+
registerEditorHelper(position, label, attachment = null) {
|
|
12
|
+
const editor = Game.instance().editor;
|
|
13
|
+
if (!editor)
|
|
14
|
+
return;
|
|
15
|
+
this.editorHelper = new EditorHelper(position, label, attachment);
|
|
16
|
+
this.editorHelper.owner = this;
|
|
17
|
+
editor.addHelper(this.editorHelper);
|
|
18
|
+
}
|
|
19
|
+
/** Tag a Three.js mesh so the editor can find this object's helper from it. */
|
|
20
|
+
tagWithHelper(mesh) {
|
|
21
|
+
if (this.editorHelper)
|
|
22
|
+
mesh.userData.editorHelper = this.editorHelper;
|
|
23
|
+
}
|
|
24
|
+
destroy() {
|
|
25
|
+
if (this.editorHelper) {
|
|
26
|
+
Game.instance().editor?.removeHelper(this.editorHelper);
|
|
27
|
+
this.editorHelper.dispose();
|
|
28
|
+
this.editorHelper = void 0;
|
|
29
|
+
}
|
|
30
|
+
super.destroy();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return Mixed;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export {
|
|
37
|
+
WithEditorHelper
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=chunk-MG3V6544.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Editor/WithEditorHelper.ts"],"sourcesContent":["import type { Object3D, Vector3 } from 'three'\nimport type { EditorHelperAttachment } from './EditorHelper'\nimport Game from '../Game'\nimport EditorHelper from './EditorHelper'\n\n/**\n * Mixin that lets any game object register itself as an EditorHelper gizmo.\n *\n * - Call `registerEditorHelper(position, label, attachment?)` once the world-space\n * position is known (typically end of constructor).\n * - Call `tagWithHelper(mesh)` for every Three.js mesh that belongs to this object\n * so that selecting and deleting any of those meshes in the editor also removes\n * the gizmo (and vice-versa via `owner`).\n * - No-ops when no editor is active, safe in non-editor builds.\n */\nexport function WithEditorHelper<TBase extends abstract new (...args: any[]) => { destroy(): void }>(Base: TBase) {\n abstract class Mixed extends Base {\n editorHelper: EditorHelper | undefined\n\n registerEditorHelper(position: Vector3, label: string, attachment: EditorHelperAttachment | null = null): void {\n const editor = Game.instance().editor\n if (!editor)\n return\n this.editorHelper = new EditorHelper(position, label, attachment)\n this.editorHelper.owner = this\n editor.addHelper(this.editorHelper)\n }\n\n /** Tag a Three.js mesh so the editor can find this object's helper from it. */\n tagWithHelper(mesh: Object3D): void {\n if (this.editorHelper)\n mesh.userData.editorHelper = this.editorHelper\n }\n\n destroy(): void {\n if (this.editorHelper) {\n Game.instance().editor?.removeHelper(this.editorHelper)\n this.editorHelper.dispose()\n this.editorHelper = undefined\n }\n super.destroy()\n }\n }\n return Mixed\n}\n"],"mappings":";;;;;;;;AAeO,SAAS,iBAAqF,MAAa;AAAA,EAChH,MAAe,cAAc,KAAK;AAAA,IAGhC,qBAAqB,UAAmB,OAAe,aAA4C,MAAY;AAC7G,YAAM,SAAS,KAAK,SAAS,EAAE;AAC/B,UAAI,CAAC;AACH;AACF,WAAK,eAAe,IAAI,aAAa,UAAU,OAAO,UAAU;AAChE,WAAK,aAAa,QAAQ;AAC1B,aAAO,UAAU,KAAK,YAAY;AAAA,IACpC;AAAA;AAAA,IAGA,cAAc,MAAsB;AAClC,UAAI,KAAK;AACP,aAAK,SAAS,eAAe,KAAK;AAAA,IACtC;AAAA,IAEA,UAAgB;AACd,UAAI,KAAK,cAAc;AACrB,aAAK,SAAS,EAAE,QAAQ,aAAa,KAAK,YAAY;AACtD,aAAK,aAAa,QAAQ;AAC1B,aAAK,eAAe;AAAA,MACtB;AACA,YAAM,QAAQ;AAAA,IAChB;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LivingActor
|
|
3
|
+
} from "./chunk-UK2P4JGN.js";
|
|
4
|
+
import {
|
|
5
|
+
NetworkedGameObjectMixin
|
|
6
|
+
} from "./chunk-3KYMJLQ5.js";
|
|
7
|
+
|
|
8
|
+
// src/Networking/NetworkedLivingActor.ts
|
|
9
|
+
var NetworkedLivingActor = class extends NetworkedGameObjectMixin(LivingActor) {
|
|
10
|
+
/**
|
|
11
|
+
* This is for winston logger meta info
|
|
12
|
+
*/
|
|
13
|
+
get message() {
|
|
14
|
+
return `${super.message} - ${this.$typeName}`;
|
|
15
|
+
}
|
|
16
|
+
update(delta) {
|
|
17
|
+
super.update(delta);
|
|
18
|
+
if (this.stateHash !== this.previousStateHash) {
|
|
19
|
+
this.previousStateHash = this.stateHash;
|
|
20
|
+
this.needsSync = true;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
serialize() {
|
|
24
|
+
return {
|
|
25
|
+
...super.serialize(),
|
|
26
|
+
state: this.state
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
isDead() {
|
|
30
|
+
return this.health <= 0;
|
|
31
|
+
}
|
|
32
|
+
kill(_hit, _direction) {
|
|
33
|
+
this.health = 0;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export {
|
|
38
|
+
NetworkedLivingActor
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=chunk-MSSBGJJT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Networking/NetworkedLivingActor.ts"],"sourcesContent":["import type { Intersection, Object3D, Object3DEventMap, Vector3 } from 'three'\nimport type NetworkedEntity from './NetworkedEntity'\nimport type NetworkedEntityState from './NetworkedEntityState'\nimport LivingActor from '../World/LivingActor'\nimport { NetworkedGameObjectMixin } from './NetworkedGameObject'\n\nexport default abstract class NetworkedLivingActor extends NetworkedGameObjectMixin(LivingActor) implements NetworkedEntity {\n abstract $typeName: string\n\n declare state: NetworkedEntityState[]\n\n /**\n * This is for winston logger meta info\n */\n get message() {\n return `${super.message} - ${this.$typeName}`\n }\n\n update(delta: number): void {\n super.update(delta)\n\n /**\n * Update the state hash if it is changed\n */\n if (this.stateHash !== this.previousStateHash) {\n this.previousStateHash = this.stateHash\n this.needsSync = true\n }\n }\n\n public serialize(): object {\n return {\n ...super.serialize(),\n state: this.state,\n }\n }\n\n isDead(): boolean {\n return this.health <= 0\n }\n\n kill(_hit?: Intersection<Object3D<Object3DEventMap>>, _direction?: Vector3) {\n this.health = 0\n }\n}\n"],"mappings":";;;;;;;;AAMA,IAA8B,uBAA9B,cAA2D,yBAAyB,WAAW,EAA6B;AAAA;AAAA;AAAA;AAAA,EAQ1H,IAAI,UAAU;AACZ,WAAO,GAAG,MAAM,OAAO,MAAM,KAAK,SAAS;AAAA,EAC7C;AAAA,EAEA,OAAO,OAAqB;AAC1B,UAAM,OAAO,KAAK;AAKlB,QAAI,KAAK,cAAc,KAAK,mBAAmB;AAC7C,WAAK,oBAAoB,KAAK;AAC9B,WAAK,YAAY;AAAA,IACnB;AAAA,EACF;AAAA,EAEO,YAAoB;AACzB,WAAO;AAAA,MACL,GAAG,MAAM,UAAU;AAAA,MACnB,OAAO,KAAK;AAAA,IACd;AAAA,EACF;AAAA,EAEA,SAAkB;AAChB,WAAO,KAAK,UAAU;AAAA,EACxB;AAAA,EAEA,KAAK,MAAiD,YAAsB;AAC1E,SAAK,SAAS;AAAA,EAChB;AACF;","names":[]}
|