diff --git a/AllaroundTheWorld.tscn b/AllaroundTheWorld.tscn index 83352b6..3cd894d 100644 --- a/AllaroundTheWorld.tscn +++ b/AllaroundTheWorld.tscn @@ -1,3 +1,3 @@ -[gd_scene format=3 uid="uid://dc7d5v6quedhk"] +[gd_scene load_steps=0 format=3 uid="uid://bmwgqig47nlbb"] [node name="Node2D" type="Node2D"] diff --git a/Florian/AllaroundTheWorld.tscn b/Florian/AllaroundTheWorld.tscn new file mode 100644 index 0000000..cb5dcb7 --- /dev/null +++ b/Florian/AllaroundTheWorld.tscn @@ -0,0 +1,3 @@ +[gd_scene format=3 uid="uid://dkvkfna14kln7"] + +[node name="Node2D" type="Node2D"] diff --git a/Florian/PlayerRigidbody.tscn b/Florian/PlayerRigidbody.tscn new file mode 100644 index 0000000..12c2d63 --- /dev/null +++ b/Florian/PlayerRigidbody.tscn @@ -0,0 +1,87 @@ +[gd_scene load_steps=6 format=3 uid="uid://crrco762ow56c"] + +[ext_resource type="Script" uid="uid://c35h32dniya44" path="res://Florian/playerRigidbody.gd" id="1_7u3v3"] +[ext_resource type="PackedScene" uid="uid://4hac7s0wvoye" path="res://Florian/cool_camera.tscn" id="2_leq5j"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_jbuyh"] +friction = 0.0 + +[sub_resource type="CylinderShape3D" id="CylinderShape3D_qqgab"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_n7bvk"] + +[node name="PlayerRigidbody" type="RigidBody3D"] +disable_mode = 2 +axis_lock_angular_x = true +axis_lock_angular_y = true +axis_lock_angular_z = true +mass = 20.0 +physics_material_override = SubResource("PhysicsMaterial_jbuyh") +custom_integrator = true +continuous_cd = true +script = ExtResource("1_7u3v3") + +[node name="BoundingBox" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0509262, 0) +shape = SubResource("CylinderShape3D_qqgab") + +[node name="RotationHelper" type="Node3D" parent="BoundingBox"] + +[node name="Interact" type="Node3D" parent="BoundingBox/RotationHelper"] + +[node name="InteractRay" type="RayCast3D" parent="BoundingBox/RotationHelper/Interact"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +target_position = Vector3(0, 0, -4) +collide_with_areas = true +collide_with_bodies = false +debug_shape_thickness = 1 + +[node name="CoolCamera" parent="BoundingBox/RotationHelper" instance=ExtResource("2_leq5j")] + +[node name="ThirdPerson" type="Node3D" parent="BoundingBox"] +transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 1.94907, 3) + +[node name="FirstPerson" type="Node3D" parent="BoundingBox"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) + +[node name="FloorChecks" type="Node3D" parent="BoundingBox"] + +[node name="Diagonals" type="Node3D" parent="BoundingBox/FloorChecks"] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0, 0, 0) + +[node name="FloorRay" type="RayCast3D" parent="BoundingBox/FloorChecks/Diagonals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.45) +target_position = Vector3(0, -1.1, 0) + +[node name="FloorRay2" type="RayCast3D" parent="BoundingBox/FloorChecks/Diagonals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.45) +target_position = Vector3(0, -1.1, 0) + +[node name="FloorRay4" type="RayCast3D" parent="BoundingBox/FloorChecks/Diagonals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.45, 0, 0) +target_position = Vector3(0, -1.1, 0) + +[node name="FloorRay3" type="RayCast3D" parent="BoundingBox/FloorChecks/Diagonals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.45, 0, 0) +target_position = Vector3(0, -1.1, 0) + +[node name="Cardinals" type="Node3D" parent="BoundingBox/FloorChecks"] + +[node name="FloorRay" type="RayCast3D" parent="BoundingBox/FloorChecks/Cardinals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.45) +target_position = Vector3(0, -1.1, 0) + +[node name="FloorRay2" type="RayCast3D" parent="BoundingBox/FloorChecks/Cardinals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.45) +target_position = Vector3(0, -1.1, 0) + +[node name="FloorRay4" type="RayCast3D" parent="BoundingBox/FloorChecks/Cardinals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.45, 0, 0) +target_position = Vector3(0, -1.1, 0) + +[node name="FloorRay3" type="RayCast3D" parent="BoundingBox/FloorChecks/Cardinals"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.45, 0, 0) +target_position = Vector3(0, -1.1, 0) + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("CapsuleMesh_n7bvk") diff --git a/Florian/cat.jpg b/Florian/cat.jpg new file mode 100644 index 0000000..bda2316 Binary files /dev/null and b/Florian/cat.jpg differ diff --git a/Florian/cat.jpg.import b/Florian/cat.jpg.import new file mode 100644 index 0000000..9e3c7a0 --- /dev/null +++ b/Florian/cat.jpg.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b3y733ngio1nx" +path.s3tc="res://.godot/imported/cat.jpg-63f722852b826a4e9490fdc6ae6fc912.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://Florian/cat.jpg" +dest_files=["res://.godot/imported/cat.jpg-63f722852b826a4e9490fdc6ae6fc912.s3tc.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/Florian/cool_camera.gd b/Florian/cool_camera.gd new file mode 100644 index 0000000..c283d2e --- /dev/null +++ b/Florian/cool_camera.gd @@ -0,0 +1,14 @@ +extends Node3D +@onready var label: Label = $Control/Label + +func _input(event: InputEvent) -> void: + if event.is_action_pressed("take_picture"): + print("Taking Picture!!!") + var points_string = "" + var total_points = 0 + for takeable in PictureTakeablesArray.picture_takables: + print("Checking takeable") + if takeable.picture_taken(): + points_string += "%s %d\n" % [str(takeable.point_id), int(takeable.points_worth)] + total_points += takeable.points_worth + label.text = "%s\nTotal points: %d" % [points_string, total_points] diff --git a/Florian/cool_camera.gd.uid b/Florian/cool_camera.gd.uid new file mode 100644 index 0000000..c76f118 --- /dev/null +++ b/Florian/cool_camera.gd.uid @@ -0,0 +1 @@ +uid://dff1mtnypemb4 diff --git a/Florian/cool_camera.tscn b/Florian/cool_camera.tscn new file mode 100644 index 0000000..9269a8b --- /dev/null +++ b/Florian/cool_camera.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=2 format=3 uid="uid://4hac7s0wvoye"] + +[ext_resource type="Script" uid="uid://dff1mtnypemb4" path="res://Florian/cool_camera.gd" id="1_87r7f"] + +[node name="CoolCamera" type="Node3D"] +script = ExtResource("1_87r7f") + +[node name="Camera3D" type="Camera3D" parent="."] + +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="Label" type="Label" parent="Control"] +layout_mode = 0 +offset_right = 559.0 +offset_bottom = 250.0 +text = "Points worth: 0" diff --git a/Florian/node_3d.tscn b/Florian/node_3d.tscn new file mode 100644 index 0000000..8d45389 --- /dev/null +++ b/Florian/node_3d.tscn @@ -0,0 +1,74 @@ +[gd_scene load_steps=9 format=3 uid="uid://d1rip77vefx3i"] + +[ext_resource type="Texture2D" uid="uid://b3y733ngio1nx" path="res://Florian/cat.jpg" id="1_a202f"] +[ext_resource type="Script" uid="uid://bc47hy67mfo7v" path="res://Florian/sprite_3d.gd" id="2_a0tk4"] +[ext_resource type="PackedScene" uid="uid://crrco762ow56c" path="res://Florian/PlayerRigidbody.tscn" id="2_noarx"] +[ext_resource type="PackedScene" uid="uid://c8gnb0kut2n5h" path="res://Florian/point_thing.tscn" id="4_ylvgl"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_eral8"] +albedo_color = Color(0.243542, 0.196121, 0.0639371, 1) + +[sub_resource type="PlaneMesh" id="PlaneMesh_4xowi"] +material = SubResource("StandardMaterial3D_eral8") +size = Vector2(500, 500) + +[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_a202f"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_a0tk4"] +friction = 0.0 + +[node name="Node3D" type="Node3D"] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("PlaneMesh_4xowi") + +[node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"] +shape = SubResource("WorldBoundaryShape3D_a202f") + +[node name="Sprite3D" type="Sprite3D" parent="MeshInstance3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) +texture = ExtResource("1_a202f") +script = ExtResource("2_a0tk4") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.829857, 0.557977, 0, -0.557977, 0.829857, 0, 0, 0) + +[node name="PlayerRigidbody" parent="." instance=ExtResource("2_noarx")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.187409, 7, 11.0325) +physics_material_override = SubResource("PhysicsMaterial_a0tk4") + +[node name="CSG" type="Node3D" parent="."] + +[node name="House1" type="Node3D" parent="CSG"] + +[node name="CSGCombiner3D" type="CSGCombiner3D" parent="CSG/House1"] +use_collision = true + +[node name="CSGBox3D" type="CSGBox3D" parent="CSG/House1/CSGCombiner3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 2.5, -13) +size = Vector3(22, 6, 1) + +[node name="CSGBox3D4" type="CSGBox3D" parent="CSG/House1/CSGCombiner3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 2.5, -36) +size = Vector3(22, 6, 1) + +[node name="CSGBox3D6" type="CSGBox3D" parent="CSG/House1/CSGCombiner3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.5, 5, -24.5) +size = Vector3(22, 1, 24) + +[node name="CSGBox3D5" type="CSGBox3D" parent="CSG/House1/CSGCombiner3D"] +transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 12.5, -4.25, -7.57661) +size = Vector3(4, 37, 1) + +[node name="CSGBox3D2" type="CSGBox3D" parent="CSG/House1/CSGCombiner3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 2.5, -24.5) +size = Vector3(1, 6, 24) + +[node name="CSGBox3D3" type="CSGBox3D" parent="CSG/House1/CSGCombiner3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -11, 2.5, -24.5) +size = Vector3(1, 6, 24) + +[node name="PointThing" parent="." instance=ExtResource("4_ylvgl")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 1, 5) diff --git a/Florian/playerRigidbody.gd b/Florian/playerRigidbody.gd new file mode 100644 index 0000000..0b57477 --- /dev/null +++ b/Florian/playerRigidbody.gd @@ -0,0 +1,150 @@ +class_name PlayerRB +extends RigidBody3D + +@onready var camera = $BoundingBox/RotationHelper/CoolCamera +@onready var rotation_helper = $BoundingBox/RotationHelper +@onready var bounding_box = $BoundingBox + +signal take_picture + +var max_speed = 10 +var acceleration = max_speed * 10 +var max_air_speed = 1 +var air_acceleration = max_speed * 20 + +var friction = 16 + +var jump_velocity = 5 + + +var currentSpeed = 0 +var vel : Vector3 +#var friction : Vector3 + +# Get the gravity from the project settings to be synced with RigidBody nodes. +var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") + +var MOUSE_SENSITIVITY = 0.001 + +func _ready(): + print("READY!") + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + pass + #Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + + +func _input(event): + if event is InputEventKey: + if event.keycode == KEY_ESCAPE && event.is_pressed(): + if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: + Input.mouse_mode = Input.MOUSE_MODE_VISIBLE + else: + Input.mouse_mode = Input.MOUSE_MODE_CAPTURED + + + if event is InputEventMouseMotion: + + rotation_helper.rotate_x(-deg_to_rad(event.relative.y * MOUSE_SENSITIVITY * 50)) + #print(event.relative.x * MOUSE_SENSITIVITY * -1) + bounding_box.rotate_y(event.relative.x * MOUSE_SENSITIVITY * -1) + #rotation_helper.rotate_y(deg_to_rad(event.relative.x * MOUSE_SENSITIVITY * -1)) + #var camera_rot = rotation_helper.rotation_degrees + #camera_rot.x = clamp(camera_rot.x, -70, 70) + #rotation_helper.rotation_degrees = camera_rot + + if event is InputEventKey: + #print(event.as_text_keycode()) + if event.as_text_keycode() == "T": + camera.transform = $BoundingBox/ThirdPerson.transform + elif event.as_text_keycode() == "F": + camera.transform = $BoundingBox/FirstPerson.transform + + + +func _physics_process(delta): + # Add the gravity. + + # Handle Jump. + if Input.is_action_pressed("jump") and is_on_floor(): + linear_velocity.y = jump_velocity + + var fB = 0 - Input.get_action_strength("forward") + Input.get_action_strength("backward", 1) + var lR = 0 - Input.get_action_strength("left", 1) + Input.get_action_strength("right", 1) + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var input_dir : Vector3 = Vector3(lR, 0, fB).rotated(Vector3.UP, bounding_box.rotation.y) + + var wishDir = input_dir.normalized() + + currentSpeed = linear_velocity.dot(wishDir) + #print("Current speed: ", currentSpeed) + #print(currentSpeed) + + if not is_on_floor() or Input.is_action_pressed("jump"): + linear_velocity.y -= gravity * delta #speed in the air + var addSpeed = clamp(max_air_speed - currentSpeed, 0, air_acceleration * delta) + #print(addSpeed) + linear_velocity += wishDir * addSpeed + else: + applyFriction(delta) #speed on floor + var addSpeed = clamp(max_speed - currentSpeed, 0, acceleration * delta) + linear_velocity += wishDir * addSpeed + + + + #print(Vector3(linear_velocity.x, 0, linear_velocity.z).length()) + + +func applyFriction(delta): + + linear_velocity.x = lerp(linear_velocity.x, 0.0, delta * friction) + linear_velocity.z = lerp(linear_velocity.z, 0.0, delta * friction) + return vel + +@onready var floor_checks = $BoundingBox/FloorChecks + + +var slope_limit_degrees = 45.0 +var slope_limit_dot = cos(deg_to_rad(slope_limit_degrees)) + +func is_on_floor() -> bool: + for directions in floor_checks.get_children(): + for floor_ray in directions.get_children(): + if floor_ray.is_colliding(): + var normal = floor_ray.get_collision_normal() + #print(floor_ray.get_collider()) + if(normal.dot(Vector3.UP) >= slope_limit_dot): + return true + continue + return false + +const MAX_STANDABLE_ANGLE = deg_to_rad(45) +const GROUND_CHECK_DISTANCE = 0.1 + +#func _check_on_ground() -> void: + #var space_state = get_world_3d().direct_space_state + # + ## Raycast straight down from the player + #var from = global_transform.origin + #var to = from - Vector3.UP * (GROUND_CHECK_DISTANCE + 2)#get_shape_radius()) + # + #var result = space_state.intersect_ray( + #PhysicsRayQueryParameters3D( + # + #) + #) +# + #if result: + #ground_normal = result.normal + # + ## Check slope angle + #var slope_angle = acos(clamp(ground_normal.dot(Vector3.UP), -1.0, 1.0)) + #var slope_ok = slope_angle <= MAX_STANDABLE_ANGLE +# + ## Check vertical velocity (like TF2: can't be going upward much) + #var vertical_vel_ok = linear_velocity.y <= 0.1 +# + ## Final check + #is_on_ground = slope_ok and vertical_vel_ok + #else: + #is_on_ground = false diff --git a/Florian/playerRigidbody.gd.uid b/Florian/playerRigidbody.gd.uid new file mode 100644 index 0000000..22e7fe7 --- /dev/null +++ b/Florian/playerRigidbody.gd.uid @@ -0,0 +1 @@ +uid://c35h32dniya44 diff --git a/Florian/point_thing.gd b/Florian/point_thing.gd new file mode 100644 index 0000000..d99e64e --- /dev/null +++ b/Florian/point_thing.gd @@ -0,0 +1,12 @@ +class_name PointPicture +extends Node3D +@onready var on_screen: VisibleOnScreenNotifier3D = $VisibleOnScreenNotifier3D +@export var points_worth = 10 +@export var point_id = "Debug Object" + +func _ready() -> void: + PictureTakeablesArray._add_point_picture(self) + +func picture_taken() -> bool: + print(on_screen.is_on_screen()) + return on_screen.is_on_screen() diff --git a/Florian/point_thing.gd.uid b/Florian/point_thing.gd.uid new file mode 100644 index 0000000..cf282db --- /dev/null +++ b/Florian/point_thing.gd.uid @@ -0,0 +1 @@ +uid://cyw0eu5pqd3wm diff --git a/Florian/point_thing.tscn b/Florian/point_thing.tscn new file mode 100644 index 0000000..cbd4b66 --- /dev/null +++ b/Florian/point_thing.tscn @@ -0,0 +1,13 @@ +[gd_scene load_steps=3 format=3 uid="uid://c8gnb0kut2n5h"] + +[ext_resource type="Script" uid="uid://cyw0eu5pqd3wm" path="res://Florian/point_thing.gd" id="1_hr556"] + +[sub_resource type="BoxMesh" id="BoxMesh_hr556"] + +[node name="PointThing" type="Node3D"] +script = ExtResource("1_hr556") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("BoxMesh_hr556") + +[node name="VisibleOnScreenNotifier3D" type="VisibleOnScreenNotifier3D" parent="."] diff --git a/Florian/sprite_3d.gd b/Florian/sprite_3d.gd new file mode 100644 index 0000000..5f3422b --- /dev/null +++ b/Florian/sprite_3d.gd @@ -0,0 +1,4 @@ +extends Sprite3D + +func _physics_process(delta: float) -> void: + self.position.x += 0.1 diff --git a/Florian/sprite_3d.gd.uid b/Florian/sprite_3d.gd.uid new file mode 100644 index 0000000..6a6725a --- /dev/null +++ b/Florian/sprite_3d.gd.uid @@ -0,0 +1 @@ +uid://bc47hy67mfo7v diff --git a/picture_takeables_array.gd b/picture_takeables_array.gd new file mode 100644 index 0000000..845f56a --- /dev/null +++ b/picture_takeables_array.gd @@ -0,0 +1,8 @@ +extends Node + +var picture_takables : Array[PointPicture] = [] + +func _add_point_picture(point_picture: PointPicture): + print("Adding picture takeable") + picture_takables.append(point_picture) + print(len(picture_takables)) diff --git a/picture_takeables_array.gd.uid b/picture_takeables_array.gd.uid new file mode 100644 index 0000000..67a477e --- /dev/null +++ b/picture_takeables_array.gd.uid @@ -0,0 +1 @@ +uid://baxs3gpdthwf1 diff --git a/project.godot b/project.godot index 35a17ba..db2b010 100644 --- a/project.godot +++ b/project.godot @@ -11,5 +11,43 @@ config_version=5 [application] config/name="AllAroundTheWorld" +run/main_scene="uid://d1rip77vefx3i" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="res://icon.svg" + +[autoload] + +PictureTakeablesArray="*res://picture_takeables_array.gd" + +[input] + +forward={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +] +} +backward={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +] +} +left={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +] +} +right={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +] +} +jump={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +] +} +take_picture={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} diff --git a/vehicle_body_3d.tscn b/vehicle_body_3d.tscn deleted file mode 100644 index c3b8fc9..0000000 --- a/vehicle_body_3d.tscn +++ /dev/null @@ -1,7 +0,0 @@ -[gd_scene format=3 uid="uid://cb5cav8r8f47b"] - -[node name="VehicleBody3D" type="VehicleBody3D"] - -[node name="CSG" type="Node3D" parent="."] - -[node name="CSGBox3D" type="CSGBox3D" parent="CSG"]