diff --git a/Assets/Placeholders/Square/3D/Project.gdshader b/Assets/Placeholders/Square/3D/Project.gdshader new file mode 100644 index 0000000..e9ed514 --- /dev/null +++ b/Assets/Placeholders/Square/3D/Project.gdshader @@ -0,0 +1,16 @@ +shader_type spatial; + +uniform sampler2D tilemap_camera; +uniform float scale = 8; + +void vertex() { + vec3 world_position = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz; + vec2 pos = world_position.xz; + pos.y -= world_position.y; + pos /= scale; + UV = pos; +} + +void fragment() { + ALBEDO = texture(tilemap_camera, UV).rgb; +} diff --git a/Scenes/Debugging/Square.tscn b/Scenes/Debugging/Square.tscn index d1cd53b..e995366 100644 --- a/Scenes/Debugging/Square.tscn +++ b/Scenes/Debugging/Square.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=29 format=4 uid="uid://gcninm0pku08"] +[gd_scene load_steps=34 format=4 uid="uid://gcninm0pku08"] [ext_resource type="Texture2D" uid="uid://bsf3i6xos65r6" path="res://Assets/Placeholders/Square/Sand.png" id="1_7o7in"] [ext_resource type="Texture2D" uid="uid://c2e7403lr3duh" path="res://Assets/Placeholders/Square/Bricks.png" id="2_a12mg"] @@ -12,6 +12,7 @@ [ext_resource type="Texture2D" uid="uid://cqls3eniuv2m7" path="res://Assets/Placeholders/Square/3D/Sand.png" id="7_wq35j"] [ext_resource type="Texture2D" uid="uid://bkxxq2xfhmbkl" path="res://Assets/Placeholders/Square/3D/Wallfloor.png" id="8_gvjmn"] [ext_resource type="Texture2D" uid="uid://bv5wms22ienmu" path="res://Assets/Placeholders/Square/3D/Bricks.png" id="9_3si7n"] +[ext_resource type="Shader" path="res://Assets/Placeholders/Square/3D/Project.gdshader" id="13_ajq7j"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ewej5"] texture = ExtResource("1_7o7in") @@ -119,6 +120,27 @@ item/5/shapes = [] item/5/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/5/navigation_layers = 1 +[sub_resource type="ViewportTexture" id="ViewportTexture_r414k"] +viewport_path = NodePath("SubViewport") + +[sub_resource type="ShaderMaterial" id="ShaderMaterial_e3oir"] +resource_local_to_scene = true +render_priority = 0 +shader = ExtResource("13_ajq7j") +shader_parameter/scale = 8.0 +shader_parameter/tilemap_camera = SubResource("ViewportTexture_r414k") + +[sub_resource type="BoxMesh" id="BoxMesh_03j8n"] +material = SubResource("ShaderMaterial_e3oir") + +[sub_resource type="MeshLibrary" id="MeshLibrary_qf5ir"] +item/0/name = "" +item/0/mesh = SubResource("BoxMesh_03j8n") +item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/shapes = [] +item/0/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/navigation_layers = 1 + [node name="Node2D" type="Node2D"] [node name="TileMapLayer" type="TileMapLayer" parent="."] @@ -131,6 +153,7 @@ tile_map_data = PackedByteArray("AAADAAMAAQAAAAAAAAAEAAMAAQAAAAAAAAADAAIAAgAAAAA tile_set = SubResource("TileSet_m7d8e") [node name="GridMap" type="GridMap" parent="."] +visible = false mesh_library = SubResource("MeshLibrary_ajtuf") cell_size = Vector3(1, 1, 1) cell_center_y = false @@ -139,7 +162,28 @@ data = { } metadata/_editor_floor_ = Vector3(-5, 1, 0) +[node name="GridMap2" type="GridMap" parent="."] +mesh_library = SubResource("MeshLibrary_qf5ir") +cell_size = Vector3(1, 1, 1) +data = { +"cells": PackedInt32Array(-65536, 0, 0, -65536, 1, 0, -65536, 2, 0, -65536, 3, 0, -65536, 4, 0, -65536, 5, 0, -65536, 6, 0, -65536, 7, 0, -65535, 0, 0, -65535, 1, 0, -65535, 2, 0, -65535, 3, 0, -65535, 4, 0, -65535, 5, 0, -65535, 6, 0, -65535, 7, 0, -65534, 0, 0, -65534, 1, 0, -65534, 2, 0, -65534, 4, 0, -65534, 5, 0, -65534, 6, 0, -65534, 7, 0, -65533, 0, 0, -65533, 1, 0, -65533, 4, 0, -65533, 5, 0, -65533, 6, 0, -65533, 7, 0, -65532, 0, 0, -65532, 1, 0, -65532, 4, 0, -65532, 5, 0, -65532, 6, 0, -65532, 7, 0, -65531, 0, 0, -65531, 1, 0, -65531, 2, 0, -65531, 4, 0, -65531, 5, 0, -65531, 6, 0, -65531, 7, 0, -65530, 0, 0, -65530, 1, 0, -65530, 2, 0, -65530, 4, 0, -65530, 5, 0, -65530, 6, 0, -65530, 7, 0, -65529, 0, 0, -65529, 1, 0, -65529, 2, 0, -65529, 3, 0, -65529, 4, 0, -65529, 5, 0, -65529, 6, 0, -65529, 7, 0, 5, 5, 0, 4, 5, 0, 3, 5, 0, 2, 5, 0, 2, 4, 0, 3, 4, 0, 4, 4, 0, 5, 4, 0, 65539, 4, 0, 65540, 4, 0, -65530, 3, 0) +} +metadata/_editor_floor_ = Vector3(0, 1, 0) + [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(-1, 0, -8.74228e-08, -6.18172e-08, 0.707107, 0.707107, 6.18172e-08, 0.707107, -0.707107, 0, 7, 2.205) +visible = false projection = 1 size = 15.0 + +[node name="SubViewport" type="SubViewport" parent="."] +size = Vector2i(1024, 1024) + +[node name="TileMapLayer3" type="TileMapLayer" parent="SubViewport"] +tile_map_data = PackedByteArray("AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAEAAAAAAAAAAAACAAIAAAAAAAAAAAABAAIAAAAAAAAAAAAAAAIAAAAAAAAAAAABAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAABAAMAAAAAAAAAAAACAAQAAAAAAAAAAAADAAQAAAAAAAAAAAADAAMAAAAAAAAAAAADAAIAAAAAAAAAAAAEAAIAAAAAAAAAAAAEAAEAAAAAAAAAAAAEAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAEAAMAAAAAAAAAAAAEAAQAAAAAAAAAAAABAAQAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAQAAAAAAAAAAAACAAMAAAAAAAAAAAAHAAAAAAAAAAAAAAAGAAEAAAAAAAAAAAAFAAIAAAAAAAAAAAABAAUAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAcAAAAAAAAAAAABAAcAAAAAAAAAAAABAAYAAAAAAAAAAAACAAYAAAAAAAAAAAADAAYAAAAAAAAAAAADAAUAAAAAAAAAAAAEAAUAAAAAAAAAAAAFAAMAAAAAAAAAAAAGAAQAAAAAAAAAAAAFAAQAAAAAAAAAAAAFAAUAAAAAAAAAAAACAAUAAAAAAAAAAAAEAAYAAAAAAAAAAAAFAAYAAAAAAAAAAAAGAAIAAAAAAAAAAAAGAAMAAAAAAAAAAAAGAAUAAAAAAAAAAAAGAAYAAAAAAAAAAAAHAAIAAAAAAAAAAAAHAAMAAAAAAAAAAAAHAAQAAAAAAAAAAAAHAAUAAAAAAAAAAAAHAAYAAAAAAAAAAAAAAAUAAAAAAAAAAAACAAcAAAAAAAAAAAADAAcAAAAAAAAAAAAEAAcAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAEAAAAAAAAAAAAFAAcAAAAAAAAAAAAGAAAAAAAAAAAAAAAGAAcAAAAAAAAAAAAHAAEAAAAAAAAAAAAHAAcAAAAAAAAAAAAAAPj/AAAAAAAAAAAAAPn/AAAAAAAAAAAAAPr/AAAAAAAAAAAAAPv/AAAAAAAAAAAAAPz/AAAAAAAAAAAAAP3/AAAAAAAAAAAAAP7/AAAAAAAAAAAAAP//AAAAAAAAAAABAPj/AAAAAAAAAAABAPn/AAAAAAAAAAABAPr/AAAAAAAAAAABAPv/AAAAAAAAAAABAPz/AAAAAAAAAAABAP3/AAAAAAAAAAABAP7/AAAAAAAAAAABAP//AAAAAAAAAAACAPj/AAAAAAAAAAACAPn/AAAAAAAAAAACAPr/AAAAAAAAAAACAPv/AAAAAAAAAAACAPz/AAAAAAAAAAACAP3/AAAAAAAAAAACAP7/AAAAAAAAAAACAP//AAAAAAAAAAADAPj/AAAAAAAAAAADAPn/AAAAAAAAAAADAPr/AAAAAAAAAAADAPv/AAAAAAAAAAADAPz/AAAAAAAAAAADAP3/AAAAAAAAAAADAP7/AAAAAAAAAAADAP//AAAAAAAAAAAEAPj/AAAAAAAAAAAEAPn/AAAAAAAAAAAEAPr/AAAAAAAAAAAEAPv/AAAAAAAAAAAEAPz/AAAAAAAAAAAEAP3/AAAAAAAAAAAEAP7/AAAAAAAAAAAEAP//AAAAAAAAAAAFAPj/AAAAAAAAAAAFAPn/AAAAAAAAAAAFAPr/AAAAAAAAAAAFAPv/AAAAAAAAAAAFAPz/AAAAAAAAAAAFAP3/AAAAAAAAAAAFAP7/AAAAAAAAAAAFAP//AAAAAAAAAAAGAPj/AAAAAAAAAAAGAPn/AAAAAAAAAAAGAPr/AAAAAAAAAAAGAPv/AAAAAAAAAAAGAPz/AAAAAAAAAAAGAP3/AAAAAAAAAAAGAP7/AAAAAAAAAAAGAP//AAAAAAAAAAAHAPj/AAAAAAAAAAAHAPn/AAAAAAAAAAAHAPr/AAAAAAAAAAAHAPv/AAAAAAAAAAAHAPz/AAAAAAAAAAAHAP3/AAAAAAAAAAAHAP7/AAAAAAAAAAAHAP//AAAAAAAAAAANAPn/BQAAAAAAAAANAPr/BQAAAAAAAAANAPv/BQAAAAAAAAANAPz/BQAAAAAAAAANAP3/BQAAAAAAAAAOAPn/BQAAAAAAAAAOAPr/BQAAAAAAAAAOAPv/BQAAAAAAAAAOAPz/BQAAAAAAAAAOAP3/BQAAAAAAAAAPAPn/BQAAAAAAAAAPAPr/BQAAAAAAAAAPAPv/BQAAAAAAAAAPAPz/BQAAAAAAAAAPAP3/BQAAAAAAAAAQAPn/BQAAAAAAAAAQAPr/BQAAAAAAAAAQAPv/BQAAAAAAAAAQAPz/BQAAAAAAAAAQAP3/BQAAAAAAAAARAPn/BQAAAAAAAAARAPr/BQAAAAAAAAARAPv/BQAAAAAAAAARAPz/BQAAAAAAAAARAP3/BQAAAAAAAAA=") +tile_set = SubResource("TileSet_m7d8e") + +[node name="TileMapLayer4" type="TileMapLayer" parent="SubViewport"] +position = Vector2(0, -2) +tile_map_data = PackedByteArray("AAADAAMAAQAAAAAAAAAEAAMAAQAAAAAAAAADAAIAAgAAAAAAAAAEAAIAAgAAAAAAAAADAAQAAgAAAAAAAAAEAAQAAgAAAAAAAAADAAUAAQAAAAAAAAAEAAUAAQAAAAAAAAAFAAMAAwAAAAAAAAAFAAQAAgAAAAAAAAACAAMAAwAAAAAAAAACAAQAAgAAAAAAAAACAAUAAQAAAAAAAAAFAAUAAQAAAAAAAAADAP3/AQAAAAAAAAAEAP3/AQAAAAAAAAADAPz/AgAAAAAAAAAEAPz/AgAAAAAAAAADAPn/AgAAAAAAAAAEAPn/AgAAAAAAAAADAPr/AQAAAAAAAAAEAPr/AQAAAAAAAAABAP3/AQAAAAAAAAABAPz/AQAAAAAAAAABAPv/AgAAAAAAAAAAAPv/AgAAAAAAAAAAAPz/AQAAAAAAAAAAAP3/AQAAAAAAAAAOAPz/AQAAAAAAAAAOAPv/AQAAAAAAAAAPAPv/BAAAAAAAAAAPAPz/BgAAAAAAAAAOAPr/AgAAAAAAAAAQAPr/AgAAAAAAAAAQAPv/AQAAAAAAAAAQAPz/AQAAAAAAAAA=") +tile_set = SubResource("TileSet_m7d8e")