From 0cca809fc2db3447106f76e953a66d612b977ed1 Mon Sep 17 00:00:00 2001 From: Dane Johnson Date: Fri, 27 Oct 2023 17:12:47 -0500 Subject: [PATCH] init commit --- godot/.gitattributes | 2 + godot/.gitignore | 2 + godot/icon.svg | 1 + godot/icon.svg.import | 37 +++++++++ godot/project.godot | 16 ++++ godot/scenes/demo.tscn | 119 ++++++++++++++++++++++++++++ godot/scripts/classes/Damageable.gd | 7 ++ godot/scripts/classes/Entity.gd | 6 ++ 8 files changed, 190 insertions(+) create mode 100644 godot/.gitattributes create mode 100644 godot/.gitignore create mode 100644 godot/icon.svg create mode 100644 godot/icon.svg.import create mode 100644 godot/project.godot create mode 100644 godot/scenes/demo.tscn create mode 100644 godot/scripts/classes/Damageable.gd create mode 100644 godot/scripts/classes/Entity.gd diff --git a/godot/.gitattributes b/godot/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/godot/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/godot/.gitignore b/godot/.gitignore new file mode 100644 index 0000000..4709183 --- /dev/null +++ b/godot/.gitignore @@ -0,0 +1,2 @@ +# Godot 4+ specific ignores +.godot/ diff --git a/godot/icon.svg b/godot/icon.svg new file mode 100644 index 0000000..b370ceb --- /dev/null +++ b/godot/icon.svg @@ -0,0 +1 @@ + diff --git a/godot/icon.svg.import b/godot/icon.svg.import new file mode 100644 index 0000000..475636c --- /dev/null +++ b/godot/icon.svg.import @@ -0,0 +1,37 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://chc2lw1m3nnlx" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.svg" +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +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=1 +svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/godot/project.godot b/godot/project.godot new file mode 100644 index 0000000..015b5c4 --- /dev/null +++ b/godot/project.godot @@ -0,0 +1,16 @@ +; 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="Mini Baldur" +run/main_scene="res://scenes/demo.tscn" +config/features=PackedStringArray("4.1", "Forward Plus") +config/icon="res://icon.svg" diff --git a/godot/scenes/demo.tscn b/godot/scenes/demo.tscn new file mode 100644 index 0000000..8abf155 --- /dev/null +++ b/godot/scenes/demo.tscn @@ -0,0 +1,119 @@ +[gd_scene load_steps=13 format=3 uid="uid://0ujrk3bs5pcc"] + +[ext_resource type="Script" path="res://scripts/classes/Entity.gd" id="1_nehl4"] +[ext_resource type="Script" path="res://scripts/classes/Damageable.gd" id="2_o64ef"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jkv1c"] +albedo_color = Color(0.286275, 0.368627, 0.301961, 1) + +[sub_resource type="GDScript" id="GDScript_uktqq"] +script/source = "extends CharacterBody3D + + +const SPEED = 5.0 +const JUMP_VELOCITY = 4.5 + +# Get the gravity from the project settings to be synced with RigidBody nodes. +var gravity = ProjectSettings.get_setting(\"physics/3d/default_gravity\") + + +func _physics_process(delta): + # Add the gravity. + if not is_on_floor(): + velocity.y -= gravity * delta + + # Handle Jump. + if Input.is_action_just_pressed(\"ui_accept\") and is_on_floor(): + velocity.y = JUMP_VELOCITY + + # Get the input direction and handle the movement/deceleration. + # As good practice, you should replace UI actions with custom gameplay actions. + var input_dir = Input.get_vector(\"ui_left\", \"ui_right\", \"ui_up\", \"ui_down\") + var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized() + if direction: + velocity.x = direction.x * SPEED + velocity.z = direction.z * SPEED + else: + velocity.x = move_toward(velocity.x, 0, SPEED) + velocity.z = move_toward(velocity.z, 0, SPEED) + + move_and_slide() +" + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_ta1yq"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_mmryr"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_g3e0a"] +albedo_color = Color(0.0784314, 0.231373, 0, 1) + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_uovkn"] +material = SubResource("StandardMaterial3D_g3e0a") +radius = 0.25 +height = 1.0 + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_36u56"] +radius = 0.25 +height = 1.0 + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_4ef43"] +sky_top_color = Color(0.180392, 0.419608, 0.862745, 1) + +[sub_resource type="Sky" id="Sky_yl2my"] +sky_material = SubResource("ProceduralSkyMaterial_4ef43") + +[sub_resource type="Environment" id="Environment_uirqf"] +background_mode = 2 +sky = SubResource("Sky_yl2my") + +[node name="Demo" type="Node3D"] + +[node name="Ground" type="CSGBox3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0) +use_collision = true +size = Vector3(30, 0.2, 30) +material = SubResource("StandardMaterial3D_jkv1c") +metadata/_edit_lock_ = true + +[node name="Barbarian" type="Node" parent="."] +script = ExtResource("1_nehl4") + +[node name="CharacterBody3D" type="CharacterBody3D" parent="Barbarian"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +collision_layer = 2 +collision_mask = 3 +script = SubResource("GDScript_uktqq") + +[node name="MeshInstance3D" type="MeshInstance3D" parent="Barbarian/CharacterBody3D"] +mesh = SubResource("CapsuleMesh_ta1yq") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Barbarian/CharacterBody3D"] +shape = SubResource("CapsuleShape3D_mmryr") + +[node name="Goblin" type="Node" parent="."] +script = ExtResource("1_nehl4") + +[node name="Damageable" type="Node" parent="Goblin"] +script = ExtResource("2_o64ef") +max_health = 20 + +[node name="CharacterBody3D" type="CharacterBody3D" parent="Goblin"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.5268, 0.5, -10.5206) +collision_layer = 2 +collision_mask = 3 + +[node name="MeshInstance3D" type="MeshInstance3D" parent="Goblin/CharacterBody3D"] +mesh = SubResource("CapsuleMesh_uovkn") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Goblin/CharacterBody3D"] +shape = SubResource("CapsuleShape3D_36u56") + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(0.87183, -0.21461, 0.440289, 9.68006e-09, 0.898901, 0.438152, -0.489809, -0.381994, 0.783689, 25.9182, 23.9543, 43.3166) +fov = 18.4 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_uirqf") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.885969, -0.348982, 0.305403, 0, 0.658558, 0.75253, -0.463745, -0.666718, 0.583462, 0, 13.0302, 0) diff --git a/godot/scripts/classes/Damageable.gd b/godot/scripts/classes/Damageable.gd new file mode 100644 index 0000000..1299bcb --- /dev/null +++ b/godot/scripts/classes/Damageable.gd @@ -0,0 +1,7 @@ +extends Node + +class_name Damageable + +@export var max_health: int +@onready var health = max_health + diff --git a/godot/scripts/classes/Entity.gd b/godot/scripts/classes/Entity.gd new file mode 100644 index 0000000..44ab71e --- /dev/null +++ b/godot/scripts/classes/Entity.gd @@ -0,0 +1,6 @@ +extends Node + +class_name Entity + +func is_damageable(): + has_node("Damageable")