hytopia 0.2.11 → 0.3.0-dev.3
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/boilerplate/index.ts +17 -9
- package/docs/server.audio.md +7 -1
- package/docs/{server.audioeventtype.md → server.audioevent.md} +4 -4
- package/docs/server.audioeventpayloads._audio.pause_.md +15 -0
- package/docs/server.audioeventpayloads._audio.play_.md +15 -0
- package/docs/server.audioeventpayloads._audio.play_restart_.md +15 -0
- package/docs/server.audioeventpayloads._audio.set_attached_to_entity_.md +16 -0
- package/docs/server.audioeventpayloads._audio.set_detune_.md +16 -0
- package/docs/server.audioeventpayloads._audio.set_distortion_.md +16 -0
- package/docs/server.audioeventpayloads._audio.set_playback_rate_.md +16 -0
- package/docs/server.audioeventpayloads._audio.set_position_.md +16 -0
- package/docs/server.audioeventpayloads._audio.set_reference_distance_.md +16 -0
- package/docs/server.audioeventpayloads._audio.set_volume_.md +16 -0
- package/docs/server.audioeventpayloads.md +228 -0
- package/docs/server.baseentitycontroller.md +4 -138
- package/docs/server.baseentitycontrollerevent.md +117 -0
- package/docs/server.baseentitycontrollereventpayloads.attach.md +15 -0
- package/docs/server.baseentitycontrollereventpayloads.despawn.md +15 -0
- package/docs/server.baseentitycontrollereventpayloads.detach.md +15 -0
- package/docs/server.baseentitycontrollereventpayloads.md +152 -0
- package/docs/server.baseentitycontrollereventpayloads.spawn.md +15 -0
- package/docs/server.baseentitycontrollereventpayloads.tick.md +16 -0
- package/docs/server.baseentitycontrollereventpayloads.tickwithplayerinput.md +18 -0
- package/docs/server.blocktype.md +7 -39
- package/docs/server.blocktypeevent.md +61 -0
- package/docs/server.blocktypeeventpayloads._block_type.entity_collision_.md +19 -0
- package/docs/server.blocktypeeventpayloads._block_type.entity_contact_force_.md +17 -0
- package/docs/server.blocktypeeventpayloads.md +76 -0
- package/docs/server.blocktyperegistry.md +7 -1
- package/docs/{server.blocktyperegistryeventtype.md → server.blocktyperegistryevent.md} +4 -4
- package/docs/server.blocktyperegistryeventpayloads._block_type_registry.register_block_type_.md +17 -0
- package/docs/server.blocktyperegistryeventpayloads.md +57 -0
- package/docs/server.chatevent.md +61 -0
- package/docs/server.chateventpayloads._chat.broadcast_message_.md +17 -0
- package/docs/server.chateventpayloads._chat.player_message_.md +17 -0
- package/docs/server.chateventpayloads.md +76 -0
- package/docs/server.chatmanager.md +6 -45
- package/docs/server.chunk.md +7 -1
- package/docs/{server.chunkeventtype.md → server.chunkevent.md} +4 -4
- package/docs/server.chunkeventpayloads._chunk.despawn_.md +15 -0
- package/docs/server.chunkeventpayloads._chunk.set_block_.md +18 -0
- package/docs/server.chunkeventpayloads._chunk.spawn_.md +15 -0
- package/docs/server.chunkeventpayloads.md +95 -0
- package/docs/server.collider.md +2 -1
- package/docs/server.entity.md +4 -133
- package/docs/{server.entityeventtype.md → server.entityevent.md} +74 -4
- package/docs/server.entityeventpayloads._entity.block_collision_.md +19 -0
- package/docs/server.entityeventpayloads._entity.block_contact_force_.md +17 -0
- package/docs/server.entityeventpayloads._entity.despawn_.md +15 -0
- package/docs/server.entityeventpayloads._entity.entity_collision_.md +19 -0
- package/docs/server.entityeventpayloads._entity.entity_contact_force_.md +17 -0
- package/docs/server.entityeventpayloads._entity.set_model_animations_playback_rate_.md +16 -0
- package/docs/server.entityeventpayloads._entity.set_model_hidden_nodes_.md +16 -0
- package/docs/server.entityeventpayloads._entity.set_opacity_.md +16 -0
- package/docs/server.entityeventpayloads._entity.set_parent_.md +17 -0
- package/docs/server.entityeventpayloads._entity.set_tint_color_.md +16 -0
- package/docs/server.entityeventpayloads._entity.spawn_.md +15 -0
- package/docs/server.entityeventpayloads._entity.start_model_looped_animations_.md +16 -0
- package/docs/server.entityeventpayloads._entity.start_model_oneshot_animations_.md +16 -0
- package/docs/server.entityeventpayloads._entity.stop_model_animations_.md +16 -0
- package/docs/server.entityeventpayloads._entity.tick_.md +16 -0
- package/docs/server.entityeventpayloads._entity.update_position_.md +16 -0
- package/docs/server.entityeventpayloads._entity.update_rotation_.md +16 -0
- package/docs/server.entityeventpayloads.md +361 -0
- package/docs/server.eventpayloads.md +15 -0
- package/docs/server.eventrouter.emit.md +4 -4
- package/docs/server.eventrouter.emit_1.md +63 -0
- package/docs/server.eventrouter.emitwithglobal.md +69 -0
- package/docs/server.eventrouter.emitwithglobal_1.md +63 -0
- package/docs/server.eventrouter.emitwithworld.md +85 -0
- package/docs/server.eventrouter.emitwithworld_1.md +77 -0
- package/docs/{server.eventrouter.prependon.md → server.eventrouter.final_1.md} +4 -10
- package/docs/server.eventrouter.haslisteners.md +55 -0
- package/docs/server.eventrouter.listenercount.md +55 -0
- package/docs/server.eventrouter.listeners.md +55 -0
- package/docs/server.eventrouter.md +40 -95
- package/docs/server.eventrouter.off.md +3 -3
- package/docs/{server.eventrouter.prependonce.md → server.eventrouter.off_1.md} +4 -10
- package/docs/server.eventrouter.offall.md +4 -4
- package/docs/server.eventrouter.on.md +3 -3
- package/docs/server.eventrouter.on_1.md +63 -0
- package/docs/server.eventrouter.once.md +3 -3
- package/docs/server.eventrouter.once_1.md +63 -0
- package/docs/{server.gameservereventtype.md → server.gameserverevent.md} +4 -4
- package/docs/server.gameservereventpayloads._gameserver.start_.md +15 -0
- package/docs/server.gameservereventpayloads._gameserver.stop_.md +15 -0
- package/docs/server.gameservereventpayloads.md +76 -0
- package/docs/server.light.md +7 -1
- package/docs/{server.lighteventtype.md → server.lightevent.md} +4 -18
- package/docs/server.lighteventpayloads._light.despawn_.md +15 -0
- package/docs/server.lighteventpayloads._light.set_angle_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_attached_to_entity_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_color_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_distance_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_intensity_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_offset_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_penumbra_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_position_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_tracked_entity_.md +16 -0
- package/docs/server.lighteventpayloads._light.set_tracked_position_.md +16 -0
- package/docs/server.lighteventpayloads._light.spawn_.md +15 -0
- package/docs/server.lighteventpayloads.md +266 -0
- package/docs/server.md +201 -84
- package/docs/server.modelregistry.md +38 -0
- package/docs/server.modelregistry.optimize.md +13 -0
- package/docs/server.modelregistry.optimizeeverystart.md +13 -0
- package/docs/server.player.md +7 -1
- package/docs/server.playercamera.md +7 -1
- package/docs/{server.playercameraeventtype.md → server.playercameraevent.md} +4 -4
- package/docs/server.playercameraeventpayloads._player_camera.look_at_entity_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.look_at_position_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_attached_to_entity_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_attached_to_position_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_film_offset_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_forward_offset_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_fov_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_mode_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_model_hidden_nodes_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_offset_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_tracked_entity_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_tracked_position_.md +16 -0
- package/docs/server.playercameraeventpayloads._player_camera.set_zoom_.md +16 -0
- package/docs/server.playercameraeventpayloads.md +285 -0
- package/docs/{server.playereventtype.md → server.playerevent.md} +4 -4
- package/docs/server.playereventpayloads._player.chat_message_send_.md +16 -0
- package/docs/server.playereventpayloads._player.joined_world_.md +16 -0
- package/docs/server.playereventpayloads._player.left_world_.md +16 -0
- package/docs/server.playereventpayloads._player.request_sync_.md +17 -0
- package/docs/server.playereventpayloads.md +114 -0
- package/docs/server.playermanager.md +4 -0
- package/docs/server.playermanagereventpayloads._player_manager.player_connected_.md +15 -0
- package/docs/server.playermanagereventpayloads._player_manager.player_disconnected_.md +15 -0
- package/docs/server.playermanagereventpayloads.md +76 -0
- package/docs/server.playerui.md +6 -20
- package/docs/{server.playeruieventtype.md → server.playeruievent.md} +18 -4
- package/docs/server.playeruieventpayloads._player_ui.data_.md +16 -0
- package/docs/server.playeruieventpayloads._player_ui.load_.md +16 -0
- package/docs/server.playeruieventpayloads._player_ui.lock_pointer_.md +16 -0
- package/docs/server.playeruieventpayloads._player_ui.send_data_.md +16 -0
- package/docs/server.playeruieventpayloads.md +114 -0
- package/docs/server.rigidbody.md +2 -1
- package/docs/server.sceneui.md +7 -1
- package/docs/server.sceneuievent.md +131 -0
- package/docs/server.sceneuieventpayloads._scene_ui.load_.md +15 -0
- package/docs/server.sceneuieventpayloads._scene_ui.set_attached_to_entity_.md +16 -0
- package/docs/server.sceneuieventpayloads._scene_ui.set_offset_.md +16 -0
- package/docs/server.sceneuieventpayloads._scene_ui.set_position_.md +16 -0
- package/docs/server.sceneuieventpayloads._scene_ui.set_state_.md +16 -0
- package/docs/server.sceneuieventpayloads._scene_ui.set_view_distance_.md +16 -0
- package/docs/server.sceneuieventpayloads._scene_ui.unload_.md +15 -0
- package/docs/server.sceneuieventpayloads.md +171 -0
- package/docs/server.simulation.md +6 -1
- package/docs/server.simulationevent.md +89 -0
- package/docs/server.simulationeventpayloads._simulation.debug_raycast_.md +19 -0
- package/docs/server.simulationeventpayloads._simulation.debug_render_.md +17 -0
- package/docs/server.simulationeventpayloads._simulation.step_end_.md +16 -0
- package/docs/server.simulationeventpayloads._simulation.step_start_.md +16 -0
- package/docs/server.simulationeventpayloads.md +114 -0
- package/docs/server.world.md +7 -60
- package/docs/server.worldevent.md +131 -0
- package/docs/server.worldeventpayloads._world.set_ambient_light_color_.md +16 -0
- package/docs/server.worldeventpayloads._world.set_ambient_light_intensity_.md +16 -0
- package/docs/server.worldeventpayloads._world.set_directional_light_color_.md +16 -0
- package/docs/server.worldeventpayloads._world.set_directional_light_intensity_.md +16 -0
- package/docs/server.worldeventpayloads._world.set_directional_light_position_.md +16 -0
- package/docs/server.worldeventpayloads._world.start_.md +16 -0
- package/docs/server.worldeventpayloads._world.stop_.md +16 -0
- package/docs/server.worldeventpayloads.md +171 -0
- package/docs/server.worldloop.md +6 -1
- package/docs/{server.worldloopeventtype.md → server.worldloopevent.md} +4 -4
- package/docs/server.worldloopeventpayloads._world_loop.start_.md +15 -0
- package/docs/server.worldloopeventpayloads._world_loop.stop_.md +15 -0
- package/docs/server.worldloopeventpayloads._world_loop.tick_end_.md +16 -0
- package/docs/server.worldloopeventpayloads._world_loop.tick_error_.md +16 -0
- package/docs/server.worldloopeventpayloads._world_loop.tick_start_.md +16 -0
- package/docs/server.worldloopeventpayloads.md +133 -0
- package/examples/ai-agents/index.ts +9 -13
- package/examples/ai-agents/src/BaseAgent.ts +4 -2
- package/examples/ai-agents/src/behaviors/FishingBehavior.ts +2 -2
- package/examples/ai-agents/src/behaviors/FollowBehavior.ts +3 -3
- package/examples/ai-agents/src/behaviors/MiningBehavior.ts +2 -2
- package/examples/ai-agents/src/behaviors/PathfindingBehavior.ts +7 -7
- package/examples/big-world/index.ts +5 -4
- package/examples/block-entity/index.ts +12 -10
- package/examples/child-entity/index.ts +5 -4
- package/examples/custom-ui/index.ts +9 -7
- package/examples/entity-controller/index.ts +5 -4
- package/examples/entity-spawn/index.ts +8 -6
- package/examples/hole-in-wall-game/index.ts +9 -7
- package/examples/lighting/index.ts +5 -4
- package/examples/pathfinding/index.ts +5 -4
- package/examples/payload-game/assets/models/.optimized/bullet/baseColor.png +0 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet-named-nodes.gltf +308 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet.gltf +142 -0
- package/examples/payload-game/assets/models/.optimized/bullet/bullet.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/payload/baseColor.png +0 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload-named-nodes.gltf +2868 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload.gltf +1109 -0
- package/examples/payload-game/assets/models/.optimized/payload/payload.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/baseColor_1.png +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/baseColor_2.png +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun-named-nodes.gltf +8572 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.gltf +7849 -0
- package/examples/payload-game/assets/models/.optimized/player-with-gun/player-with-gun.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/raygun/baseColor_1.png +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/baseColor_2.png +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun-named-nodes.gltf +7752 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun.gltf +832 -0
- package/examples/payload-game/assets/models/.optimized/raygun/raygun.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_1.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_2.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_3.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/baseColor_4.png +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player-named-nodes.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player-named-nodes.gltf +7679 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.bin +0 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.gltf +7774 -0
- package/examples/payload-game/assets/models/.optimized/soldier-player/soldier-player.gltf.md5 +1 -0
- package/examples/payload-game/assets/models/raygun.gltf +1 -0
- package/examples/payload-game/assets/models/soldier-player.gltf +1 -0
- package/examples/payload-game/index.ts +49 -26
- package/examples/wall-dodge-game/index.ts +8 -6
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence-named-nodes.gltf +806 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/barbedfence/barbedfence.gltf +15 -686
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars-named-nodes.gltf +1633 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/binoculars/binoculars.gltf +86 -1578
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox-named-nodes.gltf +2480 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bombbox/bombbox.gltf +88 -2427
- package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole-named-nodes.gltf +136 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/bullet-hole/bullet-hole.gltf +1 -1
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit-named-nodes.gltf +831 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/healthkit/healthkit.gltf +16 -706
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf-named-nodes.gltf +4025 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/metalshelf/metalshelf.gltf +136 -3944
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash-named-nodes.gltf +196 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/muzzle-flash/muzzle-flash.gltf +57 -28
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox-named-nodes.gltf +3412 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.bin +0 -0
- package/examples/zombies-fps/assets/models/environment/.optimized/weaponbox/weaponbox.gltf +133 -3323
- package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/ak-47/ak-47.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/ar-15/ar-15.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-pistol/auto-pistol.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/auto-shotgun/auto-shotgun.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/pistol/pistol.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun-named-nodes.glb +0 -0
- package/examples/zombies-fps/assets/models/items/.optimized/shotgun/shotgun.glb +0 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss-named-nodes.gltf +10037 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.bin +0 -0
- package/examples/zombies-fps/assets/models/npcs/.optimized/ripper-boss/ripper-boss.gltf +1262 -4533
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player-named-nodes.gltf +7679 -0
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.bin +0 -0
- package/examples/zombies-fps/assets/models/players/.optimized/soldier-player/soldier-player.gltf +529 -434
- package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace-named-nodes.bin +0 -0
- package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace-named-nodes.gltf +136 -0
- package/examples/zombies-fps/assets/models/projectiles/.optimized/bullet-trace/bullet-trace.gltf +1 -1
- package/examples/zombies-fps/classes/EnemyEntity.ts +10 -4
- package/examples/zombies-fps/classes/GamePlayerEntity.ts +7 -2
- package/examples/zombies-fps/classes/enemies/RipperEntity.ts +2 -1
- package/examples/zombies-fps/index.ts +5 -5
- package/package.json +5 -2
- package/server.api.json +9458 -7736
- package/server.d.ts +765 -486
- package/server.js +132 -90
- package/tsdoc-metadata.json +1 -1
- package/docs/server.audioeventpayload.md +0 -118
- package/docs/server.audioeventpayload.pause.audio.md +0 -11
- package/docs/server.audioeventpayload.pause.md +0 -53
- package/docs/server.audioeventpayload.play.audio.md +0 -11
- package/docs/server.audioeventpayload.play.md +0 -53
- package/docs/server.audioeventpayload.playrestart.audio.md +0 -11
- package/docs/server.audioeventpayload.playrestart.md +0 -53
- package/docs/server.audioeventpayload.setattachedtoentity.audio.md +0 -11
- package/docs/server.audioeventpayload.setattachedtoentity.entity.md +0 -11
- package/docs/server.audioeventpayload.setattachedtoentity.md +0 -70
- package/docs/server.audioeventpayload.setdetune.audio.md +0 -11
- package/docs/server.audioeventpayload.setdetune.detune.md +0 -11
- package/docs/server.audioeventpayload.setdetune.md +0 -70
- package/docs/server.audioeventpayload.setdistortion.audio.md +0 -11
- package/docs/server.audioeventpayload.setdistortion.distortion.md +0 -11
- package/docs/server.audioeventpayload.setdistortion.md +0 -70
- package/docs/server.audioeventpayload.setplaybackrate.audio.md +0 -11
- package/docs/server.audioeventpayload.setplaybackrate.md +0 -70
- package/docs/server.audioeventpayload.setplaybackrate.playbackrate.md +0 -11
- package/docs/server.audioeventpayload.setposition.audio.md +0 -11
- package/docs/server.audioeventpayload.setposition.md +0 -70
- package/docs/server.audioeventpayload.setposition.position.md +0 -11
- package/docs/server.audioeventpayload.setreferencedistance.audio.md +0 -11
- package/docs/server.audioeventpayload.setreferencedistance.md +0 -70
- package/docs/server.audioeventpayload.setreferencedistance.referencedistance.md +0 -11
- package/docs/server.audioeventpayload.setvolume.audio.md +0 -11
- package/docs/server.audioeventpayload.setvolume.md +0 -70
- package/docs/server.audioeventpayload.setvolume.volume.md +0 -11
- package/docs/server.baseentitycontroller.onattach.md +0 -13
- package/docs/server.baseentitycontroller.ondespawn.md +0 -13
- package/docs/server.baseentitycontroller.ondetach.md +0 -13
- package/docs/server.baseentitycontroller.onspawn.md +0 -13
- package/docs/server.baseentitycontroller.ontick.md +0 -13
- package/docs/server.baseentitycontroller.ontickwithplayerinput.md +0 -13
- package/docs/server.blocktype.onentitycollision.md +0 -18
- package/docs/server.blocktype.onentitycontactforce.md +0 -18
- package/docs/server.blocktyperegistryeventpayload.md +0 -37
- package/docs/server.blocktyperegistryeventpayload.registerblocktype.blocktype.md +0 -11
- package/docs/server.blocktyperegistryeventpayload.registerblocktype.blocktyperegistry.md +0 -11
- package/docs/server.blocktyperegistryeventpayload.registerblocktype.id.md +0 -11
- package/docs/server.blocktyperegistryeventpayload.registerblocktype.md +0 -87
- package/docs/server.chateventpayload.md +0 -46
- package/docs/server.chateventpayload.sendbroadcastmessage.color.md +0 -11
- package/docs/server.chateventpayload.sendbroadcastmessage.md +0 -91
- package/docs/server.chateventpayload.sendbroadcastmessage.message.md +0 -11
- package/docs/server.chateventpayload.sendbroadcastmessage.playerid.md +0 -11
- package/docs/server.chateventpayload.sendplayermessage.color.md +0 -11
- package/docs/server.chateventpayload.sendplayermessage.md +0 -89
- package/docs/server.chateventpayload.sendplayermessage.message.md +0 -11
- package/docs/server.chateventpayload.sendplayermessage.player.md +0 -11
- package/docs/server.chateventtype.md +0 -61
- package/docs/server.chatmanager.onbroadcastmessage.md +0 -13
- package/docs/server.chunkeventpayload.despawn.chunk.md +0 -11
- package/docs/server.chunkeventpayload.despawn.md +0 -53
- package/docs/server.chunkeventpayload.md +0 -55
- package/docs/server.chunkeventpayload.setblock.blocktypeid.md +0 -11
- package/docs/server.chunkeventpayload.setblock.chunk.md +0 -11
- package/docs/server.chunkeventpayload.setblock.globalcoordinate.md +0 -11
- package/docs/server.chunkeventpayload.setblock.localcoordinate.md +0 -11
- package/docs/server.chunkeventpayload.setblock.md +0 -104
- package/docs/server.chunkeventpayload.spawn.chunk.md +0 -11
- package/docs/server.chunkeventpayload.spawn.md +0 -53
- package/docs/server.entity.onblockcollision.md +0 -18
- package/docs/server.entity.onblockcontactforce.md +0 -18
- package/docs/server.entity.ondespawn.md +0 -13
- package/docs/server.entity.onentitycollision.md +0 -18
- package/docs/server.entity.onentitycontactforce.md +0 -18
- package/docs/server.entity.onspawn.md +0 -13
- package/docs/server.entity.ontick.md +0 -13
- package/docs/server.entityeventpayload.despawn.entity.md +0 -11
- package/docs/server.entityeventpayload.despawn.md +0 -53
- package/docs/server.entityeventpayload.md +0 -136
- package/docs/server.entityeventpayload.setmodelanimationsplaybackrate.entity.md +0 -11
- package/docs/server.entityeventpayload.setmodelanimationsplaybackrate.md +0 -70
- package/docs/server.entityeventpayload.setmodelanimationsplaybackrate.playbackrate.md +0 -11
- package/docs/server.entityeventpayload.setmodelhiddennodes.entity.md +0 -11
- package/docs/server.entityeventpayload.setmodelhiddennodes.md +0 -70
- package/docs/server.entityeventpayload.setmodelhiddennodes.modelhiddennodes.md +0 -11
- package/docs/server.entityeventpayload.setopacity.entity.md +0 -11
- package/docs/server.entityeventpayload.setopacity.md +0 -70
- package/docs/server.entityeventpayload.setopacity.opacity.md +0 -11
- package/docs/server.entityeventpayload.setparent.entity.md +0 -11
- package/docs/server.entityeventpayload.setparent.md +0 -87
- package/docs/server.entityeventpayload.setparent.parent.md +0 -11
- package/docs/server.entityeventpayload.setparent.parentnodename.md +0 -11
- package/docs/server.entityeventpayload.settintcolor.entity.md +0 -11
- package/docs/server.entityeventpayload.settintcolor.md +0 -70
- package/docs/server.entityeventpayload.settintcolor.tintcolor.md +0 -11
- package/docs/server.entityeventpayload.spawn.entity.md +0 -11
- package/docs/server.entityeventpayload.spawn.md +0 -53
- package/docs/server.entityeventpayload.startmodelloopedanimations.animations.md +0 -11
- package/docs/server.entityeventpayload.startmodelloopedanimations.entity.md +0 -11
- package/docs/server.entityeventpayload.startmodelloopedanimations.md +0 -70
- package/docs/server.entityeventpayload.startmodeloneshotanimations.animations.md +0 -11
- package/docs/server.entityeventpayload.startmodeloneshotanimations.entity.md +0 -11
- package/docs/server.entityeventpayload.startmodeloneshotanimations.md +0 -70
- package/docs/server.entityeventpayload.stopmodelanimations.animations.md +0 -11
- package/docs/server.entityeventpayload.stopmodelanimations.entity.md +0 -11
- package/docs/server.entityeventpayload.stopmodelanimations.md +0 -70
- package/docs/server.entityeventpayload.updateposition.entity.md +0 -11
- package/docs/server.entityeventpayload.updateposition.md +0 -70
- package/docs/server.entityeventpayload.updateposition.position.md +0 -11
- package/docs/server.entityeventpayload.updaterotation.entity.md +0 -11
- package/docs/server.entityeventpayload.updaterotation.md +0 -70
- package/docs/server.entityeventpayload.updaterotation.rotation.md +0 -11
- package/docs/server.eventrouter._constructor_.md +0 -49
- package/docs/server.eventrouter.logallevents.md +0 -13
- package/docs/server.eventrouter.logeventspayloads.md +0 -13
- package/docs/server.eventrouter.logignoreeventprefixes.md +0 -13
- package/docs/server.eventrouter.logignoreevents.md +0 -13
- package/docs/server.eventrouter.logunlistenedevents.md +0 -13
- package/docs/server.eventrouter.serverinstance.md +0 -13
- package/docs/server.gameservereventpayload.md +0 -46
- package/docs/server.gameservereventpayload.start.md +0 -53
- package/docs/server.gameservereventpayload.start.startedatms.md +0 -11
- package/docs/server.gameservereventpayload.stop.md +0 -53
- package/docs/server.gameservereventpayload.stop.stoppedatms.md +0 -11
- package/docs/server.lighteventpayload.despawn.light.md +0 -11
- package/docs/server.lighteventpayload.despawn.md +0 -53
- package/docs/server.lighteventpayload.md +0 -136
- package/docs/server.lighteventpayload.setangle.angle.md +0 -11
- package/docs/server.lighteventpayload.setangle.light.md +0 -11
- package/docs/server.lighteventpayload.setangle.md +0 -70
- package/docs/server.lighteventpayload.setattachedtoentity.entity.md +0 -11
- package/docs/server.lighteventpayload.setattachedtoentity.light.md +0 -11
- package/docs/server.lighteventpayload.setattachedtoentity.md +0 -70
- package/docs/server.lighteventpayload.setcolor.color.md +0 -11
- package/docs/server.lighteventpayload.setcolor.light.md +0 -11
- package/docs/server.lighteventpayload.setcolor.md +0 -70
- package/docs/server.lighteventpayload.setdistance.distance.md +0 -11
- package/docs/server.lighteventpayload.setdistance.light.md +0 -11
- package/docs/server.lighteventpayload.setdistance.md +0 -70
- package/docs/server.lighteventpayload.setintensity.intensity.md +0 -11
- package/docs/server.lighteventpayload.setintensity.light.md +0 -11
- package/docs/server.lighteventpayload.setintensity.md +0 -70
- package/docs/server.lighteventpayload.setoffset.light.md +0 -11
- package/docs/server.lighteventpayload.setoffset.md +0 -70
- package/docs/server.lighteventpayload.setoffset.offset.md +0 -11
- package/docs/server.lighteventpayload.setpenumbra.light.md +0 -11
- package/docs/server.lighteventpayload.setpenumbra.md +0 -70
- package/docs/server.lighteventpayload.setpenumbra.penumbra.md +0 -11
- package/docs/server.lighteventpayload.setposition.light.md +0 -11
- package/docs/server.lighteventpayload.setposition.md +0 -70
- package/docs/server.lighteventpayload.setposition.position.md +0 -11
- package/docs/server.lighteventpayload.settrackedentity.entity.md +0 -11
- package/docs/server.lighteventpayload.settrackedentity.light.md +0 -11
- package/docs/server.lighteventpayload.settrackedentity.md +0 -70
- package/docs/server.lighteventpayload.settrackedposition.light.md +0 -11
- package/docs/server.lighteventpayload.settrackedposition.md +0 -70
- package/docs/server.lighteventpayload.settrackedposition.position.md +0 -11
- package/docs/server.lighteventpayload.spawn.light.md +0 -11
- package/docs/server.lighteventpayload.spawn.md +0 -53
- package/docs/server.playercameraeventpayload.lookatentity.entity.md +0 -11
- package/docs/server.playercameraeventpayload.lookatentity.md +0 -70
- package/docs/server.playercameraeventpayload.lookatentity.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.lookatposition.md +0 -70
- package/docs/server.playercameraeventpayload.lookatposition.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.lookatposition.position.md +0 -11
- package/docs/server.playercameraeventpayload.md +0 -145
- package/docs/server.playercameraeventpayload.setattachedtoentity.entity.md +0 -11
- package/docs/server.playercameraeventpayload.setattachedtoentity.md +0 -70
- package/docs/server.playercameraeventpayload.setattachedtoentity.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setattachedtoposition.md +0 -70
- package/docs/server.playercameraeventpayload.setattachedtoposition.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setattachedtoposition.position.md +0 -11
- package/docs/server.playercameraeventpayload.setfilmoffset.filmoffset.md +0 -11
- package/docs/server.playercameraeventpayload.setfilmoffset.md +0 -70
- package/docs/server.playercameraeventpayload.setfilmoffset.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setforwardoffset.forwardoffset.md +0 -11
- package/docs/server.playercameraeventpayload.setforwardoffset.md +0 -70
- package/docs/server.playercameraeventpayload.setforwardoffset.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setfov.fov.md +0 -11
- package/docs/server.playercameraeventpayload.setfov.md +0 -70
- package/docs/server.playercameraeventpayload.setfov.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setmode.md +0 -70
- package/docs/server.playercameraeventpayload.setmode.mode.md +0 -11
- package/docs/server.playercameraeventpayload.setmode.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setmodelhiddennodes.md +0 -70
- package/docs/server.playercameraeventpayload.setmodelhiddennodes.modelhiddennodes.md +0 -11
- package/docs/server.playercameraeventpayload.setmodelhiddennodes.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setoffset.md +0 -70
- package/docs/server.playercameraeventpayload.setoffset.offset.md +0 -11
- package/docs/server.playercameraeventpayload.setoffset.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.settrackedentity.entity.md +0 -11
- package/docs/server.playercameraeventpayload.settrackedentity.md +0 -70
- package/docs/server.playercameraeventpayload.settrackedentity.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.settrackedposition.md +0 -70
- package/docs/server.playercameraeventpayload.settrackedposition.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.settrackedposition.position.md +0 -11
- package/docs/server.playercameraeventpayload.setzoom.md +0 -70
- package/docs/server.playercameraeventpayload.setzoom.playercamera.md +0 -11
- package/docs/server.playercameraeventpayload.setzoom.zoom.md +0 -11
- package/docs/server.playereventpayload.chatmessagesend.md +0 -70
- package/docs/server.playereventpayload.chatmessagesend.message.md +0 -11
- package/docs/server.playereventpayload.chatmessagesend.player.md +0 -11
- package/docs/server.playereventpayload.joinedworld.md +0 -70
- package/docs/server.playereventpayload.joinedworld.player.md +0 -11
- package/docs/server.playereventpayload.joinedworld.world.md +0 -11
- package/docs/server.playereventpayload.leftworld.md +0 -70
- package/docs/server.playereventpayload.leftworld.player.md +0 -11
- package/docs/server.playereventpayload.leftworld.world.md +0 -11
- package/docs/server.playereventpayload.md +0 -64
- package/docs/server.playereventpayload.requestsync.md +0 -87
- package/docs/server.playereventpayload.requestsync.player.md +0 -11
- package/docs/server.playereventpayload.requestsync.receivedat.md +0 -11
- package/docs/server.playereventpayload.requestsync.receivedatms.md +0 -11
- package/docs/server.playerui.ondata.md +0 -18
- package/docs/server.playeruieventpayload.load.htmluri.md +0 -11
- package/docs/server.playeruieventpayload.load.md +0 -70
- package/docs/server.playeruieventpayload.load.playerui.md +0 -11
- package/docs/server.playeruieventpayload.lockpointer.lock.md +0 -11
- package/docs/server.playeruieventpayload.lockpointer.md +0 -70
- package/docs/server.playeruieventpayload.lockpointer.playerui.md +0 -11
- package/docs/server.playeruieventpayload.md +0 -55
- package/docs/server.playeruieventpayload.senddata.data.md +0 -11
- package/docs/server.playeruieventpayload.senddata.md +0 -70
- package/docs/server.playeruieventpayload.senddata.playerui.md +0 -11
- package/docs/server.world.eventrouter.md +0 -13
- package/docs/server.world.onplayerjoin.md +0 -13
- package/docs/server.world.onplayerleave.md +0 -13
- package/docs/server.worldloopeventpayload.md +0 -73
- package/docs/server.worldloopeventpayload.start.md +0 -53
- package/docs/server.worldloopeventpayload.start.worldloop.md +0 -11
- package/docs/server.worldloopeventpayload.stop.md +0 -53
- package/docs/server.worldloopeventpayload.stop.worldloop.md +0 -11
- package/docs/server.worldloopeventpayload.tickend.md +0 -70
- package/docs/server.worldloopeventpayload.tickend.tickdurationms.md +0 -11
- package/docs/server.worldloopeventpayload.tickend.worldloop.md +0 -11
- package/docs/server.worldloopeventpayload.tickerror.error.md +0 -11
- package/docs/server.worldloopeventpayload.tickerror.md +0 -70
- package/docs/server.worldloopeventpayload.tickerror.worldloop.md +0 -11
- package/docs/server.worldloopeventpayload.tickstart.md +0 -70
- package/docs/server.worldloopeventpayload.tickstart.tickdeltams.md +0 -11
- package/docs/server.worldloopeventpayload.tickstart.worldloop.md +0 -11
@@ -18,19 +18,23 @@
|
|
18
18
|
|
19
19
|
import {
|
20
20
|
Audio,
|
21
|
+
BaseEntityControllerEvent,
|
21
22
|
BlockType,
|
22
23
|
PlayerCameraMode,
|
23
24
|
ColliderShape,
|
24
25
|
CollisionGroup,
|
25
26
|
PlayerEntityController,
|
26
27
|
Entity,
|
28
|
+
EntityEvent,
|
27
29
|
PlayerEntity,
|
30
|
+
PlayerEvent,
|
28
31
|
RigidBodyType,
|
29
32
|
SimpleEntityController,
|
30
33
|
Vector3,
|
31
34
|
World,
|
32
35
|
startServer,
|
33
36
|
Collider,
|
37
|
+
Quaternion,
|
34
38
|
} from 'hytopia';
|
35
39
|
|
36
40
|
import type {
|
@@ -38,6 +42,7 @@ import type {
|
|
38
42
|
PlayerCameraOrientation,
|
39
43
|
QuaternionLike,
|
40
44
|
Vector3Like,
|
45
|
+
EventPayloads,
|
41
46
|
} from 'hytopia';
|
42
47
|
|
43
48
|
import map from './assets/map.json';
|
@@ -99,15 +104,16 @@ startServer(world => { // Perform our game setup logic in the startServer init c
|
|
99
104
|
world.loadMap(map);
|
100
105
|
|
101
106
|
// Setup Player Join & Spawn Controlled Entity
|
102
|
-
world.
|
107
|
+
world.on(PlayerEvent.JOINED_WORLD, ({ player }) => {
|
103
108
|
const playerEntity = new PlayerEntity({ // Create an entity our newly joined player controls
|
104
109
|
player,
|
105
110
|
name: 'Player',
|
106
|
-
modelUri: 'models/player
|
107
|
-
modelLoopedAnimations: [ '
|
111
|
+
modelUri: 'models/soldier-player.gltf',
|
112
|
+
modelLoopedAnimations: [ 'idle_lower', 'idle_gun_right' ],
|
108
113
|
modelScale: 0.5,
|
109
114
|
});
|
110
115
|
|
116
|
+
|
111
117
|
player.ui.load('ui/index.html');
|
112
118
|
|
113
119
|
// Setup a first person camera for the player
|
@@ -120,8 +126,15 @@ startServer(world => { // Perform our game setup logic in the startServer init c
|
|
120
126
|
const randomSpawnCoordinate = PLAYER_SPAWN_COORDINATES[Math.floor(Math.random() * PLAYER_SPAWN_COORDINATES.length)];
|
121
127
|
playerEntity.spawn(world, randomSpawnCoordinate);
|
122
128
|
|
129
|
+
// Override default model animations
|
130
|
+
const playerController = playerEntity.controller as PlayerEntityController;
|
131
|
+
playerController.idleLoopedAnimations = [ 'idle_lower', 'idle_gun_right' ];
|
132
|
+
playerController.interactOneshotAnimations = [];
|
133
|
+
playerController.walkLoopedAnimations = ['walk_lower', 'idle_gun_right' ];
|
134
|
+
playerController.runLoopedAnimations = [ 'run_lower', 'idle_gun_right' ];
|
135
|
+
|
123
136
|
// We need to do some custom logic for player inputs, so let's assign custom onTick handler to the default player controller.
|
124
|
-
|
137
|
+
playerController.on(BaseEntityControllerEvent.TICK_WITH_PLAYER_INPUT, onTickWithPlayerInput);
|
125
138
|
|
126
139
|
// Set custom collision groups for the player entity, this is so we can reference the PLAYER collision group
|
127
140
|
// specifically in enemy collision sensors.
|
@@ -130,6 +143,16 @@ startServer(world => { // Perform our game setup logic in the startServer init c
|
|
130
143
|
collidesWith: [ CollisionGroup.ALL ],
|
131
144
|
});
|
132
145
|
|
146
|
+
// Spawn gun as child entity
|
147
|
+
const gun = new Entity({
|
148
|
+
modelUri: 'models/raygun.gltf',
|
149
|
+
modelScale: 0.04,
|
150
|
+
parent: playerEntity,
|
151
|
+
parentNodeName: 'hand_right_anchor',
|
152
|
+
});
|
153
|
+
|
154
|
+
gun.spawn(world, { x: 0, y: 0, z: 0.1 }, Quaternion.fromEuler(-90, 0, 0));
|
155
|
+
|
133
156
|
// Initialize player health
|
134
157
|
playerEntityHealth[playerEntity.id!] = 20;
|
135
158
|
|
@@ -143,10 +166,10 @@ startServer(world => { // Perform our game setup logic in the startServer init c
|
|
143
166
|
if (!started) {
|
144
167
|
chatManager.sendBroadcastMessage('Enter command /start to start the game!', 'FFFFFF');
|
145
168
|
}
|
146
|
-
};
|
169
|
+
});
|
147
170
|
|
148
171
|
// Setup Player Leave & Despawn Controlled Entity
|
149
|
-
world.
|
172
|
+
world.on(PlayerEvent.LEFT_WORLD, ({ player }) => {
|
150
173
|
world.entityManager.getPlayerEntitiesByPlayer(player).forEach(entity => {
|
151
174
|
entity.despawn();
|
152
175
|
});
|
@@ -154,7 +177,7 @@ startServer(world => { // Perform our game setup logic in the startServer init c
|
|
154
177
|
playerCount--;
|
155
178
|
|
156
179
|
chatManager.sendBroadcastMessage(`Player ${player.username} has left the game!`, 'FFFFFF');
|
157
|
-
};
|
180
|
+
});
|
158
181
|
|
159
182
|
// Spawn Payload
|
160
183
|
spawnPayloadEntity(world);
|
@@ -229,13 +252,13 @@ function spawnBullet(world: World, coordinate: Vector3Like, direction: Vector3Li
|
|
229
252
|
},
|
230
253
|
});
|
231
254
|
|
232
|
-
bullet.
|
255
|
+
bullet.on(EntityEvent.BLOCK_COLLISION, ({ started }) => { // If the bullet hits a block, despawn it
|
233
256
|
if (started) {
|
234
257
|
bullet.despawn();
|
235
258
|
}
|
236
|
-
};
|
259
|
+
});
|
237
260
|
|
238
|
-
bullet.
|
261
|
+
bullet.on(EntityEvent.ENTITY_COLLISION, ({ otherEntity, started }) => { // If the bullet hits an enemy, deal damage if it is a Spider
|
239
262
|
if (!started || otherEntity.name !== 'Spider') {
|
240
263
|
return;
|
241
264
|
}
|
@@ -261,7 +284,7 @@ function spawnBullet(world: World, coordinate: Vector3Like, direction: Vector3Li
|
|
261
284
|
}
|
262
285
|
|
263
286
|
bullet.despawn();
|
264
|
-
};
|
287
|
+
});
|
265
288
|
|
266
289
|
bullet.spawn(world, coordinate);
|
267
290
|
|
@@ -317,7 +340,7 @@ function spawnPayloadEntity(world: World) {
|
|
317
340
|
},
|
318
341
|
});
|
319
342
|
|
320
|
-
payloadEntity.
|
343
|
+
payloadEntity.on(EntityEvent.TICK, onTickPathfindPayload);
|
321
344
|
payloadEntity.spawn(world, PAYLOAD_SPAWN_COORDINATE); // Spawn the payload at the designated spawn coordinate
|
322
345
|
|
323
346
|
(new Audio({ // Play a looped idle sound that follows the payload spatially
|
@@ -367,19 +390,16 @@ function spawnSpider(world: World, coordinate: Vector3Like) {
|
|
367
390
|
},
|
368
391
|
});
|
369
392
|
|
370
|
-
spider.
|
371
|
-
entity,
|
372
|
-
|
373
|
-
baseSpeed * randomScaleMultiplier,
|
374
|
-
tickDeltaMs,
|
375
|
-
);
|
393
|
+
spider.on(EntityEvent.TICK, ({ entity, tickDeltaMs }) => {
|
394
|
+
onTickPathfindEnemy(entity, targetPlayers, baseSpeed * randomScaleMultiplier, tickDeltaMs);
|
395
|
+
});
|
376
396
|
|
377
|
-
spider.
|
378
|
-
if (started &&
|
397
|
+
spider.on(EntityEvent.ENTITY_COLLISION, ({ otherEntity, started }) => {
|
398
|
+
if (started && otherEntity instanceof PlayerEntity && otherEntity.isSpawned) {
|
379
399
|
const spiderDirection = spider.directionFromRotation;
|
380
400
|
const knockback = 4 * randomScaleMultiplier;
|
381
401
|
|
382
|
-
|
402
|
+
otherEntity.applyImpulse({
|
383
403
|
x: -spiderDirection.x * knockback,
|
384
404
|
y: 4,
|
385
405
|
z: -spiderDirection.z * knockback,
|
@@ -392,9 +412,9 @@ function spawnSpider(world: World, coordinate: Vector3Like) {
|
|
392
412
|
referenceDistance: 8,
|
393
413
|
})).play(world);
|
394
414
|
|
395
|
-
damagePlayer(
|
415
|
+
damagePlayer(otherEntity);
|
396
416
|
}
|
397
|
-
};
|
417
|
+
});
|
398
418
|
|
399
419
|
spider.spawn(world, coordinate);
|
400
420
|
|
@@ -402,7 +422,8 @@ function spawnSpider(world: World, coordinate: Vector3Like) {
|
|
402
422
|
enemyHealth[spider.id!] = 2 * Math.round(randomScaleMultiplier);
|
403
423
|
}
|
404
424
|
|
405
|
-
function onTickPathfindPayload(
|
425
|
+
function onTickPathfindPayload(payload: EventPayloads[EntityEvent.TICK]) { // Movement logic for the payload
|
426
|
+
const entity = payload.entity;
|
406
427
|
const speed = started // Set the payload speed relative to the number of players in the payload sensor
|
407
428
|
? Math.max(Math.min(PAYLOAD_PER_PLAYER_SPEED * payloadPlayerEntityCount, PAYLOAD_MAX_SPEED), 0)
|
408
429
|
: 0;
|
@@ -472,7 +493,9 @@ function onTickPathfindEnemy(entity: Entity, targetPlayers: Set<PlayerEntity>, s
|
|
472
493
|
enemyPathfindAccumulators[entityId]++;
|
473
494
|
}
|
474
495
|
|
475
|
-
function onTickWithPlayerInput(
|
496
|
+
function onTickWithPlayerInput(payload: EventPayloads[BaseEntityControllerEvent.TICK_WITH_PLAYER_INPUT]) {
|
497
|
+
const { entity, input, cameraOrientation } = payload;
|
498
|
+
|
476
499
|
if (!entity.world) return;
|
477
500
|
|
478
501
|
if (input.ml) {
|
@@ -489,7 +512,7 @@ function onTickWithPlayerInput(this: PlayerEntityController, entity: PlayerEntit
|
|
489
512
|
// Normalize the direction vector to unit length
|
490
513
|
direction.normalize();
|
491
514
|
|
492
|
-
entity.startModelOneshotAnimations([ '
|
515
|
+
entity.startModelOneshotAnimations([ 'shoot_gun_right' ]);
|
493
516
|
|
494
517
|
// Adjust bullet origin roughly for camera offset so crosshair is accurate
|
495
518
|
const bulletOrigin = entity.position;
|
@@ -4,11 +4,13 @@ import {
|
|
4
4
|
ColliderShape,
|
5
5
|
BlockType,
|
6
6
|
Entity,
|
7
|
+
EntityEvent,
|
7
8
|
GameServer,
|
8
9
|
SceneUI,
|
9
10
|
startServer,
|
10
11
|
Player,
|
11
12
|
PlayerEntity,
|
13
|
+
PlayerEvent,
|
12
14
|
RigidBodyType,
|
13
15
|
SimpleEntityController,
|
14
16
|
World,
|
@@ -51,8 +53,8 @@ startServer(world => {
|
|
51
53
|
// world.simulation.enableDebugRendering(true);
|
52
54
|
|
53
55
|
world.loadMap(worldMap);
|
54
|
-
world.
|
55
|
-
world.
|
56
|
+
world.on(PlayerEvent.JOINED_WORLD, ({ player }) => onPlayerJoin(world, player));
|
57
|
+
world.on(PlayerEvent.LEFT_WORLD, ({ player }) => onPlayerLeave(world, player));
|
56
58
|
|
57
59
|
setupJoinNPC(world);
|
58
60
|
startBlockSpawner(world);
|
@@ -180,7 +182,7 @@ function startBlockSpawner(world: World) {
|
|
180
182
|
},
|
181
183
|
});
|
182
184
|
|
183
|
-
blockEntity.
|
185
|
+
blockEntity.on(EntityEvent.TICK, () => {
|
184
186
|
if (blockEntity.isSpawned && blockEntity.position.z > GAME_BLOCK_DESPAWN_Z) {
|
185
187
|
// Make it "fall" out of the world for a nice effect and prevent
|
186
188
|
// player collision platforming sensors from not getting their off
|
@@ -191,7 +193,7 @@ function startBlockSpawner(world: World) {
|
|
191
193
|
if (blockEntity.isSpawned && blockEntity.position.y < -5) {
|
192
194
|
blockEntity.despawn();
|
193
195
|
}
|
194
|
-
};
|
196
|
+
});
|
195
197
|
|
196
198
|
blockEntity.spawn(world, spawnPoint);
|
197
199
|
|
@@ -268,12 +270,12 @@ function onPlayerJoin(world: World, player: Player) {
|
|
268
270
|
modelScale: 0.5,
|
269
271
|
});
|
270
272
|
|
271
|
-
playerEntity.
|
273
|
+
playerEntity.on(EntityEvent.TICK, () => {
|
272
274
|
if (playerEntity.position.y < -3 || playerEntity.position.y > 10) {
|
273
275
|
// Assume the player has fallen off the map or shot over the wall
|
274
276
|
endGame(playerEntity);
|
275
277
|
}
|
276
|
-
};
|
278
|
+
});
|
277
279
|
|
278
280
|
// Spawn with a random X coordinate to spread players out a bit.
|
279
281
|
playerEntity.spawn(world, getRandomSpawnCoordinate());
|