diff --git a/addons/enhanced_gridmap/example/main.tscn b/addons/enhanced_gridmap/example/main.tscn new file mode 100644 index 0000000..e013c52 --- /dev/null +++ b/addons/enhanced_gridmap/example/main.tscn @@ -0,0 +1,43 @@ +[gd_scene load_steps=6 format=3 uid="uid://dpihcqibm8d4q"] + +[ext_resource type="Script" uid="uid://dudbm0fqk82rm" path="res://addons/enhanced_gridmap/example/player.gd" id="1_ct1x4"] +[ext_resource type="MeshLibrary" uid="uid://kcv6ans86ug7" path="res://addons/enhanced_gridmap/meshlibrary/default.tres" id="2_buqgu"] +[ext_resource type="Script" uid="uid://bja8ixryvthu0" path="res://addons/enhanced_gridmap/enhanced_gridmap.gd" id="3_4dd4k"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_ct1x4"] + +[sub_resource type="Environment" id="Environment_ct1x4"] +background_mode = 1 +background_color = Color(1, 1, 1, 1) + +[node name="Main" type="Node3D"] +script = ExtResource("1_ct1x4") +enhanced_gridmap_path = NodePath("EnhancedGridMap") +player_path = NodePath("Player") + +[node name="EnhancedGridMap" type="GridMap" parent="."] +mesh_library = ExtResource("2_buqgu") +data = { +"cells": PackedInt32Array(0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 4, 0, 1, 5, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 1, 9, 0, 2, 0, 0, 2, 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 3, 0, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 5, 0, 3, 6, 0, 3, 7, 0, 3, 8, 0, 3, 9, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 5, 0, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 6, 0, 0, 6, 1, 0, 6, 2, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 7, 0, 0, 7, 1, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 8, 0, 0, 8, 1, 0, 8, 2, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 9, 0, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0) +} +script = ExtResource("3_4dd4k") +floors = 1 +auto_generate = true +obstacle_items = Array[int]([]) +metadata/_custom_type_script = "uid://bja8ixryvthu0" + +[node name="Player" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2, 1) + +[node name="MeshInstance3D" type="MeshInstance3D" parent="Player"] +mesh = SubResource("CapsuleMesh_ct1x4") + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(-1, -1.89462e-15, -8.74228e-08, -8.74228e-08, -5.96047e-08, 1, -7.10543e-15, 1, 5.96047e-08, 9.9742, 24.112, 10) +environment = SubResource("Environment_ct1x4") +projection = 1 +size = 26.0 + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 31, 0) +visible = false diff --git a/addons/enhanced_gridmap/example/player.gd b/addons/enhanced_gridmap/example/player.gd new file mode 100644 index 0000000..d203742 --- /dev/null +++ b/addons/enhanced_gridmap/example/player.gd @@ -0,0 +1,129 @@ +extends Node3D + +@export var enhanced_gridmap_path: NodePath +@export var player_path: NodePath + +var enhanced_gridmap: EnhancedGridMap +var player: Node3D +var current_position: Vector2i +var is_player_moving: bool = false + +# Customizable cell size and offset +@export var cell_size: Vector3 = Vector3(2, 2, 2) +@export var cell_offset: Vector3 = Vector3(0, 0, 0) + +# Diagonal movement flag +@export var use_diagonal_movement: bool = false: + set(value): + use_diagonal_movement = value + if enhanced_gridmap: + enhanced_gridmap.set_diagonal_movement(value) + +func _ready(): + enhanced_gridmap = get_node(enhanced_gridmap_path) + player = get_node(player_path) + + if not enhanced_gridmap or not player: + push_error("EnhancedGridMap or Player node not found. Please set the correct paths in the inspector.") + return + + # Ensure the A* graph is initialized + enhanced_gridmap.initialize_astar() + + # Sync diagonal movement setting with the plugin + enhanced_gridmap.set_diagonal_movement(use_diagonal_movement) + + # Position the player at a valid starting position + #current_position = find_valid_starting_position() + current_position = Vector2i(0,2) + update_player_position(current_position) + +func find_valid_starting_position() -> Vector2i: + for x in range(enhanced_gridmap.columns): + for z in range(enhanced_gridmap.rows): + for item in enhanced_gridmap.non_walkable_items.size(): + if enhanced_gridmap.get_cell_item(Vector3i(x, 0, z)) != enhanced_gridmap.non_walkable_items[item]: + return Vector2i(x, z) + return Vector2i(0, 0) # Fallback to (0,0) if no valid position found + +func _unhandled_input(event): + + if is_player_moving: + return # Ignore input if the player is already moving + + if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT: + var camera = get_viewport().get_camera_3d() + var from = camera.project_ray_origin(event.position) + var to = from + camera.project_ray_normal(event.position) * 1000 + + var click_position = raycast_to_grid(from, to) + if click_position != Vector2i(-1, -1): + move_player_to_clicked_position(click_position) + +func raycast_to_grid(from: Vector3, to: Vector3) -> Vector2i: + var plane = Plane(Vector3.UP, cell_offset.y) + var intersection = plane.intersects_ray(from, to - from) + + if intersection: + var adjusted_intersection = intersection - cell_offset + var grid_position = Vector2i( + floor(adjusted_intersection.x / cell_size.x), + floor(adjusted_intersection.z / cell_size.z) + ) + + if grid_position.x >= 0 and grid_position.x < enhanced_gridmap.columns and \ + grid_position.y >= 0 and grid_position.y < enhanced_gridmap.rows: + return grid_position + + return Vector2i(-1, -1) + +func move_player_to_clicked_position(grid_position: Vector2i): + var cell_item = enhanced_gridmap.get_cell_item(Vector3i(grid_position.x, 0, grid_position.y)) + + for x in enhanced_gridmap.non_walkable_items.size(): + if cell_item == enhanced_gridmap.non_walkable_items[x]: + print("Cannot move to non-walkable cell") + return + + var path = enhanced_gridmap.find_path(Vector2(current_position), Vector2(grid_position)) + + if path.size() > 1: + path.pop_front() + move_player_along_path(path) + else: + print("No valid path found") + +func move_player_along_path(path: Array): + is_player_moving = true + var tween = create_tween() + tween.set_trans(Tween.TRANS_CUBIC) + tween.set_ease(Tween.EASE_IN_OUT) + + # Visualize the path using the plugin's function + #enhanced_gridmap.visualize_path(path) + + for point in path: + var target_position = grid_to_world(Vector2i(point.x, point.y)) + tween.tween_property(player, "position", target_position, 0.5) + + tween.tween_callback(func(): + current_position = Vector2i(path[-1].x, path[-1].y) + is_player_moving = false + enhanced_gridmap.clear_path_visualization() + ) + +func update_player_position(grid_position: Vector2i): + player.position = grid_to_world(grid_position) + +func grid_to_world(grid_position: Vector2i) -> Vector3: + var world_position = Vector3( + grid_position.x * cell_size.x, + cell_size.y, # Place the player on top of the cell + grid_position.y * cell_size.z + ) + + # Center the player within the cell + world_position.x += cell_size.x * 0.5 + world_position.z += cell_size.z * 0.5 + + return world_position + cell_offset diff --git a/addons/enhanced_gridmap/example/player.gd.uid b/addons/enhanced_gridmap/example/player.gd.uid new file mode 100644 index 0000000..812c59a --- /dev/null +++ b/addons/enhanced_gridmap/example/player.gd.uid @@ -0,0 +1 @@ +uid://dudbm0fqk82rm diff --git a/addons/enhanced_gridmap/icon.png.import b/addons/enhanced_gridmap/icon.png.import index cbbe597..23aec51 100644 --- a/addons/enhanced_gridmap/icon.png.import +++ b/addons/enhanced_gridmap/icon.png.import @@ -2,7 +2,7 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cak1euopkw681" +uid="uid://v4iur5pyy5b5" path="res://.godot/imported/icon.png-55ce7476be277fe78f056db0afa06b3b.ctex" metadata={ "vram_texture": false diff --git a/addons/enhanced_gridmap/meshlibrary/default.tres b/addons/enhanced_gridmap/meshlibrary/default.tres index d4e6d5b..f1d633e 100644 --- a/addons/enhanced_gridmap/meshlibrary/default.tres +++ b/addons/enhanced_gridmap/meshlibrary/default.tres @@ -1,121 +1,81 @@ -[gd_resource type="MeshLibrary" load_steps=12 format=3 uid="uid://54tpx8cmksfc"] +[gd_resource type="MeshLibrary" load_steps=9 format=3 uid="uid://kcv6ans86ug7"] -[ext_resource type="ArrayMesh" uid="uid://dqguomxd16u0i" path="res://assets/models/meshes/start.res" id="1_xdwel"] -[ext_resource type="ArrayMesh" uid="uid://dspusnbkr74hg" path="res://assets/models/meshes/hover.res" id="2_5gp4i"] -[ext_resource type="Material" uid="uid://bsyh0x4cy5qyr" path="res://assets/models/meshes/end.tres" id="3_qi66w"] -[ext_resource type="ArrayMesh" uid="uid://dtr46jmckif0p" path="res://assets/models/meshes/block.res" id="4_8v5xv"] -[ext_resource type="ArrayMesh" uid="uid://d4himvyb81in8" path="res://assets/models/meshes/non-walkable.res" id="4_h83ju"] -[ext_resource type="ArrayMesh" uid="uid://bgvropltcot0q" path="res://assets/models/meshes/normal.res" id="5_san4u"] -[ext_resource type="ArrayMesh" uid="uid://36tgon3b60db" path="res://assets/models/tiles/tile_heart.tres" id="6_r6sve"] -[ext_resource type="ArrayMesh" uid="uid://dr80txgr61irt" path="res://assets/models/tiles/tile_diamond.tres" id="8_rj3ss"] -[ext_resource type="ArrayMesh" uid="uid://b5ta7tcw0iscd" path="res://assets/models/tiles/tile_coin.tres" id="9_44311"] -[ext_resource type="ArrayMesh" uid="uid://cv4bedhida00g" path="res://assets/models/tiles/tile_star.tres" id="9_y8bbi"] - -[sub_resource type="PlaneMesh" id="PlaneMesh_ti6kf"] -material = ExtResource("3_qi66w") -size = Vector2(1, 1) +[ext_resource type="ArrayMesh" uid="uid://cr70nmk8djc1i" path="res://assets/models/meshes/tiles_armagedon_a3.res" id="1_ptqbt"] +[ext_resource type="ArrayMesh" uid="uid://dspusnbkr74hg" path="res://assets/models/meshes/hover.res" id="2_p5epg"] +[ext_resource type="ArrayMesh" uid="uid://dqguomxd16u0i" path="res://assets/models/meshes/start.res" id="3_8v5xv"] +[ext_resource type="ArrayMesh" uid="uid://b5ta7tcw0iscd" path="res://assets/models/tiles/tile_coin.tres" id="4_76xkl"] +[ext_resource type="ArrayMesh" uid="uid://d4himvyb81in8" path="res://assets/models/meshes/non-walkable.res" id="4_sx8rm"] +[ext_resource type="ArrayMesh" uid="uid://dr80txgr61irt" path="res://assets/models/tiles/tile_diamond.tres" id="5_j2mx0"] +[ext_resource type="ArrayMesh" uid="uid://36tgon3b60db" path="res://assets/models/tiles/tile_heart.tres" id="6_ptqbt"] +[ext_resource type="ArrayMesh" uid="uid://cv4bedhida00g" path="res://assets/models/tiles/tile_star.tres" id="7_p5epg"] [resource] item/0/name = "normal" -item/0/mesh = ExtResource("1_xdwel") +item/0/mesh = ExtResource("1_ptqbt") item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/0/mesh_cast_shadow = 1 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 item/1/name = "hover" -item/1/mesh = ExtResource("2_5gp4i") +item/1/mesh = ExtResource("2_p5epg") item/1/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/1/mesh_cast_shadow = 1 item/1/shapes = [] item/1/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/1/navigation_layers = 1 item/2/name = "start" -item/2/mesh = ExtResource("1_xdwel") +item/2/mesh = ExtResource("3_8v5xv") item/2/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/2/mesh_cast_shadow = 1 item/2/shapes = [] item/2/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/2/navigation_layers = 1 item/3/name = "end" -item/3/mesh = SubResource("PlaneMesh_ti6kf") +item/3/mesh = ExtResource("3_8v5xv") item/3/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/3/mesh_cast_shadow = 1 item/3/shapes = [] item/3/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/3/navigation_layers = 1 item/4/name = "non-walkable" -item/4/mesh = ExtResource("4_h83ju") +item/4/mesh = ExtResource("4_sx8rm") item/4/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/4/mesh_cast_shadow = 1 item/4/shapes = [] item/4/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/4/navigation_layers = 1 -item/6/name = "grass" -item/6/mesh = ExtResource("5_san4u") +item/5/name = "disable" +item/5/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/5/mesh_cast_shadow = 1 +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 +item/6/name = "tile_coin" +item/6/mesh = ExtResource("4_76xkl") item/6/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/6/mesh_cast_shadow = 1 item/6/shapes = [] item/6/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/6/navigation_layers = 1 -item/7/name = "tile_heart" -item/7/mesh = ExtResource("6_r6sve") -item/7/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0) +item/7/name = "tile_diamond" +item/7/mesh = ExtResource("5_j2mx0") +item/7/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/7/mesh_cast_shadow = 1 item/7/shapes = [] item/7/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/7/navigation_layers = 1 -item/8/name = "tile_diamond" -item/8/mesh = ExtResource("8_rj3ss") -item/8/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0) +item/8/name = "tile_heart" +item/8/mesh = ExtResource("6_ptqbt") +item/8/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/8/mesh_cast_shadow = 1 item/8/shapes = [] item/8/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/8/navigation_layers = 1 item/9/name = "tile_star" -item/9/mesh = ExtResource("9_y8bbi") -item/9/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0) +item/9/mesh = ExtResource("7_p5epg") +item/9/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/9/mesh_cast_shadow = 1 item/9/shapes = [] item/9/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) item/9/navigation_layers = 1 -item/10/name = "tile_coin" -item/10/mesh = ExtResource("9_44311") -item/10/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0) -item/10/mesh_cast_shadow = 1 -item/10/shapes = [] -item/10/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/10/navigation_layers = 1 -item/11/name = "obstacle_block" -item/11/mesh = ExtResource("4_8v5xv") -item/11/mesh_transform = Transform3D(1.65, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0.5) -item/11/mesh_cast_shadow = 1 -item/11/shapes = [] -item/11/navigation_mesh_transform = Transform3D(0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0) -item/11/navigation_layers = 1 -item/12/name = "obstacle_block_h" -item/12/mesh = ExtResource("4_8v5xv") -item/12/mesh_transform = Transform3D(1.65, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.4, 0.5) -item/12/mesh_cast_shadow = 1 -item/12/shapes = [] -item/12/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/12/navigation_layers = 1 -item/13/name = "obstacle_block_v" -item/13/mesh = ExtResource("4_8v5xv") -item/13/mesh_transform = Transform3D(1.65, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0.5) -item/13/mesh_cast_shadow = 1 -item/13/shapes = [] -item/13/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/13/navigation_layers = 1 -item/14/name = "" -item/14/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/14/mesh_cast_shadow = 1 -item/14/shapes = [] -item/14/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/14/navigation_layers = 1 -item/15/name = "" -item/15/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/15/mesh_cast_shadow = 1 -item/15/shapes = [] -item/15/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/15/navigation_layers = 1 diff --git a/addons/enhanced_gridmap/meshlibrary/mat_end.tres b/addons/enhanced_gridmap/meshlibrary/mat_end.tres new file mode 100644 index 0000000..8490465 --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/mat_end.tres @@ -0,0 +1,4 @@ +[gd_resource type="StandardMaterial3D" load_steps=0 format=3 uid="uid://0fexqt03j3cb"] + +[resource] +albedo_color = Color(0.265987, 0.565787, 0.525347, 1) diff --git a/addons/enhanced_gridmap/meshlibrary/mat_hover.tres b/addons/enhanced_gridmap/meshlibrary/mat_hover.tres new file mode 100644 index 0000000..9710bcd --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/mat_hover.tres @@ -0,0 +1,4 @@ +[gd_resource type="StandardMaterial3D" load_steps=0 format=3 uid="uid://cn1pvqd4gf1u7"] + +[resource] +albedo_color = Color(0.26944, 0.347152, 0.674841, 1) diff --git a/addons/enhanced_gridmap/meshlibrary/mat_normal.tres b/addons/enhanced_gridmap/meshlibrary/mat_normal.tres new file mode 100644 index 0000000..8b4856a --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/mat_normal.tres @@ -0,0 +1,4 @@ +[gd_resource type="StandardMaterial3D" load_steps=0 format=3 uid="uid://dqhmv78u8iy1d"] + +[resource] +albedo_color = Color(0.310617, 0.310617, 0.310617, 1) diff --git a/addons/enhanced_gridmap/meshlibrary/mat_start.tres b/addons/enhanced_gridmap/meshlibrary/mat_start.tres new file mode 100644 index 0000000..1a04362 --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/mat_start.tres @@ -0,0 +1,4 @@ +[gd_resource type="StandardMaterial3D" load_steps=0 format=3 uid="uid://itptgndobbp3"] + +[resource] +albedo_color = Color(0.236107, 0.423377, 0.339105, 1) diff --git a/addons/enhanced_gridmap/meshlibrary/tile_end.tres b/addons/enhanced_gridmap/meshlibrary/tile_end.tres new file mode 100644 index 0000000..80ddbcd --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/tile_end.tres @@ -0,0 +1,7 @@ +[gd_resource type="BoxMesh" load_steps=2 format=3 uid="uid://dcjdwbffgtutt"] + +[ext_resource type="Material" uid="uid://0fexqt03j3cb" path="res://addons/enhanced_gridmap/meshlibrary/mat_end.tres" id="1_dvekp"] + +[resource] +material = ExtResource("1_dvekp") +size = Vector3(1.9, 0.5, 1.9) diff --git a/addons/enhanced_gridmap/meshlibrary/tile_hover.tres b/addons/enhanced_gridmap/meshlibrary/tile_hover.tres new file mode 100644 index 0000000..99a9bb9 --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/tile_hover.tres @@ -0,0 +1,7 @@ +[gd_resource type="BoxMesh" load_steps=2 format=3 uid="uid://c1wa5rjlu0fuo"] + +[ext_resource type="Material" uid="uid://cn1pvqd4gf1u7" path="res://addons/enhanced_gridmap/meshlibrary/mat_hover.tres" id="1_5fptl"] + +[resource] +material = ExtResource("1_5fptl") +size = Vector3(1.9, 0.5, 1.9) diff --git a/addons/enhanced_gridmap/meshlibrary/tile_normal.tres b/addons/enhanced_gridmap/meshlibrary/tile_normal.tres new file mode 100644 index 0000000..9a384a9 --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/tile_normal.tres @@ -0,0 +1,7 @@ +[gd_resource type="BoxMesh" load_steps=2 format=3 uid="uid://bb3b32qso3yab"] + +[ext_resource type="Material" uid="uid://dqhmv78u8iy1d" path="res://addons/enhanced_gridmap/meshlibrary/mat_normal.tres" id="1_4kxai"] + +[resource] +material = ExtResource("1_4kxai") +size = Vector3(1.9, 0.5, 1.9) diff --git a/addons/enhanced_gridmap/meshlibrary/tile_start.tres b/addons/enhanced_gridmap/meshlibrary/tile_start.tres new file mode 100644 index 0000000..ed42e97 --- /dev/null +++ b/addons/enhanced_gridmap/meshlibrary/tile_start.tres @@ -0,0 +1,7 @@ +[gd_resource type="BoxMesh" load_steps=2 format=3 uid="uid://dy5p77cjb3geo"] + +[ext_resource type="Material" uid="uid://cn1pvqd4gf1u7" path="res://addons/enhanced_gridmap/meshlibrary/mat_hover.tres" id="1_nrdsg"] + +[resource] +material = ExtResource("1_nrdsg") +size = Vector3(1.9, 0.5, 1.9) diff --git a/assets/models/meshes/start.res b/assets/models/meshes/start.res index fb431a4..10be0b3 100644 Binary files a/assets/models/meshes/start.res and b/assets/models/meshes/start.res differ diff --git a/assets/models/meshes/tiles_armagedon_a4.res b/assets/models/meshes/tiles_armagedon_a4.res index 6345c37..1bd617e 100644 Binary files a/assets/models/meshes/tiles_armagedon_a4.res and b/assets/models/meshes/tiles_armagedon_a4.res differ diff --git a/assets/models/normal.tres b/assets/models/normal.tres index 9495f75..fa04288 100644 --- a/assets/models/normal.tres +++ b/assets/models/normal.tres @@ -3,5 +3,5 @@ [resource] resource_name = "tile_a1" cull_mode = 2 -albedo_color = Color(0.335217, 0.328683, 0.29189, 1) +albedo_color = Color(0.380392, 0.372549, 0.333333, 1) roughness = 0.5 diff --git a/project.godot b/project.godot index 72c4eaf..591d624 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="tekton-local" -run/main_scene="res://scenes/main_scene.tscn" +run/main_scene="uid://dxn87yj8qnfpp" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="res://icon.svg" @@ -24,8 +24,8 @@ BeehaveGlobalDebugger="*res://addons/beehave/debug/global_debugger.gd" window/size/viewport_width=1366 window/size/viewport_height=720 -window/size/window_width_override=1024 -window/size/window_height_override=576 +window/size/window_width_override=1920 +window/size/window_height_override=1080 window/stretch/mode="viewport" [editor_plugins] diff --git a/scenes/main.tscn b/scenes/main.tscn index 3726d66..7c7b7ec 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=26 format=3 uid="uid://dxn87yj8qnfpp"] -[ext_resource type="MeshLibrary" uid="uid://54tpx8cmksfc" path="res://addons/enhanced_gridmap/meshlibrary/default.tres" id="1_110wo"] +[ext_resource type="MeshLibrary" uid="uid://kcv6ans86ug7" path="res://addons/enhanced_gridmap/meshlibrary/default.tres" id="1_110wo"] [ext_resource type="Script" uid="uid://co1ads72by6na" path="res://scenes/main.gd" id="1_xcpe3"] [ext_resource type="Script" uid="uid://bja8ixryvthu0" path="res://addons/enhanced_gridmap/enhanced_gridmap.gd" id="2_hbe1v"] [ext_resource type="Environment" uid="uid://jbptgqvstei3" path="res://assets/main-environment.tres" id="4_ky38j"] @@ -33,29 +33,34 @@ texture = ExtResource("13_ahjgs") [node name="Main" type="Node3D"] script = ExtResource("1_xcpe3") enable_bots = false +turn_based_mode = false [node name="EnhancedGridMap" type="GridMap" parent="."] mesh_library = ExtResource("1_110wo") -cell_size = Vector3(1, 1, 1) +cell_size = Vector3(1, 0.2, 1) data = { -"cells": PackedInt32Array(0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 4, 0, 1, 5, 0, 2, 0, 0, 2, 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 2, 5, 0, 3, 0, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 5, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0, 4, 5, 0, 5, 0, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 6, 0, 0, 6, 1, 0, 6, 2, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 7, 0, 0, 7, 1, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 8, 0, 0, 8, 1, 0, 8, 2, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 9, 0, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 10, 0, 0, 10, 1, 0, 10, 2, 0, 10, 3, 0, 10, 4, 0, 10, 5, 0, 11, 0, 0, 11, 1, 0, 11, 2, 0, 11, 3, 0, 11, 4, 0, 11, 5, 0, 12, 0, 0, 12, 1, 0, 12, 2, 0, 12, 3, 0, 12, 4, 0, 12, 5, 0, 13, 0, 0, 13, 1, 0, 13, 2, 0, 13, 3, 0, 13, 4, 0, 13, 5, 0, 65537, 0, 9, 65537, 1, 10, 65537, 2, 9, 65537, 3, 8, 65537, 4, 10, 65537, 5, 9, 65538, 0, 7, 65538, 1, 8, 65538, 2, 7, 65538, 3, 8, 65538, 4, 7, 65538, 5, 9, 65539, 0, 8, 65539, 1, 10, 65539, 2, 10, 65539, 3, 8, 65539, 4, 10, 65539, 5, 8, 65540, 0, 7, 65540, 1, 8, 65540, 2, 10, 65540, 3, 7, 65540, 4, 8, 65540, 5, 9, 65541, 0, 7, 65541, 1, 8, 65541, 2, 7, 65541, 3, 9, 65541, 4, 8, 65541, 5, 10, 65542, 0, 8, 65542, 1, 7, 65542, 2, 9, 65542, 3, 10, 65542, 4, 8, 65542, 5, 9, 65543, 0, 10, 65543, 1, 8, 65543, 2, 7, 65543, 3, 10, 65543, 4, 8, 65543, 5, 10, 65544, 0, 7, 65544, 1, 10, 65544, 2, 7, 65544, 3, 9, 65544, 4, 8, 65544, 5, 7, 65545, 0, 7, 65545, 1, 8, 65545, 2, 7, 65545, 3, 7, 65545, 4, 7, 65545, 5, 9, 65546, 0, 7, 65546, 1, 7, 65546, 2, 8, 65546, 3, 8, 65546, 4, 10, 65546, 5, 8, 65547, 0, 7, 65547, 1, 10, 65547, 2, 7, 65547, 3, 9, 65547, 4, 10, 65547, 5, 10, 65548, 0, 8, 65548, 1, 9, 65548, 2, 10, 65548, 3, 7, 65548, 4, 8, 65548, 5, 7, 131072, 0, 2031616, 131072, 1, 2031616, 131072, 2, 2031616, 131072, 3, 2031616, 131072, 4, 2031616, 131072, 5, 2031616, 131073, 0, 2031616, 131073, 1, 2031616, 131073, 2, 2031616, 131073, 3, 2031616, 131073, 4, 2031616, 131073, 5, 2031616, 131074, 0, 2031616, 131074, 1, 2031616, 131074, 2, 2031616, 131074, 3, 2031616, 131074, 4, 2031616, 131074, 5, 2031616, 131075, 0, 2031616, 131075, 1, 2031616, 131075, 2, 2031616, 131075, 3, 2031616, 131075, 4, 2031616, 131075, 5, 2031616, 131076, 0, 2031616, 131076, 1, 2031616, 131076, 2, 2031616, 131076, 3, 2031616, 131076, 4, 2031616, 131076, 5, 2031616, 131077, 0, 2031616, 131077, 1, 2031616, 131077, 2, 2031616, 131077, 3, 2031616, 131077, 4, 2031616, 131077, 5, 2031616, 131078, 0, 2031616, 131078, 1, 2031616, 131078, 2, 2031616, 131078, 3, 2031616, 131078, 4, 2031616, 131078, 5, 2031616, 131079, 0, 2031616, 131079, 1, 2031616, 131079, 2, 2031616, 131079, 3, 2031616, 131079, 4, 2031616, 131079, 5, 2031616, 131080, 0, 2031616, 131080, 1, 2031616, 131080, 2, 2031616, 131080, 3, 2031616, 131080, 4, 2031616, 131080, 5, 2031616, 131081, 0, 2031616, 131081, 1, 2031616, 131081, 2, 2031616, 131081, 3, 2031616, 131081, 4, 2031616, 131081, 5, 2031616, 131082, 0, 2031616, 131082, 1, 2031616, 131082, 2, 2031616, 131082, 3, 2031616, 131082, 4, 2031616, 131082, 5, 2031616, 131083, 0, 2031616, 131083, 1, 2031616, 131083, 2, 2031616, 131083, 3, 2031616, 131083, 4, 2031616, 131083, 5, 2031616, 131084, 0, 2031616, 131084, 1, 2031616, 131084, 2, 2031616, 131084, 3, 2031616, 131084, 4, 2031616, 131084, 5, 2031616, 131085, 0, 2031616, 131085, 1, 2031616, 131085, 2, 2031616, 131085, 3, 2031616, 131085, 4, 2031616, 131085, 5, 2031616) +"cells": PackedInt32Array(65537, 0, 8, 65537, 1, 8, 65537, 2, 6, 65537, 3, 7, 65537, 4, 7, 65537, 5, 6, 65537, 6, 8, 65537, 7, 6, 65537, 8, 8, 65537, 9, 7, 65537, 10, 8, 65537, 11, 9, 65537, 12, 7, 65537, 13, 6, 65538, 0, 9, 65538, 1, 7, 65538, 2, 8, 65538, 3, 7, 65538, 4, 8, 65538, 5, 8, 65538, 6, 9, 65538, 7, 7, 65538, 8, 9, 65538, 9, 8, 65538, 10, 9, 65538, 11, 9, 65538, 12, 8, 65538, 13, 8, 65539, 0, 9, 65539, 1, 6, 65539, 2, 8, 65539, 3, 9, 65539, 4, 7, 65539, 5, 7, 65539, 6, 6, 65539, 7, 8, 65539, 8, 8, 65539, 9, 7, 65539, 10, 8, 65539, 11, 6, 65539, 12, 7, 65539, 13, 7, 65540, 0, 6, 65540, 1, 8, 65540, 2, 8, 65540, 3, 7, 65540, 4, 9, 65540, 5, 8, 65540, 6, 9, 65540, 7, 8, 65540, 8, 9, 65540, 9, 7, 65540, 10, 8, 65540, 11, 8, 65540, 12, 7, 65540, 13, 8, 65541, 0, 8, 65541, 1, 8, 65541, 2, 8, 65541, 3, 9, 65541, 4, 6, 65541, 5, 7, 65541, 6, 7, 65541, 7, 8, 65541, 8, 8, 65541, 9, 8, 65541, 10, 6, 65541, 11, 9, 65541, 12, 9, 65541, 13, 9, 65542, 0, 8, 65542, 1, 8, 65542, 2, 9, 65542, 3, 9, 65542, 4, 7, 65542, 5, 6, 65542, 6, 8, 65542, 7, 6, 65542, 8, 9, 65542, 9, 6, 65542, 10, 6, 65542, 11, 7, 65542, 12, 6, 65542, 13, 7, 65543, 0, 6, 65543, 1, 7, 65543, 2, 8, 65543, 3, 7, 65543, 4, 8, 65543, 5, 7, 65543, 6, 6, 65543, 7, 9, 65543, 8, 9, 65543, 9, 6, 65543, 10, 9, 65543, 11, 6, 65543, 12, 8, 65543, 13, 6, 65544, 0, 9, 65544, 1, 8, 65544, 2, 6, 65544, 3, 7, 65544, 4, 8, 65544, 5, 9, 65544, 6, 8, 65544, 7, 9, 65544, 8, 6, 65544, 9, 8, 65544, 10, 6, 65544, 11, 9, 65544, 12, 6, 65544, 13, 7, 65545, 0, 6, 65545, 1, 9, 65545, 2, 9, 65545, 3, 8, 65545, 4, 9, 65545, 5, 8, 65545, 6, 7, 65545, 7, 8, 65545, 8, 7, 65545, 9, 6, 65545, 10, 8, 65545, 11, 8, 65545, 12, 6, 65545, 13, 8, 65546, 0, 8, 65546, 1, 6, 65546, 2, 6, 65546, 3, 7, 65546, 4, 8, 65546, 5, 7, 65546, 6, 9, 65546, 7, 7, 65546, 8, 6, 65546, 9, 7, 65546, 10, 9, 65546, 11, 7, 65546, 12, 7, 65546, 13, 8, 65547, 0, 7, 65547, 1, 9, 65547, 2, 6, 65547, 3, 9, 65547, 4, 8, 65547, 5, 7, 65547, 6, 6, 65547, 7, 6, 65547, 8, 8, 65547, 9, 8, 65547, 10, 8, 65547, 11, 6, 65547, 12, 9, 65547, 13, 6, 65548, 0, 6, 65548, 1, 6, 65548, 2, 7, 65548, 3, 6, 65548, 4, 8, 65548, 5, 8, 65548, 6, 8, 65548, 7, 9, 65548, 8, 9, 65548, 9, 7, 65548, 10, 9, 65548, 11, 7, 65548, 12, 7, 65548, 13, 8, 131072, 0, 5, 131072, 1, 5, 131072, 2, 5, 131072, 3, 5, 131072, 4, 5, 131072, 5, 5, 131072, 6, 5, 131072, 7, 5, 131072, 8, 5, 131072, 9, 5, 131072, 10, 5, 131072, 11, 5, 131072, 12, 5, 131072, 13, 5, 131073, 0, 5, 131073, 1, 5, 131073, 2, 5, 131073, 3, 5, 131073, 4, 5, 131073, 5, 5, 131073, 6, 5, 131073, 7, 5, 131073, 8, 5, 131073, 9, 5, 131073, 10, 5, 131073, 11, 5, 131073, 12, 5, 131073, 13, 5, 131074, 0, 5, 131074, 1, 5, 131074, 2, 5, 131074, 3, 5, 131074, 4, 5, 131074, 5, 5, 131074, 6, 5, 131074, 7, 5, 131074, 8, 5, 131074, 9, 5, 131074, 10, 5, 131074, 11, 5, 131074, 12, 5, 131074, 13, 5, 131075, 0, 5, 131075, 1, 5, 131075, 2, 5, 131075, 3, 5, 131075, 4, 5, 131075, 5, 5, 131075, 6, 5, 131075, 7, 5, 131075, 8, 5, 131075, 9, 5, 131075, 10, 5, 131075, 11, 5, 131075, 12, 5, 131075, 13, 5, 131076, 0, 5, 131076, 1, 5, 131076, 2, 5, 131076, 3, 5, 131076, 4, 5, 131076, 5, 5, 131076, 6, 5, 131076, 7, 5, 131076, 8, 5, 131076, 9, 5, 131076, 10, 5, 131076, 11, 5, 131076, 12, 5, 131076, 13, 5, 131077, 0, 5, 131077, 1, 5, 131077, 2, 5, 131077, 3, 5, 131077, 4, 5, 131077, 5, 5, 131077, 6, 5, 131077, 7, 5, 131077, 8, 5, 131077, 9, 5, 131077, 10, 5, 131077, 11, 5, 131077, 12, 5, 131077, 13, 5, 131078, 0, 5, 131078, 1, 5, 131078, 2, 5, 131078, 3, 5, 131078, 4, 5, 131078, 5, 5, 131078, 6, 5, 131078, 7, 5, 131078, 8, 5, 131078, 9, 5, 131078, 10, 5, 131078, 11, 5, 131078, 12, 5, 131078, 13, 5, 131079, 0, 5, 131079, 1, 5, 131079, 2, 5, 131079, 3, 5, 131079, 4, 5, 131079, 5, 5, 131079, 6, 5, 131079, 7, 5, 131079, 8, 5, 131079, 9, 5, 131079, 10, 5, 131079, 11, 5, 131079, 12, 5, 131079, 13, 5, 131080, 0, 5, 131080, 1, 5, 131080, 2, 5, 131080, 3, 5, 131080, 4, 5, 131080, 5, 5, 131080, 6, 5, 131080, 7, 5, 131080, 8, 5, 131080, 9, 5, 131080, 10, 5, 131080, 11, 5, 131080, 12, 5, 131080, 13, 5, 131081, 0, 5, 131081, 1, 5, 131081, 2, 5, 131081, 3, 5, 131081, 4, 5, 131081, 5, 5, 131081, 6, 5, 131081, 7, 5, 131081, 8, 5, 131081, 9, 5, 131081, 10, 5, 131081, 11, 5, 131081, 12, 5, 131081, 13, 5, 131082, 0, 5, 131082, 1, 5, 131082, 2, 5, 131082, 3, 5, 131082, 4, 5, 131082, 5, 5, 131082, 6, 5, 131082, 7, 5, 131082, 8, 5, 131082, 9, 5, 131082, 10, 5, 131082, 11, 5, 131082, 12, 5, 131082, 13, 5, 131083, 0, 5, 131083, 1, 5, 131083, 2, 5, 131083, 3, 5, 131083, 4, 5, 131083, 5, 5, 131083, 6, 5, 131083, 7, 5, 131083, 8, 5, 131083, 9, 5, 131083, 10, 5, 131083, 11, 5, 131083, 12, 5, 131083, 13, 5, 131084, 0, 5, 131084, 1, 5, 131084, 2, 5, 131084, 3, 5, 131084, 4, 5, 131084, 5, 5, 131084, 6, 5, 131084, 7, 5, 131084, 8, 5, 131084, 9, 5, 131084, 10, 5, 131084, 11, 5, 131084, 12, 5, 131084, 13, 5, 131085, 0, 5, 131085, 1, 5, 131085, 2, 5, 131085, 3, 5, 131085, 4, 5, 131085, 5, 5, 131085, 6, 5, 131085, 7, 5, 131085, 8, 5, 131085, 9, 5, 131085, 10, 5, 131085, 11, 5, 131085, 12, 5, 131085, 13, 5, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 4, 0, 1, 5, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 1, 9, 0, 1, 10, 0, 1, 11, 0, 1, 12, 0, 1, 13, 0, 2, 0, 0, 2, 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 2, 10, 0, 2, 11, 0, 2, 12, 0, 2, 13, 0, 3, 0, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 5, 0, 3, 6, 0, 3, 7, 0, 3, 8, 0, 3, 9, 0, 3, 10, 0, 3, 11, 0, 3, 12, 0, 3, 13, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 4, 10, 0, 4, 11, 0, 4, 12, 0, 4, 13, 0, 5, 0, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 5, 10, 0, 5, 11, 0, 5, 12, 0, 5, 13, 0, 6, 0, 0, 6, 1, 0, 6, 2, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 6, 10, 0, 6, 11, 0, 6, 12, 0, 6, 13, 0, 7, 0, 0, 7, 1, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 7, 10, 0, 7, 11, 0, 7, 12, 0, 7, 13, 0, 8, 0, 0, 8, 1, 0, 8, 2, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 8, 10, 0, 8, 11, 0, 8, 12, 0, 8, 13, 0, 9, 0, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0, 9, 10, 0, 9, 11, 0, 9, 12, 0, 9, 13, 0, 10, 0, 0, 10, 1, 0, 10, 2, 0, 10, 3, 0, 10, 4, 0, 10, 5, 0, 10, 6, 0, 10, 7, 0, 10, 8, 0, 10, 9, 0, 10, 10, 0, 10, 11, 0, 10, 12, 0, 10, 13, 0, 11, 0, 0, 11, 1, 0, 11, 2, 0, 11, 3, 0, 11, 4, 0, 11, 5, 0, 11, 6, 0, 11, 7, 0, 11, 8, 0, 11, 9, 0, 11, 10, 0, 11, 11, 0, 11, 12, 0, 11, 13, 0, 12, 0, 0, 12, 1, 0, 12, 2, 0, 12, 3, 0, 12, 4, 0, 12, 5, 0, 12, 6, 0, 12, 7, 0, 12, 8, 0, 12, 9, 0, 12, 10, 0, 12, 11, 0, 12, 12, 0, 12, 13, 0, 13, 0, 0, 13, 1, 0, 13, 2, 0, 13, 3, 0, 13, 4, 0, 13, 5, 0, 13, 6, 0, 13, 7, 0, 13, 8, 0, 13, 9, 0, 13, 10, 0, 13, 11, 0, 13, 12, 0, 13, 13, 0) } script = ExtResource("2_hbe1v") columns = 14 -rows = 6 +rows = 14 +floors = 2 obstacle_items = Array[int]([12]) metadata/_editor_floor_ = Vector3(0, 1, 0) [node name="Camera3D" type="Camera3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.422618, 0.906308, 0, -0.906308, 0.422618, 7, 19, 11.2354) +transform = Transform3D(1, 0, 0, 0, 0.422618, 0.906308, 0, -0.906308, 0.422618, 7, 22.925, 18.4489) environment = ExtResource("4_ky38j") +current = true fov = 35.5 [node name="Camera3D200" type="Camera3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 5, 30, 5) -visible = false +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 7, 15, 7) environment = ExtResource("4_ky38j") +projection = 1 +current = true fov = 35.5 +size = 23.0 [node name="Panel" type="Panel" parent="."] offset_left = 40.0