From e03729b42b2d2c653b36cf000440db26ded3fb4d Mon Sep 17 00:00:00 2001 From: OusmBlueNinja <89956790+OusmBlueNinja@users.noreply.github.com> Date: Mon, 5 May 2025 22:28:17 -0500 Subject: [PATCH] Did so much i forgot all i did --- imgui.ini | 69 +- remake/build.log | 5 +- src/assets/lua/light_test.lua | 34 + src/assets/scenes/drag_n_drop_tests.cene | 2121 ++++++++++++++++++++++ src/assets/scenes/isometric_test.cene | 1643 +++++++++++++++++ src/assets/scenes/lots.cene | 1614 ++++++++++++++++ src/assets/shaders/outline.frag | 43 + src/assets/shaders/outline.vert | 13 + src/assets/shaders/sprite.frag | 22 +- src/assets/shaders/unlit.frag | 5 +- src/src/Components/ScriptComponent.cpp | 266 ++- src/src/Engine.cpp | 132 +- src/src/Entitys/Object.cpp | 73 +- src/src/Entitys/Object.h | 23 + src/src/Renderer.cpp | 54 +- src/src/Renderer.h | 15 +- src/src/core/audio/AudioEngine.cpp | 10 +- src/src/core/types/vec3.h | 22 + src/src/core/utils/AssetManager.cpp | 18 + src/src/core/utils/AssetManager.h | 2 +- src/src/core/utils/FileDialog.cpp | 46 +- src/src/core/utils/FileDialog.h | 4 + src/src/core/utils/LoadingWindow.cpp | 50 +- src/src/core/utils/LoadingWindow.h | 8 +- src/src/editor/windows/AssetBrowser.cpp | 140 +- src/src/editor/windows/Inspector.cpp | 8 +- src/src/utils/UID.cpp | 2 + 27 files changed, 6235 insertions(+), 207 deletions(-) create mode 100644 src/assets/lua/light_test.lua create mode 100644 src/assets/scenes/drag_n_drop_tests.cene create mode 100644 src/assets/scenes/isometric_test.cene create mode 100644 src/assets/scenes/lots.cene create mode 100644 src/assets/shaders/outline.frag create mode 100644 src/assets/shaders/outline.vert diff --git a/imgui.ini b/imgui.ini index e36c07b..c67b0f9 100644 --- a/imgui.ini +++ b/imgui.ini @@ -10,24 +10,24 @@ Collapsed=1 [Window][WindowOverViewport_11111111] Pos=0,19 -Size=1920,1158 +Size=1280,701 Collapsed=0 [Window][Inspector] -Pos=1553,19 -Size=367,659 +Pos=913,19 +Size=367,202 Collapsed=0 DockId=0x00000018,0 [Window][Scene Tree] Pos=0,19 -Size=342,575 +Size=342,356 Collapsed=0 -DockId=0x00000003,0 +DockId=0x0000000F,0 [Window][Viewport] Pos=344,19 -Size=1207,659 +Size=567,202 Collapsed=0 DockId=0x00000017,0 @@ -36,14 +36,14 @@ Size=1280,19 Collapsed=0 [Window][Performance Info] -Pos=1430,881 -Size=490,296 +Pos=1094,223 +Size=186,497 Collapsed=0 -DockId=0x0000000F,0 +DockId=0x00000016,0 [Window][Console] -Pos=344,680 -Size=1497,326 +Pos=344,223 +Size=715,203 Collapsed=0 DockId=0x00000013,0 @@ -54,8 +54,8 @@ Collapsed=0 DockId=0x00000017,1 [Window][Profiler] -Pos=344,1008 -Size=1497,169 +Pos=344,428 +Size=715,292 Collapsed=0 DockId=0x00000014,0 @@ -78,19 +78,18 @@ Collapsed=0 DockId=0x00000015,1 [Window][Color Correction] -Pos=1669,881 -Size=251,296 +Pos=1196,320 +Size=317,227 Collapsed=0 -DockId=0x00000010,0 [Window][Asset Browser] -Pos=0,596 -Size=342,581 +Pos=0,658 +Size=342,519 Collapsed=0 DockId=0x00000004,0 [Window][Confirm Deletion] -Pos=797,551 +Pos=787,416 Size=325,75 Collapsed=0 @@ -113,8 +112,8 @@ Collapsed=0 DockId=0x0000000E,0 [Window][Audio Output] -Pos=1843,680 -Size=77,497 +Pos=1061,223 +Size=31,497 Collapsed=0 DockId=0x00000012,0 @@ -124,25 +123,31 @@ Size=277,150 Collapsed=0 DockId=0x0000000D,0 +[Window][Resources] +Pos=0,377 +Size=342,343 +Collapsed=0 +DockId=0x00000010,0 + [Docking][Data] -DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Split=X +DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1280,701 Split=X DockNode ID=0x00000005 Parent=0x11111111 SizeRef=989,1158 Split=X DockNode ID=0x00000001 Parent=0x00000005 SizeRef=342,701 Split=Y Selected=0x12EF0F59 - DockNode ID=0x00000003 Parent=0x00000001 SizeRef=342,575 HiddenTabBar=1 Selected=0x12EF0F59 - DockNode ID=0x00000004 Parent=0x00000001 SizeRef=342,581 HiddenTabBar=1 Selected=0x36AF052B + DockNode ID=0x00000003 Parent=0x00000001 SizeRef=342,637 Split=Y Selected=0x12EF0F59 + DockNode ID=0x0000000F Parent=0x00000003 SizeRef=342,356 HiddenTabBar=1 Selected=0x12EF0F59 + DockNode ID=0x00000010 Parent=0x00000003 SizeRef=342,343 HiddenTabBar=1 Selected=0x30401527 + DockNode ID=0x00000004 Parent=0x00000001 SizeRef=342,519 HiddenTabBar=1 Selected=0x36AF052B DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1484,701 Split=Y Selected=0xC450F867 DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,659 Split=X Selected=0xC450F867 DockNode ID=0x00000017 Parent=0x00000007 SizeRef=1207,860 CentralNode=1 HiddenTabBar=1 Selected=0xC450F867 DockNode ID=0x00000018 Parent=0x00000007 SizeRef=367,860 HiddenTabBar=1 Selected=0x36DC96AB DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,497 Split=X Selected=0xEA83D666 - DockNode ID=0x00000015 Parent=0x00000008 SizeRef=1291,172 Split=X Selected=0xEA83D666 - DockNode ID=0x00000011 Parent=0x00000015 SizeRef=1497,168 Split=Y Selected=0x9B5D3198 - DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,326 HiddenTabBar=1 Selected=0xEA83D666 - DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1449,169 HiddenTabBar=1 Selected=0x9B5D3198 - DockNode ID=0x00000012 Parent=0x00000015 SizeRef=77,168 HiddenTabBar=1 Selected=0x56009A08 - DockNode ID=0x00000016 Parent=0x00000008 SizeRef=283,172 Split=X Selected=0x56009A08 - DockNode ID=0x0000000F Parent=0x00000016 SizeRef=140,296 HiddenTabBar=1 Selected=0x3FC1A724 - DockNode ID=0x00000010 Parent=0x00000016 SizeRef=148,296 HiddenTabBar=1 Selected=0xA873C17F + DockNode ID=0x00000015 Parent=0x00000008 SizeRef=1260,172 Split=X Selected=0xEA83D666 + DockNode ID=0x00000011 Parent=0x00000015 SizeRef=715,168 Split=Y Selected=0x9B5D3198 + DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,203 HiddenTabBar=1 Selected=0xEA83D666 + DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1449,292 HiddenTabBar=1 Selected=0x9B5D3198 + DockNode ID=0x00000012 Parent=0x00000015 SizeRef=31,168 HiddenTabBar=1 Selected=0x56009A08 + DockNode ID=0x00000016 Parent=0x00000008 SizeRef=314,172 HiddenTabBar=1 Selected=0x3FC1A724 DockNode ID=0x00000006 Parent=0x11111111 SizeRef=289,1158 Split=Y Selected=0x36DC96AB DockNode ID=0x00000009 Parent=0x00000006 SizeRef=449,488 Split=Y Selected=0x36DC96AB DockNode ID=0x0000000B Parent=0x00000009 SizeRef=449,556 Split=Y Selected=0x36DC96AB diff --git a/remake/build.log b/remake/build.log index 9ee2bad..614096f 100644 --- a/remake/build.log +++ b/remake/build.log @@ -1,5 +1,2 @@ -[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\utils\Shader.cpp -o src\build\utils\Shader.o -[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\core\utils\utils.cpp -o src\build\core\utils\utils.o -[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\Engine.cpp -o src\build\Engine.o +[COMPILE] g++ -std=c++20 -Wall -g -Isrc/include -Isrc/include/lua -Isrc/vendor -Isrc/vendor/imgui -Isrc/vendor/box2d -Isrc/vendor/xxhash -Isrc/vendor/miniaudio -IC:/msys64/mingw64/include -Isrc\vendor\imgui -IC:\msys64\mingw64\lib\libyaml-cpp.a -MMD -MP -c src\src\Renderer.cpp -o src\build\Renderer.o [LINK] g++ src\build\Engine.o src\build\main.o src\build\Renderer.o src\build\Components\AnimationComponent.o src\build\Components\AudioPlayerComponent.o src\build\Components\CameraComponent.o src\build\Components\LightComponent.o src\build\Components\ParticleComponent.o src\build\Components\PhysicsComponent.o src\build\Components\ScriptComponent.o src\build\Components\SpriteComponent.o src\build\Components\TextComonent.o src\build\Components\TilemapComponent.o src\build\core\audio\AudioEngine.o src\build\core\utils\AssetManager.o src\build\core\utils\EngineConfig.o src\build\core\utils\ExceptionHandler.o src\build\core\utils\FileDialog.o src\build\core\utils\input.o src\build\core\utils\LoadingWindow.o src\build\core\utils\Logging.o src\build\core\utils\Profiler.o src\build\core\utils\Texture.o src\build\core\utils\utils.o src\build\editor\windows\AssetBrowser.o src\build\editor\windows\AudioInfo.o src\build\editor\windows\Inspector.o src\build\Entitys\Object.o src\build\utils\GameObjectsList.o src\build\utils\Shader.o src\build\utils\UID.o src\build\lapi.o src\build\lauxlib.o src\build\lbaselib.o src\build\lcode.o src\build\lcorolib.o src\build\lctype.o src\build\ldblib.o src\build\ldebug.o src\build\ldo.o src\build\ldump.o src\build\lfunc.o src\build\lgc.o src\build\linit.o src\build\liolib.o src\build\llex.o src\build\lmathlib.o src\build\lmem.o src\build\loadlib.o src\build\lobject.o src\build\lopcodes.o src\build\loslib.o src\build\lparser.o src\build\lstate.o src\build\lstring.o src\build\lstrlib.o src\build\ltable.o src\build\ltablib.o src\build\ltm.o src\build\lua.o src\build\luac.o src\build\lundump.o src\build\lutf8lib.o src\build\lvm.o src\build\lzio.o src\build\imgui.o src\build\imgui_demo.o src\build\imgui_draw.o src\build\imgui_impl_glfw.o src\build\imgui_impl_opengl3.o src\build\imgui_tables.o src\build\imgui_widgets.o src\build\aabb.o src\build\arena_allocator.o src\build\array.o src\build\bitset.o src\build\body.o src\build\broad_phase.o src\build\constraint_graph.o src\build\contact.o src\build\contact_solver.o src\build\core.o src\build\distance.o src\build\distance_joint.o src\build\dynamic_tree.o src\build\geometry.o src\build\hull.o src\build\id_pool.o src\build\island.o src\build\joint.o src\build\manifold.o src\build\math_functions.o src\build\motor_joint.o src\build\mouse_joint.o src\build\mover.o src\build\prismatic_joint.o src\build\revolute_joint.o src\build\sensor.o src\build\shape.o src\build\solver.o src\build\solver_set.o src\build\table.o src\build\timer.o src\build\types.o src\build\weld_joint.o src\build\wheel_joint.o src\build\world.o src\build\xxhash.o src\build\miniaudio.o -o src\build\app.exe -LC:\msys64\mingw64\lib -lglfw3 -lglew32 -lopengl32 -lgdi32 -lyaml-cpp -lcomdlg32 -lssl -lcrypto -ldbghelp -[RUN] Executed app.exe successfully. diff --git a/src/assets/lua/light_test.lua b/src/assets/lua/light_test.lua new file mode 100644 index 0000000..a65350b --- /dev/null +++ b/src/assets/lua/light_test.lua @@ -0,0 +1,34 @@ +local obj = nil +local light = nil +local hue = 0.0 + +function HSVtoRGB(h, s, v) + local i = math.floor(h * 6) + local f = h * 6 - i + local p = v * (1 - s) + local q = v * (1 - f * s) + local t = v * (1 - (1 - f) * s) + i = i % 6 + + if i == 0 then return Vector3(v, t, p) end + if i == 1 then return Vector3(q, v, p) end + if i == 2 then return Vector3(p, v, t) end + if i == 3 then return Vector3(p, q, v) end + if i == 4 then return Vector3(t, p, v) end + if i == 5 then return Vector3(v, p, q) end +end + + +function OnInit() + obj = Engine.GetObjectByTag("Light") + if obj then + light = obj:GetComponent("LightComponent") + end +end + +function OnUpdate(dt) + if not light then return end + + hue = (hue + dt * 0.2) % 1.0 + light:SetColor(HSVtoRGB(hue, 1.0, 1.0)) +end diff --git a/src/assets/scenes/drag_n_drop_tests.cene b/src/assets/scenes/drag_n_drop_tests.cene new file mode 100644 index 0000000..06a740c --- /dev/null +++ b/src/assets/scenes/drag_n_drop_tests.cene @@ -0,0 +1,2121 @@ +engine_version: 0.1.0 +scene_name: drag_n_drop_tests +scene_hash: a487fb03e18781768c5dccdc2b801f8e85313b7a6c14e05a1e8d33e1543cf3f5 +format_version: 1 +objects: + - name: NewObject + uid: 3c93194d0f1b4a02a5bc892ccee48d32 + id: 1 + position: [0, 0] + rotation: 0 + layer: 0 + visable: true + components: + - type: ScriptComponent + scriptPath: C:\Users\spenc\OneDrive\Documents\GitHub\Create-Engine\src\assets\lua\light_test.lua + children: [] + - name: Light + uid: cabd139ec6ac4245b4e4075668a6d971 + id: 2 + position: [-61.2999992, 2.5999999] + rotation: 0 + layer: 0 + visable: true + components: + - type: LightComponent + color: + - 1 + - 1 + - 1 + intensity: 1.54999995 + radius: 100000000 + falloff: 1 + type: 0 + children: [] + - name: Tiles + uid: 2917181dc75c4b3e9c052b2d9120dc1e + id: 3 + position: [0, 0] + rotation: 0 + layer: 0 + visable: true + components: [] + children: + - name: tile_053.png + uid: 0f6135a7c4dc4cca857bf16c080a3bce + id: 4 + position: [-58.2519989, 26.0020008] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 54 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_049.png + uid: 8aeb05965e4d408b9456cb0f144cb118 + id: 5 + position: [-165.057999, -90.435997] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 50 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_044.png + uid: 40b88ad3429e42af94466d658a3ec42d + id: 6 + position: [8.5340004, 23.6730003] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 45 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_045.png + uid: d9ac006ad61e4d3e87fa1cd6ef88eecc + id: 7 + position: [-59.9570007, -33.0279999] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 46 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_027.png + uid: c0c272acf23e4d5387672352ad1713c2 + id: 8 + position: [41.5, 61.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 28 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_028.png + uid: 792c9f480f9f45f9be59c1ceac365765 + id: 9 + position: [14.5, 83.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 29 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_024.png + uid: 26d61f1f90af4530ae18112b8aff95ee + id: 10 + position: [-22.5, 66.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 25 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_022.png + uid: 99cade4e8b47450a9d8f973915122ec6 + id: 11 + position: [7.5, 47.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 23 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_022.png + uid: 46a6724bf3384e009e2c4e3a2a20bc27 + id: 12 + position: [36.5, 29.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 23 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_044.png + uid: 76f65522c6fb4657ba05552e68e0a599 + id: 13 + position: [-96.5, -49.5] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 45 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 523ae2cbf4734069a6d516506e937d72 + id: 14 + position: [-54.5, 52.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: a3e3e598e4a045538e0b892812bc1fa0 + id: 15 + position: [-89.5, 36.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 813f64a82c18411c8050593012d21b28 + id: 16 + position: [-123.5, 19.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 0f5ab154b77b4ed4b71b8ec2b7f89740 + id: 17 + position: [-156.5, -0.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 52e7db8645e942aba356e12b22e2a9a9 + id: 18 + position: [-190.5, -17.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: f94b7208f06f4ec38c2806dfb272be9f + id: 19 + position: [-222.5, -32.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: e382eab57275422b9855c46c478e002e + id: 20 + position: [-26.5, 33.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: d6fc3967321241e3b95beb7574643a91 + id: 21 + position: [-59.5, 16.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: d2bc09ec9fc84c998d7b8e5c9a96a542 + id: 22 + position: [-92.5, 0.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: c9df0247484b489f927602bfc12d4025 + id: 23 + position: [-125.5, -17.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 5d498c9e69ff48c5a5434f2fdd757e1d + id: 24 + position: [-158.5, -33.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 6a5258c5e198481fb99b9a79078a24c1 + id: 25 + position: [-192.5, -50.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_031.png + uid: 1fbd41c54f1348c1872a29385ec1d0eb + id: 26 + position: [4.5, 20.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 32 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_038.png + uid: 2cba861c1ab04bbabccfb0335605fc7f + id: 27 + position: [36.5, 1.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 39 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_032.png + uid: 2ce26442422b41c091188f4d6fc38cda + id: 28 + position: [-26.5, 2.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 33 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_038.png + uid: 88ecd280be5348de8f6aa48fdec67fc2 + id: 29 + position: [-60.5, -12.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 39 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_038.png + uid: b783547b62084c348197e07a44d376f2 + id: 30 + position: [-96.5, -30.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 39 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_037.png + uid: 9cc1fbb79520491dafe0eabdb66b9b6c + id: 31 + position: [-128.5, -48.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 38 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_039.png + uid: 6be36a4c0a8c441798fc490f2ab0a861 + id: 32 + position: [-163.5, -68.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 40 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_032.png + uid: 87332fee5f964d77a3a80f2599e09ba8 + id: 33 + position: [8.5, -20.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 33 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_029.png + uid: 81b39ababeaf43be8942b654275e5fe1 + id: 34 + position: [-28.5, -38.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 30 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_031.png + uid: e6c2abbf97914bf6bc5ebc8874fafffd + id: 35 + position: [-61.5, -55.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 32 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_030.png + uid: 74893ccd73614c91a36806f927423d78 + id: 36 + position: [-95.5, -71.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 31 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_037.png + uid: a6dfc3eeb0f34c5da6470ffc545755ed + id: 37 + position: [-128.5, -88.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 38 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_022.png + uid: 1d59fd6958ab47579b786da6c08f1a3f + id: 38 + position: [95.9465179, 30.9888229] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 23 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_023.png + uid: 4b4a69b0089e464596ecc779089602af + id: 39 + position: [68.4461136, 44.2444115] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 24 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_023.png + uid: 0d6cbb03f06540eb913c6cd66ac6f5ba + id: 40 + position: [66.4676666, 11.995739] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 24 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_044.png + uid: be8626864f5c48e7b7e60fbf9181e620 + id: 41 + position: [100.766998, 6.04500008] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 45 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 446b1ef5445c466a86f97e305c12dc93 + id: 42 + position: [-253.18512, -14.0298166] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 3ceb19b1609f4e9bb92df0a035904934 + id: 43 + position: [-221.640671, 2.443398] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 3c4cf37eec42417ca8dd6abd21601311 + id: 44 + position: [-196.054626, 15.4116726] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 6d35bade3dff40188afb99282edc94a4 + id: 45 + position: [-170.468536, 27.6789627] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 1071051d54714904a018078e14dfbf9d + id: 46 + position: [-145.282059, 40.9676094] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: f765f75c483c4b5c81bdb15b2c5ff700 + id: 47 + position: [-119.188309, 53.8947716] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 1864bb513b6e47fca816f03bb204c07a + id: 48 + position: [-93.8127518, 66.3431549] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: c982bb4b85a347d8b124d1a0fd922cfe + id: 49 + position: [-68.9159698, 79.2703552] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 7425db5cd8e5484d849bf31bce798a67 + id: 50 + position: [-43.3010292, 92.197525] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_061.png + uid: 4f4dec982027487da6f0556fed8051f2 + id: 51 + position: [-16.7285137, 105.842873] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 62 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_015.png + uid: 2957588db3f443fc8a583aae4aee0707 + id: 52 + position: [-284.383118, 4.68400383] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 16 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_015.png + uid: d4d7d210151b48ec966df90b2d2ec14c + id: 53 + position: [-250.431122, 21.8027191] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 16 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_015.png + uid: 5fb7d971a0c448bdbee716899616149c + id: 54 + position: [-217.905701, 38.636116] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 16 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_014.png + uid: 8f4feabb8f4a4ae69118cbb0c37bd194 + id: 55 + position: [-184.809586, 55.7548294] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 15 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_015.png + uid: 19152cf672064c01b39b19ec8329c16b + id: 56 + position: [-151.142792, 71.1616669] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 16 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_015.png + uid: 740f68c1ab3b49a58fb17918098f0ae6 + id: 57 + position: [-116.620041, 88.2801971] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 16 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_015.png + uid: a4636904a9d04046ab2d9d9fd79684f6 + id: 58 + position: [-82.9532471, 104.25766] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 16 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_015.png + uid: 0f5d9d9f8c4248798a621087a612aa7c + id: 59 + position: [-52.7101898, 122.517609] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 16 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_065.png + uid: c9565d5e49994f2b9c0285f6924e81c3 + id: 60 + position: [-193.240005, -5.04500008] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 66 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_062.png + uid: f26efe24b9ea432895fdfa1dba30fc68 + id: 61 + position: [-120.778999, 32.2639999] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 63 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_082.png + uid: 14787a0a6a7c4344a8ab0016468354fd + id: 62 + position: [-158.194, 12.6339998] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 83 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_058.png + uid: ff92f17b4f864a98b6083e4ec813b46d + id: 63 + position: [-227.75, -54.2232857] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 59 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_045.png + uid: b33545748be34999aa0a69fbc08e2d91 + id: 64 + position: [-140.867996, -38.8449745] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 46 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_047.png + uid: b13d4cc28b544d5299d0bae06e5d9bf3 + id: 65 + position: [-91.4160004, -15.3730001] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 48 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_042.png + uid: 238a50ddf5944c3baad2000eae337f3e + id: 66 + position: [-188.693695, 27.3759041] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 43 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_052.png + uid: 1456e2eb4d7f4a5b951429a91ff8baf1 + id: 67 + position: [-21.875, 44.987999] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 53 + normalMap: 0 + renderType: Lit + children: [] + - name: Animated + uid: 82b18591393b492fb65e99bd5a0e0aa6 + id: 68 + position: [-300.600006, -28] + rotation: 0 + layer: 1 + visable: true + components: + - type: AnimationComponent + TextureUAID: 116 + TexelWidth: 32 + TexelHeight: 32 + FrameDuration: 0.100000001 + StartFrame: 0 + EndFrame: 120 + children: [] + - name: Music + uid: ebc9765f40964609a5e945417a02a7f3 + id: 69 + position: [0, 0] + rotation: 0 + layer: 0 + visable: true + components: + - type: AudioPlayerComponent + uaid: 119 + volume: 1 + loop: true + children: [] +color_correction: + brightness: 1 + saturation: 1 + gamma: 1 + bloom: true + intensity: 4 + threshold: 1 +Assets: + - uaid: 123 + path: C:\Users\spenc\Music\Stereo Test - LeftRight Audio Test for HeadphonesSpeakers.mp3 + filename: Stereo Test - LeftRight Audio Test for HeadphonesSpeakers.mp3 + filetype: mp3 + type: 1 + hash: 5885c8cc38709f22 + lastModified: 1746052188 + - uaid: 122 + path: C:\Users\spenc\Music\simple-notification-152054.wav + filename: simple-notification-152054.wav + filetype: wav + type: 1 + hash: 0f5adca8b95e7494 + lastModified: 1745953000 + - uaid: 121 + path: C:\Users\spenc\Music\simple-notification-152054.mp3 + filename: simple-notification-152054.mp3 + filetype: mp3 + type: 1 + hash: 3e57c2530f08c1ab + lastModified: 1745951640 + - uaid: 120 + path: C:\Users\spenc\Music\reflected-light-147979.mp3 + filename: reflected-light-147979.mp3 + filetype: mp3 + type: 1 + hash: b4d344d1f668e25d + lastModified: 1735362210 + - uaid: 119 + path: C:\Users\spenc\Music\good-night-lofi-cozy-chill-music-160166.mp3 + filename: good-night-lofi-cozy-chill-music-160166.mp3 + filetype: mp3 + type: 1 + hash: 246561eaa4e21fad + lastModified: 1735362096 + - uaid: 118 + path: C:\Users\spenc\Music\ethereal-vistas-191254.mp3 + filename: ethereal-vistas-191254.mp3 + filetype: mp3 + type: 1 + hash: 0da03a50fc5a40a8 + lastModified: 1735362078 + - uaid: 117 + path: C:\Users\spenc\Music\creative-technology-showreel-241274.mp3 + filename: creative-technology-showreel-241274.mp3 + filetype: mp3 + type: 1 + hash: d7f8e8b2954d438f + lastModified: 1730076792 + - uaid: 88 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_087.png + filename: tile_087.png + filetype: png + type: 0 + hash: b5be37e278b5a0e8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 28 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_027.png + filename: tile_027.png + filetype: png + type: 0 + hash: 82735e0fe1556323 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 87 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_086.png + filename: tile_086.png + filetype: png + type: 0 + hash: 405549c9596a8b02 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 26 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_025.png + filename: tile_025.png + filetype: png + type: 0 + hash: 59f5a825963b4b58 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 25 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_024.png + filename: tile_024.png + filetype: png + type: 0 + hash: 52d6f7a1f1aaf096 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 24 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_023.png + filename: tile_023.png + filetype: png + type: 0 + hash: ca52dd2852403677 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 23 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_022.png + filename: tile_022.png + filetype: png + type: 0 + hash: 2217b4ba2738d800 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 22 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_021.png + filename: tile_021.png + filetype: png + type: 0 + hash: a2b2f33d53eafbe1 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 21 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_020.png + filename: tile_020.png + filetype: png + type: 0 + hash: 9ab8e82f77ecda85 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 20 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_019.png + filename: tile_019.png + filetype: png + type: 0 + hash: f4d73b8ef85ddfbf + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 19 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_018.png + filename: tile_018.png + filetype: png + type: 0 + hash: 2f4aa3d6c9a88136 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 18 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_017.png + filename: tile_017.png + filetype: png + type: 0 + hash: 32c7b5c15559556f + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 17 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_016.png + filename: tile_016.png + filetype: png + type: 0 + hash: d66738b42167c25b + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 16 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_015.png + filename: tile_015.png + filetype: png + type: 0 + hash: dfbb87d88e7b361a + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 15 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_014.png + filename: tile_014.png + filetype: png + type: 0 + hash: e9c9d0a81a34e191 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 14 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_013.png + filename: tile_013.png + filetype: png + type: 0 + hash: be9b2566c79ca9e3 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 1 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_000.png + filename: tile_000.png + filetype: png + type: 0 + hash: 43b1a791b2f610aa + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 2 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_001.png + filename: tile_001.png + filetype: png + type: 0 + hash: 58e2a6949c806ed4 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 3 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_002.png + filename: tile_002.png + filetype: png + type: 0 + hash: 9d00d31c498403a5 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 4 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_003.png + filename: tile_003.png + filetype: png + type: 0 + hash: 2ce62d3fa5f83a85 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 5 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_004.png + filename: tile_004.png + filetype: png + type: 0 + hash: 15054cba03033497 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 6 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_005.png + filename: tile_005.png + filetype: png + type: 0 + hash: 75d134cdb99c01b0 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 7 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_006.png + filename: tile_006.png + filetype: png + type: 0 + hash: 977d38606f54ec1a + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 8 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_007.png + filename: tile_007.png + filetype: png + type: 0 + hash: acc98f6bf6af4471 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 9 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_008.png + filename: tile_008.png + filetype: png + type: 0 + hash: e38d301f66207712 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 10 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_009.png + filename: tile_009.png + filetype: png + type: 0 + hash: 0ea909aad0cb11d5 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 11 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_010.png + filename: tile_010.png + filetype: png + type: 0 + hash: 027bca2fa1b70126 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 12 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_011.png + filename: tile_011.png + filetype: png + type: 0 + hash: 0c92bd2b1322d0e7 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 13 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_012.png + filename: tile_012.png + filetype: png + type: 0 + hash: 32bf6597d4a096f7 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 30 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_029.png + filename: tile_029.png + filetype: png + type: 0 + hash: 3d1f20d336f5a0e4 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 47 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_046.png + filename: tile_046.png + filetype: png + type: 0 + hash: a6ce3c9db850be68 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 48 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_047.png + filename: tile_047.png + filetype: png + type: 0 + hash: 6398a4447dcb5e13 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 49 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_048.png + filename: tile_048.png + filetype: png + type: 0 + hash: 7d5264eea52a6006 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 50 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_049.png + filename: tile_049.png + filetype: png + type: 0 + hash: 1f1918a8c669d3c1 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 51 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_050.png + filename: tile_050.png + filetype: png + type: 0 + hash: b34445e878281be8 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 52 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_051.png + filename: tile_051.png + filetype: png + type: 0 + hash: 7bd2a717963c5a74 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 53 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_052.png + filename: tile_052.png + filetype: png + type: 0 + hash: ce606e9690950052 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 54 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_053.png + filename: tile_053.png + filetype: png + type: 0 + hash: 7b09d94969ebc484 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 55 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_054.png + filename: tile_054.png + filetype: png + type: 0 + hash: f4cb8b97cee3bb7c + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 56 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_055.png + filename: tile_055.png + filetype: png + type: 0 + hash: 7456f3530ede598b + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 57 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_056.png + filename: tile_056.png + filetype: png + type: 0 + hash: 54c17c59498db1fc + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 58 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_057.png + filename: tile_057.png + filetype: png + type: 0 + hash: 62e0d421dc1b94ca + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 59 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_058.png + filename: tile_058.png + filetype: png + type: 0 + hash: d7e53d66d6608e44 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 46 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_045.png + filename: tile_045.png + filetype: png + type: 0 + hash: a42f65407bd8d9c8 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 45 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_044.png + filename: tile_044.png + filetype: png + type: 0 + hash: cc99aeb78832013d + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 44 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_043.png + filename: tile_043.png + filetype: png + type: 0 + hash: 49e0ee588a2d510c + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 43 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_042.png + filename: tile_042.png + filetype: png + type: 0 + hash: 00a8e91ac50d0582 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 42 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_041.png + filename: tile_041.png + filetype: png + type: 0 + hash: 279113f5a4cbbc98 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 41 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_040.png + filename: tile_040.png + filetype: png + type: 0 + hash: 56430e898f7e9789 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 40 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_039.png + filename: tile_039.png + filetype: png + type: 0 + hash: d35fb51aa3acdc47 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 39 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_038.png + filename: tile_038.png + filetype: png + type: 0 + hash: 835f3dbf895d2518 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 38 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_037.png + filename: tile_037.png + filetype: png + type: 0 + hash: b02749d8ee945f27 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 37 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_036.png + filename: tile_036.png + filetype: png + type: 0 + hash: 9b60a4c308beee86 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 36 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_035.png + filename: tile_035.png + filetype: png + type: 0 + hash: 4bf836f83d492422 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 35 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_034.png + filename: tile_034.png + filetype: png + type: 0 + hash: 4c68d41935c4c205 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 34 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_033.png + filename: tile_033.png + filetype: png + type: 0 + hash: 9bc4f952ca3d6104 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 33 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_032.png + filename: tile_032.png + filetype: png + type: 0 + hash: ab38b324f6e3068e + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 86 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_085.png + filename: tile_085.png + filetype: png + type: 0 + hash: c921026208aff689 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 27 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_026.png + filename: tile_026.png + filetype: png + type: 0 + hash: 455f9cc034a4e240 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 85 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_084.png + filename: tile_084.png + filetype: png + type: 0 + hash: a720f40abed06305 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 84 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_083.png + filename: tile_083.png + filetype: png + type: 0 + hash: 7e26027e93ae8665 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 83 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_082.png + filename: tile_082.png + filetype: png + type: 0 + hash: a7d389b57649b8c1 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 82 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_081.png + filename: tile_081.png + filetype: png + type: 0 + hash: e37d943f98df117c + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 81 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_080.png + filename: tile_080.png + filetype: png + type: 0 + hash: 24af11a711c4a405 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 80 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_079.png + filename: tile_079.png + filetype: png + type: 0 + hash: 6a517ee8c8a504b3 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 79 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_078.png + filename: tile_078.png + filetype: png + type: 0 + hash: 0c75dd1dfcb324e2 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 78 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_077.png + filename: tile_077.png + filetype: png + type: 0 + hash: 51e120ce40647450 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 77 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_076.png + filename: tile_076.png + filetype: png + type: 0 + hash: 414a4fc402bf8d9a + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 76 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_075.png + filename: tile_075.png + filetype: png + type: 0 + hash: 077768331bb39105 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 75 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_074.png + filename: tile_074.png + filetype: png + type: 0 + hash: 42121b492147d8fb + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 74 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_073.png + filename: tile_073.png + filetype: png + type: 0 + hash: 75748e5776001213 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 73 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_072.png + filename: tile_072.png + filetype: png + type: 0 + hash: cda73d6cbd54d108 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 72 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_071.png + filename: tile_071.png + filetype: png + type: 0 + hash: 07cff9b3939795f5 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 116 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\spritesheet.png + filename: spritesheet.png + filetype: png + type: 0 + hash: d178a6f5b597b470 + lastModified: 1728871742 + size: [352, 352] + channels: 4 + format: GL_RGBA + - uaid: 64 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_063.png + filename: tile_063.png + filetype: png + type: 0 + hash: 3f62dcdb053f6abe + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 60 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_059.png + filename: tile_059.png + filetype: png + type: 0 + hash: 8deb3108a6f2fd67 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 61 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_060.png + filename: tile_060.png + filetype: png + type: 0 + hash: 5871fcecf1d47e1c + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 62 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_061.png + filename: tile_061.png + filetype: png + type: 0 + hash: c8a1b22d67f32e16 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 63 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_062.png + filename: tile_062.png + filetype: png + type: 0 + hash: 54ba3afbbf9a9b9d + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 65 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_064.png + filename: tile_064.png + filetype: png + type: 0 + hash: dc1ce13185d6f9dd + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 66 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_065.png + filename: tile_065.png + filetype: png + type: 0 + hash: 70dd4177ac2aacd3 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 67 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_066.png + filename: tile_066.png + filetype: png + type: 0 + hash: 7fcc1e121b9c475a + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 68 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_067.png + filename: tile_067.png + filetype: png + type: 0 + hash: fb3139953ea9d8d1 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 69 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_068.png + filename: tile_068.png + filetype: png + type: 0 + hash: be2caa45ef20fd82 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 70 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_069.png + filename: tile_069.png + filetype: png + type: 0 + hash: 6cc14afc186ec771 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 71 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_070.png + filename: tile_070.png + filetype: png + type: 0 + hash: ee1ef8567b8a3df0 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 103 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_102.png + filename: tile_102.png + filetype: png + type: 0 + hash: ee4893b0b0e389b0 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 104 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_103.png + filename: tile_103.png + filetype: png + type: 0 + hash: 93be22329a97f13a + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 105 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_104.png + filename: tile_104.png + filetype: png + type: 0 + hash: 2d73577cfe2985f8 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 106 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_105.png + filename: tile_105.png + filetype: png + type: 0 + hash: 893cb7a825c3def2 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 107 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_106.png + filename: tile_106.png + filetype: png + type: 0 + hash: 9559b168bb797f61 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 108 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_107.png + filename: tile_107.png + filetype: png + type: 0 + hash: a0843e8681231325 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 109 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_108.png + filename: tile_108.png + filetype: png + type: 0 + hash: dc8c15964e615c28 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 110 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_109.png + filename: tile_109.png + filetype: png + type: 0 + hash: 8f7568ef2b75f210 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 111 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_110.png + filename: tile_110.png + filetype: png + type: 0 + hash: a97225d051b0be0f + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 112 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_111.png + filename: tile_111.png + filetype: png + type: 0 + hash: a5a090079e1eb3b5 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 113 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_112.png + filename: tile_112.png + filetype: png + type: 0 + hash: ea99517d8b684ab8 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 114 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_113.png + filename: tile_113.png + filetype: png + type: 0 + hash: 5d615b590fe9431a + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 115 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_114.png + filename: tile_114.png + filetype: png + type: 0 + hash: bffbedcad0c620c7 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 102 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_101.png + filename: tile_101.png + filetype: png + type: 0 + hash: e5a269d460d00e69 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 101 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_100.png + filename: tile_100.png + filetype: png + type: 0 + hash: bce6842fe9a78d1e + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 100 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_099.png + filename: tile_099.png + filetype: png + type: 0 + hash: 64bc27961c23a597 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 99 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_098.png + filename: tile_098.png + filetype: png + type: 0 + hash: f505363f6721ed43 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 98 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_097.png + filename: tile_097.png + filetype: png + type: 0 + hash: 4140eb0e01c42458 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 97 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_096.png + filename: tile_096.png + filetype: png + type: 0 + hash: 61e5ba2ec5cc2e03 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 96 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_095.png + filename: tile_095.png + filetype: png + type: 0 + hash: 2c4018746bda7639 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 95 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_094.png + filename: tile_094.png + filetype: png + type: 0 + hash: 26efe00187d8dde5 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 94 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_093.png + filename: tile_093.png + filetype: png + type: 0 + hash: fecc9a1f3e9802d8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 93 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_092.png + filename: tile_092.png + filetype: png + type: 0 + hash: d546c3d4f31aa5a0 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 92 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_091.png + filename: tile_091.png + filetype: png + type: 0 + hash: 2c31a5fc8d71be6e + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 91 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_090.png + filename: tile_090.png + filetype: png + type: 0 + hash: 49ac491580bfc4f8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 32 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_031.png + filename: tile_031.png + filetype: png + type: 0 + hash: 551fe37520f82310 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 90 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_089.png + filename: tile_089.png + filetype: png + type: 0 + hash: 7f30d8350216f6bb + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 31 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_030.png + filename: tile_030.png + filetype: png + type: 0 + hash: 2f6e1c7bd159e049 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 89 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_088.png + filename: tile_088.png + filetype: png + type: 0 + hash: a052591c3e581551 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 29 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_028.png + filename: tile_028.png + filetype: png + type: 0 + hash: e7beb61a6e9cabf5 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA \ No newline at end of file diff --git a/src/assets/scenes/isometric_test.cene b/src/assets/scenes/isometric_test.cene new file mode 100644 index 0000000..cfec2b8 --- /dev/null +++ b/src/assets/scenes/isometric_test.cene @@ -0,0 +1,1643 @@ +engine_version: 0.1.0 +scene_name: isometric_test +scene_hash: 25995851850cd5bbf2bdbd169b945a5fe0db89d37af1de470f2e3d546647d7fa +format_version: 1 +objects: + - name: Hello, Create + uid: 440c5cc8b27f4d1c9c127f2ddcf2ab18 + id: 0 + position: [0, 0] + rotation: 0 + layer: 0 + visable: true + components: [] + children: [] + - name: tile_037.png + uid: a6dfc3eeb0f34c5da6470ffc545755ed + id: 11 + position: [-128.5, -88.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 38 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_030.png + uid: 74893ccd73614c91a36806f927423d78 + id: 12 + position: [-95.5, -71.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 31 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_031.png + uid: e6c2abbf97914bf6bc5ebc8874fafffd + id: 13 + position: [-61.5, -55.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 32 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_029.png + uid: 81b39ababeaf43be8942b654275e5fe1 + id: 14 + position: [-28.5, -38.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 30 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_032.png + uid: 87332fee5f964d77a3a80f2599e09ba8 + id: 15 + position: [8.5, -20.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 33 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_039.png + uid: 6be36a4c0a8c441798fc490f2ab0a861 + id: 16 + position: [-163.5, -68.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 40 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_037.png + uid: 9cc1fbb79520491dafe0eabdb66b9b6c + id: 17 + position: [-128.5, -48.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 38 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_038.png + uid: b783547b62084c348197e07a44d376f2 + id: 18 + position: [-96.5, -30.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 39 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_038.png + uid: 88ecd280be5348de8f6aa48fdec67fc2 + id: 19 + position: [-60.5, -12.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 39 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_032.png + uid: 2ce26442422b41c091188f4d6fc38cda + id: 20 + position: [-26.5, 2.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 33 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_038.png + uid: 2cba861c1ab04bbabccfb0335605fc7f + id: 21 + position: [36.5, 1.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 39 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_031.png + uid: 1fbd41c54f1348c1872a29385ec1d0eb + id: 27 + position: [4.5, 20.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 32 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 6a5258c5e198481fb99b9a79078a24c1 + id: 28 + position: [-192.5, -50.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 5d498c9e69ff48c5a5434f2fdd757e1d + id: 29 + position: [-158.5, -33.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: c9df0247484b489f927602bfc12d4025 + id: 30 + position: [-125.5, -17.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: d2bc09ec9fc84c998d7b8e5c9a96a542 + id: 31 + position: [-92.5, 0.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: d6fc3967321241e3b95beb7574643a91 + id: 32 + position: [-59.5, 16.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: e382eab57275422b9855c46c478e002e + id: 33 + position: [-26.5, 33.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: f94b7208f06f4ec38c2806dfb272be9f + id: 34 + position: [-222.5, -32.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 52e7db8645e942aba356e12b22e2a9a9 + id: 35 + position: [-190.5, -17.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 0f5ab154b77b4ed4b71b8ec2b7f89740 + id: 36 + position: [-156.5, -0.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 813f64a82c18411c8050593012d21b28 + id: 37 + position: [-123.5, 19.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: a3e3e598e4a045538e0b892812bc1fa0 + id: 38 + position: [-89.5, 36.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_011.png + uid: 523ae2cbf4734069a6d516506e937d72 + id: 39 + position: [-54.5, 52.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 12 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_044.png + uid: 76f65522c6fb4657ba05552e68e0a599 + id: 40 + position: [-96.5, -49.5] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 45 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_022.png + uid: 46a6724bf3384e009e2c4e3a2a20bc27 + id: 64 + position: [36.5, 29.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 23 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_022.png + uid: 99cade4e8b47450a9d8f973915122ec6 + id: 65 + position: [7.5, 47.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 23 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_024.png + uid: 26d61f1f90af4530ae18112b8aff95ee + id: 66 + position: [-22.5, 66.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 25 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_028.png + uid: 792c9f480f9f45f9be59c1ceac365765 + id: 67 + position: [14.5, 83.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 29 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_027.png + uid: c0c272acf23e4d5387672352ad1713c2 + id: 68 + position: [41.5, 61.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 28 + normalMap: 0 + renderType: Lit + children: [] + - name: NewObject + uid: 3c93194d0f1b4a02a5bc892ccee48d32 + id: 73 + position: [0, 0] + rotation: 0 + layer: 0 + visable: true + components: + - type: ScriptComponent + scriptPath: C:\Users\spenc\OneDrive\Documents\GitHub\Create-Engine\src\assets\lua\light_test.lua + children: [] + - name: Light + uid: cabd139ec6ac4245b4e4075668a6d971 + id: 74 + position: [-61.2999992, 2.5999999] + rotation: 0 + layer: 0 + visable: true + components: + - type: LightComponent + color: + - 1 + - 1 + - 1 + intensity: 1.54999995 + radius: 100000000 + falloff: 1 + type: 0 + children: [] + - name: tile_045.png + uid: d9ac006ad61e4d3e87fa1cd6ef88eecc + id: 116 + position: [-59.9570007, -33.0279999] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 46 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_044.png + uid: 40b88ad3429e42af94466d658a3ec42d + id: 117 + position: [8.5340004, 23.6730003] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 45 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_049.png + uid: 8aeb05965e4d408b9456cb0f144cb118 + id: 118 + position: [-165.057999, -90.435997] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 50 + normalMap: 0 + renderType: Lit + children: [] + - name: tile_053.png + uid: 0f6135a7c4dc4cca857bf16c080a3bce + id: 119 + position: [-58.2519989, 26.0020008] + rotation: 0 + layer: 1 + visable: true + components: + - type: SpriteComponent + texture: 54 + normalMap: 0 + renderType: Lit + children: [] +color_correction: + brightness: 1 + saturation: 1 + gamma: 1 + bloom: false + intensity: 1.20000005 + threshold: 1 +Assets: + - uaid: 115 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_114.png + filename: tile_114.png + filetype: png + type: 0 + hash: bffbedcad0c620c7 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 114 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_113.png + filename: tile_113.png + filetype: png + type: 0 + hash: 5d615b590fe9431a + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 113 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_112.png + filename: tile_112.png + filetype: png + type: 0 + hash: ea99517d8b684ab8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 112 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_111.png + filename: tile_111.png + filetype: png + type: 0 + hash: a5a090079e1eb3b5 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 111 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_110.png + filename: tile_110.png + filetype: png + type: 0 + hash: a97225d051b0be0f + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 110 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_109.png + filename: tile_109.png + filetype: png + type: 0 + hash: 8f7568ef2b75f210 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 109 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_108.png + filename: tile_108.png + filetype: png + type: 0 + hash: dc8c15964e615c28 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 108 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_107.png + filename: tile_107.png + filetype: png + type: 0 + hash: a0843e8681231325 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 107 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_106.png + filename: tile_106.png + filetype: png + type: 0 + hash: 9559b168bb797f61 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 106 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_105.png + filename: tile_105.png + filetype: png + type: 0 + hash: 893cb7a825c3def2 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 105 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_104.png + filename: tile_104.png + filetype: png + type: 0 + hash: 2d73577cfe2985f8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 104 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_103.png + filename: tile_103.png + filetype: png + type: 0 + hash: 93be22329a97f13a + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 103 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_102.png + filename: tile_102.png + filetype: png + type: 0 + hash: ee4893b0b0e389b0 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 102 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_101.png + filename: tile_101.png + filetype: png + type: 0 + hash: e5a269d460d00e69 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 101 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_100.png + filename: tile_100.png + filetype: png + type: 0 + hash: bce6842fe9a78d1e + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 100 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_099.png + filename: tile_099.png + filetype: png + type: 0 + hash: 64bc27961c23a597 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 99 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_098.png + filename: tile_098.png + filetype: png + type: 0 + hash: f505363f6721ed43 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 98 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_097.png + filename: tile_097.png + filetype: png + type: 0 + hash: 4140eb0e01c42458 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 97 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_096.png + filename: tile_096.png + filetype: png + type: 0 + hash: 61e5ba2ec5cc2e03 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 96 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_095.png + filename: tile_095.png + filetype: png + type: 0 + hash: 2c4018746bda7639 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 95 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_094.png + filename: tile_094.png + filetype: png + type: 0 + hash: 26efe00187d8dde5 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 94 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_093.png + filename: tile_093.png + filetype: png + type: 0 + hash: fecc9a1f3e9802d8 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 93 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_092.png + filename: tile_092.png + filetype: png + type: 0 + hash: d546c3d4f31aa5a0 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 92 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_091.png + filename: tile_091.png + filetype: png + type: 0 + hash: 2c31a5fc8d71be6e + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 91 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_090.png + filename: tile_090.png + filetype: png + type: 0 + hash: 49ac491580bfc4f8 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 90 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_089.png + filename: tile_089.png + filetype: png + type: 0 + hash: 7f30d8350216f6bb + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 89 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_088.png + filename: tile_088.png + filetype: png + type: 0 + hash: a052591c3e581551 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 88 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_087.png + filename: tile_087.png + filetype: png + type: 0 + hash: b5be37e278b5a0e8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 87 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_086.png + filename: tile_086.png + filetype: png + type: 0 + hash: 405549c9596a8b02 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 86 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_085.png + filename: tile_085.png + filetype: png + type: 0 + hash: c921026208aff689 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 85 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_084.png + filename: tile_084.png + filetype: png + type: 0 + hash: a720f40abed06305 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 84 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_083.png + filename: tile_083.png + filetype: png + type: 0 + hash: 7e26027e93ae8665 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 83 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_082.png + filename: tile_082.png + filetype: png + type: 0 + hash: a7d389b57649b8c1 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 82 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_081.png + filename: tile_081.png + filetype: png + type: 0 + hash: e37d943f98df117c + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 81 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_080.png + filename: tile_080.png + filetype: png + type: 0 + hash: 24af11a711c4a405 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 80 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_079.png + filename: tile_079.png + filetype: png + type: 0 + hash: 6a517ee8c8a504b3 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 79 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_078.png + filename: tile_078.png + filetype: png + type: 0 + hash: 0c75dd1dfcb324e2 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 78 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_077.png + filename: tile_077.png + filetype: png + type: 0 + hash: 51e120ce40647450 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 77 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_076.png + filename: tile_076.png + filetype: png + type: 0 + hash: 414a4fc402bf8d9a + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 76 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_075.png + filename: tile_075.png + filetype: png + type: 0 + hash: 077768331bb39105 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 75 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_074.png + filename: tile_074.png + filetype: png + type: 0 + hash: 42121b492147d8fb + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 74 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_073.png + filename: tile_073.png + filetype: png + type: 0 + hash: 75748e5776001213 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 73 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_072.png + filename: tile_072.png + filetype: png + type: 0 + hash: cda73d6cbd54d108 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 72 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_071.png + filename: tile_071.png + filetype: png + type: 0 + hash: 07cff9b3939795f5 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 71 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_070.png + filename: tile_070.png + filetype: png + type: 0 + hash: ee1ef8567b8a3df0 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 70 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_069.png + filename: tile_069.png + filetype: png + type: 0 + hash: 6cc14afc186ec771 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 69 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_068.png + filename: tile_068.png + filetype: png + type: 0 + hash: be2caa45ef20fd82 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 68 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_067.png + filename: tile_067.png + filetype: png + type: 0 + hash: fb3139953ea9d8d1 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 67 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_066.png + filename: tile_066.png + filetype: png + type: 0 + hash: 7fcc1e121b9c475a + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 66 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_065.png + filename: tile_065.png + filetype: png + type: 0 + hash: 70dd4177ac2aacd3 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 65 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_064.png + filename: tile_064.png + filetype: png + type: 0 + hash: dc1ce13185d6f9dd + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 64 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_063.png + filename: tile_063.png + filetype: png + type: 0 + hash: 3f62dcdb053f6abe + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 63 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_062.png + filename: tile_062.png + filetype: png + type: 0 + hash: 54ba3afbbf9a9b9d + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 62 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_061.png + filename: tile_061.png + filetype: png + type: 0 + hash: c8a1b22d67f32e16 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 61 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_060.png + filename: tile_060.png + filetype: png + type: 0 + hash: 5871fcecf1d47e1c + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 60 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_059.png + filename: tile_059.png + filetype: png + type: 0 + hash: 8deb3108a6f2fd67 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 29 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_028.png + filename: tile_028.png + filetype: png + type: 0 + hash: e7beb61a6e9cabf5 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 28 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_027.png + filename: tile_027.png + filetype: png + type: 0 + hash: 82735e0fe1556323 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 27 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_026.png + filename: tile_026.png + filetype: png + type: 0 + hash: 455f9cc034a4e240 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 26 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_025.png + filename: tile_025.png + filetype: png + type: 0 + hash: 59f5a825963b4b58 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 25 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_024.png + filename: tile_024.png + filetype: png + type: 0 + hash: 52d6f7a1f1aaf096 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 24 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_023.png + filename: tile_023.png + filetype: png + type: 0 + hash: ca52dd2852403677 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 23 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_022.png + filename: tile_022.png + filetype: png + type: 0 + hash: 2217b4ba2738d800 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 22 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_021.png + filename: tile_021.png + filetype: png + type: 0 + hash: a2b2f33d53eafbe1 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 21 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_020.png + filename: tile_020.png + filetype: png + type: 0 + hash: 9ab8e82f77ecda85 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 20 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_019.png + filename: tile_019.png + filetype: png + type: 0 + hash: f4d73b8ef85ddfbf + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 19 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_018.png + filename: tile_018.png + filetype: png + type: 0 + hash: 2f4aa3d6c9a88136 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 18 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_017.png + filename: tile_017.png + filetype: png + type: 0 + hash: 32c7b5c15559556f + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 17 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_016.png + filename: tile_016.png + filetype: png + type: 0 + hash: d66738b42167c25b + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 16 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_015.png + filename: tile_015.png + filetype: png + type: 0 + hash: dfbb87d88e7b361a + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 15 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_014.png + filename: tile_014.png + filetype: png + type: 0 + hash: e9c9d0a81a34e191 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 14 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_013.png + filename: tile_013.png + filetype: png + type: 0 + hash: be9b2566c79ca9e3 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 1 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_000.png + filename: tile_000.png + filetype: png + type: 0 + hash: 43b1a791b2f610aa + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 2 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_001.png + filename: tile_001.png + filetype: png + type: 0 + hash: 58e2a6949c806ed4 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 3 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_002.png + filename: tile_002.png + filetype: png + type: 0 + hash: 9d00d31c498403a5 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 4 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_003.png + filename: tile_003.png + filetype: png + type: 0 + hash: 2ce62d3fa5f83a85 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 5 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_004.png + filename: tile_004.png + filetype: png + type: 0 + hash: 15054cba03033497 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 6 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_005.png + filename: tile_005.png + filetype: png + type: 0 + hash: 75d134cdb99c01b0 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 7 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_006.png + filename: tile_006.png + filetype: png + type: 0 + hash: 977d38606f54ec1a + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 8 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_007.png + filename: tile_007.png + filetype: png + type: 0 + hash: acc98f6bf6af4471 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 9 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_008.png + filename: tile_008.png + filetype: png + type: 0 + hash: e38d301f66207712 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 10 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_009.png + filename: tile_009.png + filetype: png + type: 0 + hash: 0ea909aad0cb11d5 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 11 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_010.png + filename: tile_010.png + filetype: png + type: 0 + hash: 027bca2fa1b70126 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 12 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_011.png + filename: tile_011.png + filetype: png + type: 0 + hash: 0c92bd2b1322d0e7 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 13 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_012.png + filename: tile_012.png + filetype: png + type: 0 + hash: 32bf6597d4a096f7 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 30 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_029.png + filename: tile_029.png + filetype: png + type: 0 + hash: 3d1f20d336f5a0e4 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 31 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_030.png + filename: tile_030.png + filetype: png + type: 0 + hash: 2f6e1c7bd159e049 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 32 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_031.png + filename: tile_031.png + filetype: png + type: 0 + hash: 551fe37520f82310 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 33 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_032.png + filename: tile_032.png + filetype: png + type: 0 + hash: ab38b324f6e3068e + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 34 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_033.png + filename: tile_033.png + filetype: png + type: 0 + hash: 9bc4f952ca3d6104 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 35 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_034.png + filename: tile_034.png + filetype: png + type: 0 + hash: 4c68d41935c4c205 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 36 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_035.png + filename: tile_035.png + filetype: png + type: 0 + hash: 4bf836f83d492422 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 37 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_036.png + filename: tile_036.png + filetype: png + type: 0 + hash: 9b60a4c308beee86 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 38 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_037.png + filename: tile_037.png + filetype: png + type: 0 + hash: b02749d8ee945f27 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 39 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_038.png + filename: tile_038.png + filetype: png + type: 0 + hash: 835f3dbf895d2518 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 40 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_039.png + filename: tile_039.png + filetype: png + type: 0 + hash: d35fb51aa3acdc47 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 41 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_040.png + filename: tile_040.png + filetype: png + type: 0 + hash: 56430e898f7e9789 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 42 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_041.png + filename: tile_041.png + filetype: png + type: 0 + hash: 279113f5a4cbbc98 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 43 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_042.png + filename: tile_042.png + filetype: png + type: 0 + hash: 00a8e91ac50d0582 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 44 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_043.png + filename: tile_043.png + filetype: png + type: 0 + hash: 49e0ee588a2d510c + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 45 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_044.png + filename: tile_044.png + filetype: png + type: 0 + hash: cc99aeb78832013d + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 46 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_045.png + filename: tile_045.png + filetype: png + type: 0 + hash: a42f65407bd8d9c8 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 47 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_046.png + filename: tile_046.png + filetype: png + type: 0 + hash: a6ce3c9db850be68 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 48 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_047.png + filename: tile_047.png + filetype: png + type: 0 + hash: 6398a4447dcb5e13 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 49 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_048.png + filename: tile_048.png + filetype: png + type: 0 + hash: 7d5264eea52a6006 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 50 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_049.png + filename: tile_049.png + filetype: png + type: 0 + hash: 1f1918a8c669d3c1 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 51 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_050.png + filename: tile_050.png + filetype: png + type: 0 + hash: b34445e878281be8 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 52 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_051.png + filename: tile_051.png + filetype: png + type: 0 + hash: 7bd2a717963c5a74 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 53 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_052.png + filename: tile_052.png + filetype: png + type: 0 + hash: ce606e9690950052 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 54 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_053.png + filename: tile_053.png + filetype: png + type: 0 + hash: 7b09d94969ebc484 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 55 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_054.png + filename: tile_054.png + filetype: png + type: 0 + hash: f4cb8b97cee3bb7c + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 56 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_055.png + filename: tile_055.png + filetype: png + type: 0 + hash: 7456f3530ede598b + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 57 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_056.png + filename: tile_056.png + filetype: png + type: 0 + hash: 54c17c59498db1fc + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 58 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_057.png + filename: tile_057.png + filetype: png + type: 0 + hash: 62e0d421dc1b94ca + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 59 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_058.png + filename: tile_058.png + filetype: png + type: 0 + hash: d7e53d66d6608e44 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA \ No newline at end of file diff --git a/src/assets/scenes/lots.cene b/src/assets/scenes/lots.cene new file mode 100644 index 0000000..fbc22fe --- /dev/null +++ b/src/assets/scenes/lots.cene @@ -0,0 +1,1614 @@ +engine_version: 0.1.0 +scene_name: lots +scene_hash: 58f9a69186263244cd29565a16fe2b092a31b2eb96f68b314858835cc674aa7c +format_version: 1 +objects: + - name: Hello, Create + uid: c3910130a81f46f6b8e83132ebe6223b + id: 0 + position: [0, 0] + rotation: 0 + layer: 0 + visable: true + components: [] + children: [] + - name: New Sprite + uid: d6caf5a6f3bc40b89579cdc31f04a8ad + id: 1 + position: [163.5, -107.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 41 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 64aca1bc2ae349f5a52a52da0bbd9fce + id: 2 + position: [-347.5, -89.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 41 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 77b4261f9fe34c2cabb6b00c7dfec2e5 + id: 3 + position: [47.5, 136.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 52 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 60782c77a3254ee685ca3b1e31235715 + id: 4 + position: [-174.5, 14.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 47 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 72914993c4254af1a273ba3386d1acf3 + id: 5 + position: [417.5, 66.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 44 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: dccc1ebd476148b0ae730cc831310893 + id: 6 + position: [-405.5, 171.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 41 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: bf77c6bf30e747acae5ee8a1aa853aa4 + id: 7 + position: [-129.5, -209.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 34 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: a3d3efd10db54784b61c600b048cd8d6 + id: 8 + position: [-159.5, 202.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 9 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 47c814443dcc456ba9ad53b121990d20 + id: 9 + position: [156.5, 171.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 32 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: c2de7691f9ba490b81a7cdc06f8d0f6b + id: 10 + position: [-83.5, -1.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 30 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 2e7f2de2d3414e3ba5ff72e839be5402 + id: 11 + position: [137.5, -6.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 34 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: d9046c0b8219456283b442b9d002f556 + id: 12 + position: [286.5, -84.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 37 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 1e23f2f3dc5e4c4fbfa57f0ce0fbe2cd + id: 13 + position: [-294.5, 78.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 11 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 255ef690b4624e68933087277280c180 + id: 14 + position: [363.5, 247.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 32 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: b252f9e18ec24aec9ef20726768b6d6b + id: 15 + position: [-22.5, -124.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 38 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 9183b20a6fa643478728d1892d2960ac + id: 16 + position: [431.5, -103.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 33 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 32f5dda8b0204891adde7e88a4411c30 + id: 17 + position: [66.5, -202.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 10 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 5e9ab0468608429e86b4445884b64664 + id: 18 + position: [243.5, -234.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 11 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 32612eebbd854665b96d385ede135cd7 + id: 19 + position: [-488.5, 7.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 9 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: fadf45e2a61649499be197d541f1f9df + id: 20 + position: [-523.5, -152.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 9 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 92316f4d7d9e4fe5a99219fbc88ffdf0 + id: 21 + position: [-415.5, -213.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 38 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 2f8064ca85254a4a8eac3a8a5242ff09 + id: 22 + position: [-539.5, 201.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 9 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 460fb12fde6f48449d9803cfa16cf268 + id: 23 + position: [-75.5, 271.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 38 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: ca5c7a9a38e2448d9596a6d262b4321b + id: 24 + position: [-162.5, 92.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 49 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: c7ddbb759f6a432192a6b65dfc6d78da + id: 25 + position: [-86.5, 107.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 52 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 80684e4704a34f9193db65519a7b6339 + id: 26 + position: [297.5, -10.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 53 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 06d9b427d7c4407aabdde37c9375f9f1 + id: 27 + position: [-18.5, 40.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 55 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: ae875fac1cc046b29654d73a56b79fd1 + id: 28 + position: [-239.5, -100.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 57 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 479bf4fde34d456c9576485348559510 + id: 29 + position: [266.5, 155.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 58 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: d70f8bf2787f4624a7fdd954bdfb053a + id: 30 + position: [-312.5, -188.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 59 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: e5d24498f5f34d02b93c791ec8a03f94 + id: 31 + position: [493.5, 213.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 56 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: e6ff9b5c8224489db76f997985da2483 + id: 32 + position: [543.5, 14.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 47 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: f3dd4eea604f43b4858442cfe23a513a + id: 33 + position: [534.5, -164.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 43 + normalMap: 0 + renderType: Lit + children: [] + - name: New Sprite + uid: 75a4a81ab6bf4b40a24d2566bbef9208 + id: 34 + position: [309.5, -191.5] + rotation: 0 + layer: 0 + visable: true + components: + - type: SpriteComponent + texture: 41 + normalMap: 0 + renderType: Lit + children: [] +color_correction: + brightness: 1 + saturation: 1 + gamma: 1 + bloom: false + intensity: 1.20000005 + threshold: 1 +Assets: + - uaid: 115 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_114.png + filename: tile_114.png + filetype: png + type: 0 + hash: bffbedcad0c620c7 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 114 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_113.png + filename: tile_113.png + filetype: png + type: 0 + hash: 5d615b590fe9431a + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 113 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_112.png + filename: tile_112.png + filetype: png + type: 0 + hash: ea99517d8b684ab8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 112 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_111.png + filename: tile_111.png + filetype: png + type: 0 + hash: a5a090079e1eb3b5 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 111 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_110.png + filename: tile_110.png + filetype: png + type: 0 + hash: a97225d051b0be0f + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 110 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_109.png + filename: tile_109.png + filetype: png + type: 0 + hash: 8f7568ef2b75f210 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 109 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_108.png + filename: tile_108.png + filetype: png + type: 0 + hash: dc8c15964e615c28 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 108 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_107.png + filename: tile_107.png + filetype: png + type: 0 + hash: a0843e8681231325 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 107 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_106.png + filename: tile_106.png + filetype: png + type: 0 + hash: 9559b168bb797f61 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 106 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_105.png + filename: tile_105.png + filetype: png + type: 0 + hash: 893cb7a825c3def2 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 105 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_104.png + filename: tile_104.png + filetype: png + type: 0 + hash: 2d73577cfe2985f8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 104 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_103.png + filename: tile_103.png + filetype: png + type: 0 + hash: 93be22329a97f13a + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 103 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_102.png + filename: tile_102.png + filetype: png + type: 0 + hash: ee4893b0b0e389b0 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 102 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_101.png + filename: tile_101.png + filetype: png + type: 0 + hash: e5a269d460d00e69 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 101 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_100.png + filename: tile_100.png + filetype: png + type: 0 + hash: bce6842fe9a78d1e + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 100 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_099.png + filename: tile_099.png + filetype: png + type: 0 + hash: 64bc27961c23a597 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 99 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_098.png + filename: tile_098.png + filetype: png + type: 0 + hash: f505363f6721ed43 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 98 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_097.png + filename: tile_097.png + filetype: png + type: 0 + hash: 4140eb0e01c42458 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 97 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_096.png + filename: tile_096.png + filetype: png + type: 0 + hash: 61e5ba2ec5cc2e03 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 96 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_095.png + filename: tile_095.png + filetype: png + type: 0 + hash: 2c4018746bda7639 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 95 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_094.png + filename: tile_094.png + filetype: png + type: 0 + hash: 26efe00187d8dde5 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 94 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_093.png + filename: tile_093.png + filetype: png + type: 0 + hash: fecc9a1f3e9802d8 + lastModified: 1728871746 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 93 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_092.png + filename: tile_092.png + filetype: png + type: 0 + hash: d546c3d4f31aa5a0 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 92 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_091.png + filename: tile_091.png + filetype: png + type: 0 + hash: 2c31a5fc8d71be6e + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 91 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_090.png + filename: tile_090.png + filetype: png + type: 0 + hash: 49ac491580bfc4f8 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 90 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_089.png + filename: tile_089.png + filetype: png + type: 0 + hash: 7f30d8350216f6bb + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 89 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_088.png + filename: tile_088.png + filetype: png + type: 0 + hash: a052591c3e581551 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 88 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_087.png + filename: tile_087.png + filetype: png + type: 0 + hash: b5be37e278b5a0e8 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 87 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_086.png + filename: tile_086.png + filetype: png + type: 0 + hash: 405549c9596a8b02 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 86 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_085.png + filename: tile_085.png + filetype: png + type: 0 + hash: c921026208aff689 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 85 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_084.png + filename: tile_084.png + filetype: png + type: 0 + hash: a720f40abed06305 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 84 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_083.png + filename: tile_083.png + filetype: png + type: 0 + hash: 7e26027e93ae8665 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 83 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_082.png + filename: tile_082.png + filetype: png + type: 0 + hash: a7d389b57649b8c1 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 82 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_081.png + filename: tile_081.png + filetype: png + type: 0 + hash: e37d943f98df117c + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 81 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_080.png + filename: tile_080.png + filetype: png + type: 0 + hash: 24af11a711c4a405 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 80 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_079.png + filename: tile_079.png + filetype: png + type: 0 + hash: 6a517ee8c8a504b3 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 79 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_078.png + filename: tile_078.png + filetype: png + type: 0 + hash: 0c75dd1dfcb324e2 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 78 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_077.png + filename: tile_077.png + filetype: png + type: 0 + hash: 51e120ce40647450 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 77 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_076.png + filename: tile_076.png + filetype: png + type: 0 + hash: 414a4fc402bf8d9a + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 76 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_075.png + filename: tile_075.png + filetype: png + type: 0 + hash: 077768331bb39105 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 75 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_074.png + filename: tile_074.png + filetype: png + type: 0 + hash: 42121b492147d8fb + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 74 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_073.png + filename: tile_073.png + filetype: png + type: 0 + hash: 75748e5776001213 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 73 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_072.png + filename: tile_072.png + filetype: png + type: 0 + hash: cda73d6cbd54d108 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 72 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_071.png + filename: tile_071.png + filetype: png + type: 0 + hash: 07cff9b3939795f5 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 71 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_070.png + filename: tile_070.png + filetype: png + type: 0 + hash: ee1ef8567b8a3df0 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 70 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_069.png + filename: tile_069.png + filetype: png + type: 0 + hash: 6cc14afc186ec771 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 69 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_068.png + filename: tile_068.png + filetype: png + type: 0 + hash: be2caa45ef20fd82 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 68 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_067.png + filename: tile_067.png + filetype: png + type: 0 + hash: fb3139953ea9d8d1 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 67 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_066.png + filename: tile_066.png + filetype: png + type: 0 + hash: 7fcc1e121b9c475a + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 66 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_065.png + filename: tile_065.png + filetype: png + type: 0 + hash: 70dd4177ac2aacd3 + lastModified: 1728871745 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 65 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_064.png + filename: tile_064.png + filetype: png + type: 0 + hash: dc1ce13185d6f9dd + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 64 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_063.png + filename: tile_063.png + filetype: png + type: 0 + hash: 3f62dcdb053f6abe + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 63 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_062.png + filename: tile_062.png + filetype: png + type: 0 + hash: 54ba3afbbf9a9b9d + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 62 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_061.png + filename: tile_061.png + filetype: png + type: 0 + hash: c8a1b22d67f32e16 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 61 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_060.png + filename: tile_060.png + filetype: png + type: 0 + hash: 5871fcecf1d47e1c + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 60 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_059.png + filename: tile_059.png + filetype: png + type: 0 + hash: 8deb3108a6f2fd67 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 29 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_028.png + filename: tile_028.png + filetype: png + type: 0 + hash: e7beb61a6e9cabf5 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 28 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_027.png + filename: tile_027.png + filetype: png + type: 0 + hash: 82735e0fe1556323 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 27 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_026.png + filename: tile_026.png + filetype: png + type: 0 + hash: 455f9cc034a4e240 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 26 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_025.png + filename: tile_025.png + filetype: png + type: 0 + hash: 59f5a825963b4b58 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 25 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_024.png + filename: tile_024.png + filetype: png + type: 0 + hash: 52d6f7a1f1aaf096 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 24 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_023.png + filename: tile_023.png + filetype: png + type: 0 + hash: ca52dd2852403677 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 23 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_022.png + filename: tile_022.png + filetype: png + type: 0 + hash: 2217b4ba2738d800 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 22 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_021.png + filename: tile_021.png + filetype: png + type: 0 + hash: a2b2f33d53eafbe1 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 21 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_020.png + filename: tile_020.png + filetype: png + type: 0 + hash: 9ab8e82f77ecda85 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 20 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_019.png + filename: tile_019.png + filetype: png + type: 0 + hash: f4d73b8ef85ddfbf + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 19 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_018.png + filename: tile_018.png + filetype: png + type: 0 + hash: 2f4aa3d6c9a88136 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 18 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_017.png + filename: tile_017.png + filetype: png + type: 0 + hash: 32c7b5c15559556f + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 17 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_016.png + filename: tile_016.png + filetype: png + type: 0 + hash: d66738b42167c25b + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 16 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_015.png + filename: tile_015.png + filetype: png + type: 0 + hash: dfbb87d88e7b361a + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 15 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_014.png + filename: tile_014.png + filetype: png + type: 0 + hash: e9c9d0a81a34e191 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 14 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_013.png + filename: tile_013.png + filetype: png + type: 0 + hash: be9b2566c79ca9e3 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 1 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_000.png + filename: tile_000.png + filetype: png + type: 0 + hash: 43b1a791b2f610aa + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 2 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_001.png + filename: tile_001.png + filetype: png + type: 0 + hash: 58e2a6949c806ed4 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 3 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_002.png + filename: tile_002.png + filetype: png + type: 0 + hash: 9d00d31c498403a5 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 4 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_003.png + filename: tile_003.png + filetype: png + type: 0 + hash: 2ce62d3fa5f83a85 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 5 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_004.png + filename: tile_004.png + filetype: png + type: 0 + hash: 15054cba03033497 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 6 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_005.png + filename: tile_005.png + filetype: png + type: 0 + hash: 75d134cdb99c01b0 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 7 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_006.png + filename: tile_006.png + filetype: png + type: 0 + hash: 977d38606f54ec1a + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 8 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_007.png + filename: tile_007.png + filetype: png + type: 0 + hash: acc98f6bf6af4471 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 9 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_008.png + filename: tile_008.png + filetype: png + type: 0 + hash: e38d301f66207712 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 10 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_009.png + filename: tile_009.png + filetype: png + type: 0 + hash: 0ea909aad0cb11d5 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 11 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_010.png + filename: tile_010.png + filetype: png + type: 0 + hash: 027bca2fa1b70126 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 12 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_011.png + filename: tile_011.png + filetype: png + type: 0 + hash: 0c92bd2b1322d0e7 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 13 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_012.png + filename: tile_012.png + filetype: png + type: 0 + hash: 32bf6597d4a096f7 + lastModified: 1728871741 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 30 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_029.png + filename: tile_029.png + filetype: png + type: 0 + hash: 3d1f20d336f5a0e4 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 31 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_030.png + filename: tile_030.png + filetype: png + type: 0 + hash: 2f6e1c7bd159e049 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 32 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_031.png + filename: tile_031.png + filetype: png + type: 0 + hash: 551fe37520f82310 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 33 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_032.png + filename: tile_032.png + filetype: png + type: 0 + hash: ab38b324f6e3068e + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 34 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_033.png + filename: tile_033.png + filetype: png + type: 0 + hash: 9bc4f952ca3d6104 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 35 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_034.png + filename: tile_034.png + filetype: png + type: 0 + hash: 4c68d41935c4c205 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 36 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_035.png + filename: tile_035.png + filetype: png + type: 0 + hash: 4bf836f83d492422 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 37 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_036.png + filename: tile_036.png + filetype: png + type: 0 + hash: 9b60a4c308beee86 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 38 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_037.png + filename: tile_037.png + filetype: png + type: 0 + hash: b02749d8ee945f27 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 39 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_038.png + filename: tile_038.png + filetype: png + type: 0 + hash: 835f3dbf895d2518 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 40 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_039.png + filename: tile_039.png + filetype: png + type: 0 + hash: d35fb51aa3acdc47 + lastModified: 1728871742 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 41 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_040.png + filename: tile_040.png + filetype: png + type: 0 + hash: 56430e898f7e9789 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 42 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_041.png + filename: tile_041.png + filetype: png + type: 0 + hash: 279113f5a4cbbc98 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 43 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_042.png + filename: tile_042.png + filetype: png + type: 0 + hash: 00a8e91ac50d0582 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 44 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_043.png + filename: tile_043.png + filetype: png + type: 0 + hash: 49e0ee588a2d510c + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 45 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_044.png + filename: tile_044.png + filetype: png + type: 0 + hash: cc99aeb78832013d + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 46 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_045.png + filename: tile_045.png + filetype: png + type: 0 + hash: a42f65407bd8d9c8 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 47 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_046.png + filename: tile_046.png + filetype: png + type: 0 + hash: a6ce3c9db850be68 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 48 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_047.png + filename: tile_047.png + filetype: png + type: 0 + hash: 6398a4447dcb5e13 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 49 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_048.png + filename: tile_048.png + filetype: png + type: 0 + hash: 7d5264eea52a6006 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 50 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_049.png + filename: tile_049.png + filetype: png + type: 0 + hash: 1f1918a8c669d3c1 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 51 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_050.png + filename: tile_050.png + filetype: png + type: 0 + hash: b34445e878281be8 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 52 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_051.png + filename: tile_051.png + filetype: png + type: 0 + hash: 7bd2a717963c5a74 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 53 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_052.png + filename: tile_052.png + filetype: png + type: 0 + hash: ce606e9690950052 + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 54 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_053.png + filename: tile_053.png + filetype: png + type: 0 + hash: 7b09d94969ebc484 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 55 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_054.png + filename: tile_054.png + filetype: png + type: 0 + hash: f4cb8b97cee3bb7c + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 56 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_055.png + filename: tile_055.png + filetype: png + type: 0 + hash: 7456f3530ede598b + lastModified: 1728871744 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 57 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_056.png + filename: tile_056.png + filetype: png + type: 0 + hash: 54c17c59498db1fc + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 58 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_057.png + filename: tile_057.png + filetype: png + type: 0 + hash: 62e0d421dc1b94ca + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA + - uaid: 59 + path: C:\Users\spenc\OneDrive\Pictures\isometric tileset\separated images\tile_058.png + filename: tile_058.png + filetype: png + type: 0 + hash: d7e53d66d6608e44 + lastModified: 1728871743 + size: [32, 32] + channels: 4 + format: GL_RGBA \ No newline at end of file diff --git a/src/assets/shaders/outline.frag b/src/assets/shaders/outline.frag new file mode 100644 index 0000000..b3aa92d --- /dev/null +++ b/src/assets/shaders/outline.frag @@ -0,0 +1,43 @@ +#version 330 core +in vec2 TexCoords; +out vec4 FragColor; + +uniform sampler2D uTexture; +uniform vec4 outlineColor = vec4(1.0, 1.0, 0.0, 1.0); // Yellow outline +uniform float threshold = 0.1; // Alpha threshold +uniform float outlineWidth = 1.0 / 256.0; // Adjust based on resolution + +void main() +{ + float alpha = texture(uTexture, TexCoords).a; + + // If we're fully inside the texture, draw normally + if (alpha > threshold) + { + FragColor = texture(uTexture, TexCoords); + return; + } + + // Sample neighbors to detect edges + bool isEdge = false; + for (int x = -1; x <= 1; ++x) + { + for (int y = -1; y <= 1; ++y) + { + if (x == 0 && y == 0) continue; + vec2 offset = vec2(x, y) * outlineWidth; + float neighborAlpha = texture(uTexture, TexCoords + offset).a; + if (neighborAlpha > threshold) + { + isEdge = true; + break; + } + } + if (isEdge) break; + } + + if (isEdge) + FragColor = outlineColor; + else + discard; +} diff --git a/src/assets/shaders/outline.vert b/src/assets/shaders/outline.vert new file mode 100644 index 0000000..3dec7ef --- /dev/null +++ b/src/assets/shaders/outline.vert @@ -0,0 +1,13 @@ +#version 330 core +layout(location = 0) in vec3 aPos; // vertex position +layout(location = 1) in vec2 aTexCoord; // texture coordinate + +uniform mat4 uMVP; // Model-View-Projection matrix + +out vec2 TexCoords; + +void main() +{ + TexCoords = aTexCoord; + gl_Position = uMVP * vec4(aPos, 1.0); +} diff --git a/src/assets/shaders/sprite.frag b/src/assets/shaders/sprite.frag index b09523c..c1aac96 100644 --- a/src/assets/shaders/sprite.frag +++ b/src/assets/shaders/sprite.frag @@ -22,8 +22,6 @@ uniform int uClusterHeight; uniform int uClusterCols; uniform int uMaxLightsPerCluster; - - #define MAX_LIGHTS 512 uniform vec2 uLightPos[MAX_LIGHTS]; uniform vec3 uLightColor[MAX_LIGHTS]; @@ -36,13 +34,15 @@ layout(std430, binding = 1) readonly buffer ClusterLightBuffer { void main() { - + // Flip UV to match expected orientation vec2 rotatedUV = mix(uUVMin, uUVMax, vec2(vUV.y, 1.0 - vUV.x)); + // Sample texture color vec4 texColor = texture(uTex, rotatedUV); if (texColor.a < 0.1) discard; + // Sample and transform normal vec3 n = texture(uNormalMap, rotatedUV).rgb * 2.0 - 1.0; n.y = -n.y; @@ -54,6 +54,7 @@ void main() vec3 normal = normalize(n); vec3 finalLight = vec3(0.0); + // Determine cluster index int cx = int(vFragScreenPos.x) / uClusterWidth; int cy = int(vFragScreenPos.y) / uClusterHeight; int clusterIndex = cy * uClusterCols + cx; @@ -75,13 +76,16 @@ void main() } } - vec3 result = texColor.rgb * finalLight; + // Apply lighting and multiply by alpha to suppress gray halo + vec3 litColor = texColor.rgb * finalLight * texColor.a; - result *= uBrightness; + // Post-processing + litColor *= uBrightness; - float gray = dot(result, vec3(0.299, 0.587, 0.114)); - result = mix(vec3(gray), result, uSaturation); + float gray = dot(litColor, vec3(0.299, 0.587, 0.114)); + litColor = mix(vec3(gray), litColor, uSaturation); - result = pow(result, vec3(1.0 / uGamma)); - FragColor = vec4(clamp(result, 0.0, 1.0), texColor.a); + litColor = pow(litColor, vec3(1.0 / uGamma)); + + FragColor = vec4(clamp(litColor, 0.0, 1.0), texColor.a); } diff --git a/src/assets/shaders/unlit.frag b/src/assets/shaders/unlit.frag index 3b48e8a..ac2c718 100644 --- a/src/assets/shaders/unlit.frag +++ b/src/assets/shaders/unlit.frag @@ -9,15 +9,14 @@ uniform vec2 uUVMax; void main() { - // Rotate UV 90 degrees to the right: (x, y) → (y, 1 - x) vec2 rotatedUV = vec2(vUV.y, 1.0 - vUV.x); - - // Interpolate UVs within atlas range vec2 uv = mix(uUVMin, uUVMax, rotatedUV); vec4 color = texture(uTex, uv); + if (color.a < 0.01) discard; + FragColor = color; } diff --git a/src/src/Components/ScriptComponent.cpp b/src/src/Components/ScriptComponent.cpp index a2db59a..5fa22f4 100644 --- a/src/src/Components/ScriptComponent.cpp +++ b/src/src/Components/ScriptComponent.cpp @@ -17,6 +17,8 @@ #include "../core/utils/input.h" #include "../core/types/vec2.h" +#include "../core/types/vec3.h" + #include #include @@ -39,14 +41,36 @@ struct LuaVector2 { float x, y; }; -#define LUA_VECTOR2_MT "LuaVector2Meta" +struct LuaVector3 +{ + float x, y, z; +}; -#define LUA_ANIMATION_MT "LuaAnimationMeta" +#define LUA_VECTOR3_MT "LuaVector3Meta" +#define LUA_VECTOR2_MT "LuaVector2Meta" struct LuaAnimationWrapper { AnimationComponent *comp; }; +struct LuaLightWrapper +{ + LightComponent *comp; +}; + +#define LUA_LIGHT_MT "LuaLightMeta" +#define LUA_ANIMATION_MT "LuaAnimationMeta" + + + + +static core::types::Vec3 GetLuaVector3(lua_State* L, int index); + + + + + + ScriptComponent::ScriptComponent(Object *owner) : Component(owner), L(nullptr) {} ScriptComponent::~ScriptComponent() @@ -153,7 +177,6 @@ static Component *GetComponentByName(Object *obj, const std::string &type) return nullptr; } - static int Lua_GetMousePos(lua_State *L) { PROFILE_DEEP_SCOPE("Engine::GetMousePos"); @@ -189,7 +212,21 @@ static int Lua_Object_GetComponent(lua_State *L) lua_pushnil(L); return 1; } - // fallback for other components + if (strcmp(type, "LightComponent") == 0) + { + auto compPtr = wrapper->obj->GetComponent(); + if (compPtr) + { + LuaLightWrapper *lw = (LuaLightWrapper *)lua_newuserdata(L, sizeof(LuaLightWrapper)); + lw->comp = compPtr.get(); + luaL_getmetatable(L, LUA_LIGHT_MT); + lua_setmetatable(L, -2); + return 1; + } + lua_pushnil(L); + return 1; + } + Component *comp = GetComponentByName(wrapper->obj, type); lua_pushlightuserdata(L, comp ? comp : nullptr); return 1; @@ -268,6 +305,123 @@ static int Lua_GetObjectByTag(lua_State *L) return 1; } + + + + + + +static LightComponent *CheckLight(lua_State *L) +{ + return ((LuaLightWrapper *)luaL_checkudata(L, 1, LUA_LIGHT_MT))->comp; +} + +static int Lua_Light_GetColor(lua_State *L) +{ + auto *light = CheckLight(L); + glm::vec3 c = light->GetColor(); + LuaVector3 *vec = (LuaVector3 *)lua_newuserdata(L, sizeof(LuaVector3)); + vec->x = c.x; vec->y = c.y; vec->z = c.z; + luaL_getmetatable(L, LUA_VECTOR3_MT); + lua_setmetatable(L, -2); + return 1; +} + +static int Lua_Light_SetColor(lua_State *L) +{ + auto* light = CheckLight(L); + core::types::Vec3 color = GetLuaVector3(L, 2); + light->SetColor(color); + return 0; +} + + +static int Lua_Light_GetIntensity(lua_State *L) +{ + lua_pushnumber(L, CheckLight(L)->GetIntensity()); + return 1; +} + +static int Lua_Light_SetIntensity(lua_State *L) +{ + CheckLight(L)->SetIntensity(static_cast(luaL_checknumber(L, 2))); + return 0; +} + +static int Lua_Light_GetRadius(lua_State *L) +{ + lua_pushnumber(L, CheckLight(L)->GetRadius()); + return 1; +} + +static int Lua_Light_SetRadius(lua_State *L) +{ + CheckLight(L)->SetRadius(static_cast(luaL_checknumber(L, 2))); + return 0; +} + +static int Lua_Light_GetFalloff(lua_State *L) +{ + lua_pushnumber(L, CheckLight(L)->GetFalloff()); + return 1; +} + +static int Lua_Light_SetFalloff(lua_State *L) +{ + CheckLight(L)->SetFalloff(static_cast(luaL_checknumber(L, 2))); + return 0; +} + +static int Lua_Light_GetType(lua_State *L) +{ + lua_pushinteger(L, CheckLight(L)->GetType()); + return 1; +} + +static int Lua_Light_SetType(lua_State *L) +{ + CheckLight(L)->SetType(luaL_checkinteger(L, 2)); + return 0; +} + +static int Lua_Light_Index(lua_State *L) +{ + luaL_getmetatable(L, LUA_LIGHT_MT); + lua_pushvalue(L, 2); + lua_rawget(L, -2); + return 1; +} + +void RegisterLightType(lua_State *L) +{ + luaL_newmetatable(L, LUA_LIGHT_MT); + + lua_pushcfunction(L, Lua_Light_GetColor); lua_setfield(L, -2, "GetColor"); + lua_pushcfunction(L, Lua_Light_SetColor); lua_setfield(L, -2, "SetColor"); + + lua_pushcfunction(L, Lua_Light_GetIntensity); lua_setfield(L, -2, "GetIntensity"); + lua_pushcfunction(L, Lua_Light_SetIntensity); lua_setfield(L, -2, "SetIntensity"); + + lua_pushcfunction(L, Lua_Light_GetRadius); lua_setfield(L, -2, "GetRadius"); + lua_pushcfunction(L, Lua_Light_SetRadius); lua_setfield(L, -2, "SetRadius"); + + lua_pushcfunction(L, Lua_Light_GetFalloff); lua_setfield(L, -2, "GetFalloff"); + lua_pushcfunction(L, Lua_Light_SetFalloff); lua_setfield(L, -2, "SetFalloff"); + + lua_pushcfunction(L, Lua_Light_GetType); lua_setfield(L, -2, "GetType"); + lua_pushcfunction(L, Lua_Light_SetType); lua_setfield(L, -2, "SetType"); + + lua_pushcfunction(L, Lua_Light_Index); + lua_setfield(L, -2, "__index"); + + lua_pop(L, 1); +} + + + + + + // --- AnimationComponent Lua bindings --- static AnimationComponent *CheckAnimationComponent(lua_State *L, int idx) { @@ -347,8 +501,6 @@ static int Lua_Animation_SetEndFrame(lua_State *L) return 0; } - - static int Lua_Animation_Index(lua_State *L) { // stack: [1]=userdata, [2]=key @@ -513,6 +665,102 @@ static int Lua_KeyDown(lua_State *L) return 1; } + +static core::types::Vec3 GetLuaVector3(lua_State* L, int index) +{ + if (luaL_testudata(L, index, LUA_VECTOR3_MT)) + { + auto* vec = static_cast(lua_touserdata(L, index)); + return core::types::Vec3(vec->x, vec->y, vec->z); + } + else if (lua_istable(L, index)) + { + core::types::Vec3 result; + + static const char* keys1[3] = { "x", "y", "z" }; + static const char* keys2[3] = { "r", "g", "b" }; + + const char** keys = keys1; + + lua_pushstring(L, "x"); + lua_rawget(L, index); + if (lua_isnil(L, -1)) { + keys = keys2; + lua_pop(L, 1); + } + + for (int i = 0; i < 3; ++i) + { + lua_pushstring(L, keys[i]); + lua_rawget(L, index); + result[i] = static_cast(lua_tonumber(L, -1)); + lua_pop(L, 1); + } + + return result; + } + + luaL_error(L, "Expected Vector3 userdata or table with x/y/z or r/g/b"); + return core::types::Vec3(0, 0, 0); +} + + + + +static int Lua_Vector3_New(lua_State *L) +{ + PROFILE_DEEP_SCOPE("Vector3()"); + LuaVector3 *vec = (LuaVector3 *)lua_newuserdata(L, sizeof(LuaVector3)); + int nargs = lua_gettop(L); + vec->x = nargs >= 1 ? static_cast(lua_tonumber(L, 1)) : 0.0f; + vec->y = nargs >= 2 ? static_cast(lua_tonumber(L, 2)) : 0.0f; + vec->z = nargs >= 3 ? static_cast(lua_tonumber(L, 3)) : 0.0f; + luaL_setmetatable(L, LUA_VECTOR3_MT); + return 1; +} + +static int Lua_Vector3_Index(lua_State *L) +{ + auto *vec = (LuaVector3 *)luaL_checkudata(L, 1, LUA_VECTOR3_MT); + const char *key = lua_tostring(L, 2); + if (!strcmp(key, "x")) + lua_pushnumber(L, vec->x); + else if (!strcmp(key, "y")) + lua_pushnumber(L, vec->y); + else if (!strcmp(key, "z")) + lua_pushnumber(L, vec->z); + else + lua_pushnil(L); + return 1; +} + +static int Lua_Vector3_NewIndex(lua_State *L) +{ + auto *vec = (LuaVector3 *)luaL_checkudata(L, 1, LUA_VECTOR3_MT); + const char *key = lua_tostring(L, 2); + float value = static_cast(luaL_checknumber(L, 3)); + if (!strcmp(key, "x")) + vec->x = value; + else if (!strcmp(key, "y")) + vec->y = value; + else if (!strcmp(key, "z")) + vec->z = value; + return 0; +} + +void RegisterVector3Type(lua_State *L) +{ + luaL_newmetatable(L, LUA_VECTOR3_MT); + lua_pushcfunction(L, Lua_Vector3_Index); + lua_setfield(L, -2, "__index"); + lua_pushcfunction(L, Lua_Vector3_NewIndex); + lua_setfield(L, -2, "__newindex"); + lua_pop(L, 1); + + lua_pushcfunction(L, Lua_Vector3_New); + lua_setglobal(L, "Vector3"); +} + static int Lua_Vector2_New(lua_State *L) { PROFILE_DEEP_SCOPE("Vector2()"); @@ -603,7 +851,7 @@ void RegisterAnimationType(lua_State *L) lua_setfield(L, -2, "GetEndFrame"); lua_pushcfunction(L, Lua_Animation_SetEndFrame); lua_setfield(L, -2, "SetEndFrame"); - + // __index lua_pushcfunction(L, Lua_Animation_Index); lua_setfield(L, -2, "__index"); @@ -632,8 +880,6 @@ void ScriptComponent::RegisterEngineBindings() lua_setfield(L, -2, "GetMousePos"); lua_setglobal(L, "Engine"); - - } void ScriptComponent::ReloadScript() @@ -651,8 +897,10 @@ void ScriptComponent::ReloadScript() RegisterObjectType(L); RegisterVector2Type(L); + RegisterVector3Type(L); RegisterAnimationType(L); RegisterEngineBindings(); + RegisterLightType(L); keycode_loader(L); diff --git a/src/src/Engine.cpp b/src/src/Engine.cpp index 1b3b6a0..b342be8 100644 --- a/src/src/Engine.cpp +++ b/src/src/Engine.cpp @@ -381,7 +381,7 @@ void Engine::ShowDebugOverlay(float deltaTime) float maxFps = *std::max_element(fpsHistory.begin(), fpsHistory.end()); maxFps = std::max(maxFps * 1.1f, 60.0f); - ImGui::PlotLines("##FPS", fpsHistory.data(), fpsHistory.size(), 0, "FPS History", + ImGui::PlotLines("##FPS", fpsHistory.data(), fpsHistory.size(), 0, "FPS", 0.0f, maxFps, ImVec2(-1, 50)); } else @@ -537,8 +537,6 @@ void Engine::Init() m_animationsUpdates.reserve(512); // ~500 animated objects (characters, FX, etc.) Logger::LogOk("Engine Core"); - - } core::types::Vec2 ScreenToWorld(const core::types::Vec2 &screenPos, const core::types::Vec2 &viewportSize, const core::types::Vec2 &cameraPos, float zoom) @@ -563,7 +561,7 @@ void Engine::collectObjects(bool playing, const glm::vec2 &camPos, float camZoom const glm::vec2 screenSize = glm::vec2(Renderer::GetSize()); for (auto &root : objects) - if (!root->GetParent()) + if (root && !root->GetParent()) m_collectStack.push_back(root); while (!m_collectStack.empty()) @@ -820,7 +818,7 @@ void Engine::Run() } for (auto &obj : objects) - if (!obj->GetParent()) + if (obj && !obj->GetParent()) DrawObjectNode(obj); ImGui::End(); @@ -1152,26 +1150,51 @@ void Engine::Run() } } - if (ImGui::BeginDragDropTarget()) + static std::shared_ptr previewObj = nullptr; + static uint64_t previewUAID = 0; + + const ImGuiPayload *payload = ImGui::GetDragDropPayload(); + bool draggingTexture = payload && payload->IsDataType("ASSET_TEXTURE") && payload->DataSize == sizeof(uint64_t); + bool mouseHeld = ImGui::IsMouseDown(ImGuiMouseButton_Left); + bool mouseReleased = ImGui::IsMouseReleased(ImGuiMouseButton_Left); + bool hoveringViewport = ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem); + + // While dragging and hovering viewport + if (draggingTexture && mouseHeld && hoveringViewport) { - if (const ImGuiPayload *payload = ImGui::AcceptDragDropPayload("ASSET_TEXTURE")) + uint64_t uaid = *(const uint64_t *)payload->Data; + const auto *asset = AssetManager::GetAssetByID(uaid); + if (asset && asset->type == AssetType::Image) { - if (payload->DataSize == sizeof(uint64_t)) + if (!previewObj) { - uint64_t uaid = *(const uint64_t *)payload->Data; - - glm::vec2 worldPos = ScreenToWorld(screenMousePos, viewportSize, cameraPos, cameraZoom); - - auto obj = std::make_shared("New Sprite"); - obj->SetLocalPosition(worldPos); - - auto sprite = obj->AddComponent(); - sprite->SetTexture(uaid); - - objects.push_back(obj); + previewObj = std::make_shared(asset->filename); + previewObj->AddComponent()->SetTexture(uaid); + objects.push_back(previewObj); + previewUAID = uaid; } + + glm::vec2 worldPos = ScreenToWorld(screenMousePos, viewportSize, cameraPos, cameraZoom); + previewObj->SetLocalPosition(worldPos); + selected = previewObj; } - ImGui::EndDragDropTarget(); + } + else if (previewObj && mouseReleased && hoveringViewport) + { + + previewObj = nullptr; + previewUAID = 0; + } + else if (previewObj && (!hoveringViewport || !draggingTexture)) + { + auto it = std::find(objects.begin(), objects.end(), previewObj); + if (it != objects.end()) + objects.erase(it); + + previewObj = nullptr; + selected = previewObj; + + previewUAID = 0; } ImGui::End(); @@ -1227,26 +1250,27 @@ void Engine::Run() } } -void Engine::DrawObjectNode(const std::shared_ptr &obj) +void Engine::DrawObjectNode(const std::shared_ptr& obj) { + if (!obj) + return; + PROFILE_ENGINE_SCOPE("Engine::DrawObjectNode"); ImGuiTreeNodeFlags flags = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_SpanAvailWidth | + ImGuiTreeNodeFlags_DefaultOpen | (obj == selected ? ImGuiTreeNodeFlags_Selected : 0); - bool open = ImGui::TreeNodeEx((void *)(intptr_t)obj->uid.id, flags, "%s", obj->GetName().c_str()); + bool open = ImGui::TreeNodeEx((void*)(intptr_t)obj->uid.id, flags, "%s", obj->GetName().c_str()); if (ImGui::IsItemClicked()) selected = obj; - // === Context Menu === if (ImGui::BeginPopupContextItem()) { if (ImGui::MenuItem("Delete")) - { pendingDeletion.push_back(obj); - } if (ImGui::MenuItem("Create Child")) { auto child = std::make_shared("NewObject"); @@ -1257,58 +1281,59 @@ void Engine::DrawObjectNode(const std::shared_ptr &obj) ImGui::EndPopup(); } - // === Drag Source === if (ImGui::BeginDragDropSource()) { - ImGui::SetDragDropPayload("OBJECT", &obj, sizeof(obj)); - ImGui::Text("Move: %s", obj->GetName().c_str()); + auto dragRef = obj; + ImGui::SetDragDropPayload("OBJECT", &dragRef, sizeof(dragRef)); + ImGui::Text("%s", obj->GetName().c_str()); ImGui::EndDragDropSource(); } - // === Drop Target === if (ImGui::BeginDragDropTarget()) { - if (const ImGuiPayload *payload = ImGui::AcceptDragDropPayload("OBJECT")) + if (auto payload = ImGui::AcceptDragDropPayload("OBJECT")) { - auto dragged = *(std::shared_ptr *)payload->Data; + auto dragged = *static_cast*>(payload->Data); - if (dragged != obj && dragged) + if (dragged && dragged != obj) { - Object *oldParent = dragged->GetParent(); - - if (oldParent) - { - oldParent->RemoveChild(dragged.get()); - - for (const auto &candidate : objects) + bool valid = true; + for (Object* a = obj.get(); a; a = a->GetParent()) + if (a == dragged.get()) { - if (candidate.get() == oldParent) - { - pendingDeletion.push_back(candidate); - break; - } + valid = false; + break; } - } - else - { - objects.erase(std::remove(objects.begin(), objects.end(), dragged), objects.end()); - } - obj->AddChild(dragged); + if (valid) + { + if (auto oldP = dragged->GetParent()) + oldP->RemoveChild(dragged.get()); + else + objects.erase(std::remove(objects.begin(), objects.end(), dragged), objects.end()); + + + obj->AddChild(dragged); + dragged->SetWorldPosition( + dragged->GetWorldPosition() - obj->GetWorldPosition() + ); + } } } ImGui::EndDragDropTarget(); } - // === Children === if (open) { - for (auto &child : obj->GetChildren()) - DrawObjectNode(child); + for (auto& child : obj->GetChildren()) + if (child) + DrawObjectNode(child); ImGui::TreePop(); } } + + bool VerifySceneHash(const YAML::Node &root) { if (!root["scene_hash"] || !root["objects"]) @@ -1422,6 +1447,7 @@ void Engine::LoadScene(const std::string &path) loadingUI.Update(currentStep, currentDetail, 0.1f); objects.clear(); + Object::usedIDs.clear(); Logger::LogDebug("[LoadScene] Recreating Objects"); currentStep = "Creating Scene Objects"; diff --git a/src/src/Entitys/Object.cpp b/src/src/Entitys/Object.cpp index 7d2ee11..afad2dd 100644 --- a/src/src/Entitys/Object.cpp +++ b/src/src/Entitys/Object.cpp @@ -10,16 +10,35 @@ #include "../Components/AnimationComponent.h" #include "../Components/AudioPlayerComponent.h" - #include "../core/utils/Logging.h" #include "../utils/UID.h" #include -Object::Object(const std::string &name) - : name(name), localPosition(0.0f, 0.0f), localRotationDeg(0.0f), uid(), visable(true) {} +static constexpr float PI = 3.14159265358979323846f; + + +std::unordered_set Object::usedIDs; + +Object::Object(const std::string& name) + : name(name), localPosition(0.0f, 0.0f), localRotationDeg(0.0f), uid(), visable(true) +{ + if (usedIDs.count(uid.id)) + { + Logger::LogWarning("Constructor: Duplicate ID %d detected. Assigning a new ID.", uid.id); + uid.id = GetNextAvailableID(); + } + usedIDs.insert(uid.id); + parent = nullptr; +} + + + +Object::~Object() +{ + usedIDs.erase(uid.id); +} -Object::~Object() {} void Object::SetParent(Object *newParent) { @@ -65,6 +84,30 @@ glm::vec2 Object::GetWorldPosition() const return localPosition; } + + +void Object::SetWorldPosition(const core::types::Vec2& worldPos) { + if (Object* parent = GetParent()) { + core::types::Vec2 parentPos = parent->GetWorldPosition(); + core::types::Vec2 offset = worldPos - parentPos; + + float parentDeg = parent->GetWorldRotation(); + float rad = -parentDeg * (PI / 180.0f); + float c = std::cos(rad); + float s = std::sin(rad); + + core::types::Vec2 local{ + offset.x * c - offset.y * s, + offset.x * s + offset.y * c + }; + + SetLocalPosition(local); + } + else { + SetLocalPosition(worldPos); + } +} + float Object::GetLocalRotation() const { return localRotationDeg; @@ -75,6 +118,13 @@ void Object::SetLocalRotation(float deg) localRotationDeg = deg; } +float Object::GetWorldScale() const +{ + return 1.0f; +} + + + float Object::GetWorldRotation() const { if (parent) @@ -95,7 +145,16 @@ void Object::SetVisable(bool state) const std::string &Object::GetName() const { return name; } void Object::SetName(const std::string &n) { name = n; } std::vector> &Object::GetChildren() { return children; } -Object *Object::GetParent() const { return parent; } +Object* Object::GetParent() const +{ + if (!this) + { + Logger::LogError("Object::GetParent() called on nullptr"); + return nullptr; + } + return parent; +} + void Object::Save(YAML::Emitter &out) const { @@ -128,9 +187,11 @@ void Object::Save(YAML::Emitter &out) const void Object::Load(const YAML::Node &node) { + + name = node["name"].as(); uid.uuid = node["uid"] ? node["uid"].as() : GenerateUUID(); - uid.id = node["id"] ? node["id"].as() : 0; + int loadedID = node["id"] ? node["id"].as() : 0; auto pos = node["position"]; if (pos && pos.IsSequence() && pos.size() == 2) diff --git a/src/src/Entitys/Object.h b/src/src/Entitys/Object.h index 5346182..9209943 100644 --- a/src/src/Entitys/Object.h +++ b/src/src/Entitys/Object.h @@ -9,6 +9,13 @@ #include #include "../utils/UID.h" +#include + +#include "../core/types/all.h" + + + + class Component; @@ -28,6 +35,10 @@ public: float GetLocalRotation() const; void SetLocalRotation(float deg); float GetWorldRotation() const; + void SetWorldPosition(const core::types::Vec2& worldPos); + + float GetWorldScale() const; + void SetParent(Object *parent); Object *GetParent() const; @@ -51,6 +62,9 @@ public: UID uid; int layer = 0; + static std::unordered_set usedIDs; + + private: bool visable = true; std::string name; @@ -59,6 +73,15 @@ private: Object *parent = nullptr; std::vector> children; std::vector> components; + + + static int GetNextAvailableID() + { + static int nextID = 1; + while (usedIDs.count(nextID)) + ++nextID; + return nextID; + } }; template diff --git a/src/src/Renderer.cpp b/src/src/Renderer.cpp index 712b46c..531f628 100644 --- a/src/src/Renderer.cpp +++ b/src/src/Renderer.cpp @@ -26,6 +26,7 @@ static Shader tilemapShader; static Shader extractShader; static Shader blurShader; static Shader compositeShader; +static Shader s_OutlineShader; static GLuint extractFBO, extractTexture; static GLuint blurFBO_H, blurTexture_H; @@ -195,9 +196,9 @@ void Renderer::InitQuadBatch() void Renderer::Init() { - Logger::LogVerbose("[Renderer] Create Primary"); + // Main framebuffer glGenFramebuffers(1, &fbo); glBindFramebuffer(GL_FRAMEBUFFER, fbo); @@ -220,41 +221,34 @@ void Renderer::Init() InitQuad(); - // Load lit shader + // Load shaders + spriteShader.LoadFromFile("src/assets/shaders/sprite.vert", "src/assets/shaders/sprite.frag"); + unlitShader.LoadFromFile("src/assets/shaders/unlit.vert", "src/assets/shaders/unlit.frag"); + tilemapShader.LoadFromFile("src/assets/shaders/tilemap.vert", "src/assets/shaders/tilemap.frag"); - // Core renderers - { - spriteShader.LoadFromFile("src/assets/shaders/sprite.vert", "src/assets/shaders/sprite.frag"); - unlitShader.LoadFromFile("src/assets/shaders/unlit.vert", "src/assets/shaders/unlit.frag"); - tilemapShader.LoadFromFile("src/assets/shaders/tilemap.vert", "src/assets/shaders/tilemap.frag"); + // Bloom pipeline + extractShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/extract.frag"); + blurShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/blur.frag"); + compositeShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/composite.frag"); - // Bloom pipeline - extractShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/extract.frag"); - blurShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/blur.frag"); - compositeShader.LoadFromFile("src/assets/shaders/fullscreen.vert", "src/assets/shaders/composite.frag"); + s_UnlitQuadShader.LoadFromFile("src/assets/shaders/unlit_quad.vert", "src/assets/shaders/unlit_quad.frag"); + s_OutlineShader.LoadFromFile("src/assets/shaders/outline.vert", "src/assets/shaders/outline.frag"); - s_UnlitQuadShader.LoadFromFile("src/assets/shaders/unlit_quad.vert", "src/assets/shaders/unlit_quad.frag"); - - - - Logger::LogOk("Shader Core"); - } + Logger::LogOk("Shader Core"); InitQuadBatch(); Logger::LogVerbose("[Renderer] Color Correction Init"); - SetColorCorrection(std::make_unique()); - { - Logger::LogVerbose("Renderer::InitLightUniforms(%d)", g_engineConfig.gl_maxLight); - InitLightUniforms(g_engineConfig.gl_maxLight); - } + Logger::LogVerbose("Renderer::InitLightUniforms(%d)", g_engineConfig.gl_maxLight); + InitLightUniforms(g_engineConfig.gl_maxLight); glGenBuffers(1, &s_ClusterSSBO); Logger::LogVerbose("[Renderer] Bloom Init"); + // Bloom extract glGenFramebuffers(1, &extractFBO); glBindFramebuffer(GL_FRAMEBUFFER, extractFBO); glGenTextures(1, &extractTexture); @@ -264,6 +258,7 @@ void Renderer::Init() glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, extractTexture, 0); + // Horizontal blur glGenFramebuffers(1, &blurFBO_H); glBindFramebuffer(GL_FRAMEBUFFER, blurFBO_H); glGenTextures(1, &blurTexture_H); @@ -273,6 +268,7 @@ void Renderer::Init() glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, blurTexture_H, 0); + // Vertical blur glGenFramebuffers(1, &blurFBO_V); glBindFramebuffer(GL_FRAMEBUFFER, blurFBO_V); glGenTextures(1, &blurTexture_V); @@ -282,7 +278,7 @@ void Renderer::Init() glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, blurTexture_V, 0); - // Final composite target + // Final bloom composite glGenFramebuffers(1, &bloomFBO); glBindFramebuffer(GL_FRAMEBUFFER, bloomFBO); glGenTextures(1, &bloomTexture); @@ -295,7 +291,7 @@ void Renderer::Init() glBindFramebuffer(GL_FRAMEBUFFER, 0); Logger::LogVerbose("[Renderer] Creating Default Normal"); - + unsigned char flatNormal[3] = {128, 128, 255}; glGenTextures(1, &defaultNormalMap); glBindTexture(GL_TEXTURE_2D, defaultNormalMap); @@ -513,6 +509,7 @@ void Renderer::DrawTilemap(TilemapComponent *tilemap, int gx, gy; TilemapComponent::UnpackCoord(key, gx, gy); + // world→screen position glm::vec2 worldPos = {gx * tileSize.x, gy * tileSize.y}; glm::vec2 screenPos = (worldPos - cameraPos) * zoom + screenCenter; @@ -520,8 +517,9 @@ void Renderer::DrawTilemap(TilemapComponent *tilemap, // quad size in screen‐space glm::vec2 finalSize = tileSize * zoom; - // fetch UVs (already handles flipping for you) - auto uvRect = atlas->GetFrameUVRect(tileIndex); + + const core::types::Vec2 uvMin = atlas->GetFrameUV(tileIndex); + const core::types::Vec2 uvMax = uvMin + atlas->GetFrameSizeUV(); // batch that sprite BatchedSprite entry{}; @@ -533,8 +531,8 @@ void Renderer::DrawTilemap(TilemapComponent *tilemap, entry.renderType = RenderType::Unlit; entry.sprite = nullptr; entry.texCoords = glm::vec4( - uvRect.min.x, uvRect.min.y, - uvRect.max.x, uvRect.max.y); + uvMin.x, uvMin.y, + uvMax.x, uvMax.y); SortedDrawEntry drawEntry{}; drawEntry.sprite = entry; diff --git a/src/src/Renderer.h b/src/src/Renderer.h index 022afba..44dfd7f 100644 --- a/src/src/Renderer.h +++ b/src/src/Renderer.h @@ -22,7 +22,7 @@ struct ColorCorrection float saturation = 1.0f; float gamma = 1.0f; - bool bloom = true; + bool bloom = false; float threshold = 1.0f; float intensity = 1.2f; @@ -54,14 +54,18 @@ struct QuadInstance class Renderer { public: + + + + + static void Init(); static void Resize(int w, int h); static void Begin(); static void End(); static void DrawSprite(SpriteComponent *sprite, const glm::vec2 &pos, float zoom, glm::vec2 &CameraPos); - static void DrawTilemap(TilemapComponent* tilemap, const glm::vec2& pos, float zoom, const glm::vec2& cameraPos); - + static void DrawTilemap(TilemapComponent *tilemap, const glm::vec2 &pos, float zoom, const glm::vec2 &cameraPos); static void AddLight(const glm::vec2 &screenPos, const glm::vec3 &color, float intensity, float radius); static void ClearLights(); @@ -105,6 +109,7 @@ public: static void FlushQuads(); + private: static std::vector s_Lights; @@ -119,10 +124,11 @@ private: static GLuint LoadShader(const char *vertexSrc, const char *fragmentSrc); static std::unique_ptr s_ColorCorrection; - // Clustered Lighting + static constexpr int CLUSTER_SIZE = 16; static constexpr int MAX_LIGHTS_PER_CLUSTER = 32; + struct Cluster { std::vector lightIndices; @@ -143,4 +149,5 @@ private: static void *s_QuadMappedPtr; static GLuint s_QuadPersistentFlags; + }; diff --git a/src/src/core/audio/AudioEngine.cpp b/src/src/core/audio/AudioEngine.cpp index fcf9869..635cd02 100644 --- a/src/src/core/audio/AudioEngine.cpp +++ b/src/src/core/audio/AudioEngine.cpp @@ -157,20 +157,14 @@ void AudioEngine::SetVolume(uint64_t uaid, float v) { if (auto it = s_SoundMap.find(uaid); it != s_SoundMap.end()) { ma_sound_set_volume(it->second, v); } - else - { - Logger::LogError("[AudioEngine] Invalid Asset ID"); - } + } void AudioEngine::SetLooping(uint64_t uaid, bool loop) { if (auto it = s_SoundMap.find(uaid); it != s_SoundMap.end()) { ma_sound_set_looping(it->second, loop ? MA_TRUE : MA_FALSE); } - else - { - Logger::LogError("[AudioEngine] Invalid Asset ID"); - } + } void AudioEngine::Cleanup(uint64_t uaid) { diff --git a/src/src/core/types/vec3.h b/src/src/core/types/vec3.h index bc44fc6..4c28e55 100644 --- a/src/src/core/types/vec3.h +++ b/src/src/core/types/vec3.h @@ -27,6 +27,8 @@ namespace core Vec3 operator*(const Vec3 &rhs) const { return {x * rhs.x, y * rhs.y, z * rhs.z}; } + + Vec3 &operator+=(const Vec3 &rhs) { x += rhs.x; y += rhs.y; z += rhs.z; return *this; } Vec3 &operator-=(const Vec3 &rhs) { x -= rhs.x; y -= rhs.y; z -= rhs.z; return *this; } Vec3 &operator*=(float scalar) { x *= scalar; y *= scalar; z *= scalar; return *this; } @@ -89,9 +91,29 @@ namespace core { return os << "(" << v.x << ", " << v.y << ", " << v.z << ")"; } + + inline float& operator[](int i) { + switch (i) { + case 0: return x; + case 1: return y; + case 2: return z; + default: throw std::out_of_range("Vec3 index out of range"); + } + } + + inline const float& operator[](int i) const { + switch (i) { + case 0: return x; + case 1: return y; + case 2: return z; + default: throw std::out_of_range("Vec3 index out of range"); + } + } }; inline Vec3 operator*(float scalar, const Vec3 &v) { return v * scalar; } + + } // namespace types } // namespace core diff --git a/src/src/core/utils/AssetManager.cpp b/src/src/core/utils/AssetManager.cpp index d1ed656..e2eabee 100644 --- a/src/src/core/utils/AssetManager.cpp +++ b/src/src/core/utils/AssetManager.cpp @@ -3,6 +3,7 @@ #include #include #include "../audio/AudioEngine.h" +#include "LoadingWindow.h" #define STB_IMAGE_IMPLEMENTATION #include @@ -368,8 +369,18 @@ void AssetManager::Load(const YAML::Node &node) if (!node) return; + + LoadingWindow loadingUI; + loadingUI.Create("Loading Assets"); + + const size_t total = node.size(); + size_t index = 0; + + + for (const auto &item : node) { + uint64_t uaid = item["uaid"].as(); std::string path = item["path"].as(); AssetType type = static_cast(item["type"].as()); @@ -382,6 +393,9 @@ void AssetManager::Load(const YAML::Node &node) else continue; + float progress = static_cast(index) / total; + loadingUI.Update("Loading Asset", path, progress); + asset->uaid = uaid; asset->path = path; asset->filename = item["filename"] ? item["filename"].as() : GetFilenameFromPath(path); @@ -402,7 +416,11 @@ void AssetManager::Load(const YAML::Node &node) LoadImageInternal(path, uaid); else if (type == AssetType::Audio) LoadAudioInternal(path, uaid); + + ++index; + } + loadingUI.Destroy(); } void ImageAssetInfo::Save(YAML::Emitter &out) const diff --git a/src/src/core/utils/AssetManager.h b/src/src/core/utils/AssetManager.h index c2f918a..46bd93e 100644 --- a/src/src/core/utils/AssetManager.h +++ b/src/src/core/utils/AssetManager.h @@ -9,7 +9,7 @@ #include #include "miniaudio.h" -enum class AssetType { Image, Audio }; +enum class AssetType { Image, Audio, Unknown }; struct AssetInfo { diff --git a/src/src/core/utils/FileDialog.cpp b/src/src/core/utils/FileDialog.cpp index 846e3cf..fbe9d80 100644 --- a/src/src/core/utils/FileDialog.cpp +++ b/src/src/core/utils/FileDialog.cpp @@ -7,8 +7,11 @@ #include #include #include "FileDialog.h" +#include + + +//TODO: Make this all memroy safe. -// Correctly null-terminated filter strings static std::unordered_map filters = { { FileDialogType::Images, "Image Files\0*.png;*.jpg;*.jpeg;*.bmp;*.tga;*.gif;*.dds\0All Files\0*.*\0" }, { FileDialogType::Scenes, "CreateScene Files\0*.cene;*.cscene;*.yaml\0All Files\0*.*\0" }, @@ -101,3 +104,44 @@ std::string CreateFileDialog(FileDialogType type) { return ""; } + + +std::vector OpenMultipleFilesDialog(FileDialogType type) { + const size_t bufferSize = 32768; + std::vector fileBuffer(bufferSize, 0); + + OPENFILENAMEA ofn = {}; + ofn.lStructSize = sizeof(ofn); + + const char* filterStr = filters.count(type) ? filters[type] : filters[FileDialogType::All]; + ofn.lpstrFilter = filterStr; + ofn.lpstrFile = fileBuffer.data(); + ofn.nMaxFile = static_cast(fileBuffer.size()); + ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | + OFN_NOCHANGEDIR | OFN_ALLOWMULTISELECT | OFN_EXPLORER; + + auto originalPath = std::filesystem::current_path(); + bool result = GetOpenFileNameA(&ofn); + std::filesystem::current_path(originalPath); + + std::vector selectedFiles; + + if (!result || fileBuffer[0] == '\0') + return selectedFiles; + + std::string directory(fileBuffer.data()); + char* p = fileBuffer.data() + directory.size() + 1; + + if (*p == '\0') { + selectedFiles.push_back(directory); + } else { + while (*p != '\0') { + std::string filename(p); + std::filesystem::path fullPath = std::filesystem::path(directory) / filename; + selectedFiles.push_back(fullPath.string()); + p += filename.size() + 1; + } + } + + return selectedFiles; +} diff --git a/src/src/core/utils/FileDialog.h b/src/src/core/utils/FileDialog.h index 27854cf..914053e 100644 --- a/src/src/core/utils/FileDialog.h +++ b/src/src/core/utils/FileDialog.h @@ -1,5 +1,7 @@ #pragma once #include +#include + enum class FileDialogType { Images, @@ -16,4 +18,6 @@ enum class FileDialogType { std::string OpenFileDialog(FileDialogType type); std::string SaveFileDialog(FileDialogType type); std::string CreateFileDialog(FileDialogType type); +std::vector OpenMultipleFilesDialog(FileDialogType type); + diff --git a/src/src/core/utils/LoadingWindow.cpp b/src/src/core/utils/LoadingWindow.cpp index b4b193a..89ee2b4 100644 --- a/src/src/core/utils/LoadingWindow.cpp +++ b/src/src/core/utils/LoadingWindow.cpp @@ -4,25 +4,29 @@ #include static const wchar_t* kWindowClass = L"LoadingWndClass"; -static LoadingWindow* g_instance = nullptr; void LoadingWindow::Create(const std::string& title) { - g_instance = this; windowTitle = std::wstring(title.begin(), title.end()); - WNDCLASS wc = {}; - wc.lpfnWndProc = WndProc; - wc.hInstance = GetModuleHandle(nullptr); - wc.lpszClassName = kWindowClass; - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - RegisterClass(&wc); + // Register the window class (once) + static bool registered = false; + if (!registered) + { + WNDCLASS wc = {}; + wc.lpfnWndProc = LoadingWindow::ThunkProc; + wc.hInstance = GetModuleHandle(nullptr); + wc.lpszClassName = kWindowClass; + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + RegisterClass(&wc); + registered = true; + } hwnd = CreateWindowEx( 0, kWindowClass, windowTitle.c_str(), WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & ~WS_THICKFRAME, CW_USEDEFAULT, CW_USEDEFAULT, 500, 200, - nullptr, nullptr, GetModuleHandle(nullptr), nullptr + nullptr, nullptr, GetModuleHandle(nullptr), this ); ShowWindow(hwnd, SW_SHOWNORMAL); @@ -53,12 +57,28 @@ void LoadingWindow::Destroy() DestroyWindow(hwnd); hwnd = nullptr; } - UnregisterClass(kWindowClass, GetModuleHandle(nullptr)); } -LRESULT CALLBACK LoadingWindow::WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) +LRESULT CALLBACK LoadingWindow::ThunkProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { - if (msg == WM_PAINT && g_instance) + if (msg == WM_NCCREATE) + { + // Store 'this' in GWLP_USERDATA + CREATESTRUCT* cs = reinterpret_cast(lParam); + SetWindowLongPtr(hWnd, GWLP_USERDATA, reinterpret_cast(cs->lpCreateParams)); + return TRUE; + } + + LoadingWindow* self = reinterpret_cast(GetWindowLongPtr(hWnd, GWLP_USERDATA)); + if (self) + return self->WndProc(hWnd, msg, wParam, lParam); + + return DefWindowProc(hWnd, msg, wParam, lParam); +} + +LRESULT LoadingWindow::WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + if (msg == WM_PAINT) { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); @@ -66,8 +86,8 @@ LRESULT CALLBACK LoadingWindow::WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPAR RECT r; GetClientRect(hWnd, &r); - std::wstring step = std::wstring(g_instance->currentStep.begin(), g_instance->currentStep.end()); - std::wstring detail = std::wstring(g_instance->currentDetail.begin(), g_instance->currentDetail.end()); + std::wstring step = std::wstring(currentStep.begin(), currentStep.end()); + std::wstring detail = std::wstring(currentDetail.begin(), currentDetail.end()); SetBkMode(hdc, TRANSPARENT); SelectObject(hdc, GetStockObject(DEFAULT_GUI_FONT)); @@ -87,7 +107,7 @@ LRESULT CALLBACK LoadingWindow::WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPAR DeleteObject(bg); // Progress bar fill - int barWidth = static_cast((progressRect.right - progressRect.left) * g_instance->currentProgress); + int barWidth = static_cast((progressRect.right - progressRect.left) * currentProgress); RECT fillRect = { progressRect.left, progressRect.top, progressRect.left + barWidth, progressRect.bottom }; HBRUSH fill = CreateSolidBrush(RGB(70, 140, 255)); FillRect(hdc, &fillRect, fill); diff --git a/src/src/core/utils/LoadingWindow.h b/src/src/core/utils/LoadingWindow.h index 74fae70..bef4628 100644 --- a/src/src/core/utils/LoadingWindow.h +++ b/src/src/core/utils/LoadingWindow.h @@ -5,7 +5,7 @@ class LoadingWindow { public: void Create(const std::string& title = "Loading..."); - void Update(const std::string& step, const std::string& detail, float progress); // NEW + void Update(const std::string& step, const std::string& detail, float progress); void Destroy(); private: @@ -15,5 +15,9 @@ private: std::string currentDetail; float currentProgress = 0.0f; - static LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); + // Static thunk to route Windows messages to the correct instance + static LRESULT CALLBACK ThunkProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); + + // Actual message handler for this instance + LRESULT WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); }; diff --git a/src/src/editor/windows/AssetBrowser.cpp b/src/src/editor/windows/AssetBrowser.cpp index e34a9b7..8ce26ce 100644 --- a/src/src/editor/windows/AssetBrowser.cpp +++ b/src/src/editor/windows/AssetBrowser.cpp @@ -5,8 +5,13 @@ #include "../../core/utils/AssetManager.h" #include "../../Renderer.h" #include "../../core/utils/Logging.h" +#include "../../core/utils/LoadingWindow.h" static std::string assetSearchQuery; +static bool sortAscending = true; +static int sortMode = 0; // 0 = Name, 1 = Type, 2 = UAID +static bool showImages = true; +static bool showAudio = true; void ShowAssetBrowser() { @@ -15,33 +20,95 @@ void ShowAssetBrowser() if (!g_engineConfig.settings.show_asset_window) return; - ImGui::Begin("Asset Browser"); + ImGui::Begin("Resources"); - if (ImGui::Button("Load Image")) + // Top bar layout + ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(6, 4)); + ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(8, 6)); + + // Load Buttons + if (ImGui::Button("Load Images")) { - std::string path = OpenFileDialog(FileDialogType::Images); - if (!path.empty()) - AssetManager::LoadAssetAsync(path, AssetType::Image); + std::vector paths = OpenMultipleFilesDialog(FileDialogType::Images); + if (!paths.empty()) + { + LoadingWindow loader; + loader.Create("Loading Images..."); + + for (size_t i = 0; i < paths.size(); ++i) + { + const std::string &path = paths[i]; + loader.Update("Loading Image", path, static_cast(i + 1) / paths.size()); + AssetManager::LoadAssetAsync(path, AssetType::Image); + } + + loader.Destroy(); + } } ImGui::SameLine(); if (ImGui::Button("Load Audio")) { - std::string path = OpenFileDialog(FileDialogType::Audio); - if (!path.empty()) - AssetManager::LoadAssetAsync(path, AssetType::Audio); + std::vector paths = OpenMultipleFilesDialog(FileDialogType::Audio); + if (!paths.empty()) + { + LoadingWindow loader; + loader.Create("Loading Audio..."); + + for (size_t i = 0; i < paths.size(); ++i) + { + const std::string &path = paths[i]; + loader.Update("Loading Audio", path, static_cast(i + 1) / paths.size()); + AssetManager::LoadAssetAsync(path, AssetType::Audio); + } + + loader.Destroy(); + } } - ImGui::Separator(); + ImGui::SameLine(); + + if (ImGui::Button("Filters / Sort")) + ImGui::OpenPopup("AssetBrowserFilterPopup"); + + // Filters Popup + if (ImGui::BeginPopup("AssetBrowserFilterPopup")) + { + ImGui::Text("Sort By:"); + if (ImGui::Selectable("Name", sortMode == 0)) + sortMode = 0; + if (ImGui::Selectable("Type", sortMode == 1)) + sortMode = 1; + if (ImGui::Selectable("UAID", sortMode == 2)) + sortMode = 2; + + ImGui::Checkbox("Ascending", &sortAscending); + + ImGui::Separator(); + ImGui::Text("Type Filters:"); + ImGui::Checkbox("Images", &showImages); + ImGui::Checkbox("Audio", &showAudio); + + ImGui::EndPopup(); + } + + ImGui::PopStyleVar(2); + + // Search field (spaced below buttons) + ImGui::Spacing(); + ImGui::Spacing(); + char buffer[256] = {}; strncpy(buffer, assetSearchQuery.c_str(), sizeof(buffer) - 1); - - if (ImGui::InputTextWithHint("##Search", "Search...", buffer, sizeof(buffer))) + ImGui::SetNextItemWidth(-1); + if (ImGui::InputTextWithHint("##Search", "Search", buffer, sizeof(buffer))) { assetSearchQuery = buffer; } + + ImGui::Separator(); ImGui::BeginChild("##AssetScroll", ImVec2(0, 0), true); @@ -56,25 +123,44 @@ void ShowAssetBrowser() ImGui::Columns(columns, nullptr, false); - int idx = 0; - for (const auto &[uaid, baseAsset] : AssetManager::GetAllAssets()) + // Collect, filter and sort assets + std::vector sortedAssets; + for (const auto &[uaid, asset] : AssetManager::GetAllAssets()) { - if (!baseAsset || !baseAsset->loaded) + if (!asset || !asset->loaded) continue; if (!assetSearchQuery.empty() && - baseAsset->filename.find(assetSearchQuery) == std::string::npos && - baseAsset->path.find(assetSearchQuery) == std::string::npos) - { + asset->filename.find(assetSearchQuery) == std::string::npos && + asset->path.find(assetSearchQuery) == std::string::npos) continue; - } + if ((asset->type == AssetType::Image && !showImages) || + (asset->type == AssetType::Audio && !showAudio)) + continue; + + sortedAssets.push_back(asset.get()); + } + + std::sort(sortedAssets.begin(), sortedAssets.end(), [](const AssetInfo *a, const AssetInfo *b) + { + switch (sortMode) + { + case 0: return sortAscending ? a->filename < b->filename : a->filename > b->filename; + case 1: return sortAscending ? a->type < b->type : a->type > b->type; + case 2: return sortAscending ? a->uaid < b->uaid : a->uaid > b->uaid; + default: return true; + } }); + + int idx = 0; + for (const AssetInfo *baseAsset : sortedAssets) + { ImGui::PushID(idx++); std::string displayName = GetFilenameFromPath(baseAsset->path); if (baseAsset->type == AssetType::Image) { - const auto *imageAsset = dynamic_cast(baseAsset.get()); + const auto *imageAsset = dynamic_cast(baseAsset); if (!imageAsset) { ImGui::PopID(); @@ -86,27 +172,23 @@ void ShowAssetBrowser() if (ImGui::BeginDragDropSource(ImGuiDragDropFlags_SourceAllowNullID)) { - ImGui::SetDragDropPayload("ASSET_TEXTURE", &uaid, sizeof(uint64_t)); - ImGui::Image((ImTextureID)(intptr_t)imageAsset->textureID, - ImVec2(thumbnailSize * 2, thumbnailSize * 2)); + ImGui::SetDragDropPayload("ASSET_TEXTURE", &baseAsset->uaid, sizeof(uint64_t)); ImGui::Text("%s", displayName.c_str()); ImGui::EndDragDropSource(); } } else if (baseAsset->type == AssetType::Audio) { - std::string buttonLabel = baseAsset->filetype.empty() ? "Audio" : (baseAsset->filetype); - + std::string buttonLabel = baseAsset->filetype.empty() ? "Audio" : baseAsset->filetype; ImGui::Button(buttonLabel.c_str(), ImVec2(thumbnailSize, thumbnailSize)); if (ImGui::BeginDragDropSource(ImGuiDragDropFlags_SourceAllowNullID)) { - ImGui::SetDragDropPayload("ASSET_AUDIO", &uaid, sizeof(uint64_t)); - ImGui::Text("Audio: %s", displayName.c_str()); + ImGui::SetDragDropPayload("ASSET_AUDIO", &baseAsset->uaid, sizeof(uint64_t)); + ImGui::Text("%s", displayName.c_str()); ImGui::EndDragDropSource(); } } - else { ImGui::PopID(); @@ -121,7 +203,7 @@ void ShowAssetBrowser() if (baseAsset->type == AssetType::Image) { - const auto *imageAsset = dynamic_cast(baseAsset.get()); + const auto *imageAsset = dynamic_cast(baseAsset); if (imageAsset) { ImGui::Text("Texture ID: %u", imageAsset->textureID); @@ -141,7 +223,7 @@ void ShowAssetBrowser() if (ImGui::MenuItem("Unload")) { Logger::LogInfo("[AssetBrowser] Unloaded: %s", baseAsset->path.c_str()); - AssetManager::UnloadAsset(uaid); + AssetManager::UnloadAsset(baseAsset->uaid); ImGui::EndPopup(); ImGui::PopID(); continue; diff --git a/src/src/editor/windows/Inspector.cpp b/src/src/editor/windows/Inspector.cpp index 3fb6a56..1c286e3 100644 --- a/src/src/editor/windows/Inspector.cpp +++ b/src/src/editor/windows/Inspector.cpp @@ -738,10 +738,12 @@ void DrawInspectorUI(std::shared_ptr selected) if (ImGui::Button("Stop")) audio->Stop(); - // Looping static bool loop = false; - loop = ImGui::Checkbox("Loop", &loop); - audio->SetLooping(loop); + if (ImGui::Checkbox("Loop", &loop)) + { + audio->SetLooping(loop); + } + // Volume static float volume = 1.0f; diff --git a/src/src/utils/UID.cpp b/src/src/utils/UID.cpp index 8f4dce9..8096034 100644 --- a/src/src/utils/UID.cpp +++ b/src/src/utils/UID.cpp @@ -24,6 +24,8 @@ std::string GenerateUUID() { return ss.str(); } + + UID::UID() : id(nextID++), uuid(GenerateUUID()) {}