commit 0afe0c4cbd2bb61b11699dfb7ddb027c0d165341 Author: vaporvee Date: Mon Dec 5 19:12:17 2022 +0100 init diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/.vs/ProjectEvaluation/test 3d project.metadata.v5.1 b/.vs/ProjectEvaluation/test 3d project.metadata.v5.1 new file mode 100644 index 0000000..335dcda Binary files /dev/null and b/.vs/ProjectEvaluation/test 3d project.metadata.v5.1 differ diff --git a/.vs/ProjectEvaluation/test 3d project.projects.v5.1 b/.vs/ProjectEvaluation/test 3d project.projects.v5.1 new file mode 100644 index 0000000..a930a30 Binary files /dev/null and b/.vs/ProjectEvaluation/test 3d project.projects.v5.1 differ diff --git a/.vs/TEST 3D PROJECT/DesignTimeBuild/.dtbcache.v2 b/.vs/TEST 3D PROJECT/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000..3eb2e09 Binary files /dev/null and b/.vs/TEST 3D PROJECT/DesignTimeBuild/.dtbcache.v2 differ diff --git a/.vs/TEST 3D PROJECT/FileContentIndex/71a3844d-5e3d-4056-a104-b0e598ad1703.vsidx b/.vs/TEST 3D PROJECT/FileContentIndex/71a3844d-5e3d-4056-a104-b0e598ad1703.vsidx new file mode 100644 index 0000000..c4dd593 Binary files /dev/null and b/.vs/TEST 3D PROJECT/FileContentIndex/71a3844d-5e3d-4056-a104-b0e598ad1703.vsidx differ diff --git a/.vs/TEST 3D PROJECT/FileContentIndex/809e3100-513d-4c93-b7b2-c9a17716cd1e.vsidx b/.vs/TEST 3D PROJECT/FileContentIndex/809e3100-513d-4c93-b7b2-c9a17716cd1e.vsidx new file mode 100644 index 0000000..59d69b3 Binary files /dev/null and b/.vs/TEST 3D PROJECT/FileContentIndex/809e3100-513d-4c93-b7b2-c9a17716cd1e.vsidx differ diff --git a/.vs/TEST 3D PROJECT/FileContentIndex/f8eb260c-b5be-467e-830d-de61f1362b22.vsidx b/.vs/TEST 3D PROJECT/FileContentIndex/f8eb260c-b5be-467e-830d-de61f1362b22.vsidx new file mode 100644 index 0000000..e4f462d Binary files /dev/null and b/.vs/TEST 3D PROJECT/FileContentIndex/f8eb260c-b5be-467e-830d-de61f1362b22.vsidx differ diff --git a/.vs/TEST 3D PROJECT/FileContentIndex/read.lock b/.vs/TEST 3D PROJECT/FileContentIndex/read.lock new file mode 100644 index 0000000..e69de29 diff --git a/.vs/TEST 3D PROJECT/v17/.futdcache.v2 b/.vs/TEST 3D PROJECT/v17/.futdcache.v2 new file mode 100644 index 0000000..59b185a Binary files /dev/null and b/.vs/TEST 3D PROJECT/v17/.futdcache.v2 differ diff --git a/.vs/TEST 3D PROJECT/v17/.suo b/.vs/TEST 3D PROJECT/v17/.suo new file mode 100644 index 0000000..34cdf04 Binary files /dev/null and b/.vs/TEST 3D PROJECT/v17/.suo differ diff --git a/icon.svg b/icon.svg new file mode 100644 index 0000000..adc26df --- /dev/null +++ b/icon.svg @@ -0,0 +1 @@ + diff --git a/icon.svg.import b/icon.svg.import new file mode 100644 index 0000000..57bc4ab --- /dev/null +++ b/icon.svg.import @@ -0,0 +1,39 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://defv3b6muei8w" +path.s3tc="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex" +path.etc2="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex", "res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +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 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/project.godot b/project.godot new file mode 100644 index 0000000..9413830 --- /dev/null +++ b/project.godot @@ -0,0 +1,75 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="test 3d project" +run/main_scene="res://scenes/main.tscn" +config/features=PackedStringArray("4.0", "C#", "Forward Plus") +boot_splash/show_image=false +config/icon="res://icon.svg" + +[autoload] + +Essential="*res://src/essential.cs" + +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + +[dotnet] + +project/assembly_name="test 3d project" + +[input] + +move_left={ +"deadzone": 0.5, +"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":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +move_right={ +"deadzone": 0.5, +"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":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +move_forward={ +"deadzone": 0.5, +"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":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +move_backward={ +"deadzone": 0.5, +"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":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +move_jump={ +"deadzone": 0.5, +"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":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +fullscreen={ +"deadzone": 0.5, +"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":4194342,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":true,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +uncapture_mouse={ +"deadzone": 0.5, +"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":4194305,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, 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":4194327,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} + +[rendering] + +anti_aliasing/quality/msaa_3d=2 +anti_aliasing/quality/screen_space_aa=1 diff --git a/scenes/main.tscn b/scenes/main.tscn new file mode 100644 index 0000000..2991950 --- /dev/null +++ b/scenes/main.tscn @@ -0,0 +1,73 @@ +[gd_scene load_steps=12 format=3 uid="uid://dqyb5g1lyurfj"] + +[ext_resource type="PackedScene" uid="uid://b2ncexsbkd2ca" path="res://scenes/player.tscn" id="1_1hi18"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_rubfc"] +ground_bottom_color = Color(0.87451, 0.952941, 1, 1) +ground_horizon_color = Color(0.631373, 0.654902, 0.713726, 1) + +[sub_resource type="Sky" id="Sky_0i1vm"] +sky_material = SubResource("ProceduralSkyMaterial_rubfc") + +[sub_resource type="Environment" id="Environment_3olxv"] +background_mode = 2 +background_energy_multiplier = 0.14 +sky = SubResource("Sky_0i1vm") +tonemap_mode = 1 +ssr_fade_out = 2.21914 + +[sub_resource type="CameraAttributesPhysical" id="CameraAttributesPhysical_0vf24"] + +[sub_resource type="BoxMesh" id="BoxMesh_hmqcx"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_bxkt8"] +size = Vector3(1, 1, 1.24943) + +[sub_resource type="PlaneMesh" id="PlaneMesh_p3q8d"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_pxtb0"] +size = Vector3(1.994, 0.048, 2) + +[sub_resource type="BoxMesh" id="BoxMesh_865hq"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_1tea2"] + +[node name="main" type="WorldEnvironment"] +environment = SubResource("Environment_3olxv") +camera_attributes = SubResource("CameraAttributesPhysical_0vf24") + +[node name="wall" type="StaticBody3D" parent="."] +transform = Transform3D(3.18901, 0, 0, 0, 1.018, 0, 0, 0, 7, 0, 0, -0.704191) + +[node name="MeshInstance3D" type="MeshInstance3D" parent="wall"] +transform = Transform3D(5, 0, 0, 0, 5, 0, 0, 0, 0.02, 0.0452084, 2.24667, 1.0926) +mesh = SubResource("BoxMesh_hmqcx") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="wall"] +transform = Transform3D(5, 0, 0, 0, 5, 0, 0, 0, 0.02, 0.04108, 2.19764, 1.09242) +shape = SubResource("BoxShape3D_bxkt8") + +[node name="ground" type="StaticBody3D" parent="."] +transform = Transform3D(7.781, 0, 0, 0, 1.018, 0, 0, 0, 7, 0, 0, 0) + +[node name="MeshInstance3D" type="MeshInstance3D" parent="ground"] +mesh = SubResource("PlaneMesh_p3q8d") +skeleton = NodePath("../..") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="ground"] +shape = SubResource("BoxShape3D_pxtb0") + +[node name="cube" type="StaticBody3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.90701, 0.504965, -3.73153) + +[node name="MeshInstance3D" type="MeshInstance3D" parent="cube"] +mesh = SubResource("BoxMesh_865hq") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="cube"] +shape = SubResource("BoxShape3D_1tea2") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.994703, -0.00611287, -0.102607, 0.101106, 0.238088, 0.965967, 0.0185247, -0.971224, 0.237445, 0, 0, 5.34355) +shadow_enabled = true + +[node name="player" parent="." instance=ExtResource("1_1hi18")] diff --git a/scenes/player.tscn b/scenes/player.tscn new file mode 100644 index 0000000..7a2cc2b --- /dev/null +++ b/scenes/player.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=5 format=3 uid="uid://b2ncexsbkd2ca"] + +[ext_resource type="Script" path="res://src/player.cs" id="1_sqkid"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_4c62m"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_bfc1o"] + +[sub_resource type="SeparationRayShape3D" id="SeparationRayShape3D_31c1r"] + +[node name="player" type="CharacterBody3D"] +script = ExtResource("1_sqkid") + +[node name="mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(0.999994, 0, 0.00349065, 0, 1.2, 0, -0.00349065, 0, 0.999994, 0, 1.2, 0) +mesh = SubResource("CapsuleMesh_4c62m") +skeleton = NodePath("") + +[node name="collision" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1.2, 0, 0, 0, 1, 0, 1.2, 0) +shape = SubResource("CapsuleShape3D_bfc1o") + +[node name="raycast" type="RayCast3D" parent="."] +transform = Transform3D(0.999965, 0.00425433, -0.00718195, -0.00722324, 0.00977106, -0.999926, -0.00418384, 0.999943, 0.00980145, 0.0215459, 1.13283, -1.47514) +target_position = Vector3(0, 1, 0) + +[node name="camera_center" type="Marker3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0, 1.2, 0) + +[node name="spring_arm" type="SpringArm3D" parent="camera_center"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, -5.96046e-08, 1, 0, 0, -0.5) +shape = SubResource("SeparationRayShape3D_31c1r") +spring_length = 6.0 + +[node name="camera" type="Camera3D" parent="camera_center/spring_arm"] +transform = Transform3D(1, 1.54914e-09, -6.87955e-10, -1.62981e-09, 0.990268, -0.139173, 4.65661e-10, 0.139173, 0.990269, 0, 0.0182246, 6.09616) +current = true diff --git a/src/essential.cs b/src/essential.cs new file mode 100644 index 0000000..7b96d93 --- /dev/null +++ b/src/essential.cs @@ -0,0 +1,19 @@ +using Godot; +using System; + +public partial class essential : Node +{ + public override void _Ready() + { + } + + public override void _Process(double delta) + { + if (Input.IsActionJustPressed("fullscreen")) + { + if (DisplayServer.WindowGetMode() == DisplayServer.WindowMode.Fullscreen) + DisplayServer.WindowSetMode(DisplayServer.WindowMode.Windowed); + else DisplayServer.WindowSetMode(DisplayServer.WindowMode.Fullscreen); + } + } +} diff --git a/src/player.cs b/src/player.cs new file mode 100644 index 0000000..c6a268c --- /dev/null +++ b/src/player.cs @@ -0,0 +1,80 @@ +using Godot; +using System; +using System.Diagnostics; + +public partial class player : CharacterBody3D +{ + public const float Speed = 5.0f; + public const float JumpVelocity = 4.5f; + public float gravity = ProjectSettings.GetSetting("physics/3d/default_gravity").AsSingle(); + [Export (PropertyHint.Range, "0.1,1.0")] float mouseSensitivity = 0.3f; + [Export (PropertyHint.Range, "-90,0,1")] float minCamPitch = -90f; + [Export (PropertyHint.Range, "0,90,1")] float maxCamPitch = 90f; + public Marker3D cameraCenter; + public Camera3D camera; + public Vector3 camPosition; + public Vector3 playerResetPosition; + public override void _Ready() + { + cameraCenter = GetNode("camera_center"); + camera = GetNode("camera_center/spring_arm/camera"); + mouseSensitivity = mouseSensitivity * 0.005f; + Input.MouseMode = Input.MouseModeEnum.Captured; + } + public override void _Process(double delta) + { + if (Input.IsActionJustPressed("uncapture_mouse")) Input.MouseMode = Input.MouseModeEnum.Visible; + if (Input.IsMouseButtonPressed(MouseButton.Left)) Input.MouseMode = Input.MouseModeEnum.Captured;//has to be disabled when the game has a pause menu + if (Input.IsActionJustPressed("move_forward")) + { + playerResetPosition = Rotation; + camPosition = cameraCenter.Rotation; + playerResetPosition.y = camPosition.y; + Rotation = playerResetPosition / 2; + Vector3 cameraResetPosition = cameraCenter.Rotation; + cameraCenter.Rotation = new Vector3 (cameraResetPosition.x,0,0); //resetpositions doesnt work because of fucking radians delete them fucking idiots + } + } + public override void _PhysicsProcess(double delta) + { + Vector3 velocity = Velocity; + + if (!IsOnFloor()) + velocity.y -= gravity * (float)delta; + + if (Input.IsActionJustPressed("move_jump") && IsOnFloor()) + velocity.y = JumpVelocity; + + Vector2 inputDir = Input.GetVector("move_left", "move_right", "move_forward", "move_backward"); + Vector3 direction = (Transform.basis * new Vector3(inputDir.x, 0, inputDir.y)).Normalized(); + if (direction != Vector3.Zero) + { + velocity.x = direction.x * Speed; + velocity.z = direction.z * Speed; + } + else + { + velocity.x = Mathf.MoveToward(Velocity.x, 0, Speed); + velocity.z = Mathf.MoveToward(Velocity.z, 0, Speed); + } + + Velocity = velocity; + MoveAndSlide(); + } + public override void _Input(InputEvent @event) + { + if(@event is InputEventMouseMotion motionEvent && Input.MouseMode == Input.MouseModeEnum.Captured) + { + Vector3 generalRot = Rotation; + if (Input.IsActionPressed("move_forward")) generalRot.y -= motionEvent.Relative.x * mouseSensitivity; + Rotation = generalRot; + + generalRot = cameraCenter.Rotation; + if (!Input.IsActionPressed("move_forward")) generalRot.y -= motionEvent.Relative.x * mouseSensitivity; + generalRot.x -= motionEvent.Relative.y * mouseSensitivity; + generalRot.x = Mathf.Clamp(generalRot.x, minCamPitch, maxCamPitch); + cameraCenter.Rotation = generalRot; + generalRot = cameraCenter.Rotation; + } + } +} diff --git a/test 3d project.csproj b/test 3d project.csproj new file mode 100644 index 0000000..9e1f738 --- /dev/null +++ b/test 3d project.csproj @@ -0,0 +1,7 @@ + + + net6.0 + true + test3dproject + + \ No newline at end of file diff --git a/test 3d project.sln b/test 3d project.sln new file mode 100644 index 0000000..d45795e --- /dev/null +++ b/test 3d project.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test 3d project", "test 3d project.csproj", "{C0DA1341-EAB0-4F7B-BEA9-60129C156BFE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + ExportDebug|Any CPU = ExportDebug|Any CPU + ExportRelease|Any CPU = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C0DA1341-EAB0-4F7B-BEA9-60129C156BFE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0DA1341-EAB0-4F7B-BEA9-60129C156BFE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0DA1341-EAB0-4F7B-BEA9-60129C156BFE}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {C0DA1341-EAB0-4F7B-BEA9-60129C156BFE}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {C0DA1341-EAB0-4F7B-BEA9-60129C156BFE}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {C0DA1341-EAB0-4F7B-BEA9-60129C156BFE}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + EndGlobalSection +EndGlobal