From 59c54862991ea43141840e9fabcf78655670ba45 Mon Sep 17 00:00:00 2001 From: Halbear Date: Fri, 10 Jul 2026 01:01:13 +0100 Subject: [PATCH] Fixed some volume related issues, separated options into its own menu with tabs, added a visualised collision actor (dual pass graphics required), added a player model, started shooting mechanics --- ClientLog.t4jlog | 1905 ++++++++--------- ServerLog.t4jlog | 310 +-- resources/models/Cactus/Cactus.bbmodel | 1 + resources/models/Cactus/Cactus.png | Bin 0 -> 39228 bytes resources/models/cube/Cube.bbmodel | 2 +- resources/models/cube/Cube.obj | 16 +- resources/models/cube/Cube.vtx | Bin 1344 -> 1344 bytes .../java/net/halbear/Executable/Init.java | 4 +- .../Terrain4J/EngineCore/Display/Window.java | 22 + .../EngineCore/Logic/EngineConfig.java | 5 + .../EngineCore/Main/AudioInstance.java | 41 + .../Terrain4J/EngineCore/Main/GameCore.java | 49 +- .../EngineCore/Main/Scene/Actor.java | 9 +- .../EngineCore/Main/Scene/Camera.java | 2 +- .../Main/Scene/GUIs/SettingsMenu.java | 237 ++ .../EngineCore/Main/Scene/GUIs/StartMenu.java | 38 +- .../Terrain4J/EngineCore/Main/Scene/Item.java | 2 +- .../EngineCore/Main/Scene/PlayerActor.java | 5 +- .../EngineCore/Main/Scene/Scene.java | 65 +- .../Main/Scene/VisualisedCollisionActor.java | 2 +- .../EngineCore/ServerNetworking/Packet.java | 2 + .../Threads/ClientConnectionThread.java | 29 + .../Threads/ServerConnectionThread.java | 143 +- .../DisplayToScreen/ForwardSceneRender.java | 5 + 24 files changed, 1538 insertions(+), 1356 deletions(-) create mode 100644 resources/models/Cactus/Cactus.bbmodel create mode 100644 resources/models/Cactus/Cactus.png create mode 100644 src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/SettingsMenu.java diff --git a/ClientLog.t4jlog b/ClientLog.t4jlog index 9e16094..411da60 100644 --- a/ClientLog.t4jlog +++ b/ClientLog.t4jlog @@ -1,977 +1,944 @@ -190:07:2026 16:47:26.287 INFO: +190:07:2026 18:48:02.159 INFO: Launching New Terrain4J Powered Software! -190:07:2026 16:47:26.294 DEBUG: File [terrain4j.properties] read -190:07:2026 16:47:26.301 DEBUG: +190:07:2026 18:48:02.162 DEBUG: File [terrain4j.properties] read +190:07:2026 18:48:02.166 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} -190:07:2026 16:47:26.873 DEBUG: Loading Icon From Location [src\main\resources\WindowResources\Icon\ProgramIcon.png] -190:07:2026 16:47:26.895 DEBUG: Freeing icon Buffer -190:07:2026 16:47:27.097 DEBUG: Loading Models From [resources/models/cube/Cube.json] -190:07:2026 16:47:27.164 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]] -190:07:2026 16:47:27.164 DEBUG: Loading Materials From [resources/models/cube/Cube_mat.json] -190:07:2026 16:47:27.200 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]]] -190:07:2026 16:47:27.200 DEBUG: Loading Models From [resources/models/VisualCollision/CollisionCube.json] -190:07:2026 16:47:27.201 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]] -190:07:2026 16:47:27.203 DEBUG: Loading Materials From [resources/models/VisualCollision/CollisionCube_mat.json] -190:07:2026 16:47:27.205 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]]] -190:07:2026 16:47:27.205 DEBUG: Loading Models From [resources/models/melona/melona.json] -190:07:2026 16:47:27.207 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]] -190:07:2026 16:47:27.207 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json] -190:07:2026 16:47:27.208 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]]] -190:07:2026 16:47:27.209 DEBUG: Loading Models From [resources/models/musket/musket.json] -190:07:2026 16:47:27.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]] -190:07:2026 16:47:27.210 DEBUG: Loading Materials From [resources/models/musket/musket_mat.json] -190:07:2026 16:47:27.212 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]]] -190:07:2026 16:47:27.212 DEBUG: Loading Models From [resources/models/Revolver/Revolver.json] -190:07:2026 16:47:27.213 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]] -190:07:2026 16:47:27.213 DEBUG: Loading Materials From [resources/models/Revolver/Revolver_mat.json] -190:07:2026 16:47:27.214 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]]] -190:07:2026 16:47:27.890 DEBUG: Starting Main Thread -190:07:2026 16:47:27.891 DEBUG: Starting Fast Thread -190:07:2026 16:47:27.894 DEBUG: Initialising Vulkan Instance -190:07:2026 16:47:27.910 DEBUG: Validation Layer Count:5 -190:07:2026 16:47:27.912 TRACE: Supported Layer [VK_LAYER_AMD_switchable_graphics] -190:07:2026 16:47:27.912 TRACE: Supported Layer [VK_LAYER_NV_optimus] -190:07:2026 16:47:27.912 TRACE: Supported Layer [VK_LAYER_NV_present] -190:07:2026 16:47:27.912 TRACE: Supported Layer [VK_LAYER_VALVE_steam_overlay] -190:07:2026 16:47:27.912 TRACE: Supported Layer [VK_LAYER_VALVE_steam_fossilize] -190:07:2026 16:47:27.912 WARN: No Layers Found to Validate, continuing without validation -190:07:2026 16:47:27.912 DEBUG: Validation:false -190:07:2026 16:47:27.918 DEBUG: Instance Extension Count:[20] -190:07:2026 16:47:27.921 TRACE: Supported Instance Extension [VK_KHR_device_group_creation] -190:07:2026 16:47:27.921 TRACE: Supported Instance Extension [VK_KHR_external_fence_capabilities] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_external_memory_capabilities] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_external_semaphore_capabilities] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_get_physical_device_properties2] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_get_surface_capabilities2] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_surface] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_win32_surface] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_EXT_debug_report] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_EXT_debug_utils] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_EXT_swapchain_colorspace] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_display] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_get_display_properties2] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_surface_maintenance1] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_surface_protected_capabilities] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_EXT_direct_mode_display] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_EXT_surface_maintenance1] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_NV_external_memory_capabilities] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_KHR_portability_enumeration] -190:07:2026 16:47:27.922 TRACE: Supported Instance Extension [VK_LUNARG_direct_driver_loading] -190:07:2026 16:47:28.008 DEBUG: selecting physical devices -190:07:2026 16:47:28.011 DEBUG: Detected Physical Device Count: 2 -190:07:2026 16:47:28.034 DEBUG: freeing physical device [AMD Radeon(TM) Graphics] -190:07:2026 16:47:28.034 DEBUG: Selected Graphics Driver: [NVIDIA GeForce RTX 3050 OEM] -190:07:2026 16:47:28.035 DEBUG: Creating Device Interface Layer -190:07:2026 16:47:28.035 TRACE: Device supports [272] number of extensions -190:07:2026 16:47:28.035 TRACE: [VK_KHR_16bit_storage] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_8bit_storage] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_acceleration_structure] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_bind_memory2] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_buffer_device_address] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_calibrated_timestamps] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_compute_shader_derivatives] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_cooperative_matrix] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_copy_commands2] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_copy_memory_indirect] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_create_renderpass2] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_dedicated_allocation] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_deferred_host_operations] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_depth_clamp_zero_one] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_depth_stencil_resolve] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_descriptor_update_template] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_device_group] is a supported extension -190:07:2026 16:47:28.035 TRACE: [VK_KHR_draw_indirect_count] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_driver_properties] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_dynamic_rendering] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_dynamic_rendering_local_read] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_external_fence] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_external_fence_win32] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_external_memory] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_external_memory_win32] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_external_semaphore] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_external_semaphore_win32] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_format_feature_flags2] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_fragment_shader_barycentric] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_fragment_shading_rate] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_get_memory_requirements2] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_global_priority] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_image_format_list] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_imageless_framebuffer] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_index_type_uint8] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_line_rasterization] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_load_store_op_none] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance1] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance10] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance2] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance3] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance4] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance5] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance6] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance7] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance8] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_maintenance9] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_map_memory2] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_multiview] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_pipeline_binary] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_pipeline_executable_properties] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_pipeline_library] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_present_id] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_present_id2] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_present_mode_fifo_latest_ready] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_present_wait] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_present_wait2] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_push_descriptor] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_ray_query] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_ray_tracing_maintenance1] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_ray_tracing_pipeline] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_ray_tracing_position_fetch] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_relaxed_block_layout] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_robustness2] is a supported extension -190:07:2026 16:47:28.036 TRACE: [VK_KHR_sampler_mirror_clamp_to_edge] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_sampler_ycbcr_conversion] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_separate_depth_stencil_layouts] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_atomic_int64] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_bfloat16] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_clock] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_draw_parameters] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_expect_assume] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_float16_int8] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_float_controls] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_float_controls2] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_fma] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_integer_dot_product] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_maximal_reconvergence] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_non_semantic_info] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_quad_control] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_relaxed_extended_instruction] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_subgroup_extended_types] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_subgroup_rotate] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_subgroup_uniform_control_flow] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_terminate_invocation] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_shader_untyped_pointers] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_spirv_1_4] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_storage_buffer_storage_class] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_swapchain] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_swapchain_maintenance1] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_swapchain_mutable_format] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_synchronization2] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_timeline_semaphore] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_unified_image_layouts] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_uniform_buffer_standard_layout] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_variable_pointers] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_vertex_attribute_divisor] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_decode_av1] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_decode_h264] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_decode_h265] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_decode_queue] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_decode_vp9] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_encode_h264] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_encode_h265] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_encode_intra_refresh] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_encode_quantization_map] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_encode_queue] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_maintenance1] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_maintenance2] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_video_queue] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_vulkan_memory_model] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_win32_keyed_mutex] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_workgroup_memory_explicit_layout] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_KHR_zero_initialize_workgroup_memory] is a supported extension -190:07:2026 16:47:28.037 TRACE: [VK_EXT_4444_formats] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_attachment_feedback_loop_dynamic_state] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_attachment_feedback_loop_layout] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_blend_operation_advanced] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_border_color_swizzle] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_buffer_device_address] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_calibrated_timestamps] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_color_write_enable] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_conditional_rendering] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_conservative_rasterization] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_custom_border_color] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_custom_resolve] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_depth_bias_control] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_depth_clamp_control] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_depth_clamp_zero_one] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_depth_clip_control] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_depth_clip_enable] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_depth_range_unrestricted] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_descriptor_buffer] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_descriptor_heap] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_descriptor_indexing] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_device_address_binding_report] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_device_fault] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_device_generated_commands] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_discard_rectangles] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_dynamic_rendering_unused_attachments] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_extended_dynamic_state] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_extended_dynamic_state2] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_extended_dynamic_state3] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_external_memory_host] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_fragment_shader_interlock] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_full_screen_exclusive] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_global_priority] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_global_priority_query] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_graphics_pipeline_library] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_hdr_metadata] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_host_image_copy] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_host_query_reset] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_image_2d_view_of_3d] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_image_robustness] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_image_sliced_view_of_3d] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_image_view_min_lod] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_index_type_uint8] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_inline_uniform_block] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_legacy_vertex_attributes] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_line_rasterization] is a supported extension -190:07:2026 16:47:28.038 TRACE: [VK_EXT_load_store_op_none] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_memory_budget] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_memory_decompression] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_memory_priority] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_mesh_shader] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_multi_draw] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_mutable_descriptor_type] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_nested_command_buffer] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_non_seamless_cube_map] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_opacity_micromap] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_pageable_device_local_memory] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_pci_bus_info] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_pipeline_creation_cache_control] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_pipeline_creation_feedback] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_pipeline_library_group_handles] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_pipeline_robustness] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_post_depth_coverage] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_present_mode_fifo_latest_ready] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_present_timing] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_primitive_topology_list_restart] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_primitives_generated_query] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_private_data] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_provoking_vertex] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_queue_family_foreign] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_ray_tracing_invocation_reorder] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_robustness2] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_sample_locations] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_sampler_filter_minmax] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_scalar_block_layout] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_separate_stencil_usage] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_64bit_indexing] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_atomic_float] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_demote_to_helper_invocation] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_image_atomic_int64] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_module_identifier] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_object] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_replicated_composites] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_subgroup_ballot] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_subgroup_vote] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_uniform_buffer_unsized_array] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_shader_viewport_index_layer] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_subgroup_size_control] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_swapchain_maintenance1] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_texel_buffer_alignment] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_tooling_info] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_transform_feedback] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_vertex_attribute_divisor] is a supported extension -190:07:2026 16:47:28.039 TRACE: [VK_EXT_vertex_attribute_robustness] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_EXT_vertex_input_dynamic_state] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_EXT_ycbcr_2plane_444_formats] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_EXT_ycbcr_image_arrays] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_EXT_zero_initialize_device_memory] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_acquire_winrt_display] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_clip_space_w_scaling] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_cluster_acceleration_structure] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_compute_occupancy_priority] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_compute_shader_derivatives] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_cooperative_matrix] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_cooperative_matrix2] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_cooperative_vector] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_copy_memory_indirect] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_corner_sampled_image] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_coverage_reduction_mode] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_cuda_kernel_launch] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_dedicated_allocation] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_dedicated_allocation_image_aliasing] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_descriptor_pool_overallocation] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_device_diagnostic_checkpoints] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_device_diagnostics_config] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_device_generated_commands] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_device_generated_commands_compute] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_disk_cache_utils] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_external_compute_queue] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_external_memory] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_external_memory_win32] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_fill_rectangle] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_fragment_coverage_to_color] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_fragment_shader_barycentric] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_fragment_shading_rate_enums] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_framebuffer_mixed_samples] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_geometry_shader_passthrough] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_inherited_viewport_scissor] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_internal_nvpresent] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_linear_color_attachment] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_low_latency] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_low_latency2] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_memory_decompression] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_mesh_shader] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_optical_flow] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_partitioned_acceleration_structure] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_present_metering] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_raw_access_chains] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_ray_tracing] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_ray_tracing_invocation_reorder] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_ray_tracing_motion_blur] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_representative_fragment_test] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_sample_mask_override_coverage] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_scissor_exclusive] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_shader_atomic_float16_vector] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_shader_image_footprint] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_shader_sm_builtins] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_shader_subgroup_partitioned] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_shading_rate_image] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_viewport_array2] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_viewport_swizzle] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NV_win32_keyed_mutex] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NVX_binary_import] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NVX_image_view_handle] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_NVX_multiview_per_view_attributes] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_AMD_buffer_marker] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_GOOGLE_hlsl_functionality1] is a supported extension -190:07:2026 16:47:28.040 TRACE: [VK_GOOGLE_user_type] is a supported extension -190:07:2026 16:47:28.481 DEBUG: Creating Vulkan Surface -190:07:2026 16:47:28.493 DEBUG: Creating Vulkan SwapChain -190:07:2026 16:47:28.514 DEBUG: Creating new Vk Pipeline Cache -190:07:2026 16:47:28.515 DEBUG: Creating Descriptor Allocator -190:07:2026 16:47:28.516 DEBUG: Creating Descriptor pool -190:07:2026 16:47:28.527 DEBUG: Vulkan: Creating A Queue -190:07:2026 16:47:28.530 DEBUG: Vulkan: Creating A Queue -190:07:2026 16:47:28.532 DEBUG: Creating Vulkan Command Pool -190:07:2026 16:47:28.533 DEBUG: Creating Command Buffer -190:07:2026 16:47:28.535 DEBUG: Creating Vulkan Command Pool -190:07:2026 16:47:28.535 DEBUG: Creating Command Buffer -190:07:2026 16:47:28.564 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] -190:07:2026 16:47:28.564 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_fragment_deferred.glsl.spv] -190:07:2026 16:47:28.568 DEBUG: Creating Pipeline -190:07:2026 16:47:28.575 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.575 DEBUG: created render info -190:07:2026 16:47:28.576 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.578 DEBUG: created PipelineLayout -190:07:2026 16:47:28.578 DEBUG: created vertexInputState -190:07:2026 16:47:28.578 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.588 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.588 DEBUG: Pipeline Created -190:07:2026 16:47:28.589 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] -190:07:2026 16:47:28.590 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_opaque_fragment_deferred.glsl.spv] -190:07:2026 16:47:28.590 DEBUG: Creating Pipeline -190:07:2026 16:47:28.590 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.590 DEBUG: created render info -190:07:2026 16:47:28.590 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.590 DEBUG: created PipelineLayout -190:07:2026 16:47:28.590 DEBUG: created vertexInputState -190:07:2026 16:47:28.590 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.592 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.592 DEBUG: Pipeline Created -190:07:2026 16:47:28.592 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] -190:07:2026 16:47:28.593 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_translucent_fragment_deferred.glsl.spv] -190:07:2026 16:47:28.593 DEBUG: Creating Pipeline -190:07:2026 16:47:28.593 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.593 DEBUG: created render info -190:07:2026 16:47:28.593 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.594 DEBUG: created PipelineLayout -190:07:2026 16:47:28.594 DEBUG: created vertexInputState -190:07:2026 16:47:28.594 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.595 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.595 DEBUG: Pipeline Created -190:07:2026 16:47:28.596 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_vertex.glsl.spv] -190:07:2026 16:47:28.596 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_fragment.glsl.spv] -190:07:2026 16:47:28.596 DEBUG: Creating Pipeline -190:07:2026 16:47:28.596 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.596 DEBUG: created render info -190:07:2026 16:47:28.597 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.597 DEBUG: created PipelineLayout -190:07:2026 16:47:28.597 DEBUG: created vertexInputState -190:07:2026 16:47:28.597 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.598 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.598 DEBUG: Skybox Pipeline Created Successfully -190:07:2026 16:47:28.598 DEBUG: Deferred Renderer Pipeline -> [2715941035008] -190:07:2026 16:47:28.602 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_vertex.glsl.spv] -190:07:2026 16:47:28.603 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_frag.glsl.spv] -190:07:2026 16:47:28.606 DEBUG: Creating Pipeline -190:07:2026 16:47:28.606 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.606 DEBUG: created render info -190:07:2026 16:47:28.606 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.608 DEBUG: created PipelineLayout -190:07:2026 16:47:28.608 DEBUG: created vertexInputState -190:07:2026 16:47:28.608 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.610 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.610 DEBUG: Light Renderer Pipeline -> [2715941423792] -190:07:2026 16:47:28.615 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_vtx.glsl.spv] -190:07:2026 16:47:28.615 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_frag.glsl.spv] -190:07:2026 16:47:28.616 DEBUG: Creating Pipeline -190:07:2026 16:47:28.616 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.616 DEBUG: created render info -190:07:2026 16:47:28.616 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.616 DEBUG: created PipelineLayout -190:07:2026 16:47:28.617 DEBUG: created vertexInputState -190:07:2026 16:47:28.617 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.618 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.618 DEBUG: Post Process Renderer Pipeline -> [2715941803120] -190:07:2026 16:47:28.621 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_vertex.glsl.spv] -190:07:2026 16:47:28.621 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_frag.glsl.spv] -190:07:2026 16:47:28.623 DEBUG: Creating Pipeline -190:07:2026 16:47:28.623 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.623 DEBUG: created render info -190:07:2026 16:47:28.623 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.623 DEBUG: created PipelineLayout -190:07:2026 16:47:28.624 DEBUG: created vertexInputState -190:07:2026 16:47:28.624 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.625 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.776 DEBUG: Creating Vulkan Command Pool -190:07:2026 16:47:28.776 DEBUG: Creating Command Buffer -190:07:2026 16:47:28.803 TRACE: Destroyed Command Buffer -190:07:2026 16:47:28.807 DEBUG: Destroying Vulkan Command Pool -190:07:2026 16:47:28.811 DEBUG: GUI Renderer Pipeline -> [2715942364304] -190:07:2026 16:47:28.813 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_vtx.glsl.spv] -190:07:2026 16:47:28.813 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_frag.glsl.spv] -190:07:2026 16:47:28.814 DEBUG: Creating Pipeline -190:07:2026 16:47:28.814 DEBUG: registered Descriptor sets -190:07:2026 16:47:28.814 DEBUG: created render info -190:07:2026 16:47:28.814 DEBUG: created BlendAttributeStates -190:07:2026 16:47:28.814 DEBUG: created PipelineLayout -190:07:2026 16:47:28.814 DEBUG: created vertexInputState -190:07:2026 16:47:28.814 DEBUG: created PipelineCreateInfo -190:07:2026 16:47:28.816 DEBUG: created GraphicsPipeline -190:07:2026 16:47:28.816 DEBUG: Swap Chain Renderer Pipeline -> [2715943977440] -190:07:2026 16:47:28.818 DEBUG: Starting Render Thread -190:07:2026 16:47:28.819 DEBUG: Loading 18 Materials -190:07:2026 16:47:28.819 DEBUG: Creating Command Buffer -190:07:2026 16:47:28.819 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.820 TRACE: 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] -190:07:2026 16:47:28.820 DEBUG: Material Texture Path -> [resources\models\Revolver\Revolver.png] -190:07:2026 16:47:28.821 DEBUG: Loading Image [resources\models\Revolver\Revolver.png] -190:07:2026 16:47:28.822 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=4096 cap=4096]] -190:07:2026 16:47:28.822 TRACE: 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] -190:07:2026 16:47:28.822 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.822 TRACE: 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] -190:07:2026 16:47:28.822 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.823 TRACE: 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] -190:07:2026 16:47:28.823 DEBUG: Material Texture Path -> [resources\models\cube\cubetexture.png] -190:07:2026 16:47:28.823 DEBUG: Loading Image [resources\models\cube\cubetexture.png] -190:07:2026 16:47:28.823 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16384 cap=16384]] -190:07:2026 16:47:28.824 TRACE: 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] -190:07:2026 16:47:28.824 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.824 TRACE: 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] -190:07:2026 16:47:28.824 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.824 TRACE: 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] -190:07:2026 16:47:28.824 DEBUG: Material Texture Path -> [resources\models\VisualCollision\CollisionCubeTexture.png] -190:07:2026 16:47:28.824 DEBUG: Loading Image [resources\models\VisualCollision\CollisionCubeTexture.png] -190:07:2026 16:47:28.824 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=36 cap=36]] -190:07:2026 16:47:28.824 TRACE: 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] -190:07:2026 16:47:28.824 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.825 TRACE: 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] -190:07:2026 16:47:28.825 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.825 TRACE: 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] -190:07:2026 16:47:28.825 DEBUG: Material Texture Path -> [resources\models\melona\Melonamodel.png] -190:07:2026 16:47:28.825 DEBUG: Loading Image [resources\models\melona\Melonamodel.png] -190:07:2026 16:47:28.825 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=65536 cap=65536]] -190:07:2026 16:47:28.826 TRACE: 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] -190:07:2026 16:47:28.826 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.826 TRACE: 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] -190:07:2026 16:47:28.826 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.826 TRACE: 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] -190:07:2026 16:47:28.826 DEBUG: Material Texture Path -> [resources\models\musket\Musket.png] -190:07:2026 16:47:28.826 DEBUG: Loading Image [resources\models\musket\Musket.png] -190:07:2026 16:47:28.826 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16384 cap=16384]] -190:07:2026 16:47:28.827 TRACE: 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] -190:07:2026 16:47:28.827 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.827 TRACE: 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] -190:07:2026 16:47:28.827 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.827 TRACE: 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] -190:07:2026 16:47:28.827 DEBUG: Material Texture Path -> [resources\models\Revolver\Revolver.png] -190:07:2026 16:47:28.827 DEBUG: Loading Image [resources\models\Revolver\Revolver.png] -190:07:2026 16:47:28.827 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=4096 cap=4096]] -190:07:2026 16:47:28.827 TRACE: 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] -190:07:2026 16:47:28.827 DEBUG: Material Texture Path -> [] -190:07:2026 16:47:28.827 TRACE: 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] -190:07:2026 16:47:28.833 TRACE: Destroyed Command Buffer -190:07:2026 16:47:28.833 DEBUG: Loaded 18 Materials -190:07:2026 16:47:28.834 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] -190:07:2026 16:47:28.902 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16777216 cap=16777216]] -190:07:2026 16:47:28.904 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] -190:07:2026 16:47:28.980 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -190:07:2026 16:47:28.981 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyLeft.png] -190:07:2026 16:47:29.048 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -190:07:2026 16:47:29.049 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyUp.png] -190:07:2026 16:47:29.138 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -190:07:2026 16:47:29.139 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyDown.png] -190:07:2026 16:47:29.198 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -190:07:2026 16:47:29.200 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyFront.png] -190:07:2026 16:47:29.262 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -190:07:2026 16:47:29.263 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyBack.png] -190:07:2026 16:47:29.326 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] -190:07:2026 16:47:30.114 DEBUG: Loading Image [resources/EngineResources/Texture/Terrain4JTitleImage.png] -190:07:2026 16:47:30.116 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=198720 cap=198720]] -190:07:2026 16:47:30.116 DEBUG: Loading Image [resources/EngineResources/Texture/Billy.png] -190:07:2026 16:47:30.137 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=7613760 cap=7613760]] -190:07:2026 16:47:30.137 DEBUG: Transitioning Textures -190:07:2026 16:47:30.137 DEBUG: Recording Texture Transition -190:07:2026 16:47:30.138 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.145 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.146 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.152 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.153 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.160 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.160 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.166 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.166 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.172 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.172 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.177 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.177 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.184 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.184 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.199 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.199 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.205 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.205 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.213 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.213 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.219 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.220 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.225 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.225 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.233 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.233 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.238 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.238 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.244 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.244 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.251 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.251 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.257 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.257 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.263 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.263 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.269 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.269 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.274 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.274 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.280 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.280 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.285 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.285 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.292 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.292 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.297 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.297 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.303 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.303 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.309 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.309 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.315 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.315 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.321 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.321 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.342 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.343 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.348 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.349 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.354 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.354 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.360 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.360 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.366 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.366 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.373 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.373 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.379 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.379 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.386 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.386 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.391 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.391 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.398 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.398 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.406 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.407 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.413 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.413 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.420 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.420 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.426 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.427 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.434 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.434 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.440 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.440 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.447 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.447 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.454 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.455 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.462 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.462 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.468 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.468 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.475 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.475 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.481 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.481 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.487 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.487 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.492 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.492 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.498 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.498 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.504 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.504 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.511 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.511 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.518 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.518 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.525 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.525 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.531 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.531 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.539 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.539 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.546 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.546 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.552 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.552 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.558 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.558 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.564 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.564 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.569 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.569 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.575 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.575 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.581 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.581 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.586 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.586 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.590 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.590 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.595 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.595 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.601 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.601 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.768 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.768 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.775 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.775 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.781 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.781 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.787 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.787 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.792 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.792 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.798 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.798 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.804 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.805 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.810 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.811 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.816 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.816 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.822 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.822 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.827 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.827 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.832 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.832 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.838 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.838 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.845 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.845 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.850 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.850 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.856 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.856 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.862 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.863 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.870 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.870 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.877 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.877 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.883 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.883 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.889 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.889 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.894 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.894 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.901 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.901 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.907 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.907 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.912 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.912 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.917 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.917 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.923 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.923 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.928 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.928 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.933 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.933 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.938 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.938 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.944 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.944 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.949 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.949 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.954 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.954 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.958 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.960 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.966 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.966 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.971 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.971 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.977 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.977 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.983 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.983 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.989 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.989 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:30.994 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:30.995 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.001 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.001 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.007 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.007 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.013 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.013 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.021 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.021 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.028 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.028 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.033 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.033 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.038 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.038 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.044 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.044 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.049 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.049 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] -190:07:2026 16:47:31.054 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] -190:07:2026 16:47:31.054 DEBUG: Creating Command Buffer -190:07:2026 16:47:31.248 TRACE: Destroyed Command Buffer -190:07:2026 16:47:31.305 DEBUG: Recorded Texture Transition -190:07:2026 16:47:31.305 DEBUG: Transitioned Textures -190:07:2026 16:47:31.305 DEBUG: Loading 5 models -190:07:2026 16:47:31.307 DEBUG: Creating Command Buffer -190:07:2026 16:47:31.308 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[mesh_0] VertexSize=[1344] -190:07:2026 16:47:31.309 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[mesh_0] VertexSize=[1344] -190:07:2026 16:47:31.309 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0] VertexSize=[24192] -190:07:2026 16:47:31.312 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[none_1] VertexSize=[672] -190:07:2026 16:47:31.312 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[cube_0] VertexSize=[25088] -190:07:2026 16:47:31.314 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[cube_0] VertexSize=[21280] -190:07:2026 16:47:31.315 TRACE: Destroyed Command Buffer -190:07:2026 16:47:31.318 DEBUG: Loaded 5 models -190:07:2026 16:47:31.319 DEBUG: Fetching Texture -> [SKYBOX_TEXTURE] -190:07:2026 16:47:31.319 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Terrain4JTitleImage.png] -190:07:2026 16:47:31.319 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Billy.png] -190:07:2026 16:47:31.341 INFO: Launched Terrain4J Engine -190:07:2026 16:47:31.341 DEBUG: Primary Thread Started -190:07:2026 16:47:31.342 DEBUG: Main Thread Started -190:07:2026 16:47:31.342 DEBUG: Render Thread Started -190:07:2026 16:47:31.342 DEBUG: Fast Thread Started -190:07:2026 16:47:31.382 INFO: Attached camera [DebugCamera] to player actor [Player_f9e16354-046b-44a1-809b-ff2bb445bafa] -190:07:2026 16:47:31.382 INFO: Attached camera [DebugCamera] to player actor [Player_f9e16354-046b-44a1-809b-ff2bb445bafa] -190:07:2026 16:47:31.383 INFO: Client now controls server actor [Player_f9e16354-046b-44a1-809b-ff2bb445bafa], attached camera [DebugCamera] -190:07:2026 16:47:31.395 INFO: Attached camera [DebugCamera] to player actor [Player_f9e16354-046b-44a1-809b-ff2bb445bafa] -190:07:2026 16:47:31.395 INFO: Attached camera [DebugCamera] to player actor [Player_f9e16354-046b-44a1-809b-ff2bb445bafa] -190:07:2026 16:47:56.324 DEBUG: Closing Software of name [Terrain4J Game Engine] -190:07:2026 16:47:56.324 DEBUG: Closing Fast Thread, Thread: [Thread[#35,Terrain4J Fast Engine Thread,5,main]] -190:07:2026 16:47:56.324 DEBUG: Closing Main Thread, Thread: [Thread[#34,Terrain4J Main Engine Thread,5,main]] -190:07:2026 16:47:56.343 DEBUG: Destroyed Window -190:07:2026 16:47:56.359 DEBUG: Waiting Vulkan Context -190:07:2026 16:47:56.359 DEBUG: destroying Pipeline -190:07:2026 16:47:56.359 DEBUG: destroying Pipeline -190:07:2026 16:47:56.359 DEBUG: destroying Pipeline -190:07:2026 16:47:56.361 DEBUG: Process still running: [[Thread[#15,Finalizer,8,system], Thread[#36,Terrain4J Render Engine Thread,5,main], Thread[#14,Reference Handler,10,system], Thread[#17,Attach Listener,5,system], Thread[#3,Terrain4J Primary Runtime Thread,5,main], Thread[#16,Signal Dispatcher,9,system], Thread[#25,Common-Cleaner,8,InnocuousThreadGroup], Thread[#24,Notification Thread,9,system], Thread[#26,tinylog-WritingThread,1,main]]] -190:07:2026 16:47:56.361 DEBUG: Waiting to close Primary Thread, making sure vulkan has shut down properly first and Engine Threads are closed -Threads Open:[1] +190:07:2026 18:48:02.426 DEBUG: Loading Icon From Location [src\main\resources\WindowResources\Icon\ProgramIcon.png] +190:07:2026 18:48:02.442 DEBUG: Freeing icon Buffer +190:07:2026 18:48:02.638 DEBUG: Loading Models From [resources/models/cube/Cube.json] +190:07:2026 18:48:02.668 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]] +190:07:2026 18:48:02.668 DEBUG: Loading Materials From [resources/models/cube/Cube_mat.json] +190:07:2026 18:48:02.674 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]]] +190:07:2026 18:48:02.674 DEBUG: Loading Models From [resources/models/VisualCollision/CollisionCube.json] +190:07:2026 18:48:02.675 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]] +190:07:2026 18:48:02.676 DEBUG: Loading Materials From [resources/models/VisualCollision/CollisionCube_mat.json] +190:07:2026 18:48:02.677 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]]] +190:07:2026 18:48:02.677 DEBUG: Loading Models From [resources/models/melona/melona.json] +190:07:2026 18:48:02.677 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]] +190:07:2026 18:48:02.677 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json] +190:07:2026 18:48:02.678 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]]] +190:07:2026 18:48:02.678 DEBUG: Loading Models From [resources/models/musket/musket.json] +190:07:2026 18:48:02.679 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]] +190:07:2026 18:48:02.679 DEBUG: Loading Materials From [resources/models/musket/musket_mat.json] +190:07:2026 18:48:02.680 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]]] +190:07:2026 18:48:02.680 DEBUG: Loading Models From [resources/models/Revolver/Revolver.json] +190:07:2026 18:48:02.680 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]] +190:07:2026 18:48:02.680 DEBUG: Loading Materials From [resources/models/Revolver/Revolver_mat.json] +190:07:2026 18:48:02.681 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]]] +190:07:2026 18:48:03.090 DEBUG: Starting Main Thread +190:07:2026 18:48:03.090 DEBUG: Starting Fast Thread +190:07:2026 18:48:03.092 DEBUG: Initialising Vulkan Instance +190:07:2026 18:48:03.103 DEBUG: Validation Layer Count:12 +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_AMD_switchable_graphics] +190:07:2026 18:48:03.105 TRACE: Supported Layer [GalaxyOverlayVkLayer] +190:07:2026 18:48:03.105 TRACE: Supported Layer [GalaxyOverlayVkLayer_VERBOSE] +190:07:2026 18:48:03.105 TRACE: Supported Layer [GalaxyOverlayVkLayer_DEBUG] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_EOS_Overlay] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_RENDERDOC_Capture] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_OW_OVERLAY] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_OW_OBS_HOOK] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_OBS_HOOK] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_VALVE_steam_overlay] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_VALVE_steam_fossilize] +190:07:2026 18:48:03.105 TRACE: Supported Layer [VK_LAYER_ROCKSTAR_GAMES_social_club] +190:07:2026 18:48:03.105 WARN: No Layers Found to Validate, continuing without validation +190:07:2026 18:48:03.105 DEBUG: Validation:false +190:07:2026 18:48:03.109 DEBUG: Instance Extension Count:[14] +190:07:2026 18:48:03.110 TRACE: Supported Instance Extension [VK_KHR_device_group_creation] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_external_fence_capabilities] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_external_memory_capabilities] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_external_semaphore_capabilities] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_get_physical_device_properties2] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_get_surface_capabilities2] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_surface] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_win32_surface] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_EXT_debug_report] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_EXT_debug_utils] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_EXT_swapchain_colorspace] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_surface_maintenance1] +190:07:2026 18:48:03.111 TRACE: Supported Instance Extension [VK_KHR_portability_enumeration] +190:07:2026 18:48:03.112 TRACE: Supported Instance Extension [VK_LUNARG_direct_driver_loading] +190:07:2026 18:48:03.185 DEBUG: selecting physical devices +190:07:2026 18:48:03.186 DEBUG: Detected Physical Device Count: 2 +190:07:2026 18:48:03.201 DEBUG: freeing physical device [AMD Radeon(TM) Graphics] +190:07:2026 18:48:03.201 DEBUG: Selected Graphics Driver: [AMD Radeon RX 9070 XT] +190:07:2026 18:48:03.201 DEBUG: Creating Device Interface Layer +190:07:2026 18:48:03.201 TRACE: Device supports [221] number of extensions +190:07:2026 18:48:03.201 TRACE: [VK_KHR_16bit_storage] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_8bit_storage] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_acceleration_structure] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_bind_memory2] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_buffer_device_address] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_calibrated_timestamps] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_compute_shader_derivatives] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_cooperative_matrix] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_copy_commands2] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_copy_memory_indirect] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_create_renderpass2] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_dedicated_allocation] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_deferred_host_operations] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_depth_clamp_zero_one] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_depth_stencil_resolve] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_descriptor_update_template] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_device_address_commands] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_device_group] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_draw_indirect_count] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_driver_properties] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_dynamic_rendering] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_dynamic_rendering_local_read] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_external_fence] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_external_fence_win32] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_external_memory] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_external_memory_win32] is a supported extension +190:07:2026 18:48:03.201 TRACE: [VK_KHR_external_semaphore] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_external_semaphore_win32] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_format_feature_flags2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_fragment_shader_barycentric] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_fragment_shading_rate] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_get_memory_requirements2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_global_priority] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_imageless_framebuffer] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_image_format_list] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_index_type_uint8] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_line_rasterization] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_load_store_op_none] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance1] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance3] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance4] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance5] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance6] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance7] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance8] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance9] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance10] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_maintenance11] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_map_memory2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_multiview] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_pipeline_binary] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_pipeline_executable_properties] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_pipeline_library] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_present_id2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_present_mode_fifo_latest_ready] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_present_wait2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_push_descriptor] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_ray_query] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_ray_tracing_maintenance1] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_ray_tracing_pipeline] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_ray_tracing_position_fetch] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_relaxed_block_layout] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_robustness2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_sampler_mirror_clamp_to_edge] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_sampler_ycbcr_conversion] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_separate_depth_stencil_layouts] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_atomic_int64] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_bfloat16] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_clock] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_draw_parameters] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_expect_assume] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_float16_int8] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_float_controls] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_float_controls2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_fma] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_integer_dot_product] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_maximal_reconvergence] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_non_semantic_info] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_quad_control] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_subgroup_extended_types] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_subgroup_rotate] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_subgroup_uniform_control_flow] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_terminate_invocation] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_shader_untyped_pointers] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_spirv_1_4] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_storage_buffer_storage_class] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_swapchain] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_swapchain_maintenance1] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_swapchain_mutable_format] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_synchronization2] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_timeline_semaphore] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_uniform_buffer_standard_layout] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_variable_pointers] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_vertex_attribute_divisor] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_decode_av1] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_decode_h264] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_decode_h265] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_decode_queue] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_decode_vp9] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_encode_av1] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_encode_h264] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_encode_h265] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_encode_intra_refresh] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_encode_quantization_map] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_encode_queue] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_maintenance1] is a supported extension +190:07:2026 18:48:03.202 TRACE: [VK_KHR_video_queue] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_KHR_vulkan_memory_model] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_KHR_win32_keyed_mutex] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_KHR_workgroup_memory_explicit_layout] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_KHR_zero_initialize_workgroup_memory] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_4444_formats] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_attachment_feedback_loop_layout] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_border_color_swizzle] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_calibrated_timestamps] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_color_write_enable] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_conditional_rendering] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_conservative_rasterization] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_custom_border_color] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_depth_clamp_control] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_depth_clamp_zero_one] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_depth_clip_control] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_depth_clip_enable] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_depth_range_unrestricted] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_descriptor_buffer] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_descriptor_heap] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_descriptor_indexing] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_device_address_binding_report] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_device_fault] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_device_generated_commands] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_dynamic_rendering_unused_attachments] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_extended_dynamic_state] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_extended_dynamic_state2] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_extended_dynamic_state3] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_external_memory_host] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_fragment_shader_interlock] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_frame_boundary] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_full_screen_exclusive] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_global_priority] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_global_priority_query] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_graphics_pipeline_library] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_hdr_metadata] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_host_image_copy] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_host_query_reset] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_image_2d_view_of_3d] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_image_robustness] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_image_sliced_view_of_3d] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_image_view_min_lod] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_index_type_uint8] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_inline_uniform_block] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_line_rasterization] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_load_store_op_none] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_memory_budget] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_memory_priority] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_mesh_shader] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_mutable_descriptor_type] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_nested_command_buffer] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_non_seamless_cube_map] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_pageable_device_local_memory] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_pipeline_creation_cache_control] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_pipeline_creation_feedback] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_pipeline_library_group_handles] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_post_depth_coverage] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_present_mode_fifo_latest_ready] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_primitive_topology_list_restart] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_primitives_generated_query] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_private_data] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_provoking_vertex] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_queue_family_foreign] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_ray_tracing_invocation_reorder] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_robustness2] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_sampler_filter_minmax] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_sample_locations] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_scalar_block_layout] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_separate_stencil_usage] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_atomic_float] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_atomic_float2] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_demote_to_helper_invocation] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_float8] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_image_atomic_int64] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_long_vector] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_module_identifier] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_object] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_replicated_composites] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_stencil_export] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_subgroup_ballot] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_subgroup_vote] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_uniform_buffer_unsized_array] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_shader_viewport_index_layer] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_subgroup_size_control] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_texel_buffer_alignment] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_tooling_info] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_transform_feedback] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_vertex_attribute_divisor] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_vertex_input_dynamic_state] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_EXT_ycbcr_image_arrays] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_anti_lag] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_buffer_marker] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_device_coherent_memory] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_display_native_hdr] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_draw_indirect_count] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_gcn_shader] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_gpa_interface] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_gpu_shader_half_float] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_gpu_shader_int16] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_memory_overallocation_behavior] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_mixed_attachment_samples] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_ballot] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_core_properties] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_core_properties2] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_early_and_late_fragment_tests] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_explicit_vertex_parameter] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_image_load_store_lod] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_info] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMD_shader_trinary_minmax] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_AMDX_dense_geometry_format] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_GOOGLE_decorate_string] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_GOOGLE_hlsl_functionality1] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_GOOGLE_user_type] is a supported extension +190:07:2026 18:48:03.203 TRACE: [VK_VALVE_mutable_descriptor_type] is a supported extension +190:07:2026 18:48:03.279 DEBUG: Creating Vulkan Surface +190:07:2026 18:48:03.283 DEBUG: Creating Vulkan SwapChain +190:07:2026 18:48:03.359 DEBUG: Creating new Vk Pipeline Cache +190:07:2026 18:48:03.360 DEBUG: Creating Descriptor Allocator +190:07:2026 18:48:03.360 DEBUG: Creating Descriptor pool +190:07:2026 18:48:03.369 DEBUG: Vulkan: Creating A Queue +190:07:2026 18:48:03.370 DEBUG: Vulkan: Creating A Queue +190:07:2026 18:48:03.372 DEBUG: Creating Vulkan Command Pool +190:07:2026 18:48:03.372 DEBUG: Creating Command Buffer +190:07:2026 18:48:03.373 DEBUG: Creating Vulkan Command Pool +190:07:2026 18:48:03.373 DEBUG: Creating Command Buffer +190:07:2026 18:48:03.398 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] +190:07:2026 18:48:03.398 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_fragment_deferred.glsl.spv] +190:07:2026 18:48:03.402 DEBUG: Creating Pipeline +190:07:2026 18:48:03.404 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.404 DEBUG: created render info +190:07:2026 18:48:03.405 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.405 DEBUG: created PipelineLayout +190:07:2026 18:48:03.405 DEBUG: created vertexInputState +190:07:2026 18:48:03.407 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.409 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.409 DEBUG: Pipeline Created +190:07:2026 18:48:03.409 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] +190:07:2026 18:48:03.409 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_opaque_fragment_deferred.glsl.spv] +190:07:2026 18:48:03.410 DEBUG: Creating Pipeline +190:07:2026 18:48:03.410 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.410 DEBUG: created render info +190:07:2026 18:48:03.410 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.410 DEBUG: created PipelineLayout +190:07:2026 18:48:03.410 DEBUG: created vertexInputState +190:07:2026 18:48:03.410 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.410 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.410 DEBUG: Pipeline Created +190:07:2026 18:48:03.410 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_vertex.glsl.spv] +190:07:2026 18:48:03.410 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\scene_translucent_fragment_deferred.glsl.spv] +190:07:2026 18:48:03.411 DEBUG: Creating Pipeline +190:07:2026 18:48:03.411 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.411 DEBUG: created render info +190:07:2026 18:48:03.411 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.411 DEBUG: created PipelineLayout +190:07:2026 18:48:03.411 DEBUG: created vertexInputState +190:07:2026 18:48:03.411 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.411 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.411 DEBUG: Pipeline Created +190:07:2026 18:48:03.412 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_vertex.glsl.spv] +190:07:2026 18:48:03.412 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\skybox_fragment.glsl.spv] +190:07:2026 18:48:03.413 DEBUG: Creating Pipeline +190:07:2026 18:48:03.413 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.413 DEBUG: created render info +190:07:2026 18:48:03.413 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.413 DEBUG: created PipelineLayout +190:07:2026 18:48:03.413 DEBUG: created vertexInputState +190:07:2026 18:48:03.413 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.413 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.413 DEBUG: Skybox Pipeline Created Successfully +190:07:2026 18:48:03.413 DEBUG: Deferred Renderer Pipeline -> [2323737022800] +190:07:2026 18:48:03.417 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_vertex.glsl.spv] +190:07:2026 18:48:03.417 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\lighting_frag.glsl.spv] +190:07:2026 18:48:03.419 DEBUG: Creating Pipeline +190:07:2026 18:48:03.419 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.419 DEBUG: created render info +190:07:2026 18:48:03.419 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.419 DEBUG: created PipelineLayout +190:07:2026 18:48:03.419 DEBUG: created vertexInputState +190:07:2026 18:48:03.419 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.419 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.420 DEBUG: Light Renderer Pipeline -> [2323737221888] +190:07:2026 18:48:03.424 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_vtx.glsl.spv] +190:07:2026 18:48:03.424 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\post_process_frag.glsl.spv] +190:07:2026 18:48:03.424 DEBUG: Creating Pipeline +190:07:2026 18:48:03.425 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.425 DEBUG: created render info +190:07:2026 18:48:03.425 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.425 DEBUG: created PipelineLayout +190:07:2026 18:48:03.425 DEBUG: created vertexInputState +190:07:2026 18:48:03.425 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.425 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.426 DEBUG: Post Process Renderer Pipeline -> [2323737278400] +190:07:2026 18:48:03.427 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_vertex.glsl.spv] +190:07:2026 18:48:03.427 DEBUG: Loading Compiled Shader [resources\EngineResources\GuiShaders\gui_frag.glsl.spv] +190:07:2026 18:48:03.428 DEBUG: Creating Pipeline +190:07:2026 18:48:03.428 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.428 DEBUG: created render info +190:07:2026 18:48:03.428 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.428 DEBUG: created PipelineLayout +190:07:2026 18:48:03.428 DEBUG: created vertexInputState +190:07:2026 18:48:03.428 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.428 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.630 DEBUG: Creating Vulkan Command Pool +190:07:2026 18:48:03.630 DEBUG: Creating Command Buffer +190:07:2026 18:48:03.643 TRACE: Destroyed Command Buffer +190:07:2026 18:48:03.644 DEBUG: Destroying Vulkan Command Pool +190:07:2026 18:48:03.646 DEBUG: GUI Renderer Pipeline -> [2323737349120] +190:07:2026 18:48:03.647 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_vtx.glsl.spv] +190:07:2026 18:48:03.647 DEBUG: Loading Compiled Shader [resources\EngineResources\shaders\swap_frag.glsl.spv] +190:07:2026 18:48:03.648 DEBUG: Creating Pipeline +190:07:2026 18:48:03.648 DEBUG: registered Descriptor sets +190:07:2026 18:48:03.648 DEBUG: created render info +190:07:2026 18:48:03.648 DEBUG: created BlendAttributeStates +190:07:2026 18:48:03.648 DEBUG: created PipelineLayout +190:07:2026 18:48:03.648 DEBUG: created vertexInputState +190:07:2026 18:48:03.648 DEBUG: created PipelineCreateInfo +190:07:2026 18:48:03.648 DEBUG: created GraphicsPipeline +190:07:2026 18:48:03.649 DEBUG: Swap Chain Renderer Pipeline -> [2323738369648] +190:07:2026 18:48:03.650 DEBUG: Starting Render Thread +190:07:2026 18:48:03.650 DEBUG: Loading 18 Materials +190:07:2026 18:48:03.651 DEBUG: Creating Command Buffer +190:07:2026 18:48:03.653 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.653 TRACE: 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] +190:07:2026 18:48:03.653 DEBUG: Material Texture Path -> [resources\models\Revolver\Revolver.png] +190:07:2026 18:48:03.653 DEBUG: Loading Image [resources\models\Revolver\Revolver.png] +190:07:2026 18:48:03.654 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=4096 cap=4096]] +190:07:2026 18:48:03.654 TRACE: 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] +190:07:2026 18:48:03.654 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.654 TRACE: 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] +190:07:2026 18:48:03.654 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.654 TRACE: 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] +190:07:2026 18:48:03.654 DEBUG: Material Texture Path -> [resources\models\cube\cubetexture.png] +190:07:2026 18:48:03.654 DEBUG: Loading Image [resources\models\cube\cubetexture.png] +190:07:2026 18:48:03.655 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16384 cap=16384]] +190:07:2026 18:48:03.655 TRACE: 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] +190:07:2026 18:48:03.655 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.655 TRACE: 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] +190:07:2026 18:48:03.655 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.655 TRACE: 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] +190:07:2026 18:48:03.655 DEBUG: Material Texture Path -> [resources\models\VisualCollision\CollisionCubeTexture.png] +190:07:2026 18:48:03.655 DEBUG: Loading Image [resources\models\VisualCollision\CollisionCubeTexture.png] +190:07:2026 18:48:03.656 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=36 cap=36]] +190:07:2026 18:48:03.656 TRACE: 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] +190:07:2026 18:48:03.656 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.656 TRACE: 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] +190:07:2026 18:48:03.656 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.656 TRACE: 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] +190:07:2026 18:48:03.656 DEBUG: Material Texture Path -> [resources\models\melona\Melonamodel.png] +190:07:2026 18:48:03.656 DEBUG: Loading Image [resources\models\melona\Melonamodel.png] +190:07:2026 18:48:03.657 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=65536 cap=65536]] +190:07:2026 18:48:03.657 TRACE: 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] +190:07:2026 18:48:03.657 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.657 TRACE: 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] +190:07:2026 18:48:03.657 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.657 TRACE: 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] +190:07:2026 18:48:03.657 DEBUG: Material Texture Path -> [resources\models\musket\Musket.png] +190:07:2026 18:48:03.657 DEBUG: Loading Image [resources\models\musket\Musket.png] +190:07:2026 18:48:03.657 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16384 cap=16384]] +190:07:2026 18:48:03.658 TRACE: 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] +190:07:2026 18:48:03.658 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.658 TRACE: 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] +190:07:2026 18:48:03.658 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.658 TRACE: 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] +190:07:2026 18:48:03.658 DEBUG: Material Texture Path -> [resources\models\Revolver\Revolver.png] +190:07:2026 18:48:03.658 DEBUG: Loading Image [resources\models\Revolver\Revolver.png] +190:07:2026 18:48:03.658 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=4096 cap=4096]] +190:07:2026 18:48:03.658 TRACE: 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] +190:07:2026 18:48:03.658 DEBUG: Material Texture Path -> [] +190:07:2026 18:48:03.659 TRACE: 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] +190:07:2026 18:48:03.661 TRACE: Destroyed Command Buffer +190:07:2026 18:48:03.661 DEBUG: Loaded 18 Materials +190:07:2026 18:48:03.662 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] +190:07:2026 18:48:03.699 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=16777216 cap=16777216]] +190:07:2026 18:48:03.708 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyRight.png] +190:07:2026 18:48:03.749 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +190:07:2026 18:48:03.749 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyLeft.png] +190:07:2026 18:48:03.788 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +190:07:2026 18:48:03.789 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyUp.png] +190:07:2026 18:48:03.841 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +190:07:2026 18:48:03.841 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyDown.png] +190:07:2026 18:48:03.874 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +190:07:2026 18:48:03.875 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyFront.png] +190:07:2026 18:48:03.913 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +190:07:2026 18:48:03.913 DEBUG: Loading Image [resources/EngineResources/SkyBoxTextures/autumn_field_pureskyBack.png] +190:07:2026 18:48:03.952 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=16777216 lim=16777216 cap=16777216]] +190:07:2026 18:48:04.151 DEBUG: Loading Image [resources/EngineResources/Texture/Terrain4JTitleImage.png] +190:07:2026 18:48:04.153 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=198720 cap=198720]] +190:07:2026 18:48:04.153 DEBUG: Loading Image [resources/EngineResources/Texture/Billy.png] +190:07:2026 18:48:04.166 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=7613760 cap=7613760]] +190:07:2026 18:48:04.166 DEBUG: Transitioning Textures +190:07:2026 18:48:04.166 DEBUG: Recording Texture Transition +190:07:2026 18:48:04.167 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.171 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.172 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.176 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.176 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.180 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.181 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.185 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.185 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.189 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.189 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.193 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.193 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.198 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.198 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.202 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.202 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.206 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.206 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.210 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.210 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.215 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.215 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.219 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.219 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.223 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.223 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.227 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.227 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.231 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.231 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.235 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.235 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.240 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.240 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.244 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.244 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.248 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.248 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.252 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.252 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.256 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.256 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.261 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.261 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.266 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.266 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.271 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.271 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.275 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.275 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.279 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.280 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.283 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.283 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.288 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.288 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.301 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.301 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.305 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.305 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.310 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.310 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.314 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.314 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.319 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.319 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.323 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.323 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.328 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.328 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.332 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.332 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.336 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.337 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.341 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.341 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.345 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.345 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.350 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.350 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.355 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.355 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.359 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.359 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.363 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.363 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.367 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.367 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.371 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.371 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.376 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.376 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.379 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.379 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.384 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.384 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.388 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.388 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.391 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.391 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.396 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.396 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.400 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.400 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.405 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.405 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.409 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.409 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.413 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.413 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.417 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.417 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.422 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.422 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.426 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.426 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.430 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.430 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.434 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.434 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.439 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.439 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.442 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.443 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.447 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.447 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.451 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.451 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.455 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.455 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.459 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.459 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.463 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.463 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.467 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.467 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.471 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.471 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.476 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.476 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.480 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.480 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.485 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.485 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.488 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.489 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.493 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.493 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.497 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.497 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.502 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.502 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.506 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.506 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.511 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.511 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.515 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.515 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.519 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.519 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.523 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.523 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.527 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.527 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.531 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.531 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.535 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.535 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.539 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.539 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.543 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.543 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.548 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.548 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.552 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.552 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.556 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.556 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.561 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.561 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.565 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.565 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.569 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.569 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.573 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.573 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.578 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.578 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.581 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.581 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.585 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.585 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.589 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.589 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.593 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.593 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.597 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.598 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.602 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.602 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.606 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.606 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.610 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.610 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.614 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.614 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.618 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.618 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.623 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.623 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.626 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.627 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.631 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.631 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.635 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.635 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.639 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.640 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.644 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.644 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.648 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.648 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.652 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.652 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.666 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.666 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.670 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.670 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.675 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.675 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.679 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.679 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.683 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.683 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.687 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.687 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.692 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.692 DEBUG: Loading Image [resources/EngineResources/Texture/NoTexture.png] +190:07:2026 18:48:04.696 DEBUG: Loading Image Data [java.nio.DirectByteBuffer[pos=0 lim=3182656 cap=3182656]] +190:07:2026 18:48:04.696 DEBUG: Creating Command Buffer +190:07:2026 18:48:04.715 TRACE: Destroyed Command Buffer +190:07:2026 18:48:04.731 DEBUG: Recorded Texture Transition +190:07:2026 18:48:04.731 DEBUG: Transitioned Textures +190:07:2026 18:48:04.731 DEBUG: Loading 5 models +190:07:2026 18:48:04.731 DEBUG: Creating Command Buffer +190:07:2026 18:48:04.732 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[mesh_0] VertexSize=[1344] +190:07:2026 18:48:04.733 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[mesh_0] VertexSize=[1344] +190:07:2026 18:48:04.734 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[m_6d7d0384-980c-6574-37d9-8a8b11a5fdda_0] VertexSize=[24192] +190:07:2026 18:48:04.735 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[none_1] VertexSize=[672] +190:07:2026 18:48:04.735 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[cube_0] VertexSize=[25088] +190:07:2026 18:48:04.736 DEBUG: Creating Vertices Transfer Buffer, Mesh Data -> ID=[cube_0] VertexSize=[21280] +190:07:2026 18:48:04.737 TRACE: Destroyed Command Buffer +190:07:2026 18:48:04.750 DEBUG: Loaded 5 models +190:07:2026 18:48:04.751 DEBUG: Fetching Texture -> [SKYBOX_TEXTURE] +190:07:2026 18:48:04.751 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Terrain4JTitleImage.png] +190:07:2026 18:48:04.751 DEBUG: Fetching Texture -> [resources/EngineResources/Texture/Billy.png] +190:07:2026 18:48:04.917 INFO: Launched Terrain4J Engine +190:07:2026 18:48:04.917 DEBUG: Primary Thread Started +190:07:2026 18:48:04.917 DEBUG: Main Thread Started +190:07:2026 18:48:04.917 DEBUG: Render Thread Started +190:07:2026 18:48:04.917 DEBUG: Fast Thread Started +190:07:2026 18:48:04.931 INFO: Attached camera [DebugCamera] to player actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:48:04.931 INFO: Attached camera [DebugCamera] to player actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:48:04.931 INFO: Client now controls server actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a], attached camera [DebugCamera] +190:07:2026 18:48:04.934 INFO: Attached camera [DebugCamera] to player actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:48:04.935 INFO: Attached camera [DebugCamera] to player actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:48:36.033 DEBUG: UnThrottlingEngine +190:07:2026 18:49:39.257 DEBUG: UnThrottlingEngine +190:07:2026 18:50:57.755 DEBUG: ModelID of Actor has been Changed from [musket] to [Revolver] +190:07:2026 18:50:57.755 DEBUG: Sent model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:50:57.755 DEBUG: Sending model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:32.021 DEBUG: ModelID of Actor has been Changed from [Revolver] to [Revolver] +190:07:2026 18:51:32.021 DEBUG: Sent model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:32.025 DEBUG: Sending model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:32.538 DEBUG: ModelID of Actor has been Changed from [Revolver] to [musket] +190:07:2026 18:51:32.538 DEBUG: Sent model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:32.539 DEBUG: Sending model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:32.984 DEBUG: ModelID of Actor has been Changed from [musket] to [Revolver] +190:07:2026 18:51:32.984 DEBUG: Sent model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:32.985 DEBUG: Sending model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:33.247 DEBUG: ModelID of Actor has been Changed from [Revolver] to [musket] +190:07:2026 18:51:33.247 DEBUG: Sent model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:51:33.248 DEBUG: Sending model ID update packet for actor [Player_926abdd3-5a53-4160-b8aa-8c7099b71a9a] +190:07:2026 18:52:27.393 DEBUG: Closing Software of name [Terrain4J Game Engine] +190:07:2026 18:52:27.393 DEBUG: Closing Fast Thread, Thread: [Thread[#42,Terrain4J Fast Engine Thread,5,main]] +190:07:2026 18:52:27.393 DEBUG: Closing Main Thread, Thread: [Thread[#41,Terrain4J Main Engine Thread,5,main]] +190:07:2026 18:52:27.395 DEBUG: Waiting Vulkan Context +190:07:2026 18:52:27.395 DEBUG: destroying Pipeline +190:07:2026 18:52:27.396 DEBUG: destroying Pipeline +190:07:2026 18:52:27.396 DEBUG: destroying Pipeline +190:07:2026 18:52:27.396 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.396 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.396 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.396 DEBUG: Destroying Image View +190:07:2026 18:52:27.396 DEBUG: Destroyed Window +190:07:2026 18:52:27.396 DEBUG: Destroying Image View +190:07:2026 18:52:27.398 DEBUG: Destroying Image View +190:07:2026 18:52:27.398 DEBUG: Destroying Image View +190:07:2026 18:52:27.399 DEBUG: Destroying Image View +190:07:2026 18:52:27.399 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.399 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.399 DEBUG: destroying Pipeline +190:07:2026 18:52:27.399 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.399 DEBUG: Destroying Image View +190:07:2026 18:52:27.400 DEBUG: Destroying Image View +190:07:2026 18:52:27.400 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.400 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.400 DEBUG: destroying Pipeline +190:07:2026 18:52:27.400 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.400 DEBUG: destroying Pipeline +190:07:2026 18:52:27.401 DEBUG: Destroying Image View +190:07:2026 18:52:27.401 DEBUG: Destroying Descriptor Set Layout +190:07:2026 18:52:27.401 DEBUG: destroying Pipeline +190:07:2026 18:52:27.402 DEBUG: Destroying Image View +190:07:2026 18:52:27.402 DEBUG: Destroying Image View +190:07:2026 18:52:27.402 DEBUG: Destroying Image View +190:07:2026 18:52:27.402 DEBUG: Destroying Image View +190:07:2026 18:52:27.402 DEBUG: Destroying Image View +190:07:2026 18:52:27.403 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Process still running: [[Thread[#16,Reference Handler,10,system], Thread[#37,Notification Thread,9,system], Thread[#65,Terrain4J Render Engine Thread,5,main], Thread[#39,tinylog-WritingThread,1,main], Thread[#18,Signal Dispatcher,9,system], Thread[#19,Attach Listener,5,system], Thread[#38,Common-Cleaner,8,InnocuousThreadGroup], Thread[#3,Terrain4J Primary Runtime Thread,5,main], Thread[#17,Finalizer,8,system]]] +190:07:2026 18:52:27.404 DEBUG: Waiting to close Primary Thread, making sure vulkan has shut down properly first and Engine Threads are closed +Threads Open:[2] Vulkan Layers Open:[4] -190:07:2026 16:47:56.361 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.361 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.361 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.362 DEBUG: Destroying Image View -190:07:2026 16:47:56.362 DEBUG: Destroying Image View -190:07:2026 16:47:56.363 DEBUG: Destroying Image View -190:07:2026 16:47:56.363 DEBUG: Destroying Image View -190:07:2026 16:47:56.363 DEBUG: Destroying Image View -190:07:2026 16:47:56.363 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.364 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.364 DEBUG: destroying Pipeline -190:07:2026 16:47:56.364 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.364 DEBUG: Destroying Image View -190:07:2026 16:47:56.364 DEBUG: Destroying Image View -190:07:2026 16:47:56.364 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.364 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.364 DEBUG: destroying Pipeline -190:07:2026 16:47:56.364 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.364 DEBUG: destroying Pipeline -190:07:2026 16:47:56.365 DEBUG: Destroying Image View -190:07:2026 16:47:56.365 DEBUG: Destroying Descriptor Set Layout -190:07:2026 16:47:56.365 DEBUG: destroying Pipeline -190:07:2026 16:47:56.366 DEBUG: Destroying Image View -190:07:2026 16:47:56.366 DEBUG: Destroying Image View -190:07:2026 16:47:56.367 DEBUG: Destroying Image View -190:07:2026 16:47:56.367 DEBUG: Destroying Image View -190:07:2026 16:47:56.367 DEBUG: Destroying Image View -190:07:2026 16:47:56.367 DEBUG: Destroying Image View -190:07:2026 16:47:56.368 DEBUG: Destroying Image View -190:07:2026 16:47:56.368 DEBUG: Destroying Image View -190:07:2026 16:47:56.368 DEBUG: Destroying Image View -190:07:2026 16:47:56.369 DEBUG: Destroying Image View -190:07:2026 16:47:56.369 DEBUG: Destroying Image View -190:07:2026 16:47:56.369 DEBUG: Destroying Image View -190:07:2026 16:47:56.369 DEBUG: Destroying Image View -190:07:2026 16:47:56.369 DEBUG: Destroying Image View -190:07:2026 16:47:56.370 DEBUG: Destroying Image View -190:07:2026 16:47:56.370 DEBUG: Destroying Image View -190:07:2026 16:47:56.371 DEBUG: Destroying Image View -190:07:2026 16:47:56.371 DEBUG: Destroying Image View -190:07:2026 16:47:56.371 DEBUG: Destroying Image View -190:07:2026 16:47:56.371 DEBUG: Destroying Image View -190:07:2026 16:47:56.372 DEBUG: Destroying Image View -190:07:2026 16:47:56.372 DEBUG: Destroying Image View -190:07:2026 16:47:56.372 DEBUG: Destroying Image View -190:07:2026 16:47:56.372 DEBUG: Destroying Image View -190:07:2026 16:47:56.372 DEBUG: Destroying Image View -190:07:2026 16:47:56.373 DEBUG: Destroying Image View -190:07:2026 16:47:56.373 DEBUG: Destroying Image View -190:07:2026 16:47:56.373 DEBUG: Destroying Image View -190:07:2026 16:47:56.373 DEBUG: Destroying Image View -190:07:2026 16:47:56.374 DEBUG: Destroying Image View -190:07:2026 16:47:56.374 DEBUG: Destroying Image View -190:07:2026 16:47:56.374 DEBUG: Destroying Image View -190:07:2026 16:47:56.374 DEBUG: Destroying Image View -190:07:2026 16:47:56.374 DEBUG: Destroying Image View -190:07:2026 16:47:56.375 DEBUG: Destroying Image View -190:07:2026 16:47:56.375 DEBUG: Destroying Image View -190:07:2026 16:47:56.375 DEBUG: Destroying Image View -190:07:2026 16:47:56.375 DEBUG: Destroying Image View -190:07:2026 16:47:56.375 DEBUG: Destroying Image View -190:07:2026 16:47:56.375 DEBUG: Destroying Image View -190:07:2026 16:47:56.376 DEBUG: Destroying Image View -190:07:2026 16:47:56.376 DEBUG: Destroying Image View -190:07:2026 16:47:56.376 DEBUG: Destroying Image View -190:07:2026 16:47:56.376 DEBUG: Destroying Image View -190:07:2026 16:47:56.376 DEBUG: Destroying Image View -190:07:2026 16:47:56.377 DEBUG: Destroying Image View -190:07:2026 16:47:56.377 DEBUG: Destroying Image View -190:07:2026 16:47:56.377 DEBUG: Destroying Image View -190:07:2026 16:47:56.377 DEBUG: Destroying Image View -190:07:2026 16:47:56.377 DEBUG: Destroying Image View -190:07:2026 16:47:56.377 DEBUG: Destroying Image View -190:07:2026 16:47:56.378 DEBUG: Destroying Image View -190:07:2026 16:47:56.378 DEBUG: Destroying Image View -190:07:2026 16:47:56.378 DEBUG: Destroying Image View -190:07:2026 16:47:56.378 DEBUG: Destroying Image View -190:07:2026 16:47:56.378 DEBUG: Destroying Image View -190:07:2026 16:47:56.379 DEBUG: Destroying Image View -190:07:2026 16:47:56.379 DEBUG: Destroying Image View -190:07:2026 16:47:56.379 DEBUG: Destroying Image View -190:07:2026 16:47:56.379 DEBUG: Destroying Image View -190:07:2026 16:47:56.379 DEBUG: Destroying Image View -190:07:2026 16:47:56.379 DEBUG: Destroying Image View -190:07:2026 16:47:56.379 DEBUG: Destroying Image View -190:07:2026 16:47:56.381 DEBUG: Destroying Image View -190:07:2026 16:47:56.381 DEBUG: Destroying Image View -190:07:2026 16:47:56.381 DEBUG: Destroying Image View -190:07:2026 16:47:56.382 DEBUG: Destroying Image View -190:07:2026 16:47:56.382 DEBUG: Destroying Image View -190:07:2026 16:47:56.382 DEBUG: Destroying Image View -190:07:2026 16:47:56.383 DEBUG: Destroying Image View -190:07:2026 16:47:56.383 DEBUG: Destroying Image View -190:07:2026 16:47:56.383 DEBUG: Destroying Image View -190:07:2026 16:47:56.383 DEBUG: Destroying Image View -190:07:2026 16:47:56.383 DEBUG: Destroying Image View -190:07:2026 16:47:56.384 DEBUG: Destroying Image View -190:07:2026 16:47:56.384 DEBUG: Destroying Image View -190:07:2026 16:47:56.384 DEBUG: Destroying Image View -190:07:2026 16:47:56.385 DEBUG: Destroying Image View -190:07:2026 16:47:56.385 DEBUG: Destroying Image View -190:07:2026 16:47:56.385 DEBUG: Destroying Image View -190:07:2026 16:47:56.386 DEBUG: Destroying Image View -190:07:2026 16:47:56.386 DEBUG: Destroying Image View -190:07:2026 16:47:56.386 DEBUG: Destroying Image View -190:07:2026 16:47:56.386 DEBUG: Destroying Image View -190:07:2026 16:47:56.387 DEBUG: Destroying Image View -190:07:2026 16:47:56.387 DEBUG: Destroying Image View -190:07:2026 16:47:56.387 DEBUG: Destroying Image View -190:07:2026 16:47:56.387 DEBUG: Destroying Image View -190:07:2026 16:47:56.388 DEBUG: Destroying Image View -190:07:2026 16:47:56.388 DEBUG: Destroying Image View -190:07:2026 16:47:56.388 DEBUG: Destroying Image View -190:07:2026 16:47:56.388 DEBUG: Destroying Image View -190:07:2026 16:47:56.389 DEBUG: Destroying Image View -190:07:2026 16:47:56.389 DEBUG: Destroying Image View -190:07:2026 16:47:56.389 DEBUG: Destroying Image View -190:07:2026 16:47:56.389 DEBUG: Destroying Image View -190:07:2026 16:47:56.389 DEBUG: Destroying Image View -190:07:2026 16:47:56.390 DEBUG: Destroying Image View -190:07:2026 16:47:56.390 DEBUG: Destroying Image View -190:07:2026 16:47:56.390 DEBUG: Destroying Image View -190:07:2026 16:47:56.390 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.391 DEBUG: Destroying Image View -190:07:2026 16:47:56.392 DEBUG: Destroying Image View -190:07:2026 16:47:56.392 DEBUG: Destroying Image View -190:07:2026 16:47:56.392 DEBUG: Destroying Image View -190:07:2026 16:47:56.392 DEBUG: Destroying Image View -190:07:2026 16:47:56.392 DEBUG: Destroying Image View -190:07:2026 16:47:56.393 DEBUG: Destroying Image View -190:07:2026 16:47:56.393 DEBUG: Destroying Image View -190:07:2026 16:47:56.393 DEBUG: Destroying Image View -190:07:2026 16:47:56.393 DEBUG: Destroying Image View -190:07:2026 16:47:56.393 DEBUG: Destroying Image View -190:07:2026 16:47:56.394 DEBUG: Destroying Image View -190:07:2026 16:47:56.394 DEBUG: Destroying Image View -190:07:2026 16:47:56.394 DEBUG: Destroying Image View -190:07:2026 16:47:56.394 DEBUG: Destroying Image View -190:07:2026 16:47:56.395 DEBUG: Destroying Image View -190:07:2026 16:47:56.395 DEBUG: Destroying Image View -190:07:2026 16:47:56.395 DEBUG: Destroying Image View -190:07:2026 16:47:56.395 DEBUG: Destroying Image View -190:07:2026 16:47:56.396 DEBUG: Destroying Image View -190:07:2026 16:47:56.396 DEBUG: Dynamic Renderer Cleaned up -190:07:2026 16:47:56.396 DEBUG: Destroying Vulkan Semaphore -190:07:2026 16:47:56.396 DEBUG: Destroying Vulkan Semaphore -190:07:2026 16:47:56.396 DEBUG: Destroying Vulkan Semaphore -190:07:2026 16:47:56.396 DEBUG: Render Semaphores cleaned up -190:07:2026 16:47:56.397 DEBUG: Destroying Vulkan Semaphore -190:07:2026 16:47:56.397 DEBUG: Destroying Vulkan Semaphore -190:07:2026 16:47:56.397 DEBUG: Present Semaphores cleaned up -190:07:2026 16:47:56.397 DEBUG: Fences cleaned up -190:07:2026 16:47:56.397 TRACE: Destroyed Command Buffer -190:07:2026 16:47:56.397 DEBUG: Destroying Vulkan Command Pool -190:07:2026 16:47:56.397 TRACE: Destroyed Command Buffer -190:07:2026 16:47:56.397 DEBUG: Destroying Vulkan Command Pool -190:07:2026 16:47:56.397 DEBUG: Command pools cleaned up -190:07:2026 16:47:56.404 DEBUG: Destroying Descriptor Allocator -190:07:2026 16:47:56.405 DEBUG: Destroying Descriptor Pool -190:07:2026 16:47:56.405 DEBUG: Destroying Vulkan Swapchain -190:07:2026 16:47:56.406 DEBUG: Destroying Image View -190:07:2026 16:47:56.406 DEBUG: Destroying Image View -190:07:2026 16:47:56.406 DEBUG: Destroying Image View -190:07:2026 16:47:56.407 DEBUG: Cleaning Up Surfaces -190:07:2026 16:47:56.407 DEBUG: Destroying Vulkan Pipeline Cache -190:07:2026 16:47:56.407 DEBUG: Removing Vulkan Device -190:07:2026 16:47:56.597 DEBUG: freeing physical device [NVIDIA GeForce RTX 3050 OEM] -190:07:2026 16:47:56.597 DEBUG: Closing Vulkan instance -190:07:2026 16:47:56.606 DEBUG: Render Thread Finished ending Vulkan Processes +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.404 DEBUG: Destroying Image View +190:07:2026 18:52:27.405 DEBUG: Destroying Image View +190:07:2026 18:52:27.405 DEBUG: Destroying Image View +190:07:2026 18:52:27.405 DEBUG: Destroying Image View +190:07:2026 18:52:27.411 DEBUG: Destroying Image View +190:07:2026 18:52:27.411 DEBUG: Destroying Image View +190:07:2026 18:52:27.411 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.412 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.413 DEBUG: Destroying Image View +190:07:2026 18:52:27.414 DEBUG: Destroying Image View +190:07:2026 18:52:27.414 DEBUG: Destroying Image View +190:07:2026 18:52:27.414 DEBUG: Destroying Image View +190:07:2026 18:52:27.414 DEBUG: Destroying Image View +190:07:2026 18:52:27.415 DEBUG: Destroying Image View +190:07:2026 18:52:27.415 DEBUG: Destroying Image View +190:07:2026 18:52:27.415 DEBUG: Destroying Image View +190:07:2026 18:52:27.415 DEBUG: Destroying Image View +190:07:2026 18:52:27.415 DEBUG: Destroying Image View +190:07:2026 18:52:27.415 DEBUG: Destroying Image View +190:07:2026 18:52:27.415 DEBUG: Destroying Image View +190:07:2026 18:52:27.416 DEBUG: Destroying Image View +190:07:2026 18:52:27.416 DEBUG: Destroying Image View +190:07:2026 18:52:27.416 DEBUG: Destroying Image View +190:07:2026 18:52:27.416 DEBUG: Destroying Image View +190:07:2026 18:52:27.416 DEBUG: Destroying Image View +190:07:2026 18:52:27.416 DEBUG: Destroying Image View +190:07:2026 18:52:27.416 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.417 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.418 DEBUG: Destroying Image View +190:07:2026 18:52:27.419 DEBUG: Destroying Image View +190:07:2026 18:52:27.419 DEBUG: Destroying Image View +190:07:2026 18:52:27.419 DEBUG: Destroying Image View +190:07:2026 18:52:27.419 DEBUG: Destroying Image View +190:07:2026 18:52:27.419 DEBUG: Destroying Image View +190:07:2026 18:52:27.419 DEBUG: Destroying Image View +190:07:2026 18:52:27.419 DEBUG: Destroying Image View +190:07:2026 18:52:27.420 DEBUG: Destroying Image View +190:07:2026 18:52:27.420 DEBUG: Destroying Image View +190:07:2026 18:52:27.420 DEBUG: Destroying Image View +190:07:2026 18:52:27.420 DEBUG: Destroying Image View +190:07:2026 18:52:27.421 DEBUG: Destroying Image View +190:07:2026 18:52:27.421 DEBUG: Destroying Image View +190:07:2026 18:52:27.421 DEBUG: Destroying Image View +190:07:2026 18:52:27.421 DEBUG: Destroying Image View +190:07:2026 18:52:27.422 DEBUG: Destroying Image View +190:07:2026 18:52:27.422 DEBUG: Destroying Image View +190:07:2026 18:52:27.422 DEBUG: Destroying Image View +190:07:2026 18:52:27.422 DEBUG: Destroying Image View +190:07:2026 18:52:27.423 DEBUG: Destroying Image View +190:07:2026 18:52:27.423 DEBUG: Destroying Image View +190:07:2026 18:52:27.423 DEBUG: Destroying Image View +190:07:2026 18:52:27.423 DEBUG: Destroying Image View +190:07:2026 18:52:27.423 DEBUG: Destroying Image View +190:07:2026 18:52:27.423 DEBUG: Destroying Image View +190:07:2026 18:52:27.423 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.424 DEBUG: Destroying Image View +190:07:2026 18:52:27.425 DEBUG: Dynamic Renderer Cleaned up +190:07:2026 18:52:27.425 DEBUG: Destroying Vulkan Semaphore +190:07:2026 18:52:27.425 DEBUG: Destroying Vulkan Semaphore +190:07:2026 18:52:27.425 DEBUG: Destroying Vulkan Semaphore +190:07:2026 18:52:27.425 DEBUG: Render Semaphores cleaned up +190:07:2026 18:52:27.425 DEBUG: Destroying Vulkan Semaphore +190:07:2026 18:52:27.425 DEBUG: Destroying Vulkan Semaphore +190:07:2026 18:52:27.425 DEBUG: Present Semaphores cleaned up +190:07:2026 18:52:27.426 DEBUG: Fences cleaned up +190:07:2026 18:52:27.426 TRACE: Destroyed Command Buffer +190:07:2026 18:52:27.426 DEBUG: Destroying Vulkan Command Pool +190:07:2026 18:52:27.426 TRACE: Destroyed Command Buffer +190:07:2026 18:52:27.426 DEBUG: Destroying Vulkan Command Pool +190:07:2026 18:52:27.426 DEBUG: Command pools cleaned up +190:07:2026 18:52:27.445 DEBUG: Destroying Descriptor Allocator +190:07:2026 18:52:27.446 DEBUG: Destroying Descriptor Pool +190:07:2026 18:52:27.446 DEBUG: Destroying Vulkan Swapchain +190:07:2026 18:52:27.446 DEBUG: Destroying Image View +190:07:2026 18:52:27.446 DEBUG: Destroying Image View +190:07:2026 18:52:27.446 DEBUG: Destroying Image View +190:07:2026 18:52:27.453 DEBUG: Cleaning Up Surfaces +190:07:2026 18:52:27.453 DEBUG: Destroying Vulkan Pipeline Cache +190:07:2026 18:52:27.453 DEBUG: Removing Vulkan Device +190:07:2026 18:52:27.602 DEBUG: freeing physical device [AMD Radeon RX 9070 XT] +190:07:2026 18:52:27.602 DEBUG: Closing Vulkan instance +190:07:2026 18:52:27.629 DEBUG: Render Thread Finished ending Vulkan Processes Vulkan Layers Open:[All processes closed and vulkan instance removed] -190:07:2026 16:47:56.606 DEBUG: Closing Render Thread, Thread: [Thread[#36,Terrain4J Render Engine Thread,5,main]] -190:07:2026 16:47:56.606 DEBUG: Closing Primary Thread, Thread: [Thread[#3,Terrain4J Primary Runtime Thread,5,main]] -190:07:2026 16:47:56.606 INFO: Successful stable Shut Down of Terrain4J in [282.0] MilliSeconds +190:07:2026 18:52:27.629 DEBUG: Closing Render Thread, Thread: [Thread[#65,Terrain4J Render Engine Thread,5,main]] +190:07:2026 18:52:27.629 DEBUG: Closing Primary Thread, Thread: [Thread[#3,Terrain4J Primary Runtime Thread,5,main]] +190:07:2026 18:52:27.629 INFO: Successful stable Shut Down of Terrain4J in [236.284] MilliSeconds diff --git a/ServerLog.t4jlog b/ServerLog.t4jlog index 3155fc8..58ba406 100644 --- a/ServerLog.t4jlog +++ b/ServerLog.t4jlog @@ -1,159 +1,163 @@ -190:07:2026 16:47:19.460 INFO: +190:07:2026 23:47:04.680 INFO: Launching New Terrain4J Powered Software! -190:07:2026 16:47:19.469 DEBUG: File [terrain4j.properties] read -190:07:2026 16:47:19.476 DEBUG: +190:07:2026 23:47:04.684 DEBUG: File [terrain4j.properties] read +190:07:2026 23:47:04.688 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} -190:07:2026 16:47:19.584 DEBUG: Loading Models From [resources/models/cube/Cube.json] -190:07:2026 16:47:19.695 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]] -190:07:2026 16:47:19.695 DEBUG: Loading Materials From [resources/models/cube/Cube_mat.json] -190:07:2026 16:47:19.721 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]]] -190:07:2026 16:47:19.721 DEBUG: Loading Models From [resources/models/VisualCollision/CollisionCube.json] -190:07:2026 16:47:19.722 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]] -190:07:2026 16:47:19.724 DEBUG: Loading Materials From [resources/models/VisualCollision/CollisionCube_mat.json] -190:07:2026 16:47:19.726 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]]] -190:07:2026 16:47:19.726 DEBUG: Loading Models From [resources/models/melona/melona.json] -190:07:2026 16:47:19.727 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]] -190:07:2026 16:47:19.727 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json] -190:07:2026 16:47:19.728 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]]] -190:07:2026 16:47:19.729 DEBUG: Loading Models From [resources/models/musket/musket.json] -190:07:2026 16:47:19.730 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]] -190:07:2026 16:47:19.730 DEBUG: Loading Materials From [resources/models/musket/musket_mat.json] -190:07:2026 16:47:19.732 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]]] -190:07:2026 16:47:19.732 DEBUG: Loading Models From [resources/models/Revolver/Revolver.json] -190:07:2026 16:47:19.733 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]] -190:07:2026 16:47:19.733 DEBUG: Loading Materials From [resources/models/Revolver/Revolver_mat.json] -190:07:2026 16:47:19.735 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]]] -190:07:2026 16:47:19.743 INFO: Spawning static cube actor [MelonaSpawned0] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.788 INFO: Spawning static cube actor [MelonaSpawned1] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.789 INFO: Spawning static cube actor [MelonaSpawned2] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.789 INFO: Spawning static cube actor [MelonaSpawned3] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.790 INFO: Spawning static cube actor [MelonaSpawned4] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.790 INFO: Spawning static cube actor [MelonaSpawned5] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.790 INFO: Spawning static cube actor [MelonaSpawned6] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.791 INFO: Spawning static cube actor [MelonaSpawned7] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.791 INFO: Spawning static cube actor [MelonaSpawned8] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.791 INFO: Spawning static cube actor [MelonaSpawned9] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.791 INFO: Spawning static cube actor [MelonaSpawned10] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.792 INFO: Spawning static cube actor [MelonaSpawned11] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.792 INFO: Spawning static cube actor [MelonaSpawned12] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.792 INFO: Spawning static cube actor [MelonaSpawned13] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.792 INFO: Spawning static cube actor [MelonaSpawned14] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.793 INFO: Spawning static cube actor [MelonaSpawned15] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.793 INFO: Spawning static cube actor [MelonaSpawned16] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.793 INFO: Spawning static cube actor [MelonaSpawned17] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.794 INFO: Spawning static cube actor [MelonaSpawned18] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.794 INFO: Spawning static cube actor [MelonaSpawned19] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.794 INFO: Spawning static cube actor [MelonaSpawned20] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.795 INFO: Spawning static cube actor [MelonaSpawned21] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.795 INFO: Spawning static cube actor [MelonaSpawned22] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.796 INFO: Spawning static cube actor [MelonaSpawned23] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.796 INFO: Spawning static cube actor [MelonaSpawned24] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.796 INFO: Spawning static cube actor [MelonaSpawned25] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.796 INFO: Spawning static cube actor [MelonaSpawned26] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.797 INFO: Spawning static cube actor [MelonaSpawned27] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.797 INFO: Spawning static cube actor [MelonaSpawned28] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.797 INFO: Spawning static cube actor [MelonaSpawned29] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.797 INFO: Spawning static cube actor [MelonaSpawned30] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.797 INFO: Spawning static cube actor [MelonaSpawned31] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.798 INFO: Spawning static cube actor [MelonaSpawned32] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.798 INFO: Spawning static cube actor [MelonaSpawned33] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.798 INFO: Spawning static cube actor [MelonaSpawned34] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.798 INFO: Spawning static cube actor [MelonaSpawned35] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.798 INFO: Spawning static cube actor [MelonaSpawned36] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.799 INFO: Spawning static cube actor [MelonaSpawned37] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.799 INFO: Spawning static cube actor [MelonaSpawned38] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.799 INFO: Spawning static cube actor [MelonaSpawned39] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.799 INFO: Spawning static cube actor [MelonaSpawned40] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.799 INFO: Spawning static cube actor [MelonaSpawned41] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.799 INFO: Spawning static cube actor [MelonaSpawned42] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned43] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned44] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned45] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned46] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned47] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned48] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned49] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned50] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.800 INFO: Spawning static cube actor [MelonaSpawned51] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.801 INFO: Spawning static cube actor [MelonaSpawned52] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.801 INFO: Spawning static cube actor [MelonaSpawned53] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.801 INFO: Spawning static cube actor [MelonaSpawned54] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.801 INFO: Spawning static cube actor [MelonaSpawned55] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.801 INFO: Spawning static cube actor [MelonaSpawned56] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.802 INFO: Spawning static cube actor [MelonaSpawned57] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.802 INFO: Spawning static cube actor [MelonaSpawned58] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.802 INFO: Spawning static cube actor [MelonaSpawned59] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.802 INFO: Spawning static cube actor [MelonaSpawned60] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.802 INFO: Spawning static cube actor [MelonaSpawned61] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.802 INFO: Spawning static cube actor [MelonaSpawned62] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.803 INFO: Spawning static cube actor [MelonaSpawned63] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.803 INFO: Spawning static cube actor [MelonaSpawned64] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.803 INFO: Spawning static cube actor [MelonaSpawned65] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.803 INFO: Spawning static cube actor [MelonaSpawned66] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.803 INFO: Spawning static cube actor [MelonaSpawned67] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned68] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned69] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned70] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned71] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned72] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned73] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned74] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.804 INFO: Spawning static cube actor [MelonaSpawned75] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned76] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned77] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned78] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned79] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned80] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned81] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned82] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.805 INFO: Spawning static cube actor [MelonaSpawned83] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.806 INFO: Spawning static cube actor [MelonaSpawned84] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.806 INFO: Spawning static cube actor [MelonaSpawned85] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.806 INFO: Spawning static cube actor [MelonaSpawned86] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.806 INFO: Spawning static cube actor [MelonaSpawned87] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.806 INFO: Spawning static cube actor [MelonaSpawned88] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.807 INFO: Spawning static cube actor [MelonaSpawned89] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.807 INFO: Spawning static cube actor [MelonaSpawned90] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.807 INFO: Spawning static cube actor [MelonaSpawned91] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.807 INFO: Spawning static cube actor [MelonaSpawned92] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.807 INFO: Spawning static cube actor [MelonaSpawned93] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.808 INFO: Spawning static cube actor [MelonaSpawned94] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.808 INFO: Spawning static cube actor [MelonaSpawned95] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.808 INFO: Spawning static cube actor [MelonaSpawned96] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.808 INFO: Spawning static cube actor [MelonaSpawned97] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.808 INFO: Spawning static cube actor [MelonaSpawned98] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.808 INFO: Spawning static cube actor [MelonaSpawned99] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.808 INFO: Spawning static cube actor [MelonaSpawned100] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.810 INFO: Spawning static cube actor [MelonaSpawned101] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.810 INFO: Spawning static cube actor [MelonaSpawned102] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.810 INFO: Spawning static cube actor [MelonaSpawned103] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.811 INFO: Spawning static cube actor [MelonaSpawned104] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.812 INFO: Spawning static cube actor [MelonaSpawned105] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.812 INFO: Spawning static cube actor [MelonaSpawned106] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.812 INFO: Spawning static cube actor [MelonaSpawned107] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.812 INFO: Spawning static cube actor [MelonaSpawned108] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.812 INFO: Spawning static cube actor [MelonaSpawned109] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.812 INFO: Spawning static cube actor [MelonaSpawned110] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.812 INFO: Spawning static cube actor [MelonaSpawned111] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.813 INFO: Spawning static cube actor [MelonaSpawned112] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.813 INFO: Spawning static cube actor [MelonaSpawned113] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.813 INFO: Spawning static cube actor [MelonaSpawned114] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.813 INFO: Spawning static cube actor [MelonaSpawned115] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.813 INFO: Spawning static cube actor [MelonaSpawned116] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.814 INFO: Spawning static cube actor [MelonaSpawned117] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.814 INFO: Spawning static cube actor [MelonaSpawned118] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.814 INFO: Spawning static cube actor [MelonaSpawned119] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.814 INFO: Spawning static cube actor [MelonaSpawned120] with model ID [Cube], with cached ID of [Cube] -190:07:2026 16:47:19.816 DEBUG: Starting Main Thread -190:07:2026 16:47:19.817 DEBUG: Starting Fast Thread -190:07:2026 16:47:19.817 DEBUG: Starting Render Thread -190:07:2026 16:47:19.824 INFO: Launched Terrain4J Engine -190:07:2026 16:47:19.825 DEBUG: Primary Thread Started -190:07:2026 16:47:19.825 INFO: Terrain4J dedicated server running without GLFW/Vulkan/OpenAL -190:07:2026 16:47:19.825 DEBUG: Main Thread Started -190:07:2026 16:47:19.825 DEBUG: Render Thread Started -190:07:2026 16:47:19.825 DEBUG: Fast Thread Started +190:07:2026 23:47:04.739 DEBUG: Loading Models From [resources/models/cube/Cube.json] +190:07:2026 23:47:04.789 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]] +190:07:2026 23:47:04.789 DEBUG: Loading Materials From [resources/models/cube/Cube_mat.json] +190:07:2026 23:47:04.800 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]]] +190:07:2026 23:47:04.800 DEBUG: Loading Models From [resources/models/VisualCollision/CollisionCube.json] +190:07:2026 23:47:04.800 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]] +190:07:2026 23:47:04.801 DEBUG: Loading Materials From [resources/models/VisualCollision/CollisionCube_mat.json] +190:07:2026 23:47:04.803 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]]] +190:07:2026 23:47:04.803 DEBUG: Loading Models From [resources/models/melona/melona.json] +190:07:2026 23:47:04.803 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]] +190:07:2026 23:47:04.803 DEBUG: Loading Materials From [resources/models/melona/melona_mat.json] +190:07:2026 23:47:04.804 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]]] +190:07:2026 23:47:04.804 DEBUG: Loading Models From [resources/models/musket/musket.json] +190:07:2026 23:47:04.805 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]] +190:07:2026 23:47:04.805 DEBUG: Loading Materials From [resources/models/musket/musket_mat.json] +190:07:2026 23:47:04.806 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]]] +190:07:2026 23:47:04.806 DEBUG: Loading Models From [resources/models/Revolver/Revolver.json] +190:07:2026 23:47:04.806 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]] +190:07:2026 23:47:04.806 DEBUG: Loading Materials From [resources/models/Revolver/Revolver_mat.json] +190:07:2026 23:47:04.808 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]]] +190:07:2026 23:47:04.808 DEBUG: Loading Models From [resources/models/Flintlock/Flintlock.json] +190:07:2026 23:47:04.809 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]] +190:07:2026 23:47:04.809 DEBUG: Loading Materials From [resources/models/Flintlock/Flintlock_mat.json] +190:07:2026 23:47:04.810 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]]] +190:07:2026 23:47:04.814 INFO: Spawning static cube actor [MelonaSpawned0] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.835 INFO: Spawning static cube actor [MelonaSpawned1] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.835 INFO: Spawning static cube actor [MelonaSpawned2] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.835 INFO: Spawning static cube actor [MelonaSpawned3] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.835 INFO: Spawning static cube actor [MelonaSpawned4] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.835 INFO: Spawning static cube actor [MelonaSpawned5] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.835 INFO: Spawning static cube actor [MelonaSpawned6] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.836 INFO: Spawning static cube actor [MelonaSpawned7] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.836 INFO: Spawning static cube actor [MelonaSpawned8] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.836 INFO: Spawning static cube actor [MelonaSpawned9] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.836 INFO: Spawning static cube actor [MelonaSpawned10] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.836 INFO: Spawning static cube actor [MelonaSpawned11] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned12] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned13] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned14] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned15] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned16] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned17] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned18] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.837 INFO: Spawning static cube actor [MelonaSpawned19] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned20] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned21] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned22] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned23] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned24] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned25] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned26] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned27] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned28] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned29] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned30] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.838 INFO: Spawning static cube actor [MelonaSpawned31] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.839 INFO: Spawning static cube actor [MelonaSpawned32] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.839 INFO: Spawning static cube actor [MelonaSpawned33] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.839 INFO: Spawning static cube actor [MelonaSpawned34] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.839 INFO: Spawning static cube actor [MelonaSpawned35] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.839 INFO: Spawning static cube actor [MelonaSpawned36] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.839 INFO: Spawning static cube actor [MelonaSpawned37] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.839 INFO: Spawning static cube actor [MelonaSpawned38] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned39] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned40] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned41] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned42] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned43] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned44] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned45] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned46] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned47] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned48] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned49] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned50] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned51] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned52] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.840 INFO: Spawning static cube actor [MelonaSpawned53] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned54] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned55] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned56] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned57] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned58] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned59] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned60] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned61] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned62] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned63] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned64] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned65] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.841 INFO: Spawning static cube actor [MelonaSpawned66] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.842 INFO: Spawning static cube actor [MelonaSpawned67] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.842 INFO: Spawning static cube actor [MelonaSpawned68] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.842 INFO: Spawning static cube actor [MelonaSpawned69] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.842 INFO: Spawning static cube actor [MelonaSpawned70] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.842 INFO: Spawning static cube actor [MelonaSpawned71] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.842 INFO: Spawning static cube actor [MelonaSpawned72] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.842 INFO: Spawning static cube actor [MelonaSpawned73] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned74] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned75] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned76] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned77] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned78] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned79] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned80] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned81] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned82] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned83] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned84] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned85] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned86] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.843 INFO: Spawning static cube actor [MelonaSpawned87] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned88] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned89] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned90] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned91] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned92] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned93] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned94] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned95] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned96] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned97] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned98] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.844 INFO: Spawning static cube actor [MelonaSpawned99] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned100] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned101] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned102] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned103] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned104] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned105] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned106] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned107] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned108] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned109] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.845 INFO: Spawning static cube actor [MelonaSpawned110] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned111] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned112] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned113] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned114] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned115] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned116] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned117] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned118] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned119] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.846 INFO: Spawning static cube actor [MelonaSpawned120] with model ID [Cube], with cached ID of [Cube] +190:07:2026 23:47:04.849 DEBUG: Starting Main Thread +190:07:2026 23:47:04.850 DEBUG: Starting Fast Thread +190:07:2026 23:47:04.850 DEBUG: Starting Render Thread +190:07:2026 23:47:04.942 INFO: Launched Terrain4J Engine +190:07:2026 23:47:04.942 DEBUG: Primary Thread Started +190:07:2026 23:47:04.942 INFO: Terrain4J dedicated server running without GLFW/Vulkan/OpenAL +190:07:2026 23:47:04.942 DEBUG: Main Thread Started +190:07:2026 23:47:04.942 DEBUG: Render Thread Started +190:07:2026 23:47:04.942 DEBUG: Fast Thread Started diff --git a/resources/models/Cactus/Cactus.bbmodel b/resources/models/Cactus/Cactus.bbmodel new file mode 100644 index 0000000..3c8c100 --- /dev/null +++ b/resources/models/Cactus/Cactus.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"Cactus","model_identifier":"Cactus","visible_box":[1,1,0],"variable_placeholders":"","multi_file_ruleset":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":128,"height":128},"elements":[{"name":"sphere","color":4,"origin":[0,29.29987,-0.39785],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"ITmC":[0,-33.29987,0.39785],"TrsZ":[0,29.70013,0.39785],"leJZ":[-2.75,28.12756,0.83997],"mm2i":[-4.76314,22.86881,1.67413],"ekc2":[-5.5,-1.42035,1.87157],"UEbt":[-4.76314,-21.91433,1.67413],"ykOS":[-3.85,-32.48634,1.42946],"gTZ2":[-2.01314,28.12756,1.60574],"Lqsk":[-3.48686,22.86881,3.88471],"y3oC":[-4.02628,-1.42035,4.42413],"Ockv":[-3.48686,-21.91433,3.88471],"6Ffg":[-2.8184,-32.48634,3.21625],"pvk0":[-0.73686,28.12756,2.04785],"nv33":[-1.27628,22.86881,5.16099],"swK3":[-1.47372,-1.42035,5.89785],"qyK1":[-1.27628,-21.91433,5.16099],"g9wS":[-1.0316,-32.48634,4.24785],"e6mh":[0.73686,28.12756,2.04785],"PwMV":[1.27628,22.86881,5.16099],"j9pZ":[1.47372,-1.42035,5.89785],"NbqT":[1.27628,-21.91433,5.16099],"NpKU":[1.0316,-32.48634,4.24785],"PxSY":[2.01314,28.12756,1.60574],"kKkV":[3.48686,22.86881,3.88471],"kBJZ":[4.02628,-1.42035,4.42413],"Y2di":[3.48686,-21.91433,3.88471],"MIuK":[2.8184,-32.48634,3.21625],"jppO":[2.75,28.12756,0.83997],"OyDQ":[4.76314,22.86881,1.67413],"MWMG":[5.5,-1.42035,1.87157],"Wc4V":[4.76314,-21.91433,1.67413],"jqpR":[3.85,-32.48634,1.42946],"Ewu8":[2.75,28.12756,-0.04426],"lvX9":[4.76314,22.86881,-0.87843],"0krR":[5.5,-1.42035,-1.07587],"8c8f":[4.76314,-21.91433,-0.87843],"DVk2":[3.85,-32.48634,-0.63375],"6fdL":[2.01314,28.12756,-0.81003],"S5Pl":[3.48686,22.86881,-3.08901],"2E1V":[4.02628,-1.42035,-3.62843],"1TZv":[3.48686,-21.91433,-3.08901],"Hnv2":[2.8184,-32.48634,-2.42054],"gmAy":[0.73686,28.12756,-1.25215],"hu4p":[1.27628,22.86881,-4.36529],"ByXH":[1.47372,-1.42035,-5.10215],"uykf":[1.27628,-21.91433,-4.36529],"Ip50":[1.0316,-32.48634,-3.45215],"BBgI":[-0.73686,28.12756,-1.25215],"KHi9":[-1.27628,22.86881,-4.36529],"ka0W":[-1.47372,-1.42035,-5.10215],"V38x":[-1.27628,-21.91433,-4.36529],"R5xc":[-1.0316,-32.48634,-3.45215],"ITmY":[-2.01314,28.12756,-0.81003],"3qcb":[-3.48686,22.86881,-3.08901],"Hkpl":[-4.02628,-1.42035,-3.62843],"uwAy":[-3.48686,-21.91433,-3.08901],"nka3":[-2.8184,-32.48634,-2.42054],"WCrS":[-2.75,28.12756,-0.04426],"fAbV":[-4.76314,22.86881,-0.87843],"kEz2":[-5.5,-1.42035,-1.07587],"F4u4":[-4.76314,-21.91433,-0.87843],"Rkj7":[-3.85,-32.48634,-0.63375],"CJ8q":[-13.17701,20.90194,-0.12715],"Xj1D":[-14.76351,20.19991,0.21248],"Q9H4":[-16.29093,17.8523,0.85327],"SyWC":[-17.1,8.25913,1.00494],"Fsz7":[-16.54093,-0.8898,0.85327],"74V5":[-3.03427,-6.8764,0.66531],"Nq0e":[-14.70443,20.19991,0.80073],"Yb0j":[-15.32258,17.8523,2.55139],"CsLe":[-15.98185,8.25913,2.96577],"AqZ0":[-15.57258,-0.8898,2.55139],"RPjm":[-3.03427,-6.32595,2.03789],"wclZ":[-13.73609,20.19991,1.14035],"DKsL":[-14.14536,17.8523,3.53181],"Z3Gz":[-14.54516,8.25913,4.09785],"nVcd":[-14.39536,-0.8898,3.53181],"xqwY":[-3.03427,-5.37254,2.83035],"yna4":[-12.61794,20.19991,1.14035],"9jKB":[-12.20867,17.8523,3.53181],"Aay8":[-12.30886,8.25913,4.09785],"PIoW":[-12.45867,-0.8898,3.53181],"YcxO":[-3.03427,-4.27164,2.83035],"aW5h":[-11.64959,20.19991,0.80073],"dzyr":[-10.53145,17.8523,2.55139],"T9ah":[-10.37217,8.25913,2.96577],"xWga":[-10.78145,-0.8898,2.55139],"qoI1":[-3.03427,-3.31823,2.03789],"8FAq":[-11.09052,20.19991,0.21248],"iEoM":[-9.5631,17.8523,0.85327],"jyRh":[-9.25403,8.25913,1.00494],"9BZR":[-9.8131,-0.8898,0.85327],"1ubg":[-3.03427,-2.76778,0.66531],"YUba":[-11.09052,20.19991,-0.46677],"s9wW":[-9.5631,17.8523,-1.10756],"q2Tv":[-9.25403,8.25913,-1.25923],"pRId":[-9.8131,-0.8898,-1.10756],"L20p":[-3.03427,-2.76778,-0.91961],"pGHe":[-11.64959,20.19991,-1.05502],"YgO2":[-10.53145,17.8523,-2.80569],"EUN2":[-10.37217,8.25913,-3.22006],"Axob":[-10.78145,-0.8898,-2.80569],"6bEQ":[-3.03427,-3.31823,-2.29219],"Q7YU":[-12.61794,20.19991,-1.39465],"yFPP":[-12.20867,17.8523,-3.78611],"ANLe":[-12.30886,8.25913,-4.35215],"c37e":[-12.45867,-0.8898,-3.78611],"tPHD":[-3.03427,-4.27164,-3.08465],"qiyI":[-13.73609,20.19991,-1.39465],"NsHT":[-14.14536,17.8523,-3.78611],"JONz":[-14.54516,8.25913,-4.35215],"68Ui":[-14.39536,-0.8898,-3.78611],"seuD":[-3.03427,-5.37254,-3.08465],"3pvB":[-14.20443,20.19991,-1.05502],"kwW4":[-15.32258,17.8523,-2.80569],"BmQ8":[-15.98185,8.25913,-3.22006],"4Q0M":[-15.57258,-0.8898,-2.80569],"tNDj":[-3.03427,-6.32595,-2.29219],"kpnI":[-14.76351,20.19991,-0.46677],"TLEt":[-16.29093,17.8523,-1.10756],"WDb8":[-17.1,8.25913,-1.25923],"uohf":[-16.54093,-0.8898,-1.10756],"lWea":[-3.03427,-6.8764,-0.91961],"zpNe":[-14.47026,3.68467,-4.06913],"M3GU":[-12.38377,3.68467,-4.06913],"XVAY":[-10.57681,3.68467,-3.01288],"a7I1":[-9.53356,3.68467,-1.1834],"RawT":[-9.53356,3.68467,0.9291],"I74x":[-10.57681,3.68467,2.75858],"AlV5":[-12.38377,3.68467,3.81483],"9vIg":[-14.47026,3.68467,3.81483],"ncIp":[-15.77722,3.68467,2.75858],"hRsm":[-16.82046,3.68467,0.9291],"HVgF":[-16.82046,3.68467,-1.1834],"Lb18":[-15.77722,3.68467,-3.01288],"hoCv":[-11.82587,-3.60274,-3.43538],"fTWp":[-10.3915,-2.89641,-3.43538],"mZah":[-9.14929,-2.28471,-2.54894],"KDb7":[-8.43211,-1.93154,-1.01359],"UztP":[-8.43211,-1.93154,0.75929],"BuEl":[-9.14929,-2.28471,2.29464],"5H4a":[-10.3915,-2.89641,3.18108],"FM11":[-11.82587,-3.60274,3.18108],"DYBi":[-13.06808,-4.21445,2.29464],"my61":[-13.78527,-4.56761,0.75929],"7wPN":[-13.78527,-4.56761,-1.01359],"Clb0":[-13.06808,-4.21445,-2.54894],"NKna":[-6.4949,-3.0892,2.16627],"LQSt":[-6.28385,-2.59352,0.7123],"ixOG":[-6.28385,-2.59352,-0.9666],"GY3J":[-6.4949,-3.0892,-2.42056],"POpO":[-6.86043,-3.94775,-3.26001],"qSDn":[-7.28252,-4.93912,-3.26001],"9a4R":[-7.64806,-5.79766,-2.42056],"PZbb":[-7.8591,-6.29335,-0.9666],"ullJ":[-7.8591,-6.29335,0.7123],"GgnY":[-7.64806,-5.79766,2.16627],"jMaA":[-7.28252,-4.93912,3.00572],"BOiJ":[-6.86043,-3.94775,3.00572],"4eGK":[14.76351,12.19991,0.21248],"appN":[14.70443,12.19991,0.80073],"gXO4":[13.17701,12.90194,-0.12715],"dDzg":[16.29093,9.8523,0.85327],"sXTI":[15.32258,9.8523,2.55139],"d2Fw":[17.1,0.25913,1.00494],"XANR":[15.98185,0.25913,2.96577],"zieI":[15.77722,-4.31533,2.75858],"278Z":[16.82046,-4.31533,0.9291],"t1ZS":[16.54093,-8.8898,0.85327],"7I0d":[13.06808,-12.21445,2.29464],"YOFM":[13.78527,-12.56761,0.75929],"yUjk":[15.57258,-8.8898,2.55139],"knke":[13.73609,12.19991,1.14035],"CUTZ":[14.14536,9.8523,3.53181],"fcYX":[14.54516,0.25913,4.09785],"s4tK":[14.47026,-4.31533,3.81483],"yDfY":[11.82587,-11.60274,3.18108],"eigs":[14.39536,-8.8898,3.53181],"fB8t":[12.61794,12.19991,1.14035],"9vhb":[12.20867,9.8523,3.53181],"XBMt":[12.30886,0.25913,4.09785],"aA9m":[12.38377,-4.31533,3.81483],"S3HC":[10.3915,-10.89641,3.18108],"qIaE":[12.45867,-8.8898,3.53181],"83Nt":[11.64959,12.19991,0.80073],"1q5U":[10.53145,9.8523,2.55139],"SWoV":[10.37217,0.25913,2.96577],"NRSl":[10.57681,-4.31533,2.75858],"awWF":[9.14929,-10.28471,2.29464],"Vxap":[10.78145,-8.8898,2.55139],"vyqo":[11.09052,12.19991,0.21248],"sA6n":[9.5631,9.8523,0.85327],"9Q6s":[9.25403,0.25913,1.00494],"JI3G":[9.53356,-4.31533,0.9291],"8Y3V":[8.43211,-9.93154,0.75929],"EN2i":[9.8131,-8.8898,0.85327],"0l2y":[11.09052,12.19991,-0.46677],"xpr5":[9.5631,9.8523,-1.10756],"n4xX":[9.25403,0.25913,-1.25923],"0aPz":[9.53356,-4.31533,-1.1834],"BLCt":[8.43211,-9.93154,-1.01359],"xA2G":[9.8131,-8.8898,-1.10756],"AiCi":[11.64959,12.19991,-1.05502],"pTDB":[10.53145,9.8523,-2.80569],"bX8a":[10.37217,0.25913,-3.22006],"vqeN":[10.57681,-4.31533,-3.01288],"dODP":[9.14929,-10.28471,-2.54894],"OKJt":[10.78145,-8.8898,-2.80569],"I5Ae":[12.61794,12.19991,-1.39465],"ER65":[12.20867,9.8523,-3.78611],"LsId":[12.30886,0.25913,-4.35215],"aRCQ":[12.38377,-4.31533,-4.06913],"xYYB":[10.3915,-10.89641,-3.43538],"AC28":[12.45867,-8.8898,-3.78611],"oSky":[13.73609,12.19991,-1.39465],"fmrB":[14.14536,9.8523,-3.78611],"eD8x":[14.54516,0.25913,-4.35215],"uDvr":[14.47026,-4.31533,-4.06913],"i5mZ":[11.82587,-11.60274,-3.43538],"58xQ":[14.39536,-8.8898,-3.78611],"5RAb":[14.20443,12.19991,-1.05502],"VjKl":[15.32258,9.8523,-2.80569],"VvWB":[15.98185,0.25913,-3.22006],"MQPP":[15.77722,-4.31533,-3.01288],"qzy9":[13.06808,-12.21445,-2.54894],"s2Ch":[15.57258,-8.8898,-2.80569],"HOaT":[14.76351,12.19991,-0.46677],"GJ6O":[16.29093,9.8523,-1.10756],"arOd":[17.1,0.25913,-1.25923],"Dkus":[16.82046,-4.31533,-1.1834],"MgOk":[13.78527,-12.56761,-1.01359],"Lkze":[16.54093,-8.8898,-1.10756],"ajx1":[3.03427,-13.37254,-3.08465],"lMsd":[6.86043,-11.94775,-3.26001],"5X8g":[7.28252,-12.93912,-3.26001],"9c03":[3.03427,-12.27164,-3.08465],"zdnd":[6.4949,-11.0892,-2.42056],"J3zF":[3.03427,-11.31823,-2.29219],"mU4p":[6.28385,-10.59352,-0.9666],"raET":[3.03427,-10.76778,-0.91961],"oJeb":[6.28385,-10.59352,0.7123],"IApH":[3.03427,-10.76778,0.66531],"1yO4":[6.4949,-11.0892,2.16627],"ao4o":[3.03427,-11.31823,2.03789],"j115":[6.86043,-11.94775,3.00572],"XwTO":[3.03427,-12.27164,2.83035],"70Bg":[7.28252,-12.93912,3.00572],"ED7s":[3.03427,-13.37254,2.83035],"A5ha":[7.64806,-13.79766,2.16627],"bBbR":[3.03427,-14.32595,2.03789],"i2X4":[7.8591,-14.29335,0.7123],"DLTT":[3.03427,-14.8764,0.66531],"c1xS":[7.8591,-14.29335,-0.9666],"zt0Q":[3.03427,-14.8764,-0.91961],"6PmK":[7.64806,-13.79766,-2.42056],"oUmD":[3.03427,-14.32595,-2.29219]},"faces":{"8jr7VKm7":{"uv":{"TrsZ":[82.00003,41.0001],"gTZ2":[83.28279,43.51785],"leJZ":[82.44214,44.16795]},"texture":0,"vertices":["leJZ","gTZ2","TrsZ"]},"9Xh0Z0zj":{"uv":{"gTZ2":[29.12279,0.0048],"leJZ":[28.09291,0.11855],"Lqsk":[30.45341,5.76623],"mm2i":[27.90125,5.80772]},"texture":0,"vertices":["leJZ","mm2i","Lqsk","gTZ2"]},"mtiXrwnB":{"uv":{"Lqsk":[30.45341,5.76623],"mm2i":[27.90125,5.80772],"y3oC":[31.04586,30.06011],"ekc2":[28.09875,30.10802]},"texture":0,"vertices":["mm2i","ekc2","y3oC","Lqsk"]},"QzIQKEmr":{"uv":{"y3oC":[31.04586,30.06011],"ekc2":[28.09875,30.10802],"Ockv":[31.18171,50.56781],"UEbt":[28.62954,50.6093]},"texture":0,"vertices":["ekc2","UEbt","Ockv","y3oC"]},"Qrb8wV5j":{"uv":{"Ockv":[31.18171,50.56781],"UEbt":[28.62954,50.6093],"6Ffg":[31.10962,61.18179],"ykOS":[29.04659,61.21532]},"texture":0,"vertices":["UEbt","ykOS","6Ffg","Ockv"]},"NkcA3haf":{"uv":{"ITmC":[66.00008,76.00645],"ykOS":[62.10053,74.84772],"6Ffg":[63.17056,73.08357]},"texture":0,"vertices":["6Ffg","ykOS","ITmC"]},"wmEabgZW":{"uv":{"TrsZ":[82.00004,41.00011],"pvk0":[83.97388,42.35745],"gTZ2":[83.28279,43.51785]},"texture":0,"vertices":["gTZ2","pvk0","TrsZ"]},"P2CMx0ZD":{"uv":{"pvk0":[2.35746,2.3405],"gTZ2":[1.02933,2.43583],"nv33":[3.3487,8.3905],"Lqsk":[0.79644,8.34903]},"texture":0,"vertices":["gTZ2","Lqsk","nv33","pvk0"]},"EGvUu3zP":{"uv":{"nv33":[3.3487,8.3905],"Lqsk":[0.79644,8.34903],"swK3":[3.1513,32.6908],"y3oC":[0.20429,32.64292]},"texture":0,"vertices":["Lqsk","y3oC","swK3","nv33"]},"pmJGRAyS":{"uv":{"swK3":[3.1513,32.6908],"y3oC":[0.20429,32.64292],"qyK1":[2.62077,53.19209],"Ockv":[0.06851,53.15062]},"texture":0,"vertices":["y3oC","Ockv","qyK1","swK3"]},"MqRdM944":{"uv":{"qyK1":[2.62077,53.19209],"Ockv":[0.06851,53.15062],"g9wS":[2.20372,63.79811],"6Ffg":[0.14079,63.76459]},"texture":0,"vertices":["Ockv","6Ffg","g9wS","qyK1"]},"HunNxlEu":{"uv":{"ITmC":[66,76.00636],"6Ffg":[63.17056,73.08357],"g9wS":[64.9684,72.07136]},"texture":0,"vertices":["g9wS","6Ffg","ITmC"]},"PjkPWsnO":{"uv":{"TrsZ":[4.625,0],"e6mh":[5.3619,2.2793],"pvk0":[3.8881,2.2793]},"texture":0,"vertices":["pvk0","e6mh","TrsZ"]},"hYMFwOJL":{"uv":{"e6mh":[5.3619,2.2793],"pvk0":[3.8881,2.2793],"PwMV":[5.9013,8.3905],"nv33":[3.3487,8.3905]},"texture":0,"vertices":["pvk0","nv33","PwMV","e6mh"]},"JBzuJKIT":{"uv":{"PwMV":[5.9013,8.3905],"nv33":[3.3487,8.3905],"j9pZ":[6.0987,32.6908],"swK3":[3.1513,32.6908]},"texture":0,"vertices":["nv33","swK3","j9pZ","PwMV"]},"Hd4mzYj3":{"uv":{"j9pZ":[6.0987,32.6908],"swK3":[3.1513,32.6908],"NbqT":[5.9013,53.198],"qyK1":[3.3487,53.198]},"texture":0,"vertices":["swK3","qyK1","NbqT","j9pZ"]},"lS8u8wWJ":{"uv":{"NbqT":[5.9013,53.198],"qyK1":[3.3487,53.198],"NpKU":[5.6566,63.8094],"g9wS":[3.5934,63.8094]},"texture":0,"vertices":["qyK1","g9wS","NpKU","NbqT"]},"OPlEx7jv":{"uv":{"ITmC":[66,76.00636],"g9wS":[64.9684,72.07136],"NpKU":[67.0316,72.07136]},"texture":0,"vertices":["NpKU","g9wS","ITmC"]},"xq1EvFBD":{"uv":{"TrsZ":[1.99996,80.00011],"PxSY":[0.71721,82.51785],"e6mh":[0.02612,81.35745]},"texture":0,"vertices":["e6mh","PxSY","TrsZ"]},"BYgLjkcG":{"uv":{"PxSY":[8.22074,2.44003],"e6mh":[6.89247,2.3362],"kKkV":[8.45356,8.34903],"PwMV":[5.9013,8.3905]},"texture":0,"vertices":["e6mh","PwMV","kKkV","PxSY"]},"FdQlNjYg":{"uv":{"kKkV":[8.45356,8.34903],"PwMV":[5.9013,8.3905],"kBJZ":[9.04571,32.64292],"j9pZ":[6.0987,32.6908]},"texture":0,"vertices":["PwMV","j9pZ","kBJZ","kKkV"]},"3g9JvcR3":{"uv":{"kBJZ":[9.04571,32.64292],"j9pZ":[6.0987,32.6908],"Y2di":[9.18149,53.15062],"NbqT":[6.62923,53.19209]},"texture":0,"vertices":["j9pZ","NbqT","Y2di","kBJZ"]},"fOnoGE44":{"uv":{"Y2di":[9.18149,53.15062],"NbqT":[6.62923,53.19209],"MIuK":[9.10921,63.76459],"NpKU":[7.04628,63.79811]},"texture":0,"vertices":["NbqT","NpKU","MIuK","Y2di"]},"m15teQcJ":{"uv":{"ITmC":[66,76.00636],"NpKU":[67.0316,72.07136],"MIuK":[68.82944,73.08357]},"texture":0,"vertices":["MIuK","NpKU","ITmC"]},"Bp5P6XQS":{"uv":{"TrsZ":[1.99997,80.0001],"jppO":[1.55786,83.16795],"PxSY":[0.71721,82.51785]},"texture":0,"vertices":["PxSY","jppO","TrsZ"]},"uSNE5Kg5":{"uv":{"jppO":[36.15702,0.12325],"PxSY":[35.12729,0],"OyDQ":[36.34875,5.80772],"kKkV":[33.79659,5.76623]},"texture":0,"vertices":["PxSY","kKkV","OyDQ","jppO"]},"oV9DN7yW":{"uv":{"OyDQ":[36.34875,5.80772],"kKkV":[33.79659,5.76623],"MWMG":[36.15125,30.10802],"kBJZ":[33.20414,30.06011]},"texture":0,"vertices":["kKkV","kBJZ","MWMG","OyDQ"]},"YdAALiWH":{"uv":{"MWMG":[36.15125,30.10802],"kBJZ":[33.20414,30.06011],"Wc4V":[35.62046,50.6093],"Y2di":[33.06829,50.56781]},"texture":0,"vertices":["kBJZ","Y2di","Wc4V","MWMG"]},"XGfpNI5I":{"uv":{"Wc4V":[35.62046,50.6093],"Y2di":[33.06829,50.56781],"jqpR":[35.20341,61.21532],"MIuK":[33.14038,61.18179]},"texture":0,"vertices":["Y2di","MIuK","jqpR","Wc4V"]},"lfx9qHeY":{"uv":{"ITmC":[65.99992,76.00645],"MIuK":[68.82944,73.08357],"jqpR":[69.89947,74.84772]},"texture":0,"vertices":["jqpR","MIuK","ITmC"]},"lEi4dy0p":{"uv":{"TrsZ":[1.99996,80.00015],"Ewu8":[2.44216,83.16795],"jppO":[1.55786,83.16795]},"texture":0,"vertices":["jppO","Ewu8","TrsZ"]},"kP09N9Dv":{"uv":{"Ewu8":[38.06715,0.17672],"jppO":[37.18285,0.17672],"lvX9":[38.90125,5.80762],"OyDQ":[36.34875,5.80762]},"texture":0,"vertices":["jppO","OyDQ","lvX9","Ewu8"]},"NBAQ9WYi":{"uv":{"lvX9":[38.90125,5.80762],"OyDQ":[36.34875,5.80762],"0krR":[39.09875,30.10802],"MWMG":[36.15125,30.10802]},"texture":0,"vertices":["OyDQ","MWMG","0krR","lvX9"]},"xucvYeKl":{"uv":{"0krR":[39.09875,30.10802],"MWMG":[36.15125,30.10802],"8c8f":[38.90125,50.61522],"Wc4V":[36.34875,50.61522]},"texture":0,"vertices":["MWMG","Wc4V","8c8f","0krR"]},"407j1F3m":{"uv":{"8c8f":[38.90125,50.61522],"Wc4V":[36.34875,50.61522],"DVk2":[38.65665,61.22652],"jqpR":[36.59335,61.22652]},"texture":0,"vertices":["Wc4V","jqpR","DVk2","8c8f"]},"r97LaYML":{"uv":{"ITmC":[66.00001,76.00642],"jqpR":[69.89947,74.84772],"DVk2":[69.9664,76.90993]},"texture":0,"vertices":["DVk2","jqpR","ITmC"]},"PgySiDgb":{"uv":{"TrsZ":[1.99995,80.00011],"6fdL":[3.28279,82.51782],"Ewu8":[2.44216,83.16795]},"texture":0,"vertices":["Ewu8","6fdL","TrsZ"]},"qI5PrL80":{"uv":{"6fdL":[40.12279,0.0049],"Ewu8":[39.09291,0.11865],"S5Pl":[41.45341,5.76623],"lvX9":[38.90125,5.80772]},"texture":0,"vertices":["Ewu8","lvX9","S5Pl","6fdL"]},"UvSsYnJY":{"uv":{"S5Pl":[41.45341,5.76623],"lvX9":[38.90125,5.80772],"2E1V":[42.04586,30.06011],"0krR":[39.09875,30.10802]},"texture":0,"vertices":["lvX9","0krR","2E1V","S5Pl"]},"HzhHASB0":{"uv":{"2E1V":[42.04586,30.06011],"0krR":[39.09875,30.10802],"1TZv":[42.18171,50.56781],"8c8f":[39.62954,50.6093]},"texture":0,"vertices":["0krR","8c8f","1TZv","2E1V"]},"sbWl9YQX":{"uv":{"1TZv":[42.18171,50.56781],"8c8f":[39.62954,50.6093],"Hnv2":[42.10961,61.18169],"DVk2":[40.04659,61.21522]},"texture":0,"vertices":["8c8f","DVk2","Hnv2","1TZv"]},"VWlX7LUx":{"uv":{"ITmC":[66.00001,76.00642],"DVk2":[69.9664,76.90993],"Hnv2":[69.01291,78.7397]},"texture":0,"vertices":["Hnv2","DVk2","ITmC"]},"Iy3t4fRF":{"uv":{"TrsZ":[1.9999,80],"gmAy":[3.97388,81.35731],"6fdL":[3.28279,82.51782]},"texture":0,"vertices":["6fdL","gmAy","TrsZ"]},"EA0YU3Kh":{"uv":{"gmAy":[13.35736,2.3403],"6fdL":[12.02933,2.43573],"hu4p":[14.3487,8.3904],"S5Pl":[11.79644,8.34893]},"texture":0,"vertices":["6fdL","S5Pl","hu4p","gmAy"]},"SHsblJ9K":{"uv":{"hu4p":[14.3487,8.3904],"S5Pl":[11.79644,8.34893],"ByXH":[14.1513,32.6907],"2E1V":[11.20429,32.64282]},"texture":0,"vertices":["S5Pl","2E1V","ByXH","hu4p"]},"kcOPSpiv":{"uv":{"ByXH":[14.1513,32.6907],"2E1V":[11.20429,32.64282],"uykf":[13.62077,53.19199],"1TZv":[11.06851,53.15052]},"texture":0,"vertices":["2E1V","1TZv","uykf","ByXH"]},"H3RQUyGF":{"uv":{"uykf":[13.62077,53.19199],"1TZv":[11.06851,53.15052],"Ip50":[13.20372,63.79801],"Hnv2":[11.14079,63.76449]},"texture":0,"vertices":["1TZv","Hnv2","Ip50","uykf"]},"x9lF7OWg":{"uv":{"ITmC":[66.00001,76.00642],"Hnv2":[69.01291,78.7397],"Ip50":[67.28445,79.8663]},"texture":0,"vertices":["Ip50","Hnv2","ITmC"]},"IX9gKIJu":{"uv":{"TrsZ":[15.625,0],"BBgI":[16.3619,2.2793],"gmAy":[14.8881,2.2793]},"texture":0,"vertices":["gmAy","BBgI","TrsZ"]},"sv0fQs0M":{"uv":{"BBgI":[16.3619,2.2793],"gmAy":[14.8881,2.2793],"KHi9":[16.9013,8.3904],"hu4p":[14.3487,8.3904]},"texture":0,"vertices":["gmAy","hu4p","KHi9","BBgI"]},"ruCD1SAk":{"uv":{"KHi9":[16.9013,8.3904],"hu4p":[14.3487,8.3904],"ka0W":[17.0987,32.6907],"ByXH":[14.1513,32.6907]},"texture":0,"vertices":["hu4p","ByXH","ka0W","KHi9"]},"NICAvFnn":{"uv":{"ka0W":[17.0987,32.6907],"ByXH":[14.1513,32.6907],"V38x":[16.9013,53.1979],"uykf":[14.3487,53.1979]},"texture":0,"vertices":["ByXH","uykf","V38x","ka0W"]},"IyzdJ5o5":{"uv":{"V38x":[16.9013,53.1979],"uykf":[14.3487,53.1979],"R5xc":[16.6566,63.8093],"Ip50":[14.5934,63.8093]},"texture":0,"vertices":["uykf","Ip50","R5xc","V38x"]},"nukgmJVi":{"uv":{"ITmC":[66.00001,76.00642],"Ip50":[67.28445,79.8663],"R5xc":[65.22558,80]},"texture":0,"vertices":["R5xc","Ip50","ITmC"]},"vTii5aMP":{"uv":{"TrsZ":[82.0001,41],"ITmY":[80.71721,43.51782],"BBgI":[80.02612,42.35731]},"texture":0,"vertices":["BBgI","ITmY","TrsZ"]},"Tl5gKmI5":{"uv":{"ITmY":[19.22074,2.43983],"BBgI":[17.89257,2.3361],"3qcb":[19.45356,8.34893],"KHi9":[16.9013,8.3904]},"texture":0,"vertices":["BBgI","KHi9","3qcb","ITmY"]},"P7sRfrMr":{"uv":{"3qcb":[19.45356,8.34893],"KHi9":[16.9013,8.3904],"Hkpl":[20.04571,32.64282],"ka0W":[17.0987,32.6907]},"texture":0,"vertices":["KHi9","ka0W","Hkpl","3qcb"]},"SWArYJlI":{"uv":{"Hkpl":[20.04571,32.64282],"ka0W":[17.0987,32.6907],"uwAy":[20.18149,53.15052],"V38x":[17.62923,53.19199]},"texture":0,"vertices":["ka0W","V38x","uwAy","Hkpl"]},"pytB8qHt":{"uv":{"uwAy":[20.18149,53.15052],"V38x":[17.62923,53.19199],"nka3":[20.10921,63.76449],"R5xc":[18.04628,63.79801]},"texture":0,"vertices":["V38x","R5xc","nka3","uwAy"]},"60mJ54WZ":{"uv":{"ITmC":[65.99999,76.00642],"R5xc":[64.71555,79.8663],"nka3":[62.98709,78.7397]},"texture":0,"vertices":["nka3","R5xc","ITmC"]},"TChBKMCz":{"uv":{"TrsZ":[82.00005,41.00011],"WCrS":[81.55784,44.16795],"ITmY":[80.71721,43.51782]},"texture":0,"vertices":["ITmY","WCrS","TrsZ"]},"ibTXcsoX":{"uv":{"WCrS":[25.15702,0.12335],"ITmY":[24.12729,0],"fAbV":[25.34875,5.80772],"3qcb":[22.79659,5.76623]},"texture":0,"vertices":["ITmY","3qcb","fAbV","WCrS"]},"VQ6IZ2DK":{"uv":{"fAbV":[25.34875,5.80772],"3qcb":[22.79659,5.76623],"kEz2":[25.15125,30.10802],"Hkpl":[22.20414,30.06011]},"texture":0,"vertices":["3qcb","Hkpl","kEz2","fAbV"]},"NjSTVBZw":{"uv":{"kEz2":[25.15125,30.10802],"Hkpl":[22.20414,30.06011],"F4u4":[24.62046,50.6093],"uwAy":[22.06829,50.56781]},"texture":0,"vertices":["Hkpl","uwAy","F4u4","kEz2"]},"4u1w5oRe":{"uv":{"F4u4":[24.62046,50.6093],"uwAy":[22.06829,50.56781],"Rkj7":[24.20341,61.21522],"nka3":[22.14039,61.18169]},"texture":0,"vertices":["uwAy","nka3","Rkj7","F4u4"]},"dTtWC6bG":{"uv":{"ITmC":[65.99999,76.00642],"nka3":[62.98709,78.7397],"Rkj7":[62.0336,76.90993]},"texture":0,"vertices":["Rkj7","nka3","ITmC"]},"G4lPz888":{"uv":{"TrsZ":[82.00004,41.00015],"leJZ":[82.44214,44.16795],"WCrS":[81.55784,44.16795]},"texture":0,"vertices":["WCrS","leJZ","TrsZ"]},"Sf9CT1JU":{"uv":{"leJZ":[27.06715,0.17672],"WCrS":[26.18285,0.17672],"mm2i":[27.90125,5.80762],"fAbV":[25.34875,5.80762]},"texture":0,"vertices":["WCrS","fAbV","mm2i","leJZ"]},"BsCJxxyZ":{"uv":{"mm2i":[27.90125,5.80762],"fAbV":[25.34875,5.80762],"ekc2":[28.09875,30.10802],"kEz2":[25.15125,30.10802]},"texture":0,"vertices":["fAbV","kEz2","ekc2","mm2i"]},"RBLcFCHz":{"uv":{"ekc2":[28.09875,30.10802],"kEz2":[25.15125,30.10802],"UEbt":[27.90125,50.61522],"F4u4":[25.34875,50.61522]},"texture":0,"vertices":["kEz2","F4u4","UEbt","ekc2"]},"iLeQH2Yl":{"uv":{"UEbt":[27.90125,50.61522],"F4u4":[25.34875,50.61522],"ykOS":[27.65665,61.22652],"Rkj7":[25.59335,61.22652]},"texture":0,"vertices":["F4u4","Rkj7","ykOS","UEbt"]},"Jm6B0KYK":{"uv":{"ITmC":[65.99999,76.00642],"Rkj7":[62.0336,76.90993],"ykOS":[62.10053,74.84772]},"texture":0,"vertices":["ykOS","Rkj7","ITmC"]},"LC3219JW":{"uv":{"CJ8q":[91.62553,73.21826],"Nq0e":[92.57665,74.88626],"Xj1D":[91.96512,75.4197]},"texture":0,"vertices":["Xj1D","Nq0e","CJ8q"]},"bumMz3iZ":{"uv":{"Nq0e":[84.3866,54.0465],"Xj1D":[83.60204,54.17939],"Yb0j":[85.43452,56.99656],"Q9H4":[83.48045,57.04999]},"texture":0,"vertices":["Xj1D","Q9H4","Yb0j","Nq0e"]},"kKYC6PU0":{"uv":{"Yb0j":[85.43452,56.99656],"Q9H4":[83.48045,57.04999],"CsLe":[85.88841,67.84591],"SyWC":[83.63205,67.9076]},"texture":0,"vertices":["Q9H4","SyWC","CsLe","Yb0j"]},"kVN8k7nx":{"uv":{"CsLe":[85.88841,67.84591],"hRsm":[83.82988,72.4869],"ncIp":[85.93509,72.42935],"SyWC":[83.63205,67.9076]},"texture":0,"vertices":["SyWC","hRsm","ncIp","CsLe"]},"5sGK2k4y":{"uv":{"AqZ0":[95.85374,44.76505],"my61":[94,49.06851],"DYBi":[95.7215,49.25],"Fsz7":[94,44.15581]},"texture":0,"vertices":["Fsz7","my61","DYBi","AqZ0"]},"FkzsH797":{"uv":{"CJ8q":[91.62551,73.21824],"wclZ":[92.99565,73.9495],"Nq0e":[92.57665,74.88626]},"texture":0,"vertices":["Nq0e","wclZ","CJ8q"]},"WeTsahWD":{"uv":{"wclZ":[92.99136,73.95909],"Nq0e":[92.57665,74.88626],"DKsL":[96.22095,74.93205],"Yb0j":[95.20806,76.58992]},"texture":0,"vertices":["Nq0e","Yb0j","DKsL","wclZ"]},"L0gFCljV":{"uv":{"DKsL":[66.56772,0.05476],"Yb0j":[64.62569,0],"Z3Gz":[66.41792,10.91275],"CsLe":[64.17551,10.84952]},"texture":0,"vertices":["Yb0j","CsLe","Z3Gz","DKsL"]},"e3tt9lqO":{"uv":{"Z3Gz":[66.41792,10.91275],"ncIp":[64.1184,15.43283],"9vIg":[66.21067,15.49183],"CsLe":[64.17551,10.84952]},"texture":0,"vertices":["CsLe","ncIp","9vIg","Z3Gz"]},"ekwukFV7":{"uv":{"nVcd":[66.00332,20.071],"DYBi":[66.4343,23.83049],"FM11":[67.97607,23.2597],"AqZ0":[64.0681,20.01644]},"texture":0,"vertices":["AqZ0","DYBi","FM11","nVcd"]},"4CWX3GKn":{"uv":{"CJ8q":[91.62554,73.21825],"yna4":[93.13171,72.8396],"wclZ":[92.99565,73.9495]},"texture":0,"vertices":["wclZ","yna4","CJ8q"]},"VMoGZ6No":{"uv":{"yna4":[56.531,65.24467],"wclZ":[55.4128,65.24467],"9jKB":[56.9402,68.59577],"DKsL":[55.0035,68.59577]},"texture":0,"vertices":["wclZ","DKsL","9jKB","yna4"]},"ovbHgOgA":{"uv":{"9jKB":[68.50442,0.05485],"DKsL":[66.56772,0.05485],"Aay8":[68.65422,10.91275],"Z3Gz":[66.41792,10.91275]},"texture":0,"vertices":["DKsL","Z3Gz","Aay8","9jKB"]},"DYGCZfWo":{"uv":{"Aay8":[68.65422,10.91275],"9vIg":[66.49282,15.49595],"AlV5":[68.57932,15.49595],"Z3Gz":[66.41792,10.91275]},"texture":0,"vertices":["Z3Gz","9vIg","AlV5","Aay8"]},"l2E6OfjX":{"uv":{"PIoW":[68.50442,20.07915],"FM11":[69.14137,22.81241],"5H4a":[70.57707,22.10879],"nVcd":[66.56951,20.07915]},"texture":0,"vertices":["nVcd","FM11","5H4a","PIoW"]},"QEAAFgy9":{"uv":{"CJ8q":[91.62551,73.21826],"aW5h":[92.95132,71.82938],"yna4":[93.13171,72.8396]},"texture":0,"vertices":["yna4","aW5h","CJ8q"]},"K0TbnrG1":{"uv":{"aW5h":[57.51765,65],"yna4":[56.53099,65.24459],"dzyr":[58.7465,67.88039],"9jKB":[56.9402,68.59577]},"texture":0,"vertices":["yna4","9jKB","dzyr","aW5h"]},"UNSXKvjR":{"uv":{"dzyr":[70.44645,0],"9jKB":[68.50442,0.05476],"T9ah":[70.89663,10.84952],"Aay8":[68.65422,10.91275]},"texture":0,"vertices":["9jKB","Aay8","T9ah","dzyr"]},"WX8fe6kH":{"uv":{"T9ah":[70.89663,10.84952],"AlV5":[68.86157,15.49193],"I74x":[70.95374,15.43293],"Aay8":[68.65422,10.91275]},"texture":0,"vertices":["Aay8","AlV5","I74x","T9ah"]},"O6hsaz62":{"uv":{"xWga":[71.01085,20.01634],"5H4a":[71.09297,22.15233],"BuEl":[72.5957,21.48527],"PIoW":[69.07036,20.07106]},"texture":0,"vertices":["PIoW","5H4a","BuEl","xWga"]},"RycE8fLV":{"uv":{"CJ8q":[91.62549,73.21828],"8FAq":[92.48667,71.16396],"aW5h":[92.95132,71.82938]},"texture":0,"vertices":["aW5h","8FAq","CJ8q"]},"o95xsoxi":{"uv":{"8FAq":[87.39795,79.18338],"aW5h":[86.61351,79.04219],"iEoM":[87.51955,82.04988],"dzyr":[85.56548,81.99645]},"texture":0,"vertices":["aW5h","dzyr","iEoM","8FAq"]},"eBE4Eyy0":{"uv":{"iEoM":[87.51955,82.04988],"dzyr":[85.56548,81.99645],"jyRh":[87.36795,92.90749],"T9ah":[85.11159,92.8458]},"texture":0,"vertices":["dzyr","T9ah","jyRh","iEoM"]},"kG5DoaFz":{"uv":{"jyRh":[87.36795,92.90749],"I74x":[85.0649,97.42934],"RawT":[87.17012,97.48689],"T9ah":[85.11159,92.8458]},"texture":0,"vertices":["T9ah","I74x","RawT","jyRh"]},"VObXS706":{"uv":{"9BZR":[95.78716,5.78335],"BuEl":[94.18617,7.15448],"UztP":[95.88084,7.5072],"xWga":[94.00194,5]},"texture":0,"vertices":["xWga","BuEl","UztP","9BZR"]},"xJKkUhpB":{"uv":{"CJ8q":[91.62554,73.21827],"YUba":[90.76439,71.16401],"8FAq":[91.42359,71]},"texture":0,"vertices":["8FAq","YUba","CJ8q"]},"fRMAUF8e":{"uv":{"YUba":[89.60194,79.17938],"8FAq":[88.94675,79],"s9wW":[89.48045,82.04988],"iEoM":[87.58915,81.53208]},"texture":0,"vertices":["8FAq","iEoM","s9wW","YUba"]},"q3OOcMCM":{"uv":{"s9wW":[89.48045,82.04999],"iEoM":[87.51955,82.04999],"q2Tv":[89.63205,92.90749],"jyRh":[87.36795,92.90749]},"texture":0,"vertices":["iEoM","jyRh","q2Tv","s9wW"]},"vfKa5y4n":{"uv":{"q2Tv":[89.63205,92.90749],"RawT":[87.44375,97.49049],"a7I1":[89.55625,97.49049],"jyRh":[87.36795,92.90749]},"texture":0,"vertices":["jyRh","RawT","a7I1","q2Tv"]},"hcV0bruC":{"uv":{"pRId":[97.74806,5.78335],"UztP":[95.88116,7.51325],"KDb7":[97.65406,7.51325],"9BZR":[95.78716,5.78335]},"texture":0,"vertices":["9BZR","UztP","KDb7","pRId"]},"73N9oXcs":{"uv":{"CJ8q":[91.62555,73.21828],"pGHe":[90.29977,71.82934],"YUba":[90.76439,71.16401]},"texture":0,"vertices":["YUba","pGHe","CJ8q"]},"6jTSePVD":{"uv":{"pGHe":[90.3866,79.04639],"YUba":[89.60194,79.17938],"YgO2":[91.43452,81.99645],"s9wW":[89.48045,82.04988]},"texture":0,"vertices":["YUba","s9wW","YgO2","pGHe"]},"thlBpNa1":{"uv":{"YgO2":[91.43452,81.99645],"s9wW":[89.48045,82.04988],"EUN2":[91.88841,92.8458],"q2Tv":[89.63205,92.90749]},"texture":0,"vertices":["s9wW","q2Tv","EUN2","YgO2"]},"UG1i5cXp":{"uv":{"EUN2":[91.88841,92.8458],"a7I1":[89.82988,97.48689],"XVAY":[91.9351,97.42934],"q2Tv":[89.63205,92.90749]},"texture":0,"vertices":["q2Tv","a7I1","XVAY","EUN2"]},"l5Lzu2Xi":{"uv":{"Axob":[76.48863,52],"KDb7":[75.19846,54.84956],"mZah":[76.77543,54.13588],"pRId":[74.91142,53.14108]},"texture":0,"vertices":["pRId","KDb7","mZah","Axob"]},"xbpndVOM":{"uv":{"CJ8q":[91.62553,73.21826],"Q7YU":[90.11937,72.83946],"pGHe":[90.29977,71.82934]},"texture":0,"vertices":["pGHe","Q7YU","CJ8q"]},"RSLb2IRJ":{"uv":{"Q7YU":[16.21848,65.25078],"pGHe":[15.23423,65],"yFPP":[15.80967,68.59879],"YgO2":[14.00363,67.88301]},"texture":0,"vertices":["pGHe","YgO2","yFPP","Q7YU"]},"WFHcE2ye":{"uv":{"yFPP":[66.49153,47.05478],"YgO2":[64.5496,47.00002],"ANLe":[66.34173,57.91277],"EUN2":[64.09932,57.84954]},"texture":0,"vertices":["YgO2","EUN2","ANLe","yFPP"]},"YEaYDPx8":{"uv":{"ANLe":[66.34173,57.91277],"XVAY":[64.04231,62.43295],"M3GU":[66.13448,62.49195],"EUN2":[64.09932,57.84954]},"texture":0,"vertices":["EUN2","XVAY","M3GU","ANLe"]},"Tn6c8iG7":{"uv":{"c37e":[65.92713,67.07102],"mZah":[62.40492,68.48932],"fTWp":[63.90877,69.15385],"Axob":[63.98792,67.01634]},"texture":0,"vertices":["Axob","mZah","fTWp","c37e"]},"uhCTgcLR":{"uv":{"CJ8q":[91.6255,73.21825],"qiyI":[90.25532,73.94936],"Q7YU":[90.11937,72.83946]},"texture":0,"vertices":["Q7YU","qiyI","CJ8q"]},"ttUNojAF":{"uv":{"qiyI":[17.33707,65.24759],"Q7YU":[16.21887,65.24759],"NsHT":[17.74637,68.59879],"yFPP":[15.80967,68.59879]},"texture":0,"vertices":["Q7YU","yFPP","NsHT","qiyI"]},"d4NQRZrh":{"uv":{"NsHT":[68.42823,47.05487],"yFPP":[66.49153,47.05487],"JONz":[68.57803,57.91277],"ANLe":[66.34173,57.91277]},"texture":0,"vertices":["yFPP","ANLe","JONz","NsHT"]},"EMpqKOa8":{"uv":{"JONz":[68.57803,57.91277],"M3GU":[66.41663,62.49597],"zpNe":[68.50313,62.49597],"ANLe":[66.34173,57.91277]},"texture":0,"vertices":["ANLe","M3GU","zpNe","JONz"]},"yoWXs2Kg":{"uv":{"68Ui":[68.42823,67.07917],"fTWp":[64.4241,69.11281],"hoCv":[65.86084,69.81439],"c37e":[66.49468,67.07917]},"texture":0,"vertices":["c37e","fTWp","hoCv","68Ui"]},"4XW6I3pi":{"uv":{"CJ8q":[91.62553,73.21824],"3pvB":[90.67423,74.88617],"qiyI":[90.25532,73.94936]},"texture":0,"vertices":["qiyI","3pvB","CJ8q"]},"sqCk9akE":{"uv":{"3pvB":[90.67028,74.87734],"qiyI":[90.25532,73.94936],"kwW4":[88.05206,76.59537],"NsHT":[87.02905,74.94385]},"texture":0,"vertices":["qiyI","NsHT","kwW4","3pvB"]},"WhszFpIV":{"uv":{"kwW4":[70.37015,47],"NsHT":[68.42823,47.05477],"BmQ8":[70.82043,57.84952],"JONz":[68.57803,57.91277]},"texture":0,"vertices":["NsHT","JONz","BmQ8","kwW4"]},"YZxKn8I1":{"uv":{"BmQ8":[70.82043,57.84952],"zpNe":[68.78542,62.49184],"Lb18":[70.87758,62.43283],"JONz":[68.57803,57.91277]},"texture":0,"vertices":["JONz","zpNe","Lb18","BmQ8"]},"SZUxzkTf":{"uv":{"4Q0M":[70.93474,67.01624],"hoCv":[67.04031,70.26997],"Clb0":[68.58419,70.83514],"68Ui":[69.00246,67.07074]},"texture":0,"vertices":["68Ui","hoCv","Clb0","4Q0M"]},"MI9nzxxL":{"uv":{"CJ8q":[91.6255,73.21828],"kpnI":[91.28582,75.4197],"3pvB":[90.67423,74.88617]},"texture":0,"vertices":["3pvB","kpnI","CJ8q"]},"aEdQYhIX":{"uv":{"kpnI":[81.39784,54.18359],"3pvB":[80.61351,54.0423],"TLEt":[81.51955,57.04999],"kwW4":[79.56548,56.99656]},"texture":0,"vertices":["3pvB","kwW4","TLEt","kpnI"]},"6NjSc7YN":{"uv":{"TLEt":[81.51955,57.04999],"kwW4":[79.56548,56.99656],"WDb8":[81.36795,67.9076],"BmQ8":[79.11159,67.84591]},"texture":0,"vertices":["kwW4","BmQ8","WDb8","TLEt"]},"rX11alJl":{"uv":{"WDb8":[81.36795,67.9076],"Lb18":[79.06491,72.42935],"HVgF":[81.17012,72.4869],"BmQ8":[79.11159,67.84591]},"texture":0,"vertices":["BmQ8","Lb18","HVgF","WDb8"]},"u1FN16MI":{"uv":{"uohf":[99.25,53],"Clb0":[94.21046,51.12884],"7wPN":[94.34104,52.85487],"4Q0M":[98.69889,51.12884]},"texture":0,"vertices":["4Q0M","Clb0","7wPN","uohf"]},"4gOXMK46":{"uv":{"CJ8q":[91.62552,73.2182],"Xj1D":[91.96512,75.4197],"kpnI":[91.28582,75.4197]},"texture":0,"vertices":["kpnI","Xj1D","CJ8q"]},"gPD5HkXf":{"uv":{"Xj1D":[83.60204,54.17939],"kpnI":[82.94686,54],"Q9H4":[83.48045,57.04999],"TLEt":[81.58916,56.53215]},"texture":0,"vertices":["kpnI","TLEt","Q9H4","Xj1D"]},"RZYNa1k1":{"uv":{"Q9H4":[83.48045,57.05],"TLEt":[81.51955,57.05],"SyWC":[83.63205,67.9076],"WDb8":[81.36795,67.9076]},"texture":0,"vertices":["TLEt","WDb8","SyWC","Q9H4"]},"48lfbtEt":{"uv":{"SyWC":[83.63205,67.9076],"HVgF":[81.44375,72.4906],"hRsm":[83.55625,72.4906],"WDb8":[81.36795,67.9076]},"texture":0,"vertices":["WDb8","HVgF","hRsm","SyWC"]},"wNQSEOKv":{"uv":{"Fsz7":[67.23532,25.22185],"7wPN":[65.64488,30.23],"my61":[67.41503,30.13126],"uohf":[65.27746,25.33106]},"texture":0,"vertices":["uohf","7wPN","my61","Fsz7"]},"FGPjQiOj":{"uv":{"c37e":[66.49153,67.07917],"M3GU":[66.41663,62.49597],"zpNe":[68.50313,62.49597],"68Ui":[68.42823,67.07917]},"texture":0,"vertices":["68Ui","zpNe","M3GU","c37e"]},"smkv6Zgr":{"uv":{"Axob":[63.9852,67.01626],"XVAY":[64.04231,62.43295],"M3GU":[66.13448,62.49195],"c37e":[65.92713,67.07102]},"texture":0,"vertices":["c37e","M3GU","XVAY","Axob"]},"IsSKOfsC":{"uv":{"pRId":[90.02771,102.0662],"a7I1":[89.82988,97.48689],"XVAY":[91.9351,97.42934],"Axob":[91.98178,102.01277]},"texture":0,"vertices":["Axob","XVAY","a7I1","pRId"]},"G62BKzZn":{"uv":{"9BZR":[87.51955,102.07349],"RawT":[87.44375,97.49049],"a7I1":[89.55625,97.49049],"pRId":[89.48045,102.07349]},"texture":0,"vertices":["pRId","a7I1","RawT","9BZR"]},"pdgNdNd0":{"uv":{"xWga":[85.01822,102.01277],"I74x":[85.0649,97.42934],"RawT":[87.17012,97.48689],"9BZR":[86.97229,102.0662]},"texture":0,"vertices":["9BZR","RawT","I74x","xWga"]},"jjtmHCrX":{"uv":{"PIoW":[69.06882,20.0711],"AlV5":[68.86157,15.49193],"I74x":[70.95374,15.43293],"xWga":[71.01085,20.01634]},"texture":0,"vertices":["xWga","I74x","AlV5","PIoW"]},"LyUgqTnm":{"uv":{"nVcd":[66.56772,20.07915],"9vIg":[66.49282,15.49595],"AlV5":[68.57932,15.49595],"PIoW":[68.50442,20.07915]},"texture":0,"vertices":["PIoW","AlV5","9vIg","nVcd"]},"wsAuhsKC":{"uv":{"AqZ0":[64.06129,20.01624],"ncIp":[64.1184,15.43283],"9vIg":[66.21067,15.49183],"nVcd":[66.00332,20.071]},"texture":0,"vertices":["nVcd","9vIg","ncIp","AqZ0"]},"yrzA8jMw":{"uv":{"Fsz7":[84.02771,77.06631],"hRsm":[83.82988,72.4869],"ncIp":[85.93509,72.42935],"AqZ0":[85.98178,77.01288]},"texture":0,"vertices":["AqZ0","ncIp","hRsm","Fsz7"]},"uExt8SMX":{"uv":{"uohf":[81.51955,77.0736],"HVgF":[81.44375,72.4906],"hRsm":[83.55625,72.4906],"Fsz7":[83.48045,77.0736]},"texture":0,"vertices":["Fsz7","hRsm","HVgF","uohf"]},"SxzyckN5":{"uv":{"4Q0M":[79.01822,77.01288],"Lb18":[79.06491,72.42935],"HVgF":[81.17012,72.4869],"uohf":[80.97229,77.06631]},"texture":0,"vertices":["uohf","HVgF","Lb18","4Q0M"]},"zJJEqT1H":{"uv":{"68Ui":[68.99281,67.07101],"zpNe":[68.78542,62.49184],"Lb18":[70.87758,62.43283],"4Q0M":[70.93474,67.01624]},"texture":0,"vertices":["4Q0M","Lb18","zpNe","68Ui"]},"50AarOiv":{"uv":{"tPHD":[57.06526,70.52039],"qSDn":[61.31994,71.16966],"POpO":[60.89396,70.17995],"seuD":[57.0699,71.62108]},"texture":0,"vertices":["seuD","qSDn","POpO","tPHD"]},"1adF0aH8":{"uv":{"6bEQ":[94,41.1091],"POpO":[97.9163,41.9037],"GY3J":[97.4501,40.7383],"tPHD":[94.0976,42.3433]},"texture":0,"vertices":["tPHD","POpO","GY3J","6bEQ"]},"hVkBdnoA":{"uv":{"L20p":[75.29245,60.34719],"GY3J":[76.87915,56.91056],"ixOG":[75.33944,57.09357],"6bEQ":[76.76963,60.37933]},"texture":0,"vertices":["6bEQ","GY3J","ixOG","L20p"]},"iT9N1w2p":{"uv":{"1ubg":[73.70755,60.34719],"ixOG":[75.33945,57.09289],"LQSt":[73.66055,57.09289],"L20p":[75.29245,60.34719]},"texture":0,"vertices":["L20p","ixOG","LQSt","1ubg"]},"bMmBnaoy":{"uv":{"qoI1":[72.23058,60.37806],"LQSt":[73.66055,57.09289],"NKna":[72.12076,56.90988],"1ubg":[73.70755,60.34706]},"texture":0,"vertices":["1ubg","LQSt","NKna","qoI1"]},"fLkgKDJi":{"uv":{"YcxO":[69.41121,92.24117],"NKna":[66.03291,90.69307],"BOiJ":[65.58641,91.86617],"qoI1":[69.48931,91.00607]},"texture":0,"vertices":["qoI1","NKna","BOiJ","YcxO"]},"CMeJUJSs":{"uv":{"xqwY":[77.93569,24.60474],"BOiJ":[74.10941,23.16967],"jMaA":[73.68509,24.16001],"YcxO":[77.93871,23.50405]},"texture":0,"vertices":["YcxO","BOiJ","jMaA","xqwY"]},"jd3brKlz":{"uv":{"RPjm":[103.13021,85.25],"jMaA":[98.94281,83.4154],"GgnY":[98.53081,84.601],"xqwY":[103.17461,84.0139]},"texture":0,"vertices":["xqwY","jMaA","GgnY","RPjm"]},"Ergy8MqQ":{"uv":{"74V5":[67.66752,41.25],"GgnY":[69.25763,36.54134],"ullJ":[67.71451,36.39044],"RPjm":[69.14383,41.18563]},"texture":0,"vertices":["RPjm","GgnY","ullJ","74V5"]},"45vVoNvq":{"uv":{"lWea":[66.08262,41.25],"ullJ":[67.71452,36.3901],"PZbb":[66.03562,36.3901],"74V5":[67.66752,41.25]},"texture":0,"vertices":["74V5","ullJ","PZbb","lWea"]},"JFEUeQoY":{"uv":{"tNDj":[64.6062,41.185],"PZbb":[66.03562,36.3901],"9a4R":[64.49243,36.541],"lWea":[66.08262,41.24998]},"texture":0,"vertices":["lWea","PZbb","9a4R","tNDj"]},"BXFckSlr":{"uv":{"seuD":[93.0838,79.2643],"9a4R":[97.7359,79.7747],"qSDn":[97.3044,78.5961],"tNDj":[93.1472,80.5]},"texture":0,"vertices":["tNDj","9a4R","qSDn","seuD"]},"aUdXMSHk":{"uv":{"UztP":[73.80151,54.84886],"LQSt":[73.66055,57.09289],"NKna":[72.12076,56.90988],"BuEl":[72.22447,54.13528]},"texture":0,"vertices":["BuEl","NKna","LQSt","UztP"]},"3LP7O3nJ":{"uv":{"KDb7":[97.65406,7.51325],"ixOG":[97.60706,9.76125],"LQSt":[95.92816,9.76125],"UztP":[95.88116,7.51325]},"texture":0,"vertices":["UztP","LQSt","ixOG","KDb7"]},"ZpPykX5U":{"uv":{"mZah":[76.77544,54.13588],"GY3J":[76.87924,56.91055],"ixOG":[75.33944,57.09357],"KDb7":[75.19846,54.84956]},"texture":0,"vertices":["KDb7","ixOG","GY3J","mZah"]},"ADm5CQRt":{"uv":{"fTWp":[101.47638,40.93909],"POpO":[97.9163,41.90369],"GY3J":[97.4501,40.7383],"mZah":[100.12678,40]},"texture":0,"vertices":["mZah","GY3J","POpO","fTWp"]},"e8eZsoS5":{"uv":{"hoCv":[65.86084,69.81439],"qSDn":[61.31992,71.16963],"POpO":[60.89396,70.17995],"fTWp":[64.42481,69.11316]},"texture":0,"vertices":["fTWp","POpO","qSDn","hoCv"]},"sAheyiQ1":{"uv":{"Clb0":[103.1662,78.22252],"9a4R":[97.73592,79.77474],"qSDn":[97.3044,78.5961],"hoCv":[101.84632,77.24364]},"texture":0,"vertices":["hoCv","qSDn","9a4R","Clb0"]},"PwTcCqjY":{"uv":{"7wPN":[65.64489,30.23007],"PZbb":[66.03558,36.3901],"9a4R":[64.49243,36.541],"Clb0":[64.05327,30.91015]},"texture":0,"vertices":["Clb0","9a4R","PZbb","7wPN"]},"E2WBqEJ8":{"uv":{"my61":[67.41503,30.13126],"ullJ":[67.71187,36.2966],"PZbb":[66.03558,36.3901],"7wPN":[65.64488,30.23]},"texture":0,"vertices":["7wPN","PZbb","ullJ","my61"]},"pQSoPrMU":{"uv":{"DYBi":[69.69673,30.91048],"GgnY":[69.25782,36.54136],"ullJ":[67.71451,36.39044],"my61":[68.10513,30.23035]},"texture":0,"vertices":["my61","ullJ","GgnY","DYBi"]},"c1ugKpxU":{"uv":{"FM11":[94.37924,82.13841],"jMaA":[98.94283,83.41534],"GgnY":[98.53081,84.601],"DYBi":[93.07539,83.13897]},"texture":0,"vertices":["DYBi","GgnY","jMaA","FM11"]},"1IzSMLMp":{"uv":{"5H4a":[70.57707,22.10879],"BOiJ":[74.10945,23.16956],"jMaA":[73.68509,24.16001],"FM11":[69.14172,22.81223]},"texture":0,"vertices":["FM11","jMaA","BOiJ","5H4a"]},"bdogNvOh":{"uv":{"BuEl":[63.34423,90],"NKna":[66.0329,90.6931],"BOiJ":[65.58641,91.86617],"5H4a":[62.01069,90.96152]},"texture":0,"vertices":["5H4a","BOiJ","NKna","BuEl"]},"pdTzCkYs":{"uv":{"4eGK":[91.96512,75.4197],"appN":[92.57665,74.88626],"gXO4":[91.62553,73.21826]},"texture":0,"vertices":["appN","4eGK","gXO4"]},"4mM3EPeW":{"uv":{"dDzg":[83.48045,57.04999],"sXTI":[85.43452,56.99656],"4eGK":[83.60204,54.17939],"appN":[84.3866,54.0465]},"texture":0,"vertices":["sXTI","dDzg","4eGK","appN"]},"wdQypwdS":{"uv":{"d2Fw":[83.63205,67.9076],"XANR":[85.88841,67.84591],"dDzg":[83.48045,57.04999],"sXTI":[85.43452,56.99656]},"texture":0,"vertices":["XANR","d2Fw","dDzg","sXTI"]},"A7rntWnt":{"uv":{"d2Fw":[83.63205,67.9076],"zieI":[85.93509,72.42935],"278Z":[83.82988,72.4869],"XANR":[85.88841,67.84591]},"texture":0,"vertices":["zieI","278Z","d2Fw","XANR"]},"O8XHWrgY":{"uv":{"t1ZS":[94,44.15581],"7I0d":[95.7215,49.25],"YOFM":[94,49.06851],"yUjk":[95.85374,44.76505]},"texture":0,"vertices":["7I0d","YOFM","t1ZS","yUjk"]},"Pn30hPxA":{"uv":{"appN":[92.57665,74.88626],"knke":[92.99565,73.9495],"gXO4":[91.62551,73.21824]},"texture":0,"vertices":["knke","appN","gXO4"]},"JU6A9kPx":{"uv":{"sXTI":[95.20806,76.58992],"CUTZ":[96.22095,74.93205],"appN":[92.57665,74.88626],"knke":[92.99136,73.95909]},"texture":0,"vertices":["CUTZ","sXTI","appN","knke"]},"ygumWdYp":{"uv":{"XANR":[64.17551,10.84952],"fcYX":[66.41792,10.91275],"sXTI":[64.62569,0],"CUTZ":[66.56772,0.05476]},"texture":0,"vertices":["fcYX","XANR","sXTI","CUTZ"]},"EFWHE2mp":{"uv":{"XANR":[64.17551,10.84952],"s4tK":[66.21067,15.49183],"zieI":[64.1184,15.43283],"fcYX":[66.41792,10.91275]},"texture":0,"vertices":["s4tK","zieI","XANR","fcYX"]},"dNGGCcGr":{"uv":{"yUjk":[64.0681,20.01644],"yDfY":[67.97607,23.2597],"7I0d":[66.4343,23.83049],"eigs":[66.00332,20.071]},"texture":0,"vertices":["yDfY","7I0d","yUjk","eigs"]},"YvxgRAsA":{"uv":{"knke":[92.99565,73.9495],"fB8t":[93.13171,72.8396],"gXO4":[91.62554,73.21825]},"texture":0,"vertices":["fB8t","knke","gXO4"]},"TWhqHeDA":{"uv":{"CUTZ":[55.0035,68.59577],"9vhb":[56.9402,68.59577],"knke":[55.4128,65.24467],"fB8t":[56.531,65.24467]},"texture":0,"vertices":["9vhb","CUTZ","knke","fB8t"]},"aOOxTTvR":{"uv":{"fcYX":[66.41792,10.91275],"XBMt":[68.65422,10.91275],"CUTZ":[66.56772,0.05485],"9vhb":[68.50442,0.05485]},"texture":0,"vertices":["XBMt","fcYX","CUTZ","9vhb"]},"OlO1cTne":{"uv":{"fcYX":[66.41792,10.91275],"aA9m":[68.57932,15.49595],"s4tK":[66.49282,15.49595],"XBMt":[68.65422,10.91275]},"texture":0,"vertices":["aA9m","s4tK","fcYX","XBMt"]},"A2EQ97xt":{"uv":{"eigs":[66.56951,20.07915],"S3HC":[70.57707,22.10879],"yDfY":[69.14137,22.81241],"qIaE":[68.50442,20.07915]},"texture":0,"vertices":["S3HC","yDfY","eigs","qIaE"]},"ZXnNbWaU":{"uv":{"fB8t":[93.13171,72.8396],"83Nt":[92.95132,71.82938],"gXO4":[91.62551,73.21826]},"texture":0,"vertices":["83Nt","fB8t","gXO4"]},"2JbzHfO8":{"uv":{"9vhb":[56.9402,68.59577],"1q5U":[58.7465,67.88039],"fB8t":[56.53099,65.24459],"83Nt":[57.51765,65]},"texture":0,"vertices":["1q5U","9vhb","fB8t","83Nt"]},"MLovhace":{"uv":{"XBMt":[68.65422,10.91275],"SWoV":[70.89663,10.84952],"9vhb":[68.50442,0.05476],"1q5U":[70.44645,0]},"texture":0,"vertices":["SWoV","XBMt","9vhb","1q5U"]},"KFNohD6y":{"uv":{"XBMt":[68.65422,10.91275],"NRSl":[70.95374,15.43293],"aA9m":[68.86157,15.49193],"SWoV":[70.89663,10.84952]},"texture":0,"vertices":["NRSl","aA9m","XBMt","SWoV"]},"g3I5lSJq":{"uv":{"qIaE":[69.07036,20.07106],"awWF":[72.5957,21.48527],"S3HC":[71.09297,22.15233],"Vxap":[71.01085,20.01634]},"texture":0,"vertices":["awWF","S3HC","qIaE","Vxap"]},"EIPcl0pp":{"uv":{"83Nt":[92.95132,71.82938],"vyqo":[92.48667,71.16396],"gXO4":[91.62549,73.21828]},"texture":0,"vertices":["vyqo","83Nt","gXO4"]},"8DeFnbwg":{"uv":{"1q5U":[85.56548,81.99645],"sA6n":[87.51955,82.04988],"83Nt":[86.61351,79.04219],"vyqo":[87.39795,79.18338]},"texture":0,"vertices":["sA6n","1q5U","83Nt","vyqo"]},"ZiIU7qPu":{"uv":{"SWoV":[85.11159,92.8458],"9Q6s":[87.36795,92.90749],"1q5U":[85.56548,81.99645],"sA6n":[87.51955,82.04988]},"texture":0,"vertices":["9Q6s","SWoV","1q5U","sA6n"]},"alth0xSZ":{"uv":{"SWoV":[85.11159,92.8458],"JI3G":[87.17012,97.48689],"NRSl":[85.0649,97.42934],"9Q6s":[87.36795,92.90749]},"texture":0,"vertices":["JI3G","NRSl","SWoV","9Q6s"]},"B6r5OVKJ":{"uv":{"Vxap":[94.00194,5],"8Y3V":[95.88084,7.5072],"awWF":[94.18617,7.15448],"EN2i":[95.78716,5.78335]},"texture":0,"vertices":["8Y3V","awWF","Vxap","EN2i"]},"ugefkDlq":{"uv":{"vyqo":[91.42359,71],"0l2y":[90.76439,71.16401],"gXO4":[91.62554,73.21827]},"texture":0,"vertices":["0l2y","vyqo","gXO4"]},"qnHEym5y":{"uv":{"sA6n":[87.58915,81.53208],"xpr5":[89.48045,82.04988],"vyqo":[88.94675,79],"0l2y":[89.60194,79.17938]},"texture":0,"vertices":["xpr5","sA6n","vyqo","0l2y"]},"UTYaYEbE":{"uv":{"9Q6s":[87.36795,92.90749],"n4xX":[89.63205,92.90749],"sA6n":[87.51955,82.04999],"xpr5":[89.48045,82.04999]},"texture":0,"vertices":["n4xX","9Q6s","sA6n","xpr5"]},"xjgy191P":{"uv":{"9Q6s":[87.36795,92.90749],"0aPz":[89.55625,97.49049],"JI3G":[87.44375,97.49049],"n4xX":[89.63205,92.90749]},"texture":0,"vertices":["0aPz","JI3G","9Q6s","n4xX"]},"9rOXuAtv":{"uv":{"EN2i":[95.78716,5.78335],"BLCt":[97.65406,7.51325],"8Y3V":[95.88116,7.51325],"xA2G":[97.74806,5.78335]},"texture":0,"vertices":["BLCt","8Y3V","EN2i","xA2G"]},"P7iiB9TC":{"uv":{"0l2y":[90.76439,71.16401],"AiCi":[90.29977,71.82934],"gXO4":[91.62555,73.21828]},"texture":0,"vertices":["AiCi","0l2y","gXO4"]},"fMMNtgZ2":{"uv":{"xpr5":[89.48045,82.04988],"pTDB":[91.43452,81.99645],"0l2y":[89.60194,79.17938],"AiCi":[90.3866,79.04639]},"texture":0,"vertices":["pTDB","xpr5","0l2y","AiCi"]},"YMup28OC":{"uv":{"n4xX":[89.63205,92.90749],"bX8a":[91.88841,92.8458],"xpr5":[89.48045,82.04988],"pTDB":[91.43452,81.99645]},"texture":0,"vertices":["bX8a","n4xX","xpr5","pTDB"]},"bVqyklBZ":{"uv":{"n4xX":[89.63205,92.90749],"vqeN":[91.9351,97.42934],"0aPz":[89.82988,97.48689],"bX8a":[91.88841,92.8458]},"texture":0,"vertices":["vqeN","0aPz","n4xX","bX8a"]},"p78566eV":{"uv":{"xA2G":[74.91142,53.14108],"dODP":[76.77543,54.13588],"BLCt":[75.19846,54.84956],"OKJt":[76.48863,52]},"texture":0,"vertices":["dODP","BLCt","xA2G","OKJt"]},"4JqyYO9M":{"uv":{"AiCi":[90.29977,71.82934],"I5Ae":[90.11937,72.83946],"gXO4":[91.62553,73.21826]},"texture":0,"vertices":["I5Ae","AiCi","gXO4"]},"90IOlj89":{"uv":{"pTDB":[14.00363,67.88301],"ER65":[15.80967,68.59879],"AiCi":[15.23423,65],"I5Ae":[16.21848,65.25078]},"texture":0,"vertices":["ER65","pTDB","AiCi","I5Ae"]},"SHZw9wOO":{"uv":{"bX8a":[64.09932,57.84954],"LsId":[66.34173,57.91277],"pTDB":[64.5496,47.00002],"ER65":[66.49153,47.05478]},"texture":0,"vertices":["LsId","bX8a","pTDB","ER65"]},"TRaMCHO1":{"uv":{"bX8a":[64.09932,57.84954],"aRCQ":[66.13448,62.49195],"vqeN":[64.04231,62.43295],"LsId":[66.34173,57.91277]},"texture":0,"vertices":["aRCQ","vqeN","bX8a","LsId"]},"d8Atjl8Q":{"uv":{"OKJt":[63.98792,67.01634],"xYYB":[63.90877,69.15385],"dODP":[62.40492,68.48932],"AC28":[65.92713,67.07102]},"texture":0,"vertices":["xYYB","dODP","OKJt","AC28"]},"S4opTFC8":{"uv":{"I5Ae":[90.11937,72.83946],"oSky":[90.25532,73.94936],"gXO4":[91.6255,73.21825]},"texture":0,"vertices":["oSky","I5Ae","gXO4"]},"7D8jDZ3G":{"uv":{"ER65":[15.80967,68.59879],"fmrB":[17.74637,68.59879],"I5Ae":[16.21887,65.24759],"oSky":[17.33707,65.24759]},"texture":0,"vertices":["fmrB","ER65","I5Ae","oSky"]},"sNX0hMLb":{"uv":{"LsId":[66.34173,57.91277],"eD8x":[68.57803,57.91277],"ER65":[66.49153,47.05487],"fmrB":[68.42823,47.05487]},"texture":0,"vertices":["eD8x","LsId","ER65","fmrB"]},"8AzQr3Ez":{"uv":{"LsId":[66.34173,57.91277],"uDvr":[68.50313,62.49597],"aRCQ":[66.41663,62.49597],"eD8x":[68.57803,57.91277]},"texture":0,"vertices":["uDvr","aRCQ","LsId","eD8x"]},"u0gdLLQj":{"uv":{"AC28":[66.49468,67.07917],"i5mZ":[65.86084,69.81439],"xYYB":[64.4241,69.11281],"58xQ":[68.42823,67.07917]},"texture":0,"vertices":["i5mZ","xYYB","AC28","58xQ"]},"8S1JlG8V":{"uv":{"oSky":[90.25532,73.94936],"5RAb":[90.67423,74.88617],"gXO4":[91.62553,73.21824]},"texture":0,"vertices":["5RAb","oSky","gXO4"]},"jn7R1zfd":{"uv":{"fmrB":[87.02905,74.94385],"VjKl":[88.05206,76.59537],"oSky":[90.25532,73.94936],"5RAb":[90.67028,74.87734]},"texture":0,"vertices":["VjKl","fmrB","oSky","5RAb"]},"Bcb0tveZ":{"uv":{"eD8x":[68.57803,57.91277],"VvWB":[70.82043,57.84952],"fmrB":[68.42823,47.05477],"VjKl":[70.37015,47]},"texture":0,"vertices":["VvWB","eD8x","fmrB","VjKl"]},"ui2QXo5B":{"uv":{"eD8x":[68.57803,57.91277],"MQPP":[70.87758,62.43283],"uDvr":[68.78542,62.49184],"VvWB":[70.82043,57.84952]},"texture":0,"vertices":["MQPP","uDvr","eD8x","VvWB"]},"t1q0oRDI":{"uv":{"58xQ":[69.00246,67.07074],"qzy9":[68.58419,70.83514],"i5mZ":[67.04031,70.26997],"s2Ch":[70.93474,67.01624]},"texture":0,"vertices":["qzy9","i5mZ","58xQ","s2Ch"]},"XgRidrdg":{"uv":{"5RAb":[90.67423,74.88617],"HOaT":[91.28582,75.4197],"gXO4":[91.6255,73.21828]},"texture":0,"vertices":["HOaT","5RAb","gXO4"]},"So7gJqX1":{"uv":{"VjKl":[79.56548,56.99656],"GJ6O":[81.51955,57.04999],"5RAb":[80.61351,54.0423],"HOaT":[81.39784,54.18359]},"texture":0,"vertices":["GJ6O","VjKl","5RAb","HOaT"]},"jR4EyRUf":{"uv":{"VvWB":[79.11159,67.84591],"arOd":[81.36795,67.9076],"VjKl":[79.56548,56.99656],"GJ6O":[81.51955,57.04999]},"texture":0,"vertices":["arOd","VvWB","VjKl","GJ6O"]},"aISJINSI":{"uv":{"VvWB":[79.11159,67.84591],"Dkus":[81.17012,72.4869],"MQPP":[79.06491,72.42935],"arOd":[81.36795,67.9076]},"texture":0,"vertices":["Dkus","MQPP","VvWB","arOd"]},"vEgJvTgC":{"uv":{"s2Ch":[98.69889,51.12884],"MgOk":[94.34104,52.85487],"qzy9":[94.21046,51.12884],"Lkze":[99.25,53]},"texture":0,"vertices":["MgOk","qzy9","s2Ch","Lkze"]},"553iiqXl":{"uv":{"HOaT":[91.28582,75.4197],"4eGK":[91.96512,75.4197],"gXO4":[91.62552,73.2182]},"texture":0,"vertices":["4eGK","HOaT","gXO4"]},"0RIc4weT":{"uv":{"GJ6O":[81.58916,56.53215],"dDzg":[83.48045,57.04999],"HOaT":[82.94686,54],"4eGK":[83.60204,54.17939]},"texture":0,"vertices":["dDzg","GJ6O","HOaT","4eGK"]},"Y0Tjhr3u":{"uv":{"arOd":[81.36795,67.9076],"d2Fw":[83.63205,67.9076],"GJ6O":[81.51955,57.05],"dDzg":[83.48045,57.05]},"texture":0,"vertices":["d2Fw","arOd","GJ6O","dDzg"]},"B25bplaR":{"uv":{"arOd":[81.36795,67.9076],"278Z":[83.55625,72.4906],"Dkus":[81.44375,72.4906],"d2Fw":[83.63205,67.9076]},"texture":0,"vertices":["278Z","Dkus","arOd","d2Fw"]},"LxPtENtA":{"uv":{"Lkze":[65.27746,25.33106],"YOFM":[67.41503,30.13126],"MgOk":[65.64488,30.23],"t1ZS":[67.23532,25.22185]},"texture":0,"vertices":["YOFM","MgOk","Lkze","t1ZS"]},"aGsBjs8p":{"uv":{"58xQ":[68.42823,67.07917],"uDvr":[68.50313,62.49597],"aRCQ":[66.41663,62.49597],"AC28":[66.49153,67.07917]},"texture":0,"vertices":["aRCQ","uDvr","58xQ","AC28"]},"9rEmy0ld":{"uv":{"AC28":[65.92713,67.07102],"aRCQ":[66.13448,62.49195],"vqeN":[64.04231,62.43295],"OKJt":[63.9852,67.01626]},"texture":0,"vertices":["vqeN","aRCQ","AC28","OKJt"]},"eHw8Y5VH":{"uv":{"OKJt":[91.98178,102.01277],"vqeN":[91.9351,97.42934],"0aPz":[89.82988,97.48689],"xA2G":[90.02771,102.0662]},"texture":0,"vertices":["0aPz","vqeN","OKJt","xA2G"]},"K9eNaYIu":{"uv":{"xA2G":[89.48045,102.07349],"0aPz":[89.55625,97.49049],"JI3G":[87.44375,97.49049],"EN2i":[87.51955,102.07349]},"texture":0,"vertices":["JI3G","0aPz","xA2G","EN2i"]},"jCdtv4uu":{"uv":{"EN2i":[86.97229,102.0662],"JI3G":[87.17012,97.48689],"NRSl":[85.0649,97.42934],"Vxap":[85.01822,102.01277]},"texture":0,"vertices":["NRSl","JI3G","EN2i","Vxap"]},"jjY2LM6p":{"uv":{"Vxap":[71.01085,20.01634],"NRSl":[70.95374,15.43293],"aA9m":[68.86157,15.49193],"qIaE":[69.06882,20.0711]},"texture":0,"vertices":["aA9m","NRSl","Vxap","qIaE"]},"Ik1CfKNp":{"uv":{"qIaE":[68.50442,20.07915],"aA9m":[68.57932,15.49595],"s4tK":[66.49282,15.49595],"eigs":[66.56772,20.07915]},"texture":0,"vertices":["s4tK","aA9m","qIaE","eigs"]},"ELz4YFii":{"uv":{"eigs":[66.00332,20.071],"s4tK":[66.21067,15.49183],"zieI":[64.1184,15.43283],"yUjk":[64.06129,20.01624]},"texture":0,"vertices":["zieI","s4tK","eigs","yUjk"]},"MeRoFXEF":{"uv":{"yUjk":[85.98178,77.01288],"zieI":[85.93509,72.42935],"278Z":[83.82988,72.4869],"t1ZS":[84.02771,77.06631]},"texture":0,"vertices":["278Z","zieI","yUjk","t1ZS"]},"HmOt6dwz":{"uv":{"t1ZS":[83.48045,77.0736],"278Z":[83.55625,72.4906],"Dkus":[81.44375,72.4906],"Lkze":[81.51955,77.0736]},"texture":0,"vertices":["Dkus","278Z","t1ZS","Lkze"]},"443Vk4Zx":{"uv":{"Lkze":[80.97229,77.06631],"Dkus":[81.17012,72.4869],"MQPP":[79.06491,72.42935],"s2Ch":[79.01822,77.01288]},"texture":0,"vertices":["MQPP","Dkus","Lkze","s2Ch"]},"09HTU9Or":{"uv":{"s2Ch":[70.93474,67.01624],"MQPP":[70.87758,62.43283],"uDvr":[68.78542,62.49184],"58xQ":[68.99281,67.07101]},"texture":0,"vertices":["uDvr","MQPP","s2Ch","58xQ"]},"jPhzSjJ8":{"uv":{"ajx1":[57.0699,71.62108],"lMsd":[60.89396,70.17995],"5X8g":[61.31994,71.16966],"9c03":[57.06526,70.52039]},"texture":0,"vertices":["lMsd","5X8g","ajx1","9c03"]},"HTsivOPo":{"uv":{"9c03":[94.0976,42.3433],"zdnd":[97.4501,40.7383],"lMsd":[97.9163,41.9037],"J3zF":[94,41.1091]},"texture":0,"vertices":["zdnd","lMsd","9c03","J3zF"]},"V1LLOPiA":{"uv":{"J3zF":[76.76963,60.37933],"mU4p":[75.33944,57.09357],"zdnd":[76.87915,56.91056],"raET":[75.29245,60.34719]},"texture":0,"vertices":["mU4p","zdnd","J3zF","raET"]},"BliIamTn":{"uv":{"raET":[75.29245,60.34719],"oJeb":[73.66055,57.09289],"mU4p":[75.33945,57.09289],"IApH":[73.70755,60.34719]},"texture":0,"vertices":["oJeb","mU4p","raET","IApH"]},"b27P9aSk":{"uv":{"IApH":[73.70755,60.34706],"1yO4":[72.12076,56.90988],"oJeb":[73.66055,57.09289],"ao4o":[72.23058,60.37806]},"texture":0,"vertices":["1yO4","oJeb","IApH","ao4o"]},"U6vQHWJe":{"uv":{"ao4o":[69.48931,91.00607],"j115":[65.58641,91.86617],"1yO4":[66.03291,90.69307],"XwTO":[69.41121,92.24117]},"texture":0,"vertices":["j115","1yO4","ao4o","XwTO"]},"4TpngdNx":{"uv":{"XwTO":[77.93871,23.50405],"70Bg":[73.68509,24.16001],"j115":[74.10941,23.16967],"ED7s":[77.93569,24.60474]},"texture":0,"vertices":["70Bg","j115","XwTO","ED7s"]},"OThcOkc9":{"uv":{"ED7s":[103.17461,84.0139],"A5ha":[98.53081,84.601],"70Bg":[98.94281,83.4154],"bBbR":[103.13021,85.25]},"texture":0,"vertices":["A5ha","70Bg","ED7s","bBbR"]},"cWGv4M2H":{"uv":{"bBbR":[69.14383,41.18563],"i2X4":[67.71451,36.39044],"A5ha":[69.25763,36.54134],"DLTT":[67.66752,41.25]},"texture":0,"vertices":["i2X4","A5ha","bBbR","DLTT"]},"EJlYPWFA":{"uv":{"DLTT":[67.66752,41.25],"c1xS":[66.03562,36.3901],"i2X4":[67.71452,36.3901],"zt0Q":[66.08262,41.25]},"texture":0,"vertices":["c1xS","i2X4","DLTT","zt0Q"]},"vsnERY5h":{"uv":{"zt0Q":[66.08262,41.24998],"6PmK":[64.49243,36.541],"c1xS":[66.03562,36.3901],"oUmD":[64.6062,41.185]},"texture":0,"vertices":["6PmK","c1xS","zt0Q","oUmD"]},"pevv9nOC":{"uv":{"oUmD":[93.1472,80.5],"5X8g":[97.3044,78.5961],"6PmK":[97.7359,79.7747],"ajx1":[93.0838,79.2643]},"texture":0,"vertices":["5X8g","6PmK","oUmD","ajx1"]},"elwYFJll":{"uv":{"awWF":[72.22447,54.13528],"1yO4":[72.12076,56.90988],"oJeb":[73.66055,57.09289],"8Y3V":[73.80151,54.84886]},"texture":0,"vertices":["oJeb","1yO4","awWF","8Y3V"]},"V96vCMxR":{"uv":{"8Y3V":[95.88116,7.51325],"oJeb":[95.92816,9.76125],"mU4p":[97.60706,9.76125],"BLCt":[97.65406,7.51325]},"texture":0,"vertices":["mU4p","oJeb","8Y3V","BLCt"]},"ZQslornw":{"uv":{"BLCt":[75.19846,54.84956],"mU4p":[75.33944,57.09357],"zdnd":[76.87924,56.91055],"dODP":[76.77544,54.13588]},"texture":0,"vertices":["zdnd","mU4p","BLCt","dODP"]},"0jbogB0T":{"uv":{"dODP":[100.12678,40],"zdnd":[97.4501,40.7383],"lMsd":[97.9163,41.90369],"xYYB":[101.47638,40.93909]},"texture":0,"vertices":["lMsd","zdnd","dODP","xYYB"]},"Go3h7xBh":{"uv":{"xYYB":[64.42481,69.11316],"lMsd":[60.89396,70.17995],"5X8g":[61.31992,71.16963],"i5mZ":[65.86084,69.81439]},"texture":0,"vertices":["5X8g","lMsd","xYYB","i5mZ"]},"5EQvvAnJ":{"uv":{"i5mZ":[101.84632,77.24364],"5X8g":[97.3044,78.5961],"6PmK":[97.73592,79.77474],"qzy9":[103.1662,78.22252]},"texture":0,"vertices":["6PmK","5X8g","i5mZ","qzy9"]},"rJSNuBIt":{"uv":{"qzy9":[64.05327,30.91015],"6PmK":[64.49243,36.541],"c1xS":[66.03558,36.3901],"MgOk":[65.64489,30.23007]},"texture":0,"vertices":["c1xS","6PmK","qzy9","MgOk"]},"i4VLXQfT":{"uv":{"MgOk":[65.64488,30.23],"c1xS":[66.03558,36.3901],"i2X4":[67.71187,36.2966],"YOFM":[67.41503,30.13126]},"texture":0,"vertices":["i2X4","c1xS","MgOk","YOFM"]},"k0YqlMqU":{"uv":{"YOFM":[68.10513,30.23035],"i2X4":[67.71451,36.39044],"A5ha":[69.25782,36.54136],"7I0d":[69.69673,30.91048]},"texture":0,"vertices":["A5ha","i2X4","YOFM","7I0d"]},"mNHrFHkk":{"uv":{"7I0d":[93.07539,83.13897],"A5ha":[98.53081,84.601],"70Bg":[98.94283,83.41534],"yDfY":[94.37924,82.13841]},"texture":0,"vertices":["70Bg","A5ha","7I0d","yDfY"]},"qmt7Zrbt":{"uv":{"yDfY":[69.14172,22.81223],"70Bg":[73.68509,24.16001],"j115":[74.10945,23.16956],"S3HC":[70.57707,22.10879]},"texture":0,"vertices":["j115","70Bg","yDfY","S3HC"]},"WkCFhUrA":{"uv":{"S3HC":[62.01069,90.96152],"j115":[65.58641,91.86617],"1yO4":[66.0329,90.6931],"awWF":[63.34423,90]},"texture":0,"vertices":["1yO4","j115","S3HC","awWF"]}},"type":"mesh","uuid":"de13959b-d3b3-20e7-31fb-8c3af2a01352"},{"name":"sphere","color":4,"origin":[0,29.29987,-0.39785],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"4094":[7.01455,-13.62199,-2.14915],"ITmC":[0,-33.29987,0.39785],"TrsZ":[0,29.70013,0.39785],"leJZ":[-2.5,28.12756,0.79978],"mm2i":[-4.33013,22.86881,1.55811],"ekc2":[-5,-1.42035,1.7376],"UEbt":[-4.33013,-21.91433,1.55811],"ykOS":[-3.5,-32.48634,1.33567],"gTZ2":[-1.83013,28.12756,1.49593],"Lqsk":[-3.16987,22.86881,3.56772],"y3oC":[-3.66025,-1.42035,4.05811],"Ockv":[-3.16987,-21.91433,3.56772],"6Ffg":[-2.56218,-32.48634,2.96003],"pvk0":[-0.66987,28.12756,1.89785],"nv33":[-1.16025,22.86881,4.72798],"swK3":[-1.33975,-1.42035,5.39785],"qyK1":[-1.16025,-21.91433,4.72798],"g9wS":[-0.93782,-32.48634,3.89785],"e6mh":[0.66987,28.12756,1.89785],"PwMV":[1.16025,22.86881,4.72798],"j9pZ":[1.33975,-1.42035,5.39785],"NbqT":[1.16025,-21.91433,4.72798],"NpKU":[0.93782,-32.48634,3.89785],"PxSY":[1.83013,28.12756,1.49593],"kKkV":[3.16987,22.86881,3.56772],"kBJZ":[3.66025,-1.42035,4.05811],"Y2di":[3.16987,-21.91433,3.56772],"MIuK":[2.56218,-32.48634,2.96003],"jppO":[2.5,28.12756,0.79978],"OyDQ":[4.33013,22.86881,1.55811],"MWMG":[5,-1.42035,1.7376],"Wc4V":[4.33013,-21.91433,1.55811],"jqpR":[3.5,-32.48634,1.33567],"Ewu8":[2.5,28.12756,-0.00407],"lvX9":[4.33013,22.86881,-0.7624],"0krR":[5,-1.42035,-0.94189],"8c8f":[4.33013,-21.91433,-0.7624],"DVk2":[3.5,-32.48634,-0.53997],"6fdL":[1.83013,28.12756,-0.70022],"S5Pl":[3.16987,22.86881,-2.77202],"2E1V":[3.66025,-1.42035,-3.2624],"1TZv":[3.16987,-21.91433,-2.77202],"Hnv2":[2.56218,-32.48634,-2.16433],"gmAy":[0.66987,28.12756,-1.10215],"hu4p":[1.16025,22.86881,-3.93228],"ByXH":[1.33975,-1.42035,-4.60215],"uykf":[1.16025,-21.91433,-3.93228],"Ip50":[0.93782,-32.48634,-3.10215],"BBgI":[-0.66987,28.12756,-1.10215],"KHi9":[-1.16025,22.86881,-3.93228],"ka0W":[-1.33975,-1.42035,-4.60215],"V38x":[-1.16025,-21.91433,-3.93228],"R5xc":[-0.93782,-32.48634,-3.10215],"ITmY":[-1.83013,28.12756,-0.70022],"3qcb":[-3.16987,22.86881,-2.77202],"Hkpl":[-3.66025,-1.42035,-3.2624],"uwAy":[-3.16987,-21.91433,-2.77202],"nka3":[-2.56218,-32.48634,-2.16433],"WCrS":[-2.5,28.12756,-0.00407],"fAbV":[-4.33013,22.86881,-0.7624],"kEz2":[-5,-1.42035,-0.94189],"F4u4":[-4.33013,-21.91433,-0.7624],"Rkj7":[-3.5,-32.48634,-0.53997],"CJ8q":[-13,20.40194,-0.12715],"Xj1D":[-14.8,19.74828,0.17228],"Q9H4":[-16.11769,17.56241,0.73724],"SyWC":[-16.6,7.46632,0.87096],"Fsz7":[-16.11769,-1.05226,0.73724],"74V5":[-3.03427,-6.6264,0.57153],"Nq0e":[-14.31769,19.74828,0.69092],"Yb0j":[-15.28231,17.56241,2.23441],"CsLe":[-15.63538,7.46632,2.59974],"AqZ0":[-15.28231,-1.05226,2.23441],"RPjm":[-3.03427,-6.11387,1.78167],"wclZ":[-13.48231,19.74828,0.99035],"DKsL":[-13.83538,17.56241,3.0988],"Z3Gz":[-13.96462,7.46632,3.59785],"nVcd":[-13.83538,-1.05226,3.0988],"xqwY":[-3.03427,-5.22615,2.48035],"yna4":[-12.51769,19.74828,0.99035],"9jKB":[-12.16462,17.56241,3.0988],"Aay8":[-12.03538,7.46632,3.59785],"PIoW":[-12.16462,-1.05226,3.0988],"YcxO":[-3.03427,-4.2011,2.48035],"aW5h":[-11.68231,19.74828,0.69092],"dzyr":[-10.71769,17.56241,2.23441],"T9ah":[-10.36462,7.46632,2.59974],"xWga":[-10.71769,-1.05226,2.23441],"qoI1":[-3.03427,-3.31338,1.78167],"8FAq":[-11.2,19.74828,0.17228],"iEoM":[-9.88231,17.56241,0.73724],"jyRh":[-9.4,7.46632,0.87096],"9BZR":[-9.88231,-1.05226,0.73724],"1ubg":[-3.03427,-2.80086,0.57153],"YUba":[-11.2,19.74828,-0.42658],"s9wW":[-9.88231,17.56241,-0.99154],"q2Tv":[-9.4,7.46632,-1.12526],"pRId":[-9.88231,-1.05226,-0.99154],"L20p":[-3.03427,-2.80086,-0.82583],"pGHe":[-11.68231,19.74828,-0.94522],"YgO2":[-10.71769,17.56241,-2.4887],"EUN2":[-10.36462,7.46632,-2.85404],"Axob":[-10.71769,-1.05226,-2.4887],"6bEQ":[-3.03427,-3.31338,-2.03597],"Q7YU":[-12.51769,19.74828,-1.24465],"yFPP":[-12.16462,17.56241,-3.35309],"ANLe":[-12.03538,7.46632,-3.85215],"c37e":[-12.16462,-1.05226,-3.35309],"tPHD":[-3.03427,-4.2011,-2.73465],"qiyI":[-13.48231,19.74828,-1.24465],"NsHT":[-13.83538,17.56241,-3.35309],"JONz":[-13.96462,7.46632,-3.85215],"68Ui":[-13.83538,-1.05226,-3.35309],"seuD":[-3.03427,-5.22615,-2.73465],"3pvB":[-14.31769,19.74828,-0.94522],"kwW4":[-15.28231,17.56241,-2.4887],"BmQ8":[-15.63538,7.46632,-2.85404],"4Q0M":[-15.28231,-1.05226,-2.4887],"tNDj":[-3.03427,-6.11387,-2.03597],"kpnI":[-14.8,19.74828,-0.42658],"TLEt":[-16.11769,17.56241,-0.99154],"WDb8":[-16.6,7.46632,-1.12526],"uohf":[-16.11769,-1.05226,-0.99154],"lWea":[-3.03427,-6.6264,-0.82583],"zpNe":[-13.9,3.20703,-3.60262],"M3GU":[-12.1,3.20703,-3.60262],"XVAY":[-10.54115,3.20703,-2.67137],"a7I1":[-9.64115,3.20703,-1.0584],"RawT":[-9.64115,3.20703,0.8041],"I74x":[-10.54115,3.20703,2.41707],"AlV5":[-12.1,3.20703,3.34832],"9vIg":[-13.9,3.20703,3.34832],"ncIp":[-15.45885,3.20703,2.41707],"hRsm":[-16.35885,3.20703,0.8041],"HVgF":[-16.35885,3.20703,-1.0584],"Lb18":[-15.45885,3.20703,-2.67137],"hoCv":[-11.61871,-3.57829,-3.04387],"fTWp":[-10.38129,-2.92062,-3.04387],"mZah":[-9.30965,-2.35106,-2.26234],"KDb7":[-8.69094,-2.02223,-0.90868],"UztP":[-8.69094,-2.02223,0.65438],"BuEl":[-9.30965,-2.35106,2.00804],"5H4a":[-10.38129,-2.92062,2.78957],"FM11":[-11.61871,-3.57829,2.78957],"DYBi":[-12.69035,-4.14785,2.00804],"my61":[-13.30906,-4.47669,0.65438],"7wPN":[-13.30906,-4.47669,-0.90868],"Clb0":[-12.69035,-4.14785,-2.26234],"NKna":[-6.01972,-3.10014,1.89486],"LQSt":[-5.83766,-2.6386,0.61296],"ixOG":[-5.83766,-2.6386,-0.86725],"GY3J":[-6.01972,-3.10014,-2.14915],"POpO":[-6.33507,-3.89953,-2.88926],"qSDn":[-6.6992,-4.82259,-2.88926],"9a4R":[-7.01455,-5.62199,-2.14915],"PZbb":[-7.19661,-6.08352,-0.86725],"ullJ":[-7.19661,-6.08352,0.61296],"GgnY":[-7.01455,-5.62199,1.89486],"jMaA":[-6.6992,-4.82259,2.63496],"BOiJ":[-6.33507,-3.89953,2.63496],"MNqj":[14.8,11.74828,0.17228],"NXlf":[14.31769,11.74828,0.69092],"mJIn":[13,12.40194,-0.12715],"c4Do":[16.11769,9.56241,0.73724],"ULX7":[15.28231,9.56241,2.23441],"aF6r":[16.6,-0.53368,0.87096],"o8FK":[15.63538,-0.53368,2.59974],"zv69":[15.45885,-4.79297,2.41707],"GYlm":[16.35885,-4.79297,0.8041],"soJY":[16.11769,-9.05226,0.73724],"Hvku":[12.69035,-12.14785,2.00804],"A15s":[13.30906,-12.47669,0.65438],"DppR":[15.28231,-9.05226,2.23441],"CEh5":[13.48231,11.74828,0.99035],"QWxH":[13.83538,9.56241,3.0988],"HKfP":[13.96462,-0.53368,3.59785],"PEiU":[13.9,-4.79297,3.34832],"N06t":[11.61871,-11.57829,2.78957],"uR59":[13.83538,-9.05226,3.0988],"bSPc":[12.51769,11.74828,0.99035],"lXb6":[12.16462,9.56241,3.0988],"eSGY":[12.03538,-0.53368,3.59785],"zvEr":[12.1,-4.79297,3.34832],"IHUm":[10.38129,-10.92062,2.78957],"4Cmy":[12.16462,-9.05226,3.0988],"5MBJ":[11.68231,11.74828,0.69092],"Obz1":[10.71769,9.56241,2.23441],"su8s":[10.36462,-0.53368,2.59974],"9lOl":[10.54115,-4.79297,2.41707],"2lO9":[9.30965,-10.35106,2.00804],"mh97":[10.71769,-9.05226,2.23441],"SZMy":[11.2,11.74828,0.17228],"WfRm":[9.88231,9.56241,0.73724],"YjkP":[9.4,-0.53368,0.87096],"LT1v":[9.64115,-4.79297,0.8041],"91yC":[8.69094,-10.02223,0.65438],"qH1q":[9.88231,-9.05226,0.73724],"CwT8":[11.2,11.74828,-0.42658],"PYPa":[9.88231,9.56241,-0.99154],"xW5d":[9.4,-0.53368,-1.12526],"ZkK0":[9.64115,-4.79297,-1.0584],"xelF":[8.69094,-10.02223,-0.90868],"q10Y":[9.88231,-9.05226,-0.99154],"qrYa":[11.68231,11.74828,-0.94522],"EOpj":[10.71769,9.56241,-2.4887],"VOJ7":[10.36462,-0.53368,-2.85404],"6BXj":[10.54115,-4.79297,-2.67137],"CihN":[9.30965,-10.35106,-2.26234],"ayCh":[10.71769,-9.05226,-2.4887],"KkvQ":[12.51769,11.74828,-1.24465],"gUcA":[12.16462,9.56241,-3.35309],"f6LT":[12.03538,-0.53368,-3.85215],"lmI0":[12.1,-4.79297,-3.60262],"Z8QH":[10.38129,-10.92062,-3.04387],"9HR1":[12.16462,-9.05226,-3.35309],"FNm1":[13.48231,11.74828,-1.24465],"8yve":[13.83538,9.56241,-3.35309],"mNFO":[13.96462,-0.53368,-3.85215],"a6XU":[13.9,-4.79297,-3.60262],"73oJ":[11.61871,-11.57829,-3.04387],"MFCT":[13.83538,-9.05226,-3.35309],"BvTt":[14.31769,11.74828,-0.94522],"w3EM":[15.28231,9.56241,-2.4887],"w62a":[15.63538,-0.53368,-2.85404],"AM1w":[15.45885,-4.79297,-2.67137],"dqpT":[12.69035,-12.14785,-2.26234],"VIhO":[15.28231,-9.05226,-2.4887],"rQa2":[14.8,11.74828,-0.42658],"qJMj":[16.11769,9.56241,-0.99154],"s4RT":[16.6,-0.53368,-1.12526],"qkPa":[16.35885,-4.79297,-1.0584],"aRQE":[13.30906,-12.47669,-0.90868],"VLqe":[16.11769,-9.05226,-0.99154],"ae2P":[3.03427,-13.22615,-2.73465],"sQQr":[6.33507,-11.89953,-2.88926],"UuVz":[6.6992,-12.82259,-2.88926],"hAnS":[3.03427,-12.2011,-2.73465],"2MHe":[6.01972,-11.10014,-2.14915],"j9KP":[3.03427,-11.31338,-2.03597],"8F9l":[5.83766,-10.6386,-0.86725],"hUzO":[3.03427,-10.80086,-0.82583],"JyVx":[3.03427,-10.80086,0.57153],"unlK":[6.01972,-11.10014,1.89486],"ZLMw":[5.83766,-10.6386,0.61296],"GNyA":[3.03427,-11.31338,1.78167],"eedx":[6.33507,-11.89953,2.63496],"lesZ":[3.03427,-12.2011,2.48035],"mTfA":[6.6992,-12.82259,2.63496],"Vygi":[3.03427,-13.22615,2.48035],"MYgt":[7.01455,-13.62199,1.89486],"Nk4s":[3.03427,-14.11387,1.78167],"b5Wr":[7.19661,-14.08352,0.61296],"J6XE":[3.03427,-14.6264,0.57153],"rQIS":[7.19661,-14.08352,-0.86725],"a9OQ":[3.03427,-14.6264,-0.82583],"cg6a":[3.03427,-14.11387,-2.03597],"doud":[3.8602,-10.84976,-0.86725],"vLDJ":[3.8602,-10.84976,0.61296]},"faces":{"8jr7VKm7":{"uv":{"TrsZ":[79.87504,88.00009],"gTZ2":[81.0513,90.37584],"leJZ":[80.27692,90.9535]},"texture":0,"vertices":["leJZ","gTZ2","TrsZ"]},"9Xh0Z0zj":{"uv":{"gTZ2":[27.52209,63.0041],"leJZ":[26.58559,63.09915],"Lqsk":[28.7305,68.68167],"mm2i":[26.41025,68.71595]},"texture":0,"vertices":["leJZ","mm2i","Lqsk","gTZ2"]},"mtiXrwnB":{"uv":{"Lqsk":[28.7305,68.68167],"mm2i":[26.41025,68.71595],"y3oC":[29.26896,92.97476],"ekc2":[26.58975,93.01435]},"texture":0,"vertices":["mm2i","ekc2","y3oC","Lqsk"]},"QzIQKEmr":{"uv":{"y3oC":[29.26896,92.97476],"ekc2":[26.58975,93.01435],"Ockv":[29.39241,113.48018],"UEbt":[27.07217,113.51446]},"texture":0,"vertices":["ekc2","UEbt","Ockv","y3oC"]},"Qrb8wV5j":{"uv":{"Ockv":[29.39241,113.48018],"UEbt":[27.07217,113.51446],"6Ffg":[29.32671,124.0869],"ykOS":[27.45121,124.11462]},"texture":0,"vertices":["UEbt","ykOS","6Ffg","Ockv"]},"NkcA3haf":{"uv":{"ITmC":[65.75002,84.59454],"ykOS":[62.19604,83.51726],"6Ffg":[63.17581,81.9178]},"texture":0,"vertices":["6Ffg","ykOS","ITmC"]},"wmEabgZW":{"uv":{"TrsZ":[79.875,88.00003],"pvk0":[81.71188,89.34077],"gTZ2":[81.0513,90.37584]},"texture":0,"vertices":["gTZ2","pvk0","TrsZ"]},"P2CMx0ZD":{"uv":{"pvk0":[46.18664,2.22542],"gTZ2":[44.97951,2.306],"nv33":[47.0897,8.1453],"Lqsk":[44.76945,8.11103]},"texture":0,"vertices":["gTZ2","Lqsk","nv33","pvk0"]},"EGvUu3zP":{"uv":{"nv33":[47.0897,8.1453],"Lqsk":[44.76945,8.11103],"swK3":[46.9103,32.4437],"y3oC":[44.23109,32.40412]},"texture":0,"vertices":["Lqsk","y3oC","swK3","nv33"]},"pmJGRAyS":{"uv":{"swK3":[46.9103,32.4437],"y3oC":[44.23109,32.40412],"qyK1":[46.42797,52.94371],"Ockv":[44.10772,52.90944]},"texture":0,"vertices":["y3oC","Ockv","qyK1","swK3"]},"MqRdM944":{"uv":{"qyK1":[46.42797,52.94371],"Ockv":[44.10772,52.90944],"g9wS":[46.04887,63.54387],"6Ffg":[44.17347,63.51617]},"texture":0,"vertices":["Ockv","6Ffg","g9wS","qyK1"]},"HunNxlEu":{"uv":{"ITmC":[65.75,84.59452],"6Ffg":[63.17581,81.9178],"g9wS":[64.8122,81.00122]},"texture":0,"vertices":["g9wS","6Ffg","ITmC"]},"PjkPWsnO":{"uv":{"TrsZ":[48.25,0],"e6mh":[48.9199,2.1733],"pvk0":[47.5801,2.1733]},"texture":0,"vertices":["pvk0","e6mh","TrsZ"]},"hYMFwOJL":{"uv":{"e6mh":[48.9199,2.1733],"pvk0":[47.5801,2.1733],"PwMV":[49.4103,8.1453],"nv33":[47.0897,8.1453]},"texture":0,"vertices":["pvk0","nv33","PwMV","e6mh"]},"JBzuJKIT":{"uv":{"PwMV":[49.4103,8.1453],"nv33":[47.0897,8.1453],"j9pZ":[49.5897,32.4437],"swK3":[46.9103,32.4437]},"texture":0,"vertices":["nv33","swK3","j9pZ","PwMV"]},"Hd4mzYj3":{"uv":{"j9pZ":[49.5897,32.4437],"swK3":[46.9103,32.4437],"NbqT":[49.4103,52.9487],"qyK1":[47.0897,52.9487]},"texture":0,"vertices":["swK3","qyK1","NbqT","j9pZ"]},"lS8u8wWJ":{"uv":{"NbqT":[49.4103,52.9487],"qyK1":[47.0897,52.9487],"NpKU":[49.1878,63.5532],"g9wS":[47.3122,63.5532]},"texture":0,"vertices":["qyK1","g9wS","NpKU","NbqT"]},"OPlEx7jv":{"uv":{"ITmC":[65.75,84.59452],"g9wS":[64.8122,81.00122],"NpKU":[66.6878,81.00122]},"texture":0,"vertices":["NpKU","g9wS","ITmC"]},"xq1EvFBD":{"uv":{"TrsZ":[65.875,43.00003],"PxSY":[64.6987,45.37584],"e6mh":[64.03812,44.34077]},"texture":0,"vertices":["e6mh","PxSY","TrsZ"]},"BYgLjkcG":{"uv":{"PxSY":[51.52054,2.3098],"e6mh":[50.31331,2.22172],"kKkV":[51.73055,8.11103],"PwMV":[49.4103,8.1453]},"texture":0,"vertices":["e6mh","PwMV","kKkV","PxSY"]},"FdQlNjYg":{"uv":{"kKkV":[51.73055,8.11103],"PwMV":[49.4103,8.1453],"kBJZ":[52.26891,32.40412],"j9pZ":[49.5897,32.4437]},"texture":0,"vertices":["PwMV","j9pZ","kBJZ","kKkV"]},"3g9JvcR3":{"uv":{"kBJZ":[52.26891,32.40412],"j9pZ":[49.5897,32.4437],"Y2di":[52.39228,52.90944],"NbqT":[50.07203,52.94371]},"texture":0,"vertices":["j9pZ","NbqT","Y2di","kBJZ"]},"fOnoGE44":{"uv":{"Y2di":[52.39228,52.90944],"NbqT":[50.07203,52.94371],"MIuK":[52.32653,63.51617],"NpKU":[50.45113,63.54387]},"texture":0,"vertices":["NbqT","NpKU","MIuK","Y2di"]},"m15teQcJ":{"uv":{"ITmC":[65.75,84.59452],"NpKU":[66.6878,81.00122],"MIuK":[68.32419,81.9178]},"texture":0,"vertices":["MIuK","NpKU","ITmC"]},"Bp5P6XQS":{"uv":{"TrsZ":[65.87496,43.00009],"jppO":[65.47308,45.9535],"PxSY":[64.6987,45.37584]},"texture":0,"vertices":["PxSY","jppO","TrsZ"]},"uSNE5Kg5":{"uv":{"jppO":[33.91435,63.10325],"PxSY":[32.97798,63],"OyDQ":[34.08975,68.71595],"kKkV":[31.7695,68.68167]},"texture":0,"vertices":["PxSY","kKkV","OyDQ","jppO"]},"oV9DN7yW":{"uv":{"OyDQ":[34.08975,68.71595],"kKkV":[31.7695,68.68167],"MWMG":[33.91025,93.01435],"kBJZ":[31.23104,92.97476]},"texture":0,"vertices":["kKkV","kBJZ","MWMG","OyDQ"]},"YdAALiWH":{"uv":{"MWMG":[33.91025,93.01435],"kBJZ":[31.23104,92.97476],"Wc4V":[33.42783,113.51446],"Y2di":[31.10759,113.48018]},"texture":0,"vertices":["kBJZ","Y2di","Wc4V","MWMG"]},"XGfpNI5I":{"uv":{"Wc4V":[33.42783,113.51446],"Y2di":[31.10759,113.48018],"jqpR":[33.04879,124.11462],"MIuK":[31.17329,124.0869]},"texture":0,"vertices":["Y2di","MIuK","jqpR","Wc4V"]},"lfx9qHeY":{"uv":{"ITmC":[65.74998,84.59454],"MIuK":[68.32419,81.9178],"jqpR":[69.30396,83.51726]},"texture":0,"vertices":["jqpR","MIuK","ITmC"]},"lEi4dy0p":{"uv":{"TrsZ":[65.87498,43],"Ewu8":[66.27698,45.9535],"jppO":[65.47308,45.9535]},"texture":0,"vertices":["jppO","Ewu8","TrsZ"]},"kP09N9Dv":{"uv":{"Ewu8":[35.65195,63.14785],"jppO":[34.84805,63.14785],"lvX9":[36.41025,68.71595],"OyDQ":[34.08975,68.71595]},"texture":0,"vertices":["jppO","OyDQ","lvX9","Ewu8"]},"NBAQ9WYi":{"uv":{"lvX9":[36.41025,68.71595],"OyDQ":[34.08975,68.71595],"0krR":[36.58975,93.01435],"MWMG":[33.91025,93.01435]},"texture":0,"vertices":["OyDQ","MWMG","0krR","lvX9"]},"xucvYeKl":{"uv":{"0krR":[36.58975,93.01435],"MWMG":[33.91025,93.01435],"8c8f":[36.41025,113.51935],"Wc4V":[34.08975,113.51935]},"texture":0,"vertices":["MWMG","Wc4V","8c8f","0krR"]},"407j1F3m":{"uv":{"8c8f":[36.41025,113.51935],"Wc4V":[34.08975,113.51935],"DVk2":[36.18785,124.12395],"jqpR":[34.31215,124.12395]},"texture":0,"vertices":["Wc4V","jqpR","DVk2","8c8f"]},"r97LaYML":{"uv":{"ITmC":[65.74998,84.59454],"jqpR":[69.30396,83.51726],"DVk2":[69.37714,85.39154]},"texture":0,"vertices":["DVk2","jqpR","ITmC"]},"PgySiDgb":{"uv":{"TrsZ":[65.87499,43.0001],"6fdL":[67.05133,45.37581],"Ewu8":[66.27698,45.9535]},"texture":0,"vertices":["Ewu8","6fdL","TrsZ"]},"qI5PrL80":{"uv":{"6fdL":[37.52209,63.0041],"Ewu8":[36.58559,63.09915],"S5Pl":[38.7305,68.68167],"lvX9":[36.41025,68.71595]},"texture":0,"vertices":["Ewu8","lvX9","S5Pl","6fdL"]},"UvSsYnJY":{"uv":{"S5Pl":[38.7305,68.68167],"lvX9":[36.41025,68.71595],"2E1V":[39.26896,92.97476],"0krR":[36.58975,93.01435]},"texture":0,"vertices":["lvX9","0krR","2E1V","S5Pl"]},"HzhHASB0":{"uv":{"2E1V":[39.26896,92.97476],"0krR":[36.58975,93.01435],"1TZv":[39.39241,113.48018],"8c8f":[37.07217,113.51446]},"texture":0,"vertices":["0krR","8c8f","1TZv","2E1V"]},"sbWl9YQX":{"uv":{"1TZv":[39.39241,113.48018],"8c8f":[37.07217,113.51446],"Hnv2":[39.32671,124.0868],"DVk2":[37.45121,124.11452]},"texture":0,"vertices":["8c8f","DVk2","Hnv2","1TZv"]},"VWlX7LUx":{"uv":{"ITmC":[65.74998,84.59454],"DVk2":[69.37714,85.39154],"Hnv2":[68.52497,87.06248]},"texture":0,"vertices":["Hnv2","DVk2","ITmC"]},"Iy3t4fRF":{"uv":{"TrsZ":[65.87496,43.00004],"gmAy":[67.71188,44.34072],"6fdL":[67.05133,45.37581]},"texture":0,"vertices":["6fdL","gmAy","TrsZ"]},"EA0YU3Kh":{"uv":{"gmAy":[56.18664,2.22542],"6fdL":[54.97961,2.3061],"hu4p":[57.0897,8.1453],"S5Pl":[54.76945,8.11103]},"texture":0,"vertices":["6fdL","S5Pl","hu4p","gmAy"]},"SHsblJ9K":{"uv":{"hu4p":[57.0897,8.1453],"S5Pl":[54.76945,8.11103],"ByXH":[56.9103,32.4437],"2E1V":[54.23109,32.40412]},"texture":0,"vertices":["S5Pl","2E1V","ByXH","hu4p"]},"kcOPSpiv":{"uv":{"ByXH":[56.9103,32.4437],"2E1V":[54.23109,32.40412],"uykf":[56.42797,52.94371],"1TZv":[54.10772,52.90944]},"texture":0,"vertices":["2E1V","1TZv","uykf","ByXH"]},"H3RQUyGF":{"uv":{"uykf":[56.42797,52.94371],"1TZv":[54.10772,52.90944],"Ip50":[56.04897,63.54377],"Hnv2":[54.17357,63.51607]},"texture":0,"vertices":["1TZv","Hnv2","Ip50","uykf"]},"x9lF7OWg":{"uv":{"ITmC":[65.74998,84.59454],"Hnv2":[68.52497,87.06248],"Ip50":[66.965,88.10381]},"texture":0,"vertices":["Ip50","Hnv2","ITmC"]},"IX9gKIJu":{"uv":{"TrsZ":[58.25,0],"BBgI":[58.9199,2.1733],"gmAy":[57.5801,2.1733]},"texture":0,"vertices":["gmAy","BBgI","TrsZ"]},"sv0fQs0M":{"uv":{"BBgI":[58.9199,2.1733],"gmAy":[57.5801,2.1733],"KHi9":[59.4103,8.1453],"hu4p":[57.0897,8.1453]},"texture":0,"vertices":["gmAy","hu4p","KHi9","BBgI"]},"ruCD1SAk":{"uv":{"KHi9":[59.4103,8.1453],"hu4p":[57.0897,8.1453],"ka0W":[59.5897,32.4437],"ByXH":[56.9103,32.4437]},"texture":0,"vertices":["hu4p","ByXH","ka0W","KHi9"]},"NICAvFnn":{"uv":{"ka0W":[59.5897,32.4437],"ByXH":[56.9103,32.4437],"V38x":[59.4103,52.9487],"uykf":[57.0897,52.9487]},"texture":0,"vertices":["ByXH","uykf","V38x","ka0W"]},"IyzdJ5o5":{"uv":{"V38x":[59.4103,52.9487],"uykf":[57.0897,52.9487],"R5xc":[59.1878,63.5532],"Ip50":[57.3122,63.5532]},"texture":0,"vertices":["uykf","Ip50","R5xc","V38x"]},"nukgmJVi":{"uv":{"ITmC":[65.74998,84.59454],"Ip50":[66.965,88.10381],"R5xc":[65.0951,88.25]},"texture":0,"vertices":["R5xc","Ip50","ITmC"]},"vTii5aMP":{"uv":{"TrsZ":[79.87504,88.00004],"ITmY":[78.69867,90.37581],"BBgI":[78.03812,89.34072]},"texture":0,"vertices":["BBgI","ITmY","TrsZ"]},"Tl5gKmI5":{"uv":{"ITmY":[61.52044,2.3097],"BBgI":[60.31331,2.22162],"3qcb":[61.73055,8.11103],"KHi9":[59.4103,8.1453]},"texture":0,"vertices":["BBgI","KHi9","3qcb","ITmY"]},"P7sRfrMr":{"uv":{"3qcb":[61.73055,8.11103],"KHi9":[59.4103,8.1453],"Hkpl":[62.26891,32.40412],"ka0W":[59.5897,32.4437]},"texture":0,"vertices":["KHi9","ka0W","Hkpl","3qcb"]},"SWArYJlI":{"uv":{"Hkpl":[62.26891,32.40412],"ka0W":[59.5897,32.4437],"uwAy":[62.39228,52.90944],"V38x":[60.07203,52.94371]},"texture":0,"vertices":["ka0W","V38x","uwAy","Hkpl"]},"pytB8qHt":{"uv":{"uwAy":[62.39228,52.90944],"V38x":[60.07203,52.94371],"nka3":[62.32643,63.51607],"R5xc":[60.45103,63.54377]},"texture":0,"vertices":["V38x","R5xc","nka3","uwAy"]},"60mJ54WZ":{"uv":{"ITmC":[65.75002,84.59454],"R5xc":[64.535,88.10381],"nka3":[62.97503,87.06248]},"texture":0,"vertices":["nka3","R5xc","ITmC"]},"TChBKMCz":{"uv":{"TrsZ":[79.87501,88.0001],"WCrS":[79.47302,90.9535],"ITmY":[78.69867,90.37581]},"texture":0,"vertices":["ITmY","WCrS","TrsZ"]},"ibTXcsoX":{"uv":{"WCrS":[23.91435,63.10325],"ITmY":[22.97798,63],"fAbV":[24.08975,68.71595],"3qcb":[21.7695,68.68167]},"texture":0,"vertices":["ITmY","3qcb","fAbV","WCrS"]},"VQ6IZ2DK":{"uv":{"fAbV":[24.08975,68.71595],"3qcb":[21.7695,68.68167],"kEz2":[23.91025,93.01435],"Hkpl":[21.23104,92.97476]},"texture":0,"vertices":["3qcb","Hkpl","kEz2","fAbV"]},"NjSTVBZw":{"uv":{"kEz2":[23.91025,93.01435],"Hkpl":[21.23104,92.97476],"F4u4":[23.42783,113.51446],"uwAy":[21.10759,113.48018]},"texture":0,"vertices":["Hkpl","uwAy","F4u4","kEz2"]},"4u1w5oRe":{"uv":{"F4u4":[23.42783,113.51446],"uwAy":[21.10759,113.48018],"Rkj7":[23.04879,124.11452],"nka3":[21.17329,124.0868]},"texture":0,"vertices":["uwAy","nka3","Rkj7","F4u4"]},"dTtWC6bG":{"uv":{"ITmC":[65.75002,84.59454],"nka3":[62.97503,87.06248],"Rkj7":[62.12286,85.39154]},"texture":0,"vertices":["Rkj7","nka3","ITmC"]},"G4lPz888":{"uv":{"TrsZ":[79.87502,88],"leJZ":[80.27692,90.9535],"WCrS":[79.47302,90.9535]},"texture":0,"vertices":["WCrS","leJZ","TrsZ"]},"Sf9CT1JU":{"uv":{"leJZ":[25.65195,63.14785],"WCrS":[24.84805,63.14785],"mm2i":[26.41025,68.71595],"fAbV":[24.08975,68.71595]},"texture":0,"vertices":["WCrS","fAbV","mm2i","leJZ"]},"BsCJxxyZ":{"uv":{"mm2i":[26.41025,68.71595],"fAbV":[24.08975,68.71595],"ekc2":[26.58975,93.01435],"kEz2":[23.91025,93.01435]},"texture":0,"vertices":["fAbV","kEz2","ekc2","mm2i"]},"RBLcFCHz":{"uv":{"ekc2":[26.58975,93.01435],"kEz2":[23.91025,93.01435],"UEbt":[26.41025,113.51935],"F4u4":[24.08975,113.51935]},"texture":0,"vertices":["kEz2","F4u4","UEbt","ekc2"]},"iLeQH2Yl":{"uv":{"UEbt":[26.41025,113.51935],"F4u4":[24.08975,113.51935],"ykOS":[26.18785,124.12395],"Rkj7":[24.31215,124.12395]},"texture":0,"vertices":["F4u4","Rkj7","ykOS","UEbt"]},"Jm6B0KYK":{"uv":{"ITmC":[65.75002,84.59454],"Rkj7":[62.12286,85.39154],"ykOS":[62.19604,83.51726]},"texture":0,"vertices":["ykOS","Rkj7","ITmC"]},"LC3219JW":{"uv":{"CJ8q":[43.44029,79.00812],"Nq0e":[42.16659,80.10842],"Xj1D":[41.61597,79.66303]},"texture":0,"vertices":["Xj1D","Nq0e","CJ8q"]},"bumMz3iZ":{"uv":{"Nq0e":[91.75844,48.03887],"Xj1D":[91.07295,48.14799],"Yb0j":[92.70332,50.71805],"Q9H4":[90.98935,50.76079]},"texture":0,"vertices":["Xj1D","Q9H4","Yb0j","Nq0e"]},"kKYC6PU0":{"uv":{"Yb0j":[92.70332,50.71805],"Q9H4":[90.98935,50.76079],"CsLe":[93.10224,60.81904],"SyWC":[91.12315,60.86839]},"texture":0,"vertices":["Q9H4","SyWC","CsLe","Yb0j"]},"kVN8k7nx":{"uv":{"CsLe":[93.10224,60.81904],"hRsm":[91.28858,65.13179],"ncIp":[93.13511,65.08575],"SyWC":[91.12315,60.86839]},"texture":0,"vertices":["SyWC","hRsm","ncIp","CsLe"]},"5sGK2k4y":{"uv":{"AqZ0":[96.63608,14.70927],"my61":[95,18.63726],"DYBi":[96.52002,18.75],"Fsz7":[95,14.20761]},"texture":0,"vertices":["Fsz7","my61","DYBi","AqZ0"]},"FkzsH797":{"uv":{"CJ8q":[43.44025,79.00815],"wclZ":[43.0268,80.32638],"Nq0e":[42.16659,80.10842]},"texture":0,"vertices":["Nq0e","wclZ","CJ8q"]},"WeTsahWD":{"uv":{"wclZ":[43.01727,80.32397],"Nq0e":[42.16659,80.10842],"DKsL":[42.66451,83.35815],"Yb0j":[41.09514,82.74334]},"texture":0,"vertices":["Nq0e","Yb0j","DKsL","wclZ"]},"L0gFCljV":{"uv":{"DKsL":[74.22884,26.04571],"Yb0j":[72.54396,26],"Z3Gz":[74.09964,36.15413],"CsLe":[72.15416,36.10134]},"texture":0,"vertices":["Yb0j","CsLe","Z3Gz","DKsL"]},"e3tt9lqO":{"uv":{"Z3Gz":[74.09964,36.15413],"ncIp":[72.09623,40.36774],"9vIg":[73.91146,40.41699],"CsLe":[72.15416,36.10134]},"texture":0,"vertices":["CsLe","ncIp","9vIg","Z3Gz"]},"ekwukFV7":{"uv":{"nVcd":[73.72327,44.67996],"DYBi":[74.06709,48.13602],"FM11":[75.40773,47.60089],"AqZ0":[72.04457,44.63441]},"texture":0,"vertices":["AqZ0","DYBi","FM11","nVcd"]},"4CWX3GKn":{"uv":{"CJ8q":[43.57784,79],"yna4":[43.98222,80.32111],"wclZ":[43.01933,80.2637]},"texture":0,"vertices":["wclZ","yna4","CJ8q"]},"VMoGZ6No":{"uv":{"yna4":[43.98221,80.32105],"wclZ":[43.01761,80.32105],"9jKB":[44.33531,83.35815],"DKsL":[42.66451,83.35815]},"texture":0,"vertices":["wclZ","DKsL","9jKB","yna4"]},"ovbHgOgA":{"uv":{"9jKB":[75.89964,26.04573],"DKsL":[74.22884,26.04573],"Aay8":[76.02884,36.15413],"Z3Gz":[74.09964,36.15413]},"texture":0,"vertices":["DKsL","Z3Gz","Aay8","9jKB"]},"DYGCZfWo":{"uv":{"Aay8":[76.02884,36.15413],"9vIg":[74.42018,40.52366],"AlV5":[76.21703,40.41706],"Z3Gz":[74.10303,36.26838]},"texture":0,"vertices":["Z3Gz","9vIg","AlV5","Aay8"]},"l2E6OfjX":{"uv":{"PIoW":[75.35943,44.99955],"FM11":[75.40773,47.60089],"5H4a":[76.74961,47.19697],"nVcd":[73.72173,44.67728]},"texture":0,"vertices":["nVcd","FM11","5H4a","PIoW"]},"QEAAFgy9":{"uv":{"CJ8q":[43.57786,79.00007],"aW5h":[44.844,80.109],"yna4":[43.98222,80.32111]},"texture":0,"vertices":["yna4","aW5h","CJ8q"]},"K0TbnrG1":{"uv":{"aW5h":[44.83518,80.11117],"yna4":[43.98222,80.32111],"dzyr":[45.90486,82.74378],"9jKB":[44.33531,83.35815]},"texture":0,"vertices":["yna4","9jKB","dzyr","aW5h"]},"UNSXKvjR":{"uv":{"dzyr":[77.58452,26],"9jKB":[75.89964,26.04571],"T9ah":[77.97432,36.10134],"Aay8":[76.02884,36.15413]},"texture":0,"vertices":["9jKB","Aay8","T9ah","dzyr"]},"WX8fe6kH":{"uv":{"T9ah":[77.97432,36.10134],"AlV5":[76.21703,40.41709],"I74x":[78.03226,40.36784],"Aay8":[76.02884,36.15413]},"texture":0,"vertices":["Aay8","AlV5","I74x","T9ah"]},"O6hsaz62":{"uv":{"xWga":[78.09009,44.63434],"5H4a":[78.15039,46.61017],"BuEl":[79.45604,45.99461],"PIoW":[76.40658,44.68002]},"texture":0,"vertices":["PIoW","5H4a","BuEl","xWga"]},"RycE8fLV":{"uv":{"CJ8q":[43.57783,79.00004],"8FAq":[45.39771,79.66731],"aW5h":[44.844,80.109]},"texture":0,"vertices":["aW5h","8FAq","CJ8q"]},"o95xsoxi":{"uv":{"8FAq":[89.17697,0.15168],"aW5h":[88.49175,0.03527],"iEoM":[89.26065,2.76088],"dzyr":[87.54668,2.71814]},"texture":0,"vertices":["aW5h","dzyr","iEoM","8FAq"]},"eBE4Eyy0":{"uv":{"iEoM":[89.26065,2.76088],"dzyr":[87.54668,2.71814],"jyRh":[89.12685,12.86848],"T9ah":[87.14777,12.81914]},"texture":0,"vertices":["dzyr","T9ah","jyRh","iEoM"]},"kG5DoaFz":{"uv":{"jyRh":[89.12685,12.86848],"I74x":[87.1149,17.08584],"RawT":[88.96142,17.13189],"T9ah":[87.14777,12.81914]},"texture":0,"vertices":["T9ah","I74x","RawT","jyRh"]},"VObXS706":{"uv":{"9BZR":[17.67485,94.65689],"BuEl":[16.25639,95.92228],"UztP":[17.75737,96.18787],"xWga":[16.09645,94]},"texture":0,"vertices":["xWga","BuEl","UztP","9BZR"]},"xJKkUhpB":{"uv":{"CJ8q":[42.67085,0],"YUba":[42.67085,1.93828],"8FAq":[42.07915,1.84574]},"texture":0,"vertices":["8FAq","YUba","CJ8q"]},"fRMAUF8e":{"uv":{"YUba":[91.07295,0.14805],"8FAq":[90.49264,0],"s9wW":[90.98935,2.76088],"iEoM":[89.3143,2.33353]},"texture":0,"vertices":["8FAq","iEoM","s9wW","YUba"]},"q3OOcMCM":{"uv":{"s9wW":[90.98935,2.76088],"iEoM":[89.26065,2.76088],"q2Tv":[91.12315,12.86848],"jyRh":[89.12685,12.86848]},"texture":0,"vertices":["iEoM","jyRh","q2Tv","s9wW"]},"vfKa5y4n":{"uv":{"q2Tv":[91.12315,12.86848],"RawT":[89.42884,17.23329],"a7I1":[91.28858,17.1319],"jyRh":[89.12981,12.97715]},"texture":0,"vertices":["jyRh","RawT","a7I1","q2Tv"]},"hcV0bruC":{"uv":{"pRId":[19.40355,94.65689],"UztP":[17.75765,96.19319],"KDb7":[19.32075,96.19319],"9BZR":[17.67485,94.65689]},"texture":0,"vertices":["9BZR","UztP","KDb7","pRId"]},"73N9oXcs":{"uv":{"CJ8q":[82.44011,35.00795],"pGHe":[81.16657,36.10844],"YUba":[80.61582,35.66307]},"texture":0,"vertices":["YUba","pGHe","CJ8q"]},"6jTSePVD":{"uv":{"pGHe":[91.75834,0.03896],"YUba":[91.07295,0.14818],"YgO2":[92.70332,2.71814],"s9wW":[90.98935,2.76088]},"texture":0,"vertices":["YUba","s9wW","YgO2","pGHe"]},"thlBpNa1":{"uv":{"YgO2":[92.70332,2.71814],"s9wW":[90.98935,2.76088],"EUN2":[93.10213,12.81914],"q2Tv":[91.12315,12.86848]},"texture":0,"vertices":["s9wW","q2Tv","EUN2","YgO2"]},"UG1i5cXp":{"uv":{"EUN2":[93.10213,12.81914],"a7I1":[91.28858,17.13199],"XVAY":[93.13511,17.08594],"q2Tv":[91.12315,12.86848]},"texture":0,"vertices":["q2Tv","a7I1","XVAY","EUN2"]},"l5Lzu2Xi":{"uv":{"Axob":[82.81921,79],"KDb7":[81.72324,81.5137],"mZah":[83.11805,80.89891],"pRId":[81.43722,80.00194]},"texture":0,"vertices":["pRId","KDb7","mZah","Axob"]},"xbpndVOM":{"uv":{"CJ8q":[82.44008,35.00799],"Q7YU":[82.02692,36.3263],"pGHe":[81.16657,36.10844]},"texture":0,"vertices":["pGHe","Q7YU","CJ8q"]},"RSLb2IRJ":{"uv":{"Q7YU":[82.01731,36.32387],"pGHe":[81.16657,36.10844],"yFPP":[81.66453,39.35812],"YgO2":[80.09513,38.74337]},"texture":0,"vertices":["pGHe","YgO2","yFPP","Q7YU"]},"WFHcE2ye":{"uv":{"yFPP":[8.5965,65.04571],"YgO2":[6.91162,65],"ANLe":[8.4673,75.15413],"EUN2":[6.52182,75.10134]},"texture":0,"vertices":["YgO2","EUN2","ANLe","yFPP"]},"YEaYDPx8":{"uv":{"ANLe":[8.4673,75.15413],"XVAY":[6.46399,79.36774],"M3GU":[8.27912,79.41699],"EUN2":[6.52182,75.10134]},"texture":0,"vertices":["EUN2","XVAY","M3GU","ANLe"]},"Tn6c8iG7":{"uv":{"c37e":[8.09093,83.67996],"mZah":[5.04426,84.99791],"fTWp":[6.3508,85.6114],"Axob":[6.40855,83.63431]},"texture":0,"vertices":["Axob","mZah","fTWp","c37e"]},"uhCTgcLR":{"uv":{"CJ8q":[82.57774,35],"qiyI":[82.98222,36.32108],"Q7YU":[82.01933,36.26374]},"texture":0,"vertices":["Q7YU","qiyI","CJ8q"]},"ttUNojAF":{"uv":{"qiyI":[82.98223,36.32112],"Q7YU":[82.01763,36.32112],"NsHT":[83.33533,39.35812],"yFPP":[81.66453,39.35812]},"texture":0,"vertices":["Q7YU","yFPP","NsHT","qiyI"]},"d4NQRZrh":{"uv":{"NsHT":[10.2673,65.04563],"yFPP":[8.5965,65.04563],"JONz":[10.3965,75.15413],"ANLe":[8.4673,75.15413]},"texture":0,"vertices":["yFPP","ANLe","JONz","NsHT"]},"EMpqKOa8":{"uv":{"JONz":[10.3965,75.15413],"M3GU":[8.78784,79.52366],"zpNe":[10.58469,79.41706],"ANLe":[8.47069,75.26838]},"texture":0,"vertices":["ANLe","M3GU","zpNe","JONz"]},"yoWXs2Kg":{"uv":{"68Ui":[10.77287,83.68],"fTWp":[7.43666,85.77214],"hoCv":[8.71268,86.35132],"c37e":[9.10786,83.77878]},"texture":0,"vertices":["c37e","fTWp","hoCv","68Ui"]},"4XW6I3pi":{"uv":{"CJ8q":[82.57776,35.00007],"3pvB":[83.8439,36.10899],"qiyI":[82.98222,36.32108]},"texture":0,"vertices":["qiyI","3pvB","CJ8q"]},"sqCk9akE":{"uv":{"3pvB":[83.83518,36.11113],"qiyI":[82.98222,36.32108],"kwW4":[84.90487,38.74375],"NsHT":[83.33533,39.35812]},"texture":0,"vertices":["qiyI","NsHT","kwW4","3pvB"]},"WhszFpIV":{"uv":{"kwW4":[11.95218,65],"NsHT":[10.2673,65.04571],"BmQ8":[12.34199,75.10134],"JONz":[10.3965,75.15413]},"texture":0,"vertices":["NsHT","JONz","BmQ8","kwW4"]},"YZxKn8I1":{"uv":{"BmQ8":[12.34199,75.10134],"zpNe":[10.58469,79.41709],"Lb18":[12.39982,79.36784],"JONz":[10.3965,75.15413]},"texture":0,"vertices":["JONz","zpNe","Lb18","BmQ8"]},"SZUxzkTf":{"uv":{"4Q0M":[12.45775,83.63424],"hoCv":[9.10703,86.60986],"Clb0":[10.4497,87.13996],"68Ui":[10.78168,83.67972]},"texture":0,"vertices":["68Ui","hoCv","Clb0","4Q0M"]},"MI9nzxxL":{"uv":{"CJ8q":[82.57781,35.00011],"kpnI":[84.39759,35.66727],"3pvB":[83.8439,36.10899]},"texture":0,"vertices":["3pvB","kpnI","CJ8q"]},"aEdQYhIX":{"uv":{"kpnI":[89.17697,48.15159],"3pvB":[88.49176,48.03517],"TLEt":[89.26065,50.76079],"kwW4":[87.54668,50.71805]},"texture":0,"vertices":["3pvB","kwW4","TLEt","kpnI"]},"6NjSc7YN":{"uv":{"TLEt":[89.26065,50.76079],"kwW4":[87.54668,50.71805],"WDb8":[89.12685,60.86839],"BmQ8":[87.14777,60.81904]},"texture":0,"vertices":["kwW4","BmQ8","WDb8","TLEt"]},"rX11alJl":{"uv":{"WDb8":[89.12685,60.86839],"Lb18":[87.1149,65.08575],"HVgF":[88.96142,65.13179],"BmQ8":[87.14777,60.81904]},"texture":0,"vertices":["BmQ8","Lb18","HVgF","WDb8"]},"u1FN16MI":{"uv":{"uohf":[99.5,21.75],"Clb0":[95.00458,20.10011],"7wPN":[95.07371,21.62282],"4Q0M":[99.0484,20.10011]},"texture":0,"vertices":["4Q0M","Clb0","7wPN","uohf"]},"4gOXMK46":{"uv":{"CJ8q":[1.96914,0],"Xj1D":[0.1234,0.59171],"kpnI":[0.03086,0]},"texture":0,"vertices":["kpnI","Xj1D","CJ8q"]},"gPD5HkXf":{"uv":{"Xj1D":[91.07294,48.14806],"kpnI":[90.49263,48],"Q9H4":[90.98935,50.76079],"TLEt":[89.31431,50.33343]},"texture":0,"vertices":["kpnI","TLEt","Q9H4","Xj1D"]},"RZYNa1k1":{"uv":{"Q9H4":[90.98935,50.76079],"TLEt":[89.26065,50.76079],"SyWC":[91.12315,60.86839],"WDb8":[89.12685,60.86839]},"texture":0,"vertices":["TLEt","WDb8","SyWC","Q9H4"]},"48lfbtEt":{"uv":{"SyWC":[91.12315,60.86839],"HVgF":[89.42884,65.23319],"hRsm":[91.28858,65.13181],"WDb8":[89.12981,60.97706]},"texture":0,"vertices":["WDb8","HVgF","hRsm","SyWC"]},"wNQSEOKv":{"uv":{"Fsz7":[42.87478,63.18336],"7wPN":[41.50887,67.70646],"my61":[43.06891,67.60878],"uohf":[41.14946,63.29139]},"texture":0,"vertices":["uohf","7wPN","my61","Fsz7"]},"FGPjQiOj":{"uv":{"c37e":[9.105,83.77895],"M3GU":[8.78784,79.52366],"zpNe":[10.58469,79.41706],"68Ui":[10.77287,83.68]},"texture":0,"vertices":["68Ui","zpNe","M3GU","c37e"]},"smkv6Zgr":{"uv":{"Axob":[6.40605,83.63424],"XVAY":[6.46399,79.36774],"M3GU":[8.27912,79.41699],"c37e":[8.09093,83.67996]},"texture":0,"vertices":["c37e","M3GU","XVAY","Axob"]},"IsSKOfsC":{"uv":{"pRId":[91.45401,21.39539],"a7I1":[91.28858,17.13199],"XVAY":[93.13511,17.08594],"Axob":[93.16798,21.35265]},"texture":0,"vertices":["Axob","XVAY","a7I1","pRId"]},"G62BKzZn":{"uv":{"9BZR":[89.72787,21.48942],"RawT":[89.42884,17.23329],"a7I1":[91.28858,17.1319],"pRId":[91.454,21.39532]},"texture":0,"vertices":["pRId","a7I1","RawT","9BZR"]},"pdgNdNd0":{"uv":{"xWga":[87.08202,21.35265],"I74x":[87.1149,17.08584],"RawT":[88.96142,17.13189],"9BZR":[88.79599,21.39539]},"texture":0,"vertices":["9BZR","RawT","I74x","xWga"]},"jjtmHCrX":{"uv":{"PIoW":[76.40521,44.68006],"AlV5":[76.21703,40.41709],"I74x":[78.03226,40.36784],"xWga":[78.09009,44.63434]},"texture":0,"vertices":["xWga","I74x","AlV5","PIoW"]},"LyUgqTnm":{"uv":{"nVcd":[74.73734,44.77895],"9vIg":[74.42018,40.52366],"AlV5":[76.21703,40.41706],"PIoW":[76.40521,44.68]},"texture":0,"vertices":["PIoW","AlV5","9vIg","nVcd"]},"wsAuhsKC":{"uv":{"AqZ0":[72.03839,44.63424],"ncIp":[72.09623,40.36774],"9vIg":[73.91146,40.41699],"nVcd":[73.72327,44.67996]},"texture":0,"vertices":["nVcd","9vIg","ncIp","AqZ0"]},"yrzA8jMw":{"uv":{"Fsz7":[91.45401,69.39519],"hRsm":[91.28858,65.13179],"ncIp":[93.13511,65.08575],"AqZ0":[93.16797,69.35245]},"texture":0,"vertices":["AqZ0","ncIp","hRsm","Fsz7"]},"uExt8SMX":{"uv":{"uohf":[89.72787,69.48933],"HVgF":[89.42884,65.23319],"hRsm":[91.28858,65.13181],"Fsz7":[91.45401,69.39522]},"texture":0,"vertices":["Fsz7","hRsm","HVgF","uohf"]},"SxzyckN5":{"uv":{"4Q0M":[87.08203,69.35255],"Lb18":[87.1149,65.08575],"HVgF":[88.96142,65.13179],"uohf":[88.79599,69.39529]},"texture":0,"vertices":["uohf","HVgF","Lb18","4Q0M"]},"zJJEqT1H":{"uv":{"68Ui":[10.77287,83.67996],"zpNe":[10.58469,79.41709],"Lb18":[12.39982,79.36784],"4Q0M":[12.45775,83.63424]},"texture":0,"vertices":["4Q0M","Lb18","zpNe","68Ui"]},"50AarOiv":{"uv":{"tPHD":[7.14192,0],"qSDn":[10.72017,1],"POpO":[10.45951,0.0614],"seuD":[7.02983,1]},"texture":0,"vertices":["seuD","qSDn","POpO","tPHD"]},"1adF0aH8":{"uv":{"6bEQ":[0.04225,86.99336],"POpO":[3.50021,87.0729],"GY3J":[2.90324,86.10868],"tPHD":[0.33905,88.08175]},"texture":0,"vertices":["tPHD","POpO","GY3J","6bEQ"]},"hVkBdnoA":{"uv":{"L20p":[81.8237,86.26958],"GY3J":[83.23102,83.30821],"ixOG":[81.86519,83.46206],"6bEQ":[83.1363,86.30188]},"texture":0,"vertices":["6bEQ","GY3J","ixOG","L20p"]},"iT9N1w2p":{"uv":{"1ubg":[80.4264,86.26958],"ixOG":[81.8652,83.46148],"LQSt":[80.3849,83.46148],"L20p":[81.8237,86.26958]},"texture":0,"vertices":["L20p","ixOG","LQSt","1ubg"]},"bMmBnaoy":{"uv":{"qoI1":[79.11401,86.30069],"LQSt":[80.3849,83.46148],"NKna":[79.01897,83.30762],"1ubg":[80.4264,86.26955]},"texture":0,"vertices":["1ubg","LQSt","NKna","qoI1"]},"fLkgKDJi":{"uv":{"YcxO":[84.16524,49.07106],"NKna":[81.59884,47.10202],"BOiJ":[81.00325,48.06719],"qoI1":[84.46161,47.9829]},"texture":0,"vertices":["qoI1","NKna","BOiJ","YcxO"]},"CMeJUJSs":{"uv":{"xqwY":[82.53026,50.7007],"BOiJ":[79.54904,48.75367],"jMaA":[79.01174,49.58791],"YcxO":[82.73067,49.69559]},"texture":0,"vertices":["YcxO","BOiJ","jMaA","xqwY"]},"jd3brKlz":{"uv":{"RPjm":[81.80583,52.5237],"jMaA":[78.83402,49.87996],"GgnY":[78.18037,50.80688],"xqwY":[82.17033,51.45716]},"texture":0,"vertices":["xqwY","jMaA","GgnY","RPjm"]},"Ergy8MqQ":{"uv":{"74V5":[43.32382,77.25],"GgnY":[44.73448,73.17442],"ullJ":[43.36532,73.05272],"RPjm":[44.63535,77.18537]},"texture":0,"vertices":["RPjm","GgnY","ullJ","74V5"]},"45vVoNvq":{"uv":{"lWea":[41.92652,77.25],"ullJ":[43.36532,73.0524],"PZbb":[41.88502,73.0524],"74V5":[43.32382,77.25]},"texture":0,"vertices":["74V5","ullJ","PZbb","lWea"]},"JFEUeQoY":{"uv":{"tNDj":[40.61499,77.18476],"PZbb":[41.88502,73.0524],"9a4R":[40.51591,73.17415],"lWea":[41.92652,77.24997]},"texture":0,"vertices":["lWea","PZbb","9a4R","tNDj"]},"BXFckSlr":{"uv":{"seuD":[2.36098,90.49287],"9a4R":[6.34767,89.82705],"qSDn":[5.69048,88.90279],"tNDj":[2.7285,91.55874]},"texture":0,"vertices":["tNDj","9a4R","qSDn","seuD"]},"aUdXMSHk":{"uv":{"UztP":[80.52679,81.51312],"LQSt":[80.38496,83.46149],"NKna":[79.01897,83.30762],"BuEl":[79.13212,80.89829]},"texture":0,"vertices":["BuEl","NKna","LQSt","UztP"]},"3LP7O3nJ":{"uv":{"KDb7":[19.32075,96.19319],"ixOG":[19.27935,98.14629],"LQSt":[17.79905,98.14629],"UztP":[17.75765,96.19319]},"texture":0,"vertices":["UztP","LQSt","ixOG","KDb7"]},"ZpPykX5U":{"uv":{"mZah":[83.11805,80.89891],"GY3J":[83.23103,83.30821],"ixOG":[81.86519,83.46206],"KDb7":[81.72324,81.5137]},"texture":0,"vertices":["KDb7","ixOG","GY3J","mZah"]},"ADm5CQRt":{"uv":{"fTWp":[6.3508,85.6114],"POpO":[3.50029,87.07302],"GY3J":[2.90324,86.10868],"mZah":[5.04422,84.99789]},"texture":0,"vertices":["mZah","GY3J","POpO","fTWp"]},"e8eZsoS5":{"uv":{"hoCv":[8.71268,86.35132],"qSDn":[4.8768,87.84098],"POpO":[4.45537,86.94256],"fTWp":[7.43727,85.77241]},"texture":0,"vertices":["fTWp","POpO","qSDn","hoCv"]},"sAheyiQ1":{"uv":{"Clb0":[10.4497,87.13996],"9a4R":[6.34765,89.82702],"qSDn":[5.69048,88.90279],"hoCv":[9.1078,86.61016]},"texture":0,"vertices":["hoCv","qSDn","9a4R","Clb0"]},"PwTcCqjY":{"uv":{"7wPN":[41.50887,67.70646],"PZbb":[41.88508,73.05239],"9a4R":[40.51591,73.17415],"Clb0":[40.1001,68.28779]},"texture":0,"vertices":["Clb0","9a4R","PZbb","7wPN"]},"E2WBqEJ8":{"uv":{"my61":[43.06891,67.60878],"ullJ":[43.36248,72.95989],"PZbb":[41.88508,73.05239],"7wPN":[41.50887,67.70646]},"texture":0,"vertices":["7wPN","PZbb","ullJ","my61"]},"pQSoPrMU":{"uv":{"DYBi":[45.1499,68.28813],"GgnY":[44.73445,73.17442],"ullJ":[43.36532,73.05272],"my61":[43.74104,67.70671]},"texture":0,"vertices":["my61","ullJ","GgnY","DYBi"]},"c1ugKpxU":{"uv":{"FM11":[75.40773,47.60089],"jMaA":[78.83398,49.88002],"GgnY":[78.18037,50.80688],"DYBi":[74.06762,48.1358]},"texture":0,"vertices":["DYBi","GgnY","jMaA","FM11"]},"1IzSMLMp":{"uv":{"5H4a":[76.74961,47.19697],"BOiJ":[79.54906,48.75364],"jMaA":[79.01174,49.58791],"FM11":[75.40812,47.60077]},"texture":0,"vertices":["FM11","jMaA","BOiJ","5H4a"]},"bdogNvOh":{"uv":{"BuEl":[79.45604,45.99461],"NKna":[81.59882,47.10207],"BOiJ":[81.00325,48.06719],"5H4a":[78.15046,46.61013]},"texture":0,"vertices":["5H4a","BOiJ","NKna","BuEl"]},"jTC2HY5F":{"uv":{"MNqj":[41.61597,79.66303],"NXlf":[42.16659,80.10842],"mJIn":[43.44029,79.00812]},"texture":0,"vertices":["NXlf","MNqj","mJIn"]},"QNGfy8Hv":{"uv":{"c4Do":[90.98935,50.76079],"ULX7":[92.70332,50.71805],"MNqj":[91.07295,48.14799],"NXlf":[91.75844,48.03887]},"texture":0,"vertices":["ULX7","c4Do","MNqj","NXlf"]},"yveyCbHY":{"uv":{"aF6r":[91.12315,60.86839],"o8FK":[93.10224,60.81904],"c4Do":[90.98935,50.76079],"ULX7":[92.70332,50.71805]},"texture":0,"vertices":["o8FK","aF6r","c4Do","ULX7"]},"W5PLXeal":{"uv":{"aF6r":[91.12315,60.86839],"zv69":[93.13511,65.08575],"GYlm":[91.28858,65.13179],"o8FK":[93.10224,60.81904]},"texture":0,"vertices":["zv69","GYlm","aF6r","o8FK"]},"GOCXVa7O":{"uv":{"soJY":[95,14.20761],"Hvku":[96.52002,18.75],"A15s":[95,18.63726],"DppR":[96.63608,14.70927]},"texture":0,"vertices":["Hvku","A15s","soJY","DppR"]},"LRQhtWNf":{"uv":{"NXlf":[42.16659,80.10842],"CEh5":[43.0268,80.32638],"mJIn":[43.44025,79.00815]},"texture":0,"vertices":["CEh5","NXlf","mJIn"]},"cnhY0Ggl":{"uv":{"ULX7":[41.09514,82.74334],"QWxH":[42.66451,83.35815],"NXlf":[42.16659,80.10842],"CEh5":[43.01727,80.32397]},"texture":0,"vertices":["QWxH","ULX7","NXlf","CEh5"]},"vFGZoSkN":{"uv":{"o8FK":[72.15416,36.10134],"HKfP":[74.09964,36.15413],"ULX7":[72.54396,26],"QWxH":[74.22884,26.04571]},"texture":0,"vertices":["HKfP","o8FK","ULX7","QWxH"]},"onMA9G92":{"uv":{"o8FK":[72.15416,36.10134],"PEiU":[73.91146,40.41699],"zv69":[72.09623,40.36774],"HKfP":[74.09964,36.15413]},"texture":0,"vertices":["PEiU","zv69","o8FK","HKfP"]},"f63DqCid":{"uv":{"DppR":[72.04457,44.63441],"N06t":[75.40773,47.60089],"Hvku":[74.06709,48.13602],"uR59":[73.72327,44.67996]},"texture":0,"vertices":["N06t","Hvku","DppR","uR59"]},"H6AkHoMZ":{"uv":{"CEh5":[43.01933,80.2637],"bSPc":[43.98222,80.32111],"mJIn":[43.57784,79]},"texture":0,"vertices":["bSPc","CEh5","mJIn"]},"aVRhKWK6":{"uv":{"QWxH":[42.66451,83.35815],"lXb6":[44.33531,83.35815],"CEh5":[43.01761,80.32105],"bSPc":[43.98221,80.32105]},"texture":0,"vertices":["lXb6","QWxH","CEh5","bSPc"]},"NJ8CJrpf":{"uv":{"HKfP":[74.09964,36.15413],"eSGY":[76.02884,36.15413],"QWxH":[74.22884,26.04573],"lXb6":[75.89964,26.04573]},"texture":0,"vertices":["eSGY","HKfP","QWxH","lXb6"]},"gUdPLuwh":{"uv":{"HKfP":[74.10303,36.26838],"zvEr":[76.21703,40.41706],"PEiU":[74.42018,40.52366],"eSGY":[76.02884,36.15413]},"texture":0,"vertices":["zvEr","PEiU","HKfP","eSGY"]},"mwEqg559":{"uv":{"uR59":[73.72173,44.67728],"IHUm":[76.74961,47.19697],"N06t":[75.40773,47.60089],"4Cmy":[75.35943,44.99955]},"texture":0,"vertices":["IHUm","N06t","uR59","4Cmy"]},"FKYxE6Vt":{"uv":{"bSPc":[43.98222,80.32111],"5MBJ":[44.844,80.109],"mJIn":[43.57786,79.00007]},"texture":0,"vertices":["5MBJ","bSPc","mJIn"]},"buZRyBwY":{"uv":{"lXb6":[44.33531,83.35815],"Obz1":[45.90486,82.74378],"bSPc":[43.98222,80.32111],"5MBJ":[44.83518,80.11117]},"texture":0,"vertices":["Obz1","lXb6","bSPc","5MBJ"]},"oRi6FoTS":{"uv":{"eSGY":[76.02884,36.15413],"su8s":[77.97432,36.10134],"lXb6":[75.89964,26.04571],"Obz1":[77.58452,26]},"texture":0,"vertices":["su8s","eSGY","lXb6","Obz1"]},"75jV3zH1":{"uv":{"eSGY":[76.02884,36.15413],"9lOl":[78.03226,40.36784],"zvEr":[76.21703,40.41709],"su8s":[77.97432,36.10134]},"texture":0,"vertices":["9lOl","zvEr","eSGY","su8s"]},"KfqBo7oT":{"uv":{"4Cmy":[76.40658,44.68002],"2lO9":[79.45604,45.99461],"IHUm":[78.15039,46.61017],"mh97":[78.09009,44.63434]},"texture":0,"vertices":["2lO9","IHUm","4Cmy","mh97"]},"W4TOeW95":{"uv":{"5MBJ":[44.844,80.109],"SZMy":[45.39771,79.66731],"mJIn":[43.57783,79.00004]},"texture":0,"vertices":["SZMy","5MBJ","mJIn"]},"zwoNldDd":{"uv":{"Obz1":[87.54668,2.71814],"WfRm":[89.26065,2.76088],"5MBJ":[88.49175,0.03527],"SZMy":[89.17697,0.15168]},"texture":0,"vertices":["WfRm","Obz1","5MBJ","SZMy"]},"YrTo6JP0":{"uv":{"su8s":[87.14777,12.81914],"YjkP":[89.12685,12.86848],"Obz1":[87.54668,2.71814],"WfRm":[89.26065,2.76088]},"texture":0,"vertices":["YjkP","su8s","Obz1","WfRm"]},"uL1lSsVz":{"uv":{"su8s":[87.14777,12.81914],"LT1v":[88.96142,17.13189],"9lOl":[87.1149,17.08584],"YjkP":[89.12685,12.86848]},"texture":0,"vertices":["LT1v","9lOl","su8s","YjkP"]},"jijvtegw":{"uv":{"mh97":[16.09645,94],"91yC":[17.75737,96.18787],"2lO9":[16.25639,95.92228],"qH1q":[17.67485,94.65689]},"texture":0,"vertices":["91yC","2lO9","mh97","qH1q"]},"AzLbtYxo":{"uv":{"SZMy":[42.07915,1.84574],"CwT8":[42.67085,1.93828],"mJIn":[42.67085,0]},"texture":0,"vertices":["CwT8","SZMy","mJIn"]},"flx5liMa":{"uv":{"WfRm":[89.3143,2.33353],"PYPa":[90.98935,2.76088],"SZMy":[90.49264,0],"CwT8":[91.07295,0.14805]},"texture":0,"vertices":["PYPa","WfRm","SZMy","CwT8"]},"URUHQilr":{"uv":{"YjkP":[89.12685,12.86848],"xW5d":[91.12315,12.86848],"WfRm":[89.26065,2.76088],"PYPa":[90.98935,2.76088]},"texture":0,"vertices":["xW5d","YjkP","WfRm","PYPa"]},"BkGZeYuR":{"uv":{"YjkP":[89.12981,12.97715],"ZkK0":[91.28858,17.1319],"LT1v":[89.42884,17.23329],"xW5d":[91.12315,12.86848]},"texture":0,"vertices":["ZkK0","LT1v","YjkP","xW5d"]},"prMLvhzl":{"uv":{"qH1q":[17.67485,94.65689],"xelF":[19.32075,96.19319],"91yC":[17.75765,96.19319],"q10Y":[19.40355,94.65689]},"texture":0,"vertices":["xelF","91yC","qH1q","q10Y"]},"b1xx2xqo":{"uv":{"CwT8":[80.61582,35.66307],"qrYa":[81.16657,36.10844],"mJIn":[82.44011,35.00795]},"texture":0,"vertices":["qrYa","CwT8","mJIn"]},"i0YIRBsw":{"uv":{"PYPa":[90.98935,2.76088],"EOpj":[92.70332,2.71814],"CwT8":[91.07295,0.14818],"qrYa":[91.75834,0.03896]},"texture":0,"vertices":["EOpj","PYPa","CwT8","qrYa"]},"JuTGPBgi":{"uv":{"xW5d":[91.12315,12.86848],"VOJ7":[93.10213,12.81914],"PYPa":[90.98935,2.76088],"EOpj":[92.70332,2.71814]},"texture":0,"vertices":["VOJ7","xW5d","PYPa","EOpj"]},"zevcGVnl":{"uv":{"xW5d":[91.12315,12.86848],"6BXj":[93.13511,17.08594],"ZkK0":[91.28858,17.13199],"VOJ7":[93.10213,12.81914]},"texture":0,"vertices":["6BXj","ZkK0","xW5d","VOJ7"]},"lBbUhpdB":{"uv":{"q10Y":[81.43722,80.00194],"CihN":[83.11805,80.89891],"xelF":[81.72324,81.5137],"ayCh":[82.81921,79]},"texture":0,"vertices":["CihN","xelF","q10Y","ayCh"]},"fLGmstO6":{"uv":{"qrYa":[81.16657,36.10844],"KkvQ":[82.02692,36.3263],"mJIn":[82.44008,35.00799]},"texture":0,"vertices":["KkvQ","qrYa","mJIn"]},"flDSPYYB":{"uv":{"EOpj":[80.09513,38.74337],"gUcA":[81.66453,39.35812],"qrYa":[81.16657,36.10844],"KkvQ":[82.01731,36.32387]},"texture":0,"vertices":["gUcA","EOpj","qrYa","KkvQ"]},"phd2fXE9":{"uv":{"VOJ7":[6.52182,75.10134],"f6LT":[8.4673,75.15413],"EOpj":[6.91162,65],"gUcA":[8.5965,65.04571]},"texture":0,"vertices":["f6LT","VOJ7","EOpj","gUcA"]},"yTQWB7S1":{"uv":{"VOJ7":[6.52182,75.10134],"lmI0":[8.27912,79.41699],"6BXj":[6.46399,79.36774],"f6LT":[8.4673,75.15413]},"texture":0,"vertices":["lmI0","6BXj","VOJ7","f6LT"]},"t8WCaNjI":{"uv":{"ayCh":[6.40855,83.63431],"Z8QH":[6.3508,85.6114],"CihN":[5.04426,84.99791],"9HR1":[8.09093,83.67996]},"texture":0,"vertices":["Z8QH","CihN","ayCh","9HR1"]},"pJI5IiqF":{"uv":{"KkvQ":[82.01933,36.26374],"FNm1":[82.98222,36.32108],"mJIn":[82.57774,35]},"texture":0,"vertices":["FNm1","KkvQ","mJIn"]},"TVp72UPm":{"uv":{"gUcA":[81.66453,39.35812],"8yve":[83.33533,39.35812],"KkvQ":[82.01763,36.32112],"FNm1":[82.98223,36.32112]},"texture":0,"vertices":["8yve","gUcA","KkvQ","FNm1"]},"dcpf90oB":{"uv":{"f6LT":[8.4673,75.15413],"mNFO":[10.3965,75.15413],"gUcA":[8.5965,65.04563],"8yve":[10.2673,65.04563]},"texture":0,"vertices":["mNFO","f6LT","gUcA","8yve"]},"M0OkCbv4":{"uv":{"f6LT":[8.47069,75.26838],"a6XU":[10.58469,79.41706],"lmI0":[8.78784,79.52366],"mNFO":[10.3965,75.15413]},"texture":0,"vertices":["a6XU","lmI0","f6LT","mNFO"]},"OV1KJRo9":{"uv":{"9HR1":[9.10786,83.77878],"73oJ":[8.71268,86.35132],"Z8QH":[7.43666,85.77214],"MFCT":[10.77287,83.68]},"texture":0,"vertices":["73oJ","Z8QH","9HR1","MFCT"]},"miaiajkV":{"uv":{"FNm1":[82.98222,36.32108],"BvTt":[83.8439,36.10899],"mJIn":[82.57776,35.00007]},"texture":0,"vertices":["BvTt","FNm1","mJIn"]},"EOsORDCC":{"uv":{"8yve":[83.33533,39.35812],"w3EM":[84.90487,38.74375],"FNm1":[82.98222,36.32108],"BvTt":[83.83518,36.11113]},"texture":0,"vertices":["w3EM","8yve","FNm1","BvTt"]},"P0HXeHSG":{"uv":{"mNFO":[10.3965,75.15413],"w62a":[12.34199,75.10134],"8yve":[10.2673,65.04571],"w3EM":[11.95218,65]},"texture":0,"vertices":["w62a","mNFO","8yve","w3EM"]},"4NoIeORz":{"uv":{"mNFO":[10.3965,75.15413],"AM1w":[12.39982,79.36784],"a6XU":[10.58469,79.41709],"w62a":[12.34199,75.10134]},"texture":0,"vertices":["AM1w","a6XU","mNFO","w62a"]},"DyFXGZri":{"uv":{"MFCT":[10.78168,83.67972],"dqpT":[10.4497,87.13996],"73oJ":[9.10703,86.60986],"VIhO":[12.45775,83.63424]},"texture":0,"vertices":["dqpT","73oJ","MFCT","VIhO"]},"o6oCe83q":{"uv":{"BvTt":[83.8439,36.10899],"rQa2":[84.39759,35.66727],"mJIn":[82.57781,35.00011]},"texture":0,"vertices":["rQa2","BvTt","mJIn"]},"Jt93PH4M":{"uv":{"w3EM":[87.54668,50.71805],"qJMj":[89.26065,50.76079],"BvTt":[88.49176,48.03517],"rQa2":[89.17697,48.15159]},"texture":0,"vertices":["qJMj","w3EM","BvTt","rQa2"]},"R3bwGU1p":{"uv":{"w62a":[87.14777,60.81904],"s4RT":[89.12685,60.86839],"w3EM":[87.54668,50.71805],"qJMj":[89.26065,50.76079]},"texture":0,"vertices":["s4RT","w62a","w3EM","qJMj"]},"rWMpKDeS":{"uv":{"w62a":[87.14777,60.81904],"qkPa":[88.96142,65.13179],"AM1w":[87.1149,65.08575],"s4RT":[89.12685,60.86839]},"texture":0,"vertices":["qkPa","AM1w","w62a","s4RT"]},"JPgFotOA":{"uv":{"VIhO":[99.0484,20.10011],"aRQE":[95.07371,21.62282],"dqpT":[95.00458,20.10011],"VLqe":[99.5,21.75]},"texture":0,"vertices":["aRQE","dqpT","VIhO","VLqe"]},"XdLqQeKR":{"uv":{"rQa2":[0.03086,0],"MNqj":[0.1234,0.59171],"mJIn":[1.96914,0]},"texture":0,"vertices":["MNqj","rQa2","mJIn"]},"0DOZdNRB":{"uv":{"qJMj":[89.31431,50.33343],"c4Do":[90.98935,50.76079],"rQa2":[90.49263,48],"MNqj":[91.07294,48.14806]},"texture":0,"vertices":["c4Do","qJMj","rQa2","MNqj"]},"dxng90Cl":{"uv":{"s4RT":[89.12685,60.86839],"aF6r":[91.12315,60.86839],"qJMj":[89.26065,50.76079],"c4Do":[90.98935,50.76079]},"texture":0,"vertices":["aF6r","s4RT","qJMj","c4Do"]},"TOWhRZSW":{"uv":{"s4RT":[89.12981,60.97706],"GYlm":[91.28858,65.13181],"qkPa":[89.42884,65.23319],"aF6r":[91.12315,60.86839]},"texture":0,"vertices":["GYlm","qkPa","s4RT","aF6r"]},"fVkKlLZU":{"uv":{"VLqe":[41.14946,63.29139],"A15s":[43.06891,67.60878],"aRQE":[41.50887,67.70646],"soJY":[42.87478,63.18336]},"texture":0,"vertices":["A15s","aRQE","VLqe","soJY"]},"AgiLmUdV":{"uv":{"MFCT":[10.77287,83.68],"a6XU":[10.58469,79.41706],"lmI0":[8.78784,79.52366],"9HR1":[9.105,83.77895]},"texture":0,"vertices":["lmI0","a6XU","MFCT","9HR1"]},"MfF5IKPb":{"uv":{"9HR1":[8.09093,83.67996],"lmI0":[8.27912,79.41699],"6BXj":[6.46399,79.36774],"ayCh":[6.40605,83.63424]},"texture":0,"vertices":["6BXj","lmI0","9HR1","ayCh"]},"AXZHaDQv":{"uv":{"ayCh":[93.16798,21.35265],"6BXj":[93.13511,17.08594],"ZkK0":[91.28858,17.13199],"q10Y":[91.45401,21.39539]},"texture":0,"vertices":["ZkK0","6BXj","ayCh","q10Y"]},"Lptn9Juy":{"uv":{"q10Y":[91.454,21.39532],"ZkK0":[91.28858,17.1319],"LT1v":[89.42884,17.23329],"qH1q":[89.72787,21.48942]},"texture":0,"vertices":["LT1v","ZkK0","q10Y","qH1q"]},"JuWlM3LN":{"uv":{"qH1q":[88.79599,21.39539],"LT1v":[88.96142,17.13189],"9lOl":[87.1149,17.08584],"mh97":[87.08202,21.35265]},"texture":0,"vertices":["9lOl","LT1v","qH1q","mh97"]},"1mC3pqvH":{"uv":{"mh97":[78.09009,44.63434],"9lOl":[78.03226,40.36784],"zvEr":[76.21703,40.41709],"4Cmy":[76.40521,44.68006]},"texture":0,"vertices":["zvEr","9lOl","mh97","4Cmy"]},"rdZWC7Wm":{"uv":{"4Cmy":[76.40521,44.68],"zvEr":[76.21703,40.41706],"PEiU":[74.42018,40.52366],"uR59":[74.73734,44.77895]},"texture":0,"vertices":["PEiU","zvEr","4Cmy","uR59"]},"DMQsSjTt":{"uv":{"uR59":[73.72327,44.67996],"PEiU":[73.91146,40.41699],"zv69":[72.09623,40.36774],"DppR":[72.03839,44.63424]},"texture":0,"vertices":["zv69","PEiU","uR59","DppR"]},"u60L37Er":{"uv":{"DppR":[93.16797,69.35245],"zv69":[93.13511,65.08575],"GYlm":[91.28858,65.13179],"soJY":[91.45401,69.39519]},"texture":0,"vertices":["GYlm","zv69","DppR","soJY"]},"D2ikUmL4":{"uv":{"soJY":[91.45401,69.39522],"GYlm":[91.28858,65.13181],"qkPa":[89.42884,65.23319],"VLqe":[89.72787,69.48933]},"texture":0,"vertices":["qkPa","GYlm","soJY","VLqe"]},"NN6Y0Zff":{"uv":{"VLqe":[88.79599,69.39529],"qkPa":[88.96142,65.13179],"AM1w":[87.1149,65.08575],"VIhO":[87.08203,69.35255]},"texture":0,"vertices":["AM1w","qkPa","VLqe","VIhO"]},"evb4e6MJ":{"uv":{"VIhO":[12.45775,83.63424],"AM1w":[12.39982,79.36784],"a6XU":[10.58469,79.41709],"MFCT":[10.77287,83.67996]},"texture":0,"vertices":["a6XU","AM1w","VIhO","MFCT"]},"fmXoEeIH":{"uv":{"ae2P":[7.02983,1],"sQQr":[10.45951,0.0614],"UuVz":[10.72017,1],"hAnS":[7.14192,0]},"texture":0,"vertices":["sQQr","UuVz","ae2P","hAnS"]},"n6CSoCmc":{"uv":{"hAnS":[0.33905,88.08175],"2MHe":[2.90324,86.10868],"sQQr":[3.50021,87.0729],"j9KP":[0.04225,86.99336]},"texture":0,"vertices":["2MHe","sQQr","hAnS","j9KP"]},"rBl38Zf7":{"uv":{"j9KP":[83.1363,86.30188],"8F9l":[81.86519,83.46206],"2MHe":[83.23102,83.30821],"hUzO":[81.8237,86.26958]},"texture":0,"vertices":["8F9l","2MHe","j9KP","hUzO"]},"CHCM5gF2":{"uv":{"JyVx":[80.4264,86.26955],"unlK":[79.01897,83.30762],"ZLMw":[80.3849,83.46148],"GNyA":[79.11401,86.30069]},"texture":0,"vertices":["unlK","ZLMw","JyVx","GNyA"]},"oE8vMGOZ":{"uv":{"GNyA":[84.46161,47.9829],"eedx":[81.00325,48.06719],"unlK":[81.59884,47.10202],"lesZ":[84.16524,49.07106]},"texture":0,"vertices":["eedx","unlK","GNyA","lesZ"]},"nlG6AFZo":{"uv":{"lesZ":[82.73067,49.69559],"mTfA":[79.01174,49.58791],"eedx":[79.54904,48.75367],"Vygi":[82.53026,50.7007]},"texture":0,"vertices":["mTfA","eedx","lesZ","Vygi"]},"SDceUZ5O":{"uv":{"Vygi":[82.17033,51.45716],"MYgt":[78.18037,50.80688],"mTfA":[78.83402,49.87996],"Nk4s":[81.80583,52.5237]},"texture":0,"vertices":["MYgt","mTfA","Vygi","Nk4s"]},"m2w8sK5C":{"uv":{"Nk4s":[44.63535,77.18537],"b5Wr":[43.36532,73.05272],"MYgt":[44.73448,73.17442],"J6XE":[43.32382,77.25]},"texture":0,"vertices":["b5Wr","MYgt","Nk4s","J6XE"]},"7jKMmCvq":{"uv":{"J6XE":[43.32382,77.25],"rQIS":[41.88502,73.0524],"b5Wr":[43.36532,73.0524],"a9OQ":[41.92652,77.25]},"texture":0,"vertices":["rQIS","b5Wr","J6XE","a9OQ"]},"iys0PEcu":{"uv":{"4094":[40.51591,73.17415],"a9OQ":[41.92652,77.24997],"rQIS":[41.88502,73.0524],"cg6a":[40.61499,77.18476]},"texture":0,"vertices":["4094","rQIS","a9OQ","cg6a"]},"iXw2qSzV":{"uv":{"4094":[6.34767,89.82705],"cg6a":[2.7285,91.55874],"UuVz":[5.69048,88.90279],"ae2P":[2.36098,90.49287]},"texture":0,"vertices":["UuVz","4094","cg6a","ae2P"]},"dNoqYahv":{"uv":{"2lO9":[79.13212,80.89829],"unlK":[79.01897,83.30762],"ZLMw":[80.38496,83.46149],"91yC":[80.52679,81.51312]},"texture":0,"vertices":["ZLMw","unlK","2lO9","91yC"]},"rEisJRtZ":{"uv":{"91yC":[17.75765,96.19319],"ZLMw":[17.79905,98.14629],"8F9l":[19.27935,98.14629],"xelF":[19.32075,96.19319]},"texture":0,"vertices":["8F9l","ZLMw","91yC","xelF"]},"u2Zm1OTl":{"uv":{"xelF":[81.72324,81.5137],"8F9l":[81.86519,83.46206],"2MHe":[83.23103,83.30821],"CihN":[83.11805,80.89891]},"texture":0,"vertices":["2MHe","8F9l","xelF","CihN"]},"Oo39nFef":{"uv":{"CihN":[5.04422,84.99789],"2MHe":[2.90324,86.10868],"sQQr":[3.50029,87.07302],"Z8QH":[6.3508,85.6114]},"texture":0,"vertices":["sQQr","2MHe","CihN","Z8QH"]},"Ea0YmSpD":{"uv":{"Z8QH":[7.43727,85.77241],"sQQr":[4.45537,86.94256],"UuVz":[4.8768,87.84098],"73oJ":[8.71268,86.35132]},"texture":0,"vertices":["UuVz","sQQr","Z8QH","73oJ"]},"IKL2ctsC":{"uv":{"4094":[6.34765,89.82702],"73oJ":[9.1078,86.61016],"UuVz":[5.69048,88.90279],"dqpT":[10.4497,87.13996]},"texture":0,"vertices":["4094","UuVz","73oJ","dqpT"]},"kVQCufFC":{"uv":{"4094":[40.51591,73.17415],"dqpT":[40.1001,68.28779],"rQIS":[41.88508,73.05239],"aRQE":[41.50887,67.70646]},"texture":0,"vertices":["rQIS","4094","dqpT","aRQE"]},"VnzKxn7w":{"uv":{"aRQE":[41.50887,67.70646],"rQIS":[41.88508,73.05239],"b5Wr":[43.36248,72.95989],"A15s":[43.06891,67.60878]},"texture":0,"vertices":["b5Wr","rQIS","aRQE","A15s"]},"9JJGHPyk":{"uv":{"A15s":[43.74104,67.70671],"b5Wr":[43.36532,73.05272],"MYgt":[44.73445,73.17442],"Hvku":[45.1499,68.28813]},"texture":0,"vertices":["MYgt","b5Wr","A15s","Hvku"]},"qi436obm":{"uv":{"Hvku":[74.06762,48.1358],"MYgt":[78.18037,50.80688],"mTfA":[78.83398,49.88002],"N06t":[75.40773,47.60089]},"texture":0,"vertices":["mTfA","MYgt","Hvku","N06t"]},"NXxOl4Aj":{"uv":{"N06t":[75.40812,47.60077],"mTfA":[79.01174,49.58791],"eedx":[79.54906,48.75364],"IHUm":[76.74961,47.19697]},"texture":0,"vertices":["eedx","mTfA","N06t","IHUm"]},"6Yus10rU":{"uv":{"IHUm":[78.15046,46.61013],"eedx":[81.00325,48.06719],"unlK":[81.59882,47.10207],"2lO9":[79.45604,45.99461]},"texture":0,"vertices":["unlK","eedx","IHUm","2lO9"]},"WzmCnZwk":{"uv":{"8F9l":[8,49],"ZLMw":[9.4803,49],"vLDJ":[9.4803,50],"doud":[8,50]},"texture":0,"vertices":["8F9l","doud","vLDJ","ZLMw"]}},"type":"mesh","uuid":"7bb19e2e-9c7a-b7ea-6735-134036e304b9"}],"groups":[],"outliner":["de13959b-d3b3-20e7-31fb-8c3af2a01352","7bb19e2e-9c7a-b7ea-6735-134036e304b9"],"textures":[{"name":"Cactus.png","relative_path":"Cactus.png","folder":"block","namespace":"","id":"0","group":"","scope":0,"width":512,"height":512,"uv_width":128,"uv_height":128,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"8ee53d90-7016-fd01-bc1e-fdd2fa6ba55f","source":"data:image/png;base64,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"}]} \ No newline at end of file diff --git a/resources/models/Cactus/Cactus.png b/resources/models/Cactus/Cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f1e0a2616c67a81d47a43512df5ce976da2eb3 GIT binary patch literal 39228 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

C%p}MM-Xy5^sd~Ux= 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 LIqhQF2LAXj5B-|z literal 0 HcmV?d00001 diff --git a/resources/models/cube/Cube.bbmodel b/resources/models/cube/Cube.bbmodel index 9e50d88..da203b3 100644 --- a/resources/models/cube/Cube.bbmodel +++ b/resources/models/cube/Cube.bbmodel @@ -1 +1 @@ -{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"Cube","model_identifier":"Cube","visible_box":[1,1,0],"variable_placeholders":"","multi_file_ruleset":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"mesh","color":9,"origin":[0,0,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"X4Zl":[8,12,8],"fm8y":[8,12,-8],"bSX3":[8,-4,8],"Xtgb":[8,-4,-8],"4rn1":[-8,12,8],"AyH7":[-8,12,-8],"GK77":[-8,-4,8],"hpYP":[-8,-4,-8]},"faces":{"Kjjg2owj":{"uv":{"Xtgb":[16,16],"fm8y":[16,0],"bSX3":[0,16],"X4Zl":[0,0]},"texture":0,"vertices":["fm8y","X4Zl","bSX3","Xtgb"]},"60DkcZPL":{"uv":{"hpYP":[0,33],"GK77":[16,33],"AyH7":[0,17],"4rn1":[16,17]},"texture":0,"vertices":["GK77","4rn1","AyH7","hpYP"]},"COugkOqS":{"uv":{"AyH7":[17,0],"4rn1":[17,16],"fm8y":[33,0],"X4Zl":[33,16]},"texture":0,"vertices":["4rn1","X4Zl","fm8y","AyH7"]},"c96pl5jp":{"uv":{"hpYP":[17,33],"Xtgb":[33,33],"GK77":[17,17],"bSX3":[33,17]},"texture":0,"vertices":["Xtgb","bSX3","GK77","hpYP"]},"3cdbFMrh":{"uv":{"GK77":[0,50],"bSX3":[16,50],"4rn1":[0,34],"X4Zl":[16,34]},"texture":0,"vertices":["bSX3","X4Zl","4rn1","GK77"]},"8PBsoEKa":{"uv":{"hpYP":[50,16],"AyH7":[50,0],"Xtgb":[34,16],"fm8y":[34,0]},"texture":0,"vertices":["AyH7","fm8y","Xtgb","hpYP"]}},"type":"mesh","uuid":"19838e88-9eac-a714-d5f3-280399c0c169"}],"groups":[],"outliner":["19838e88-9eac-a714-d5f3-280399c0c169"],"textures":[{"name":"cubetexture.png","relative_path":"cubetexture.png","folder":"block","namespace":"","id":"0","group":"","scope":0,"width":64,"height":64,"uv_width":64,"uv_height":64,"particle":false,"use_as_default":false,"layers_enabled":true,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"69683abb-0cbc-2632-be2c-1aa8a2ddc888","layers":[{"name":"layer","offset":[0,0],"scale":[1,1],"opacity":100,"visible":true,"blend_mode":"default","width":64,"height":64,"data_url":"data:image/png;base64,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"}],"source":"data:image/png;base64,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"},{"name":"VoxelTexture0.png","relative_path":"../../../../../../OneDrive/Terrain4GameEngine/Terrain4JEngine/resources/EngineResources/Texture/VoxelTextures/VoxelTexture0.png","folder":"","namespace":"","id":"1","group":"","scope":0,"width":16,"height":16,"uv_width":16,"uv_height":16,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"e505a55b-7491-9981-c08b-7164584268e8","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABg0lEQVR4AVzRsUvCQRjG8eMoa4mQChEhWmpoaOi/bW9oamuKaAwaHB2CqARRMRFpMQvMzwsvSOJzv7vnfe/7vndXn+9uVq/dx1W/9xQyTz1cX60o19372xXxyN76NZuX+XRWPgfD4re9u1vIvNk6KiRuvX/QLMSztreazMaT8rtcBuRnsSgEIllcbDocRyFr/sn5WcCrCXM6mpRxf1Deey+RmJDDTrsctFuhBIHZAxQdgDR2Gryy/F4WHWnbsYAisB6AthqNQuJUDeRcrePOOq0ERDcJUjHFE4vE9VC1Qet5/EH+d6MyqbzX3I88ELDogAOSciQgviOpbi4OJEa8uANHIEZKsiTdeC6XC+R1XKy4YwdAK1rahEjMJIkJHr19xHNbi1c0LasEolKCQMQlynEHNnrOzIkOJJ5eXhQtS6DNJxQnIHdA5vKqdyYL5ma7qmRMHGRTvOjAREVfkJS1iwNJ8VJg1cCwScUUj5ybB0QJ8hWPI4AQCJNcptdJAfFBCBTkDwAA//+BTJWUAAAABklEQVQDADJVQZXvMK6QAAAAAElFTkSuQmCC"},{"name":"VoxelTexture1.png","relative_path":"../../../../../../OneDrive/Terrain4GameEngine/Terrain4JEngine/resources/EngineResources/Texture/VoxelTextures/VoxelTexture1.png","folder":"","namespace":"","id":"2","group":"","scope":0,"width":16,"height":16,"uv_width":16,"uv_height":16,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"80a068ac-d675-b0a0-3eb1-e5be08552de9","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB30lEQVR4AUzRMWuTYRQF4MuLhlYobSKNZlKQFGxAxamDASVFUBelk8U/IDg5OvgHBBcF9Q9Ul6ijS+mQRcHVqJ3sUEJrYyuCFh1qnhfe0MD97r3nnnPu/b6kJ0+vHrx+dTPHg4eXD0ov68us9DJMNk8r3Y342N+LzZ3f4Vd6tYA/evE5Btt/tXF4vtYbRKrVJsdDwPLSqZAJSsY5XJsxwk3nWzPx5etwbPJubTsIkGRCq6+0G5mnFmZMEoKmCBgiMFWbyYVXnz2WjWBm6d71O6EhMGxNdegDTpSb0cMFoxSNeiVfiEeXgILb4plrcbJRj+WFpVh5380mSETM1LJ5jH5MEgGCofrxm2djk1ptZkSLqP1phwuIXcb806/VzEur6y8zgQn2/Vt3A8ast9GNztxtcD6dCdwFtuMlBdCW/l43i2FURfxjspeXwKaq02H7QudS4KX2jcU4PT+Xz2ECPHuhhRteR+EfssTs7YfnWfhzuBtM8kc8OjERzYvnghCRqHpiNn9MZxKam6nl6eNVtEj/9vdD6ICEasGQwJV6JmrZUli+QLGzOZCCSQlAc76ZF1giYCWYJA8AkfcqARNHKpWADQdbIZiUMM+vwEQwAYpv/fXY3fo+DkZwJoIpo/8AAAD//zXmyJsAAAAGSURBVAMA9OoklWqeOYUAAAAASUVORK5CYII="},{"name":"VoxelTexture15.png","relative_path":"../../../../../../OneDrive/Terrain4GameEngine/Terrain4JEngine/resources/EngineResources/Texture/VoxelTextures/VoxelTexture15.png","folder":"","namespace":"","id":"3","group":"","scope":0,"width":16,"height":16,"uv_width":16,"uv_height":16,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"6445f238-e9fa-a73e-8a48-070020674d9a","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABi0lEQVR4AVzSPSvGYRQG8Lv/IMkgb5FYsIjFy8JuooxWyUew+BrsVpOFwSdQ8lIiCyaJvGWQZMHv1Hn6P546nXOuc67rvp7/fVeHB8s/uztLP/8zTGxuzTfNr4/XYzdzVf5+E8Oj5fH9668qke9fPqOuZ/O+jtby/HpXeroGI1uqNBe318UQkCT11EhneXj6VkYQEURk3EqTDogMdLfFMqH9w8cQIGJmAJf1uPEXOABmIGQt64mdXL0XrpwODwcaapTVBguzfY2T9f29LVJT2A0HiDkhpHYaEcTJ8fYmMTNO8IhUdUsAIogWWT+7/ChECOuFuZ5IdXrzFjdACJhRd0AEaW1pqGyszsV3yL1woMnTCeplJGT9yuJM4erg6DzeSt5WvAMLrlI2SDd1u9t7x4UrO6z7q3bjHQB90XQhE5ke6zAqnCBzBTCzQ6RSAN0pQC0SR9az70R1zghWSAAOcghTsypzwgE8RbJu3AI1Qgj1QLBsli71dhwQTxkZkAPLamS4Xs4nT0jvW/wCAAD//waBj7MAAAAGSURBVAMADDkzOuVptksAAAAASUVORK5CYII="}]} \ No newline at end of file +{"meta":{"format_version":"5.0","model_format":"free","box_uv":false},"name":"Cube","model_identifier":"Cube","visible_box":[1,1,0],"variable_placeholders":"","multi_file_ruleset":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"mesh","color":9,"origin":[0,4,0],"rotation":[0,0,0],"shading":"flat","export":true,"visibility":true,"locked":false,"render_order":"default","scope":0,"allow_mirror_modeling":true,"vertices":{"X4Zl":[8,12,8],"fm8y":[8,12,-8],"bSX3":[8,-4,8],"Xtgb":[8,-4,-8],"4rn1":[-8,12,8],"AyH7":[-8,12,-8],"GK77":[-8,-4,8],"hpYP":[-8,-4,-8]},"faces":{"Kjjg2owj":{"uv":{"Xtgb":[16,16],"bSX3":[0,16],"X4Zl":[0,0],"fm8y":[16,0]},"texture":0,"vertices":["fm8y","X4Zl","bSX3","Xtgb"]},"60DkcZPL":{"uv":{"hpYP":[0,33],"AyH7":[0,17],"4rn1":[16,17],"GK77":[16,33]},"texture":0,"vertices":["GK77","4rn1","AyH7","hpYP"]},"COugkOqS":{"uv":{"AyH7":[17,0],"fm8y":[33,0],"X4Zl":[33,16],"4rn1":[17,16]},"texture":0,"vertices":["4rn1","X4Zl","fm8y","AyH7"]},"c96pl5jp":{"uv":{"hpYP":[17,33],"GK77":[17,17],"bSX3":[33,17],"Xtgb":[33,33]},"texture":0,"vertices":["Xtgb","bSX3","GK77","hpYP"]},"3cdbFMrh":{"uv":{"GK77":[0,50],"4rn1":[0,34],"X4Zl":[16,34],"bSX3":[16,50]},"texture":0,"vertices":["bSX3","X4Zl","4rn1","GK77"]},"8PBsoEKa":{"uv":{"hpYP":[50,16],"Xtgb":[34,16],"fm8y":[34,0],"AyH7":[50,0]},"texture":0,"vertices":["AyH7","fm8y","Xtgb","hpYP"]}},"type":"mesh","uuid":"19838e88-9eac-a714-d5f3-280399c0c169"}],"groups":[],"outliner":["19838e88-9eac-a714-d5f3-280399c0c169"],"textures":[{"name":"cubetexture.png","relative_path":"cubetexture.png","folder":"block","namespace":"","id":"0","group":"","scope":0,"width":64,"height":64,"uv_width":64,"uv_height":64,"particle":false,"use_as_default":false,"layers_enabled":true,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"69683abb-0cbc-2632-be2c-1aa8a2ddc888","layers":[{"name":"layer","offset":[0,0],"scale":[1,1],"opacity":100,"visible":true,"blend_mode":"default","width":64,"height":64,"data_url":"data:image/png;base64,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"}],"source":"data:image/png;base64,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"},{"name":"VoxelTexture0.png","relative_path":"../../../../../../OneDrive/Terrain4GameEngine/Terrain4JEngine/resources/EngineResources/Texture/VoxelTextures/VoxelTexture0.png","folder":"","namespace":"","id":"1","group":"","scope":0,"width":16,"height":16,"uv_width":16,"uv_height":16,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"e505a55b-7491-9981-c08b-7164584268e8","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABg0lEQVR4AVzRsUvCQRjG8eMoa4mQChEhWmpoaOi/bW9oamuKaAwaHB2CqARRMRFpMQvMzwsvSOJzv7vnfe/7vndXn+9uVq/dx1W/9xQyTz1cX60o19372xXxyN76NZuX+XRWPgfD4re9u1vIvNk6KiRuvX/QLMSztreazMaT8rtcBuRnsSgEIllcbDocRyFr/sn5WcCrCXM6mpRxf1Deey+RmJDDTrsctFuhBIHZAxQdgDR2Gryy/F4WHWnbsYAisB6AthqNQuJUDeRcrePOOq0ERDcJUjHFE4vE9VC1Qet5/EH+d6MyqbzX3I88ELDogAOSciQgviOpbi4OJEa8uANHIEZKsiTdeC6XC+R1XKy4YwdAK1rahEjMJIkJHr19xHNbi1c0LasEolKCQMQlynEHNnrOzIkOJJ5eXhQtS6DNJxQnIHdA5vKqdyYL5ma7qmRMHGRTvOjAREVfkJS1iwNJ8VJg1cCwScUUj5ybB0QJ8hWPI4AQCJNcptdJAfFBCBTkDwAA//+BTJWUAAAABklEQVQDADJVQZXvMK6QAAAAAElFTkSuQmCC"},{"name":"VoxelTexture1.png","relative_path":"../../../../../../OneDrive/Terrain4GameEngine/Terrain4JEngine/resources/EngineResources/Texture/VoxelTextures/VoxelTexture1.png","folder":"","namespace":"","id":"2","group":"","scope":0,"width":16,"height":16,"uv_width":16,"uv_height":16,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"80a068ac-d675-b0a0-3eb1-e5be08552de9","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB30lEQVR4AUzRMWuTYRQF4MuLhlYobSKNZlKQFGxAxamDASVFUBelk8U/IDg5OvgHBBcF9Q9Ul6ijS+mQRcHVqJ3sUEJrYyuCFh1qnhfe0MD97r3nnnPu/b6kJ0+vHrx+dTPHg4eXD0ov68us9DJMNk8r3Y342N+LzZ3f4Vd6tYA/evE5Btt/tXF4vtYbRKrVJsdDwPLSqZAJSsY5XJsxwk3nWzPx5etwbPJubTsIkGRCq6+0G5mnFmZMEoKmCBgiMFWbyYVXnz2WjWBm6d71O6EhMGxNdegDTpSb0cMFoxSNeiVfiEeXgILb4plrcbJRj+WFpVh5380mSETM1LJ5jH5MEgGCofrxm2djk1ptZkSLqP1phwuIXcb806/VzEur6y8zgQn2/Vt3A8ast9GNztxtcD6dCdwFtuMlBdCW/l43i2FURfxjspeXwKaq02H7QudS4KX2jcU4PT+Xz2ECPHuhhRteR+EfssTs7YfnWfhzuBtM8kc8OjERzYvnghCRqHpiNn9MZxKam6nl6eNVtEj/9vdD6ICEasGQwJV6JmrZUli+QLGzOZCCSQlAc76ZF1giYCWYJA8AkfcqARNHKpWADQdbIZiUMM+vwEQwAYpv/fXY3fo+DkZwJoIpo/8AAAD//zXmyJsAAAAGSURBVAMA9OoklWqeOYUAAAAASUVORK5CYII="},{"name":"VoxelTexture15.png","relative_path":"../../../../../../OneDrive/Terrain4GameEngine/Terrain4JEngine/resources/EngineResources/Texture/VoxelTextures/VoxelTexture15.png","folder":"","namespace":"","id":"3","group":"","scope":0,"width":16,"height":16,"uv_width":16,"uv_height":16,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","file_format":"png","render_mode":"default","render_sides":"auto","wrap_mode":"limited","pbr_channel":"color","fps":7,"frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"6445f238-e9fa-a73e-8a48-070020674d9a","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABi0lEQVR4AVzSPSvGYRQG8Lv/IMkgb5FYsIjFy8JuooxWyUew+BrsVpOFwSdQ8lIiCyaJvGWQZMHv1Hn6P546nXOuc67rvp7/fVeHB8s/uztLP/8zTGxuzTfNr4/XYzdzVf5+E8Oj5fH9668qke9fPqOuZ/O+jtby/HpXeroGI1uqNBe318UQkCT11EhneXj6VkYQEURk3EqTDogMdLfFMqH9w8cQIGJmAJf1uPEXOABmIGQt64mdXL0XrpwODwcaapTVBguzfY2T9f29LVJT2A0HiDkhpHYaEcTJ8fYmMTNO8IhUdUsAIogWWT+7/ChECOuFuZ5IdXrzFjdACJhRd0AEaW1pqGyszsV3yL1woMnTCeplJGT9yuJM4erg6DzeSt5WvAMLrlI2SDd1u9t7x4UrO6z7q3bjHQB90XQhE5ke6zAqnCBzBTCzQ6RSAN0pQC0SR9az70R1zghWSAAOcghTsypzwgE8RbJu3AI1Qgj1QLBsli71dhwQTxkZkAPLamS4Xs4nT0jvW/wCAAD//waBj7MAAAAGSURBVAMADDkzOuVptksAAAAASUVORK5CYII="}]} \ No newline at end of file diff --git a/resources/models/cube/Cube.obj b/resources/models/cube/Cube.obj index 8c4bfb9..e2baed9 100644 --- a/resources/models/cube/Cube.obj +++ b/resources/models/cube/Cube.obj @@ -2,14 +2,14 @@ mtllib Cube.mtl o mesh -v 0.5 0.75 0.5 -v 0.5 0.75 -0.5 -v 0.5 -0.25 0.5 -v 0.5 -0.25 -0.5 -v -0.5 0.75 0.5 -v -0.5 0.75 -0.5 -v -0.5 -0.25 0.5 -v -0.5 -0.25 -0.5 +v 0.5 1 0.5 +v 0.5 1 -0.5 +v 0.5 0 0.5 +v 0.5 0 -0.5 +v -0.5 1 0.5 +v -0.5 1 -0.5 +v -0.5 0 0.5 +v -0.5 0 -0.5 vt 0.25 1 vt 0 1 vt 0 0.75 diff --git a/resources/models/cube/Cube.vtx b/resources/models/cube/Cube.vtx index e7900fd723cfd967f56c0538d3797ee00a9daabf..2fc7dd4ce9780c7c8947ae4926262b75f217db4a 100644 GIT binary patch literal 1344 zcmb7>I}*Y$3a!`?$hAUK>YW&-~SooE+a* zxPF)u-v7}OQ^e@yed6YtOpqwda@8jtiGjK)VhuPs99IBEAH_+IO?u& zd{Z2K?r?VMlW%Drc{CXswPHpW^?t;aFOMceqt?vPC#HP)RC5={iG2OfI4fTsO@>CF znEBGZaPE!$;PaF_G5U<<5*$3X!p-ln%Ef(-ci-s~?pL4m%KWU^)PKCeGv}J$kK9Y{ ze!PR`yW%1~xcNSpIPbI5S4|ItF^lF2VQBm|XTtNlZgAcs#$59|p#81q9Cu2eTb%a^ F_W_6cip>B3 diff --git a/src/main/java/net/halbear/Executable/Init.java b/src/main/java/net/halbear/Executable/Init.java index c9cdb61..5dac465 100644 --- a/src/main/java/net/halbear/Executable/Init.java +++ b/src/main/java/net/halbear/Executable/Init.java @@ -6,10 +6,12 @@ import net.halbear.Terrain4J.EngineCore.Main.PrimaryRuntime; import org.tinylog.Logger; import org.tinylog.configuration.Configuration; +import java.util.UUID; + //Halbear was here public class Init { public static void main(String[] args){ - Configuration.set("writer.file", "ClientLog.t4jlog"); + Configuration.set("writer.file", "ClientLog" + UUID.randomUUID() +".t4jlog"); Logger.info("\nLaunching New Terrain4J Powered Software!"); var GameEngine = new PrimaryRuntime(EngineConfig.getInstance().GetSoftwareName(), new GameCore()); Logger.info("Launched Terrain4J Engine"); diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java index 1295892..c3a65c5 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Display/Window.java @@ -12,6 +12,8 @@ import org.tinylog.Logger; import java.io.File; +import static net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.StartMenu.GameStarted; +import static net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.StartMenu.ShowSettings; import static org.lwjgl.glfw.Callbacks.glfwFreeCallbacks; import static org.lwjgl.glfw.GLFW.*; import static org.lwjgl.glfw.GLFWVulkan.glfwVulkanSupported; @@ -24,6 +26,9 @@ public class Window { private int width; private boolean displayFPS = false; + public boolean CursorLocked = false; + public boolean ForceCursorUnlock = false; + public Window(String title){ if (!glfwInit()) { @@ -40,11 +45,16 @@ public class Window { height = vidMode.height();//Globals.getInstance().getHeight(); glfwDefaultWindowHints(); + glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); glfwWindowHint(GLFW_MAXIMIZED, GLFW_FALSE); glfwWindowHint(GLFW_ALPHA_BITS, 0); glfwWindowHint(GLFW_TRANSPARENT_FRAMEBUFFER, GLFW_FALSE); handle = glfwCreateWindow(width, height, title, MemoryUtil.NULL, MemoryUtil.NULL); + if (glfwRawMouseMotionSupported()) { + glfwSetInputMode(handle, GLFW_RAW_MOUSE_MOTION, GLFW_TRUE); + } + LockCursor(); if (handle == MemoryUtil.NULL) { //throw new RuntimeException("Failed to create the GLFW window"); } @@ -93,6 +103,16 @@ public class Window { else glfwSwapInterval(0); mouseInput = new MouseListener(handle); } + + public void LockCursor(){ + CursorLocked = true; + glfwSetInputMode(handle, GLFW_CURSOR, GLFW_CURSOR_DISABLED); + } + public void UnlockCursor(){ + CursorLocked = false; + glfwSetInputMode(handle, GLFW_CURSOR, GLFW_CURSOR_NORMAL); + } + public void cleanup() { glfwFreeCallbacks(handle); glfwDestroyWindow(handle); @@ -111,6 +131,8 @@ public class Window { return mouseInput; } public void pollEvents() { + if((!GameStarted || ShowSettings || ForceCursorUnlock) && CursorLocked) UnlockCursor(); + else if (GameStarted && !ShowSettings && !CursorLocked) LockCursor(); if (keyboardInput.keySinglePress(GLFW_KEY_V)) { SetVsync(); } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/EngineConfig.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/EngineConfig.java index 6efed8a..e7f4774 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/EngineConfig.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Logic/EngineConfig.java @@ -80,6 +80,11 @@ public class EngineConfig { public boolean RenderCollisionMesh = true; public float PhysicsSpeed = 1.0f; + public float MusicVolume = 1.0f; + public float SoundVolume = 1.0f; + public float WeaponVolume = 1.0f; + public float AmbientVolume = 1.0f; + public float PhysicsSpeed(){return PhysicsSpeed;} public void SetPhysicsSpeed(float NewSpeed){PhysicsSpeed =NewSpeed;} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/AudioInstance.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/AudioInstance.java index f5be374..0965930 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/AudioInstance.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/AudioInstance.java @@ -3,14 +3,54 @@ package net.halbear.Terrain4J.EngineCore.Main; import net.halbear.Terrain4J.EngineCore.Audio.AudioManager; import net.halbear.Terrain4J.EngineCore.Audio.AudioSource; import net.halbear.Terrain4J.EngineCore.Audio.SoundBuffer; +import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig; import org.joml.Vector3f; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + public class AudioInstance { + + public static final Map AudioInstances = new HashMap<>(); + + public static void ApplyUniversalVolume(){ + AudioInstances.forEach((name,instance)->{ + switch (instance.audioType){ + case SFX: + instance.SetVolume(EngineConfig.getInstance().SoundVolume); + break; + case WEAPONS: + instance.SetVolume(EngineConfig.getInstance().WeaponVolume); + break; + case MUSIC: + instance.SetVolume(EngineConfig.getInstance().MusicVolume); + break; + case AMBIENT: + instance.SetVolume(EngineConfig.getInstance().AmbientVolume); + break; + default: + } + }); + } + + public enum AudioType{ + SFX, + WEAPONS, + MUSIC, + AMBIENT + } private String SourcePath; private String BUFFER_ID = "AUDIO_INSTANCE_BUFFER"; private String SOURCE_ID = "AUDIO_INSTANCE_SOURCE"; private String InstanceName = ""; private AudioSource audioSource; + public AudioType audioType = AudioType.MUSIC; + + public AudioInstance SetAudioType(AudioType type){ + audioType = type; + return this; + } public AudioInstance(String AudioSourcePath, String InstanceName, AudioManager manager, boolean loop){ SourcePath = AudioSourcePath; @@ -22,6 +62,7 @@ public class AudioInstance { this.audioSource = new AudioSource(loop,true); audioSource.SetBuffer(buffer.GetBufferID()); manager.AddSoundSource(SOURCE_ID,audioSource); + AudioInstances.put(InstanceName,this); } public AudioInstance(String AudioSourcePath,String InstanceName, AudioManager manager, float X, float Y, float Z, boolean loop){ SourcePath = AudioSourcePath; diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java index 6610605..0cc1ad7 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/GameCore.java @@ -25,6 +25,7 @@ import net.halbear.Terrain4J.EngineCore.Logic.Rendering.ModelLoader; import net.halbear.Terrain4J.EngineCore.Main.Scene.*; import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.Gimbal; import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.LoadingScreen; +import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.SettingsMenu; import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.StartMenu; import net.halbear.Terrain4J.EngineCore.Profiling.CPUMonitor; import net.halbear.Terrain4J.EngineCore.Profiling.GPUProfiler; @@ -67,9 +68,11 @@ public class GameCore implements GameLogic { private String CubeModelID = "Cube"; private ModelData MusketData; private ModelData RevolverData; + private ModelData FlintlockData; public ILight SkyLight; private LoadingScreen loadingScreen; public final StartMenu startMenu = new StartMenu(); + public final SettingsMenu Settings = new SettingsMenu(); public boolean StartMenuActive = true; public List ActorEditorComponents = new ArrayList<>(); private Vector2f DeltaPos = new Vector2f(0,0); @@ -102,45 +105,28 @@ public class GameCore implements GameLogic { List MusketMat = ModelLoader.LoadMaterials("resources/models/musket/musket_mat.json"); RevolverData = ModelLoader.LoadModel("resources/models/Revolver/Revolver.json"); List RevolverMat = ModelLoader.LoadMaterials("resources/models/Revolver/Revolver_mat.json"); - Item MusketItem = new Item(MusketData.ID(), 1.0f, 8); - Item RevolverItem = new Item(RevolverData.ID(), 2.0f, 6); + FlintlockData = ModelLoader.LoadModel("resources/models/Flintlock/Flintlock.json"); + List 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); scene.MusketItem = MusketItem; scene.RevolverItem = RevolverItem; + scene.FlintLockItem = FlintLock; boolean createOfflinePlayer = !PrimaryRuntime.Server && !ClientConnectionThread.Connected; - - if(createOfflinePlayer) { - var Musket = new PlayerActor("DebugCamera","Player_Musket", MusketData.ID(), new Vector3f(0,5f,-5f)).SetCameraOffset(new Vector3f(0,1.0f,0)); - Musket.SetPositionOffset(new Vector3f(0.5f,1.0f,-1.25f)); - Musket.SetRotation(0,(float)Math.toRadians(180),0); - Musket.CreatePhysicsController( ConvexMesh.Box(0.5f,0.75f,0.5f),200f); - PlayerActorID = "Player_Musket"; - scene.Musket = Musket; - scene.CreatePlayerController(scene.Musket); - RigidPhysicsController physicsController = (RigidPhysicsController) Musket.GetPhysicsController(); - RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID).LockRotation(); - var Revolver = new PlayerActor("NULL","Player_Revolver", RevolverData.ID(), new Vector3f(0,5f,-5f)).SetCameraOffset(new Vector3f(0,1.0f,0)); - Revolver.SetPositionOffset(new Vector3f(0.5f,1.0f,-1.25f)); - Revolver.SetRotation(0,(float)Math.toRadians(180),0); - Revolver.CreatePhysicsController( ConvexMesh.Box(0.5f,0.75f,0.5f),200f); - scene.Revolver = Revolver; - PlayerActorID = "Player_Revolver"; - physicsController = (RigidPhysicsController) Revolver.GetPhysicsController(); - RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID).LockRotation(); - scene.AddActor(Musket); - scene.AddActor(Revolver); - materials.addAll(RevolverMat); - } materials.addAll(MelonaMat); materials.addAll(CollisionVisualisationMat); materials.addAll(MelonaMaterial); materials.addAll(MusketMat); materials.addAll(RevolverMat); + materials.addAll(FlintlockMat); models.add(MelonaData); models.add(CollisionVisualisationData); models.add(Melona); models.add(MusketData); models.add(RevolverData); + models.add(FlintlockData); Camera camera = scene.GetCamera(); camera.SetPosition(0,0,0); camera.SetRotation(0,0,0); @@ -180,6 +166,9 @@ public class GameCore implements GameLogic { SpawnNewStaticActor(engineInstance, new Vector3f(x * 4f, -4 * (float) Math.random(), y * 4f), new Vector3f(0, 0, 0), new Vector3f(1, 1, 1)); } } + for(int i = 0; i < 20; i++){ + SpawnNewActor(engineInstance, new Vector3f(-5 + (float)Math.random() * 10,10 + (float)Math.random() * 10, -5 + (float)Math.random() * 10), new Vector3f(0, 0, 0), new Vector3f(1, 1, 1)); + } } return new InitData(models,materials,guiTextures); } @@ -232,11 +221,11 @@ public class GameCore implements GameLogic { actorID, MusketData.ID(), new Vector3f(0, 8f, 0) - ).SetCameraOffset(new Vector3f(0, 1.0f, 0)); + ).SetCameraOffset(new Vector3f(0, 1.85f, 0)); - player.SetPositionOffset(new Vector3f(0.5f, 1.0f, -1.25f)); + player.SetPositionOffset(new Vector3f(0.5f, 1.25f, -1.25f)); player.SetRotation(0, (float)Math.toRadians(180), 0); - player.CreatePhysicsController(ConvexMesh.Box(0.5f, 0.75f, 0.5f), 200f); + player.CreatePhysicsController(ConvexMesh.Box(0.6f, 1.0f, 0.6f), 200f); player.SetServerSynced(true); RigidPhysicsController physicsController = (RigidPhysicsController) player.GetPhysicsController(); @@ -430,7 +419,8 @@ public class GameCore implements GameLogic { loadingScreen.RenderGUI(engineInstance, frameTimeNS, this); } else if (StartMenuActive) { startMenu.RenderGUI(engineInstance, frameTimeNS, this); - if (startMenu.GameStarted) { + Settings.RenderGUI(engineInstance, frameTimeNS, this); + if (startMenu.GameStarted && !StartMenu.ShowSettings) { StartMenuActive = false; } } else { @@ -459,6 +449,7 @@ public class GameCore implements GameLogic { VisualisedCollisionActor.CollisionVisuals.get(i).Update(); } for(int i = 0; i < ActorElement.ElementNames.size(); i++){ + if( ActorElement.ActorElementRegistry.get(ActorElement.ElementNames.get(i)) == null) continue; ActorElement.ActorElementRegistry.get(ActorElement.ElementNames.get(i)).UpdateModelMatrix(); } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java index 841b634..0da92af 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Actor.java @@ -11,6 +11,7 @@ import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.VkModel.ModelData; import org.joml.Matrix4f; import org.joml.Quaternionf; import org.joml.Vector3f; +import org.tinylog.Logger; import java.io.IOException; import java.util.ArrayList; @@ -25,6 +26,8 @@ public class Actor{ T4JLegacyCollision } + public float Health = 100f; + public static final Map Actors = new HashMap<>(); public static final List ActorNames = new ArrayList<>(); protected final String ID; @@ -273,7 +276,11 @@ public class Actor{ public String GetID(){return ID;} public String GetModelID(){return ModelID;} - public void SetModelID(String ModelID) { this.ModelID = ModelID; } + public void SetModelID(String ModelID) { + String OldID = this.ModelID; + this.ModelID = ModelID; + Logger.debug("ModelID of Actor has been Changed from [{}] to [{}]",OldID,this.ModelID); + } public Matrix4f GetModelMatrix(){return ModelMatrix;} public Vector3f GetPosition(){ return Position;} public Quaternionf GetRotation(){return Rotation;} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java index e5ac7dc..2442215 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Camera.java @@ -79,7 +79,7 @@ public class Camera { public void SetRotation(float x, float y, float z){Rotation.set(x,y,z);Recalculate();} - public void AddRotation(float x, float y, float z){Rotation.add(x,y,z);Recalculate(); } + public void AddRotation(float x, float y, float z){Rotation.set((float) ((Rotation.x + x)%(2*Math.PI)),(float) ((Rotation.y + y)%(2*Math.PI)),(float) ((Rotation.z + z)%(2*Math.PI)));Recalculate(); } public void AddRotX(float x){Rotation.x += x; Recalculate();} public void AddRotY(float y){Rotation.y += y; Recalculate();} public void AddRotZ(float z){Rotation.z += z; Recalculate();} diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/SettingsMenu.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/SettingsMenu.java new file mode 100644 index 0000000..22591a0 --- /dev/null +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/SettingsMenu.java @@ -0,0 +1,237 @@ +package net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs; + +import imgui.ImGui; +import imgui.ImGuiViewport; +import imgui.flag.ImGuiCol; +import imgui.flag.ImGuiCond; +import imgui.flag.ImGuiStyleVar; +import imgui.flag.ImGuiWindowFlags; +import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig; +import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance; +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.GUIOverlay; +import net.halbear.Terrain4J.EngineCore.Main.Scene.Scene; +import net.halbear.Terrain4J.EngineCore.Vulkan.Structure.DisplayToScreen.DeferredSceneRender; +import net.halbear.Terrain4J.EngineCore.Vulkan.Structure.DisplayToScreen.ForwardSceneRender; +import org.tinylog.Logger; + +public class SettingsMenu implements GUIOverlay { + public int[] Music = new int[]{100}; + public int[] SFX = new int[]{100}; + public int[] Weapons = new int[]{100}; + public int[] Ambient = new int[]{100}; + + @Override + public void RenderGUI(EngineInstance engineInstance, long frameTimeNS, GameCore parent) { + if (!StartMenu.ShowSettings) return; + ImGuiViewport viewport = ImGui.getMainViewport(); + int menuFlags = ImGuiWindowFlags.NoDecoration + | ImGuiWindowFlags.AlwaysAutoResize + | ImGuiWindowFlags.NoSavedSettings + | ImGuiWindowFlags.NoFocusOnAppearing + | ImGuiWindowFlags.NoNav + | ImGuiWindowFlags.NoMove; + + float CenterX = viewport.getWorkPosX() + viewport.getWorkSizeX() / 2.0f; + float CenterY = viewport.getWorkPosY() + viewport.getWorkSizeY() / 2.0f; + ImGui.setNextWindowPos(viewport.getWorkPosX(), viewport.getWorkPosY(), ImGuiCond.Always); + ImGui.setNextWindowSize(viewport.getWorkSizeX(), viewport.getWorkSizeY()); + ImGui.pushStyleColor(ImGuiCol.WindowBg, 0.08f, 0.08f, 0.1f, 1.0f); + ImGui.pushStyleVar(ImGuiStyleVar.WindowPadding, 40f, 30f); + ImGui.pushStyleVar(ImGuiStyleVar.ItemSpacing, 10f, 16f); + ImGui.pushStyleVar(ImGuiStyleVar.WindowRounding, 8f); + + ImGui.begin("Start Menu", menuFlags); + ImGui.setWindowFontScale(4.0f); + if (ImGui.button("Return")) { + StartMenu.ShowSettings = false; + if(StartMenu.GameStarted){ + Scene scene = (Scene) engineInstance.scene(); + parent.SwitchBGM(engineInstance, scene, "resources/EngineResources/audio/music/CHILL_REGGAE_2_StealthGroover.ogg"); + } + } + ImGui.sameLine(); + if (ImGui.button("Main Menu")) { + StartMenu.ShowSettings = false; + StartMenu.GameStarted = false; + } + ImGui.sameLine(); + ImGui.text("Settings"); + ImGui.setWindowFontScale(3f); + ImGui.spacing(); + if (ImGui.beginTabBar("Settings")) { + if (ImGui.beginTabItem("Audio")) { + ImGui.setWindowFontScale(4.0f); + ImGui.text("Audio Settings"); + ImGui.setWindowFontScale(3f); + if (ImGui.sliderInt("Music Volume", Music, 0, 100)) { + EngineConfig.getInstance().MusicVolume = Music[0] / 100.0f; + AudioInstance.ApplyUniversalVolume(); + } + if (ImGui.sliderInt("SFX Volume", SFX, 0, 100)) { + EngineConfig.getInstance().SoundVolume = SFX[0] / 100.0f; + AudioInstance.ApplyUniversalVolume(); + } + if (ImGui.sliderInt("Weapon Volume", Weapons, 0, 100)) { + EngineConfig.getInstance().WeaponVolume = Weapons[0] / 100.0f; + AudioInstance.ApplyUniversalVolume(); + } + if (ImGui.sliderInt("Ambient Volume", Ambient, 0, 100)) { + EngineConfig.getInstance().AmbientVolume = Ambient[0] / 100.0f; + AudioInstance.ApplyUniversalVolume(); + } + if (ImGui.button("Mute")) { + EngineConfig.getInstance().MusicVolume = 0; + EngineConfig.getInstance().SoundVolume = 0; + EngineConfig.getInstance().WeaponVolume = 0; + EngineConfig.getInstance().AmbientVolume = 0; + Music[0] = 0; + SFX[0] = 0; + Weapons[0] = 0; + Ambient[0] = 0; + AudioInstance.ApplyUniversalVolume(); + } + ImGui.sameLine(); + if (ImGui.button("50% Volume")) { + EngineConfig.getInstance().MusicVolume = 0.5f; + EngineConfig.getInstance().SoundVolume = 0.5f; + EngineConfig.getInstance().WeaponVolume = 0.5f; + EngineConfig.getInstance().AmbientVolume = 0.5f; + Music[0] = 50; + SFX[0] = 50; + Weapons[0] = 50; + Ambient[0] = 50; + AudioInstance.ApplyUniversalVolume(); + } + ImGui.sameLine(); + if (ImGui.button("Max Volume")) { + EngineConfig.getInstance().MusicVolume = 1f; + EngineConfig.getInstance().SoundVolume = 1f; + EngineConfig.getInstance().WeaponVolume = 1f; + EngineConfig.getInstance().AmbientVolume = 1f; + Music[0] = 100; + SFX[0] = 100; + Weapons[0] = 100; + Ambient[0] = 100; + AudioInstance.ApplyUniversalVolume(); + } + ImGui.endTabItem(); + } + if (ImGui.beginTabItem("Graphics")) { + ImGui.setWindowFontScale(4.0f); + ImGui.text("Graphics Settings"); + ImGui.setWindowFontScale(3f); + ImGui.text("Presets:"); + if(ImGui.button("Lowest")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = (0); + ForwardSceneRender.SetDualPassRendering(false); + DeferredSceneRender.SetDualPassRendering(false); + EngineConfig.getInstance().SetAlphaToCoverage(false); + PrimaryRuntime.GetRenderThread().GetRenderer().GetSceneRender().RebuildPipelines(PrimaryRuntime.GetRenderThread().GetRenderer().GetVulkanContext()); + } + ImGui.sameLine(); + if(ImGui.button("Medium")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = (1); + ForwardSceneRender.SetDualPassRendering(true); + DeferredSceneRender.SetDualPassRendering(true); + EngineConfig.getInstance().SetAlphaToCoverage(true); + PrimaryRuntime.GetRenderThread().GetRenderer().GetSceneRender().RebuildPipelines(PrimaryRuntime.GetRenderThread().GetRenderer().GetVulkanContext()); + } + ImGui.sameLine(); + if(ImGui.button("Highest")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = (4); + ForwardSceneRender.SetDualPassRendering(true); + DeferredSceneRender.SetDualPassRendering(true); + EngineConfig.getInstance().SetAlphaToCoverage(false); + PrimaryRuntime.GetRenderThread().GetRenderer().GetSceneRender().RebuildPipelines(PrimaryRuntime.GetRenderThread().GetRenderer().GetVulkanContext()); + } + ImGui.text("anti aliasing:"); + if(ImGui.button("No AA")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = (0); + } + ImGui.sameLine(); + if(ImGui.button("FXAA")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = (1); + } + ImGui.sameLine(); + if(ImGui.button("MSAAx2")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = (2); + } + ImGui.sameLine(); + if(ImGui.button("MSAAx4")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = (3); + } + ImGui.sameLine(); + if(ImGui.button("MSAAx8")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 2000; + parent.NextAAMode = 4; + } + ImGui.text("pipeline:"); + if(ImGui.button("Single Pass")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 500; + ForwardSceneRender.SetDualPassRendering(false); + DeferredSceneRender.SetDualPassRendering(false); + } + ImGui.sameLine(); + if(ImGui.button("dual Pass")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 500; + ForwardSceneRender.SetDualPassRendering(true); + DeferredSceneRender.SetDualPassRendering(true); + } + ImGui.text("pipeline lighting method:"); + if(ImGui.button("No Lighting")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 500; + EngineConfig.getInstance().SetRenderer(EngineConfig.Renderer.Forward); + //PrimaryRuntime.GetRenderThread().RefreshRenderer(); + } + ImGui.sameLine(); + if(ImGui.button("Deferred Lighting")){ + Logger.debug("Enabling Deferred Rendering"); + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 500; + EngineConfig.getInstance().SetRenderer(EngineConfig.Renderer.Deferred); + // PrimaryRuntime.GetRenderThread().RefreshRenderer(); + } + ImGui.text("Translucency rendering method:"); + if(ImGui.button("Alpha Blending (translucency)")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 500; + EngineConfig.getInstance().SetAlphaToCoverage(false); + PrimaryRuntime.GetRenderThread().GetRenderer().GetSceneRender().RebuildPipelines(PrimaryRuntime.GetRenderThread().GetRenderer().GetVulkanContext()); + } + ImGui.sameLine(); + if(ImGui.button("Alpha To Coverage (Dithering)")){ + parent.ChangeGraphicsSettings = true; + parent.CoolDown = 500; + EngineConfig.getInstance().SetAlphaToCoverage(true); + PrimaryRuntime.GetRenderThread().GetRenderer().GetSceneRender().RebuildPipelines(PrimaryRuntime.GetRenderThread().GetRenderer().GetVulkanContext()); + } + ImGui.endTabItem(); + } + ImGui.endTabBar(); + } + ImGui.end(); + ImGui.popStyleVar(3); + ImGui.popStyleColor(); + } +} \ No newline at end of file diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/StartMenu.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/StartMenu.java index 9422d6a..ba86d5c 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/StartMenu.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/GUIs/StartMenu.java @@ -22,8 +22,8 @@ import org.joml.Vector3f; import org.tinylog.Logger; public class StartMenu implements GUIOverlay { - public boolean GameStarted = false; - public boolean ShowSettings = false; + public static boolean GameStarted = false; + public static boolean ShowSettings = false; public float Volume = 1.0f; private void ApplyVolume(EngineInstance engineInstance) { @@ -35,7 +35,7 @@ public class StartMenu implements GUIOverlay { } @Override public void RenderGUI(EngineInstance engineInstance, long frameTimeNS, GameCore parent) { - if (GameStarted) return; + if (GameStarted || ShowSettings) return; ImGuiViewport viewport = ImGui.getMainViewport(); int menuFlags = ImGuiWindowFlags.NoDecoration | ImGuiWindowFlags.AlwaysAutoResize @@ -70,39 +70,11 @@ public class StartMenu implements GUIOverlay { if (ImGui.button("Play", buttonWidth, buttonHeight)) { GameStarted = true; Scene scene = (Scene) engineInstance.scene(); - parent.SwitchBGM(engineInstance, scene, "resources/EngineResources/audio/music/theshiteventhefar.ogg"); + parent.SwitchBGM(engineInstance, scene, "resources/EngineResources/audio/music/CHILL_REGGAE_2_StealthGroover.ogg"); } ImGui.setCursorPosX(buttonX); if (ImGui.button("Settings", buttonWidth, buttonHeight)) { - ShowSettings = !ShowSettings; - } - if (ShowSettings) { - ImGui.spacing(); - ImGui.setCursorPosX(buttonX); - ImGui.text("Volume: " + Math.round(Volume * 100) + "%"); - - ImGui.setCursorPosX(buttonX); - if (ImGui.button("-", 40f, 40f)) { - Volume = Math.max(0f, Volume - 0.1f); - ApplyVolume(engineInstance); - } - ImGui.sameLine(); - if (ImGui.button("+", 40f, 40f)) { - Volume = Math.min(1f, Volume + 0.1f); - ApplyVolume(engineInstance); - } - ImGui.sameLine(); - if (ImGui.button("Mute", 100f, 40f)) { - Scene scene = (Scene) engineInstance.scene(); - AudioInstance bgm = scene.audioInstances.get("BGM"); - bgm.Pause(); - } - ImGui.sameLine(); - if (ImGui.button("Unmute", 130f, 40f)) { - Scene scene = (Scene) engineInstance.scene(); - AudioInstance bgm = scene.audioInstances.get("BGM"); - bgm.Play(); - } + ShowSettings = true; } ImGui.setCursorPosX(buttonX); if (ImGui.button("Quit", buttonWidth, buttonHeight)) { diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Item.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Item.java index d644ef4..c6589b4 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Item.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Item.java @@ -1,5 +1,5 @@ package net.halbear.Terrain4J.EngineCore.Main.Scene; -public record Item(String ModelID, float FireRate, int MagazineCapacity) { +public record Item(String ModelID, float FireRate, int MagazineCapacity, float Damage) { } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/PlayerActor.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/PlayerActor.java index 70a4bc5..aa011fb 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/PlayerActor.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/PlayerActor.java @@ -26,7 +26,10 @@ public class PlayerActor extends Actor{ PlayerCam = Camera.CameraRegistry.get(AttachedCameraID); super(ID, ModelID, Position); if(!Objects.equals(ClientConnectionThread.OwnedActorID, ID) && !RenderThread.Headless && !PrimaryRuntime.Server){ - PrimaryRuntime.GetEngineInstance().scene().AddActor(new ActorElement("PlayerModel" + ID, MelonaModelID, ID,new Vector3f(0,0,0))); + ActorElement newMelona = new ActorElement("PlayerModel" + ID, MelonaModelID, ID,new Vector3f(0,0,0)); + newMelona.SetScale(1.3f); + newMelona.SetPositionOffset(0,-0.85f,0); + PrimaryRuntime.GetEngineInstance().scene().AddActor(newMelona); } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Scene.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Scene.java index 08ec645..e3dd145 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Scene.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/Scene.java @@ -22,9 +22,11 @@ import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.Projection.Project3D; import net.halbear.Terrain4J.EngineCore.Main.Scene.Item; import org.joml.Vector2f; import org.joml.Vector3f; +import org.tinylog.Logger; import java.util.*; +import static net.halbear.Terrain4J.EngineCore.Threads.ClientConnectionThread.UpdateEntityModelID; import static org.lwjgl.glfw.GLFW.*; import static org.lwjgl.glfw.GLFW.GLFW_KEY_A; import static org.lwjgl.glfw.GLFW.GLFW_KEY_D; @@ -36,6 +38,7 @@ import static org.lwjgl.glfw.GLFW.GLFW_KEY_W; public class Scene implements IScene { + public static long LastGunFire = 0; private static final float MOUSE_SENSITIVITY = 0.1f; private static final float MOVEMENT_SPEED = 0.025f; private final Map Actors; @@ -65,6 +68,8 @@ public class Scene implements IScene { public PlayerActor Revolver; public Item MusketItem; public Item RevolverItem; + public Item CurrentItem; + public Item FlintLockItem; public List ActiveGUIs = new ArrayList<>(); public Map GUIReg = new HashMap<>(); @@ -239,7 +244,7 @@ public class Scene implements IScene { public void SetCurrentWeapon(PlayerActor Weapon) {this.CurrentWeapon = Weapon; } - public int GUI_MODE = 0; + public int GUI_MODE = 1; @Override public void Input(EngineInstance engineInstance, long FrameDiffNanoSeconds,PlayerActor playerActor, float MOVEMENT_SPEED, GameCore parent) { @@ -256,42 +261,44 @@ public class Scene implements IScene { if(input.keyPressed(GLFW_KEY_ENTER)) { parent.SpawnNewActor(engineInstance, new Vector3f( (float)(5 * Math.random()),20 + (float)(10 * Math.random()), (float)(5 * Math.random())),new Vector3f(-1f + (float)(2 * Math.random()),-1f + (float)(2 * Math.random()),-1f + (float)(2 * Math.random())),new Vector3f((float)Math.random(),(float)Math.random(),(float)Math.random())); } - if(!ClientConnectionThread.Connected) { - if (input.keySinglePress(GLFW_KEY_R) && CurrentWeapon != Revolver) { - scene.RemoveActor(Musket); - scene.AddActor(Revolver); - playerController.SwitchActor(Revolver); - CurrentWeapon = Revolver; - playerActor = Revolver; - parent.SetPlayerActorID(Revolver.GetID()); - Musket.AttachedCameraID = "NULL"; - Revolver.AttachedCameraID = "DebugCamera"; - Revolver.SetModelID(MusketItem.ModelID()); - + if(!RenderThread.Headless && !PrimaryRuntime.Server && playerActor!= null) { + if (input.keySinglePress(GLFW_KEY_M)) { + playerActor.SetModelID(MusketItem.ModelID()); + UpdateEntityModelID(playerActor.ID, MusketItem.ModelID()); + CurrentItem= MusketItem; } - if (input.keySinglePress(GLFW_KEY_M) && CurrentWeapon != Musket) { - scene.RemoveActor(Revolver); - scene.AddActor(Musket); - playerController.SwitchActor(Musket); - CurrentWeapon = Musket; - playerActor = Musket; - parent.SetPlayerActorID(Musket.GetID()); - Musket.AttachedCameraID = "DebugCamera"; - Revolver.AttachedCameraID = "NULL"; - Musket.SetModelID(RevolverItem.ModelID()); - + if (input.keySinglePress(GLFW_KEY_R)) { + playerActor.SetModelID(RevolverItem.ModelID()); + UpdateEntityModelID(playerActor.ID, RevolverItem.ModelID()); + CurrentItem= RevolverItem; + } + if (input.keySinglePress(GLFW_KEY_F)) { + playerActor.SetModelID(FlintLockItem.ModelID()); + UpdateEntityModelID(playerActor.ID, FlintLockItem.ModelID()); + CurrentItem= FlintLockItem; } } if (input.keySinglePress(GLFW_KEY_ESCAPE)) { parent.StartMenuActive = true; - parent.startMenu.GameStarted = false; + parent.startMenu.GameStarted = true; + StartMenu.ShowSettings = true; parent.SwitchBGM(engineInstance, this, "resources/EngineResources/audio/music/MENUMUSIC_RetroFutureClean.ogg"); } MouseListener mouseListener = window.getMouseInput(); if (mouseListener.isRightButtonPressed()) { - CurrentWeapon.SetPositionOffset(new Vector3f(0f,1.0f,-1.25f)); + CurrentWeapon.SetPositionOffset(new Vector3f(0f,1.15f,-1.25f)); } else { - CurrentWeapon.SetPositionOffset(new Vector3f(0.5f,1.0f,-1.25f)); + CurrentWeapon.SetPositionOffset(new Vector3f(0.5f,1.15f,-1.25f)); + } + if(mouseListener.isRightButtonPressed()) { + if (CurrentItem != null&& playerActor != null) { + long NewTime = System.nanoTime(); + float FireRate = 1000f/CurrentItem.FireRate(); + if (NewTime - LastGunFire > 1_000_000f * FireRate ){ + LastGunFire = NewTime; + ClientConnectionThread.FireWeapon(playerActor.ID, CurrentItem.Damage()); + } + } } if(input.keyPressed(GLFW_KEY_1)) { Gimbal.universalType = Gimbal.GimbalType.Move; @@ -369,10 +376,10 @@ public class Scene implements IScene { } LastMousePos.x = CurrentMousePos.x; LastMousePos.y = CurrentMousePos.y; - if(MouseInput.isRightButtonPressed()){ + // if(MouseInput.isRightButtonPressed()){ camera.AddRotation((float)Math.toRadians(-deltaPos.y * Multiplier),(float)Math.toRadians(-deltaPos.x * Multiplier),0); - } + // } engineInstance.audioManager().UpdateListenerPosition(camera); } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/VisualisedCollisionActor.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/VisualisedCollisionActor.java index bc2b003..fec4a6e 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/VisualisedCollisionActor.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Main/Scene/VisualisedCollisionActor.java @@ -28,7 +28,7 @@ public class VisualisedCollisionActor extends Actor{ if(mesh != null) { SetScale(new Vector3f(mesh.hxhyhz).mul(2.01f)); SetPosition(new Vector3f(mesh.Position.x,mesh.Position.y,mesh.Position.z)); - SetPositionOffset(new Vector3f(0,-mesh.hxhyhz.y/3f,0)); + SetPositionOffset(new Vector3f(0,( mesh.GetWorldAABB().minY - mesh.GetWorldAABB().maxY)/2f,0)); SetRotation(mesh.Orientation); } } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/ServerNetworking/Packet.java b/src/main/java/net/halbear/Terrain4J/EngineCore/ServerNetworking/Packet.java index fa42d02..63e178f 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/ServerNetworking/Packet.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/ServerNetworking/Packet.java @@ -20,6 +20,8 @@ public class Packet { public static final byte PACKET_POSSESS_ACTOR = 8; public static final byte PACKET_DESTROY_ACTOR = 9; public static final byte PACKET_CLIENT_INPUT = 10; + public static final byte PACKET_UPDATE_MODEL_ID = 11; + public static final byte PACKET_FIRE_WEAPON = 12; public byte PacketTypeByte; //0 Location 1 Rotation 2 LinearVelocity 3 AngularVelocity 4 CombinedActorDownload 5 Ping 6 PosRotVelAngularVel 7 AssignUUID public byte TargetType; //0 Actor public byte[] Data; diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ClientConnectionThread.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ClientConnectionThread.java index 1c323f0..694eb88 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ClientConnectionThread.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ClientConnectionThread.java @@ -15,6 +15,7 @@ import org.tinylog.Logger; import java.io.*; import java.net.Socket; import java.net.SocketTimeoutException; +import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; @@ -232,6 +233,14 @@ public class ClientConnectionThread implements Runnable{ scene.RemoveActor(actorToDestroy); } break; + case 11: + Logger.debug("Rebound packet received for actor [{}]", packet.TargetID); + stringdata = Packet.DecodeAsString(packet.Data); + Actor actorToChangeModelID = Actor.Actors.get(packet.TargetID); + if(actorToChangeModelID != null) { + actorToChangeModelID.SetModelID(stringdata); + } + break; } } } @@ -258,6 +267,23 @@ public class ClientConnectionThread implements Runnable{ } } + public static void FireWeapon(String ActorID, float Damage){ + Packet packet = new Packet(Packet.PACKET_FIRE_WEAPON); + packet.SetTargetType((byte) 0); + packet.SetData(ByteBuffer.allocate(4).putFloat(Damage).array()); + packet.SetID(ActorID); + OutGoingPacketQueue.add(packet); + } + + public static void UpdateEntityModelID(String ActorID, String ModelID){ + Packet packet = new Packet(Packet.PACKET_UPDATE_MODEL_ID); + packet.SetTargetType((byte) 0); + packet.SetData(ModelID.getBytes(StandardCharsets.UTF_8)); + packet.SetID(ActorID); + OutGoingPacketQueue.add(packet); + Logger.debug("Sent model ID update packet for actor [{}]", ActorID); + } + public static void SendEntityUpdatePacket(Actor actor){ Packet newOutgoingPacket = new Packet((byte)6); newOutgoingPacket.SetTargetType((byte) 0); @@ -299,6 +325,9 @@ public class ClientConnectionThread implements Runnable{ public static void WritePacket(Packet outPacket, DataOutputStream Outgoing) throws IOException { if(Outgoing == null ) return; + if(outPacket.PacketTypeByte == Packet.PACKET_UPDATE_MODEL_ID){ + Logger.debug("Sending model ID update packet for actor [{}]", outPacket.TargetID); + } byte[] DataToSend = Packet.GetOutgoingData(outPacket); Outgoing.write(DataToSend); } diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ServerConnectionThread.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ServerConnectionThread.java index 27b312b..22e5e16 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ServerConnectionThread.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Threads/ServerConnectionThread.java @@ -193,6 +193,13 @@ public class ServerConnectionThread implements Runnable{ // Example future data: // forward/back/left/right/jump/yaw/pitch/sequenceNumber break; + case Packet.PACKET_UPDATE_MODEL_ID: + if(!packet.TargetID.equals(ConnectedClients.get(packet.ClientID).OwnedActorID)) { + return; + } + Packet ReboundPacket = CreateUpdateModelIDPacket(packet.TargetID, Packet.DecodeAsString(packet.Data)); + Server.OutGoingPacketQueue.add(ReboundPacket); + break; } } @@ -201,134 +208,6 @@ public class ServerConnectionThread implements Runnable{ } - public static void DecodePackets(EngineInstance engineInstance, GameCore gameCore, IScene scene,List IncomingPacketQueue){ - if(!IncomingPacketQueue.isEmpty()){ - ListIterator iter = IncomingPacketQueue.listIterator(); - while(iter.hasNext()){ - Packet packet = iter.next(); - Actor Target = Actor.Actors.get(packet.TargetID); - Vector3f vector3f = new Vector3f(); - String stringdata = ""; - Quaternionf quaternionfdata = new Quaternionf(); - Packet.DecodedMovementPacket MovementUpdate; - if(packet.PacketTypeByte >= 0 && packet.PacketTypeByte < 4 && packet.PacketTypeByte != 1){ - vector3f = Packet.DecodeAsVector3f(packet.Data); - } - - if(Target == null - && packet.PacketTypeByte != Packet.PACKET_CREATE_ACTOR - && packet.PacketTypeByte != Packet.PACKET_PING - && packet.PacketTypeByte != Packet.PACKET_POSSESS_ACTOR) { - iter.remove(); - continue; - } - switch (packet.PacketTypeByte){ - case 0: - Target.SetNewPosition(vector3f); - break; - case 1: - quaternionfdata = Packet.DecodeAsQuaternation(packet.Data); - Target.SetNewRotation(quaternionfdata); - break; - case 2: - Target.SetNewVelocity(vector3f); - break; - case 3: - Target.SetNewAngularVelocity(vector3f); - break; - case 4: //"ACtorType:ModelID:x:y:z:rx:ry:rz:sx:sy:sz:hx:hy:hz:MassKG:vx:vy:vz:avx:avy:avz:posOffx:posOffy:posOffz:camOffx:camOffy:camOffz" - stringdata = Packet.DecodeAsString(packet.Data); - String[] Split = stringdata.split(":"); - Vector3f Position = new Vector3f( - Float.parseFloat(Split[2]), - Float.parseFloat(Split[3]), - Float.parseFloat(Split[4]) - ); - - Quaternionf Rotation = new Quaternionf( - Float.parseFloat(Split[5]), - Float.parseFloat(Split[6]), - Float.parseFloat(Split[7]), - Float.parseFloat(Split[8]) - ); - - Vector3f Scale = new Vector3f( - Float.parseFloat(Split[9]), - Float.parseFloat(Split[10]), - Float.parseFloat(Split[11]) - ); - - Vector3f CollisionBox = new Vector3f( - Float.parseFloat(Split[12]), - Float.parseFloat(Split[13]), - Float.parseFloat(Split[14]) - ); - - float MassKG = Float.parseFloat(Split[15]); - - Vector3f Velocity = new Vector3f( - Float.parseFloat(Split[16]), - Float.parseFloat(Split[17]), - Float.parseFloat(Split[18]) - ); - - Vector3f AngularVelocity = new Vector3f( - Float.parseFloat(Split[19]), - Float.parseFloat(Split[20]), - Float.parseFloat(Split[21]) - ); - Vector3f PositionOffset = new Vector3f( - Float.parseFloat(Split[22]), - Float.parseFloat(Split[23]), - Float.parseFloat(Split[24]) - ); - - Vector3f CameraOffset = new Vector3f( - Float.parseFloat(Split[25]), - Float.parseFloat(Split[26]), - Float.parseFloat(Split[27]) - ); - - String actorType = Split[0]; - String modelID = Split[1]; - - if(actorType.equals("PlayerActor")) { - Target = new PlayerActor("NULL", packet.TargetID, modelID, Position).SetCameraOffset(CameraOffset); - Target.SetPositionOffset(PositionOffset); - } else { - Target = new Actor(packet.TargetID, modelID, Position); - } - Target.SetNewRotation(Rotation); - Target.SetScale(Scale); - Target.CreatePhysicsController(ConvexMesh.Box(CollisionBox.x, CollisionBox.y, CollisionBox.z), MassKG); - Target.SetServerSynced(MassKG > 0.0f || actorType.equals("PlayerActor")); - - Target.SetNewRotation(Rotation); - - RigidPhysicsController physicsController = (RigidPhysicsController) Target.GetPhysicsController(); - - RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID).LinearVelocity.set(Velocity); - RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID).AngularVelocity.set(AngularVelocity); - if(actorType.equals("PlayerActor")){ - RigidBody.RigidBodyRegister.get(physicsController.RigidBodyID).LockRotation(); - } - scene.AddActor(Target); - break; - case 6: - if(!packet.TargetID.equals(ConnectedClients.get(packet.ClientID).OwnedActorID)) { - return; - } - MovementUpdate = Packet.DecodeAsMovementUpdate(packet.Data); - Target.SetNewRotation(MovementUpdate.Rotation); - Target.SetNewPosition(MovementUpdate.Position); - Target.SetNewVelocity(MovementUpdate.LinearVelocity); - Target.SetNewAngularVelocity(MovementUpdate.AngularVelocity); - break; - } - iter.remove(); - } - } - } public static Packet CreateActorPacket(Actor actor){ Packet newOutgoingPacket = new Packet(Packet.PACKET_CREATE_ACTOR); @@ -387,6 +266,14 @@ public class ServerConnectionThread implements Runnable{ if(newOutgoingPacket != null)Server.OutGoingPacketQueue.add(newOutgoingPacket); } + public static Packet CreateUpdateModelIDPacket(String actorID, String NewModelID){ + Packet packet = new Packet(Packet.PACKET_UPDATE_MODEL_ID); + packet.SetTargetType((byte) 0); + packet.SetData(NewModelID.getBytes(StandardCharsets.UTF_8)); + packet.SetID(actorID); + return packet; + } + public static Packet CreateDestroyActorPacket(String actorID){ Packet packet = new Packet(Packet.PACKET_DESTROY_ACTOR); packet.SetTargetType((byte) 0); diff --git a/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Structure/DisplayToScreen/ForwardSceneRender.java b/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Structure/DisplayToScreen/ForwardSceneRender.java index 12f8971..d2f9bb6 100644 --- a/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Structure/DisplayToScreen/ForwardSceneRender.java +++ b/src/main/java/net/halbear/Terrain4J/EngineCore/Vulkan/Structure/DisplayToScreen/ForwardSceneRender.java @@ -5,8 +5,10 @@ import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance; import net.halbear.Terrain4J.EngineCore.Logic.Rendering.VulkanContext; import net.halbear.Terrain4J.EngineCore.Main.PrimaryRuntime; import net.halbear.Terrain4J.EngineCore.Main.Scene.Actor; +import net.halbear.Terrain4J.EngineCore.Main.Scene.ActorElement; import net.halbear.Terrain4J.EngineCore.Main.Scene.IScene; import net.halbear.Terrain4J.EngineCore.Main.Scene.Scene; +import net.halbear.Terrain4J.EngineCore.Threads.ClientConnectionThread; import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.DeferredRendering.MultiRenderTargetAttachments; import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.Pipeline.DefaultPipeline; import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.Pipeline.Images.*; @@ -22,6 +24,7 @@ import net.halbear.Terrain4J.EngineCore.Vulkan.Structure.SwapChain.SwapChain; import net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanBuffer; import net.halbear.Terrain4J.EngineCore.Vulkan.Util.VulkanUtils; import org.joml.Matrix4f; +import org.joml.Vector3f; import org.lwjgl.system.MemoryStack; import org.lwjgl.system.MemoryUtil; import org.lwjgl.util.shaderc.Shaderc; @@ -33,6 +36,7 @@ import java.nio.LongBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Objects; import static org.lwjgl.vulkan.VK13.*; @@ -406,6 +410,7 @@ public class ForwardSceneRender implements SceneRenderer {//dynamic rendering if(i < Actors.size()) { var Actor = Actors.get(i); if(Actor != null) { + if(Actor instanceof ActorElement &&( !((ActorElement) Actor).RenderOnTopOfPlayer && Objects.equals(((ActorElement) Actor).GetParentID(), ClientConnectionThread.OwnedActorID) || new Vector3f().set(Actor.GetPosition()).sub(instance.scene().GetCamera().GetPosition()).absolute().lengthSquared() < 4f)) continue; VulkanModel model = modelsCache.GetModel(Actor.GetModelID()); List VkMeshList = model.GetVkMeshList(); int MeshCount = VkMeshList.size();