Shooting
This commit is contained in:
parent
0d8f23cb1f
commit
bf11da6799
10 changed files with 343 additions and 163 deletions
314
ServerLog.t4jlog
314
ServerLog.t4jlog
|
|
@ -1,163 +1,163 @@
|
|||
192:07:2026 01:57:48.537 INFO:
|
||||
192:07:2026 04:32:52.087 INFO:
|
||||
Launching New Terrain4J Powered Software!
|
||||
192:07:2026 01:57:48.542 DEBUG: File [terrain4j.properties] read
|
||||
192:07:2026 01:57:48.546 DEBUG:
|
||||
192:07:2026 04:32:52.092 DEBUG: File [terrain4j.properties] read
|
||||
192:07:2026 04:32:52.095 DEBUG:
|
||||
|
||||
successfully loaded configuration:
|
||||
{compatibility_mode=false, ShaderRecompiling=true, cap_main_to_tickrate=true, LoadingScreenLocation=resources/EngineResources/Texture/Terrain4JTitleImage.png, z_near_plane=10000.0f, display_width=640, anti_alias_mode=0, main_thread_tickrate=120, Software_Icon=ProgramIcon.png, MaxAllowedVulkanCrashes=10, throttle_on_unfocus=false, vsync=false, cap_fast_to_tickrate=true, Software_Icon_Path=/WindowResources/Icon/, RequestedImages=3, throttle_accuracy=4000000, DualPassRendering=false, field_of_view=60.0f, ShadowMapSize=2048, PhysicalDeviceName=, fast_thread_tickrate=240, vkValidated=true, cap_master_to_tickrate=true, AlphaToCoverage=false, display_height=480, Renderer=1, Software_Title=Terrain4J Game Engine, z_far_plane=0.1f, frame_accuracy=0, master_tick_rate=240, Debug_Shaders=false, DefaultTexturePath=resources/EngineResources/Texture/NoTexture.png}
|
||||
|
||||
|
||||
192:07:2026 01:57:48.599 DEBUG: Loading Models From [resources/models/cube/Cube.json]
|
||||
192:07:2026 01:57:48.646 DEBUG: Loaded Model Data: [ModelData[ID=Cube, Meshes=[MeshData[ID=mesh_0, MaterialID=Cube-mat-1, OffsetVertex=0, VertexSize=1344, OffsetIndex=0, IndexSize=144]], VertexPath=resources/models/cube/Cube.vtx, IndexPath=resources/models/cube/Cube.idx]]
|
||||
192:07:2026 01:57:48.646 DEBUG: Loading Materials From [resources/models/cube/Cube_mat.json]
|
||||
192:07:2026 01:57:48.657 DEBUG: Loaded Material Data: [[MaterialData[ID=Cube-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Cube-mat-1, TexturePath=resources\models\cube\cubetexture.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Cube-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 01:57:48.657 DEBUG: Loading Models From [resources/models/VisualCollision/CollisionCube.json]
|
||||
192:07:2026 01:57:48.658 DEBUG: Loaded Model Data: [ModelData[ID=CollisionCube, Meshes=[MeshData[ID=mesh_0, MaterialID=CollisionCube-mat-1, OffsetVertex=0, VertexSize=1344, OffsetIndex=0, IndexSize=144]], VertexPath=resources/models/VisualCollision/CollisionCube.vtx, IndexPath=resources/models/VisualCollision/CollisionCube.idx]]
|
||||
192:07:2026 01:57:48.659 DEBUG: Loading Materials From [resources/models/VisualCollision/CollisionCube_mat.json]
|
||||
192:07:2026 01:57:48.660 DEBUG: Loaded Material Data: [[MaterialData[ID=CollisionCube-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=CollisionCube-mat-1, TexturePath=resources\models\VisualCollision\CollisionCubeTexture.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=CollisionCube-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 01:57:48.660 DEBUG: Loading Models From [resources/models/melona/melona.json]
|
||||
192:07:2026 01:57:48.661 DEBUG: Loaded Model Data: [ModelData[ID=melona, Meshes=[MeshData[ID=m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0, MaterialID=melona-mat-1, OffsetVertex=0, VertexSize=24192, OffsetIndex=0, IndexSize=2640], MeshData[ID=none_1, MaterialID=melona-mat-2, OffsetVertex=24192, VertexSize=672, OffsetIndex=2640, IndexSize=96]], VertexPath=resources/models/melona/melona.vtx, IndexPath=resources/models/melona/melona.idx]]
|
||||
192:07:2026 01:57:48.661 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json]
|
||||
192:07:2026 01:57:48.662 DEBUG: Loaded Material Data: [[MaterialData[ID=melona-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-1, TexturePath=resources\models\melona\Melonamodel.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 01:57:48.662 DEBUG: Loading Models From [resources/models/musket/musket.json]
|
||||
192:07:2026 01:57:48.663 DEBUG: Loaded Model Data: [ModelData[ID=musket, Meshes=[MeshData[ID=cube_0, MaterialID=musket-mat-1, OffsetVertex=0, VertexSize=25088, OffsetIndex=0, IndexSize=2880]], VertexPath=resources/models/musket/musket.vtx, IndexPath=resources/models/musket/musket.idx]]
|
||||
192:07:2026 01:57:48.663 DEBUG: Loading Materials From [resources/models/musket/musket_mat.json]
|
||||
192:07:2026 01:57:48.665 DEBUG: Loaded Material Data: [[MaterialData[ID=musket-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=musket-mat-1, TexturePath=resources\models\musket\Musket.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=musket-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 01:57:48.665 DEBUG: Loading Models From [resources/models/Revolver/Revolver.json]
|
||||
192:07:2026 01:57:48.666 DEBUG: Loaded Model Data: [ModelData[ID=Revolver, Meshes=[MeshData[ID=cube_0, MaterialID=Revolver-mat-1, OffsetVertex=0, VertexSize=21280, OffsetIndex=0, IndexSize=2304]], VertexPath=resources/models/Revolver/Revolver.vtx, IndexPath=resources/models/Revolver/Revolver.idx]]
|
||||
192:07:2026 01:57:48.666 DEBUG: Loading Materials From [resources/models/Revolver/Revolver_mat.json]
|
||||
192:07:2026 01:57:48.668 DEBUG: Loaded Material Data: [[MaterialData[ID=Revolver-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Revolver-mat-1, TexturePath=resources\models\Revolver\Revolver.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Revolver-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 01:57:48.668 DEBUG: Loading Models From [resources/models/Flintlock/Flintlock.json]
|
||||
192:07:2026 01:57:48.668 DEBUG: Loaded Model Data: [ModelData[ID=Flintlock, Meshes=[MeshData[ID=cube_0, MaterialID=Flintlock-mat-1, OffsetVertex=0, VertexSize=19936, OffsetIndex=0, IndexSize=2160]], VertexPath=resources/models/Flintlock/Flintlock.vtx, IndexPath=resources/models/Flintlock/Flintlock.idx]]
|
||||
192:07:2026 01:57:48.668 DEBUG: Loading Materials From [resources/models/Flintlock/Flintlock_mat.json]
|
||||
192:07:2026 01:57:48.669 DEBUG: Loaded Material Data: [[MaterialData[ID=Flintlock-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Flintlock-mat-1, TexturePath=resources\models\Flintlock\Flintlock.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Flintlock-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 01:57:48.673 INFO: Spawning static cube actor [MelonaSpawned0] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.694 INFO: Spawning static cube actor [MelonaSpawned1] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.694 INFO: Spawning static cube actor [MelonaSpawned2] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.694 INFO: Spawning static cube actor [MelonaSpawned3] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.694 INFO: Spawning static cube actor [MelonaSpawned4] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.695 INFO: Spawning static cube actor [MelonaSpawned5] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.695 INFO: Spawning static cube actor [MelonaSpawned6] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.695 INFO: Spawning static cube actor [MelonaSpawned7] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.695 INFO: Spawning static cube actor [MelonaSpawned8] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.695 INFO: Spawning static cube actor [MelonaSpawned9] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.695 INFO: Spawning static cube actor [MelonaSpawned10] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.695 INFO: Spawning static cube actor [MelonaSpawned11] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned12] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned13] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned14] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned15] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned16] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned17] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned18] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.696 INFO: Spawning static cube actor [MelonaSpawned19] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.697 INFO: Spawning static cube actor [MelonaSpawned20] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.697 INFO: Spawning static cube actor [MelonaSpawned21] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.697 INFO: Spawning static cube actor [MelonaSpawned22] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.697 INFO: Spawning static cube actor [MelonaSpawned23] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.697 INFO: Spawning static cube actor [MelonaSpawned24] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.697 INFO: Spawning static cube actor [MelonaSpawned25] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.697 INFO: Spawning static cube actor [MelonaSpawned26] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned27] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned28] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned29] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned30] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned31] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned32] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned33] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned34] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned35] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned36] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned37] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned38] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.698 INFO: Spawning static cube actor [MelonaSpawned39] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned40] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned41] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned42] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned43] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned44] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned45] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned46] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned47] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned48] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned49] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned50] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned51] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned52] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.699 INFO: Spawning static cube actor [MelonaSpawned53] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned54] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned55] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned56] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned57] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned58] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned59] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned60] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned61] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned62] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned63] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.700 INFO: Spawning static cube actor [MelonaSpawned64] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned65] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned66] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned67] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned68] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned69] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned70] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned71] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.701 INFO: Spawning static cube actor [MelonaSpawned72] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned73] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned74] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned75] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned76] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned77] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned78] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned79] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned80] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned81] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned82] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.702 INFO: Spawning static cube actor [MelonaSpawned83] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.703 INFO: Spawning static cube actor [MelonaSpawned84] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.703 INFO: Spawning static cube actor [MelonaSpawned85] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.703 INFO: Spawning static cube actor [MelonaSpawned86] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.703 INFO: Spawning static cube actor [MelonaSpawned87] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned88] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned89] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned90] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned91] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned92] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned93] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned94] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned95] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned96] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned97] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned98] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.704 INFO: Spawning static cube actor [MelonaSpawned99] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned100] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned101] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned102] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned103] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned104] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned105] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned106] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned107] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned108] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned109] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned110] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned111] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned112] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned113] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned114] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned115] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned116] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned117] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.705 INFO: Spawning static cube actor [MelonaSpawned118] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.706 INFO: Spawning static cube actor [MelonaSpawned119] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.706 INFO: Spawning static cube actor [MelonaSpawned120] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 01:57:48.709 DEBUG: Starting Main Thread
|
||||
192:07:2026 01:57:48.710 DEBUG: Starting Fast Thread
|
||||
192:07:2026 01:57:48.710 DEBUG: Starting Render Thread
|
||||
192:07:2026 01:57:48.924 INFO: Launched Terrain4J Engine
|
||||
192:07:2026 01:57:48.924 DEBUG: Primary Thread Started
|
||||
192:07:2026 01:57:48.924 INFO: Terrain4J dedicated server running without GLFW/Vulkan/OpenAL
|
||||
192:07:2026 01:57:48.924 DEBUG: Main Thread Started
|
||||
192:07:2026 01:57:48.924 DEBUG: Render Thread Started
|
||||
192:07:2026 01:57:48.924 DEBUG: Fast Thread Started
|
||||
192:07:2026 04:32:52.148 DEBUG: Loading Models From [resources/models/cube/Cube.json]
|
||||
192:07:2026 04:32:52.195 DEBUG: Loaded Model Data: [ModelData[ID=Cube, Meshes=[MeshData[ID=mesh_0, MaterialID=Cube-mat-1, OffsetVertex=0, VertexSize=1344, OffsetIndex=0, IndexSize=144]], VertexPath=resources/models/cube/Cube.vtx, IndexPath=resources/models/cube/Cube.idx]]
|
||||
192:07:2026 04:32:52.195 DEBUG: Loading Materials From [resources/models/cube/Cube_mat.json]
|
||||
192:07:2026 04:32:52.205 DEBUG: Loaded Material Data: [[MaterialData[ID=Cube-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Cube-mat-1, TexturePath=resources\models\cube\cubetexture.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Cube-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 04:32:52.205 DEBUG: Loading Models From [resources/models/VisualCollision/CollisionCube.json]
|
||||
192:07:2026 04:32:52.206 DEBUG: Loaded Model Data: [ModelData[ID=CollisionCube, Meshes=[MeshData[ID=mesh_0, MaterialID=CollisionCube-mat-1, OffsetVertex=0, VertexSize=1344, OffsetIndex=0, IndexSize=144]], VertexPath=resources/models/VisualCollision/CollisionCube.vtx, IndexPath=resources/models/VisualCollision/CollisionCube.idx]]
|
||||
192:07:2026 04:32:52.207 DEBUG: Loading Materials From [resources/models/VisualCollision/CollisionCube_mat.json]
|
||||
192:07:2026 04:32:52.208 DEBUG: Loaded Material Data: [[MaterialData[ID=CollisionCube-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=CollisionCube-mat-1, TexturePath=resources\models\VisualCollision\CollisionCubeTexture.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=CollisionCube-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 04:32:52.208 DEBUG: Loading Models From [resources/models/melona/melona.json]
|
||||
192:07:2026 04:32:52.209 DEBUG: Loaded Model Data: [ModelData[ID=melona, Meshes=[MeshData[ID=m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0, MaterialID=melona-mat-1, OffsetVertex=0, VertexSize=24192, OffsetIndex=0, IndexSize=2640], MeshData[ID=none_1, MaterialID=melona-mat-2, OffsetVertex=24192, VertexSize=672, OffsetIndex=2640, IndexSize=96]], VertexPath=resources/models/melona/melona.vtx, IndexPath=resources/models/melona/melona.idx]]
|
||||
192:07:2026 04:32:52.209 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json]
|
||||
192:07:2026 04:32:52.209 DEBUG: Loaded Material Data: [[MaterialData[ID=melona-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-1, TexturePath=resources\models\melona\Melonamodel.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=melona-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 04:32:52.210 DEBUG: Loading Models From [resources/models/musket/musket.json]
|
||||
192:07:2026 04:32:52.210 DEBUG: Loaded Model Data: [ModelData[ID=musket, Meshes=[MeshData[ID=cube_0, MaterialID=musket-mat-1, OffsetVertex=0, VertexSize=25088, OffsetIndex=0, IndexSize=2880]], VertexPath=resources/models/musket/musket.vtx, IndexPath=resources/models/musket/musket.idx]]
|
||||
192:07:2026 04:32:52.210 DEBUG: Loading Materials From [resources/models/musket/musket_mat.json]
|
||||
192:07:2026 04:32:52.211 DEBUG: Loaded Material Data: [[MaterialData[ID=musket-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=musket-mat-1, TexturePath=resources\models\musket\Musket.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=musket-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 04:32:52.211 DEBUG: Loading Models From [resources/models/Revolver/Revolver.json]
|
||||
192:07:2026 04:32:52.211 DEBUG: Loaded Model Data: [ModelData[ID=Revolver, Meshes=[MeshData[ID=cube_0, MaterialID=Revolver-mat-1, OffsetVertex=0, VertexSize=21280, OffsetIndex=0, IndexSize=2304]], VertexPath=resources/models/Revolver/Revolver.vtx, IndexPath=resources/models/Revolver/Revolver.idx]]
|
||||
192:07:2026 04:32:52.211 DEBUG: Loading Materials From [resources/models/Revolver/Revolver_mat.json]
|
||||
192:07:2026 04:32:52.212 DEBUG: Loaded Material Data: [[MaterialData[ID=Revolver-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Revolver-mat-1, TexturePath=resources\models\Revolver\Revolver.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Revolver-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 04:32:52.212 DEBUG: Loading Models From [resources/models/Flintlock/Flintlock.json]
|
||||
192:07:2026 04:32:52.213 DEBUG: Loaded Model Data: [ModelData[ID=Flintlock, Meshes=[MeshData[ID=cube_0, MaterialID=Flintlock-mat-1, OffsetVertex=0, VertexSize=19936, OffsetIndex=0, IndexSize=2160]], VertexPath=resources/models/Flintlock/Flintlock.vtx, IndexPath=resources/models/Flintlock/Flintlock.idx]]
|
||||
192:07:2026 04:32:52.213 DEBUG: Loading Materials From [resources/models/Flintlock/Flintlock_mat.json]
|
||||
192:07:2026 04:32:52.214 DEBUG: Loaded Material Data: [[MaterialData[ID=Flintlock-mat-0, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Flintlock-mat-1, TexturePath=resources\models\Flintlock\Flintlock.png, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0], MaterialData[ID=Flintlock-mat-2, TexturePath=, NormalTexturePath=, MetalRoughnessMap=, DiffuseColour=( 6.000E-1 6.000E-1 6.000E-1 1.000E+0), Roughness=0.0, Metallic=0.0]]]
|
||||
192:07:2026 04:32:52.217 INFO: Spawning static cube actor [MelonaSpawned0] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned1] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned2] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned3] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned4] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned5] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned6] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned7] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.237 INFO: Spawning static cube actor [MelonaSpawned8] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.238 INFO: Spawning static cube actor [MelonaSpawned9] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.238 INFO: Spawning static cube actor [MelonaSpawned10] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.238 INFO: Spawning static cube actor [MelonaSpawned11] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.238 INFO: Spawning static cube actor [MelonaSpawned12] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned13] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned14] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned15] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned16] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned17] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned18] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned19] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.239 INFO: Spawning static cube actor [MelonaSpawned20] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned21] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned22] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned23] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned24] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned25] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned26] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned27] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned28] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.240 INFO: Spawning static cube actor [MelonaSpawned29] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned30] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned31] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned32] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned33] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned34] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned35] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned36] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned37] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.241 INFO: Spawning static cube actor [MelonaSpawned38] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned39] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned40] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned41] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned42] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned43] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned44] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned45] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned46] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.242 INFO: Spawning static cube actor [MelonaSpawned47] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned48] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned49] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned50] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned51] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned52] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned53] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned54] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned55] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned56] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned57] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.243 INFO: Spawning static cube actor [MelonaSpawned58] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned59] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned60] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned61] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned62] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned63] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned64] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned65] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned66] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned67] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned68] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned69] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.244 INFO: Spawning static cube actor [MelonaSpawned70] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned71] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned72] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned73] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned74] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned75] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned76] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned77] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned78] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned79] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned80] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned81] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned82] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.245 INFO: Spawning static cube actor [MelonaSpawned83] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned84] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned85] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned86] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned87] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned88] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned89] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned90] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned91] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned92] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.246 INFO: Spawning static cube actor [MelonaSpawned93] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned94] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned95] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned96] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned97] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned98] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned99] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned100] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned101] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned102] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned103] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned104] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned105] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.247 INFO: Spawning static cube actor [MelonaSpawned106] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned107] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned108] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned109] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned110] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned111] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned112] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned113] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned114] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned115] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned116] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned117] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned118] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned119] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.248 INFO: Spawning static cube actor [MelonaSpawned120] with model ID [Cube], with cached ID of [Cube]
|
||||
192:07:2026 04:32:52.252 DEBUG: Starting Main Thread
|
||||
192:07:2026 04:32:52.252 DEBUG: Starting Fast Thread
|
||||
192:07:2026 04:32:52.253 DEBUG: Starting Render Thread
|
||||
192:07:2026 04:32:52.391 INFO: Launched Terrain4J Engine
|
||||
192:07:2026 04:32:52.391 DEBUG: Primary Thread Started
|
||||
192:07:2026 04:32:52.391 INFO: Terrain4J dedicated server running without GLFW/Vulkan/OpenAL
|
||||
192:07:2026 04:32:52.391 DEBUG: Main Thread Started
|
||||
192:07:2026 04:32:52.391 DEBUG: Render Thread Started
|
||||
192:07:2026 04:32:52.391 DEBUG: Fast Thread Started
|
||||
|
|
|
|||
BIN
resources/EngineResources/audio/sounds/BulletHit1.ogg
Normal file
BIN
resources/EngineResources/audio/sounds/BulletHit1.ogg
Normal file
Binary file not shown.
BIN
resources/EngineResources/audio/sounds/BulletHit2.ogg
Normal file
BIN
resources/EngineResources/audio/sounds/BulletHit2.ogg
Normal file
Binary file not shown.
|
|
@ -150,7 +150,7 @@ public class WorldPhysicsManager {
|
|||
}
|
||||
|
||||
|
||||
private static Actor GetActorForRigidBody(RigidBody body) {
|
||||
public static Actor GetActorForRigidBody(RigidBody body) {
|
||||
for (Actor actor : Actor.Actors.values()) {
|
||||
if (!(actor.GetPhysicsController() instanceof RigidPhysicsController rigidPhysicsController)) {
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -106,9 +106,9 @@ public class GameCore implements GameLogic {
|
|||
List<MaterialData> RevolverMat = ModelLoader.LoadMaterials("resources/models/Revolver/Revolver_mat.json");
|
||||
FlintlockData = ModelLoader.LoadModel("resources/models/Flintlock/Flintlock.json");
|
||||
List<MaterialData> FlintlockMat = ModelLoader.LoadMaterials("resources/models/Flintlock/Flintlock_mat.json");
|
||||
Item MusketItem = new Item(MusketData.ID(), 1.0f, 1, 10.0f);
|
||||
Item RevolverItem = new Item(RevolverData.ID(), 4.0f, 6, 10.0f);
|
||||
Item FlintLock = new Item(FlintlockData.ID(), 1.0f, 2, 10.0f);
|
||||
Item MusketItem = new Item(MusketData.ID(), 1.0f, 1, 100.0f);
|
||||
Item RevolverItem = new Item(RevolverData.ID(), 4.0f, 6, 100.0f);
|
||||
Item FlintLock = new Item(FlintlockData.ID(), 1.0f, 2, 100.0f);
|
||||
scene.MusketItem = MusketItem;
|
||||
scene.RevolverItem = RevolverItem;
|
||||
scene.FlintLockItem = FlintLock;
|
||||
|
|
|
|||
|
|
@ -314,8 +314,8 @@ public class Scene implements IScene {
|
|||
float FireRate = 1000f/CurrentItem.FireRate();
|
||||
if (NewTime - LastGunFire > 1_000_000f * FireRate ){
|
||||
LastGunFire = NewTime;
|
||||
ClientConnectionThread.FireWeapon(playerActor.ID, CurrentItem.Damage());
|
||||
MusketFireSFX.Play();
|
||||
ClientConnectionThread.FireWeapon(playerActor.PositionOffset, CurrentItem.Damage(), 100, camera, playerActor.ID);
|
||||
// MusketFireSFX.Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,62 @@
|
|||
package net.halbear.Terrain4J.EngineCore.Main.Util.Maths;
|
||||
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.Physics.RigidBody.RigidBody;
|
||||
import org.joml.Quaternionf;
|
||||
import org.joml.Vector2f;
|
||||
import org.joml.Vector3f;
|
||||
import org.joml.primitives.AABBf;
|
||||
import org.joml.primitives.Intersectionf;
|
||||
|
||||
public class T4Raycast {
|
||||
public static class Hit {
|
||||
public final RigidBody Body;
|
||||
public final Vector3f Point;
|
||||
public final float Distance;
|
||||
public Hit(RigidBody body, Vector3f point, float distance){
|
||||
Body = body;
|
||||
Point = point;
|
||||
Distance = distance;
|
||||
}
|
||||
}
|
||||
|
||||
public static Hit Nearest(Vector3f origin, Vector3f direction, float maxRange, String excludeRigidBodyID){
|
||||
Vector3f dir = new Vector3f(direction).normalize();
|
||||
Vector3f scaledDir = new Vector3f(dir).mul(maxRange);
|
||||
|
||||
RigidBody bestBody = null;
|
||||
float bestT = 1f;
|
||||
|
||||
for (String id : RigidBody.RigidBodies) {
|
||||
if (excludeRigidBodyID != null && id.equals(excludeRigidBodyID)) continue;
|
||||
RigidBody body = RigidBody.RigidBodyRegister.get(id);
|
||||
if (body == null) continue;
|
||||
|
||||
AABBf worldBounds = body.shape.GetWorldAABB();
|
||||
Vector2f coarse = new Vector2f();
|
||||
boolean coarseHit = Intersectionf.intersectRayAab(origin, scaledDir,
|
||||
new Vector3f(worldBounds.minX, worldBounds.minY, worldBounds.minZ),
|
||||
new Vector3f(worldBounds.maxX, worldBounds.maxY, worldBounds.maxZ),
|
||||
coarse);
|
||||
if (!coarseHit || coarse.x > bestT) continue;
|
||||
|
||||
Vector3f localOrigin = new Vector3f(origin).sub(body.Position);
|
||||
Vector3f localDir = new Vector3f(scaledDir);
|
||||
Quaternionf inverseOrientation = body.shape.Orientation.conjugate(new Quaternionf());
|
||||
inverseOrientation.transform(localOrigin);
|
||||
inverseOrientation.transform(localDir);
|
||||
|
||||
Vector2f localT = new Vector2f();
|
||||
boolean hit = Intersectionf.intersectRayAab(localOrigin, localDir, body.shape.BottomLeftBack, body.shape.TopRightForward, localT);
|
||||
if (!hit || localT.x < 0f || localT.x > 1f) continue;
|
||||
|
||||
if (localT.x < bestT) {
|
||||
bestT = localT.x;
|
||||
bestBody = body;
|
||||
}
|
||||
}
|
||||
|
||||
if (bestBody == null) return null;
|
||||
Vector3f hitPoint = new Vector3f(origin).add(new Vector3f(scaledDir).mul(bestT));
|
||||
return new Hit(bestBody, hitPoint, bestT * maxRange);
|
||||
}
|
||||
}
|
||||
|
|
@ -25,6 +25,7 @@ public class Packet {
|
|||
public static final byte PACKET_FIRE_WEAPON = 12;
|
||||
public static final byte PACKET_SEND_PLAYER_COUNT = 13;
|
||||
public static final byte PACKET_UPDATE_PLAYER_DISPLAY_NAME = 14;
|
||||
public static final byte PACKET_FIRE_RESULT = 15;
|
||||
|
||||
public byte PacketTypeByte;
|
||||
public byte TargetType; //0 Actor
|
||||
|
|
@ -106,6 +107,59 @@ public class Packet {
|
|||
return Data;
|
||||
}
|
||||
|
||||
public static byte[] EncodeFireRequest(Vector3f origin, Vector3f direction, float damage, float maxRange){
|
||||
return EncodeFloats(new float[]{origin.x,origin.y,origin.z,direction.x,direction.y,direction.z,damage,maxRange});
|
||||
}
|
||||
|
||||
public static DecodedFireRequest DecodeAsFireRequest(byte[] DataIn){
|
||||
ByteBuffer buffer = ByteBuffer.wrap(DataIn);
|
||||
DecodedFireRequest request = new DecodedFireRequest();
|
||||
request.Origin = new Vector3f(buffer.getFloat(), buffer.getFloat(), buffer.getFloat());
|
||||
request.Direction = new Vector3f(buffer.getFloat(), buffer.getFloat(), buffer.getFloat());
|
||||
request.Damage = buffer.getFloat();
|
||||
request.MaxRange = buffer.getFloat();
|
||||
return request;
|
||||
}
|
||||
|
||||
public static byte[] EncodeFireResult(Vector3f origin, Vector3f hitPoint, boolean hit){
|
||||
return EncodeFloats(new float[]{origin.x,origin.y,origin.z,hitPoint.x,hitPoint.y,hitPoint.z, hit ? 1f : 0f});
|
||||
}
|
||||
|
||||
public static DecodedFireResult DecodeAsFireResult(byte[] DataIn){
|
||||
ByteBuffer buffer = ByteBuffer.wrap(DataIn);
|
||||
DecodedFireResult result = new DecodedFireResult();
|
||||
result.Origin = new Vector3f(buffer.getFloat(), buffer.getFloat(), buffer.getFloat());
|
||||
result.HitPoint = new Vector3f(buffer.getFloat(), buffer.getFloat(), buffer.getFloat());
|
||||
result.Hit = buffer.getFloat() > 0.5f;
|
||||
return result;
|
||||
}
|
||||
|
||||
public static class DecodedFireRequest {
|
||||
public Vector3f Origin;
|
||||
public Vector3f Direction;
|
||||
public float Damage;
|
||||
public float MaxRange;
|
||||
}
|
||||
|
||||
public static class DecodedFireResult {
|
||||
public Vector3f Origin;
|
||||
public Vector3f HitPoint;
|
||||
public boolean Hit;
|
||||
}
|
||||
|
||||
private static byte[] EncodeFloats(float[] floats){
|
||||
byte[] Data = new byte[floats.length * VulkanUtils.FLOAT_SIZE];
|
||||
int Offset = 0;
|
||||
for(float value : floats){
|
||||
byte[] bytes = ByteBuffer.allocate(4).putFloat(value).array();
|
||||
for(byte b : bytes){
|
||||
Data[Offset] = b;
|
||||
Offset++;
|
||||
}
|
||||
}
|
||||
return Data;
|
||||
}
|
||||
|
||||
public static Quaternionf DecodeAsQuaternation(byte[] DataIn){
|
||||
Quaternionf newVector = new Quaternionf();
|
||||
ByteBuffer buffer = ByteBuffer.wrap(DataIn);
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
package net.halbear.Terrain4J.EngineCore.Threads;
|
||||
|
||||
import net.halbear.Executable.Server;
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig;
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance;
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.Physics.RigidBody.ConvexMesh;
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.Physics.RigidBody.RigidBody;
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.Physics.RigidBody.RigidPhysicsController;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.AudioInstance;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.GameCore;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.PrimaryRuntime;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.*;
|
||||
|
|
@ -254,6 +256,19 @@ public class ClientConnectionThread implements Runnable{
|
|||
System.out.println("decoding UUID packet");
|
||||
clientUUID = Packet.DecodeAsString(packet.Data);
|
||||
break;
|
||||
case Packet.PACKET_FIRE_RESULT:
|
||||
System.out.println("Fire Packet Recieved" );
|
||||
Packet.DecodedFireResult fireResult = Packet.DecodeAsFireResult(packet.Data);
|
||||
AudioInstance FireInstance = new AudioInstance("resources/EngineResources/audio/sounds/MusketFire.ogg","GunFireInstance" + packet.TargetID, engineInstance.audioManager(),fireResult.Origin.x, fireResult.Origin.y, fireResult.Origin.z, false);
|
||||
FireInstance.SetAudioType(AudioInstance.AudioType.WEAPONS);
|
||||
FireInstance.SetVolume(EngineConfig.getInstance().WeaponVolume);
|
||||
FireInstance.Play();
|
||||
double Rnd = Math.random();
|
||||
AudioInstance HitInstance = new AudioInstance(Rnd < 0.5 ? "resources/EngineResources/audio/sounds/BulletHit1.ogg" : "resources/EngineResources/audio/sounds/BulletHit2.ogg","GunHitInstance" + packet.TargetID, engineInstance.audioManager(),fireResult.HitPoint.x, fireResult.HitPoint.y, fireResult.HitPoint.z, false);
|
||||
HitInstance.SetAudioType(AudioInstance.AudioType.WEAPONS);
|
||||
HitInstance.SetVolume(EngineConfig.getInstance().WeaponVolume * 10f);
|
||||
HitInstance.Play();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -354,6 +369,20 @@ public class ClientConnectionThread implements Runnable{
|
|||
Outgoing.write(DataToSend);
|
||||
}
|
||||
|
||||
public static void FireWeapon(Vector3f barrelLocalOffset, float damage, float maxRange, Camera camera, String ShooterID){
|
||||
Vector3f camRotation = camera.GetRotation();
|
||||
Quaternionf aimRotation = new Quaternionf().rotateYXZ(-camRotation.y, -camRotation.x, camRotation.z);
|
||||
|
||||
Vector3f direction = aimRotation.transform(new Vector3f(0, 0, -1));
|
||||
Vector3f origin = new Vector3f(camera.GetPosition());
|
||||
/// .add(aimRotation.transform(new Vector3f(barrelLocalOffset), new Vector3f()));
|
||||
System.out.println("Fire Packet being sent" );
|
||||
Packet packet = new Packet(Packet.PACKET_FIRE_WEAPON);
|
||||
packet.SetID(ShooterID);
|
||||
packet.SetData(Packet.EncodeFireRequest(origin, direction, damage, maxRange));
|
||||
ClientConnectionThread.OutGoingPacketQueue.add(packet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import net.halbear.Terrain4J.EngineCore.Main.PrimaryRuntime;
|
|||
import net.halbear.Terrain4J.EngineCore.Main.Scene.Actor;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.IScene;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.PlayerActor;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Util.Maths.T4Raycast;
|
||||
import net.halbear.Terrain4J.EngineCore.ServerNetworking.Packet;
|
||||
import org.joml.Quaternionf;
|
||||
import org.joml.Vector3f;
|
||||
|
|
@ -22,6 +23,7 @@ import java.util.*;
|
|||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
|
||||
import static net.halbear.Executable.Server.ConnectedClients;
|
||||
import static net.halbear.Terrain4J.EngineCore.Logic.Physics.WorldPhysicsManager.GetActorForRigidBody;
|
||||
|
||||
public class ServerConnectionThread implements Runnable{
|
||||
private String OwnedActorID;
|
||||
|
|
@ -217,9 +219,42 @@ public class ServerConnectionThread implements Runnable{
|
|||
return;
|
||||
}
|
||||
break;
|
||||
case Packet.PACKET_FIRE_WEAPON:
|
||||
HandleFireWeapon(packet);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private static void HandleFireWeapon(Packet packet){
|
||||
Packet.DecodedFireRequest request = Packet.DecodeAsFireRequest(packet.Data);
|
||||
|
||||
Actor shooter = Actor.Actors.get(packet.TargetID);
|
||||
String excludeBodyID = null;
|
||||
if (shooter != null && shooter.GetPhysicsController() instanceof RigidPhysicsController rpc) {
|
||||
excludeBodyID = rpc.RigidBodyID;
|
||||
}
|
||||
|
||||
T4Raycast.Hit hit = T4Raycast.Nearest(request.Origin, request.Direction, request.MaxRange, excludeBodyID);
|
||||
boolean didHit = hit != null;
|
||||
String hitActorID = "";
|
||||
Vector3f resultPoint;
|
||||
|
||||
if (didHit) {
|
||||
resultPoint = hit.Point;
|
||||
Vector3f impulse = new Vector3f(request.Direction).normalize().mul(request.Damage);
|
||||
hit.Body.ApplyImpulse(impulse, hit.Point);
|
||||
Actor hitActor = GetActorForRigidBody(hit.Body);
|
||||
if (hitActor != null) hitActorID = hitActor.GetID();
|
||||
} else {
|
||||
resultPoint = new Vector3f(request.Direction).normalize().mul(request.MaxRange).add(request.Origin);
|
||||
}
|
||||
|
||||
Packet result = new Packet(Packet.PACKET_FIRE_RESULT);
|
||||
result.SetID(hitActorID);
|
||||
result.SetData(Packet.EncodeFireResult(request.Origin, resultPoint, didHit));
|
||||
Server.OutGoingPacketQueue.add(result);
|
||||
}
|
||||
|
||||
public boolean OwnsActor(String actorID){
|
||||
return OwnedActorID != null && OwnedActorID.equals(actorID);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue