first init
This commit is contained in:
4
.editorconfig
Normal file
4
.editorconfig
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
2
.gitattributes
vendored
Normal file
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
# Normalize EOL for all files that Git considers text files.
|
||||||
|
* text=auto eol=lf
|
||||||
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Godot 4+ specific ignores
|
||||||
|
.godot/
|
||||||
|
/android/
|
||||||
18
.vscode/launch.json
vendored
Normal file
18
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "GDScript: Launch Project",
|
||||||
|
"type": "godot",
|
||||||
|
"request": "launch",
|
||||||
|
"project": "${workspaceFolder}",
|
||||||
|
"debug_collisions": true,
|
||||||
|
"debug_paths": false,
|
||||||
|
"debug_navigation": false,
|
||||||
|
"additional_options": ""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Assets/Thruster Cube Collision.glb
Normal file
BIN
Assets/Thruster Cube Collision.glb
Normal file
Binary file not shown.
37
Assets/Thruster Cube Collision.glb.import
Normal file
37
Assets/Thruster Cube Collision.glb.import
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://crfjfbhjuderh"
|
||||||
|
path="res://.godot/imported/Thruster Cube Collision.glb-e95615f3a01fd673f0dafc758072d75c.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Thruster Cube Collision.glb"
|
||||||
|
dest_files=["res://.godot/imported/Thruster Cube Collision.glb-e95615f3a01fd673f0dafc758072d75c.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type="CollisionShape3D"
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
gltf/naming_version=1
|
||||||
|
gltf/embedded_image_handling=0
|
||||||
12
Assets/Thruster Cube Collision.mtl
Normal file
12
Assets/Thruster Cube Collision.mtl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Blender 4.5.1 LTS MTL File: 'Thruster Cube Collision.blend'
|
||||||
|
# www.blender.org
|
||||||
|
|
||||||
|
newmtl Standard.001
|
||||||
|
Ns 250.000000
|
||||||
|
Ka 1.000000 1.000000 1.000000
|
||||||
|
Kd 0.244501 0.244501 0.244501
|
||||||
|
Ks 0.500000 0.500000 0.500000
|
||||||
|
Ke 0.000000 0.000000 0.000000
|
||||||
|
Ni 1.500000
|
||||||
|
d 1.000000
|
||||||
|
illum 2
|
||||||
1097
Assets/Thruster Cube Collision.obj
Normal file
1097
Assets/Thruster Cube Collision.obj
Normal file
File diff suppressed because it is too large
Load Diff
25
Assets/Thruster Cube Collision.obj.import
Normal file
25
Assets/Thruster Cube Collision.obj.import
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="wavefront_obj"
|
||||||
|
importer_version=1
|
||||||
|
type="Mesh"
|
||||||
|
uid="uid://c7f1y6fhexbhm"
|
||||||
|
path="res://.godot/imported/Thruster Cube Collision.obj-b25b556e6c42aebde4547600bcacd901.mesh"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
files=["res://.godot/imported/Thruster Cube Collision.obj-b25b556e6c42aebde4547600bcacd901.mesh"]
|
||||||
|
|
||||||
|
source_file="res://Assets/Thruster Cube Collision.obj"
|
||||||
|
dest_files=["res://.godot/imported/Thruster Cube Collision.obj-b25b556e6c42aebde4547600bcacd901.mesh", "res://.godot/imported/Thruster Cube Collision.obj-b25b556e6c42aebde4547600bcacd901.mesh"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
generate_tangents=true
|
||||||
|
generate_lods=true
|
||||||
|
generate_shadow_mesh=true
|
||||||
|
generate_lightmap_uv2=false
|
||||||
|
generate_lightmap_uv2_texel_size=0.2
|
||||||
|
scale_mesh=Vector3(1, 1, 1)
|
||||||
|
offset_mesh=Vector3(0, 0, 0)
|
||||||
|
force_disable_mesh_compression=false
|
||||||
BIN
Assets/Thruster Cube.glb
Normal file
BIN
Assets/Thruster Cube.glb
Normal file
Binary file not shown.
37
Assets/Thruster Cube.glb.import
Normal file
37
Assets/Thruster Cube.glb.import
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="scene"
|
||||||
|
importer_version=1
|
||||||
|
type="PackedScene"
|
||||||
|
uid="uid://cmiwlha25agl4"
|
||||||
|
path="res://.godot/imported/Thruster Cube.glb-02382f7bdc8ae9a0011d286e98d4c123.scn"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://Assets/Thruster Cube.glb"
|
||||||
|
dest_files=["res://.godot/imported/Thruster Cube.glb-02382f7bdc8ae9a0011d286e98d4c123.scn"]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
nodes/root_type="RigidBody3D"
|
||||||
|
nodes/root_name=""
|
||||||
|
nodes/apply_root_scale=true
|
||||||
|
nodes/root_scale=1.0
|
||||||
|
nodes/import_as_skeleton_bones=false
|
||||||
|
nodes/use_node_type_suffixes=true
|
||||||
|
meshes/ensure_tangents=true
|
||||||
|
meshes/generate_lods=true
|
||||||
|
meshes/create_shadow_meshes=true
|
||||||
|
meshes/light_baking=1
|
||||||
|
meshes/lightmap_texel_size=0.2
|
||||||
|
meshes/force_disable_compression=false
|
||||||
|
skins/use_named_skins=true
|
||||||
|
animation/import=true
|
||||||
|
animation/fps=30
|
||||||
|
animation/trimming=false
|
||||||
|
animation/remove_immutable_tracks=true
|
||||||
|
animation/import_rest_as_RESET=false
|
||||||
|
import_script/path=""
|
||||||
|
_subresources={}
|
||||||
|
gltf/naming_version=1
|
||||||
|
gltf/embedded_image_handling=1
|
||||||
15
Assets/obstacle.tscn
Normal file
15
Assets/obstacle.tscn
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
[gd_scene load_steps=3 format=3 uid="uid://cc7e4loxpb1x6"]
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_lapuk"]
|
||||||
|
points = PackedVector3Array(-0.5, -1, 0, -0.497651, -1, -0.0490407, -0.497651, -1, 0.0489429, -0.5, 1, 0, -0.490407, -1, -0.097592, -0.497651, 1, -0.0490407, -0.490407, -1, 0.0974941, -0.497651, 1, 0.0489429, -0.478563, -1, -0.145164, -0.490407, 1, -0.097592, -0.478563, -1, 0.145067, -0.490407, 1, 0.0974941, -0.46202, -1, -0.191366, -0.478563, 1, -0.145164, -0.46202, -1, 0.191269, -0.478563, 1, 0.145067, -0.440975, -1, -0.235709, -0.46202, 1, -0.191366, -0.440975, -1, 0.235611, -0.46202, 1, 0.191269, -0.415818, -1, -0.2778, -0.440975, 1, -0.235709, -0.415818, -1, 0.277702, -0.440975, 1, 0.235611, -0.386551, -1, -0.317247, -0.415818, 1, -0.2778, -0.386551, -1, 0.31715, -0.415818, 1, 0.277702, -0.353563, -1, -0.353563, -0.386551, 1, -0.317247, -0.353563, -1, 0.353465, -0.386551, 1, 0.31715, -0.317247, -1, -0.386551, -0.353563, 1, -0.353563, -0.317247, -1, 0.386453, -0.353563, 1, 0.353465, -0.2778, -1, -0.415818, -0.317247, 1, -0.386551, -0.2778, -1, 0.41572, -0.317247, 1, 0.386453, -0.235709, -1, -0.440975, -0.2778, 1, -0.415818, -0.235709, -1, 0.440877, -0.2778, 1, 0.41572, -0.191366, -1, -0.46202, -0.235709, 1, -0.440975, -0.191366, -1, 0.461922, -0.235709, 1, 0.440877, -0.145164, -1, -0.478563, -0.191366, 1, -0.46202, -0.145164, -1, 0.478465, -0.191366, 1, 0.461922, -0.097592, -1, -0.490407, -0.145164, 1, -0.478563, -0.097592, -1, 0.490309, -0.145164, 1, 0.478465, -0.0490407, -1, -0.497651, -0.097592, 1, -0.490407, -0.0490407, -1, 0.497553, -0.097592, 1, 0.490309, 0, -1, -0.5, -0.0490407, 1, -0.497651, 0, -1, 0.5, -0.0490407, 1, 0.497553, 0.0489429, -1, -0.497651, 0, 1, -0.5, 0.0489429, -1, 0.497553, 0, 1, 0.5, 0.0974941, -1, -0.490407, 0.0489429, 1, -0.497651, 0.0974941, -1, 0.490309, 0.0489429, 1, 0.497553, 0.145067, -1, -0.478563, 0.0974941, 1, -0.490407, 0.145067, -1, 0.478465, 0.0974941, 1, 0.490309, 0.191269, -1, -0.46202, 0.145067, 1, -0.478563, 0.191269, -1, 0.461922, 0.145067, 1, 0.478465, 0.235611, -1, -0.440975, 0.191269, 1, -0.46202, 0.235611, -1, 0.440877, 0.191269, 1, 0.461922, 0.277702, -1, -0.415818, 0.235611, 1, -0.440975, 0.277702, -1, 0.41572, 0.235611, 1, 0.440877, 0.31715, -1, -0.386551, 0.277702, 1, -0.415818, 0.31715, -1, 0.386453, 0.277702, 1, 0.41572, 0.353465, -1, -0.353563, 0.31715, 1, -0.386551, 0.353465, -1, 0.353465, 0.31715, 1, 0.386453, 0.386453, -1, -0.317247, 0.353465, 1, -0.353563, 0.386453, -1, 0.31715, 0.353465, 1, 0.353465, 0.41572, -1, -0.2778, 0.386453, 1, -0.317247, 0.41572, -1, 0.277702, 0.386453, 1, 0.31715, 0.440877, -1, -0.235709, 0.41572, 1, -0.2778, 0.440877, -1, 0.235611, 0.41572, 1, 0.277702, 0.461922, -1, -0.191366, 0.440877, 1, -0.235709, 0.461922, -1, 0.191269, 0.440877, 1, 0.235611, 0.478465, -1, -0.145164, 0.461922, 1, -0.191366, 0.478465, -1, 0.145067, 0.461922, 1, 0.191269, 0.490309, -1, -0.097592, 0.478465, 1, -0.145164, 0.490309, -1, 0.0974941, 0.478465, 1, 0.145067, 0.497553, -1, -0.0490407, 0.490309, 1, -0.097592, 0.497553, -1, 0.0489429, 0.490309, 1, 0.0974941, 0.5, -1, 0, 0.497553, 1, -0.0490407, 0.497553, 1, 0.0489429, 0.5, 1, 0)
|
||||||
|
|
||||||
|
[sub_resource type="CylinderMesh" id="CylinderMesh_cy40f"]
|
||||||
|
|
||||||
|
[node name="Obstacle" type="StaticBody3D"]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
shape = SubResource("ConvexPolygonShape3D_lapuk")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D"]
|
||||||
|
mesh = SubResource("CylinderMesh_cy40f")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
8
Assets/player_ship.gd
Normal file
8
Assets/player_ship.gd
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
extends RigidBody3D
|
||||||
|
|
||||||
|
@export var _start_direction: Vector3
|
||||||
|
@export var _start_speed: float
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
# apply_force(_, global_position)
|
||||||
|
apply_central_force(_start_direction.normalized() * _start_speed)
|
||||||
1
Assets/player_ship.gd.uid
Normal file
1
Assets/player_ship.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://ccnbhjxglgw12
|
||||||
49
Assets/player_ship.tscn
Normal file
49
Assets/player_ship.tscn
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
[gd_scene load_steps=6 format=3 uid="uid://c8tm1q2cp567o"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://ccnbhjxglgw12" path="res://Assets/player_ship.gd" id="1_3yydb"]
|
||||||
|
[ext_resource type="Script" uid="uid://ci33hs6nbuhqr" path="res://Assets/shipAiComponent.gd" id="2_vr0dq"]
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_tjnu1"]
|
||||||
|
radius = 1.48237
|
||||||
|
height = 3.89605
|
||||||
|
|
||||||
|
[sub_resource type="PrismMesh" id="PrismMesh_tjnu1"]
|
||||||
|
|
||||||
|
[sub_resource type="CylinderMesh" id="CylinderMesh_3yydb"]
|
||||||
|
|
||||||
|
[node name="PlayerShip" type="RigidBody3D"]
|
||||||
|
script = ExtResource("1_3yydb")
|
||||||
|
_start_direction = Vector3(0, 0, -50)
|
||||||
|
_start_speed = 1.0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, -0.358494)
|
||||||
|
shape = SubResource("CapsuleShape3D_tjnu1")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D"]
|
||||||
|
transform = Transform3D(2.20781, 0, 0, 0, -9.18077e-08, -1.7005, 0, 2.10032, -7.43314e-08, 0, 0.524807, 0.378866)
|
||||||
|
mesh = SubResource("PrismMesh_tjnu1")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="CollisionShape3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.475193, -2.07714e-08)
|
||||||
|
mesh = SubResource("CylinderMesh_3yydb")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="ShipAiComponent" type="Node" parent="."]
|
||||||
|
script = ExtResource("2_vr0dq")
|
||||||
|
metadata/_custom_type_script = "uid://ci33hs6nbuhqr"
|
||||||
|
|
||||||
|
[node name="Label3D" type="Label3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.32815, 0)
|
||||||
|
billboard = 2
|
||||||
|
no_depth_test = true
|
||||||
|
render_priority = 1
|
||||||
|
text = "Text"
|
||||||
|
font_size = 128
|
||||||
|
|
||||||
|
[node name="RayCast3D" type="RayCast3D" parent="."]
|
||||||
|
target_position = Vector3(0, 0, 0)
|
||||||
|
hit_from_inside = true
|
||||||
|
collide_with_areas = true
|
||||||
|
debug_shape_custom_color = Color(0.712962, 0.712962, 0.712962, 1)
|
||||||
40
Assets/shipAiComponent.gd
Normal file
40
Assets/shipAiComponent.gd
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
extends Node
|
||||||
|
class_name ShipAiComponent
|
||||||
|
|
||||||
|
var text: Label3D
|
||||||
|
var colShape: CollisionShape3D
|
||||||
|
var distText = "Distance to collision: "
|
||||||
|
var secText = "Seconds to collision: "
|
||||||
|
|
||||||
|
var dist = 0.0
|
||||||
|
var collision = 0.0
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
text = $"../Label3D"
|
||||||
|
colShape = $"../CollisionShape3D"
|
||||||
|
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
calcColDist(delta)
|
||||||
|
|
||||||
|
text.text = distText + String("%0.2f" % dist) + " Meters\n" + secText + String("%0.2f" % collision) + " Seconds"
|
||||||
|
|
||||||
|
func calcColDist(_delta) -> void:
|
||||||
|
var rigidBody: RigidBody3D = $".."
|
||||||
|
var rayCast: RayCast3D = $"../RayCast3D"
|
||||||
|
var pos = rigidBody.global_position
|
||||||
|
var linearVelocity = rigidBody.linear_velocity.normalized() * 100
|
||||||
|
|
||||||
|
rayCast.target_position = rigidBody.to_local(linearVelocity)
|
||||||
|
# rayCast.rotation = rigidBody.rotation
|
||||||
|
# rayCast.position = pos
|
||||||
|
if rayCast.is_colliding():
|
||||||
|
dist = (rayCast.get_collision_point() - pos).length() - 2.5 # Ship size-> eg. bounding box
|
||||||
|
collision = dist / rigidBody.linear_velocity.length()
|
||||||
|
if (collision <= 0.0):
|
||||||
|
collision = 0.0
|
||||||
|
|
||||||
|
|
||||||
|
else:
|
||||||
|
dist = 0.0
|
||||||
|
collision = 0.0
|
||||||
1
Assets/shipAiComponent.gd.uid
Normal file
1
Assets/shipAiComponent.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://ci33hs6nbuhqr
|
||||||
31
Assets/thruster_cube.gd
Normal file
31
Assets/thruster_cube.gd
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
extends RigidBody3D
|
||||||
|
|
||||||
|
var torque_force: float = 10000.0
|
||||||
|
|
||||||
|
func _physics_process(delta):
|
||||||
|
var local_torque := Vector3.ZERO
|
||||||
|
|
||||||
|
# Pitch
|
||||||
|
if Input.is_action_pressed("w"):
|
||||||
|
local_torque.x -= 1
|
||||||
|
if Input.is_action_pressed("s"):
|
||||||
|
local_torque.x += 1
|
||||||
|
|
||||||
|
# Yaw
|
||||||
|
if Input.is_action_pressed("a"):
|
||||||
|
local_torque.y -= 1
|
||||||
|
if Input.is_action_pressed("d"):
|
||||||
|
local_torque.y += 1
|
||||||
|
|
||||||
|
# Roll
|
||||||
|
if Input.is_action_pressed("q"):
|
||||||
|
local_torque.z += 1
|
||||||
|
if Input.is_action_pressed("e"):
|
||||||
|
local_torque.z -= 1
|
||||||
|
|
||||||
|
# Apply local torque converted to world space
|
||||||
|
if local_torque != Vector3.ZERO:
|
||||||
|
var world_torque = global_transform.basis * local_torque.normalized() * torque_force * delta
|
||||||
|
apply_torque(world_torque)
|
||||||
|
|
||||||
|
print(angular_velocity)
|
||||||
1
Assets/thruster_cube.gd.uid
Normal file
1
Assets/thruster_cube.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://dd3ns5mckarbj
|
||||||
37
Assets/thruster_cube.tscn
Normal file
37
Assets/thruster_cube.tscn
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[gd_scene load_steps=4 format=3 uid="uid://1al1ysn5q5yk"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cmiwlha25agl4" path="res://Assets/Thruster Cube.glb" id="1_48yjx"]
|
||||||
|
[ext_resource type="Script" uid="uid://dd3ns5mckarbj" path="res://Assets/thruster_cube.gd" id="2_j3sme"]
|
||||||
|
|
||||||
|
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_48yjx"]
|
||||||
|
points = PackedVector3Array(5.05799, 3.09144, 8.02469, 5.05799, -3.09243, 8.02469, 5.05799, 3.72121, 7.41253, 4.99561, 3.99253, 9.40488, 5.05799, -3.7222, 7.41253, 4.99561, -3.99352, 9.40488, 5.05799, 3.72121, -8.54888, 4.99561, 4.98769, 8.4087, 4.99165, 4.00936, 9.40714, 4.98769, 3.99253, 9.41165, 4.99165, 4.99165, 8.42677, 4.99561, -4.98868, 8.4087, 5.05799, -3.7222, -8.54888, 4.98769, -3.99352, 9.41165, 4.99165, -4.01035, 9.40714, 4.99165, -4.99264, 8.42677, 5.05799, 3.09144, -9.15878, 4.99561, 3.99253, -10.539, 4.99561, 4.98769, -9.54505, 1.20608, 0.951591, 11.8535, 4.00936, 4.99165, 9.40714, 4.98769, 4.99561, 8.4087, 3.99253, 4.99561, 9.40488, 4.99561, -4.98868, -9.54505, 4.99561, -3.99352, -10.539, 5.05799, -3.09243, -9.15878, 1.20608, -0.952582, 11.8535, 4.00936, -4.99264, 9.40714, 4.98769, -4.9966, 8.4087, 3.99253, -4.9966, 9.40488, 4.99165, 4.00936, -10.5435, 4.99165, 4.99165, -9.56086, 0.951591, 1.20608, 11.8535, 3.99253, 4.98769, 9.41165, 3.72121, 5.05799, 7.41253, 4.98769, 4.99561, -9.54505, -3.99352, 4.99561, 9.40488, 3.09144, 5.05799, 8.02469, 4.99165, -4.99264, -9.56086, 4.99165, -4.01035, -10.5435, 0.951591, -1.20707, 11.8535, 3.99253, -4.98868, 9.41165, 3.72121, -5.05799, 7.41253, 4.98769, -4.9966, -9.54505, -3.99352, -4.9966, 9.40488, 3.09144, -5.05799, 8.02469, 4.98769, 3.99253, -10.548, 3.08153, 3.08153, -11.2234, 4.00936, 4.99165, -10.5435, -0.952582, 1.20608, 11.8535, -3.99352, 4.98769, 9.41165, 3.72121, 5.05799, -8.54888, 3.99253, 4.99561, -10.539, -4.01035, 4.99165, 9.40714, -3.09243, 5.05799, 8.02469, -3.7222, 5.05799, 7.41253, -4.98868, 4.99561, 8.4087, -4.99264, 4.99165, 8.42677, 4.00936, -4.99264, -10.5435, 3.08153, -3.08252, -11.2234, 4.98769, -3.99352, -10.548, -0.952582, -1.20707, 11.8535, -3.99352, -4.98868, 9.41165, 3.72121, -5.05799, -8.54888, 3.99253, -4.9966, -10.539, -4.01035, -4.99264, 9.40714, -4.99264, -4.99264, 8.42677, -4.98868, -4.9966, 8.4087, -3.7222, -5.05799, 7.41253, -3.09243, -5.05799, 8.02469, 3.1152, 2.99935, -11.2234, 2.99935, 3.1152, -11.2234, 3.99253, 4.98769, -10.548, -1.20707, 0.951591, 11.8535, 3.09144, 5.05799, -9.15878, -3.99352, 4.99561, -10.539, -4.99264, 4.00936, 9.40714, -3.7222, 5.05799, -8.54888, -4.98868, 4.99561, -9.54505, -4.9966, 4.98769, 8.4087, -4.9966, 3.99253, 9.40488, 3.99253, -4.98868, -10.548, 2.99935, -3.11619, -11.2234, 3.1152, -3.00034, -11.2234, -1.20707, -0.952582, 11.8535, 3.09144, -5.05799, -9.15878, -3.99352, -4.9966, -10.539, -4.99264, -4.01035, 9.40714, -4.9966, -3.99352, 9.40488, -4.9966, -4.98868, 8.4087, -4.98868, -4.9966, -9.54505, -3.7222, -5.05799, -8.54888, -3.00034, 3.1152, -11.2234, -3.99352, 4.98769, -10.548, -4.98868, 3.99253, 9.41165, -3.09243, 5.05799, -9.15878, -4.01035, 4.99165, -10.5435, -4.99264, 4.99165, -9.56086, -5.05799, 3.72121, 7.41253, -4.9966, 4.98769, -9.54505, -5.05799, 3.09144, 8.02469, -3.99352, -4.98868, -10.548, -3.00034, -3.11619, -11.2234, -4.98868, -3.99352, 9.41165, -3.09243, -5.05799, -9.15878, -4.01035, -4.99264, -10.5435, -5.05799, -3.09243, 8.02469, -5.05799, -3.7222, 7.41253, -4.9966, -4.98868, -9.54505, -4.99264, -4.99264, -9.56086, -3.08252, 3.08153, -11.2234, -4.99264, 4.00936, -10.5435, -5.05799, 3.72121, -8.54888, -4.9966, 3.99253, -10.539, -3.08252, -3.08252, -11.2234, -4.99264, -4.01035, -10.5435, -5.05799, -3.7222, -8.54888, -4.9966, -3.99352, -10.539, -3.11619, 2.99935, -11.2234, -4.98868, 3.99253, -10.548, -5.05799, 3.09144, -9.15878, -3.11619, -3.00034, -11.2234, -4.98868, -3.99352, -10.548, -5.05799, -3.09243, -9.15878)
|
||||||
|
|
||||||
|
[node name="Thruster Cube" instance=ExtResource("1_48yjx")]
|
||||||
|
script = ExtResource("2_j3sme")
|
||||||
|
|
||||||
|
[node name="TheThrusterCube" parent="." index="0"]
|
||||||
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="." index="1"]
|
||||||
|
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||||
|
shape = SubResource("ConvexPolygonShape3D_48yjx")
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="." index="2"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.84073, 4.87805, 10.3575)
|
||||||
|
light_color = Color(1, 0.231373, 0.360784, 1)
|
||||||
|
light_energy = 50.0
|
||||||
|
|
||||||
|
[node name="OmniLight3D2" type="OmniLight3D" parent="." index="3"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.841, 4.878, -8.84974)
|
||||||
|
light_color = Color(1, 0.231373, 0.360784, 1)
|
||||||
|
light_energy = 50.0
|
||||||
|
|
||||||
|
[node name="OmniLight3D3" type="OmniLight3D" parent="." index="4"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.84073, -4.37604, 10.3575)
|
||||||
|
light_color = Color(1, 0.231373, 0.360784, 1)
|
||||||
|
light_energy = 50.0
|
||||||
|
|
||||||
|
[node name="OmniLight3D4" type="OmniLight3D" parent="." index="5"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.841, -4.3761, -8.84974)
|
||||||
|
light_color = Color(1, 0.231373, 0.360784, 1)
|
||||||
|
light_energy = 50.0
|
||||||
5
Assets/thruster_cube_collision.tscn
Normal file
5
Assets/thruster_cube_collision.tscn
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://bp7um84bpvhmx"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://crfjfbhjuderh" path="res://Assets/Thruster Cube Collision.glb" id="1_v5i77"]
|
||||||
|
|
||||||
|
[node name="Thruster Cube Collision" instance=ExtResource("1_v5i77")]
|
||||||
3
Levels/pid_test.tscn
Normal file
3
Levels/pid_test.tscn
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[gd_scene format=3 uid="uid://caj5t8q1fii5m"]
|
||||||
|
|
||||||
|
[node name="PidTest" type="Node3D"]
|
||||||
3
Levels/space_move.tscn
Normal file
3
Levels/space_move.tscn
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
[gd_scene format=3 uid="uid://jynlgkm41y8d"]
|
||||||
|
|
||||||
|
[node name="SpaceMove" type="Node3D"]
|
||||||
67
Levels/space_test.tscn
Normal file
67
Levels/space_test.tscn
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
[gd_scene load_steps=10 format=3 uid="uid://dgst4apmowe53"]
|
||||||
|
|
||||||
|
[ext_resource type="PackedScene" uid="uid://cc7e4loxpb1x6" path="res://Assets/obstacle.tscn" id="1_ig7tw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://c8tm1q2cp567o" path="res://Assets/player_ship.tscn" id="2_0xm2m"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://1al1ysn5q5yk" path="res://Assets/thruster_cube.tscn" id="3_h2yge"]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_hsoxx"]
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_gojnm"]
|
||||||
|
sky_material = SubResource("ProceduralSkyMaterial_hsoxx")
|
||||||
|
process_mode = 1
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_hsoxx"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = SubResource("Sky_gojnm")
|
||||||
|
ambient_light_source = 3
|
||||||
|
ambient_light_color = Color(1, 1, 1, 1)
|
||||||
|
|
||||||
|
[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_1c2mv"]
|
||||||
|
|
||||||
|
[sub_resource type="SphereMesh" id="SphereMesh_0xm2m"]
|
||||||
|
|
||||||
|
[sub_resource type="PlaneMesh" id="PlaneMesh_h2yge"]
|
||||||
|
|
||||||
|
[node name="TestLevel" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D" parent="."]
|
||||||
|
transform = Transform3D(0.998445, -0.0179374, 0.0527875, -9.30799e-10, 0.946829, 0.321737, -0.0557519, -0.321236, 0.945357, 0.181835, 5.6324, 24.1051)
|
||||||
|
fov = 50.4
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_hsoxx")
|
||||||
|
camera_attributes = SubResource("CameraAttributesPractical_1c2mv")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(0.933305, -0.340159, 0.115038, 0, 0.320365, 0.947294, -0.359085, -0.884114, 0.298998, 0, 1.65681, 0)
|
||||||
|
|
||||||
|
[node name="Node" type="Node3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.112919, -16.6481, 0.0137749)
|
||||||
|
|
||||||
|
[node name="Obstacle" parent="Node" instance=ExtResource("1_ig7tw")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.528058, 1.09307, -4.11262)
|
||||||
|
|
||||||
|
[node name="PlayerShip" parent="Node" instance=ExtResource("2_0xm2m")]
|
||||||
|
transform = Transform3D(-0.0337657, 0, -0.99943, 0, 1, 0, 0.99943, 0, -0.0337657, -20.7388, 9.76772, -1.42542)
|
||||||
|
_start_direction = Vector3(1, 0.5, 0)
|
||||||
|
_start_speed = 100.0
|
||||||
|
|
||||||
|
[node name="Marker3D" type="Marker3D" parent="Node"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.147182, -10.5201)
|
||||||
|
gizmo_extents = 5.03
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Node/Marker3D"]
|
||||||
|
transform = Transform3D(0.189904, 0, 0, 0, 0.189904, 0, 0, 0, 0.189904, 0, 0, 0)
|
||||||
|
mesh = SubResource("SphereMesh_0xm2m")
|
||||||
|
|
||||||
|
[node name="Obstacle2" parent="Node" instance=ExtResource("1_ig7tw")]
|
||||||
|
transform = Transform3D(0.635485, -0.772113, 0, 0.772113, 0.635485, 0, 0, 0, 1, -6.93043, 24.3938, -1.34355)
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Node"]
|
||||||
|
transform = Transform3D(11.7541, 0, 0, 0, 1, 0, 0, 0, 11.7541, 0, -7, 0)
|
||||||
|
mesh = SubResource("PlaneMesh_h2yge")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="Thruster Cube" parent="." instance=ExtResource("3_h2yge")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -11.2033)
|
||||||
|
mass = 200.0
|
||||||
1
icon.svg
Normal file
1
icon.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
||||||
|
After Width: | Height: | Size: 994 B |
37
icon.svg.import
Normal file
37
icon.svg.import
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="CompressedTexture2D"
|
||||||
|
uid="uid://dn1gvn1u25k0m"
|
||||||
|
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
|
||||||
54
main.tscn
Normal file
54
main.tscn
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
[gd_scene load_steps=5 format=3 uid="uid://djelupqdj4wgd"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bel5yfuiqithe" path="res://open_level_component.gd" id="1_ig7tw"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://dgst4apmowe53" path="res://Levels/space_test.tscn" id="2_1bvp3"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://jynlgkm41y8d" path="res://Levels/space_move.tscn" id="3_lquwl"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://caj5t8q1fii5m" path="res://Levels/pid_test.tscn" id="4_7mycd"]
|
||||||
|
|
||||||
|
[node name="Main" type="Control"]
|
||||||
|
layout_mode = 3
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||||
|
layout_mode = 1
|
||||||
|
anchors_preset = 15
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
offset_left = 482.0
|
||||||
|
offset_top = 55.0
|
||||||
|
offset_right = -482.0
|
||||||
|
offset_bottom = -55.0
|
||||||
|
grow_horizontal = 2
|
||||||
|
grow_vertical = 2
|
||||||
|
|
||||||
|
[node name="Button" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "space_test"
|
||||||
|
|
||||||
|
[node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button"]
|
||||||
|
script = ExtResource("1_ig7tw")
|
||||||
|
level = ExtResource("2_1bvp3")
|
||||||
|
metadata/_custom_type_script = "uid://bel5yfuiqithe"
|
||||||
|
|
||||||
|
[node name="Button2" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "space_move
|
||||||
|
"
|
||||||
|
|
||||||
|
[node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button2"]
|
||||||
|
script = ExtResource("1_ig7tw")
|
||||||
|
level = ExtResource("3_lquwl")
|
||||||
|
metadata/_custom_type_script = "uid://bel5yfuiqithe"
|
||||||
|
|
||||||
|
[node name="Button3" type="Button" parent="VBoxContainer"]
|
||||||
|
layout_mode = 2
|
||||||
|
text = "pid_test"
|
||||||
|
|
||||||
|
[node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button3"]
|
||||||
|
script = ExtResource("1_ig7tw")
|
||||||
|
level = ExtResource("4_7mycd")
|
||||||
|
metadata/_custom_type_script = "uid://bel5yfuiqithe"
|
||||||
12
open_level_component.gd
Normal file
12
open_level_component.gd
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
extends Node
|
||||||
|
class_name OpenLevelComponent
|
||||||
|
|
||||||
|
@onready var button: Button = get_parent() as Button
|
||||||
|
@export var level:PackedScene
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
button.pressed.connect(_on_button_pressed)
|
||||||
|
button.name = button.text
|
||||||
|
|
||||||
|
func _on_button_pressed() -> void:
|
||||||
|
get_tree().change_scene_to_packed(level)
|
||||||
1
open_level_component.gd.uid
Normal file
1
open_level_component.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bel5yfuiqithe
|
||||||
59
project.godot
Normal file
59
project.godot
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
; 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="Experements"
|
||||||
|
run/main_scene="uid://djelupqdj4wgd"
|
||||||
|
config/features=PackedStringArray("4.5", "Forward Plus")
|
||||||
|
boot_splash/bg_color=Color(0, 0, 0, 1)
|
||||||
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
w={
|
||||||
|
"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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
a={
|
||||||
|
"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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
s={
|
||||||
|
"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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
d={
|
||||||
|
"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)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
q={
|
||||||
|
"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":81,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
e={
|
||||||
|
"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":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[physics]
|
||||||
|
|
||||||
|
3d/physics_engine="Jolt Physics"
|
||||||
|
3d/default_gravity=0.0
|
||||||
|
3d/default_linear_damp=0.0
|
||||||
|
3d/default_angular_damp=0.0
|
||||||
|
3d/sleep_threshold_linear=0.01
|
||||||
|
3d/sleep_threshold_angular=0.00872665
|
||||||
Reference in New Issue
Block a user