summaryrefslogtreecommitdiff
path: root/godot
diff options
context:
space:
mode:
Diffstat (limited to 'godot')
-rwxr-xr-xgodot/bin/x11/libnetmachine.sobin4807272 -> 4807632 bytes
-rw-r--r--godot/maps/Main.tscn47
-rw-r--r--godot/materials/housetexture.materialbin3147689 -> 2654486 bytes
-rw-r--r--godot/project.godot6
-rw-r--r--godot/scenes/GameBase.tscn7
-rw-r--r--godot/scenes/characters/PlayerRigid.tscn56
-rw-r--r--godot/scenes/environment/Ladder.tscn15
-rw-r--r--godot/scenes/machines/Cannon.tscn6
-rw-r--r--godot/scenes/vehicles/Airplane.tscn23
-rw-r--r--godot/scenes/vehicles/Gunboat.tscn7
-rw-r--r--godot/scenes/weapons/rockets.gd4
-rw-r--r--godot/scenes/worldprops/Runway.tscn23
-rw-r--r--godot/scripts/GameBase.gd2
-rw-r--r--godot/scripts/World.gd37
-rw-r--r--godot/scripts/ballistics/Cannonball.gd2
-rw-r--r--godot/scripts/cameras/PlayerCamGDS.gd79
-rw-r--r--godot/scripts/cameras/plane_armcam.gd6
-rw-r--r--godot/scripts/cameras/player_firstperson.gd33
-rw-r--r--godot/scripts/characters/player_controller_new.gd67
-rw-r--r--godot/scripts/machines/Cannon.gd10
-rw-r--r--godot/scripts/machines/NetworkedMachineGDS.gd7
-rw-r--r--godot/scripts/vehicles/Airplane.gd109
-rw-r--r--godot/scripts/vehicles/Gunboat.gd7
23 files changed, 364 insertions, 189 deletions
diff --git a/godot/bin/x11/libnetmachine.so b/godot/bin/x11/libnetmachine.so
index c6fc078..b8cc579 100755
--- a/godot/bin/x11/libnetmachine.so
+++ b/godot/bin/x11/libnetmachine.so
Binary files differ
diff --git a/godot/maps/Main.tscn b/godot/maps/Main.tscn
index b70250a..4f2fbc2 100644
--- a/godot/maps/Main.tscn
+++ b/godot/maps/Main.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=18 format=2]
+[gd_scene load_steps=20 format=2]
[ext_resource path="res://scripts/World.gd" type="Script" id=1]
[ext_resource path="res://scenes/machines/Cannon.tscn" type="PackedScene" id=2]
@@ -12,10 +12,13 @@
[ext_resource path="res://scenes/vehicles/Gunboat.tscn" type="PackedScene" id=10]
[ext_resource path="res://scenes/environment/CaptureFlag.tscn" type="PackedScene" id=11]
[ext_resource path="res://scenes/environment/Ladder.tscn" type="PackedScene" id=12]
+[ext_resource path="res://scenes/worldprops/Runway.tscn" type="PackedScene" id=13]
+[ext_resource path="res://scenes/vehicles/Airplane.tscn" type="PackedScene" id=14]
[sub_resource type="NavigationMesh" id=14]
-vertices = PoolVector3Array( -6.71966, 2.08805, -14.1154, -5.71966, 2.08805, -13.6154, -5.46966, 2.08805, -14.1154, -6.96966, 1.58805, -15.1154, -8.46966, 0.588049, -15.1154, -8.46966, 0.588049, -14.6154, -6.96966, 1.58805, -15.1154, -7.46966, 0.588049, -16.8654, -4.71966, -0.411951, -20.3654, -5.46966, 0.588049, -18.3654, -5.46966, 2.08805, -14.1154, 2.53034, 2.33805, -14.1154, 2.53034, -0.161951, -22.1154, -0.219656, -0.161951, -22.3654, -1.34466, 0.0880492, -21.8654, -0.4895, 1.33805, -15.8476, -3.45952, 1.83805, -15.8695, -1.95461, 0.588049, -18.8464, -0.219656, -0.161951, -22.3654, -2.46966, -0.411951, -22.6154, -4.71966, -0.411951, -20.3654, -1.34466, 0.0880492, -21.8654, -4.71966, -0.411951, -20.3654, -5.46966, -0.161951, -19.3654, -5.46966, 0.588049, -18.3654, -0.219656, -0.161951, -22.3654, -1.71966, -0.911951, -25.3654, -2.46966, -0.411951, -22.6154, -7.46966, 0.588049, -16.8654, -6.96966, 1.58805, -15.1154, -5.46966, 2.08805, -14.1154, -5.46966, 0.588049, -18.3654, 8.03034, -0.161951, -18.6154, 9.53034, -0.911951, -18.6154, 8.03034, -0.161951, -18.8654, 5.28034, 2.08805, -14.1154, 5.53034, 2.08805, -13.6154, 8.78034, 0.838049, -16.8654, 8.03034, 0.838049, -17.3654, 5.28034, 2.08805, -14.1154, 8.03034, 0.838049, -17.3654, 8.03034, -0.161951, -18.6154, 6.03034, -0.411951, -23.1154, 2.53034, -0.161951, -22.1154, 2.53034, 2.33805, -14.1154, 5.51542, 1.08805, -17.3745, 5.52537, -0.161951, -20.3684, 4.04036, -0.161951, -20.3794, 4.03041, 1.33805, -17.3854, 8.03034, -0.161951, -18.6154, 8.03034, -0.161951, -18.8654, 6.03034, -0.411951, -23.1154, 12.7803, 0.588049, -14.6154, 13.5303, 0.0880492, -14.8654, 13.7803, -0.411951, -15.3654, 12.0303, -0.161951, -16.3654, 11.7803, 0.588049, -15.3654, 20.2803, -0.161951, -2.61539, 20.0303, -0.161951, -2.86539, 19.0303, 0.588049, -2.86539, 19.0303, 0.838049, -0.865385, 20.0303, -0.161951, -1.11539, 14.0303, 1.58805, 9.88461, 15.7803, 1.08805, 9.38461, 16.7803, 1.08805, 8.13461, 9.28034, 2.83805, 3.88461, 12.5303, 1.83805, 9.88461, 11.7803, 2.58805, 5.30128, 15.0303, 1.08805, -11.1154, 12.7803, 0.838049, -13.8654, 10.7803, 0.838049, -15.3654, 5.53034, 2.08805, -13.6154, 5.53034, 3.58805, -8.86539, 9.60177, 2.83805, -9.82967, 5.53034, 2.83805, -10.0529, 12.7803, 0.838049, -13.8654, 12.7803, 0.588049, -14.6154, 11.7803, 0.588049, -15.3654, 10.7803, 0.838049, -15.3654, 18.7803, 0.838049, 2.38461, 19.2803, 0.588049, 1.88461, 19.0303, 0.838049, -0.865385, 19.0303, 0.838049, -0.865385, 19.0303, 0.588049, -2.86539, 18.0303, 0.838049, -5.36539, 18.7803, 0.838049, 2.38461, 18.4053, 1.08805, -1.49039, 19.0303, 0.588049, -3.61539, 18.7803, 0.588049, -5.11539, 18.0303, 0.838049, -5.36539, 19.0303, 0.588049, -2.86539, 18.2803, 0.588049, -6.86539, 17.7803, 0.588049, -7.86539, 16.7803, 0.838049, -8.36539, 18.0303, 0.838049, -5.36539, 15.0303, 1.08805, -11.1154, 15.0303, 0.838049, -11.6154, 14.0303, 0.588049, -13.1154, 12.7803, 0.838049, -13.8654, 16.7803, 0.838049, -8.36539, 16.7803, 0.838049, -9.11539, 16.0303, 0.588049, -10.6154, 15.0303, 1.08805, -11.1154, 16.7803, 1.08805, 8.13461, 18.0303, 0.838049, 5.38461, 18.7803, 0.838049, 2.38461, 8.53034, 3.08805, 3.13461, 9.28034, 2.83805, 3.88461, 11.7803, 2.58805, 5.30128, 15.8518, 1.83805, 2.5989, 10.7803, 0.838049, -15.3654, 10.7803, 0.338049, -16.6154, 8.78034, 0.838049, -16.8654, 5.53034, 2.08805, -13.6154, 7.78034, 3.08805, 3.13461, 8.53034, 3.08805, 3.13461, 18.7803, 0.838049, 2.38461, 18.0303, 0.838049, -5.36539, 15.0303, 1.08805, -11.1154, 5.53034, 3.58805, -8.86539, 5.78034, 4.08805, -7.53205, 6.53034, 4.33805, -3.53205, 7.28034, 3.08805, 0.467949, 15.8518, 1.83805, 2.5989, 18.4053, 1.08805, -1.49039, 9.60177, 2.83805, -9.82967, 10.0455, 3.83805, -5.38657, 8.53065, 4.08805, -2.36571, 11.5507, 2.58805, -2.34373, 10.0257, 3.33805, -0.888798, 13.0055, 2.08805, -6.88051, 11.5104, 3.08805, -8.35742, 14.5506, 2.08805, -5.3536, 13.0155, 2.33805, -5.36459, 10.0208, 2.83805, 0.638111, 16.7803, 1.08805, 8.13461, 18.0303, 0.338049, 7.63461, 18.0303, 0.838049, 5.38461, 18.0303, 0.838049, 5.38461, 18.7803, 0.588049, 4.88461, 18.7803, 0.838049, 2.38461, 18.0303, 0.838049, -5.36539, 16.7803, 0.838049, -8.36539, 15.0303, 1.08805, -11.1154, 20.0303, -0.161951, -3.61539, 20.0303, -0.161951, -2.86539, 20.2803, -0.161951, -2.61539, 22.0303, -0.911951, -4.61539, 18.2803, 0.0880492, -8.11539, 17.7803, 0.588049, -7.86539, 18.2803, 0.588049, -6.86539, 19.2803, -0.161951, -6.61539, 13.7803, -0.411951, -15.3654, 13.5303, 0.0880492, -14.8654, 14.5303, -0.161951, -14.1154, 16.2803, -0.911951, -14.6154, 14.0303, 0.588049, -13.1154, 15.0303, 0.838049, -11.6154, 15.2803, 0.588049, -12.1154, 14.5303, 0.338049, -13.3654, 16.2803, -0.911951, -14.6154, 16.0303, 0.0880492, -12.1154, 16.5303, -0.161951, -11.6154, 16.5303, 0.338049, -10.8654, 16.0303, 0.588049, -10.6154, 16.7803, 0.838049, -9.11539, 19.2803, 0.0880492, -5.36539, 18.7803, 0.588049, -5.11539, 19.0303, 0.588049, -3.61539, 20.0303, -0.161951, -3.61539, 16.5303, -0.161951, -11.6154, 17.7803, -0.161951, -9.36539, 18.2803, -0.161951, -8.86539, 20.0303, -0.911951, -10.1154, 16.2803, -0.911951, -14.6154, 18.2803, -0.161951, -8.86539, 18.2803, 0.0880492, -8.11539, 19.2803, -0.161951, -6.61539, 22.0303, -0.911951, -5.36539, 20.0303, -0.911951, -10.1154, 20.0303, -0.161951, -3.61539, 22.0303, -0.911951, -4.61539, 22.0303, -0.911951, -5.36539, 19.2803, -0.161951, -6.61539, 19.2803, 0.0880492, -5.36539, 14.5303, 0.338049, -13.3654, 15.2803, 0.588049, -12.1154, 16.0303, 0.0880492, -12.1154, 16.2803, -0.911951, -14.6154, 14.5303, -0.161951, -14.1154, 16.5303, 0.338049, -10.8654, 16.7803, 0.838049, -9.11539, 17.7803, -0.161951, -9.36539, 16.5303, -0.161951, -11.6154, -29.9697, -1.66195, -15.1154, -28.7197, -0.661951, -6.86539, -28.4697, -1.66195, -14.3654, -29.9697, -1.66195, -15.1154, -28.4697, -1.66195, -14.3654, -26.9697, -1.91195, -14.6154, -11.4697, -0.161951, -11.3654, -10.4697, -0.161951, -11.6154, -10.4697, -0.411951, -12.3654, -12.2197, -0.911951, -12.8654, -20.9697, -0.661951, -5.86539, -17.7197, -2.41195, -13.6154, -24.4697, -2.16195, -14.3654, -24.2197, -0.411951, -2.86539, -18.2613, -2.41195, -12.3237, -19.0697, -2.66195, -13.7654, -24.2822, -0.411951, -5.74039, -20.7197, 1.08805, -2.86539, -20.4697, 0.588049, -4.61539, -21.2197, 0.0880492, -4.86539, -24.2197, -0.411951, -2.86539, -23.053, -0.411951, -2.86539, -22.2197, -0.411951, -4.19872, -11.4697, 0.0880492, -10.8654, -11.4697, -0.161951, -11.3654, -12.2197, -0.911951, -12.8654, -14.7197, -2.16195, -14.6154, -17.7197, -2.41195, -13.6154, -15.9697, -0.911951, -9.11539, -20.9697, -0.661951, -5.86539, -17.7197, -1.16195, -7.36539, -15.9697, -0.911951, -9.11539, -17.7197, -2.41195, -13.6154, -18.2613, -2.41195, -12.3237, -24.2197, -0.411951, -2.86539, -21.2197, 0.0880492, -4.86539, -20.9697, -0.661951, -5.86539, -22.2197, -0.411951, -4.19872, -21.9697, 0.338049, 2.63461, -21.4697, 0.588049, 3.38461, -20.9697, 0.588049, 3.38461, -19.9697, 1.08805, 3.13461, -20.2197, 1.33805, 1.38461, -20.4697, 0.588049, -4.61539, -20.7197, 1.08805, -2.86539, -20.2197, 1.33805, -2.86539, -16.2197, 1.58805, -5.36539, -17.7197, 1.33805, 4.13461, -16.9697, 0.588049, 5.63461, -16.7197, 0.338049, 5.63461, -16.9697, 1.58805, 3.38461, -16.2197, 1.58805, -5.36539, -20.2197, 1.33805, -2.86539, -20.2197, 1.58805, -1.86539, -15.9697, 2.08805, 3.13461, -14.4697, 2.08805, 4.88461, -15.4697, 2.33805, -0.972528, -16.2197, 1.58805, -5.36539, -14.4697, 2.08805, 4.88461, -13.4697, 1.83805, 8.63461, 0.780344, 2.83805, 8.38461, 0.780344, 2.58805, 7.13461, -3.71966, 3.58805, -7.86539, -6.49743, 2.83805, -7.30983, -9.27521, 2.83805, -6.75427, -15.4697, 2.33805, -0.972528, -10.6197, 1.83805, 8.58462, -3.49466, 3.08805, 8.45962, -0.037838, 3.33805, 4.40734, -1.6742, 3.33805, -1.0472, -2.90147, 3.83805, -5.13811, -9.46456, 3.83805, -3.85249, -1.97882, 2.58805, 6.61772, -6.48386, 3.08805, 6.63476, -1.98902, 3.33805, 3.64193, -3.49393, 2.58805, 5.11884, -4.95904, 3.33805, 3.61996, -4.95952, 3.33805, -3.86953, -0.493813, 2.33805, 6.62871, -7.98926, 3.08805, 0.622189, -9.48398, 2.83805, 5.12489, -7.94945, 3.83805, -2.3536, -10.9496, 3.08805, -3.86348, -10.9695, 3.33805, -2.37558, -4.95461, 3.58805, -5.34644, -13.9696, 2.58805, -3.88545, -9.71966, 2.33805, -9.86539, -10.4697, 2.33805, -9.86539, -11.7197, 2.08805, -8.61539, -5.71966, 3.08805, -8.11539, -19.9697, 1.08805, 3.13461, -17.7197, 1.33805, 4.13461, -16.9697, 1.58805, 3.38461, -20.2197, 1.33805, 1.38461, -25.7197, -0.661951, 1.38461, -23.2197, -0.411951, 2.88461, -21.9697, 0.338049, 2.63461, -11.7197, 2.08805, -8.61539, -15.2197, 1.58805, -8.11539, -16.2197, 1.58805, -5.36539, -3.71966, 3.58805, -7.86539, -5.71966, 3.08805, -8.11539, -9.27521, 2.83805, -6.75427, -6.49743, 2.83805, -7.30983, -5.71966, 2.08805, -13.6154, -6.71966, 2.08805, -14.1154, -9.71966, 2.33805, -9.86539, -5.71966, 3.08805, -8.11539, -5.71966, 3.08805, -10.8654, -20.2197, 1.58805, 0.384615, -20.2197, 1.33805, 1.38461, -19.9697, 1.08805, 3.13461, -19.9697, 1.08805, 3.13461, -16.9697, 1.58805, 3.38461, -15.9697, 2.08805, 3.13461, -20.2197, 1.58805, -1.86539, -20.2197, 1.58805, 0.384615, -18.4947, 1.33805, 2.10962, -27.4697, 1.58805, -6.11539, -28.2197, 1.58805, -5.86539, -28.2197, 1.58805, -3.61539, -27.4697, 1.58805, -3.36539, -27.4697, 1.58805, -6.11539, -27.4697, 1.58805, -3.36539, -25.2197, 1.58805, -2.11539, -20.2197, 1.58805, 0.384615, -20.2197, 1.58805, -1.86539, -25.2197, 1.58805, -2.11539, -27.4697, 1.58805, 0.384615, -25.2197, 1.58805, -13.6154, -27.4697, 1.58805, -13.6154, -27.4697, 1.58805, -6.11539, -25.2197, 1.58805, -2.11539, -27.4697, 1.58805, -3.36539, -27.4697, 1.58805, 0.384615, -25.2197, 1.58805, -2.11539, -3.46966, 3.83805, -8.36539, -0.469656, 3.83805, -8.36539, -0.469656, 3.83805, -8.86539, -3.46966, 3.83805, -8.86539, 5.53034, 3.58805, -8.86539, 4.53034, 3.83805, -8.61539, 3.78034, 3.58805, -7.86539, 5.28034, 3.08805, 5.13461, 7.78034, 3.08805, 3.13461, 7.28034, 3.08805, 0.467949, 6.53034, 4.33805, -3.53205, 5.78034, 4.08805, -7.53205, 4.11368, 4.33805, -4.9765, 4.61368, 3.33805, -0.643164, -4.71966, 3.83805, -13.1154, -4.71966, 3.83805, -8.86539, -3.46966, 3.83805, -8.86539, -4.71966, 3.83805, -13.1154, -3.46966, 3.83805, -8.86539, -0.469656, 3.83805, -8.86539, 4.53034, 3.83805, -13.1154, -4.71966, 3.83805, -13.1154, -0.469656, 3.83805, -8.86539, 4.03034, 3.83805, -8.86539, 4.53034, 3.83805, -8.61539, 4.03034, 3.83805, -8.86539, 3.78034, 3.58805, -7.86539, 4.53034, 3.83805, -8.61539, 4.53034, 3.83805, -13.1154, 4.03034, 3.83805, -8.86539, -27.2197, -0.411951, -6.86539, -25.4697, -0.411951, -6.86539, -25.4697, -0.411951, -7.86539, -27.2197, -0.411951, -8.61539, -0.469656, 3.33805, -7.86539, -0.469656, 3.83805, -8.36539, -3.46966, 3.83805, -8.36539, -0.469656, 3.33805, -7.86539, -3.46966, 3.83805, -8.36539, -3.71966, 3.58805, -7.86539, 0.780344, 2.58805, 7.13461, 1.03034, 2.83805, 6.63461, 0.730345, 3.33805, 3.73462, -0.0196552, 3.58805, -3.51538, -2.90147, 3.83805, -5.13811, -1.6742, 3.33805, -1.0472, -0.037838, 3.33805, 4.40734, 1.03034, 2.83805, 6.63461, 2.53034, 3.08805, 6.63461, 5.28034, 3.08805, 5.13461, 3.78034, 3.58805, -7.86539, -0.469656, 3.33805, -7.86539, -0.0196552, 3.58805, -3.51538, 0.730345, 3.33805, 3.73462, 4.61368, 3.33805, -0.643164, 4.11368, 4.33805, -4.9765, 2.36368, 3.08805, -7.86539, 1.00534, 3.08805, -6.89038, 1.04539, 3.33805, -3.84644, -27.2197, -0.411951, -5.61539, -27.2197, -0.411951, -3.86539, -26.2197, -0.161951, -3.86539, -26.2197, -0.411951, -5.61539, -23.4697, -0.161951, -0.615385, -23.4697, -0.161951, -1.61539, -24.2197, -0.161951, -1.61539, -24.4697, -0.161951, -0.365385, -23.7197, -0.161951, 0.134615, -26.2197, -0.411951, 0.134615, -23.7197, -0.161951, 0.134615, -24.4697, -0.161951, -0.365385, -26.2197, -0.411951, -0.365385, -13.7197, 1.58805, 9.63461, -14.4697, 1.08805, 9.63461, -13.9697, 1.58805, 10.3846, -20.9697, 0.338049, 4.13461, -20.9697, 0.588049, 3.38461, -21.4697, 0.588049, 3.38461, 13.5303, 1.58805, 10.3846, 14.0303, 1.58805, 9.88461, 12.5303, 1.83805, 9.88461, 12.5303, 1.33805, 11.1346, -14.7197, 0.338049, 13.3846, -16.2197, -0.911951, 11.6346, -16.9697, -0.161951, 13.1346, -12.4697, 0.0880492, 17.1346, 13.5303, 0.338049, 12.1346, 13.5303, 1.58805, 10.3846, 12.5303, 1.33805, 11.1346, 12.0303, 1.08805, 11.6346, 10.2803, 1.08805, 14.3846, -16.7197, 0.338049, 5.63461, -16.9697, 0.588049, 5.63461, -16.7197, -0.411951, 7.13461, -15.9697, -0.161951, 7.88461, -13.7197, 0.838049, 13.3846, -14.7197, 0.338049, 13.3846, -12.4697, 0.0880492, 17.1346, -0.219656, 0.838049, 18.8846, 4.53034, 1.83805, 15.1346, 0.780344, 2.83805, 8.38461, -13.4697, 1.83805, 8.63461, -12.4697, 0.0880492, 17.1346, -6.71966, 0.0880492, 19.6346, 2.03034, 2.83805, 10.6346, -3.49466, 3.08805, 8.45962, -10.6197, 1.83805, 8.58462, -6.49417, 1.58805, 15.6491, -10.9795, 1.83805, 11.1585, -7.99442, 1.33805, 12.6294, -9.46432, 1.58805, 14.1173, -6.4943, 1.33805, 14.1392, -1.98926, 2.33805, 14.1222, -4.9895, 2.58805, 11.1524, -6.47451, 1.83805, 11.1415, -6.45461, 2.58805, 9.65356, -7.95952, 1.58805, 11.1305, -9.47463, 2.08805, 9.63159, -10.9492, 0.588049, 15.6161, -10.9493, 1.33805, 14.1563, -15.9697, -0.161951, 7.88461, -16.7197, -0.411951, 7.13461, -17.7197, -0.911951, 7.38461, -19.7197, -1.41195, 8.63461, -16.9697, -0.161951, 13.1346, -16.2197, -0.911951, 11.6346, -18.3447, -1.41195, 10.8846, -16.9596, -1.16195, 9.6206, 8.78034, 0.838049, 16.1346, 10.5303, 0.338049, 15.3846, 10.2803, 1.08805, 14.3846, -0.219656, 0.838049, 18.8846, 1.78034, 0.588049, 19.3846, 2.28034, 0.838049, 18.8846, 6.03034, 0.838049, 17.8846, 7.78034, 0.588049, 17.8846, 8.78034, 0.838049, 16.1346, -13.4697, 1.83805, 8.63461, -13.7197, 1.58805, 9.63461, -13.7197, 0.838049, 13.3846, -12.4697, 0.0880492, 17.1346, -13.7197, 1.58805, 9.63461, -13.9697, 1.58805, 10.3846, -13.7197, 0.838049, 13.3846, 2.28034, 0.838049, 18.8846, 4.78034, 0.588049, 18.8846, 6.03034, 0.838049, 17.8846, 8.78034, 0.838049, 16.1346, 10.2803, 1.08805, 14.3846, 12.0303, 1.08805, 11.6346, 5.53034, 1.83805, 15.1346, 6.03034, 0.838049, 17.8846, 9.43035, 1.58805, 13.0346, -20.9697, 0.338049, 4.13461, -21.4697, 0.588049, 3.38461, -19.7197, -1.41195, 8.63461, -20.5947, -0.161951, 6.00961, -17.7197, -0.911951, 7.38461, -20.9697, 0.338049, 4.13461, -19.7197, -1.41195, 8.63461, -18.5322, -0.911951, 6.57211, 4.53034, 1.83805, 15.1346, -0.219656, 0.838049, 18.8846, 2.28034, 0.838049, 18.8846, 6.03034, 0.838049, 17.8846, 5.53034, 1.83805, 15.1346, -6.71966, 0.0880492, 19.6346, -0.969656, 0.588049, 19.3846, -0.219656, 0.838049, 18.8846, 4.53034, 6.58805, 14.3846, 12.0303, 6.33805, 10.6346, 8.53034, 6.58805, 4.13461, 1.28034, 6.33805, 7.88461, 3.23034, 9.08805, 11.7846, 10.6303, 8.83805, 8.03462, 8.53041, 8.83805, 8.11455, 7.03544, 9.08805, 9.64751, 8.54552, 7.08805, 11.1134, 8.52045, 8.33805, 9.6585, 5.03034, 2.08805, 13.3846, 11.0303, 1.83805, 10.3846, 8.28034, 2.83805, 5.38461, 2.53034, 2.83805, 8.38461, 7.43035, 1.58805, 12.1846, 5.50534, 2.33805, 8.10961, 8.53041, 2.33805, 9.61455 )
-polygons = [ PoolIntArray( 1, 0, 2 ), PoolIntArray( 2, 0, 3 ), PoolIntArray( 5, 4, 6 ), PoolIntArray( 6, 4, 7 ), PoolIntArray( 12, 17, 13 ), PoolIntArray( 13, 17, 14 ), PoolIntArray( 14, 17, 8 ), PoolIntArray( 8, 17, 9 ), PoolIntArray( 9, 16, 10 ), PoolIntArray( 10, 15, 11 ), PoolIntArray( 11, 15, 12 ), PoolIntArray( 12, 15, 17 ), PoolIntArray( 17, 16, 9 ), PoolIntArray( 16, 15, 10 ), PoolIntArray( 15, 16, 17 ), PoolIntArray( 18, 21, 19 ), PoolIntArray( 19, 21, 20 ), PoolIntArray( 24, 23, 22 ), PoolIntArray( 27, 26, 25 ), PoolIntArray( 29, 28, 30 ), PoolIntArray( 30, 28, 31 ), PoolIntArray( 34, 33, 32 ), PoolIntArray( 35, 38, 36 ), PoolIntArray( 36, 38, 37 ), PoolIntArray( 43, 48, 44 ), PoolIntArray( 44, 48, 39 ), PoolIntArray( 39, 45, 40 ), PoolIntArray( 40, 45, 41 ), PoolIntArray( 41, 46, 42 ), PoolIntArray( 42, 47, 43 ), PoolIntArray( 43, 47, 48 ), PoolIntArray( 48, 45, 39 ), PoolIntArray( 45, 46, 41 ), PoolIntArray( 46, 47, 42 ), PoolIntArray( 47, 46, 48 ), PoolIntArray( 48, 46, 45 ), PoolIntArray( 51, 50, 49 ), PoolIntArray( 53, 52, 54 ), PoolIntArray( 54, 52, 56 ), PoolIntArray( 54, 56, 55 ), PoolIntArray( 58, 57, 59 ), PoolIntArray( 59, 57, 61 ), PoolIntArray( 59, 61, 60 ), PoolIntArray( 62, 66, 63 ), PoolIntArray( 63, 66, 64 ), PoolIntArray( 64, 66, 67 ), PoolIntArray( 67, 66, 65 ), PoolIntArray( 72, 74, 73 ), PoolIntArray( 73, 74, 71 ), PoolIntArray( 73, 71, 70 ), PoolIntArray( 73, 70, 69 ), PoolIntArray( 73, 69, 68 ), PoolIntArray( 76, 75, 77 ), PoolIntArray( 77, 75, 78 ), PoolIntArray( 81, 80, 79 ), PoolIntArray( 85, 86, 82 ), PoolIntArray( 82, 86, 83 ), PoolIntArray( 83, 86, 84 ), PoolIntArray( 88, 87, 89 ), PoolIntArray( 89, 87, 90 ), PoolIntArray( 92, 91, 93 ), PoolIntArray( 93, 91, 94 ), PoolIntArray( 96, 95, 97 ), PoolIntArray( 97, 95, 98 ), PoolIntArray( 100, 99, 101 ), PoolIntArray( 101, 99, 102 ), PoolIntArray( 107, 106, 108 ), PoolIntArray( 108, 106, 109 ), PoolIntArray( 108, 109, 105 ), PoolIntArray( 108, 105, 104 ), PoolIntArray( 108, 104, 103 ), PoolIntArray( 111, 110, 112 ), PoolIntArray( 112, 110, 113 ), PoolIntArray( 125, 120, 119 ), PoolIntArray( 120, 126, 121 ), PoolIntArray( 121, 127, 122 ), PoolIntArray( 122, 115, 114 ), PoolIntArray( 115, 134, 123 ), PoolIntArray( 123, 124, 116 ), PoolIntArray( 124, 132, 117 ), PoolIntArray( 117, 132, 118 ), PoolIntArray( 118, 131, 125 ), PoolIntArray( 125, 126, 120 ), PoolIntArray( 126, 127, 121 ), PoolIntArray( 127, 129, 122 ), PoolIntArray( 122, 134, 115 ), PoolIntArray( 134, 128, 123 ), PoolIntArray( 123, 128, 124 ), PoolIntArray( 124, 128, 132 ), PoolIntArray( 132, 130, 118 ), PoolIntArray( 131, 126, 125 ), PoolIntArray( 118, 130, 131 ), PoolIntArray( 126, 128, 127 ), PoolIntArray( 129, 134, 122 ), PoolIntArray( 127, 128, 129 ), PoolIntArray( 134, 129, 128 ), PoolIntArray( 128, 133, 132 ), PoolIntArray( 132, 133, 130 ), PoolIntArray( 131, 130, 126 ), PoolIntArray( 126, 133, 128 ), PoolIntArray( 133, 126, 130 ), PoolIntArray( 137, 136, 135 ), PoolIntArray( 140, 139, 138 ), PoolIntArray( 143, 142, 141 ), PoolIntArray( 145, 144, 146 ), PoolIntArray( 146, 144, 147 ), PoolIntArray( 149, 148, 150 ), PoolIntArray( 150, 148, 151 ), PoolIntArray( 153, 152, 154 ), PoolIntArray( 154, 152, 155 ), PoolIntArray( 159, 158, 156 ), PoolIntArray( 156, 158, 157 ), PoolIntArray( 160, 162, 161 ), PoolIntArray( 163, 165, 164 ), PoolIntArray( 167, 166, 168 ), PoolIntArray( 168, 166, 169 ), PoolIntArray( 172, 171, 173 ), PoolIntArray( 173, 171, 170 ), PoolIntArray( 173, 170, 174 ), PoolIntArray( 176, 175, 177 ), PoolIntArray( 177, 175, 179 ), PoolIntArray( 177, 179, 178 ), PoolIntArray( 181, 180, 182 ), PoolIntArray( 182, 180, 184 ), PoolIntArray( 182, 184, 183 ), PoolIntArray( 186, 185, 187 ), PoolIntArray( 187, 185, 189 ), PoolIntArray( 187, 189, 188 ), PoolIntArray( 191, 190, 192 ), PoolIntArray( 192, 190, 193 ), PoolIntArray( 196, 195, 194 ), PoolIntArray( 199, 198, 197 ), PoolIntArray( 201, 200, 202 ), PoolIntArray( 202, 200, 203 ), PoolIntArray( 205, 208, 209 ), PoolIntArray( 209, 208, 206 ), PoolIntArray( 206, 208, 204 ), PoolIntArray( 206, 204, 210 ), PoolIntArray( 210, 204, 207 ), PoolIntArray( 213, 212, 216 ), PoolIntArray( 216, 212, 211 ), PoolIntArray( 216, 211, 215 ), PoolIntArray( 216, 215, 214 ), PoolIntArray( 218, 217, 219 ), PoolIntArray( 219, 217, 220 ), PoolIntArray( 220, 217, 221 ), PoolIntArray( 221, 217, 222 ), PoolIntArray( 226, 225, 227 ), PoolIntArray( 227, 225, 224 ), PoolIntArray( 227, 224, 223 ), PoolIntArray( 229, 231, 230 ), PoolIntArray( 230, 231, 228 ), PoolIntArray( 233, 232, 234 ), PoolIntArray( 234, 232, 235 ), PoolIntArray( 235, 232, 236 ), PoolIntArray( 238, 237, 239 ), PoolIntArray( 239, 237, 240 ), PoolIntArray( 242, 241, 243 ), PoolIntArray( 243, 241, 244 ), PoolIntArray( 246, 245, 247 ), PoolIntArray( 247, 245, 250 ), PoolIntArray( 247, 250, 248 ), PoolIntArray( 248, 250, 249 ), PoolIntArray( 264, 278, 256 ), PoolIntArray( 256, 278, 257 ), PoolIntArray( 257, 265, 258 ), PoolIntArray( 258, 279, 251 ), PoolIntArray( 251, 279, 259 ), PoolIntArray( 259, 277, 252 ), PoolIntArray( 252, 260, 253 ), PoolIntArray( 260, 267, 261 ), PoolIntArray( 261, 266, 254 ), PoolIntArray( 254, 272, 255 ), PoolIntArray( 255, 272, 262 ), PoolIntArray( 262, 268, 263 ), PoolIntArray( 263, 271, 264 ), PoolIntArray( 264, 271, 278 ), PoolIntArray( 278, 265, 257 ), PoolIntArray( 265, 276, 258 ), PoolIntArray( 258, 276, 279 ), PoolIntArray( 279, 277, 259 ), PoolIntArray( 277, 273, 252 ), PoolIntArray( 252, 274, 260 ), PoolIntArray( 267, 269, 261 ), PoolIntArray( 260, 274, 267 ), PoolIntArray( 266, 272, 254 ), PoolIntArray( 261, 269, 266 ), PoolIntArray( 272, 266, 262 ), PoolIntArray( 268, 270, 263 ), PoolIntArray( 262, 266, 268 ), PoolIntArray( 263, 273, 271 ), PoolIntArray( 271, 265, 278 ), PoolIntArray( 265, 277, 276 ), PoolIntArray( 276, 277, 279 ), PoolIntArray( 273, 274, 252 ), PoolIntArray( 277, 275, 273 ), PoolIntArray( 267, 270, 269 ), PoolIntArray( 274, 270, 267 ), PoolIntArray( 269, 268, 266 ), PoolIntArray( 270, 273, 263 ), PoolIntArray( 268, 269, 270 ), PoolIntArray( 273, 275, 271 ), PoolIntArray( 271, 275, 265 ), PoolIntArray( 265, 275, 277 ), PoolIntArray( 273, 270, 274 ), PoolIntArray( 281, 280, 282 ), PoolIntArray( 282, 280, 283 ), PoolIntArray( 286, 285, 284 ), PoolIntArray( 290, 289, 287 ), PoolIntArray( 287, 289, 288 ), PoolIntArray( 294, 297, 295 ), PoolIntArray( 295, 297, 296 ), PoolIntArray( 295, 296, 291 ), PoolIntArray( 291, 296, 292 ), PoolIntArray( 292, 296, 293 ), PoolIntArray( 298, 302, 299 ), PoolIntArray( 299, 302, 301 ), PoolIntArray( 299, 301, 300 ), PoolIntArray( 305, 304, 303 ), PoolIntArray( 309, 311, 310 ), PoolIntArray( 310, 311, 306 ), PoolIntArray( 306, 311, 307 ), PoolIntArray( 307, 311, 308 ), PoolIntArray( 308, 311, 309 ), PoolIntArray( 313, 312, 314 ), PoolIntArray( 314, 312, 315 ), PoolIntArray( 318, 317, 316 ), PoolIntArray( 320, 319, 321 ), PoolIntArray( 321, 319, 322 ), PoolIntArray( 324, 323, 325 ), PoolIntArray( 325, 323, 326 ), PoolIntArray( 329, 328, 327 ), PoolIntArray( 333, 332, 330 ), PoolIntArray( 330, 332, 331 ), PoolIntArray( 334, 341, 335 ), PoolIntArray( 335, 341, 336 ), PoolIntArray( 336, 341, 342 ), PoolIntArray( 342, 341, 340 ), PoolIntArray( 342, 340, 343 ), PoolIntArray( 343, 340, 339 ), PoolIntArray( 343, 339, 338 ), PoolIntArray( 343, 338, 337 ), PoolIntArray( 346, 345, 344 ), PoolIntArray( 349, 348, 347 ), PoolIntArray( 353, 352, 350 ), PoolIntArray( 350, 352, 351 ), PoolIntArray( 356, 355, 354 ), PoolIntArray( 359, 358, 357 ), PoolIntArray( 361, 360, 362 ), PoolIntArray( 362, 360, 363 ), PoolIntArray( 366, 365, 364 ), PoolIntArray( 370, 376, 371 ), PoolIntArray( 371, 376, 372 ), PoolIntArray( 372, 376, 375 ), PoolIntArray( 372, 375, 373 ), PoolIntArray( 373, 375, 374 ), PoolIntArray( 373, 374, 367 ), PoolIntArray( 367, 374, 369 ), PoolIntArray( 367, 369, 368 ), PoolIntArray( 386, 387, 381 ), PoolIntArray( 381, 387, 382 ), PoolIntArray( 382, 384, 383 ), PoolIntArray( 383, 378, 377 ), PoolIntArray( 378, 383, 379 ), PoolIntArray( 379, 383, 384 ), PoolIntArray( 384, 388, 385 ), PoolIntArray( 385, 386, 380 ), PoolIntArray( 386, 385, 387 ), PoolIntArray( 387, 388, 382 ), PoolIntArray( 382, 388, 384 ), PoolIntArray( 388, 387, 385 ), PoolIntArray( 392, 391, 389 ), PoolIntArray( 389, 391, 390 ), PoolIntArray( 397, 396, 393 ), PoolIntArray( 393, 396, 395 ), PoolIntArray( 393, 395, 394 ), PoolIntArray( 401, 400, 398 ), PoolIntArray( 398, 400, 399 ), PoolIntArray( 404, 403, 402 ), PoolIntArray( 407, 406, 405 ), PoolIntArray( 409, 408, 410 ), PoolIntArray( 410, 408, 411 ), PoolIntArray( 413, 412, 414 ), PoolIntArray( 414, 412, 415 ), PoolIntArray( 418, 417, 419 ), PoolIntArray( 419, 417, 416 ), PoolIntArray( 419, 416, 420 ), PoolIntArray( 422, 421, 423 ), PoolIntArray( 423, 421, 424 ), PoolIntArray( 427, 426, 425 ), PoolIntArray( 432, 448, 433 ), PoolIntArray( 433, 437, 428 ), PoolIntArray( 428, 442, 429 ), PoolIntArray( 429, 442, 434 ), PoolIntArray( 434, 442, 430 ), PoolIntArray( 430, 442, 435 ), PoolIntArray( 435, 445, 436 ), PoolIntArray( 436, 438, 431 ), PoolIntArray( 431, 449, 432 ), PoolIntArray( 448, 437, 433 ), PoolIntArray( 432, 449, 448 ), PoolIntArray( 437, 442, 428 ), PoolIntArray( 442, 443, 435 ), PoolIntArray( 445, 447, 436 ), PoolIntArray( 435, 443, 445 ), PoolIntArray( 438, 449, 431 ), PoolIntArray( 436, 447, 438 ), PoolIntArray( 448, 440, 437 ), PoolIntArray( 449, 440, 448 ), PoolIntArray( 437, 441, 442 ), PoolIntArray( 442, 441, 443 ), PoolIntArray( 445, 446, 447 ), PoolIntArray( 443, 444, 445 ), PoolIntArray( 438, 440, 449 ), PoolIntArray( 447, 446, 438 ), PoolIntArray( 440, 441, 437 ), PoolIntArray( 441, 444, 443 ), PoolIntArray( 445, 444, 446 ), PoolIntArray( 438, 439, 440 ), PoolIntArray( 446, 439, 438 ), PoolIntArray( 440, 439, 441 ), PoolIntArray( 441, 439, 444 ), PoolIntArray( 444, 439, 446 ), PoolIntArray( 454, 456, 455 ), PoolIntArray( 455, 457, 450 ), PoolIntArray( 450, 452, 451 ), PoolIntArray( 452, 457, 453 ), PoolIntArray( 453, 457, 456 ), PoolIntArray( 456, 457, 455 ), PoolIntArray( 457, 452, 450 ), PoolIntArray( 460, 459, 458 ), PoolIntArray( 463, 462, 461 ), PoolIntArray( 466, 465, 464 ), PoolIntArray( 468, 467, 469 ), PoolIntArray( 469, 467, 470 ), PoolIntArray( 473, 472, 471 ), PoolIntArray( 474, 476, 475 ), PoolIntArray( 479, 478, 482 ), PoolIntArray( 482, 478, 477 ), PoolIntArray( 482, 477, 480 ), PoolIntArray( 480, 477, 481 ), PoolIntArray( 484, 483, 486 ), PoolIntArray( 486, 483, 485 ), PoolIntArray( 487, 489, 490 ), PoolIntArray( 490, 489, 488 ), PoolIntArray( 495, 494, 491 ), PoolIntArray( 491, 494, 493 ), PoolIntArray( 491, 493, 492 ), PoolIntArray( 498, 497, 496 ), PoolIntArray( 501, 506, 502 ), PoolIntArray( 502, 506, 503 ), PoolIntArray( 503, 506, 499 ), PoolIntArray( 499, 507, 500 ), PoolIntArray( 500, 508, 504 ), PoolIntArray( 504, 505, 501 ), PoolIntArray( 501, 505, 506 ), PoolIntArray( 506, 507, 499 ), PoolIntArray( 507, 508, 500 ), PoolIntArray( 508, 505, 504 ), PoolIntArray( 505, 508, 506 ), PoolIntArray( 506, 508, 507 ), PoolIntArray( 511, 514, 512 ), PoolIntArray( 512, 514, 509 ), PoolIntArray( 509, 514, 513 ), PoolIntArray( 513, 515, 510 ), PoolIntArray( 510, 515, 511 ), PoolIntArray( 511, 515, 514 ), PoolIntArray( 514, 515, 513 ) ]
+vertices = PoolVector3Array( -6.71966, 2.08805, -14.1154, -5.71966, 2.08805, -13.6154, -5.46966, 2.08805, -14.1154, -6.96966, 1.58805, -15.1154, -8.46966, 0.588047, -15.1154, -8.46966, 0.588047, -14.6154, -6.96966, 1.58805, -15.1154, -7.46966, 0.588047, -16.8654, -4.71966, -0.411953, -20.3654, -5.46966, 0.588047, -18.3654, -5.46966, 2.08805, -14.1154, 2.53034, 2.33805, -14.1154, 2.53034, -0.161953, -22.1154, -0.219656, -0.161953, -22.3654, -1.34466, 0.088047, -21.8654, -0.4895, 1.33805, -15.8476, -3.45952, 1.83805, -15.8695, -1.95461, 0.588047, -18.8464, -0.219656, -0.161953, -22.3654, -2.46966, -0.411953, -22.6154, -4.71966, -0.411953, -20.3654, -1.34466, 0.088047, -21.8654, -4.71966, -0.411953, -20.3654, -5.46966, -0.161953, -19.3654, -5.46966, 0.588047, -18.3654, -0.219656, -0.161953, -22.3654, -1.71966, -0.911953, -25.3654, -2.46966, -0.411953, -22.6154, -7.46966, 0.588047, -16.8654, -6.96966, 1.58805, -15.1154, -5.46966, 2.08805, -14.1154, -5.46966, 0.588047, -18.3654, 8.03034, -0.161953, -18.6154, 9.53034, -0.911953, -18.6154, 8.03034, -0.161953, -18.8654, 5.28034, 2.08805, -14.1154, 5.53034, 2.08805, -13.6154, 8.78034, 0.838047, -16.8654, 8.03034, 0.838047, -17.3654, 5.28034, 2.08805, -14.1154, 8.03034, 0.838047, -17.3654, 8.03034, -0.161953, -18.6154, 6.03034, -0.411953, -23.1154, 2.53034, -0.161953, -22.1154, 2.53034, 2.33805, -14.1154, 5.51542, 1.08805, -17.3745, 5.52537, -0.161953, -20.3684, 4.04036, -0.161953, -20.3794, 4.03041, 1.33805, -17.3854, 8.03034, -0.161953, -18.6154, 8.03034, -0.161953, -18.8654, 6.03034, -0.411953, -23.1154, 12.7803, 0.588047, -14.6154, 13.5303, 0.088047, -14.8654, 13.7803, -0.411953, -15.3654, 12.0303, -0.161953, -16.3654, 11.7803, 0.588047, -15.3654, 20.2803, -0.161953, -2.61539, 20.0303, -0.161953, -2.86539, 19.0303, 0.588047, -2.86539, 19.0303, 0.838047, -0.865385, 20.0303, -0.161953, -1.11539, 12.5303, 1.08805, 11.6346, 13.5303, 0.588047, 11.8846, 13.5303, 1.58805, 10.3846, 12.7803, 1.58805, 10.3846, 18.0303, 0.838047, -5.36539, 16.7803, 0.838047, -8.36539, 15.0303, 1.08805, -11.1154, 12.7803, 1.58805, 10.3846, 13.5303, 1.58805, 10.3846, 14.0303, 1.58805, 9.88461, 14.0303, 1.58805, 9.88461, 15.7803, 1.08805, 9.38461, 16.7803, 1.08805, 8.13461, 12.7803, 1.58805, 10.3846, 14.0303, 1.58805, 9.88461, 16.7803, 1.08805, 8.13461, 10.2803, 2.83805, 5.63461, 15.4803, 1.58805, 7.63461, 12.7803, 0.838047, -13.8654, 12.7803, 0.588047, -14.6154, 11.7803, 0.588047, -15.3654, 10.7803, 0.838047, -15.3654, 18.7803, 0.838047, 2.38461, 19.2803, 0.588047, 1.88461, 19.0303, 0.838047, -0.865385, 8.03034, 3.08805, 3.38461, 8.78034, 3.08805, 3.38461, 18.7803, 0.838047, 2.38461, 18.0303, 0.838047, -5.36539, 15.0303, 1.08805, -11.1154, 5.53034, 3.58805, -8.86539, 5.80812, 4.08805, -7.50427, 6.64145, 4.33805, -3.42094, 7.47479, 3.08805, 0.662394, 15.9232, 1.83805, 2.67033, 18.4053, 1.08805, -1.49039, 9.60177, 2.83805, -9.82967, 10.0455, 3.83805, -5.38657, 11.5507, 2.58805, -2.34373, 8.53065, 4.08805, -2.36571, 10.0257, 3.33805, -0.888798, 13.0055, 2.08805, -6.88051, 11.5104, 3.08805, -8.35742, 14.5506, 2.08805, -5.3536, 13.0155, 2.33805, -5.36459, 10.0208, 2.83805, 0.638111, 19.0303, 0.588047, -3.61539, 18.7803, 0.588047, -5.11539, 18.0303, 0.838047, -5.36539, 19.0303, 0.588047, -2.86539, 18.2803, 0.588047, -6.86539, 17.7803, 0.588047, -7.86539, 16.7803, 0.838047, -8.36539, 18.0303, 0.838047, -5.36539, 15.0303, 1.08805, -11.1154, 15.0303, 0.838047, -11.6154, 14.0303, 0.588047, -13.1154, 12.7803, 0.838047, -13.8654, 16.7803, 0.838047, -8.36539, 16.7803, 0.838047, -9.11539, 16.0303, 0.588047, -10.6154, 15.0303, 1.08805, -11.1154, 16.7803, 1.08805, 8.13461, 18.0303, 0.838047, 5.38461, 18.7803, 0.838047, 2.38461, 8.78034, 3.08805, 3.38461, 10.2803, 2.83805, 5.63461, 15.4803, 1.58805, 7.63461, 15.9232, 1.83805, 2.67033, 10.7803, 0.838047, -15.3654, 10.7803, 0.338047, -16.6154, 8.78034, 0.838047, -16.8654, 5.53034, 2.08805, -13.6154, 19.0303, 0.838047, -0.865385, 19.0303, 0.588047, -2.86539, 18.0303, 0.838047, -5.36539, 18.7803, 0.838047, 2.38461, 18.4053, 1.08805, -1.49039, 16.7803, 1.08805, 8.13461, 18.0303, 0.338047, 7.63461, 18.0303, 0.838047, 5.38461, 18.0303, 0.838047, 5.38461, 18.7803, 0.588047, 4.88461, 18.7803, 0.838047, 2.38461, 15.0303, 1.08805, -11.1154, 12.7803, 0.838047, -13.8654, 10.7803, 0.838047, -15.3654, 5.53034, 2.08805, -13.6154, 5.53034, 3.58805, -8.86539, 9.60177, 2.83805, -9.82967, 5.53034, 2.83805, -10.0529, 20.0303, -0.161953, -3.61539, 20.0303, -0.161953, -2.86539, 20.2803, -0.161953, -2.61539, 22.0303, -0.911953, -4.61539, 18.2803, 0.088047, -8.11539, 17.7803, 0.588047, -7.86539, 18.2803, 0.588047, -6.86539, 19.2803, -0.161953, -6.61539, 13.7803, -0.411953, -15.3654, 13.5303, 0.088047, -14.8654, 14.5303, -0.161953, -14.1154, 16.2803, -0.911953, -14.6154, 14.0303, 0.588047, -13.1154, 15.0303, 0.838047, -11.6154, 15.2803, 0.588047, -12.1154, 14.5303, 0.338047, -13.3654, 16.2803, -0.911953, -14.6154, 16.0303, 0.088047, -12.1154, 16.5303, -0.161953, -11.6154, 16.5303, 0.338047, -10.8654, 16.0303, 0.588047, -10.6154, 16.7803, 0.838047, -9.11539, 19.2803, 0.088047, -5.36539, 18.7803, 0.588047, -5.11539, 19.0303, 0.588047, -3.61539, 20.0303, -0.161953, -3.61539, 16.5303, -0.161953, -11.6154, 17.7803, -0.161953, -9.36539, 18.2803, -0.161953, -8.86539, 20.0303, -0.911953, -10.1154, 16.2803, -0.911953, -14.6154, 18.2803, -0.161953, -8.86539, 18.2803, 0.088047, -8.11539, 19.2803, -0.161953, -6.61539, 22.0303, -0.911953, -5.36539, 20.0303, -0.911953, -10.1154, 20.0303, -0.161953, -3.61539, 22.0303, -0.911953, -4.61539, 22.0303, -0.911953, -5.36539, 19.2803, -0.161953, -6.61539, 19.2803, 0.088047, -5.36539, 14.5303, 0.338047, -13.3654, 15.2803, 0.588047, -12.1154, 16.0303, 0.088047, -12.1154, 16.2803, -0.911953, -14.6154, 14.5303, -0.161953, -14.1154, 16.5303, 0.338047, -10.8654, 16.7803, 0.838047, -9.11539, 17.7803, -0.161953, -9.36539, 16.5303, -0.161953, -11.6154, -29.9697, -1.66195, -15.1154, -28.7197, -0.661953, -6.86539, -28.4697, -1.66195, -14.3654, -29.9697, -1.66195, -15.1154, -28.4697, -1.66195, -14.3654, -26.9697, -1.91195, -14.6154, -20.2197, 0.838047, -4.11539, -20.2197, 0.588047, -4.61539, -21.2197, 0.088047, -4.86539, -24.2197, -0.411953, -4.11539, -22.8863, -0.411953, -4.11539, -22.2197, -0.411953, -4.61539, -11.4697, -0.161953, -11.3654, -10.4697, -0.161953, -11.6154, -10.4697, -0.411953, -12.3654, -12.2197, -0.911953, -12.8654, -20.9697, -0.661953, -5.86539, -17.7197, -1.16195, -7.36539, -15.9697, -0.911953, -9.11539, -17.2197, -1.41195, -8.30289, -11.4697, 0.088047, -10.8654, -11.4697, -0.161953, -11.3654, -12.2197, -0.911953, -12.8654, -14.7197, -2.16195, -14.6154, -17.7197, -2.41195, -13.6154, -15.9697, -0.911953, -9.11539, -20.9697, -0.661953, -5.86539, -15.9697, -0.911953, -9.11539, -17.7197, -2.41195, -13.6154, -24.2197, -2.16195, -14.3654, -24.2197, -0.411953, -4.11539, -17.2197, -1.41195, -8.30289, -19.0197, -2.66195, -13.7654, -24.2197, -0.411953, -4.11539, -21.2197, 0.088047, -4.86539, -20.9697, -0.661953, -5.86539, -22.2197, -0.411953, -4.61539, -20.2197, 0.588047, -4.61539, -20.2197, 0.838047, -4.11539, -19.4697, 1.33805, -4.11539, -16.2197, 1.58805, -5.36539, -21.9697, 0.338047, 2.63461, -21.4697, 0.588047, 3.38461, -20.9697, 0.588047, 3.38461, -19.9697, 1.08805, 3.13461, -20.2197, 1.33805, 0.134615, -17.7197, 1.33805, 4.13461, -16.9697, 0.588047, 5.63461, -16.7197, 0.338047, 5.63461, -16.9697, 1.58805, 3.38461, -11.7197, 2.08805, -8.61539, -15.2197, 1.58805, -8.11539, -16.2197, 1.58805, -5.36539, -3.71966, 3.58805, -7.86539, -5.71966, 3.08805, -8.11539, -9.27521, 2.83805, -6.75427, -6.49743, 2.83805, -7.30983, -16.2197, 1.58805, -5.36539, -14.4697, 2.08805, 4.88461, -13.4697, 1.83805, 8.63461, 1.03034, 2.83805, 8.63461, 1.03034, 2.58805, 7.38461, -3.71966, 3.58805, -7.86539, -6.49743, 2.83805, -7.30983, -9.27521, 2.83805, -6.75427, -15.4697, 2.33805, -0.972528, -10.5697, 1.83805, 8.63461, -3.31966, 3.08805, 8.63461, 0.166708, 3.33805, 4.61189, -1.56056, 3.33805, -0.933567, -2.85602, 3.83805, -5.09266, -9.46456, 3.83805, -3.85249, -0.493813, 2.33805, 6.62871, -1.97882, 2.58805, 6.61772, -6.48386, 3.08805, 6.63476, -1.98902, 3.33805, 3.64193, -3.49393, 2.58805, 5.11884, -4.95904, 3.33805, 3.61996, -4.95952, 3.33805, -3.86953, -7.98926, 3.08805, 0.622189, -9.48398, 2.83805, 5.12489, -7.94945, 3.83805, -2.3536, -10.9889, 2.08805, 6.6518, -4.95461, 3.58805, -5.34644, -10.9496, 3.08805, -3.86348, -10.9695, 3.33805, -2.37558, -13.9696, 2.58805, -3.88545, -9.71966, 2.33805, -9.86539, -10.4697, 2.33805, -9.86539, -11.7197, 2.08805, -8.61539, -5.71966, 3.08805, -8.11539, -19.9697, 1.08805, 3.13461, -17.7197, 1.33805, 4.13461, -16.9697, 1.58805, 3.38461, -19.7197, 1.58805, -3.11539, -20.2197, 1.58805, -0.615385, -20.2197, 1.33805, 0.134615, -20.2197, 1.33805, 0.134615, -27.9697, -0.911953, 0.134615, -27.9697, -0.911953, 0.634615, -23.2197, -0.411953, 2.88461, -21.9697, 0.338047, 2.63461, -24.0947, -0.411953, 0.134615, -19.9697, 1.08805, 3.13461, -16.9697, 1.58805, 3.38461, -15.9697, 2.08805, 3.13461, -16.2197, 1.58805, -5.36539, -19.4697, 1.33805, -4.11539, -19.7197, 1.58805, -3.11539, -20.2197, 1.33805, 0.134615, -19.9697, 1.08805, 3.13461, -15.9697, 2.08805, 3.13461, -16.0947, 2.33805, -1.11539, -18.4896, 1.83805, 0.642576, -18.4696, 1.33805, 2.11455, -5.71966, 2.08805, -13.6154, -6.71966, 2.08805, -14.1154, -9.71966, 2.33805, -9.86539, -5.71966, 3.08805, -8.11539, -5.71966, 3.08805, -10.8654, -16.2197, 1.58805, -5.36539, -15.9697, 2.08805, 3.13461, -14.4697, 2.08805, 4.88461, -15.4697, 2.33805, -0.972528, -16.0947, 2.33805, -1.11539, -27.4697, 1.58805, -6.11539, -28.2197, 1.58805, -5.86539, -28.2197, 1.58805, -3.61539, -27.4697, 1.58805, -3.36539, -25.2197, 1.58805, -3.36539, -25.2197, 1.58805, -13.6154, -27.4697, 1.58805, -13.6154, -27.4697, 1.58805, -6.11539, -25.2197, 1.58805, -3.36539, -27.4697, 1.58805, -0.865385, -20.2197, 1.58805, -0.615385, -19.7197, 1.58805, -3.11539, -25.2197, 1.58805, -3.36539, -27.4697, 1.58805, -3.36539, -3.46966, 3.83805, -8.36539, -0.469656, 3.83805, -8.36539, -0.469656, 3.83805, -8.86539, -3.46966, 3.83805, -8.86539, -4.71966, 3.83805, -13.1154, -3.46966, 3.83805, -8.86539, -0.469656, 3.83805, -8.86539, -4.71966, 3.83805, -13.1154, -4.71966, 3.83805, -8.86539, -3.46966, 3.83805, -8.86539, 4.03034, 3.83805, -8.61539, 4.53034, 3.83805, -8.86539, 4.53034, 3.83805, -13.1154, -4.71966, 3.83805, -13.1154, -0.469656, 3.83805, -8.86539, 4.53034, 3.83805, -8.86539, 4.03034, 3.83805, -8.61539, 3.78034, 3.58805, -7.86539, 6.28034, 3.08805, 4.63461, 8.03034, 3.08805, 3.38461, 5.53034, 3.58805, -8.86539, 4.3359, 4.33805, -5.08761, 5.44701, 3.33805, 0.467949, 7.47479, 3.08805, 0.662394, 6.64145, 4.33805, -3.42094, 5.80812, 4.08805, -7.50427, 5.03034, 3.08805, 5.63461, 6.28034, 3.08805, 5.13461, 6.28034, 3.08805, 4.63461, 3.78034, 3.58805, -7.86539, 4.03034, 4.33805, -5.16538, 4.40534, 3.33805, -1.11539, 5.44701, 3.33805, 0.467949, 4.3359, 4.33805, -5.08761, -27.2197, -0.411953, -6.86539, -25.4697, -0.411953, -6.86539, -25.4697, -0.411953, -7.86539, -27.2197, -0.411953, -8.61539, -0.469656, 3.33805, -7.86539, -0.469656, 3.83805, -8.36539, -3.46966, 3.83805, -8.36539, -0.469656, 3.33805, -7.86539, -3.46966, 3.83805, -8.36539, -3.71966, 3.58805, -7.86539, 1.03034, 2.58805, 7.38461, 1.28034, 2.83805, 6.88461, 0.930344, 3.33805, 3.93461, -2.85602, 3.83805, -5.09266, -1.56056, 3.33805, -0.933567, 0.166708, 3.33805, 4.61189, 1.28034, 2.83805, 6.88461, 2.78034, 2.83805, 6.88461, 5.03034, 3.08805, 5.63461, 3.78034, 3.58805, -7.86539, -0.469656, 3.33805, -7.86539, 0.930344, 3.33805, 3.93461, 4.40534, 3.33805, -1.11539, 4.03034, 4.33805, -5.16538, 2.36368, 3.08805, -7.86539, 1.00534, 3.08805, -6.89038, 2.53041, 3.58805, -3.88545, -27.2197, -0.411953, -5.61539, -27.2197, -0.411953, -4.11539, -26.2197, -0.411953, -4.86539, -26.2197, -0.411953, -5.61539, -24.2197, -0.411953, -2.86539, -24.2197, -0.411953, -2.11539, -23.4697, -0.411953, -2.61539, -26.9697, -0.411953, -2.61539, -26.2197, -0.411953, -1.86539, -26.4697, -0.411953, -2.61539, -13.7197, 1.58805, 9.63461, -14.4697, 1.08805, 9.63461, -13.9697, 1.58805, 10.3846, -20.9697, 0.338047, 4.13461, -20.9697, 0.588047, 3.38461, -21.4697, 0.588047, 3.38461, -16.7197, 0.338047, 5.63461, -16.9697, 0.588047, 5.63461, -16.7197, -0.411953, 7.13461, -15.9697, -0.161953, 7.88461, -13.4697, 1.83805, 8.63461, -13.7197, 1.58805, 9.63461, -13.7197, 0.838047, 13.3846, -12.4697, 0.088047, 17.1346, -15.9697, -0.161953, 7.88461, -16.7197, -0.411953, 7.13461, -17.7197, -0.911953, 7.38461, -19.7197, -1.41195, 8.63461, -16.9697, -0.161953, 13.1346, -16.2197, -0.911953, 11.6346, -18.3447, -1.41195, 10.8846, -16.9596, -1.16195, 9.6206, 8.78034, 0.838047, 16.1346, 10.5303, 0.338047, 15.3846, 10.2803, 1.08805, 14.3846, -0.219656, 0.838047, 18.8846, 1.78034, 0.588047, 19.3846, 2.28034, 0.838047, 18.8846, 6.03034, 0.838047, 17.8846, 7.78034, 0.588047, 17.8846, 8.78034, 0.838047, 16.1346, 5.78034, 1.83805, 15.3846, 10.2803, 1.08805, 14.3846, 13.5303, 0.588047, 11.8846, 12.5303, 1.08805, 11.6346, -13.7197, 1.58805, 9.63461, -13.9697, 1.58805, 10.3846, -13.7197, 0.838047, 13.3846, 2.28034, 0.838047, 18.8846, 4.78034, 0.588047, 18.8846, 6.03034, 0.838047, 17.8846, -6.71966, 0.088047, 19.6346, -0.969656, 0.588047, 19.3846, -0.219656, 0.838047, 18.8846, 10.2803, 1.08805, 14.3846, 12.5303, 1.08805, 11.6346, 5.78034, 1.83805, 15.3846, 8.78034, 0.838047, 16.1346, 9.15534, 1.58805, 13.5096, -0.219656, 0.838047, 18.8846, 4.53034, 1.83805, 15.3846, 1.03034, 2.83805, 8.63461, -13.4697, 1.83805, 8.63461, -12.4697, 0.088047, 17.1346, -6.71966, 0.088047, 19.6346, 2.19701, 2.83805, 10.8846, -3.31966, 3.08805, 8.63461, -10.5697, 1.83805, 8.63461, -6.49417, 1.58805, 15.6491, -10.9795, 1.83805, 11.1585, -7.95952, 1.58805, 11.1305, -6.4943, 1.33805, 14.1392, -1.98926, 2.33805, 14.1222, -9.46432, 1.58805, 14.1173, -4.9895, 2.58805, 11.1524, -9.47463, 2.08805, 9.63159, -4.96959, 2.83805, 9.61455, -10.9492, 0.588047, 15.6161, -10.9493, 1.33805, 14.1563, -13.7197, 0.838047, 13.3846, -14.7197, 0.338047, 13.3846, -12.4697, 0.088047, 17.1346, 6.03034, 0.838047, 17.8846, 5.78034, 1.83805, 15.3846, 4.53034, 1.83805, 15.3846, -0.219656, 0.838047, 18.8846, 2.28034, 0.838047, 18.8846, -16.9697, -0.161953, 13.1346, -12.4697, 0.088047, 17.1346, -14.7197, 0.338047, 13.3846, -16.2197, -0.911953, 11.6346, -20.9697, 0.338047, 4.13461, -21.4697, 0.588047, 3.38461, -19.7197, -1.41195, 8.63461, -20.5947, -0.161953, 6.00961, -17.7197, -0.911953, 7.38461, -20.9697, 0.338047, 4.13461, -19.7197, -1.41195, 8.63461, -18.5322, -0.911953, 6.57211, 1.53034, 6.33805, 8.13461, 1.53034, 6.83805, 8.88461, 4.78034, 6.58805, 14.6346, 12.0303, 6.33805, 10.8846, 8.78034, 6.58805, 4.38461, 3.48034, 9.08805, 12.3346, 5.98868, 6.58805, 14.0096, 10.7303, 9.08805, 8.28462, 7.03544, 8.83805, 9.64751, 8.52045, 8.83805, 9.6585, 8.53041, 8.58805, 8.11455, 5.28034, 2.08805, 13.6346, 11.0303, 1.83805, 10.6346, 8.53034, 2.83805, 5.63461, 2.53034, 2.83805, 8.63461, 5.51038, 2.08805, 9.64258, 8.53041, 2.33805, 9.61455, 7.05043, 1.83805, 11.1365 )
+polygons = [ PoolIntArray( 1, 0, 2 ), PoolIntArray( 2, 0, 3 ), PoolIntArray( 5, 4, 6 ), PoolIntArray( 6, 4, 7 ), PoolIntArray( 12, 17, 13 ), PoolIntArray( 13, 17, 14 ), PoolIntArray( 14, 17, 8 ), PoolIntArray( 8, 17, 9 ), PoolIntArray( 9, 16, 10 ), PoolIntArray( 10, 15, 11 ), PoolIntArray( 11, 15, 12 ), PoolIntArray( 12, 15, 17 ), PoolIntArray( 17, 16, 9 ), PoolIntArray( 16, 15, 10 ), PoolIntArray( 15, 16, 17 ), PoolIntArray( 18, 21, 19 ), PoolIntArray( 19, 21, 20 ), PoolIntArray( 24, 23, 22 ), PoolIntArray( 27, 26, 25 ), PoolIntArray( 29, 28, 30 ), PoolIntArray( 30, 28, 31 ), PoolIntArray( 34, 33, 32 ), PoolIntArray( 35, 38, 36 ), PoolIntArray( 36, 38, 37 ), PoolIntArray( 43, 48, 44 ), PoolIntArray( 44, 48, 39 ), PoolIntArray( 39, 45, 40 ), PoolIntArray( 40, 45, 41 ), PoolIntArray( 41, 46, 42 ), PoolIntArray( 42, 47, 43 ), PoolIntArray( 43, 47, 48 ), PoolIntArray( 48, 45, 39 ), PoolIntArray( 45, 46, 41 ), PoolIntArray( 46, 47, 42 ), PoolIntArray( 47, 46, 48 ), PoolIntArray( 48, 46, 45 ), PoolIntArray( 51, 50, 49 ), PoolIntArray( 53, 52, 54 ), PoolIntArray( 54, 52, 56 ), PoolIntArray( 54, 56, 55 ), PoolIntArray( 58, 57, 59 ), PoolIntArray( 59, 57, 61 ), PoolIntArray( 59, 61, 60 ), PoolIntArray( 65, 64, 62 ), PoolIntArray( 62, 64, 63 ), PoolIntArray( 68, 67, 66 ), PoolIntArray( 71, 70, 69 ), PoolIntArray( 74, 73, 72 ), PoolIntArray( 77, 76, 79 ), PoolIntArray( 79, 76, 75 ), PoolIntArray( 79, 75, 78 ), PoolIntArray( 81, 80, 82 ), PoolIntArray( 82, 80, 83 ), PoolIntArray( 86, 85, 84 ), PoolIntArray( 98, 93, 92 ), PoolIntArray( 93, 99, 94 ), PoolIntArray( 94, 101, 95 ), PoolIntArray( 95, 88, 87 ), PoolIntArray( 88, 107, 96 ), PoolIntArray( 96, 97, 89 ), PoolIntArray( 97, 105, 90 ), PoolIntArray( 90, 105, 91 ), PoolIntArray( 91, 104, 98 ), PoolIntArray( 98, 99, 93 ), PoolIntArray( 99, 101, 94 ), PoolIntArray( 101, 102, 95 ), PoolIntArray( 95, 107, 88 ), PoolIntArray( 107, 100, 96 ), PoolIntArray( 96, 100, 97 ), PoolIntArray( 97, 100, 105 ), PoolIntArray( 105, 103, 91 ), PoolIntArray( 104, 99, 98 ), PoolIntArray( 91, 103, 104 ), PoolIntArray( 99, 100, 101 ), PoolIntArray( 102, 107, 95 ), PoolIntArray( 101, 100, 102 ), PoolIntArray( 107, 102, 100 ), PoolIntArray( 100, 106, 105 ), PoolIntArray( 105, 106, 103 ), PoolIntArray( 104, 103, 99 ), PoolIntArray( 99, 106, 100 ), PoolIntArray( 106, 99, 103 ), PoolIntArray( 109, 108, 110 ), PoolIntArray( 110, 108, 111 ), PoolIntArray( 113, 112, 114 ), PoolIntArray( 114, 112, 115 ), PoolIntArray( 117, 116, 118 ), PoolIntArray( 118, 116, 119 ), PoolIntArray( 121, 120, 122 ), PoolIntArray( 122, 120, 123 ), PoolIntArray( 124, 129, 125 ), PoolIntArray( 125, 129, 126 ), PoolIntArray( 126, 129, 130 ), PoolIntArray( 130, 129, 128 ), PoolIntArray( 130, 128, 127 ), PoolIntArray( 132, 131, 133 ), PoolIntArray( 133, 131, 134 ), PoolIntArray( 138, 139, 135 ), PoolIntArray( 135, 139, 136 ), PoolIntArray( 136, 139, 137 ), PoolIntArray( 142, 141, 140 ), PoolIntArray( 145, 144, 143 ), PoolIntArray( 150, 152, 151 ), PoolIntArray( 151, 152, 149 ), PoolIntArray( 151, 149, 148 ), PoolIntArray( 151, 148, 147 ), PoolIntArray( 151, 147, 146 ), PoolIntArray( 154, 153, 155 ), PoolIntArray( 155, 153, 156 ), PoolIntArray( 158, 157, 159 ), PoolIntArray( 159, 157, 160 ), PoolIntArray( 162, 161, 163 ), PoolIntArray( 163, 161, 164 ), PoolIntArray( 168, 167, 165 ), PoolIntArray( 165, 167, 166 ), PoolIntArray( 169, 171, 170 ), PoolIntArray( 172, 174, 173 ), PoolIntArray( 176, 175, 177 ), PoolIntArray( 177, 175, 178 ), PoolIntArray( 181, 180, 182 ), PoolIntArray( 182, 180, 179 ), PoolIntArray( 182, 179, 183 ), PoolIntArray( 185, 184, 186 ), PoolIntArray( 186, 184, 188 ), PoolIntArray( 186, 188, 187 ), PoolIntArray( 190, 189, 191 ), PoolIntArray( 191, 189, 193 ), PoolIntArray( 191, 193, 192 ), PoolIntArray( 195, 194, 196 ), PoolIntArray( 196, 194, 198 ), PoolIntArray( 196, 198, 197 ), PoolIntArray( 200, 199, 201 ), PoolIntArray( 201, 199, 202 ), PoolIntArray( 205, 204, 203 ), PoolIntArray( 208, 207, 206 ), PoolIntArray( 210, 209, 211 ), PoolIntArray( 211, 209, 214 ), PoolIntArray( 214, 209, 213 ), PoolIntArray( 214, 213, 212 ), PoolIntArray( 216, 215, 217 ), PoolIntArray( 217, 215, 218 ), PoolIntArray( 221, 220, 222 ), PoolIntArray( 222, 220, 219 ), PoolIntArray( 224, 223, 225 ), PoolIntArray( 225, 223, 226 ), PoolIntArray( 226, 223, 227 ), PoolIntArray( 227, 223, 228 ), PoolIntArray( 230, 234, 231 ), PoolIntArray( 231, 234, 235 ), PoolIntArray( 235, 234, 229 ), PoolIntArray( 235, 229, 232 ), PoolIntArray( 232, 229, 233 ), PoolIntArray( 237, 239, 238 ), PoolIntArray( 238, 239, 236 ), PoolIntArray( 241, 240, 242 ), PoolIntArray( 242, 240, 243 ), PoolIntArray( 245, 244, 246 ), PoolIntArray( 246, 244, 247 ), PoolIntArray( 247, 244, 248 ), PoolIntArray( 250, 249, 251 ), PoolIntArray( 251, 249, 252 ), PoolIntArray( 256, 259, 257 ), PoolIntArray( 257, 259, 258 ), PoolIntArray( 257, 258, 253 ), PoolIntArray( 253, 258, 254 ), PoolIntArray( 254, 258, 255 ), PoolIntArray( 273, 286, 265 ), PoolIntArray( 265, 286, 266 ), PoolIntArray( 266, 274, 267 ), PoolIntArray( 267, 289, 260 ), PoolIntArray( 260, 289, 268 ), PoolIntArray( 268, 288, 261 ), PoolIntArray( 261, 285, 262 ), PoolIntArray( 262, 285, 269 ), PoolIntArray( 269, 277, 270 ), PoolIntArray( 270, 275, 263 ), PoolIntArray( 263, 275, 264 ), PoolIntArray( 264, 275, 271 ), PoolIntArray( 271, 278, 272 ), PoolIntArray( 272, 281, 273 ), PoolIntArray( 273, 281, 286 ), PoolIntArray( 286, 274, 266 ), PoolIntArray( 274, 287, 267 ), PoolIntArray( 267, 287, 289 ), PoolIntArray( 289, 288, 268 ), PoolIntArray( 288, 282, 261 ), PoolIntArray( 261, 283, 285 ), PoolIntArray( 285, 283, 269 ), PoolIntArray( 277, 279, 270 ), PoolIntArray( 269, 283, 277 ), PoolIntArray( 270, 276, 275 ), PoolIntArray( 275, 276, 271 ), PoolIntArray( 278, 280, 272 ), PoolIntArray( 271, 276, 278 ), PoolIntArray( 272, 282, 281 ), PoolIntArray( 281, 274, 286 ), PoolIntArray( 274, 288, 287 ), PoolIntArray( 287, 288, 289 ), PoolIntArray( 282, 283, 261 ), PoolIntArray( 288, 284, 282 ), PoolIntArray( 279, 276, 270 ), PoolIntArray( 277, 280, 279 ), PoolIntArray( 283, 280, 277 ), PoolIntArray( 280, 282, 272 ), PoolIntArray( 278, 279, 280 ), PoolIntArray( 276, 279, 278 ), PoolIntArray( 282, 284, 281 ), PoolIntArray( 281, 284, 274 ), PoolIntArray( 274, 284, 288 ), PoolIntArray( 282, 280, 283 ), PoolIntArray( 291, 290, 292 ), PoolIntArray( 292, 290, 293 ), PoolIntArray( 296, 295, 294 ), PoolIntArray( 299, 298, 297 ), PoolIntArray( 301, 305, 302 ), PoolIntArray( 302, 305, 303 ), PoolIntArray( 303, 305, 304 ), PoolIntArray( 304, 305, 300 ), PoolIntArray( 308, 307, 306 ), PoolIntArray( 313, 317, 314 ), PoolIntArray( 314, 316, 315 ), PoolIntArray( 315, 310, 309 ), PoolIntArray( 310, 315, 311 ), PoolIntArray( 311, 316, 312 ), PoolIntArray( 312, 317, 313 ), PoolIntArray( 317, 316, 314 ), PoolIntArray( 316, 311, 315 ), PoolIntArray( 316, 317, 312 ), PoolIntArray( 318, 322, 319 ), PoolIntArray( 319, 322, 321 ), PoolIntArray( 319, 321, 320 ), PoolIntArray( 323, 326, 327 ), PoolIntArray( 327, 326, 324 ), PoolIntArray( 324, 326, 325 ), PoolIntArray( 329, 328, 330 ), PoolIntArray( 330, 328, 331 ), PoolIntArray( 331, 328, 332 ), PoolIntArray( 334, 333, 335 ), PoolIntArray( 335, 333, 336 ), PoolIntArray( 341, 340, 337 ), PoolIntArray( 337, 340, 338 ), PoolIntArray( 338, 340, 339 ), PoolIntArray( 345, 344, 342 ), PoolIntArray( 342, 344, 343 ), PoolIntArray( 348, 347, 346 ), PoolIntArray( 351, 350, 349 ), PoolIntArray( 353, 352, 354 ), PoolIntArray( 354, 352, 356 ), PoolIntArray( 354, 356, 355 ), PoolIntArray( 358, 357, 359 ), PoolIntArray( 359, 357, 362 ), PoolIntArray( 359, 362, 367 ), PoolIntArray( 359, 367, 363 ), PoolIntArray( 363, 367, 366 ), PoolIntArray( 363, 366, 364 ), PoolIntArray( 364, 366, 365 ), PoolIntArray( 364, 365, 361 ), PoolIntArray( 364, 361, 360 ), PoolIntArray( 369, 368, 370 ), PoolIntArray( 370, 368, 374 ), PoolIntArray( 374, 368, 373 ), PoolIntArray( 374, 373, 375 ), PoolIntArray( 375, 373, 372 ), PoolIntArray( 375, 372, 371 ), PoolIntArray( 377, 376, 378 ), PoolIntArray( 378, 376, 379 ), PoolIntArray( 382, 381, 380 ), PoolIntArray( 386, 391, 387 ), PoolIntArray( 387, 391, 388 ), PoolIntArray( 388, 391, 390 ), PoolIntArray( 388, 390, 389 ), PoolIntArray( 388, 389, 383 ), PoolIntArray( 383, 389, 385 ), PoolIntArray( 383, 385, 384 ), PoolIntArray( 400, 401, 396 ), PoolIntArray( 396, 402, 397 ), PoolIntArray( 397, 393, 392 ), PoolIntArray( 393, 397, 394 ), PoolIntArray( 394, 397, 398 ), PoolIntArray( 398, 402, 399 ), PoolIntArray( 399, 400, 395 ), PoolIntArray( 401, 402, 396 ), PoolIntArray( 400, 399, 401 ), PoolIntArray( 402, 398, 397 ), PoolIntArray( 402, 401, 399 ), PoolIntArray( 406, 405, 403 ), PoolIntArray( 403, 405, 404 ), PoolIntArray( 409, 408, 407 ), PoolIntArray( 412, 411, 410 ), PoolIntArray( 415, 414, 413 ), PoolIntArray( 418, 417, 416 ), PoolIntArray( 420, 419, 421 ), PoolIntArray( 421, 419, 422 ), PoolIntArray( 424, 423, 425 ), PoolIntArray( 425, 423, 426 ), PoolIntArray( 431, 433, 432 ), PoolIntArray( 432, 434, 427 ), PoolIntArray( 427, 429, 428 ), PoolIntArray( 429, 434, 430 ), PoolIntArray( 430, 434, 433 ), PoolIntArray( 433, 434, 432 ), PoolIntArray( 434, 429, 427 ), PoolIntArray( 437, 436, 435 ), PoolIntArray( 440, 439, 438 ), PoolIntArray( 442, 441, 443 ), PoolIntArray( 443, 441, 444 ), PoolIntArray( 447, 446, 445 ), PoolIntArray( 450, 449, 448 ), PoolIntArray( 451, 453, 452 ), PoolIntArray( 456, 455, 454 ), PoolIntArray( 458, 457, 461 ), PoolIntArray( 461, 457, 460 ), PoolIntArray( 461, 460, 459 ), PoolIntArray( 466, 480, 467 ), PoolIntArray( 467, 471, 462 ), PoolIntArray( 462, 475, 463 ), PoolIntArray( 463, 475, 468 ), PoolIntArray( 468, 475, 464 ), PoolIntArray( 464, 475, 469 ), PoolIntArray( 469, 479, 470 ), PoolIntArray( 470, 472, 465 ), PoolIntArray( 465, 481, 466 ), PoolIntArray( 480, 471, 467 ), PoolIntArray( 466, 481, 480 ), PoolIntArray( 471, 475, 462 ), PoolIntArray( 475, 477, 469 ), PoolIntArray( 479, 478, 470 ), PoolIntArray( 469, 477, 479 ), PoolIntArray( 472, 481, 465 ), PoolIntArray( 470, 478, 472 ), PoolIntArray( 480, 476, 471 ), PoolIntArray( 481, 476, 480 ), PoolIntArray( 471, 474, 475 ), PoolIntArray( 475, 474, 477 ), PoolIntArray( 479, 473, 478 ), PoolIntArray( 477, 473, 479 ), PoolIntArray( 472, 476, 481 ), PoolIntArray( 478, 473, 472 ), PoolIntArray( 476, 474, 471 ), PoolIntArray( 474, 473, 477 ), PoolIntArray( 472, 473, 476 ), PoolIntArray( 476, 473, 474 ), PoolIntArray( 484, 483, 482 ), PoolIntArray( 486, 485, 487 ), PoolIntArray( 487, 485, 489 ), PoolIntArray( 487, 489, 488 ), PoolIntArray( 493, 492, 490 ), PoolIntArray( 490, 492, 491 ), PoolIntArray( 495, 494, 497 ), PoolIntArray( 497, 494, 496 ), PoolIntArray( 498, 500, 501 ), PoolIntArray( 501, 500, 499 ), PoolIntArray( 509, 512, 506 ), PoolIntArray( 506, 512, 502 ), PoolIntArray( 502, 510, 503 ), PoolIntArray( 503, 510, 507 ), PoolIntArray( 507, 508, 504 ), PoolIntArray( 508, 511, 505 ), PoolIntArray( 505, 511, 509 ), PoolIntArray( 509, 511, 512 ), PoolIntArray( 512, 510, 502 ), PoolIntArray( 510, 508, 507 ), PoolIntArray( 508, 510, 511 ), PoolIntArray( 511, 510, 512 ), PoolIntArray( 515, 517, 516 ), PoolIntArray( 516, 517, 513 ), PoolIntArray( 513, 519, 514 ), PoolIntArray( 514, 518, 515 ), PoolIntArray( 515, 518, 517 ), PoolIntArray( 517, 519, 513 ), PoolIntArray( 519, 518, 514 ), PoolIntArray( 518, 519, 517 ) ]
+filter_walkable_low_height_spans = true
[sub_resource type="SpatialMaterial" id=10]
albedo_texture = ExtResource( 3 )
@@ -35,12 +38,6 @@ script = ExtResource( 1 )
[node name="Draw" type="ImmediateGeometry" parent="."]
-[node name="DirectionalLight" type="DirectionalLight" parent="."]
-transform = Transform( 0.162328, 0.903359, 0.396979, 0.342289, -0.428885, 0.836, 0.925467, 0.000175375, -0.378829, 0, 10.8967, 0 )
-shadow_enabled = true
-directional_shadow_depth_range = 1
-directional_shadow_max_distance = 8192.0
-
[node name="Water" parent="." instance=ExtResource( 7 )]
transform = Transform( 10000, 0, 0, 0, 100, 0, 0, 0, 10000, 0, 0, 0 )
@@ -49,7 +46,7 @@ transform = Transform( 10000, 0, 0, 0, 100, 0, 0, 0, 10000, 0, 0, 0 )
[node name="island" parent="WORLDGEO" instance=ExtResource( 6 )]
[node name="dock_prop" parent="WORLDGEO" instance=ExtResource( 8 )]
-transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 0.794522, -23.7914, 4.93151, -6.93803 )
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 0.794522, -23.7914, 4.93151, -6.78761 )
[node name="house" parent="WORLDGEO" instance=ExtResource( 9 )]
transform = Transform( 0.479394, 0.044261, -0.876483, -0.0919361, 0.995765, 2.73991e-09, 0.872771, 0.0805805, 0.481432, 6.69452, -0.752387, 9.33614 )
@@ -57,34 +54,40 @@ transform = Transform( 0.479394, 0.044261, -0.876483, -0.0919361, 0.995765, 2.73
[node name="battery" parent="WORLDGEO" instance=ExtResource( 4 )]
[node name="Ladder" parent="WORLDGEO" instance=ExtResource( 12 )]
-transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.47917, 4.03772, 1.65595 )
+transform = Transform( -4.37114e-08, 0, -1, 0, 5, 0, 1, 0, -4.37114e-08, 27.2981, 0.114466, -0.737169 )
[node name="Ladder2" parent="WORLDGEO" instance=ExtResource( 12 )]
-transform = Transform( 1, 0, 0, 0, 6.25774, -0.780005, 0, 7.80005, 0.625774, 5.21365, 8.18254, 1.65595 )
+transform = Transform( -0.866025, 0, -0.5, 0, 3.5, 0, 0.5, 0, -0.866025, 6.42983, 4.82559, 4.9338 )
+
+[node name="Runway" parent="WORLDGEO" instance=ExtResource( 13 )]
+transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 32.5651, 0, 36.5712 )
[node name="MACHINES" type="Spatial" parent="."]
[node name="Gunboat" parent="MACHINES" instance=ExtResource( 10 )]
-transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -31.3856, 0.295246, -9.61152 )
+transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -30.9834, 0.444645, -9.61152 )
[node name="Gunboat2" parent="MACHINES" instance=ExtResource( 10 )]
-transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.23753, 0.911655, -35.0974 )
+transform = Transform( 0.575476, 0, 0.817818, 0, 1, 0, -0.817818, 0, 0.575476, -5.00988, 0.911655, -27.3661 )
[node name="Cannon" parent="MACHINES" instance=ExtResource( 2 )]
transform = Transform( 2.98023e-08, 0, 1, 0, 1, 0, -1, 0, 2.98023e-08, -3.28944, 3.51975, -13.2337 )
[node name="Cannon2" parent="MACHINES" instance=ExtResource( 2 )]
-transform = Transform( 2.98023e-08, 0, 1, 0, 1, 0, -1, 0, 2.98023e-08, 1.99678, 3.51975, -13.0005 )
+transform = Transform( -0.186575, 0, -0.982441, 0, 1, 0, 0.982441, 0, -0.186575, 2.83363, 3.51975, -10.6698 )
[node name="CaptureFlag" parent="MACHINES" instance=ExtResource( 11 )]
transform = Transform( -0.854422, 0, 0.519579, 0, 1, 0, -0.519579, 0, -0.854422, -2.70943, 2.59075, 8.79298 )
+[node name="Airplane" parent="MACHINES" instance=ExtResource( 14 )]
+transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 30.8999, 5.13129, -8.23008 )
+
[node name="BALLISTICS" type="Spatial" parent="."]
[node name="PLAYERS" type="Spatial" parent="."]
[node name="Player" parent="PLAYERS" instance=ExtResource( 5 )]
-transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.66215, 0 )
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 28.8794, 2.55194, 2.65124 )
[node name="Player2" parent="PLAYERS" instance=ExtResource( 5 )]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -10.1844, 3.62129, 0.930942 )
@@ -100,7 +103,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.71668, 5.22026, -2.44181 )
navmesh = SubResource( 14 )
[node name="house2" parent="worldnavmesh" instance=ExtResource( 9 )]
-transform = Transform( 0.479393, 0.044261, -0.876483, -0.0919361, 0.995765, 2.73991e-09, 0.872771, 0.0805805, 0.481432, 6.69449, 2.69972, 9.33616 )
+transform = Transform( 0.479393, 0.044261, -0.876483, -0.0919361, 0.995765, 2.73991e-09, 0.872771, 0.0805805, 0.481432, 6.69449, -0.773598, 9.33616 )
visible = false
[node name="MeshInstance2" type="MeshInstance" parent="worldnavmesh"]
@@ -113,7 +116,7 @@ skeleton = NodePath("../../WORLDGEO/battery")
visible = false
[node name="dockfake" type="MeshInstance" parent="worldnavmesh"]
-transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -21.4142, 0.192101, -0.834306 )
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -21.4142, 0.192101, -1.88659 )
visible = false
mesh = SubResource( 15 )
@@ -128,6 +131,12 @@ visible = false
mesh = SubResource( 16 )
[node name="DEFAULTCAM" type="Camera" parent="."]
-transform = Transform( -0.503125, -0.271213, 0.820554, 0, 0.94948, 0.313827, -0.864213, 0.157894, -0.477708, 33.419, 22.3952, -35.2718 )
+transform = Transform( -0.507541, -0.600446, 0.617953, -0.0365804, 0.731562, 0.680792, -0.860851, 0.322925, -0.393262, 12.1857, 17.0183, -13.3083 )
current = true
far = 8192.0
+
+[node name="START" type="Spatial" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -31.246, 1.53391, -8.93427 )
+
+[node name="END" type="Spatial" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.78024, 7.54454, 7.34734 )
diff --git a/godot/materials/housetexture.material b/godot/materials/housetexture.material
index 188f3c5..a0988f5 100644
--- a/godot/materials/housetexture.material
+++ b/godot/materials/housetexture.material
Binary files differ
diff --git a/godot/project.godot b/godot/project.godot
index 9366827..2dd3f76 100644
--- a/godot/project.godot
+++ b/godot/project.godot
@@ -194,10 +194,16 @@ chat={
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":89,"unicode":0,"echo":false,"script":null)
]
}
+move_walk={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":0,"physical_scancode":16777237,"unicode":0,"echo":false,"script":null)
+ ]
+}
[physics]
common/enable_pause_aware_picking=true
+3d/active_soft_world=false
[rendering]
diff --git a/godot/scenes/GameBase.tscn b/godot/scenes/GameBase.tscn
index eaa6c86..6764b81 100644
--- a/godot/scenes/GameBase.tscn
+++ b/godot/scenes/GameBase.tscn
@@ -1,8 +1,9 @@
-[gd_scene load_steps=4 format=2]
+[gd_scene load_steps=5 format=2]
[ext_resource path="res://scenes/environment/Water.tscn" type="PackedScene" id=1]
[ext_resource path="res://ui/HUD.tscn" type="PackedScene" id=2]
[ext_resource path="res://scripts/GameBase.gd" type="Script" id=3]
+[ext_resource path="res://scripts/cameras/PlayerCamGDS.gd" type="Script" id=4]
[node name="GAMEWORLD" type="Spatial"]
script = ExtResource( 3 )
@@ -23,3 +24,7 @@ transform = Transform( 6000, 0, 0, 0, 100, 0, 0, 0, 6000, 0, 0, 0 )
[node name="DEFAULTCAM" type="Camera" parent="."]
current = true
far = 8192.0
+
+[node name="PLAYERCAM" type="ClippedCamera" parent="."]
+far = 8192.0
+script = ExtResource( 4 )
diff --git a/godot/scenes/characters/PlayerRigid.tscn b/godot/scenes/characters/PlayerRigid.tscn
index 8f61532..89c9df0 100644
--- a/godot/scenes/characters/PlayerRigid.tscn
+++ b/godot/scenes/characters/PlayerRigid.tscn
@@ -1,13 +1,14 @@
-[gd_scene load_steps=9 format=2]
+[gd_scene load_steps=11 format=2]
[ext_resource path="res://scripts/characters/player_controller_new.gd" type="Script" id=1]
[ext_resource path="res://theming/FreeMono.otf" type="DynamicFontData" id=2]
[ext_resource path="res://scenes/characters/PlayerAreaDetect.gd" type="Script" id=3]
[sub_resource type="PhysicsMaterial" id=3]
+resource_local_to_scene = true
rough = true
-[sub_resource type="BoxShape" id=1]
+[sub_resource type="BoxShape" id=6]
extents = Vector3( 0.325, 0.9, 0.325 )
[sub_resource type="CubeMesh" id=2]
@@ -22,67 +23,78 @@ outline_size = 3
use_filter = true
font_data = ExtResource( 2 )
+[sub_resource type="BoxShape" id=1]
+extents = Vector3( 0.325, 0.9, 0.325 )
+
+[sub_resource type="CylinderMesh" id=7]
+top_radius = 0.01
+bottom_radius = 0.01
+height = 0.3
+radial_segments = 6
+
[node name="Soldier" type="RigidBody" groups=["playable", "player"]]
collision_layer = 32769
collision_mask = 32769
mode = 2
mass = 80.0
physics_material_override = SubResource( 3 )
-contacts_reported = 5
+continuous_cd = true
+contacts_reported = 3
contact_monitor = true
can_sleep = false
-axis_lock_angular_x = true
-axis_lock_angular_y = true
-axis_lock_angular_z = true
linear_damp = 0.0
angular_damp = 0.0
script = ExtResource( 1 )
[node name="Collision" type="CollisionShape" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0 )
-shape = SubResource( 1 )
+shape = SubResource( 6 )
-[node name="Head" type="Spatial" parent="."]
+[node name="Neck" type="Spatial" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.44, 0 )
-[node name="Camera" type="Camera" parent="Head"]
-keep_aspect = 0
-cull_mask = 524287
-fov = 90.0
-near = 0.2
-far = 1449.4
+[node name="Head" type="Spatial" parent="Neck"]
-[node name="UseRay" type="RayCast" parent="Head/Camera"]
+[node name="UseRay" type="RayCast" parent="Neck/Head"]
+unique_name_in_owner = true
enabled = true
cast_to = Vector3( 0, 0, -2.5 )
collision_mask = 131075
collide_with_areas = true
-[node name="MeleeRay" type="RayCast" parent="Head/Camera"]
+[node name="MeleeRay" type="RayCast" parent="Neck/Head"]
+unique_name_in_owner = true
enabled = true
cast_to = Vector3( 0, 0, -2.5 )
collision_mask = 262145
collide_with_areas = true
-[node name="viewmodel_c" type="ViewportContainer" parent="Head"]
+[node name="Camera" type="Camera" parent="Neck/Head"]
+keep_aspect = 0
+cull_mask = 524287
+fov = 90.0
+near = 0.2
+far = 1449.4
+
+[node name="viewmodel_c" type="ViewportContainer" parent="Neck"]
visible = false
margin_right = 1024.0
margin_bottom = 600.0
-[node name="viewmodel" type="Viewport" parent="Head/viewmodel_c"]
+[node name="viewmodel" type="Viewport" parent="Neck/viewmodel_c"]
size = Vector2( 1024, 600 )
transparent_bg = true
handle_input_locally = false
render_target_update_mode = 0
-[node name="vm_camera" type="Camera" parent="Head/viewmodel_c/viewmodel"]
+[node name="vm_camera" type="Camera" parent="Neck/viewmodel_c/viewmodel"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.539779, 0 )
cull_mask = 524288
current = true
fov = 90.0
far = 75.9
-[node name="MeshInstance" type="MeshInstance" parent="Head/viewmodel_c/viewmodel"]
+[node name="MeshInstance" type="MeshInstance" parent="Neck/viewmodel_c/viewmodel"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0266792, -0.813922 )
layers = 524288
mesh = SubResource( 2 )
@@ -114,5 +126,9 @@ script = ExtResource( 3 )
[node name="Collision" type="CollisionShape" parent="AreaDetect"]
shape = SubResource( 1 )
+[node name="normal_vis" type="MeshInstance" parent="."]
+mesh = SubResource( 7 )
+skeleton = NodePath("../Feet")
+
[connection signal="area_entered" from="AreaDetect" to="AreaDetect" method="_on_AreaDetect_area_entered"]
[connection signal="area_exited" from="AreaDetect" to="AreaDetect" method="_on_AreaDetect_area_exited"]
diff --git a/godot/scenes/environment/Ladder.tscn b/godot/scenes/environment/Ladder.tscn
index ee99c68..96c5e36 100644
--- a/godot/scenes/environment/Ladder.tscn
+++ b/godot/scenes/environment/Ladder.tscn
@@ -1,4 +1,4 @@
-[gd_scene load_steps=7 format=2]
+[gd_scene load_steps=8 format=2]
[ext_resource path="res://scenes/environment/Ladder.gd" type="Script" id=1]
@@ -24,6 +24,11 @@ func _ready():
transform.origin.y += 0.2 / get_parent().scale.y
"
+[sub_resource type="NavigationMesh" id=6]
+vertices = PoolVector3Array( -0.5, 0.425, -0.5, -0.5, 0.425, 0.5, 0.5, 0.425, 0.5, 0.5, 0.425, -0.5 )
+polygons = [ PoolIntArray( 3, 2, 0 ), PoolIntArray( 0, 2, 1 ) ]
+agent_radius = 0.0
+
[node name="Ladder" type="Spatial"]
script = ExtResource( 1 )
@@ -46,3 +51,11 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0.5 )
[node name="Top" type="Spatial" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0.5 )
script = SubResource( 3 )
+
+[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."]
+transform = Transform( 1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0 )
+navmesh = SubResource( 6 )
+
+[node name="DebugVisMesh" type="MeshInstance" parent="NavigationMeshInstance"]
+transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0, 0 )
+mesh = SubResource( 1 )
diff --git a/godot/scenes/machines/Cannon.tscn b/godot/scenes/machines/Cannon.tscn
index e84f74a..20627fc 100644
--- a/godot/scenes/machines/Cannon.tscn
+++ b/godot/scenes/machines/Cannon.tscn
@@ -1,6 +1,6 @@
[gd_scene load_steps=11 format=2]
-[ext_resource path="res://bin/networked_machine.gdns" type="Script" id=1]
+[ext_resource path="res://scripts/machines/Cannon.gd" type="Script" id=1]
[ext_resource path="res://sounds/explode.wav" type="AudioStream" id=2]
[sub_resource type="PhysicsMaterial" id=8]
@@ -62,10 +62,8 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.13452, 0, 0 )
stream = ExtResource( 2 )
unit_db = 9.0
-[node name="Camera" type="Camera" parent="YawJoint/PitchJoint"]
+[node name="CameraPoint" type="Spatial" parent="YawJoint/PitchJoint"]
transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -0.513577, 0.363402, 0 )
-fov = 44.6
-far = 8192.0
[node name="SteerArea" type="Area" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.935472, 0.123637, 0 )
diff --git a/godot/scenes/vehicles/Airplane.tscn b/godot/scenes/vehicles/Airplane.tscn
index 2b46297..ec79c66 100644
--- a/godot/scenes/vehicles/Airplane.tscn
+++ b/godot/scenes/vehicles/Airplane.tscn
@@ -1,13 +1,13 @@
[gd_scene load_steps=14 format=2]
[ext_resource path="res://scripts/vehicles/Airplane.gd" type="Script" id=1]
-[ext_resource path="res://scripts/cameras/plane_armcam.gd" type="Script" id=2]
+[ext_resource path="res://particles/RocketTrail.tscn" type="PackedScene" id=2]
[sub_resource type="PhysicsMaterial" id=1]
rough = true
[sub_resource type="Curve" id=10]
-_data = [ Vector2( 0, 0.119632 ), 0.0, 0.0, 0, 0, Vector2( 0.172819, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.823825, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0 ), 0.0, 0.0, 0, 0 ]
+_data = [ Vector2( 0, 0.509091 ), 0.0, 0.0, 0, 0, Vector2( 0.172819, 1 ), 0.0, 0.0, 0, 0, Vector2( 0.823825, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.463636 ), 0.0, 0.0, 0, 0 ]
[sub_resource type="CurveTexture" id=11]
width = 1024
@@ -125,10 +125,8 @@ mesh = SubResource( 8 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1.22602, 0.452069, 0 )
spring_length = 15.0
margin = 0.03
-script = ExtResource( 2 )
[node name="ClippedCamera" type="ClippedCamera" parent="armcam"]
-current = true
fov = 79.2
near = 0.12
far = 8192.0
@@ -143,13 +141,24 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.02202, 0.828033, 0 )
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.02201, 0.827813, -5.21093 )
[node name="tail" type="Spatial" parent="."]
-transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -4.3164, 0.456713, 0 )
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.47682, 0.456713, 0 )
-[node name="TugArea" type="Area" parent="."]
+[node name="RocketTrail" parent="tail" instance=ExtResource( 2 )]
+unique_name_in_owner = true
+transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0 )
+emitting = false
+
+[node name="SteerArea" type="Area" parent="."]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 4.58015, -0.728266, 0 )
collision_layer = 131072
collision_mask = 0
-[node name="CollisionShape" type="CollisionShape" parent="TugArea"]
+[node name="CollisionShape" type="CollisionShape" parent="SteerArea"]
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.47757, 0 )
shape = SubResource( 9 )
+
+[node name="Cockpit" type="Spatial" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.72698, -0.196514, 0 )
+
+[node name="PilotExit" type="Spatial" parent="."]
+transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.1653, -0.196514, 0 )
diff --git a/godot/scenes/vehicles/Gunboat.tscn b/godot/scenes/vehicles/Gunboat.tscn
index 5719cff..6b447d6 100644
--- a/godot/scenes/vehicles/Gunboat.tscn
+++ b/godot/scenes/vehicles/Gunboat.tscn
@@ -91,11 +91,12 @@ extents = Vector3( 0.115313, 0.934506, 1.68658 )
extents = Vector3( 2.14672, 0.239365, 1.59078 )
[sub_resource type="NavigationMesh" id=26]
-vertices = PoolVector3Array( 11.5, 0.12649, -2.25, 14.75, 0.12649, -1.25, 14.75, 0.12649, -2.25, 13, 1.12649, 0.75, 13, 1.12649, -0.5, 12, 0.12649, -1, 8, 0.62649, -1.5, 8.5, 0.62649, 1.5, 9.625, 0.12649, 1.3125, 11.875, 0.12649, 0.9375, 8.33333, 0.12649, 0.5, -6, 0.62649, 1, -6.25, 1.37649, 2.25, -4, 1.37649, 2.25, -4.25, 0.62649, 1, -1.75, 0.12649, -1.75, -11.75, 0.62649, -1.75, -6.5, 0.12649, 1, -6, 0.62649, 1, -4.9375, 0.12649, 0.3125, -3.75, 0.12649, 1, -3.75, 0.12649, 1.75, 0, 0.62649, 1.75, 8.5, 0.62649, 1.5, 8, 0.62649, -1.5, -1.75, 0.12649, -1.75, 1.41667, 0.12649, 1.70833, 7.08333, 0.12649, 1.54167, 8.33333, 0.12649, 0.5, 1.99502, 0.12649, 0.496974, -1.025, 0.12649, 0.475, -1.75, 0.12649, -1.75, -4.25, 0.62649, 1, -3.75, 0.12649, 1, -3.41667, 0.12649, 0.0833333, -1.75, 0.12649, -1.75, -6, 0.62649, 1, -4.25, 0.62649, 1, -3.41667, 0.12649, 0.0833333, -4.9375, 0.12649, 0.3125, -11.75, 0.62649, -1.75, -15.25, 0.12649, -1.25, -15.25, -0.12351, 1.25, -6.5, 0.12649, 1.75, -6.5, 0.12649, 1, 15.5, 1.87649, -0.75, 12, 1.62649, -1.5, 13.5, 1.87649, -0.75, 13.5, 1.87649, 0.75, 13, 1.87649, 1.25, 15.75, 1.87649, 0.75, 13.5, 1.87649, 0.75, 15.75, 1.87649, 0.75, 15.5, 1.87649, -0.75, 13.5, 1.87649, -0.75, 11.5, 0.12649, 2, 14.75, 0.12649, 2.25, 14.75, 0.12649, 1.5 )
-polygons = [ PoolIntArray( 2, 1, 0 ), PoolIntArray( 7, 10, 8 ), PoolIntArray( 8, 10, 6 ), PoolIntArray( 8, 6, 9 ), PoolIntArray( 9, 6, 5 ), PoolIntArray( 9, 5, 4 ), PoolIntArray( 9, 4, 3 ), PoolIntArray( 14, 13, 11 ), PoolIntArray( 11, 13, 12 ), PoolIntArray( 18, 17, 19 ), PoolIntArray( 19, 17, 15 ), PoolIntArray( 15, 17, 16 ), PoolIntArray( 24, 29, 25 ), PoolIntArray( 25, 30, 20 ), PoolIntArray( 20, 30, 21 ), PoolIntArray( 21, 30, 22 ), PoolIntArray( 22, 29, 26 ), PoolIntArray( 26, 29, 27 ), PoolIntArray( 27, 28, 23 ), PoolIntArray( 28, 27, 24 ), PoolIntArray( 29, 30, 25 ), PoolIntArray( 24, 27, 29 ), PoolIntArray( 30, 29, 22 ), PoolIntArray( 32, 34, 33 ), PoolIntArray( 33, 34, 31 ), PoolIntArray( 36, 39, 37 ), PoolIntArray( 37, 39, 38 ), PoolIntArray( 38, 39, 35 ), PoolIntArray( 41, 40, 42 ), PoolIntArray( 42, 40, 44 ), PoolIntArray( 42, 44, 43 ), PoolIntArray( 47, 46, 45 ), PoolIntArray( 50, 49, 48 ), PoolIntArray( 54, 53, 51 ), PoolIntArray( 51, 53, 52 ), PoolIntArray( 57, 56, 55 ) ]
+vertices = PoolVector3Array( 4.5, 1.37649, -2.25, 4.5, 1.37649, -2, 6.25, 1.37649, -2, 6.25, 1.37649, -2.25, 14.5, 0.12649, -1.5, 14.5, 0.12649, -1.25, 14.75, 0.12649, -1.25, 14.75, 0.12649, -2.25, 13.75, 0.12649, -1.75, 13.75, 0.12649, -1.5, 14.5, 0.12649, -1.5, 14.75, 0.12649, -2.25, 11.5, 0.12649, -2.25, 11.5, 0.12649, -2, 12.75, 0.12649, -2, 14.75, 0.12649, -2.25, 12.75, 0.12649, -2, 12.75, 0.12649, -1.75, 13.75, 0.12649, -1.75, 14.75, 0.12649, -2.25, -6, 1.37649, 2, -6.25, 1.37649, 2, -6.25, 1.37649, 2.25, -4, 1.37649, 2.25, -4, 1.37649, 2, -4.25, 1.37649, 2, 13, 1.12649, 0.75, 13, 1.12649, -0.5, 12, 0.12649, -0.75, 11, 0.12649, 1, 12, 0.12649, 0.875, -6, 1.37649, 2, -6.25, 1.37649, 2.25, -4, 1.37649, 2.25, -4.25, 1.37649, 2, 8, 0.12649, -1.25, 8, 0.62649, -1.5, 3.5, 0.12649, -1.5, -6, 0.62649, 1, -6, 1.37649, 2, -4.25, 1.37649, 2, -4.25, 0.62649, 1, -11.75, 0.12649, -1.5, -14.25, 0.12649, 1.25, -14.25, 0.62649, 1.5, -6.5, 0.12649, 1.75, -6.5, 0.12649, 1, -4.25, 0.62649, 1, -3.75, 0.12649, 1, -4.25, 0.12649, -1.75, 11, 0.12649, 1, 12, 0.12649, -0.75, 12, 0.12649, -1, 8, 0.12649, -1.25, 8.5, 0.12649, 1.25, 8.5, 0.12649, 1.25, 11, 0.12649, 1.25, 11, 0.12649, 1, -11.75, 0.12649, -1.5, -14.25, 0.12649, -1.5, -14.25, 0.12649, -1.25, -15.25, 0.12649, -1.25, -15.25, -0.12351, 1.25, -14.25, 0.12649, 1.25, -14.25, 0.12649, -1.25, -6, 0.62649, 1, -4.25, 0.62649, 1, -4.25, 0.12649, -1.75, -5.41667, 0.12649, 0.0833333, -11.75, 0.12649, -1.5, -14.25, 0.12649, -1.25, -14.25, 0.12649, 1.25, 0, 0.12649, 1.5, 3.5, 0.12649, -1.5, 3.5, 0.62649, -1.75, -4.25, 0.12649, -1.75, -3.75, 0.12649, 1, -4.25, 0.12649, -1.75, -11.75, 0.62649, -1.75, -11.75, 0.12649, -1.5, -6.5, 0.12649, 1, -6, 0.62649, 1, -5.41667, 0.12649, 0.0833333, 8.5, 0.62649, 1.5, 8.5, 0.12649, 1.25, 8, 0.12649, -1.25, 3.5, 0.12649, -1.5, 0, 0.12649, 1.5, 7.08333, 0.12649, 1.5, -3.75, 0.12649, 1.75, 0, 0.62649, 1.75, 0, 0.12649, 1.5, -3.75, 0.12649, 1, 10.25, 1.37649, -1.75, 10.25, 1.37649, -1.5, 11.5, 1.62649, -1.5, 11.5, 1.62649, -1.75, 13.5, 1.87649, 0.75, 13, 1.87649, 1, 13, 1.87649, 1.25, 14.75, 1.87649, 1, 14.75, 1.87649, 0.75, 14.5, 1.87649, -0.75, 14.5, 1.62649, -1, 13.75, 1.87649, -1, 13.5, 1.87649, -0.75, 15.5, 1.87649, -0.5, 15.5, 1.87649, -0.75, 14.5, 1.87649, -0.75, 14.75, 1.87649, 0.75, 15.5, 1.87649, -0.5, 14.5, 1.87649, -0.75, 13.5, 1.87649, -0.75, 13.5, 1.87649, 0.75, 13.5, 1.87649, -0.75, 13.75, 1.87649, -1, 13.75, 1.62649, -1.25, 12, 1.62649, -1.5, 12, 1.62649, -1.25, 15.75, 1.87649, 0.75, 15.75, 1.87649, -0.5, 15.5, 1.87649, -0.5, 14.75, 1.87649, 0.75, 12.75, 0.12649, 2, 11.5, 0.12649, 2, 11.5, 0.12649, 2.25, 14.75, 0.12649, 2.25, 14.75, 0.12649, 2.25, 14.75, 0.12649, 1.5, 12.75, 0.12649, 1.75, 12.75, 0.12649, 2, -13, 1.37649, 2, -13, 1.37649, 2.25, -11.75, 1.37649, 2.25, -11.75, 1.37649, 2, 2.25, 1.37649, 2, 2.25, 1.37649, 2.25, 6.25, 1.37649, 2.25, 6.25, 1.37649, 2 )
+polygons = [ PoolIntArray( 3, 2, 0 ), PoolIntArray( 0, 2, 1 ), PoolIntArray( 5, 4, 6 ), PoolIntArray( 6, 4, 7 ), PoolIntArray( 9, 8, 10 ), PoolIntArray( 10, 8, 11 ), PoolIntArray( 13, 12, 14 ), PoolIntArray( 14, 12, 15 ), PoolIntArray( 17, 16, 18 ), PoolIntArray( 18, 16, 19 ), PoolIntArray( 22, 21, 20 ), PoolIntArray( 25, 24, 23 ), PoolIntArray( 26, 30, 27 ), PoolIntArray( 27, 30, 28 ), PoolIntArray( 28, 30, 29 ), PoolIntArray( 34, 33, 31 ), PoolIntArray( 31, 33, 32 ), PoolIntArray( 37, 36, 35 ), PoolIntArray( 41, 40, 38 ), PoolIntArray( 38, 40, 39 ), PoolIntArray( 43, 42, 44 ), PoolIntArray( 44, 42, 46 ), PoolIntArray( 44, 46, 45 ), PoolIntArray( 49, 48, 47 ), PoolIntArray( 51, 50, 52 ), PoolIntArray( 52, 50, 54 ), PoolIntArray( 52, 54, 53 ), PoolIntArray( 57, 56, 55 ), PoolIntArray( 60, 59, 58 ), PoolIntArray( 64, 63, 61 ), PoolIntArray( 61, 63, 62 ), PoolIntArray( 65, 68, 66 ), PoolIntArray( 66, 68, 67 ), PoolIntArray( 69, 71, 70 ), PoolIntArray( 73, 72, 74 ), PoolIntArray( 74, 72, 76 ), PoolIntArray( 74, 76, 75 ), PoolIntArray( 81, 80, 82 ), PoolIntArray( 82, 80, 77 ), PoolIntArray( 77, 80, 79 ), PoolIntArray( 77, 79, 78 ), PoolIntArray( 83, 88, 84 ), PoolIntArray( 84, 88, 85 ), PoolIntArray( 85, 88, 86 ), PoolIntArray( 86, 88, 87 ), PoolIntArray( 90, 89, 91 ), PoolIntArray( 91, 89, 92 ), PoolIntArray( 96, 95, 93 ), PoolIntArray( 93, 95, 94 ), PoolIntArray( 98, 97, 99 ), PoolIntArray( 99, 97, 100 ), PoolIntArray( 100, 97, 101 ), PoolIntArray( 103, 102, 104 ), PoolIntArray( 104, 102, 105 ), PoolIntArray( 108, 107, 106 ), PoolIntArray( 110, 109, 111 ), PoolIntArray( 111, 109, 112 ), PoolIntArray( 112, 109, 113 ), PoolIntArray( 115, 114, 116 ), PoolIntArray( 116, 114, 118 ), PoolIntArray( 116, 118, 117 ), PoolIntArray( 120, 119, 121 ), PoolIntArray( 121, 119, 122 ), PoolIntArray( 124, 123, 125 ), PoolIntArray( 125, 123, 126 ), PoolIntArray( 130, 129, 127 ), PoolIntArray( 127, 129, 128 ), PoolIntArray( 134, 133, 131 ), PoolIntArray( 131, 133, 132 ), PoolIntArray( 138, 137, 135 ), PoolIntArray( 135, 137, 136 ) ]
agent_height = 1.8
agent_radius = 0.18
agent_max_slope = 46.0
+edge_max_error = 0.68
[sub_resource type="CubeMesh" id=27]
size = Vector3( 30, 0.1, 5 )
@@ -274,7 +275,7 @@ transform = Transform( 1, 0, 0, 0, 0.771436, 0.636307, 0, -0.636307, 0.771436, -
mesh = SubResource( 29 )
[node name="CollisionShape9" type="CollisionShape" parent="."]
-transform = Transform( 1, 0, 0, 0, 0.771436, 0.636307, 0, -0.636307, 0.771436, -5.03993, 0.255733, 1.26566 )
+transform = Transform( 1, 0, 0, 0, 0.855174, 0.51834, 0, -0.51834, 0.855174, -5.03993, 0.255733, 1.26566 )
shape = SubResource( 30 )
[node name="Ladder" parent="." instance=ExtResource( 5 )]
diff --git a/godot/scenes/weapons/rockets.gd b/godot/scenes/weapons/rockets.gd
index 56282e1..c519fd6 100644
--- a/godot/scenes/weapons/rockets.gd
+++ b/godot/scenes/weapons/rockets.gd
@@ -22,14 +22,14 @@ func attack1():
if cooldown_time <= 0.0 and ammo >= 1:
ammo -= 1
cooldown_time = reload_time
- rpc("add_rocket_to_scene", player.cam.global_transform.basis, get_tree().get_network_unique_id())
+ rpc("add_rocket_to_scene", player.head.global_transform.basis, get_tree().get_network_unique_id())
remotesync func add_rocket_to_scene(dir, id):
var rocket = preload("res://scenes/ballistics/Rocket.tscn").instance()
world.get_node("BALLISTICS").add_child(rocket, true)
rocket.shooter = player.name + " (" + world.players_info[player.get_network_master()][0] + ")"
rocket.shooter_id = id
- rocket.global_transform.origin = player.cam.global_transform.origin
+ rocket.global_transform.origin = player.head.global_transform.origin
rocket.global_transform.basis = Basis(-1*dir.z, dir.y, dir.x)
rocket.add_collision_exception_with(player)
diff --git a/godot/scenes/worldprops/Runway.tscn b/godot/scenes/worldprops/Runway.tscn
new file mode 100644
index 0000000..e827cd2
--- /dev/null
+++ b/godot/scenes/worldprops/Runway.tscn
@@ -0,0 +1,23 @@
+[gd_scene load_steps=5 format=2]
+
+[ext_resource path="res://textures/conc_slabs01_c.png" type="Texture" id=1]
+
+[sub_resource type="SpatialMaterial" id=1]
+albedo_texture = ExtResource( 1 )
+uv1_scale = Vector3( 0.1, 0.1, 0.1 )
+uv1_triplanar = true
+
+[sub_resource type="CubeMesh" id=2]
+material = SubResource( 1 )
+size = Vector3( 100, 5, 10 )
+
+[sub_resource type="ConvexPolygonShape" id=3]
+points = PoolVector3Array( -50, -2.5, -5, -50, 2.5, -5, 50, -2.5, -5, -50, -2.5, 5, -50, 2.5, 5, 50, 2.5, -5, 50, -2.5, 5, 50, 2.5, 5 )
+
+[node name="Runway" type="StaticBody"]
+
+[node name="MeshInstance" type="MeshInstance" parent="."]
+mesh = SubResource( 2 )
+
+[node name="CollisionShape" type="CollisionShape" parent="."]
+shape = SubResource( 3 )
diff --git a/godot/scripts/GameBase.gd b/godot/scripts/GameBase.gd
index 0df53dd..be430d4 100644
--- a/godot/scripts/GameBase.gd
+++ b/godot/scripts/GameBase.gd
@@ -8,6 +8,7 @@ var local_server_tree = null
var player_name : String
var player_team : String
var player_char = null
+onready var cam = $PLAYERCAM
var players_info = {} #dictionary of id : name, team, ping, etc.
@@ -28,6 +29,7 @@ remote func set_up_server_info(info):
$HUD/ServerJoinMenu/MOTD.text = info["MOTD"]
$HUD/ServerJoinMenu/ServerName.text = info["server_name"]
$DEFAULTCAM.transform = info["cam_pos"]
+ cam.attach($DEFAULTCAM, "STATIC")
rpc_id(1, "_call_on_server", "_client_connection_confirmed", {"id" : client_id, "username" : player_name})
diff --git a/godot/scripts/World.gd b/godot/scripts/World.gd
index fa5a306..7e60423 100644
--- a/godot/scripts/World.gd
+++ b/godot/scripts/World.gd
@@ -5,19 +5,25 @@ var m = SpatialMaterial.new()
var winddir = Vector3(1,0,0)
onready var pathfinder = get_node("PLAYERS/Player2")
var path = []
-var map_rid
+var map_rids
var client_id
var player_char
var players_info = {}
+var WORLD_MAP_RID : RID
# Called when the node enters the scene tree for the first time.
func _ready():
- map_rid = NavigationServer.get_maps()
- for rid in map_rid:
- NavigationServer.map_set_edge_connection_margin(rid,1)
+ map_rids = NavigationServer.get_maps()
+ for rid in map_rids:
+ NavigationServer.map_set_edge_connection_margin(rid,1.5)
m.flags_unshaded = true
m.flags_use_point_size = true
m.albedo_color = Color.white
+
+ #merge all nav meshes onto the main map
+ yield(get_tree().create_timer(1.0), "timeout")
+ WORLD_MAP_RID = get_world().get_navigation_map()
+ find_path()
remotesync func update_players_info(info):
players_info = info
@@ -26,13 +32,22 @@ remote func _call_on_server(function, arguments):
print('Remote server call: ' + function)
$Server.call(function, arguments)
-func find_path(to):
- pathfinder.nav.set_target_location(to)
- var t_path = pathfinder.nav.get_next_location()
- pathfinder.should_move = true
- t_path = pathfinder.nav.get_nav_path()
- print(to)
- print(t_path)
+func find_path():
+ var start_pos = $START.global_transform.origin
+ var end_pos = $END.global_transform.origin
+ var t_path = NavigationServer.map_get_path(WORLD_MAP_RID, start_pos, end_pos, true)
+ var path_end = t_path[len(t_path)-1]
+ #is path end near desired end
+ #if not, is the end point in an unreachable region?
+ for rid in map_rids:
+ print("map " + str(rid.get_id()))
+ for region_rid in NavigationServer.map_get_regions(rid):
+ print("region " + str(region_rid.get_id()))
+ if NavigationServer.region_owns_point(region_rid, end_pos):
+ print("owns target point")
+ if NavigationServer.region_owns_point(region_rid, path_end):
+ print("owns end point")
+ print( (end_pos - t_path[len(t_path)-1]).length() )
draw_path(t_path)
pass
diff --git a/godot/scripts/ballistics/Cannonball.gd b/godot/scripts/ballistics/Cannonball.gd
index 14de00c..d1937f4 100644
--- a/godot/scripts/ballistics/Cannonball.gd
+++ b/godot/scripts/ballistics/Cannonball.gd
@@ -13,5 +13,5 @@ func get_init_info():
func _on_collision(body):
if oldvel.length() > 20 and !damage_exceptions.has(body) and body.has_method("damage"):
- body.rpc("damage", oldvel.length(), "blunt", shooter, "using 'cannon'")
+ body.rpc("damage", oldvel.length(), "blunt", [shooter_id, shooter], "using 'cannon'")
damage_exceptions.append(body)
diff --git a/godot/scripts/cameras/PlayerCamGDS.gd b/godot/scripts/cameras/PlayerCamGDS.gd
new file mode 100644
index 0000000..ec46cf8
--- /dev/null
+++ b/godot/scripts/cameras/PlayerCamGDS.gd
@@ -0,0 +1,79 @@
+extends ClippedCamera
+
+var _modes = ["STATIC", "FIRSTPERSON", "THIRDPERSON", "ARM", "FREECAM"]
+var mode = "STATIC" #STATIC, FIRSTPERSON, THIRDPERSON, ARM, FREECAM
+
+#first/third person variables
+var head : Spatial = null
+var neck : Spatial = null
+var player : RigidBody = null
+
+#third person/arm variables
+var arm : SpringArm = null
+
+var mouse_axis := Vector2()
+var mouse_sensitivity = 12.0
+
+func _ready():
+ Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
+ current = true
+
+func _input(event):
+ if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
+ mouse_axis = event.relative
+ match mode:
+ "FIRSTPERSON":
+ mouse_firstperson()
+ "THIRDPERSON":
+ mouse_thirdperson()
+ "STATIC":
+ pass
+ "ARM":
+ mouse_arm()
+ "FREECAM":
+ mouse_freecam()
+ _:
+ pass
+
+func attach(new_parent: Node, c_mode, extra_path = "."):
+ if get_parent():
+ get_parent().remove_child(self)
+ if c_mode in _modes:
+ mode = c_mode
+ if mode == "FIRSTPERSON":
+ head = new_parent.head; neck = new_parent.neck;
+ arm = null;
+ elif mode == "THIRDPERSON":
+ head = new_parent.head; neck = new_parent.neck;
+ arm = new_parent.arm
+ elif mode == "ARM":
+ head = null; neck = null;
+ arm = new_parent.arm
+ else:
+ head = null; neck = null; arm = null;
+ new_parent.get_node(extra_path).add_child(self)
+ transform = Transform.IDENTITY
+
+func mouse_firstperson() -> void:
+ if mouse_axis.length_squared() > 0:
+ var horizontal: float = -mouse_axis.x * (mouse_sensitivity / 100)
+ var vertical: float = -mouse_axis.y * (mouse_sensitivity / 100)
+
+ neck.rotate_y(deg2rad(horizontal))
+ head.rotate_x(deg2rad(vertical))
+
+ #vertical clamp
+ head.rotation_degrees.x = clamp(head.rotation_degrees.x, -90, 90)
+
+func mouse_thirdperson() -> void:
+ arm.rotation_degrees.x = clamp(rotation_degrees.x-mouse_axis.y*(mouse_sensitivity / 100),-90,90)
+ arm.rotation_degrees.y -= mouse_axis.x*(mouse_sensitivity / 100)
+ head.rotation_degrees.x = arm.rotation_degrees.x
+ neck.rotation_degrees.y = arm.rotation_degrees.y
+
+func mouse_arm() -> void:
+ arm.rotation_degrees.x = clamp(rotation_degrees.x-mouse_axis.y*(mouse_sensitivity / 100),-70,70)
+ arm.rotation_degrees.y -= mouse_axis.x*(mouse_sensitivity / 100)
+
+func mouse_freecam() -> void:
+ pass
diff --git a/godot/scripts/cameras/plane_armcam.gd b/godot/scripts/cameras/plane_armcam.gd
index edb0284..68b4852 100644
--- a/godot/scripts/cameras/plane_armcam.gd
+++ b/godot/scripts/cameras/plane_armcam.gd
@@ -14,12 +14,6 @@ func _ready():
func _input(event):
if $ClippedCamera.current:
- if Input.is_action_just_pressed("menu"): #toggle mouse capture on esc
- if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE:
- Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
- else:
- Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
-
if Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
if event is InputEventMouseMotion:
rotation_degrees.x = clamp(rotation_degrees.x-event.relative.y*0.1,-70,70)
diff --git a/godot/scripts/cameras/player_firstperson.gd b/godot/scripts/cameras/player_firstperson.gd
deleted file mode 100644
index ace49e6..0000000
--- a/godot/scripts/cameras/player_firstperson.gd
+++ /dev/null
@@ -1,33 +0,0 @@
-extends Camera
-
-
-var mouse_axis := Vector2()
-var mouse_sensitivity = 12.0
-
-func _ready():
- Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
- current = false
-
-
-func _input(event):
- if current:
- if Input.is_action_just_pressed("menu"): #toggle mouse capture on esc
- if Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE:
- Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
- else:
- Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
- if event is InputEventMouseMotion and Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED:
- mouse_axis = event.relative
- if mouse_axis.length() > 0:
- var horizontal: float = -mouse_axis.x * (mouse_sensitivity / 100)
- var vertical: float = -mouse_axis.y * (mouse_sensitivity / 100)
-
- mouse_axis = Vector2()
-
- get_parent().rotate_y(deg2rad(horizontal))
- rotate_x(deg2rad(vertical))
-
- var temp_rot: Vector3 = rotation_degrees
- temp_rot.x = clamp(temp_rot.x, -90, 90)
- get_parent().animationcontroller.rpc("lean",-1*temp_rot.x/90)
- rotation_degrees = temp_rot
diff --git a/godot/scripts/characters/player_controller_new.gd b/godot/scripts/characters/player_controller_new.gd
index 6df88f0..deaea79 100644
--- a/godot/scripts/characters/player_controller_new.gd
+++ b/godot/scripts/characters/player_controller_new.gd
@@ -10,8 +10,8 @@ var world
export(float) var mouse_sensitivity = 12.0
export(float) var FOV = 90.0
var mouse_axis := Vector2()
-onready var head: Spatial = $Head
-onready var cam: Camera = $Head/Camera
+onready var head: Spatial = $Neck/Head
+onready var neck: Spatial = $Neck
# Move
var velocity := Vector3()
@@ -38,6 +38,7 @@ var ladder_m = null
#physics
var player_state : PhysicsDirectBodyState
var is_on_floor:bool
+var floor_normal : Vector3 = Vector3.UP
var acceleration = 80.0
export(int) var walk_speed = 5
var c_friction = 4.0
@@ -48,15 +49,11 @@ func _ready() -> void:
weapon = preload("res://scenes/weapons/w_Rockets.tscn").instance()
add_child(weapon)
world = get_tree().get_root().get_node("GAMEWORLD")
- if is_player:
- cam.current = true
- $Head/Camera/UseRay.add_exception(self)
- $Head/Camera/MeleeRay.add_exception(self)
- $Head/Camera/UseRay.add_exception($AreaDetect)
- $Head/Camera/MeleeRay.add_exception($AreaDetect)
- Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
- cam.fov = FOV
+ $"%UseRay".add_exception(self)
+ $"%MeleeRay".add_exception(self)
+ $"%UseRay".add_exception($AreaDetect)
+ $"%MeleeRay".add_exception($AreaDetect)
func get_init_info():
return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "controlling_machine" : controlling_machine, "team" : team, "health" : health, "nametag" : $Nametag.text}
@@ -82,6 +79,8 @@ func _process(_delta: float) -> void:
if Input.is_action_just_pressed("fire2"):
machine.attack2()
machine.direction_input(Input.get_action_strength("move_forward"),Input.get_action_strength("move_backward"), Input.get_action_strength("move_right"),Input.get_action_strength("move_left"), Input.get_action_strength("alt_right"),Input.get_action_strength("alt_left"))
+ machine.misc_input(Input.get_action_strength("move_duck"),Input.get_action_strength("move_jump"),Input.get_action_strength("move_walk"))
+ machine.mouse_input(Input.get_action_strength("fire"), Input.get_action_strength("fire3"),Input.get_action_strength("fire2"))
else:
jumping = Input.get_action_strength("move_jump")
if Input.is_action_just_pressed("fire"):
@@ -97,8 +96,8 @@ func initiate_use():
if ladder_m != null:
leave_ladder()
return
- if $Head/Camera/UseRay.is_colliding():
- var area_c = $Head/Camera/UseRay.get_collider()
+ if $"%UseRay".is_colliding():
+ var area_c = $"%UseRay".get_collider()
match area_c.name:
"SteerArea":
world.rpc_id(1, "_call_on_server", "_client_request_control_vehicle", {"id" : world.client_id, "machine_path" : area_c.get_parent().get_path(), "char_name" : name})
@@ -121,17 +120,16 @@ remotesync func set_net_owner(owner_id):
$Nametag.visible = false
world.player_char = self
is_player = true
- cam.current = true
+ world.cam.attach(self, "FIRSTPERSON", "./Neck/Head")
else:
$Nametag.visible = true
- cam.current = false
is_player = false
world.get_node("HUD").update_characters()
func deselect_character():
if is_network_master():
world.player_char = null
- world.get_node("DEFAULTCAM").current = true
+ if world.client_id != 1: world.cam.attach(world, "STATIC", "./DEFAULTCAM")
rpc("set_net_owner", 1)
func take_control_of_machine(slave_machine):
@@ -139,8 +137,7 @@ func take_control_of_machine(slave_machine):
controlling_machine = true
func lose_machine():
- if is_player:
- cam.current = true
+ if is_network_master(): world.cam.attach(self, "FIRSTPERSON", "./Neck/Head")
controlling_machine = false
machine = null
@@ -153,19 +150,20 @@ func _physics_process(delta: float) -> void:
swim(delta)
else:
walk(delta)
- rpc("set_phys_transform", transform, linear_velocity)
is_on_floor = false #reset whether is on floor in between frames
# called each physics frame
func on_floor_test() -> bool:
if $Feet.is_colliding():
is_on_floor = true
+ floor_normal = Vector3.UP
floorspeed = $Feet.get_collider().get_linear_velocity() if $Feet.get_collider().has_method("get_linear_velocity") else Vector3.ZERO
return true
if player_state:
for i in range(player_state.get_contact_count()):
var contact_angle_from_up : float = Vector3.UP.angle_to(player_state.get_contact_local_normal(i))
if contact_angle_from_up < FLOOR_MAX_ANGLE:
+ floor_normal = player_state.get_contact_local_normal(i)
is_on_floor = true
return true
return false
@@ -174,6 +172,7 @@ func on_floor_test() -> bool:
func _integrate_forces(state) -> void:
player_state = state
velocity = state.get_linear_velocity()
+ $normal_vis.look_at($normal_vis.global_transform.origin + global_transform.basis.z, floor_normal)
for i in range(player_state.get_contact_count()):
var contact_angle_from_up : float = Vector3.UP.angle_to(player_state.get_contact_local_normal(i))
if contact_angle_from_up > FLOOR_MAX_ANGLE and !is_on_floor:
@@ -181,13 +180,8 @@ func _integrate_forces(state) -> void:
break
if i == player_state.get_contact_count() - 1:
friction = 1
-
-# on input event
-func _input(event: InputEvent) -> void:
- if is_player:
- if event is InputEventMouseMotion:
- mouse_axis = event.relative
- camera_rotation()
+ if is_network_master():
+ rpc("set_phys_transform", transform, linear_velocity)
func walk(_delta:float) -> void:
# Input
@@ -197,6 +191,8 @@ func walk(_delta:float) -> void:
direction.y = 0
direction = direction.normalized()
+ if floor_normal != Vector3.UP: direction = direction.rotated(floor_normal.cross(Vector3.UP).normalized(), Vector3.UP.angle_to(floor_normal))
+
# Jump
if is_player and jumping and is_on_floor and can_jump:
jump()
@@ -212,7 +208,7 @@ func walk(_delta:float) -> void:
var projVel = Vector2(velocity.x-floorspeed.x,velocity.z-floorspeed.z).dot(Vector2(direction.x,direction.z))
if is_on_floor:
- add_central_force(-mass*linear_velocity.normalized()*c_friction)#friction
+ add_central_force(-mass*_cspeed*linear_velocity.normalized()*c_friction)#friction
if _speed - _cspeed > 0:
add_central_force (mass*Vector3(direction.x*_temp_accel, 0, direction.z*_temp_accel))#velocity.x += direction.x*_temp_accel
else:
@@ -231,7 +227,7 @@ func swim(_delta):
add_central_force(Vector3.UP*weight*1.0)
add_central_force(-1*linear_velocity*75)
#controls
- var dir: Basis = cam.get_global_transform().basis
+ var dir: Basis = head.get_global_transform().basis
var m_dir: Vector3 = -move_axis.x * dir.z + move_axis.y * dir.x
m_dir = m_dir.normalized()
add_central_force(swim_speed*m_dir)
@@ -293,22 +289,5 @@ remotesync func remove_dead_character():
deselect_character()
queue_free()
-func camera_rotation() -> void:
- if Input.get_mouse_mode() != Input.MOUSE_MODE_CAPTURED:
- return
- if mouse_axis.length() > 0:
- var horizontal: float = -mouse_axis.x * (mouse_sensitivity / 100)
- var vertical: float = -mouse_axis.y * (mouse_sensitivity / 100)
-
- mouse_axis = Vector2()
-
- head.rotate_y(deg2rad(horizontal))
- cam.rotate_x(deg2rad(vertical))
-
- # Clamp mouse rotation
- var temp_rot: Vector3 = cam.rotation_degrees
- temp_rot.x = clamp(temp_rot.x, -90, 90)
- cam.rotation_degrees = temp_rot
-
remotesync func net_apply_impulse(impulse_v):
apply_central_impulse(impulse_v)
diff --git a/godot/scripts/machines/Cannon.gd b/godot/scripts/machines/Cannon.gd
index 15807bf..437a20b 100644
--- a/godot/scripts/machines/Cannon.gd
+++ b/godot/scripts/machines/Cannon.gd
@@ -1,4 +1,4 @@
-extends "res://bin/networked_machine.gdns"
+extends "res://scripts/machines/NetworkedMachineGDS.gd"
var world_ballistics = null
@@ -33,13 +33,13 @@ func mp_init(init_info):
# Called when the node enters the scene tree for the first time.
func _ready():
- if get_parent().name != "MACHINES":
+ if get_parent().name != "MACHINES": #if cannon is aboard ship
add_collision_exception_with(get_parent())
mode = RigidBody.MODE_STATIC
world_ballistics = world.get_node("BALLISTICS")
func on_new_control():
- $YawJoint/PitchJoint/Camera.current = true
+ if is_network_master(): world.cam.attach(self, "STATIC", "./YawJoint/PitchJoint/CameraPoint")
func _physics_process(delta):
if cooldown > 0:
@@ -72,8 +72,10 @@ remotesync func fire():
add_collision_exception_with(cball)
cball.global_transform.origin = muzzle.global_transform.origin
cball.linear_velocity = muzzle.global_transform.basis.x*ball_speed
+ cball.shooter = user.name + " (" + world.players_info[user.get_network_master()][0] + ")"
+ cball.shooter_id = user.get_network_master()
cooldown = fire_rate
if mode == RigidBody.MODE_STATIC:
get_parent().apply_impulse($YawJoint/PitchJoint.global_transform.origin - get_parent().global_transform.origin, -5*cball.mass*ball_speed*muzzle.global_transform.basis.x)
else:
- apply_impulse($YawJoint/PitchJoint.global_transform.origin - global_transform.origin, -1*cball.mass*ball_speed*muzzle.global_transform.basis.x)
+ if is_network_master(): apply_impulse($YawJoint/PitchJoint.global_transform.origin - global_transform.origin, -1*cball.mass*ball_speed*muzzle.global_transform.basis.x)
diff --git a/godot/scripts/machines/NetworkedMachineGDS.gd b/godot/scripts/machines/NetworkedMachineGDS.gd
index 5ce5cbe..3f2d420 100644
--- a/godot/scripts/machines/NetworkedMachineGDS.gd
+++ b/godot/scripts/machines/NetworkedMachineGDS.gd
@@ -5,6 +5,7 @@ var user = null
var world = null
func _ready():
+ print("net machine loads world")
world = get_tree().get_root().find_node("GAMEWORLD", true, false)
remote func update_phys_transform(t, lv, av):
@@ -52,3 +53,9 @@ func attack2():
func direction_input(_fwd,_bwd,_left,_right,_left2,_right2):
pass
+
+func misc_input(_ctrl,_space,_shift):
+ pass
+
+func mouse_input(_m1,_m3,_m2): #used for long-press actions
+ pass
diff --git a/godot/scripts/vehicles/Airplane.gd b/godot/scripts/vehicles/Airplane.gd
index cf3c21a..aa1f492 100644
--- a/godot/scripts/vehicles/Airplane.gd
+++ b/godot/scripts/vehicles/Airplane.gd
@@ -2,8 +2,10 @@ extends VehicleBody
var countdown
var boosting = false
+var boost_pressed = false
const booster_force = 2500
const brake_force = 50
+var brake_control : float = 0.0
const boost_length = 8
const turn_constant = 0.45
const roll_constant = 0.5
@@ -20,35 +22,94 @@ var vel_slow
var parentvel = [Vector3.ZERO, Vector3.ZERO]
export var roll_curve : CurveTexture
+#net machine variables
+var in_use : bool = false
+var user = null
+var world = null
+func get_init_info():
+ return {"." : 0}
+
+func mp_init(init_info):
+ pass
+
+remote func update_phys_transform(t, lv, av):
+ transform = t
+ linear_velocity = lv
+ angular_velocity = av
+
+remotesync func net_apply_impulse(impulse_v):
+ apply_central_impulse(impulse_v)
+
+remotesync func set_net_owner(id, char_name):
+ set_network_master(id)
+ if id == 1 and char_name == "NONE": #not under control
+ on_no_control()
+ if user != null:
+ user.lose_machine()
+ user = null
+ in_use = false
+ else:
+ in_use = true
+ user = world.get_node("PLAYERS/"+char_name)
+ user.take_control_of_machine(self)
+ if is_network_master():
+ on_new_control()
+
+func relinquish_control():
+ rpc("set_net_owner", 1, "NONE")
+
+#TO BE OVERRIDDEN BY CHILDREN
+func on_new_control():
+ pass#user.add_collision_exception_with(self)
+ #user.global_transform.origin = $Cockpit.global_transform.origin
+
+func on_no_control():
+ pass#user.remove_collision_exception_with(self)
+ #user.global_transform.origin = $PilotExit.global_transform.origin
+
+func attack1():
+ pass
+
+func attack2():
+ pass
+
+func direction_input(fwd,bwd,left,right,_left2,_right2):
+ roll_dir = left - right
+ pitch_dir = bwd - fwd
+
+func misc_input(_ctrl,space,shift):
+ brake_control = shift
+ if space > 0.1 and !boosting: #if boost is pressed
+ trigger_boost()
+
+func mouse_input(_m1,_m3,_m2): #used for long-press actions
+ pass
func _ready():
+ world = get_tree().get_root().find_node("GAMEWORLD", true, false)
countdown = boost_length
brake = 5
- set_network_master(-1)
- set_physics_process(true)
- #mode = RigidBody.MODE_STATIC
func trigger_boost():
- if not boosting:
- print("boosting")
- boosting = true
+ print("boosting")
+ boosting = true
+ $"%RocketTrail".emitting = true
func _process(delta):
if is_network_master():
if boosting and countdown <= 0:
+ $"%RocketTrail".emitting = false
print("stopped boosting")
boosting = false
countdown = boost_length
- if Input.is_action_just_pressed("boost"):
- trigger_boost()
- roll_dir = Input.get_action_strength("roll_left") - Input.get_action_strength("roll_right")
- pitch_dir = Input.get_action_strength("pitch_up") - Input.get_action_strength("pitch_down")
- $rearwheel.brake = lerp($rearwheel.brake, Input.get_action_strength("brake")*brake_force, 0.05)
-
func _physics_process(delta):
+ if in_use and user.get_network_master() == world.client_id:
+ user.global_transform.origin = $Cockpit.global_transform.origin
+ user.global_transform.basis = $Cockpit.global_transform.basis.orthonormalized()
if is_network_master():
+ $rearwheel.brake = lerp($rearwheel.brake, brake_force*brake_control, 0.05)
v_angle = atan2(global_transform.basis.x.y,sqrt(global_transform.basis.x.z*global_transform.basis.x.z + global_transform.basis.x.x*global_transform.basis.x.x))
roll_angle = global_transform.basis.x.cross(Vector3.UP).angle_to($rightaileron.global_transform.origin-$wingcenter.global_transform.origin)
if $rightaileron.global_transform.origin.y < $leftaileron.global_transform.origin.y:
@@ -61,25 +122,11 @@ func _physics_process(delta):
#slow plane by drag and gravity
if linear_velocity.length() > 16 and linear_velocity.angle_to(global_transform.basis.x) < 0.25:
var v_dir = 1 if linear_velocity.y > 0 else -1
- vel_slow = v_dir*sqrt(abs(2*9.8*linear_velocity.y*delta)) + drag_constant + Input.get_action_strength("brake")*5
+ vel_slow = v_dir*sqrt(abs(2*9.8*linear_velocity.y*delta)) + drag_constant + brake_control*5
add_force(-1*linear_velocity.normalized()*vel_slow*mass,Vector3.ZERO)
-
-
- #pass #"inherit" linear and angular velocity of what plane is landed on
-
func _integrate_forces(state):
if is_network_master():
- #linear_velocity -= parentvel[0]; angular_velocity -= parentvel[1]
-# if $rightwheel.get_rpm() < 60 and $rightwheel.is_in_contact():
-# if $rightwheel/Area.get_overlapping_bodies()[0].has_method("get_linear_velocity"):
-# var ulv = $rightwheel/Area.get_overlapping_bodies()[0].linear_velocity
-# var uav = $rightwheel/Area.get_overlapping_bodies()[0].angular_velocity
-# var upos = $rightwheel/Area.get_overlapping_bodies()[0].global_transform.origin
-# ulv += (global_transform.origin - upos).rotated(uav.normalized(),uav.length()*state.get_step()) + global_transform.origin
-# parentvel = [ulv,uav]
-# else:
-# parentvel = [Vector3.ZERO, Vector3.ZERO]
if linear_velocity.length() > 25:
#linear_velocity = linear_velocity.normalized()*(linear_velocity.length()-vel_slow)
var ang_vel_target = Vector3.ZERO
@@ -91,7 +138,8 @@ func _integrate_forces(state):
#roll (rotate around lengthwise axis)
var is_returning = 3 if roll_dir == 0 else 1 #return to flat quicker
- ang_vel_target -= roll_constant*is_returning*(roll_dir*roll_curve.curve.interpolate(roll_angle_max-roll_angle))*global_transform.basis.x
+ print(roll_constant*is_returning*(roll_dir*roll_curve.curve.interpolate((roll_angle_max-roll_angle)/roll_angle_max))*global_transform.basis.x)
+ ang_vel_target += roll_constant*is_returning*(roll_dir*roll_curve.curve.interpolate(roll_angle_max-roll_angle))*global_transform.basis.x
#turn (based on how much the plane is rolled (need to add
ang_vel_target += turn_constant*Vector3.UP*roll_angle
@@ -101,6 +149,5 @@ func _integrate_forces(state):
if linear_velocity.angle_to(global_transform.basis.x) < 0.25:
set_linear_velocity(get_linear_velocity().slerp(transform.basis.x*linear_velocity.length(),0.1))
#linear_velocity += parentvel[0]; angular_velocity += parentvel[1]
- rpc("_set_position", global_transform, linear_velocity)
- elif get_network_master() == -1 and get_tree().get_network_unique_id() == 1:
- rpc("_set_position", global_transform, linear_velocity)
+ rpc("update_phys_transform", transform, linear_velocity, angular_velocity)
+
diff --git a/godot/scripts/vehicles/Gunboat.gd b/godot/scripts/vehicles/Gunboat.gd
index e1a61c5..8c3f54e 100644
--- a/godot/scripts/vehicles/Gunboat.gd
+++ b/godot/scripts/vehicles/Gunboat.gd
@@ -1,4 +1,4 @@
-extends "res://scripts/machines/NetworkedMachine.gd"
+extends "res://scripts/machines/NetworkedMachineGDS.gd"
export var team = 0
@@ -16,11 +16,14 @@ export var rudder_speed = 25
export var rudder_constant = 1800
const RUDDER_MAX = 60
-const health_max = 1000
+const health_max = 3000
var health = health_max
const damage_threshold = 20
const max_depth = 2
+#boat ids
+onready var nav_rid = $NavigationMeshInstance.get_region_rid()
+
#controls
var throttle: float = 0.0
var rudder: float = 0.0