diff --git a/assets/LevelBlockouts/hub_1.tscn b/assets/LevelBlockouts/hub_1.tscn index 6e7569f..e871660 100644 --- a/assets/LevelBlockouts/hub_1.tscn +++ b/assets/LevelBlockouts/hub_1.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=31 format=3 uid="uid://otkecr0hcyon"] +[gd_scene load_steps=33 format=3 uid="uid://otkecr0hcyon"] [ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://post_processing.tscn" id="1_48lr2"] [ext_resource type="PackedScene" uid="uid://drwae3loscbw7" path="res://assets/player.tscn" id="1_ibypk"] @@ -22,6 +22,7 @@ [ext_resource type="Script" uid="uid://1q8lyvac5gft" path="res://scripts/cloudSpawner.gd" id="21_mlcq0"] [ext_resource type="PackedScene" uid="uid://bvjrsc86n2ak0" path="res://assets/deposit_money.tscn" id="21_v6g1i"] [ext_resource type="PackedScene" uid="uid://bessq6hl7qsh8" path="res://assets/stats.tscn" id="22_v6g1i"] +[ext_resource type="PackedScene" uid="uid://c10cvl6w5rn61" path="res://deposit_bot.tscn" id="23_7kmox"] [sub_resource type="Gradient" id="Gradient_vr1m7"] offsets = PackedFloat32Array(0.2, 1) @@ -89,6 +90,10 @@ texture_filtering = 1 auto_shader = true dual_scaling = true +[sub_resource type="NavigationMesh" id="NavigationMesh_7kmox"] +vertices = PackedVector3Array(14.2579, -338.364, -36.7522, 16.0079, -338.364, -37.0022, 15.7579, -338.364, -67.2522, -28.2421, -338.364, -67.2522, -28.2421, -338.364, -34.7522, 14.2579, -338.364, -34.7522, 26.7579, -338.364, -37.0022, 27.0079, -338.364, -67.2522, 28.2579, -338.364, -37.0022, 28.7579, -338.364, -36.5022, 71.2579, -338.364, -34.5022, 71.2579, -338.364, -67.2522, 28.7579, -338.364, -34.5022, -65.9921, -0.613617, 16.4978, -64.7421, 0.636383, 15.9978, -64.7421, 0.636383, -57.2522, -65.9921, -0.613617, -58.0022, 50.0079, -0.613617, -58.0022, 48.7579, 0.636383, -57.2522, 48.7579, 0.636383, -55.5022, 49.0079, 0.886383, -42.0022, 45.2579, 4.38638, -42.5022, 49.7352, -0.113617, -53.6386, 47.2023, 2.38638, -49.7244, 47.5029, 1.88638, -43.7552, 14.5079, 12.1364, -50.0022, 14.5079, 12.1364, -48.7522, 15.7579, 12.1364, -48.5022, 37.5079, 11.8864, -50.0022, 36.0704, 12.1364, -50.0022, 36.0579, 12.1364, -49.9022, 9.50789, 12.1364, -34.7522, 9.25789, 12.1364, -31.5022, 11.5079, 12.1364, -30.7522, 12.0079, 12.1364, -35.7522, 12.7579, 12.3864, -28.5022, 9.25789, 12.1364, -45.7522, 9.25789, 12.1364, -41.5022, 11.5079, 12.1364, -40.7522, 15.5079, 12.1364, -45.7522, 12.7579, 12.3864, -38.7522, 41.7579, 8.13638, -33.5022, 38.2162, 11.3864, -47.2522, 36.5079, 12.1364, -35.9522, 39.1329, 10.3864, -34.7272, 37.0032, 12.1364, -46.7355, 40.0038, 9.38638, -36.2361, 38.5187, 10.8864, -36.2471, 36.9987, 12.1364, -37.7691, 41.7579, 8.13638, -52.7522, 39.9829, 9.38638, -49.7772, 42.5079, 7.88638, -32.5022, 36.8412, 12.1364, -31.7403, 41.0912, 8.63638, -32.3117, 37.0036, 12.1364, -34.746, -52.4921, 24.3864, -35.0022, -41.2421, 28.1364, -34.7522, -41.2421, 28.1364, -36.2522, -45.4609, 27.8864, -35.7834, -45.4609, 27.8864, -34.8459, -39.4921, 28.1364, -36.5022, -39.7421, 24.3864, -49.7522, -52.4921, 24.3864, -49.7522, -39.5477, 28.1364, -39.4466, -46.9917, 27.1364, -42.2426, -45.4766, 27.8864, -40.7438, -24.9921, 28.1364, -36.5022, -24.7421, 24.3864, -49.7522, -24.9366, 28.1364, -39.4466, -30.4816, 27.3864, -42.2767, -29.0164, 28.1364, -39.268, -23.4921, 28.1364, -36.5022, -23.2421, 28.1364, -34.7522, -13.9921, 24.6364, -35.0022, -13.9921, 24.3864, -49.7522, -23.7699, 28.1364, -39.4466, -19.2778, 27.8864, -34.8593, -18.4718, 27.1364, -42.2305, -19.9717, 28.1364, -39.2707, -22.9768, 27.3864, -42.2635, -12.9921, 13.1364, -47.7522, -12.9921, 13.1364, -46.7522, 14.7579, 13.1364, -46.7522, 14.7579, 13.1364, -47.7522, -12.4921, 0.386383, -28.0022, -2.74211, 0.136383, -28.0022, -2.49211, 0.136383, -29.7522, 0.00788879, 0.136383, -31.0022, 0.00788879, 0.386383, -47.5022, -12.4921, 0.386383, -47.5022, 2.25789, 0.136383, -30.0022, 2.75789, 0.136383, -28.0022, 12.5079, 0.386383, -28.0022, 12.5079, 0.386383, -47.5022, -46.9921, 12.6364, -41.5022, -45.2421, 12.3864, -41.7522, -45.4921, 12.3864, -46.5022, -52.4921, 12.6364, -39.5022, -46.9921, 12.6364, -39.5022, -52.4921, 12.6364, -46.5022, -30.2421, 6.88638, -41.7522, -30.2421, 6.88638, -46.5022, -41.9921, 8.88638, -46.5022, -41.9921, 8.88638, -41.7522, -26.4921, 2.88638, -41.7522, -26.4921, 2.88638, -46.5022, -29.2421, 6.38638, -46.5022, -29.2421, 6.38638, -41.7522, -28.7421, 6.38638, -41.7522, -28.7421, 6.38638, -46.5022, -27.7421, 5.88638, -46.5022, -27.7421, 5.88638, -41.7522, -27.2421, 5.88638, -41.7522, -27.2421, 5.88638, -46.5022, -26.2421, 5.38638, -46.5022, -26.2421, 5.38638, -41.7522, -24.4921, 4.88638, -41.5022, -24.4921, 4.38638, -39.5022, -19.4921, 4.38638, -39.5022, -19.4921, 4.63638, -46.5022, -24.8921, 4.88638, -46.5022, -14.7421, 12.1364, -45.7522, -14.7421, 12.1364, -27.2522, -14.2421, 12.3864, -27.2522, -14.2421, 12.3864, -45.7522, -12.9921, 12.3864, -45.7522, -12.9921, 12.3864, -38.5022, -11.7421, 12.1364, -40.7522, -8.99211, 12.1364, -41.5022, 6.50789, 12.1364, -40.2522, -6.74211, 12.1364, -40.2522, -5.99211, 12.1364, -38.0022, 5.75789, 12.3864, -38.0022, 43.0079, 6.88638, -33.5022, 48.2579, 1.88638, -33.5022, 43.9722, 5.88638, -37.3593, 45.998, 3.63638, -34.7283, -24.4921, 1.88638, -40.7522, -24.4921, -1.86362, -28.5022, -19.4921, -1.86362, -28.5022, -19.4921, 1.88638, -40.7522, -51.2421, 12.6364, -26.5022, -50.9921, 12.6364, -26.0022, -46.7421, 12.6364, -26.5022, -52.4921, 12.6364, -26.5022, -24.4921, 1.38638, -29.7522, -19.4921, 1.38638, -29.7522, -19.4921, 2.38638, -33.9308, -24.4921, 2.38638, -33.9308, -44.4921, 12.6364, -26.7522, -50.9921, 12.6364, -1.5022, -17.7421, 12.6364, -1.5022, -17.7421, 12.6364, -27.0022, -17.2421, 12.6364, -27.2522, -17.2421, 12.6364, -39.2522, -44.4921, 12.6364, -39.2522, 7.00789, 12.1364, -35.5022, 6.50789, 12.1364, -30.2522, -6.74211, 12.1364, -35.7522, -6.74211, 12.1364, -30.2522, -5.99211, 12.1364, -28.2522, -11.7421, 12.1364, -35.5022, -12.9921, 12.3864, -37.7522, -12.9921, 12.3864, -28.5022, -11.7421, 12.1364, -30.7522, 5.75789, 12.3864, -28.0022, -10.2421, 12.1364, -34.7522, -8.99211, 12.1364, -31.5022, -8.74211, 12.1364, -34.7522, 36.2579, 0.386383, -33.2522, 36.7579, 0.386383, -33.5022, 36.7579, 0.386383, -36.2522, 15.5079, 0.386383, -36.2522, 36.7579, 0.386383, -1.2522, 36.7579, 0.386383, -6.7522, 36.2579, 0.386383, -7.0022, 13.0079, 0.386383, -8.0022, 12.7579, 0.386383, -2.0022, 13.0079, 0.386383, -1.2522, 15.5079, 0.386383, -8.2522, -40.2421, 25.3864, -35.5022, -40.2421, 25.3864, -12.2522, -24.2421, 25.3864, -12.2522, -24.2421, 25.3864, -35.5022, -52.4921, 24.3864, -12.7522, -41.2421, 28.1364, -13.0022, -45.4609, 27.8864, -12.9084, -23.2421, 28.1364, -13.0022, -13.9921, 24.6364, -12.7522, -19.2778, 27.8864, -12.8951, -18.4971, 27.1364, -33.2552, -19.9819, 28.1364, -27.2465, -19.9821, 28.1364, -33.2662, -18.4913, 27.1364, -13.763, -19.9814, 28.1364, -15.257, -28.2421, -338.364, -28.2522, 14.2579, -338.364, -28.2522, 28.7579, -338.364, -28.5022, 71.2579, -338.364, -28.5022, 17.7579, -352.614, -34.0022, 17.7579, -352.614, -2.7522, 71.0079, -352.614, -2.7522, 71.0079, -352.614, -34.0022, 72.2579, -352.614, -34.0022, 72.2579, -352.614, -2.7522, 95.2579, -352.614, -2.7522, 95.2579, -352.614, -34.0022, 12.0079, 12.1364, -25.7522, 9.25789, 12.1364, -24.7522, 9.25789, 12.1364, -19.7522, 12.0079, 12.1364, -18.7522, 42.2579, 7.88638, -7.7522, 49.5079, 7.88638, -7.7522, 49.5079, 7.88638, -32.2522, 12.7579, 12.3864, -17.0022, 36.6388, 12.1364, -9.5141, 38.0436, 11.3864, -9.07362, 41.4837, 8.13638, -25.7581, 41.5261, 8.13638, -9.2766, 38.5307, 10.8864, -13.7733, 41.5209, 8.13638, -12.2694, 36.9957, 12.1364, -13.7342, 12.2579, 12.1364, -15.0022, 36.5436, 12.1364, -9.13315, 37.9722, 11.3864, -8.78791, 38.0079, 7.88638, -32.2522, 38.0079, 7.88638, -7.7522, 39.2579, 7.88638, -7.7522, 39.2579, 7.88638, -32.2522, 38.7579, 2.13638, -30.5022, 38.7579, 2.13638, -9.5022, 49.5079, 2.13638, -9.5022, 49.5079, 2.13638, -30.5022, -19.4921, 0.886383, -28.7522, -24.4921, 0.886383, -28.7522, -24.4921, 0.386383, -27.0022, -19.2421, 0.386383, -26.7522, -16.4921, 0.386383, -10.2522, -16.4921, 0.386383, -26.7522, -24.9921, 0.386383, -26.7522, -24.9921, 0.386383, -10.2522, 0.257889, 0.136383, -28.7522, -0.492111, 0.136383, -28.7522, -0.742111, 0.136383, -28.2522, -0.492111, 0.136383, -27.5022, 0.757889, 0.136383, -28.0022, 28.2579, -338.364, -26.0022, 26.7579, -338.364, -26.0022, 27.0079, -338.364, 4.2478, 28.7579, -338.364, -26.5022, 71.2579, -338.364, 4.2478, 15.7579, -338.364, 4.2478, 16.0079, -338.364, -26.0022, 14.2579, -338.364, -26.2522, -28.2421, -338.364, 4.2478, 6.25789, 12.1364, -19.7522, 6.25789, 12.6364, -19.0022, 6.75789, 12.1364, -25.5022, 1.25789, 12.1364, -18.7522, 2.00789, 12.1364, -17.2522, 5.50789, 12.3864, -19.7522, 0.257889, 12.1364, -20.0022, -6.74211, 12.1364, -26.0022, -1.74211, 12.1364, -19.7522, -11.4921, 0.386383, -13.5022, -12.4921, 0.386383, -13.5022, -12.4921, 0.386383, -10.2522, -10.9921, 0.386383, -15.0022, -12.4921, 0.386383, -19.2522, -11.2421, 0.386383, -19.0022, -2.49211, 0.136383, -26.5022, -0.492111, 0.136383, -25.2522, 2.00789, 0.136383, -26.0022, 12.5079, 0.386383, -10.2522, -52.4921, 0.386383, -26.7522, -52.4921, 0.386383, -1.2522, -27.4921, 0.386383, -1.2522, -27.4921, 0.386383, -26.7522, -6.49211, 12.1364, -18.2522, -2.24211, 12.1364, -18.7522, -2.24211, 12.1364, -19.5022, -8.74211, 12.1364, -24.7522, -7.99211, 12.1364, -19.5022, -10.2421, 12.1364, -19.7522, -10.2421, 12.1364, -24.7522, -11.4921, 12.1364, -25.2522, -11.9921, 12.3864, -19.0022, -12.4921, 12.3864, -26.5022, -12.4921, 12.3864, -18.0022, -15.9921, 20.6364, -26.0022, -15.9921, 20.6364, -2.0022, -14.2421, 20.6364, -2.0022, -14.2421, 20.6364, -26.2522, -26.4921, 1.38638, -25.7522, -26.4921, 1.38638, -19.2522, -25.9921, 1.38638, -19.2522, -25.9921, 1.38638, -25.7522, -56.4921, 20.6364, -25.5022, -56.4921, 20.6364, -1.5022, -54.2421, 20.6364, -1.5022, -54.2421, 20.6364, -25.5022, -52.4921, 20.6364, -25.5022, -52.4921, 20.6364, -1.5022, -51.9921, 20.6364, -1.5022, -51.9921, 20.6364, -25.5022, -15.9921, 14.6364, -24.2522, -15.9921, 14.6364, -4.0022, -13.4921, 14.6364, -4.0022, -13.4921, 14.6364, -24.2522, -56.4921, 14.6364, -23.7522, -56.4921, 14.6364, -3.2522, -53.7421, 14.6364, -3.2522, -53.7421, 14.6364, -23.7522, -6.49211, 12.1364, -13.5022, -5.99211, 12.3864, -13.5022, -5.99211, 12.1364, -14.2522, -6.99211, 12.1364, -14.0022, -5.99211, 12.1364, -16.0022, 0.00788879, 12.3864, -18.5022, -0.242111, 12.6364, -19.0022, -0.992111, 12.6364, -19.0022, -1.24211, 12.1364, -18.2522, -0.742111, 12.1364, -15.2522, -4.74211, 12.3864, -14.2522, -4.74211, 12.6364, -13.7522, -3.49211, 12.6364, -13.5022, -3.24211, 12.3864, -14.2522, -1.99211, 12.1364, -18.2522, 5.75789, 12.3864, -16.0022, 6.00789, 12.1364, -18.0022, 5.25789, 12.3864, -17.0022, -0.242111, 12.1364, -10.0022, 0.00788879, 12.3864, -9.0022, 0.507889, 12.1364, -9.0022, 0.257889, 12.1364, -10.2522, 0.757889, 12.1364, -7.0022, 0.757889, 12.1364, -6.5022, 1.50789, 12.6364, -6.0022, 0.257889, 12.1364, -11.7522, 3.75789, 12.3864, -8.2522, 7.00789, 12.1364, -14.0022, 1.75789, 12.1364, -15.2522, 1.00789, 12.1364, -14.0022, -0.742111, 12.1364, -13.2522, 0.00788879, 12.1364, -12.7522, 2.75789, 12.1364, -8.2522, 4.75789, 12.3864, -7.0022, -26.4921, 1.38638, -16.2522, -26.4921, 1.38638, -10.5022, -25.9921, 1.38638, -10.5022, -25.9921, 1.38638, -16.2522, -6.74211, 12.1364, -12.2522, -8.49211, 12.1364, -13.2522, -11.9921, 12.3864, -14.0022, -12.4921, 12.3864, -15.0022, -12.4921, 12.3864, -5.5022, -10.2421, 12.1364, -13.2522, -5.99211, 12.1364, -5.5022, -5.49211, 12.6364, -5.7522, -5.74211, 12.1364, -7.0522, -5.99211, 12.3864, -12.2522, -5.59211, 12.1364, -7.0522, 4.00789, 12.3864, -2.5022, 4.50789, 12.8864, -2.5022, 4.00789, 12.3864, -2.7522, 12.0079, 12.1364, -1.0022, 12.0079, 12.3864, -0.502197, 12.5079, 12.3864, -0.502197, 5.50789, 12.6364, -1.7522, 4.75789, 12.8864, -1.7522, 5.50789, 12.3864, -1.0022, 7.25789, 12.1364, -1.0022, 3.75789, 12.3864, -1.7522, 4.00789, 12.3864, -3.5022, 3.50789, 12.3864, -5.2522, 9.25789, 12.1364, -3.2522, 11.7579, 12.1364, -14.0022, 10.2579, 12.1364, -13.2522, 8.50789, 12.1364, -13.2522, 5.00789, 12.3864, -5.5022, 5.50789, 12.3864, -3.5022, 42.0079, 7.88638, 11.4978, 48.0079, 2.13638, -6.5022, 42.0079, 7.88638, -6.7522, 37.5079, 11.8864, 8.4978, 38.7352, 10.8864, 4.33871, 46.0029, 3.63638, -4.75522, 39.9882, 9.38638, 7.22551, 10.0079, 12.1364, -2.5022, 10.2579, 12.1364, -1.2522, 8.25789, 12.1364, -3.2522, 15.5079, 12.1364, 6.2478, 15.7579, 12.1364, 8.4978, 36.0412, 12.1364, 8.3478, 36.0579, 12.1364, 8.4978, 12.7579, 12.3864, 3.4978, 11.2579, 12.1364, 6.2478, 36.9984, 12.1364, -7.7487, 37.0301, 12.1364, 5.72739, 40.024, 9.38638, -3.24441, 0.00788879, 12.3864, -6.7522, 0.00788879, 12.3864, -6.2522, -3.24211, 12.3864, -5.2522, -0.992111, 12.3864, -4.2522, -0.992111, 12.1364, -6.7522, -0.492111, 12.6364, -7.0022, -3.24211, 12.3864, -12.5022, -4.99211, 12.3864, -12.7522, -4.24211, 12.3864, -6.2522, -1.99211, 12.1364, -10.7522, -0.492111, 12.3864, -9.0022, -5.74211, 12.6364, -12.7522, -2.24211, 12.3864, -12.5022, -40.9921, 28.1364, -11.2522, -45.3046, 27.8864, -11.8147, -38.9921, 24.3864, 0.247803, -38.9921, 28.1364, -11.2522, -40.4921, 28.1364, -8.3772, -38.9921, 28.1364, -8.3772, -52.4921, 24.3864, 0.247803, -45.4768, 27.3864, -6.26351, -47.0118, 27.1364, -6.27449, -45.4719, 27.8864, -7.74042, -23.4921, 28.1364, -11.2522, -19.4207, 27.8864, -11.8951, -25.4921, 28.1364, -11.2522, -25.4921, 24.3864, 0.247803, -23.9921, 28.1364, -8.3772, -25.4921, 28.1364, -8.3772, -13.9921, 24.3864, 0.247803, -19.9719, 27.3864, -6.24042, -18.4869, 27.1364, -6.22943, -19.9921, 28.1364, -9.27226, -14.7421, 0.386383, -1.2522, -14.4921, 0.386383, -8.0022, -16.4921, 0.386383, -8.2522, -24.9921, 0.386383, -1.2522, 6.50789, 0.386383, 6.9978, 6.75789, 0.386383, 7.4978, 12.5079, 0.386383, 7.4978, 12.5079, 0.386383, -0.252197, 11.2579, 0.386383, -0.502197, 12.5079, 0.386383, -8.2522, 11.2579, 0.386383, -1.5022, -12.4921, 0.386383, 7.4978, -6.49211, 0.386383, 7.4978, -6.24211, 0.386383, 6.9978, -12.4921, 0.386383, -1.0022, -3.74211, 0.386383, 6.9978, -12.4921, 0.386383, -8.2522, -3.49211, 0.386383, 7.4978, 3.50789, 0.386383, 7.4978, 3.75789, 0.386383, 6.9978, -26.4921, 1.38638, -7.7522, -26.4921, 1.38638, -2.0022, -25.9921, 1.38638, -2.0022, -25.9921, 1.38638, -7.7522, -10.4921, 12.1364, 4.9978, -9.99211, 12.6364, 4.7478, -10.4921, 12.1364, 4.7478, -9.99211, 12.1364, 6.2478, -9.99211, 12.3864, 5.7478, -10.4921, 12.1364, 5.7478, -12.9921, 12.3864, 6.2478, -11.2421, 12.1364, 2.4978, -10.9921, 12.6364, 0.747803, -11.4921, 12.1364, 0.747803, -10.4921, 12.1364, 2.9978, -8.24211, 12.1364, -0.252197, -5.99211, 12.1364, -5.2522, -10.2421, 12.1364, -0.502197, -11.4921, 12.1364, -0.00219727, -5.24211, 12.3864, 1.9978, -5.24211, 12.8864, 3.2478, -3.99211, 12.3864, 2.9978, -2.99211, 12.3864, 2.2478, -2.99211, 12.3864, 1.4978, -7.49211, 12.3864, 0.747803, -6.74211, 12.1364, 0.747803, -2.24211, 12.3864, 1.2478, -1.74211, 12.1364, -2.2522, -5.99211, 12.1364, 1.9978, 0.507889, 12.1364, -3.0022, 2.25789, 12.1364, -2.0022, 2.00789, 12.1364, -4.7522, 0.507889, 12.1364, -4.7522, 5.50789, 12.3864, 2.9978, 5.50789, 12.6364, 1.9978, 5.00789, 12.3864, 1.9978, 4.75789, 12.3864, 2.7478, 4.75789, 12.3864, 3.4978, -13.7421, 12.8864, 7.2478, -13.9921, 12.8864, 7.4978, -13.9921, 12.8864, 8.4978, 14.7579, 12.8864, 8.4978, 7.00789, 12.8864, 7.2478, 3.75789, 12.8864, 6.9978, 8.00789, 12.1364, 3.9978, 7.75789, 12.3864, 2.4978, 7.00789, 12.1364, 2.9978, 6.75789, 12.8864, 6.7478, 5.50789, 12.8864, 6.7478, 4.00789, 12.3864, -1.7522, 4.75789, 12.3864, 0.997803, 5.13289, 12.8864, -0.00219727, 3.50789, 12.6364, 1.4978, 3.75789, 12.6364, 2.4978, 5.50789, 12.3864, 5.7478, 4.00789, 12.6364, 3.4978, 3.84122, 12.3864, 5.83114, 14.7579, 12.8864, 7.2478, 5.34122, 12.8864, -0.00219727, 9.25789, 12.1364, 5.4978, 10.5079, 12.1364, 4.7478, 9.25789, 12.1364, 3.9978, 10.7579, 12.1364, 2.9978, 11.2579, 12.1364, 0.497803, 10.7579, 12.1364, 1.2478, -14.7421, 12.1364, -1.0022, -14.7421, 12.1364, 1.9978, -14.2421, 12.3864, 1.7478, -14.2421, 12.3864, -1.0022, -3.99211, 12.6364, 4.4978, -4.24211, 12.8864, 3.9978, -4.24211, 12.6364, 4.4978, -4.99211, 12.6364, 6.2478, -2.99211, 12.3864, 6.2478, -4.49211, 12.6364, 5.9978, -4.74211, 12.3864, 5.2478, -4.24211, 12.3864, 4.9978, -2.99211, 12.3864, 4.4978, -1.99211, 12.6364, 5.7478, -1.74211, 12.1364, 4.7478, -7.99211, 12.1364, 2.4978, -7.74211, 12.6364, 1.4978, -8.24211, 12.3864, 1.4978, -8.74211, 12.1364, 1.9978, -8.24211, 12.3864, 0.997803, -9.74211, 12.1364, 0.997803, -5.24211, 12.3864, 4.4978, -5.49211, 12.1364, 4.7478, 2.00789, 12.1364, 4.7478, 3.00789, 12.1364, 4.2478, 2.50789, 12.1364, 1.9978, -0.492111, 12.1364, 2.2478, 1.00789, 12.1364, -0.752197, 0.257889, 12.1364, -0.752197, -0.242111, 12.1364, -0.00219727, 2.75789, 12.1364, 0.247803, -6.99211, 12.1364, 3.7478, -7.24211, 12.1364, 2.7478, -5.99211, 12.3864, 3.7478, -8.74211, 12.1364, 5.2478, 3.00789, 12.3864, 2.4978, 6.50789, 12.3864, 0.497803, 6.25789, 12.3864, -0.00219727, 6.25789, 12.1364, 0.747803, 7.25789, 12.6364, 0.997803, 7.25789, 12.6364, 0.497803, -44.7421, 14.6364, 0.247803, -44.7421, 14.6364, 1.4978, -20.7421, 14.6364, 1.4978, -20.7421, 14.6364, 0.247803, -47.2421, 12.3864, 8.4978, -47.2421, 14.1364, 2.4978, -47.7421, 14.1364, 2.2478, -54.7421, 14.3864, 1.2478, -55.4921, 12.8864, 6.7478, -55.4921, 12.3864, 8.4978, -47.7421, 14.3864, 1.2478, -14.9921, 12.6364, 7.4978, -13.9921, 14.3864, 1.2478, -17.7421, 14.3864, 1.2478, -17.9921, 14.1364, 2.4978, -13.7921, 12.8864, 6.04781, -14.9921, 12.3864, 8.4978, -24.5117, 12.8864, 5.73537, 49.0079, 0.386383, 14.9978, 49.0079, 0.386383, 15.9978, 50.0079, -0.613617, 16.4978, 50.0079, -0.613617, 4.9978, 8.25789, -0.613617, 17.2478, 6.75789, -0.113617, 16.9978, 6.50789, -0.113617, 17.9978, 8.25789, -0.613617, 21.7478, -6.24211, -0.113617, 17.9978, -6.49211, -0.113617, 16.9978, -8.24211, -0.363617, 16.9978, -8.24211, -0.613617, 21.7478, 3.50789, 0.386383, 17.4978, -3.49211, 0.386383, 17.4978, -5.49211, 7.63638, 8.7478, -5.49211, 7.63638, 10.2478, 5.75789, 7.63638, 10.2478, 5.75789, 7.63638, 8.7478, -8.24211, -0.613617, 8.9978, -8.24211, -0.613617, 14.9978, -6.49211, -0.113617, 14.9978, -6.49211, -0.113617, 8.9978, 6.75789, -0.113617, 8.9978, 6.75789, -0.113617, 14.9978, 8.25789, -0.613617, 14.9978, 8.25789, -0.613617, 8.9978, 4.75789, 0.386383, 9.2478, 4.75789, 0.386383, 15.4978, 5.25789, 0.386383, 15.4978, -5.49211, 7.88638, 11.9978, -5.49211, 7.63638, 12.9978, 5.75789, 7.63638, 12.9978, 5.75789, 7.88638, 11.9978) +polygons = [PackedInt32Array(1, 0, 2), PackedInt32Array(2, 0, 3), PackedInt32Array(3, 0, 4), PackedInt32Array(0, 5, 4), PackedInt32Array(1, 2, 6), PackedInt32Array(6, 2, 7), PackedInt32Array(8, 6, 7), PackedInt32Array(8, 7, 9), PackedInt32Array(9, 7, 11), PackedInt32Array(9, 11, 10), PackedInt32Array(10, 12, 9), PackedInt32Array(14, 13, 15), PackedInt32Array(15, 13, 16), PackedInt32Array(19, 18, 17), PackedInt32Array(23, 24, 21), PackedInt32Array(21, 24, 20), PackedInt32Array(20, 23, 22), PackedInt32Array(22, 19, 17), PackedInt32Array(19, 22, 23), PackedInt32Array(23, 20, 24), PackedInt32Array(28, 30, 29), PackedInt32Array(29, 30, 27), PackedInt32Array(29, 27, 26), PackedInt32Array(29, 26, 25), PackedInt32Array(33, 32, 31), PackedInt32Array(31, 34, 33), PackedInt32Array(33, 34, 35), PackedInt32Array(38, 37, 36), PackedInt32Array(38, 36, 40), PackedInt32Array(40, 36, 39), PackedInt32Array(44, 46, 41), PackedInt32Array(41, 46, 42), PackedInt32Array(42, 45, 28), PackedInt32Array(28, 45, 30), PackedInt32Array(30, 39, 27), PackedInt32Array(39, 48, 43), PackedInt32Array(43, 47, 44), PackedInt32Array(44, 47, 46), PackedInt32Array(46, 48, 42), PackedInt32Array(42, 48, 45), PackedInt32Array(45, 39, 30), PackedInt32Array(48, 47, 43), PackedInt32Array(39, 45, 48), PackedInt32Array(47, 48, 46), PackedInt32Array(49, 50, 28), PackedInt32Array(28, 50, 42), PackedInt32Array(42, 50, 41), PackedInt32Array(41, 50, 49), PackedInt32Array(43, 40, 39), PackedInt32Array(40, 43, 34), PackedInt32Array(34, 43, 35), PackedInt32Array(35, 43, 52), PackedInt32Array(52, 44, 53), PackedInt32Array(53, 41, 51), PackedInt32Array(41, 53, 44), PackedInt32Array(44, 54, 43), PackedInt32Array(43, 54, 52), PackedInt32Array(52, 54, 44), PackedInt32Array(57, 56, 58), PackedInt32Array(58, 56, 59), PackedInt32Array(58, 59, 55), PackedInt32Array(61, 64, 62), PackedInt32Array(62, 64, 55), PackedInt32Array(55, 65, 58), PackedInt32Array(58, 65, 57), PackedInt32Array(57, 63, 60), PackedInt32Array(63, 65, 61), PackedInt32Array(61, 65, 64), PackedInt32Array(64, 65, 55), PackedInt32Array(65, 63, 57), PackedInt32Array(67, 69, 61), PackedInt32Array(61, 69, 63), PackedInt32Array(63, 70, 60), PackedInt32Array(60, 70, 66), PackedInt32Array(66, 70, 68), PackedInt32Array(68, 69, 67), PackedInt32Array(69, 70, 63), PackedInt32Array(70, 69, 68), PackedInt32Array(74, 77, 67), PackedInt32Array(67, 79, 75), PackedInt32Array(75, 78, 71), PackedInt32Array(71, 76, 72), PackedInt32Array(76, 78, 73), PackedInt32Array(73, 77, 74), PackedInt32Array(77, 79, 67), PackedInt32Array(79, 78, 75), PackedInt32Array(78, 76, 71), PackedInt32Array(78, 77, 73), PackedInt32Array(77, 78, 79), PackedInt32Array(71, 66, 75), PackedInt32Array(75, 66, 68), PackedInt32Array(75, 68, 67), PackedInt32Array(83, 82, 80), PackedInt32Array(80, 82, 81), PackedInt32Array(86, 85, 84), PackedInt32Array(86, 84, 87), PackedInt32Array(87, 84, 88), PackedInt32Array(88, 84, 89), PackedInt32Array(92, 91, 90), PackedInt32Array(90, 87, 92), PackedInt32Array(92, 87, 88), PackedInt32Array(92, 88, 93), PackedInt32Array(96, 95, 94), PackedInt32Array(94, 98, 97), PackedInt32Array(96, 94, 99), PackedInt32Array(99, 94, 97), PackedInt32Array(100, 95, 101), PackedInt32Array(101, 95, 96), PackedInt32Array(105, 104, 102), PackedInt32Array(102, 104, 103), PackedInt32Array(109, 108, 106), PackedInt32Array(106, 108, 107), PackedInt32Array(113, 112, 110), PackedInt32Array(110, 112, 111), PackedInt32Array(116, 115, 114), PackedInt32Array(118, 117, 116), PackedInt32Array(114, 120, 116), PackedInt32Array(116, 120, 119), PackedInt32Array(116, 119, 118), PackedInt32Array(124, 123, 121), PackedInt32Array(121, 123, 122), PackedInt32Array(127, 126, 125), PackedInt32Array(128, 127, 125), PackedInt32Array(37, 129, 36), PackedInt32Array(36, 129, 130), PackedInt32Array(36, 130, 128), PackedInt32Array(36, 128, 125), PackedInt32Array(131, 130, 132), PackedInt32Array(132, 130, 129), PackedInt32Array(134, 136, 20), PackedInt32Array(20, 135, 21), PackedInt32Array(135, 136, 133), PackedInt32Array(133, 136, 134), PackedInt32Array(136, 135, 20), PackedInt32Array(140, 139, 137), PackedInt32Array(137, 139, 138), PackedInt32Array(142, 141, 143), PackedInt32Array(143, 141, 98), PackedInt32Array(98, 141, 97), PackedInt32Array(141, 144, 97), PackedInt32Array(146, 145, 147), PackedInt32Array(147, 145, 148), PackedInt32Array(147, 148, 117), PackedInt32Array(147, 117, 118), PackedInt32Array(143, 149, 142), PackedInt32Array(142, 149, 150), PackedInt32Array(150, 149, 152), PackedInt32Array(150, 152, 151), PackedInt32Array(153, 152, 154), PackedInt32Array(154, 152, 155), PackedInt32Array(155, 152, 149), PackedInt32Array(31, 32, 156), PackedInt32Array(156, 32, 157), PackedInt32Array(160, 159, 158), PackedInt32Array(164, 163, 161), PackedInt32Array(161, 163, 162), PackedInt32Array(158, 131, 160), PackedInt32Array(160, 131, 132), PackedInt32Array(160, 132, 156), PackedInt32Array(160, 156, 165), PackedInt32Array(166, 167, 161), PackedInt32Array(161, 167, 164), PackedInt32Array(156, 157, 165), PackedInt32Array(167, 166, 168), PackedInt32Array(168, 158, 167), PackedInt32Array(167, 158, 159), PackedInt32Array(170, 169, 171), PackedInt32Array(171, 169, 172), PackedInt32Array(175, 174, 173), PackedInt32Array(177, 176, 178), PackedInt32Array(178, 176, 179), PackedInt32Array(178, 179, 175), PackedInt32Array(178, 175, 173), PackedInt32Array(175, 179, 169), PackedInt32Array(169, 179, 172), PackedInt32Array(183, 182, 180), PackedInt32Array(180, 182, 181), PackedInt32Array(185, 186, 56), PackedInt32Array(56, 186, 59), PackedInt32Array(59, 186, 184), PackedInt32Array(59, 184, 55), PackedInt32Array(188, 191, 73), PackedInt32Array(73, 190, 76), PackedInt32Array(76, 192, 72), PackedInt32Array(72, 191, 187), PackedInt32Array(187, 194, 189), PackedInt32Array(189, 193, 188), PackedInt32Array(191, 190, 73), PackedInt32Array(188, 194, 191), PackedInt32Array(190, 192, 76), PackedInt32Array(192, 191, 72), PackedInt32Array(191, 194, 187), PackedInt32Array(194, 193, 189), PackedInt32Array(193, 194, 188), PackedInt32Array(191, 192, 190), PackedInt32Array(4, 5, 195), PackedInt32Array(195, 5, 196), PackedInt32Array(12, 10, 197), PackedInt32Array(197, 10, 198), PackedInt32Array(202, 201, 199), PackedInt32Array(199, 201, 200), PackedInt32Array(206, 205, 203), PackedInt32Array(203, 205, 204), PackedInt32Array(208, 207, 209), PackedInt32Array(209, 207, 210), PackedInt32Array(35, 52, 214), PackedInt32Array(214, 221, 215), PackedInt32Array(215, 219, 216), PackedInt32Array(216, 218, 211), PackedInt32Array(211, 218, 212), PackedInt32Array(212, 217, 213), PackedInt32Array(213, 217, 51), PackedInt32Array(51, 217, 53), PackedInt32Array(53, 217, 52), PackedInt32Array(52, 221, 214), PackedInt32Array(221, 219, 215), PackedInt32Array(219, 220, 216), PackedInt32Array(216, 220, 218), PackedInt32Array(218, 220, 212), PackedInt32Array(212, 220, 217), PackedInt32Array(217, 221, 52), PackedInt32Array(221, 217, 219), PackedInt32Array(219, 217, 220), PackedInt32Array(210, 207, 214), PackedInt32Array(214, 207, 35), PackedInt32Array(211, 224, 216), PackedInt32Array(216, 224, 223), PackedInt32Array(216, 223, 215), PackedInt32Array(215, 223, 222), PackedInt32Array(215, 222, 214), PackedInt32Array(228, 227, 225), PackedInt32Array(225, 227, 226), PackedInt32Array(232, 231, 229), PackedInt32Array(229, 231, 230), PackedInt32Array(234, 233, 235), PackedInt32Array(235, 233, 236), PackedInt32Array(236, 238, 237), PackedInt32Array(235, 236, 239), PackedInt32Array(239, 236, 240), PackedInt32Array(240, 236, 237), PackedInt32Array(242, 241, 243), PackedInt32Array(243, 241, 244), PackedInt32Array(244, 241, 245), PackedInt32Array(248, 247, 246), PackedInt32Array(246, 249, 248), PackedInt32Array(248, 249, 250), PackedInt32Array(250, 249, 198), PackedInt32Array(249, 197, 198), PackedInt32Array(252, 251, 253), PackedInt32Array(253, 251, 254), PackedInt32Array(253, 254, 195), PackedInt32Array(195, 196, 253), PackedInt32Array(256, 255, 209), PackedInt32Array(209, 255, 208), PackedInt32Array(208, 255, 257), PackedInt32Array(260, 259, 258), PackedInt32Array(261, 260, 258), PackedInt32Array(257, 260, 165), PackedInt32Array(165, 260, 261), PackedInt32Array(165, 261, 262), PackedInt32Array(165, 262, 160), PackedInt32Array(261, 263, 262), PackedInt32Array(257, 255, 260), PackedInt32Array(266, 265, 264), PackedInt32Array(266, 264, 267), PackedInt32Array(268, 84, 269), PackedInt32Array(269, 84, 270), PackedInt32Array(270, 84, 85), PackedInt32Array(270, 271, 269), PackedInt32Array(269, 271, 267), PackedInt32Array(272, 91, 92), PackedInt32Array(272, 92, 271), PackedInt32Array(271, 92, 273), PackedInt32Array(271, 273, 267), PackedInt32Array(267, 273, 266), PackedInt32Array(277, 276, 274), PackedInt32Array(274, 276, 275), PackedInt32Array(280, 279, 278), PackedInt32Array(280, 278, 263), PackedInt32Array(263, 278, 282), PackedInt32Array(263, 282, 281), PackedInt32Array(263, 281, 262), PackedInt32Array(284, 281, 283), PackedInt32Array(283, 281, 282), PackedInt32Array(284, 283, 285), PackedInt32Array(285, 283, 286), PackedInt32Array(286, 288, 285), PackedInt32Array(285, 288, 287), PackedInt32Array(290, 289, 291), PackedInt32Array(291, 289, 292), PackedInt32Array(252, 247, 251), PackedInt32Array(251, 247, 248), PackedInt32Array(296, 295, 293), PackedInt32Array(293, 295, 294), PackedInt32Array(300, 299, 297), PackedInt32Array(297, 299, 298), PackedInt32Array(304, 303, 301), PackedInt32Array(301, 303, 302), PackedInt32Array(308, 307, 305), PackedInt32Array(305, 307, 306), PackedInt32Array(312, 311, 309), PackedInt32Array(309, 311, 310), PackedInt32Array(315, 314, 313), PackedInt32Array(313, 316, 315), PackedInt32Array(315, 316, 317), PackedInt32Array(320, 319, 318), PackedInt32Array(320, 318, 321), PackedInt32Array(321, 318, 259), PackedInt32Array(321, 259, 322), PackedInt32Array(325, 324, 323), PackedInt32Array(325, 323, 326), PackedInt32Array(326, 323, 317), PackedInt32Array(327, 322, 279), PackedInt32Array(279, 322, 326), PackedInt32Array(279, 326, 317), PackedInt32Array(279, 317, 278), PackedInt32Array(323, 315, 317), PackedInt32Array(258, 259, 318), PackedInt32Array(327, 321, 322), PackedInt32Array(330, 329, 328), PackedInt32Array(332, 331, 333), PackedInt32Array(333, 331, 334), PackedInt32Array(337, 336, 335), PackedInt32Array(333, 338, 339), PackedInt32Array(339, 338, 341), PackedInt32Array(339, 341, 340), PackedInt32Array(340, 341, 328), PackedInt32Array(344, 343, 342), PackedInt32Array(337, 335, 345), PackedInt32Array(345, 335, 333), PackedInt32Array(339, 340, 346), PackedInt32Array(338, 344, 342), PackedInt32Array(333, 334, 338), PackedInt32Array(339, 345, 333), PackedInt32Array(338, 342, 341), PackedInt32Array(328, 341, 330), PackedInt32Array(350, 349, 347), PackedInt32Array(347, 349, 348), PackedInt32Array(313, 351, 316), PackedInt32Array(316, 351, 352), PackedInt32Array(355, 354, 353), PackedInt32Array(358, 357, 359), PackedInt32Array(359, 357, 351), PackedInt32Array(351, 357, 352), PackedInt32Array(352, 357, 356), PackedInt32Array(356, 357, 355), PackedInt32Array(358, 359, 361), PackedInt32Array(361, 359, 360), PackedInt32Array(360, 359, 351), PackedInt32Array(355, 353, 356), PackedInt32Array(364, 363, 362), PackedInt32Array(367, 366, 365), PackedInt32Array(369, 368, 370), PackedInt32Array(370, 368, 371), PackedInt32Array(364, 362, 372), PackedInt32Array(364, 372, 373), PackedInt32Array(373, 372, 374), PackedInt32Array(375, 346, 365), PackedInt32Array(365, 346, 377), PackedInt32Array(365, 377, 376), PackedInt32Array(346, 378, 377), PackedInt32Array(374, 379, 373), PackedInt32Array(373, 379, 380), PackedInt32Array(385, 387, 384), PackedInt32Array(384, 387, 381), PackedInt32Array(381, 386, 382), PackedInt32Array(382, 386, 383), PackedInt32Array(383, 386, 385), PackedInt32Array(385, 386, 387), PackedInt32Array(387, 386, 381), PackedInt32Array(365, 389, 388), PackedInt32Array(368, 380, 371), PackedInt32Array(371, 380, 390), PackedInt32Array(384, 394, 393), PackedInt32Array(393, 394, 392), PackedInt32Array(393, 392, 391), PackedInt32Array(365, 388, 375), PackedInt32Array(379, 346, 380), PackedInt32Array(380, 346, 390), PackedInt32Array(390, 346, 375), PackedInt32Array(365, 376, 367), PackedInt32Array(367, 376, 222), PackedInt32Array(395, 391, 396), PackedInt32Array(367, 397, 391), PackedInt32Array(391, 398, 393), PackedInt32Array(393, 398, 384), PackedInt32Array(384, 398, 385), PackedInt32Array(385, 399, 383), PackedInt32Array(383, 224, 211), PackedInt32Array(224, 397, 223), PackedInt32Array(223, 367, 222), PackedInt32Array(397, 398, 391), PackedInt32Array(367, 223, 397), PackedInt32Array(398, 399, 385), PackedInt32Array(399, 397, 383), PackedInt32Array(383, 397, 224), PackedInt32Array(397, 399, 398), PackedInt32Array(346, 340, 378), PackedInt32Array(391, 395, 367), PackedInt32Array(335, 336, 400), PackedInt32Array(400, 336, 401), PackedInt32Array(404, 403, 402), PackedInt32Array(404, 405, 400), PackedInt32Array(400, 405, 335), PackedInt32Array(358, 361, 408), PackedInt32Array(408, 361, 409), PackedInt32Array(409, 361, 406), PackedInt32Array(406, 361, 407), PackedInt32Array(407, 361, 360), PackedInt32Array(332, 410, 331), PackedInt32Array(331, 410, 409), PackedInt32Array(360, 411, 407), PackedInt32Array(324, 325, 407), PackedInt32Array(407, 325, 406), PackedInt32Array(402, 408, 404), PackedInt32Array(404, 408, 410), PackedInt32Array(410, 408, 409), PackedInt32Array(406, 412, 409), PackedInt32Array(410, 405, 404), PackedInt32Array(413, 414, 185), PackedInt32Array(185, 414, 186), PackedInt32Array(186, 414, 184), PackedInt32Array(413, 416, 417), PackedInt32Array(417, 416, 418), PackedInt32Array(417, 418, 415), PackedInt32Array(414, 421, 184), PackedInt32Array(184, 421, 419), PackedInt32Array(419, 420, 415), PackedInt32Array(415, 420, 417), PackedInt32Array(417, 422, 413), PackedInt32Array(413, 422, 414), PackedInt32Array(414, 422, 421), PackedInt32Array(421, 420, 419), PackedInt32Array(420, 422, 417), PackedInt32Array(422, 420, 421), PackedInt32Array(423, 187, 424), PackedInt32Array(424, 187, 189), PackedInt32Array(424, 189, 188), PackedInt32Array(423, 427, 425), PackedInt32Array(425, 427, 428), PackedInt32Array(428, 427, 426), PackedInt32Array(427, 430, 426), PackedInt32Array(426, 430, 429), PackedInt32Array(429, 431, 188), PackedInt32Array(188, 432, 424), PackedInt32Array(424, 432, 423), PackedInt32Array(423, 432, 427), PackedInt32Array(427, 432, 430), PackedInt32Array(430, 431, 429), PackedInt32Array(431, 432, 188), PackedInt32Array(432, 431, 430), PackedInt32Array(416, 425, 418), PackedInt32Array(418, 425, 428), PackedInt32Array(418, 428, 426), PackedInt32Array(418, 426, 415), PackedInt32Array(435, 434, 433), PackedInt32Array(240, 237, 435), PackedInt32Array(433, 436, 435), PackedInt32Array(435, 436, 240), PackedInt32Array(438, 437, 439), PackedInt32Array(439, 437, 441), PackedInt32Array(439, 441, 440), PackedInt32Array(176, 177, 442), PackedInt32Array(442, 177, 443), PackedInt32Array(445, 444, 446), PackedInt32Array(446, 444, 447), PackedInt32Array(446, 447, 448), PackedInt32Array(448, 447, 449), PackedInt32Array(450, 448, 451), PackedInt32Array(451, 448, 452), PackedInt32Array(434, 449, 433), PackedInt32Array(433, 449, 447), PackedInt32Array(452, 448, 443), PackedInt32Array(443, 448, 273), PackedInt32Array(273, 448, 449), PackedInt32Array(273, 449, 266), PackedInt32Array(441, 437, 443), PackedInt32Array(443, 437, 452), PackedInt32Array(273, 442, 443), PackedInt32Array(456, 455, 453), PackedInt32Array(453, 455, 454), PackedInt32Array(459, 458, 457), PackedInt32Array(461, 460, 462), PackedInt32Array(462, 460, 463), PackedInt32Array(465, 464, 466), PackedInt32Array(466, 464, 463), PackedInt32Array(459, 464, 467), PackedInt32Array(469, 468, 357), PackedInt32Array(357, 468, 470), PackedInt32Array(357, 470, 355), PackedInt32Array(464, 459, 457), PackedInt32Array(462, 463, 457), PackedInt32Array(457, 463, 464), PackedInt32Array(470, 471, 355), PackedInt32Array(471, 466, 355), PackedInt32Array(355, 466, 463), PackedInt32Array(475, 474, 476), PackedInt32Array(476, 474, 472), PackedInt32Array(472, 474, 473), PackedInt32Array(478, 477, 468), PackedInt32Array(478, 468, 479), PackedInt32Array(479, 468, 480), PackedInt32Array(480, 468, 469), PackedInt32Array(481, 478, 472), PackedInt32Array(472, 478, 476), PackedInt32Array(476, 478, 479), PackedInt32Array(485, 484, 482), PackedInt32Array(482, 484, 483), PackedInt32Array(488, 487, 489), PackedInt32Array(489, 487, 486), PackedInt32Array(489, 486, 490), PackedInt32Array(492, 491, 493), PackedInt32Array(493, 491, 496), PackedInt32Array(493, 496, 495), PackedInt32Array(493, 495, 494), PackedInt32Array(497, 499, 498), PackedInt32Array(500, 495, 501), PackedInt32Array(501, 495, 496), PackedInt32Array(369, 370, 502), PackedInt32Array(502, 370, 504), PackedInt32Array(502, 504, 503), PackedInt32Array(489, 506, 488), PackedInt32Array(488, 506, 505), PackedInt32Array(488, 505, 503), PackedInt32Array(496, 509, 501), PackedInt32Array(501, 509, 507), PackedInt32Array(507, 509, 490), PackedInt32Array(490, 509, 508), PackedInt32Array(495, 510, 494), PackedInt32Array(370, 511, 504), PackedInt32Array(504, 511, 503), PackedInt32Array(503, 511, 488), PackedInt32Array(513, 512, 514), PackedInt32Array(514, 512, 497), PackedInt32Array(514, 515, 513), PackedInt32Array(515, 516, 513), PackedInt32Array(486, 499, 490), PackedInt32Array(490, 499, 497), PackedInt32Array(490, 497, 507), PackedInt32Array(507, 497, 512), PackedInt32Array(517, 516, 515), PackedInt32Array(521, 520, 518), PackedInt32Array(518, 520, 519), PackedInt32Array(524, 523, 522), PackedInt32Array(527, 526, 525), PackedInt32Array(529, 527, 528), PackedInt32Array(528, 527, 525), PackedInt32Array(522, 530, 529), PackedInt32Array(529, 530, 532), PackedInt32Array(529, 532, 531), PackedInt32Array(535, 534, 536), PackedInt32Array(536, 534, 533), PackedInt32Array(535, 536, 537), PackedInt32Array(537, 536, 538), PackedInt32Array(529, 528, 524), PackedInt32Array(524, 528, 539), PackedInt32Array(539, 528, 540), PackedInt32Array(529, 524, 522), PackedInt32Array(542, 541, 543), PackedInt32Array(543, 541, 544), PackedInt32Array(544, 541, 532), PackedInt32Array(544, 532, 530), PackedInt32Array(546, 545, 547), PackedInt32Array(547, 545, 548), PackedInt32Array(547, 548, 543), PackedInt32Array(547, 543, 544), PackedInt32Array(533, 550, 549), PackedInt32Array(539, 540, 551), PackedInt32Array(551, 540, 549), PackedInt32Array(549, 540, 552), PackedInt32Array(542, 543, 553), PackedInt32Array(533, 549, 536), PackedInt32Array(536, 549, 552), PackedInt32Array(554, 556, 555), PackedInt32Array(554, 558, 556), PackedInt32Array(556, 558, 557), PackedInt32Array(562, 561, 559), PackedInt32Array(559, 561, 560), PackedInt32Array(564, 563, 565), PackedInt32Array(565, 563, 566), PackedInt32Array(566, 563, 567), PackedInt32Array(567, 563, 568), PackedInt32Array(566, 569, 565), PackedInt32Array(492, 570, 491), PackedInt32Array(491, 570, 574), PackedInt32Array(574, 570, 571), PackedInt32Array(571, 570, 573), PackedInt32Array(571, 573, 572), PackedInt32Array(564, 576, 563), PackedInt32Array(563, 576, 575), PackedInt32Array(575, 576, 570), PackedInt32Array(570, 576, 573), PackedInt32Array(573, 576, 564), PackedInt32Array(578, 577, 579), PackedInt32Array(579, 577, 580), PackedInt32Array(582, 581, 583), PackedInt32Array(583, 581, 584), PackedInt32Array(586, 585, 587), PackedInt32Array(587, 585, 588), PackedInt32Array(585, 590, 588), PackedInt32Array(588, 590, 589), PackedInt32Array(588, 589, 583), PackedInt32Array(588, 583, 584), PackedInt32Array(589, 590, 451), PackedInt32Array(451, 590, 450), PackedInt32Array(594, 593, 591), PackedInt32Array(591, 593, 592), PackedInt32Array(598, 597, 595), PackedInt32Array(595, 597, 596), PackedInt32Array(602, 601, 599), PackedInt32Array(599, 601, 600), PackedInt32Array(605, 604, 603), PackedInt32Array(609, 608, 606), PackedInt32Array(606, 608, 607)] + [sub_resource type="Animation" id="Animation_v0ka4"] length = 0.001 tracks/0/type = "position_3d" @@ -169,6 +174,9 @@ script = ExtResource("1_v17bv") map_name = "Hub 1" gamemode = ExtResource("2_pxx7p") +[node name="DepositBot" parent="." instance=ExtResource("23_7kmox")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10.3816, 0.0847601, -5.71429) + [node name="Terrain3D" type="Terrain3D" parent="."] data_directory = "res://demo/data" material = SubResource("Terrain3DMaterial_mlcq0") @@ -190,7 +198,10 @@ portal_parent = NodePath("../../Tubes") [node name="PostProcessing" parent="." instance=ExtResource("1_48lr2")] -[node name="Hub1" parent="." instance=ExtResource("2_ibypk")] +[node name="NavigationRegion3D" type="NavigationRegion3D" parent="."] +navigation_mesh = SubResource("NavigationMesh_7kmox") + +[node name="Hub1" parent="NavigationRegion3D" instance=ExtResource("2_ibypk")] [node name="Lighting" type="Node3D" parent="."] diff --git a/assets/Models/DepositBot.blend b/assets/Models/DepositBot.blend new file mode 100644 index 0000000..357bdec Binary files /dev/null and b/assets/Models/DepositBot.blend differ diff --git a/assets/Models/DepositBot.blend.import b/assets/Models/DepositBot.blend.import new file mode 100644 index 0000000..87ff0ac --- /dev/null +++ b/assets/Models/DepositBot.blend.import @@ -0,0 +1,53 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://kft3pjbe40vx" +path="res://.godot/imported/DepositBot.blend-7f98a9daab07979bad670eaa5d77d82d.scn" + +[deps] + +source_file="res://assets/Models/DepositBot.blend" +dest_files=["res://.godot/imported/DepositBot.blend-7f98a9daab07979bad670eaa5d77d82d.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +_subresources={} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true diff --git a/assets/Models/DepositBot.blend1 b/assets/Models/DepositBot.blend1 new file mode 100644 index 0000000..e5dfe71 Binary files /dev/null and b/assets/Models/DepositBot.blend1 differ diff --git a/assets/spider2.tscn b/assets/spider2.tscn index e22e7f8..0b7f146 100644 --- a/assets/spider2.tscn +++ b/assets/spider2.tscn @@ -867,38 +867,32 @@ taunts = Array[String](["did i do that?", "you've been on my shitlist", "you lik script = ExtResource("6_87l3v") initial_state = NodePath("Idle") -[node name="Idle" type="Node" parent="StateMachine" node_paths=PackedStringArray("enemy")] +[node name="Idle" type="Node" parent="StateMachine"] script = ExtResource("7_cwyr0") -enemy = NodePath("../..") move_speed = 1.5 turret_speed = 0.5 poi_investigate = true poi_change_to_search = true -[node name="Stunned" type="Node" parent="StateMachine" node_paths=PackedStringArray("enemy")] +[node name="Stunned" type="Node" parent="StateMachine"] script = ExtResource("8_wpql0") -enemy = NodePath("../..") -[node name="Die" type="Node" parent="StateMachine" node_paths=PackedStringArray("enemy")] +[node name="Die" type="Node" parent="StateMachine"] script = ExtResource("9_6mvds") -enemy = NodePath("../..") metadata/_custom_type_script = "uid://dhxolagi0b5s1" -[node name="Attack" type="Node" parent="StateMachine" node_paths=PackedStringArray("alert_sound", "enemy")] +[node name="Attack" type="Node" parent="StateMachine" node_paths=PackedStringArray("alert_sound")] script = ExtResource("10_gicen") alert_sound = NodePath("../../AUIDO/Alarm") -enemy = NodePath("../..") body_turn_speed = 1.0 -[node name="Reload" type="Node" parent="StateMachine" node_paths=PackedStringArray("reload_sound", "servo_sound", "enemy")] +[node name="Reload" type="Node" parent="StateMachine" node_paths=PackedStringArray("reload_sound", "servo_sound")] script = ExtResource("11_ekglj") reload_sound = NodePath("../../AUIDO/Reload") servo_sound = NodePath("../../AUIDO/ServoSingle") -enemy = NodePath("../..") -[node name="Search" type="Node" parent="StateMachine" node_paths=PackedStringArray("enemy")] +[node name="Search" type="Node" parent="StateMachine"] script = ExtResource("12_aasxo") -enemy = NodePath("../..") poi_investigate = true poi_update_waypoint_immediately = true diff --git a/deposit_bot.tscn b/deposit_bot.tscn new file mode 100644 index 0000000..002130b --- /dev/null +++ b/deposit_bot.tscn @@ -0,0 +1,40 @@ +[gd_scene load_steps=6 format=3 uid="uid://c10cvl6w5rn61"] + +[ext_resource type="PackedScene" uid="uid://kft3pjbe40vx" path="res://assets/Models/DepositBot.blend" id="1_0tmrv"] +[ext_resource type="Script" uid="uid://cga1rh0t3ey77" path="res://scripts/deposit_bot.gd" id="1_2eu0f"] +[ext_resource type="Script" uid="uid://csju024nerln6" path="res://scripts/StateMachine.gd" id="1_naihy"] +[ext_resource type="Script" uid="uid://bgoq8rrojxt32" path="res://scripts/NPCIdle.gd" id="2_icugd"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_yndd5"] +radius = 0.36 + +[node name="DepositBot" type="CharacterBody3D" node_paths=PackedStringArray("state_machine", "nav_agent")] +collision_layer = 65 +collision_mask = 577 +script = ExtResource("1_2eu0f") +state_machine = NodePath("StateMachine") +nav_agent = NodePath("NavigationAgent3D") + +[node name="StateMachine" type="Node" parent="." node_paths=PackedStringArray("initial_state")] +script = ExtResource("1_naihy") +initial_state = NodePath("Idle") + +[node name="Idle" type="Node" parent="StateMachine" node_paths=PackedStringArray("character")] +script = ExtResource("2_icugd") +wander_distance_max = 40.0 +character = NodePath("../..") +move_speed = 1.0 + +[node name="DepositBot" parent="." instance=ExtResource("1_0tmrv")] +transform = Transform3D(-1.25, 0, -1.09278e-07, 0, 1.25, 0, 1.09278e-07, 0, -1.25, 0, 0, 0) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +shape = SubResource("CapsuleShape3D_yndd5") + +[node name="NavigationAgent3D" type="NavigationAgent3D" parent="."] +path_height_offset = 0.5 +avoidance_enabled = true +radius = 1.5 + +[connection signal="velocity_computed" from="NavigationAgent3D" to="." method="_on_navigation_agent_3d_velocity_computed"] diff --git a/hud.tscn b/hud.tscn index a6109ea..9813e55 100644 --- a/hud.tscn +++ b/hud.tscn @@ -1,13 +1,10 @@ -[gd_scene load_steps=8 format=3 uid="uid://br882tlh3cfwu"] +[gd_scene load_steps=7 format=3 uid="uid://br882tlh3cfwu"] [ext_resource type="Script" uid="uid://dfv2m81iew3ia" path="res://scripts/hud.gd" id="1_7hukm"] [ext_resource type="Theme" uid="uid://clek42ofxr45f" path="res://DefaultTheme.tres" id="1_22trs"] [ext_resource type="Script" uid="uid://x40xk7ltmrgr" path="res://scripts/minimap_v1.gd" id="3_640wx"] [ext_resource type="Script" uid="uid://cfou02ggxj80n" path="res://scripts/dynamic_crosshair.gd" id="5_1xsix"] -[sub_resource type="CanvasItemMaterial" id="CanvasItemMaterial_640wx"] -blend_mode = 1 - [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_2hn4h"] bg_color = Color(1, 1, 1, 0.129412) corner_radius_top_left = 5 @@ -55,7 +52,6 @@ grow_vertical = 2 script = ExtResource("5_1xsix") [node name="Minimap" type="Control" parent="StaticItems" node_paths=PackedStringArray("hud")] -material = SubResource("CanvasItemMaterial_640wx") layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 diff --git a/project.godot b/project.godot index 308b7ed..f2b8dd6 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="First Person Test" config/tags=PackedStringArray("fps") -run/main_scene="uid://b55ukxds1s7ih" +run/main_scene="uid://f7e0v1r6ra6c" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="uid://6svuq1l83al5" diff --git a/scripts/CharacterStates.gd b/scripts/CharacterStates.gd new file mode 100644 index 0000000..b7263fa --- /dev/null +++ b/scripts/CharacterStates.gd @@ -0,0 +1,91 @@ +extends State +class_name CharacterState + +@export var character : CharacterBody3D +@export var move_speed : float = 3 +@export var body_turn_speed : float = 3 +@export var turret_speed : float = 6.0 +@export var can_see : bool = true # indicates whether the character is able to see things in the state +@export var poi_investigate : bool = false +@export var poi_change_to_search : bool = false +@export var poi_update_waypoint_immediately : bool = false + +var move_target +var look_target + +func character_has_target(): + if character.player_last_seen != null: + return true + if character.point_of_interest != null: + return true + return false + +func update_move_target(): + if character.player_last_seen != null: + return character.player_last_seen + elif character.point_of_interest != null: + return character.point_of_interest["point"] + else: + return character.global_position + +func search_on_lost_target(): + if !character.is_player_visible(): + Transitioned.emit(self,"attack") + +func move_target_adj(position): + return Vector3(position.x,character.global_position.y,position.z) + +func rotate_to_face2D(object,target,target_offset_angle,delta,turn_speed): + #to allow both nodes and positions to be passed to this function, test the target and use Vector3 coords + var target_transformed + if target == null: + target_transformed = object.global_position + elif target is Vector3: + target_transformed = target + elif target is Node3D: + target_transformed = target.global_position + + var pos2d = Vector2(object.global_position.x,object.global_position.z) + var target_pos2d = Vector2(target_transformed.x,target_transformed.z) + var direction = (pos2d - target_pos2d) + return lerp_angle(object.global_rotation.y,atan2(direction.x,direction.y) + deg_to_rad(target_offset_angle),delta * turn_speed) + +func rotate_to_face3D(object : Node3D,target,target_offset_angle : Vector3,delta : float,turn_speed : float): + if target == null: + return + + var target_positon + + if target is Vector3: + target_positon = target + else: + target_positon = target.global_position + + var desired_rotation = object.global_transform.looking_at(target_positon,Vector3.UP).basis.get_euler() + var current_rotation = object.global_rotation + + #Interpolate each axis + current_rotation.x = lerp_angle(current_rotation.x,desired_rotation.x + target_offset_angle.x,delta * turn_speed) + current_rotation.y = lerp_angle(current_rotation.y,desired_rotation.y + target_offset_angle.y,delta * turn_speed) + current_rotation.z = lerp_angle(current_rotation.z,desired_rotation.z + target_offset_angle.z,delta * turn_speed) + + #clamp pitch + var max_downward_pitch = deg_to_rad(85) + var min_upward_pitch = deg_to_rad(-45) + current_rotation.x = clamp(current_rotation.x,min_upward_pitch, max_downward_pitch) + + object.global_rotation = current_rotation + +func move_to_nav_point(delta): + var destination = character.nav_agent.get_next_path_position() + var local_destination = destination - character.global_position + var new_velocity = local_destination.normalized() * move_speed + + character.nav_agent.set_velocity(new_velocity) + character.global_rotation.y = rotate_to_face2D(character,destination,0,delta,body_turn_speed) + +func velocity_computed(safe_velocity): + character.velocity = character.velocity.move_toward(safe_velocity,.25) + +func update_minimap(priority,duration,color): + SignalBus.emit_signal("ui_minimap_point",character,character.global_position,1,duration,color) diff --git a/scripts/CharacterStates.gd.uid b/scripts/CharacterStates.gd.uid new file mode 100644 index 0000000..e2c7d18 --- /dev/null +++ b/scripts/CharacterStates.gd.uid @@ -0,0 +1 @@ +uid://dpf360834kfoo diff --git a/scripts/NPCIdle.gd b/scripts/NPCIdle.gd new file mode 100644 index 0000000..026649b --- /dev/null +++ b/scripts/NPCIdle.gd @@ -0,0 +1,22 @@ +extends CharacterState +class_name NPCIdle + +@export var wander_distance_max : float = 15.0 +@export var scan_time : float = 3 + +func Enter(): + get_new_wander_point() + +func Update(delta): + #if navigation is finished get new point, otherwise continue on path + if character.nav_agent.is_navigation_finished(): + get_new_wander_point() + else: + move_to_nav_point(delta) + +func get_new_wander_point(): + var x = randf_range(-wander_distance_max,wander_distance_max) + var z = randf_range(-wander_distance_max,wander_distance_max) + move_target = character.global_position + Vector3(x,0,z) + character.nav_agent.set_target_position(move_target) + print("MOVE TARGET : ",move_target) diff --git a/scripts/NPCIdle.gd.uid b/scripts/NPCIdle.gd.uid new file mode 100644 index 0000000..e4921a9 --- /dev/null +++ b/scripts/NPCIdle.gd.uid @@ -0,0 +1 @@ +uid://bgoq8rrojxt32 diff --git a/scripts/StateMachine.gd b/scripts/StateMachine.gd index fc02d9f..23ddd9d 100644 --- a/scripts/StateMachine.gd +++ b/scripts/StateMachine.gd @@ -1,4 +1,5 @@ extends Node +class_name StateMachine @export var initial_state : State diff --git a/scripts/deposit_bot.gd b/scripts/deposit_bot.gd new file mode 100644 index 0000000..2f53109 --- /dev/null +++ b/scripts/deposit_bot.gd @@ -0,0 +1,12 @@ +extends CharacterBody3D + +@export var state_machine : StateMachine +@export var nav_agent : NavigationAgent3D + + +func _process(delta: float) -> void: + move_and_slide() + + +func _on_navigation_agent_3d_velocity_computed(safe_velocity: Vector3) -> void: + state_machine.current_state.velocity_computed(safe_velocity) diff --git a/scripts/deposit_bot.gd.uid b/scripts/deposit_bot.gd.uid new file mode 100644 index 0000000..35678b4 --- /dev/null +++ b/scripts/deposit_bot.gd.uid @@ -0,0 +1 @@ +uid://cga1rh0t3ey77