Spawnable test ship with multiplayer and orbit
This commit is contained in:
@ -2,5 +2,5 @@
|
||||
|
||||
[ext_resource type="Script" uid="uid://bkcouefvi7iup" path="res://scripts/star_system.gd" id="1_ig7tw"]
|
||||
|
||||
[node name="StarSystem" type="Node2D"]
|
||||
[node name="StarSystem" type="Node3D"]
|
||||
script = ExtResource("1_ig7tw")
|
||||
|
||||
475
modules/3d_test_ship.tscn
Normal file
475
modules/3d_test_ship.tscn
Normal file
@ -0,0 +1,475 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bkwogkfqk2uxo"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://6co67nfy8ngb" path="res://scenes/ship/builder/module.gd" id="1_ktv2t"]
|
||||
[ext_resource type="PackedScene" uid="uid://bsyufiv0m1018" path="res://scenes/ship/builder/pieces/hullplate.tscn" id="2_shb7f"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvpy3urgtm62n" path="res://scenes/ship/components/hardware/spawner.tscn" id="3_ism2t"]
|
||||
|
||||
[node name="3dTestShip" type="Node3D"]
|
||||
script = ExtResource("1_ktv2t")
|
||||
mass = 1.0
|
||||
metadata/_custom_type_script = "uid://6co67nfy8ngb"
|
||||
|
||||
[node name="Hullplate" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, 0)
|
||||
|
||||
[node name="Hullplate3" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, -1)
|
||||
|
||||
[node name="Hullplate2" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, 1)
|
||||
|
||||
[node name="Hullplate7" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, 0)
|
||||
|
||||
[node name="Hullplate8" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, -1)
|
||||
|
||||
[node name="Hullplate9" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, 1)
|
||||
|
||||
[node name="Hullplate4" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, 0)
|
||||
|
||||
[node name="Hullplate5" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, -1)
|
||||
|
||||
[node name="Hullplate6" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, 1)
|
||||
|
||||
[node name="Hullplate10" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, -3)
|
||||
|
||||
[node name="Hullplate11" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, -4)
|
||||
|
||||
[node name="Hullplate12" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, -2)
|
||||
|
||||
[node name="Hullplate13" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, -3)
|
||||
|
||||
[node name="Hullplate14" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, -4)
|
||||
|
||||
[node name="Hullplate15" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, -2)
|
||||
|
||||
[node name="Hullplate16" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, -3)
|
||||
|
||||
[node name="Hullplate17" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, -4)
|
||||
|
||||
[node name="Hullplate18" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, -2)
|
||||
|
||||
[node name="Hullplate19" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, 3)
|
||||
|
||||
[node name="Hullplate20" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, 2)
|
||||
|
||||
[node name="Hullplate21" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 0, 4)
|
||||
|
||||
[node name="Hullplate22" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, 3)
|
||||
|
||||
[node name="Hullplate23" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, 2)
|
||||
|
||||
[node name="Hullplate24" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, -1, 4)
|
||||
|
||||
[node name="Hullplate25" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, 3)
|
||||
|
||||
[node name="Hullplate26" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, 2)
|
||||
|
||||
[node name="Hullplate27" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 2, 1, 4)
|
||||
|
||||
[node name="Hullplate28" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, -0.0091564655)
|
||||
|
||||
[node name="Hullplate29" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, -1.0091565)
|
||||
|
||||
[node name="Hullplate30" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, 0.99084353)
|
||||
|
||||
[node name="Hullplate31" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, -0.0091564655)
|
||||
|
||||
[node name="Hullplate32" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, -1.0091565)
|
||||
|
||||
[node name="Hullplate33" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, 0.99084353)
|
||||
|
||||
[node name="Hullplate34" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, -0.0091564655)
|
||||
|
||||
[node name="Hullplate35" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, -1.0091565)
|
||||
|
||||
[node name="Hullplate36" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, 0.99084353)
|
||||
|
||||
[node name="Hullplate37" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, -3.0091565)
|
||||
|
||||
[node name="Hullplate38" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, -4.009156)
|
||||
|
||||
[node name="Hullplate39" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, -2.0091565)
|
||||
|
||||
[node name="Hullplate40" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, -3.0091565)
|
||||
|
||||
[node name="Hullplate41" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, -4.009156)
|
||||
|
||||
[node name="Hullplate42" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, -2.0091565)
|
||||
|
||||
[node name="Hullplate43" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, -3.0091565)
|
||||
|
||||
[node name="Hullplate44" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, -4.009156)
|
||||
|
||||
[node name="Hullplate45" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, -2.0091565)
|
||||
|
||||
[node name="Hullplate46" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, 2.9908435)
|
||||
|
||||
[node name="Hullplate47" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, 1.9908435)
|
||||
|
||||
[node name="Hullplate48" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 9.536743e-07, 3.9908435)
|
||||
|
||||
[node name="Hullplate49" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, 2.9908435)
|
||||
|
||||
[node name="Hullplate50" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, 1.9908435)
|
||||
|
||||
[node name="Hullplate51" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, -0.99999905, 3.9908435)
|
||||
|
||||
[node name="Hullplate52" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, 2.9908435)
|
||||
|
||||
[node name="Hullplate53" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, 1.9908435)
|
||||
|
||||
[node name="Hullplate54" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, -2.0009866, 1.000001, 3.9908435)
|
||||
|
||||
[node name="Hullplate55" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.50098634, 9.536743e-07, 4.4908433)
|
||||
|
||||
[node name="Hullplate56" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49901366, 9.536743e-07, 4.4908433)
|
||||
|
||||
[node name="Hullplate57" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, 0, 1, 0, -0.014328662, 0, 0.99989736, -1.5009866, 9.536743e-07, 4.4908433)
|
||||
|
||||
[node name="Hullplate58" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.50098634, -0.99999905, 4.4908433)
|
||||
|
||||
[node name="Hullplate59" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49901366, -0.99999905, 4.4908433)
|
||||
|
||||
[node name="Hullplate60" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, 0, 1, 0, -0.014328662, 0, 0.99989736, -1.5009866, -0.99999905, 4.4908433)
|
||||
|
||||
[node name="Hullplate61" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.50098634, 1.000001, 4.4908433)
|
||||
|
||||
[node name="Hullplate62" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49901366, 1.000001, 4.4908433)
|
||||
|
||||
[node name="Hullplate64" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4990137, 9.536743e-07, 4.4908433)
|
||||
|
||||
[node name="Hullplate65" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4990137, -0.99999905, 4.4908433)
|
||||
|
||||
[node name="Hullplate66" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4990137, 1.000001, 4.4908433)
|
||||
|
||||
[node name="Hullplate63" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, 0, 1, 0, -0.014328662, 0, 0.99989736, -1.5009866, 1.000001, 4.4908433)
|
||||
|
||||
[node name="Hullplate67" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.50098634, 9.536743e-07, -4.5091567)
|
||||
|
||||
[node name="Hullplate68" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49901366, 9.536743e-07, -4.5091567)
|
||||
|
||||
[node name="Hullplate69" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, 0, 1, 0, -0.014328662, 0, 0.99989736, -1.5009866, 9.536743e-07, -4.5091567)
|
||||
|
||||
[node name="Hullplate70" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.50098634, -0.99999905, -4.5091567)
|
||||
|
||||
[node name="Hullplate71" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49901366, -0.99999905, -4.5091567)
|
||||
|
||||
[node name="Hullplate72" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, 0, 1, 0, -0.014328662, 0, 0.99989736, -1.5009866, -0.99999905, -4.5091567)
|
||||
|
||||
[node name="Hullplate73" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.50098634, 1.000001, -4.5091567)
|
||||
|
||||
[node name="Hullplate74" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.49901366, 1.000001, -4.5091567)
|
||||
|
||||
[node name="Hullplate75" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4990137, 9.536743e-07, -4.5091567)
|
||||
|
||||
[node name="Hullplate76" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4990137, -0.99999905, -4.5091567)
|
||||
|
||||
[node name="Hullplate77" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4990137, 1.000001, -4.5091567)
|
||||
|
||||
[node name="Hullplate78" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, 0, 1, 0, -0.014328662, 0, 0.99989736, -1.5009866, 1.000001, -4.5091567)
|
||||
|
||||
[node name="Hullplate79" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, -3.009157)
|
||||
|
||||
[node name="Hullplate80" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, -3.009157)
|
||||
|
||||
[node name="Hullplate81" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, -3.009157)
|
||||
|
||||
[node name="Hullplate82" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, -2.009157)
|
||||
|
||||
[node name="Hullplate83" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, -2.009157)
|
||||
|
||||
[node name="Hullplate84" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, -2.009157)
|
||||
|
||||
[node name="Hullplate85" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, -4.009157)
|
||||
|
||||
[node name="Hullplate86" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, -4.009157)
|
||||
|
||||
[node name="Hullplate87" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, -3.009157)
|
||||
|
||||
[node name="Hullplate88" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, -2.009157)
|
||||
|
||||
[node name="Hullplate89" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, -4.009157)
|
||||
|
||||
[node name="Hullplate90" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, -4.009157)
|
||||
|
||||
[node name="Hullplate91" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, -0.009156942)
|
||||
|
||||
[node name="Hullplate92" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, -0.009156942)
|
||||
|
||||
[node name="Hullplate93" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, -0.009156942)
|
||||
|
||||
[node name="Hullplate94" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, 0.99084306)
|
||||
|
||||
[node name="Hullplate95" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, 0.99084306)
|
||||
|
||||
[node name="Hullplate96" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, 0.99084306)
|
||||
|
||||
[node name="Hullplate97" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, -1.0091572)
|
||||
|
||||
[node name="Hullplate98" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, -1.0091572)
|
||||
|
||||
[node name="Hullplate99" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, -0.009156942)
|
||||
|
||||
[node name="Hullplate100" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, 0.99084306)
|
||||
|
||||
[node name="Hullplate101" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, -1.0091572)
|
||||
|
||||
[node name="Hullplate102" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, -1.0091572)
|
||||
|
||||
[node name="Hullplate103" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, 2.990843)
|
||||
|
||||
[node name="Hullplate104" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, 2.990843)
|
||||
|
||||
[node name="Hullplate105" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, 2.990843)
|
||||
|
||||
[node name="Hullplate106" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, 3.990843)
|
||||
|
||||
[node name="Hullplate107" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, 3.990843)
|
||||
|
||||
[node name="Hullplate108" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, 3.990843)
|
||||
|
||||
[node name="Hullplate109" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, 1.5000012, 1.9908428)
|
||||
|
||||
[node name="Hullplate110" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, 1.5000012, 1.9908428)
|
||||
|
||||
[node name="Hullplate111" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, 2.990843)
|
||||
|
||||
[node name="Hullplate112" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, 3.990843)
|
||||
|
||||
[node name="Hullplate113" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, 1.5000012, 1.9908428)
|
||||
|
||||
[node name="Hullplate114" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, 1.5000012, 1.9908428)
|
||||
|
||||
[node name="Hullplate115" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, -3.009157)
|
||||
|
||||
[node name="Hullplate116" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, -3.009157)
|
||||
|
||||
[node name="Hullplate117" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, -3.009157)
|
||||
|
||||
[node name="Hullplate118" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, -2.009157)
|
||||
|
||||
[node name="Hullplate119" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, -2.009157)
|
||||
|
||||
[node name="Hullplate120" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, -2.009157)
|
||||
|
||||
[node name="Hullplate121" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, -4.009157)
|
||||
|
||||
[node name="Hullplate122" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, -4.009157)
|
||||
|
||||
[node name="Hullplate123" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, -3.009157)
|
||||
|
||||
[node name="Hullplate124" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, -2.009157)
|
||||
|
||||
[node name="Hullplate125" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, -4.009157)
|
||||
|
||||
[node name="Hullplate126" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, -4.009157)
|
||||
|
||||
[node name="Hullplate127" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, -0.009156942)
|
||||
|
||||
[node name="Hullplate128" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, -0.009156942)
|
||||
|
||||
[node name="Hullplate129" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, -0.009156942)
|
||||
|
||||
[node name="Hullplate130" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, 0.99084306)
|
||||
|
||||
[node name="Hullplate131" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, 0.99084306)
|
||||
|
||||
[node name="Hullplate132" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, 0.99084306)
|
||||
|
||||
[node name="Hullplate133" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, -1.0091572)
|
||||
|
||||
[node name="Hullplate134" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, -1.0091572)
|
||||
|
||||
[node name="Hullplate135" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, -0.009156942)
|
||||
|
||||
[node name="Hullplate136" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, 0.99084306)
|
||||
|
||||
[node name="Hullplate137" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, -1.0091572)
|
||||
|
||||
[node name="Hullplate138" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, -1.0091572)
|
||||
|
||||
[node name="Hullplate139" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, 2.990843)
|
||||
|
||||
[node name="Hullplate140" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, 2.990843)
|
||||
|
||||
[node name="Hullplate141" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, 2.990843)
|
||||
|
||||
[node name="Hullplate142" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, 3.990843)
|
||||
|
||||
[node name="Hullplate143" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, 3.990843)
|
||||
|
||||
[node name="Hullplate144" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, 3.990843)
|
||||
|
||||
[node name="Hullplate145" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, -0.50098634, -1.4999988, 1.9908428)
|
||||
|
||||
[node name="Hullplate146" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0.49901366, -1.4999988, 1.9908428)
|
||||
|
||||
[node name="Hullplate147" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, 2.990843)
|
||||
|
||||
[node name="Hullplate148" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, 3.990843)
|
||||
|
||||
[node name="Hullplate149" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(1, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 1.4990137, -1.4999988, 1.9908428)
|
||||
|
||||
[node name="Hullplate150" parent="." instance=ExtResource("2_shb7f")]
|
||||
transform = Transform3D(0.99989736, 0, 0.014328662, -0.014328662, -4.371139e-08, 0.99989736, 6.263257e-10, -1, -4.37069e-08, -1.5009866, -1.4999988, 1.9908428)
|
||||
|
||||
[node name="Spawner" parent="." instance=ExtResource("3_ism2t")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2)
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4, 1, -3)
|
||||
|
||||
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.6, 1, -3)
|
||||
|
||||
[node name="OmniLight3D3" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.6, 1, 4)
|
||||
|
||||
[node name="OmniLight3D4" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.4, 1, 4)
|
||||
@ -1,25 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://dhp1kc684qklv"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://6co67nfy8ngb" path="res://scenes/ship/builder/module.gd" id="1_1abiy"]
|
||||
[ext_resource type="PackedScene" uid="uid://bho8x10x4oab7" path="res://scenes/ship/builder/pieces/hullplate.tscn" id="2_risxe"]
|
||||
|
||||
[node name="Module" type="RigidBody2D"]
|
||||
position = Vector2(-50, 50)
|
||||
mass = 1.0
|
||||
center_of_mass_mode = 1
|
||||
center_of_mass = Vector2(-50, 0)
|
||||
inertia = 0.0
|
||||
linear_velocity = Vector2(0, 0)
|
||||
angular_velocity = 0.0
|
||||
script = ExtResource("1_1abiy")
|
||||
|
||||
[node name="StructuralContainer" type="Node2D" parent="."]
|
||||
|
||||
[node name="Hullplate" parent="StructuralContainer" instance=ExtResource("2_risxe")]
|
||||
|
||||
[node name="@StaticBody2D@23989" parent="StructuralContainer" instance=ExtResource("2_risxe")]
|
||||
position = Vector2(-100, 0)
|
||||
|
||||
[node name="HullVolumeContainer" type="Node2D" parent="."]
|
||||
|
||||
[node name="AtmosphereVisualizer" type="Node2D" parent="."]
|
||||
@ -1,25 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cvqs2vivnrepf"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://6co67nfy8ngb" path="res://scenes/ship/builder/module.gd" id="1_1rae4"]
|
||||
[ext_resource type="PackedScene" uid="uid://bho8x10x4oab7" path="res://scenes/ship/builder/pieces/hullplate.tscn" id="2_fbnt1"]
|
||||
|
||||
[node name="Module" type="RigidBody2D"]
|
||||
position = Vector2(-50, 50)
|
||||
mass = 1.0
|
||||
center_of_mass_mode = 1
|
||||
center_of_mass = Vector2(-50, 0)
|
||||
inertia = 0.0
|
||||
linear_velocity = Vector2(0, 0)
|
||||
angular_velocity = 0.0
|
||||
script = ExtResource("1_1rae4")
|
||||
|
||||
[node name="StructuralContainer" type="Node2D" parent="."]
|
||||
|
||||
[node name="Hullplate" parent="StructuralContainer" instance=ExtResource("2_fbnt1")]
|
||||
|
||||
[node name="@StaticBody2D@23989" parent="StructuralContainer" instance=ExtResource("2_fbnt1")]
|
||||
position = Vector2(-100, 0)
|
||||
|
||||
[node name="HullVolumeContainer" type="Node2D" parent="."]
|
||||
|
||||
[node name="AtmosphereVisualizer" type="Node2D" parent="."]
|
||||
@ -1,145 +0,0 @@
|
||||
[gd_scene load_steps=20 format=3 uid="uid://didt2nsdtbmra"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://6co67nfy8ngb" path="res://scenes/ship/builder/module.gd" id="1_nqe0s"]
|
||||
[ext_resource type="PackedScene" uid="uid://bho8x10x4oab7" path="res://scenes/ship/builder/pieces/hullplate.tscn" id="2_foqop"]
|
||||
[ext_resource type="PackedScene" uid="uid://d3hitk62fice4" path="res://scenes/ship/builder/pieces/bulkhead.tscn" id="4_dmrms"]
|
||||
[ext_resource type="PackedScene" uid="uid://2n42nstcj1n0" path="res://scenes/ship/components/hardware/system_station.tscn" id="5_nqe0s"]
|
||||
[ext_resource type="Script" uid="uid://diu2tgusi3vmt" path="res://scenes/ship/computer/shards/sensor_databank.gd" id="9_ixntg"]
|
||||
[ext_resource type="PackedScene" uid="uid://dt1t2n7dewucw" path="res://scenes/ship/computer/UI/button_panel.tscn" id="10_px2ne"]
|
||||
[ext_resource type="Script" uid="uid://cfbyqvnvf3hna" path="res://scenes/ship/computer/shards/helm_logic_databank.gd" id="10_wkxbw"]
|
||||
[ext_resource type="PackedScene" uid="uid://cdbqjkgsj02or" path="res://scenes/ship/computer/UI/readout_screen_panel.tscn" id="11_erhv3"]
|
||||
[ext_resource type="Script" uid="uid://t12etsdx2h38" path="res://scenes/ship/computer/shards/nav_selection_databank.gd" id="11_xwy4s"]
|
||||
[ext_resource type="Script" uid="uid://ceqdi6jobefnc" path="res://scenes/ship/computer/shards/helm_autopilot_databank.gd" id="12_4epkn"]
|
||||
[ext_resource type="PackedScene" uid="uid://rd1c22nsru8y" path="res://scenes/ship/computer/UI/sensor_panel.tscn" id="12_q1rtr"]
|
||||
[ext_resource type="PackedScene" uid="uid://c0bb77rmyatr0" path="res://scenes/ship/components/hardware/thruster.tscn" id="12_vmx8o"]
|
||||
[ext_resource type="PackedScene" uid="uid://dvpy3urgtm62n" path="res://scenes/ship/components/hardware/spawner.tscn" id="13_83bu1"]
|
||||
[ext_resource type="PackedScene" uid="uid://pq55j75t3fda" path="res://scenes/ship/computer/UI/throttle_lever_panel.tscn" id="13_rsa1x"]
|
||||
[ext_resource type="Script" uid="uid://ctgl5kxyagw0f" path="res://scenes/ship/computer/shards/helm_ship_status.gd" id="13_wkxbw"]
|
||||
[ext_resource type="Script" uid="uid://ghluwjd5c5ul" path="res://scenes/ship/computer/shards/nav_brachistochrone_planner.gd" id="14_xwy4s"]
|
||||
[ext_resource type="Script" uid="uid://bghu5lhcbcfmh" path="res://scenes/ship/computer/shards/nav_hohman_planner.gd" id="15_fll2s"]
|
||||
[ext_resource type="Script" uid="uid://dsbn7ushwqrko" path="res://scenes/ship/computer/shards/nav_intercept_solver.gd" id="16_vufgi"]
|
||||
[ext_resource type="Script" uid="uid://0f6v6iu3o5qo" path="res://scenes/ship/computer/shards/nav_projection_shard.gd" id="17_34v0b"]
|
||||
|
||||
[node name="Module" type="Node2D"]
|
||||
physics_interpolation_mode = 2
|
||||
script = ExtResource("1_nqe0s")
|
||||
physics_mode = 1
|
||||
mass = 1.0
|
||||
inertia = 0.0
|
||||
metadata/_custom_type_script = "uid://0isnsk356que"
|
||||
|
||||
[node name="Hullplate" parent="." instance=ExtResource("2_foqop")]
|
||||
physics_interpolation_mode = 2
|
||||
is_pressurized = false
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30634" parent="." instance=ExtResource("2_foqop")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(0, 100)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30635" parent="." instance=ExtResource("2_foqop")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(0, -100)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="Bulkhead" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(-50, 100)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30636" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(-50, 0)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30637" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(-50, -100)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30638" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(50, -100)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30639" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(0, -150)
|
||||
rotation = 1.5708
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30640" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(0, 150)
|
||||
rotation = 4.71239
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30641" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(50, 100)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="@StaticBody2D@30642" parent="." instance=ExtResource("4_dmrms")]
|
||||
physics_interpolation_mode = 2
|
||||
position = Vector2(50, 0)
|
||||
is_pressurized = false
|
||||
health = 0.0
|
||||
base_mass = 0.0
|
||||
|
||||
[node name="Station" parent="." instance=ExtResource("5_nqe0s")]
|
||||
position = Vector2(0, -10)
|
||||
panel_scenes = Array[PackedScene]([ExtResource("11_erhv3"), ExtResource("11_erhv3"), ExtResource("12_q1rtr"), ExtResource("10_px2ne"), ExtResource("13_rsa1x")])
|
||||
databank_installations = Array[Script]([ExtResource("10_wkxbw"), ExtResource("12_4epkn"), ExtResource("13_wkxbw"), ExtResource("9_ixntg"), ExtResource("11_xwy4s"), ExtResource("14_xwy4s"), ExtResource("15_fll2s"), ExtResource("16_vufgi"), ExtResource("17_34v0b")])
|
||||
physics_mode = 2
|
||||
|
||||
[node name="Thruster" parent="." instance=ExtResource("12_vmx8o")]
|
||||
position = Vector2(-95, -130)
|
||||
rotation = 1.5708
|
||||
main_thruster = false
|
||||
physics_mode = 2
|
||||
|
||||
[node name="Thruster2" parent="." instance=ExtResource("12_vmx8o")]
|
||||
position = Vector2(-95, 130)
|
||||
rotation = 1.5708
|
||||
main_thruster = false
|
||||
physics_mode = 2
|
||||
|
||||
[node name="Thruster3" parent="." instance=ExtResource("12_vmx8o")]
|
||||
position = Vector2(95, 130)
|
||||
rotation = -1.5708
|
||||
main_thruster = false
|
||||
physics_mode = 2
|
||||
|
||||
[node name="Thruster4" parent="." instance=ExtResource("12_vmx8o")]
|
||||
position = Vector2(95, -130)
|
||||
rotation = -1.5708
|
||||
main_thruster = false
|
||||
physics_mode = 2
|
||||
|
||||
[node name="MainEngine" parent="." instance=ExtResource("12_vmx8o")]
|
||||
position = Vector2(0, 195)
|
||||
max_thrust = 10.0
|
||||
physics_mode = 2
|
||||
|
||||
[node name="Spawner" parent="." instance=ExtResource("13_83bu1")]
|
||||
position = Vector2(0, 27)
|
||||
physics_mode = 2
|
||||
7
modules/test_ship.tscn
Normal file
7
modules/test_ship.tscn
Normal file
@ -0,0 +1,7 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cwblg6q5qse6c"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://d3hitk62fice4" path="res://scenes/ship/builder/pieces/bulkhead.tscn" id="1_obkto"]
|
||||
|
||||
[node name="TestShip" type="Node3D"]
|
||||
|
||||
[node name="Bulkhead" parent="." instance=ExtResource("1_obkto")]
|
||||
@ -56,30 +56,30 @@ func set_interaction_input(just_pressed: bool, is_held: bool):
|
||||
func _ready():
|
||||
# Set up overlap signals if they aren't already connected in the scene file
|
||||
# You must have an Area2D child on PilotBall to detect overlaps.
|
||||
overlap_area.body_entered.connect(on_body_entered)
|
||||
overlap_area.body_exited.connect(on_body_exited)
|
||||
# overlap_area.body_entered.connect(on_body_entered)
|
||||
# overlap_area.body_exited.connect(on_body_exited)
|
||||
overlap_area.area_entered.connect(_on_station_area_entered)
|
||||
overlap_area.area_exited.connect(_on_station_area_exited)
|
||||
|
||||
camera.make_current()
|
||||
|
||||
func on_body_entered(body: OrbitalBody3D):
|
||||
# Detect Modules (which all inherit OrbitalBody2D via StructuralPiece)
|
||||
if body is StructuralPiece:
|
||||
overlapping_modules += 1
|
||||
# func on_body_entered(body: OrbitalBody3D):
|
||||
# # Detect Modules (which all inherit OrbitalBody2D via StructuralPiece)
|
||||
# if body is StructuralPiece:
|
||||
# overlapping_modules += 1
|
||||
|
||||
# Detect Ladders
|
||||
if body is Ladder:
|
||||
ladder_area = body.find_child("ClimbArea") # Assuming the Ladder has a specific Area2D for climbing
|
||||
# # Detect Ladders
|
||||
# if body is Ladder:
|
||||
# ladder_area = body.find_child("ClimbArea") # Assuming the Ladder has a specific Area2D for climbing
|
||||
|
||||
func on_body_exited(body: OrbitalBody3D):
|
||||
if body is StructuralPiece:
|
||||
overlapping_modules -= 1
|
||||
# func on_body_exited(body: OrbitalBody3D):
|
||||
# if body is StructuralPiece:
|
||||
# overlapping_modules -= 1
|
||||
|
||||
if body is Ladder:
|
||||
if body.find_child("ClimbArea") == ladder_area:
|
||||
ladder_area = null
|
||||
is_grabbing_ladder = false # Force detach if the ladder moves away
|
||||
# if body is Ladder:
|
||||
# if body.find_child("ClimbArea") == ladder_area:
|
||||
# ladder_area = null
|
||||
# is_grabbing_ladder = false # Force detach if the ladder moves away
|
||||
|
||||
# --- NEW: Functions to be called by the Station ---
|
||||
func enter_station_state():
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
@tool
|
||||
class_name Module
|
||||
extends OrbitalBody3D
|
||||
|
||||
@ -31,31 +30,31 @@ func get_attachment_points() -> Array:
|
||||
var piece_center = piece.global_position
|
||||
|
||||
# --- Hullplates (Interior Grid) ---
|
||||
if piece is Hullplate:
|
||||
for i in range(-1, 2, 2):
|
||||
for j in range(-1, 2, 2):
|
||||
var offset = Vector2(i, j) * (COMPONENT_GRID_SIZE / 2.0)
|
||||
points.append({
|
||||
"position": piece_center + offset,
|
||||
"type": Component.AttachmentType.INTERIOR_WALL,
|
||||
"piece": piece
|
||||
})
|
||||
# if piece is Hullplate:
|
||||
# for i in range(-1, 2, 2):
|
||||
# for j in range(-1, 2, 2):
|
||||
# var offset = Vector2(i, j) * (COMPONENT_GRID_SIZE / 2.0)
|
||||
# points.append({
|
||||
# "position": piece_center + offset,
|
||||
# "type": Component.AttachmentType.INTERIOR_WALL,
|
||||
# "piece": piece
|
||||
# })
|
||||
|
||||
# --- Bulkheads (Interior and Exterior Edge Attachments) ---
|
||||
elif piece is Bulkhead:
|
||||
var interior_point = piece_center + piece.transform.origin.y * (COMPONENT_GRID_SIZE / 2.0)
|
||||
points.append({
|
||||
"position": interior_point,
|
||||
"type": Component.AttachmentType.INTERIOR_WALL,
|
||||
"piece": piece
|
||||
})
|
||||
# # --- Bulkheads (Interior and Exterior Edge Attachments) ---
|
||||
# elif piece is Bulkhead:
|
||||
# var interior_point = piece_center + piece.transform.origin.y * (COMPONENT_GRID_SIZE / 2.0)
|
||||
# points.append({
|
||||
# "position": interior_point,
|
||||
# "type": Component.AttachmentType.INTERIOR_WALL,
|
||||
# "piece": piece
|
||||
# })
|
||||
|
||||
var exterior_point = piece_center - piece.transform.origin.y * (COMPONENT_GRID_SIZE / 2.0)
|
||||
points.append({
|
||||
"position": exterior_point,
|
||||
"type": Component.AttachmentType.EXTERIOR_HULL,
|
||||
"piece": piece
|
||||
})
|
||||
# var exterior_point = piece_center - piece.transform.origin.y * (COMPONENT_GRID_SIZE / 2.0)
|
||||
# points.append({
|
||||
# "position": exterior_point,
|
||||
# "type": Component.AttachmentType.EXTERIOR_HULL,
|
||||
# "piece": piece
|
||||
# })
|
||||
|
||||
return points
|
||||
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
@tool
|
||||
class_name Bulkhead
|
||||
extends StructuralPiece
|
||||
|
||||
# This piece represents a wall or edge.
|
||||
# No additional logic is needed right now, we just need the class_name.
|
||||
@ -1 +0,0 @@
|
||||
uid://b4g288mje38nj
|
||||
@ -1,29 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://d3hitk62fice4"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b4g288mje38nj" path="res://scenes/ship/builder/pieces/bulkhead.gd" id="1_1wp2n"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1wp2n"]
|
||||
size = Vector2(10, 100)
|
||||
|
||||
[node name="Bulkhead" type="StaticBody2D"]
|
||||
collision_layer = 16
|
||||
collision_mask = 60
|
||||
script = ExtResource("1_1wp2n")
|
||||
metadata/_custom_type_script = "uid://b7f8x2qimvn37"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_1wp2n")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -5.0
|
||||
offset_top = -50.0
|
||||
offset_right = 5.0
|
||||
offset_bottom = 50.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.6, 0.6, 0.6, 1)
|
||||
@ -1,6 +0,0 @@
|
||||
@tool
|
||||
class_name Hullplate
|
||||
extends StructuralPiece
|
||||
|
||||
# This piece represents an interior surface.
|
||||
# No additional logic is needed right now, we just need the class_name.
|
||||
@ -1 +0,0 @@
|
||||
uid://crmwm623rh1ps
|
||||
@ -1,28 +1,22 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bho8x10x4oab7"]
|
||||
[gd_scene load_steps=4 format=3 uid="uid://bsyufiv0m1018"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://crmwm623rh1ps" path="res://scenes/ship/builder/pieces/hullplate.gd" id="1_ecow4"]
|
||||
[ext_resource type="Script" uid="uid://wlm40n8ywr" path="res://scripts/orbital_body_2d.gd" id="1_ecow4"]
|
||||
|
||||
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1wp2n"]
|
||||
size = Vector2(100, 100)
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ecow4"]
|
||||
size = Vector3(1, 1, 0.02)
|
||||
|
||||
[node name="Hullplate" type="StaticBody2D"]
|
||||
collision_mask = 0
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ecow4"]
|
||||
size = Vector3(1, 1, 0.02)
|
||||
|
||||
[node name="Hullplate" type="Node3D"]
|
||||
script = ExtResource("1_ecow4")
|
||||
metadata/_custom_type_script = "uid://b7f8x2qimvn37"
|
||||
metadata/_custom_type_script = "uid://wlm40n8ywr"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("RectangleShape2D_1wp2n")
|
||||
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -50.0
|
||||
offset_top = -50.0
|
||||
offset_right = 50.0
|
||||
offset_bottom = 50.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
color = Color(0.4, 0.4, 0.4, 1)
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"]
|
||||
mesh = SubResource("BoxMesh_ecow4")
|
||||
skeleton = NodePath("../..")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||
shape = SubResource("BoxShape3D_ecow4")
|
||||
|
||||
@ -1,20 +1 @@
|
||||
@tool
|
||||
class_name StructuralPiece
|
||||
extends OrbitalBody3D
|
||||
|
||||
# Does this piece block atmosphere? (e.g., a hull plate would, a girder would not).
|
||||
@export var is_pressurized: bool = true
|
||||
|
||||
# The health of this specific piece.
|
||||
@export var health: float = 100.0
|
||||
|
||||
# This setter is triggered by the editor.
|
||||
var is_preview: bool = false:
|
||||
set(value):
|
||||
is_preview = value
|
||||
# if is_preview:
|
||||
# # Make the piece translucent if it's a preview.
|
||||
# modulate = Color(1, 1, 1, 0.5)
|
||||
# else:
|
||||
# # Make it opaque if it's a permanent piece.
|
||||
# modulate = Color(1, 1, 1, 1)
|
||||
class_name StructuralPiece extends OrbitalBody3D
|
||||
|
||||
@ -1 +1 @@
|
||||
uid://b7f8x2qimvn37
|
||||
uid://cxnbunw3k7s5j
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://ds4eilbvihjy7"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b7f8x2qimvn37" path="res://scenes/ship/builder/pieces/structural_piece.gd" id="1_6jsoj"]
|
||||
|
||||
[sub_resource type="CircleShape2D" id="CircleShape2D_jsbwo"]
|
||||
|
||||
[node name="StructuralPiece" type="Node2D"]
|
||||
script = ExtResource("1_6jsoj")
|
||||
metadata/_custom_type_script = "uid://0isnsk356que"
|
||||
|
||||
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
|
||||
shape = SubResource("CircleShape2D_jsbwo")
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
@ -16,14 +16,14 @@ class ThrusterData:
|
||||
}
|
||||
var thruster_node: Thruster
|
||||
var thruster_type: ThrusterType = ThrusterType.UNCALIBRATED
|
||||
var measured_torque: float # The rotational force it provides
|
||||
var measured_torque_vector: Vector3 # The rotational force it provides
|
||||
var measured_thrust: float # The linear force it provides
|
||||
|
||||
class ImpulsiveBurnPlan:
|
||||
var delta_v_magnitude: float
|
||||
var wait_time: float = 0.0
|
||||
var burn_duration: float
|
||||
var desired_rotation_rad: Basis
|
||||
var desired_basis: Basis
|
||||
|
||||
class PathProjection:
|
||||
var body_ref: OrbitalBody3D
|
||||
|
||||
@ -101,7 +101,7 @@ func _execute_autopilot_rotation(step: DataTypes.ImpulsiveBurnPlan) -> float:
|
||||
# You MUST update your planners (Hohman, Brachistochrone) to
|
||||
# calculate a target Basis (e.g., Basis.looking_at(prograde_vec, Vector3.UP))
|
||||
# and store it in the ImpulsiveBurnPlan.
|
||||
var step_target_basis: Basis = step.desired_rotation_rad # DANGER: This line assumes you updated DataTypes.
|
||||
var step_target_basis: Basis = step.desired_basis # DANGER: This line assumes you updated DataTypes.
|
||||
# For this to compile, you MUST change ImpulsiveBurnPlan in data_types.gd:
|
||||
# var desired_rotation_rad: float -> var desired_basis: Basis
|
||||
var error_quaternion: Quaternion = shortest_rotation_between(root_module.global_transform.basis, step_target_basis)
|
||||
|
||||
@ -94,7 +94,7 @@ func set_attitude_hold(hold: bool):
|
||||
# else: apply_rotational_thrust(0.0)
|
||||
|
||||
# --- REFACTORED: This is the other key change ---
|
||||
func apply_rotational_thrust(desired_torque: float):
|
||||
func apply_rotational_thrust(desired_torque: Vector3):
|
||||
if not is_instance_valid(root_module):
|
||||
return
|
||||
|
||||
@ -105,7 +105,8 @@ func apply_rotational_thrust(desired_torque: float):
|
||||
if thruster_data.thruster_type == DataTypes.ThrusterData.ThrusterType.ROTATIONAL:
|
||||
# If this thruster can help apply the desired torque, turn it on.
|
||||
# Otherwise, explicitly turn it off to ensure it's not firing incorrectly.
|
||||
if sign(thruster_data.measured_torque) == sign(desired_torque) and desired_torque != 0:
|
||||
var contribution = thruster_data.measured_torque_vector.dot(desired_torque)
|
||||
if contribution > 0 and desired_torque != Vector3.ZERO:
|
||||
thruster.turn_on()
|
||||
else:
|
||||
thruster.turn_off()
|
||||
@ -165,10 +166,10 @@ func calibrate_rcs_performance():
|
||||
calibration_data.max_pos_torque = 0.0
|
||||
calibration_data.max_neg_torque = 0.0
|
||||
for data in calibration_data.thruster_data.values():
|
||||
if data.measured_torque > 0:
|
||||
calibration_data.max_pos_torque += data.measured_torque
|
||||
if data.measured_torque_vector > 0:
|
||||
calibration_data.max_pos_torque += data.measured_torque_vector
|
||||
else:
|
||||
calibration_data.max_neg_torque += abs(data.measured_torque)
|
||||
calibration_data.max_neg_torque += abs(data.measured_torque_vector)
|
||||
|
||||
print("RCS Calibration Complete: Max Pos Torque: %.2f, Max Neg Torque: %.2f" % [calibration_data.max_pos_torque, calibration_data.max_neg_torque])
|
||||
|
||||
@ -208,15 +209,15 @@ func _calibrate_single_thruster(thruster: Thruster) -> DataTypes.ThrusterData:
|
||||
var delta_angular_velocity = root_module.angular_velocity - initial_angular_velocity
|
||||
var delta_linear_velocity = root_module.linear_velocity - initial_linear_velocity
|
||||
|
||||
data.measured_torque = 0.0
|
||||
data.measured_torque_vector = Vector3.ZERO
|
||||
data.measured_thrust = 0.0
|
||||
|
||||
# --- Calculate Performance ---
|
||||
# Torque = inertia * angular_acceleration (alpha = dw/dt)
|
||||
if root_module.inertia > 0:
|
||||
data.measured_torque = root_module.inertia * (delta_angular_velocity / test_burn_duration)
|
||||
data.measured_torque_vector = root_module.inertia * (delta_angular_velocity / test_burn_duration)
|
||||
else:
|
||||
data.measured_torque = 0.0
|
||||
data.measured_torque_vector = Vector3.ZERO
|
||||
push_warning("Root module inertia is 0. Cannot calibrate torque.")
|
||||
|
||||
if root_module.mass > 0:
|
||||
@ -225,23 +226,23 @@ func _calibrate_single_thruster(thruster: Thruster) -> DataTypes.ThrusterData:
|
||||
data.measured_thrust = 0.0
|
||||
push_warning("Root module mass is 0. Cannot calibrate torque.")
|
||||
|
||||
if data.measured_thrust > abs(data.measured_torque):
|
||||
if data.measured_thrust > abs(data.measured_torque_vector):
|
||||
print(" - Calibrated %s: Linear(%.3f)" % [thruster.name, data.measured_thrust])
|
||||
data.thruster_type = DataTypes.ThrusterData.ThrusterType.LINEAR
|
||||
elif data.measured_thrust < abs(data.measured_torque):
|
||||
print(" - Calibrated %s: Torque(%.3f)" % [thruster.name, data.measured_torque])
|
||||
elif data.measured_thrust < abs(data.measured_torque_vector):
|
||||
print(" - Calibrated %s: Torque(%.3f)" % [thruster.name, data.measured_torque_vector])
|
||||
data.thruster_type = DataTypes.ThrusterData.ThrusterType.ROTATIONAL
|
||||
|
||||
|
||||
# --- Cleanup: Counter the spin from the test fire ---
|
||||
if abs(data.measured_torque) > 0.001:
|
||||
var counter_torque = -data.measured_torque
|
||||
if data.measured_torque_vector.length() > 0.001:
|
||||
var counter_torque = -data.measured_torque_vector
|
||||
var counter_burn_duration = (root_module.inertia * root_module.angular_velocity) / counter_torque
|
||||
|
||||
# Find a thruster that can apply the counter-torque
|
||||
for other_thruster in thrusters:
|
||||
var other_data = calibration_data.thruster_data.get(other_thruster)
|
||||
if other_data and sign(other_data.measured_torque) == sign(counter_torque):
|
||||
if other_data and sign(other_data.measured_torque_vector) == sign(counter_torque):
|
||||
other_thruster.turn_on()
|
||||
await get_tree().create_timer(abs(counter_burn_duration)).timeout
|
||||
other_thruster.turn_off()
|
||||
|
||||
@ -54,7 +54,9 @@ func calculate_brachistochrone_transfer():
|
||||
accel_burn.wait_time = 0 # Start immediately
|
||||
accel_burn.burn_duration = time_for_half_journey
|
||||
# The desired rotation is the direction vector from ship to target
|
||||
accel_burn.desired_rotation_rad = root_module.global_position.direction_to(target_body.global_position) # + (PI / 2.0)
|
||||
var direction_to_target = root_module.global_position.direction_to(target_body.global_position).normalized()
|
||||
var up_vec = Vector3.UP
|
||||
accel_burn.desired_basis = Basis.looking_at(direction_to_target, up_vec)
|
||||
plan.append(accel_burn)
|
||||
|
||||
# --- Step 2: Deceleration Burn (The flip is handled by the autopilot between steps) ---
|
||||
@ -62,8 +64,8 @@ func calculate_brachistochrone_transfer():
|
||||
decel_burn.wait_time = 0 # No coasting period
|
||||
decel_burn.burn_duration = time_for_half_journey
|
||||
# The desired rotation is opposite the first burn
|
||||
decel_burn.desired_rotation_rad = accel_burn.desired_rotation_rad + PI
|
||||
decel_burn.desired_basis = Basis.looking_at(-direction_to_target, up_vec)
|
||||
plan.append(decel_burn)
|
||||
|
||||
|
||||
print("BRACHISTOCHRONE PLANNER: Plan calculated. Total time: %.2f s" % (time_for_half_journey * 2.0))
|
||||
maneuver_calculated.emit(plan)
|
||||
|
||||
@ -95,8 +95,15 @@ func calculate_hohmann_transfer():
|
||||
|
||||
# --- Determine rotation based on the sign of delta_v ---
|
||||
# Prograde (speeding up) or retrograde (slowing down)
|
||||
var prograde_direction = predicted_velocity_vec.angle()
|
||||
burn1.desired_rotation_rad = prograde_direction if delta_v1 >= 0 else prograde_direction + PI
|
||||
var prograde_vec = predicted_velocity_vec.normalized()
|
||||
var up_vec = Vector3.UP
|
||||
var target_basis = Basis.looking_at(prograde_vec, up_vec)
|
||||
|
||||
# For retrograde (slowing down), we look "backward"
|
||||
if delta_v1 < 0:
|
||||
target_basis = Basis.looking_at(-prograde_vec, up_vec)
|
||||
|
||||
burn1.desired_basis = target_basis # Renamed in data_types.gd
|
||||
plan.append(burn1)
|
||||
|
||||
var burn2 = DataTypes.ImpulsiveBurnPlan.new()
|
||||
@ -105,8 +112,13 @@ func calculate_hohmann_transfer():
|
||||
burn2.burn_duration = burn_duration2
|
||||
|
||||
# --- Determine rotation for the second burn ---
|
||||
target_basis = Basis.looking_at(-prograde_vec, up_vec)
|
||||
|
||||
# For retrograde (slowing down), we look "backward"
|
||||
if delta_v2 < 0:
|
||||
target_basis = Basis.looking_at(prograde_vec, up_vec)
|
||||
var target_prograde_direction = (target_body.global_position - star.global_position).orthogonal().angle()
|
||||
burn2.desired_rotation_rad = target_prograde_direction if delta_v2 >= 0 else target_prograde_direction + PI
|
||||
burn2.desired_basis = target_prograde_direction if delta_v2 >= 0 else target_prograde_direction + PI
|
||||
plan.append(burn2)
|
||||
|
||||
print("Hohmann Plan:")
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
# orbital_body_3d.gd
|
||||
# REFACTOR: Extends Node3D instead of Node2D
|
||||
@tool
|
||||
class_name OrbitalBody3D
|
||||
extends Node3D
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
[gd_resource type="Resource" script_class="GameConfig" load_steps=5 format=3 uid="uid://cv15sck8rl2b7"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://chgycmkkaf7jv" path="res://scenes/characters/pilot_ball.tscn" id="1_s0mxw"]
|
||||
[ext_resource type="PackedScene" uid="uid://didt2nsdtbmra" path="res://modules/Tube.tscn" id="2_75b4c"]
|
||||
[ext_resource type="PackedScene" uid="uid://bkwogkfqk2uxo" path="res://modules/3d_test_ship.tscn" id="2_75b4c"]
|
||||
[ext_resource type="PackedScene" uid="uid://dnre6svquwdtb" path="res://scenes/characters/player_controller.tscn" id="2_sk8k5"]
|
||||
[ext_resource type="Script" uid="uid://bfc6u1f8sigxj" path="res://scripts/singletons/game_config.gd" id="3_75b4c"]
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# scripts/star_system.gd
|
||||
class_name StarSystem
|
||||
extends Node2D
|
||||
extends Node3D
|
||||
|
||||
@export_group("System Metadata")
|
||||
@export var system_name: String = "Kepler-186"
|
||||
|
||||
@ -99,4 +99,4 @@ func _spawn_player_ship(star_system: StarSystem, star: OrbitalBody3D, planet_sys
|
||||
# We use Vector3.UP as the "up" reference
|
||||
ship_instance.look_at(ship_instance.global_position + l4_velocity.normalized(), Vector3.UP)
|
||||
|
||||
print("Player ship spawned at L4 point of %s" % planet_system.name)
|
||||
print("Player ship spawned at L4 point of %s" % planet_system.name)
|
||||
|
||||
Reference in New Issue
Block a user