From 4a17fde692b900393d796675bcf7011aa7399dad Mon Sep 17 00:00:00 2001 From: Anson Bridges Date: Fri, 30 Sep 2022 11:20:16 -0400 Subject: syncing off main --- godot/.gdbinit | 1 - ...step01.ogg-d76963bf1bd06cc247473674bc496643.md5 | 3 + ...p01.ogg-d76963bf1bd06cc247473674bc496643.oggstr | Bin 0 -> 10011 bytes ...step02.ogg-f0eec7980dcf1290786fd8f372f7b88f.md5 | 3 + ...p02.ogg-f0eec7980dcf1290786fd8f372f7b88f.oggstr | Bin 0 -> 10827 bytes ...step03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.md5 | 3 + ...p03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.oggstr | Bin 0 -> 14431 bytes ...step04.ogg-16226c305e1322a536cb96a2c537b228.md5 | 3 + ...p04.ogg-16226c305e1322a536cb96a2c537b228.oggstr | Bin 0 -> 14067 bytes ...step05.ogg-ce0f0381235ebdd22319464e329eef5f.md5 | 3 + ...p05.ogg-ce0f0381235ebdd22319464e329eef5f.oggstr | Bin 0 -> 13891 bytes ...step06.ogg-64d7f3763b27a0bf60b51adc0e13f809.md5 | 3 + ...p06.ogg-64d7f3763b27a0bf60b51adc0e13f809.oggstr | Bin 0 -> 11627 bytes godot/addons/blend/import_blend.gd | 104 ------- godot/addons/blend/plugin.cfg | 7 - godot/addons/blend/plugin.gd | 35 --- godot/backup_stuff/Player.gd | 142 --------- godot/backup_stuff/Player.tscn | 57 ---- godot/backup_stuff/PlayerOld.tscn | 37 --- godot/backup_stuff/Player_Other.gd | 219 ------------- godot/backup_stuff/Sailor.gd | 43 --- godot/backup_stuff/Sailor.tscn | 27 -- godot/backup_stuff/player_controller.gd | 282 ----------------- godot/bin/playercam._gdnlib | 14 - godot/bin/playercam.gdns | 8 - godot/bin/playercontroller.gdnlib | 14 - godot/bin/playercontroller.gdns | 8 - godot/bin/x11/libnetmachine.so | Bin 4807632 -> 0 bytes godot/bin/x11/libplayercam.so | Bin 4841152 -> 0 bytes godot/bin/x11/libplayercontroller.so | Bin 5297184 -> 0 bytes godot/export_presets.cfg | 2 +- godot/libnetmachine.so | Bin 4807632 -> 0 bytes godot/maps/Main.tscn | 231 +++++++++++++- godot/meshes/laetine.obj | 346 --------------------- godot/meshes/laetine.obj.import | 20 -- godot/meshes/laetine_mask.obj | 97 ------ godot/project.godot | 1 + godot/scenes/ballistics/Cannonball.tscn | 5 +- godot/scenes/characters/PlayerRigid.tscn | 4 +- godot/scenes/characters/viewmodel_arms.tscn | 4 +- godot/scenes/environment/RopeSegment.tscn | 18 ++ godot/scenes/environment/SwingRope.tscn | 3 + godot/scenes/vehicles/Gunboat.tscn | 282 ----------------- godot/scenes/vehicles/Gunbrig.tscn | 13 +- godot/scenes/vehicles/ship_parts/SquareSail.gd | 4 +- godot/scenes/weapons/grapplinghook.gd | 98 ++++++ godot/scenes/weapons/grapplinghook.tres | 7 + godot/scenes/worldprops/ball_bucket.tscn | 46 +++ godot/scripts/GameBase.gd | 4 +- godot/scripts/ballistics/Cannonball.gd | 4 + godot/scripts/characters/player_controller_new.gd | 5 + godot/scripts/machines/Cannon.gd | 9 +- godot/scripts/vehicles/Gunboat.gd | 8 +- godot/sounds/footstep01.ogg | Bin 0 -> 9715 bytes godot/sounds/footstep01.ogg.import | 15 + godot/sounds/footstep02.ogg | Bin 0 -> 10531 bytes godot/sounds/footstep02.ogg.import | 15 + godot/sounds/footstep03.ogg | Bin 0 -> 14136 bytes godot/sounds/footstep03.ogg.import | 15 + godot/sounds/footstep04.ogg | Bin 0 -> 13771 bytes godot/sounds/footstep04.ogg.import | 15 + godot/sounds/footstep05.ogg | Bin 0 -> 13595 bytes godot/sounds/footstep05.ogg.import | 15 + godot/sounds/footstep06.ogg | Bin 0 -> 11329 bytes godot/sounds/footstep06.ogg.import | 15 + godot/theming/menu_font.tres | 1 + godot/ui/HUD.gd | 1 - godot/watershadertest.tscn | 115 +++++++ work/backup_stuff/Player.gd | 142 +++++++++ work/backup_stuff/Player.tscn | 57 ++++ work/backup_stuff/PlayerOld.tscn | 37 +++ work/backup_stuff/Player_Other.gd | 219 +++++++++++++ work/backup_stuff/Sailor.gd | 43 +++ work/backup_stuff/Sailor.tscn | 27 ++ work/backup_stuff/player_controller.gd | 282 +++++++++++++++++ work/man.blend | Bin 0 -> 808852 bytes work/man.blend1 | Bin 0 -> 808768 bytes 77 files changed, 1468 insertions(+), 1773 deletions(-) delete mode 100644 godot/.gdbinit create mode 100644 godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.md5 create mode 100644 godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.oggstr create mode 100644 godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.md5 create mode 100644 godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.oggstr create mode 100644 godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.md5 create mode 100644 godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.oggstr create mode 100644 godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.md5 create mode 100644 godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.oggstr create mode 100644 godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.md5 create mode 100644 godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.oggstr create mode 100644 godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.md5 create mode 100644 godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.oggstr delete mode 100644 godot/addons/blend/import_blend.gd delete mode 100644 godot/addons/blend/plugin.cfg delete mode 100644 godot/addons/blend/plugin.gd delete mode 100644 godot/backup_stuff/Player.gd delete mode 100644 godot/backup_stuff/Player.tscn delete mode 100644 godot/backup_stuff/PlayerOld.tscn delete mode 100644 godot/backup_stuff/Player_Other.gd delete mode 100644 godot/backup_stuff/Sailor.gd delete mode 100644 godot/backup_stuff/Sailor.tscn delete mode 100644 godot/backup_stuff/player_controller.gd delete mode 100644 godot/bin/playercam._gdnlib delete mode 100644 godot/bin/playercam.gdns delete mode 100644 godot/bin/playercontroller.gdnlib delete mode 100644 godot/bin/playercontroller.gdns delete mode 100755 godot/bin/x11/libnetmachine.so delete mode 100755 godot/bin/x11/libplayercam.so delete mode 100755 godot/bin/x11/libplayercontroller.so delete mode 100644 godot/libnetmachine.so delete mode 100644 godot/meshes/laetine.obj delete mode 100644 godot/meshes/laetine.obj.import delete mode 100644 godot/meshes/laetine_mask.obj create mode 100644 godot/scenes/environment/RopeSegment.tscn create mode 100644 godot/scenes/environment/SwingRope.tscn delete mode 100644 godot/scenes/vehicles/Gunboat.tscn create mode 100644 godot/scenes/weapons/grapplinghook.gd create mode 100644 godot/scenes/weapons/grapplinghook.tres create mode 100644 godot/scenes/worldprops/ball_bucket.tscn create mode 100644 godot/sounds/footstep01.ogg create mode 100644 godot/sounds/footstep01.ogg.import create mode 100644 godot/sounds/footstep02.ogg create mode 100644 godot/sounds/footstep02.ogg.import create mode 100644 godot/sounds/footstep03.ogg create mode 100644 godot/sounds/footstep03.ogg.import create mode 100644 godot/sounds/footstep04.ogg create mode 100644 godot/sounds/footstep04.ogg.import create mode 100644 godot/sounds/footstep05.ogg create mode 100644 godot/sounds/footstep05.ogg.import create mode 100644 godot/sounds/footstep06.ogg create mode 100644 godot/sounds/footstep06.ogg.import create mode 100644 godot/watershadertest.tscn create mode 100644 work/backup_stuff/Player.gd create mode 100644 work/backup_stuff/Player.tscn create mode 100644 work/backup_stuff/PlayerOld.tscn create mode 100644 work/backup_stuff/Player_Other.gd create mode 100644 work/backup_stuff/Sailor.gd create mode 100644 work/backup_stuff/Sailor.tscn create mode 100644 work/backup_stuff/player_controller.gd create mode 100644 work/man.blend create mode 100644 work/man.blend1 diff --git a/godot/.gdbinit b/godot/.gdbinit deleted file mode 100644 index 0c1f45b..0000000 --- a/godot/.gdbinit +++ /dev/null @@ -1 +0,0 @@ -set debuginfod enabled off diff --git a/godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.md5 b/godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.md5 new file mode 100644 index 0000000..b1c7dd0 --- /dev/null +++ b/godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.md5 @@ -0,0 +1,3 @@ +source_md5="5e4ce2a9a8da359e25ebacefe6085207" +dest_md5="540f42f15b11a03bbc5c26d78088848a" + diff --git a/godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.oggstr b/godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.oggstr new file mode 100644 index 0000000..a5df690 Binary files /dev/null and b/godot/.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.oggstr differ diff --git a/godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.md5 b/godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.md5 new file mode 100644 index 0000000..5b914b9 --- /dev/null +++ b/godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.md5 @@ -0,0 +1,3 @@ +source_md5="42a68b509a5b55bacf421a53b8498ac9" +dest_md5="ed10ec8a9448819e30f35be09e23325a" + diff --git a/godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.oggstr b/godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.oggstr new file mode 100644 index 0000000..3659edc Binary files /dev/null and b/godot/.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.oggstr differ diff --git a/godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.md5 b/godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.md5 new file mode 100644 index 0000000..321bb2f --- /dev/null +++ b/godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.md5 @@ -0,0 +1,3 @@ +source_md5="096249de9851a4dd5cff284df6e2cfbe" +dest_md5="6ec64c55a330edeb2cdf04c14a60c8f6" + diff --git a/godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.oggstr b/godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.oggstr new file mode 100644 index 0000000..f2473d2 Binary files /dev/null and b/godot/.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.oggstr differ diff --git a/godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.md5 b/godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.md5 new file mode 100644 index 0000000..86f4833 --- /dev/null +++ b/godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.md5 @@ -0,0 +1,3 @@ +source_md5="2bbf2dc2c4fd5dab1471565a7717c26d" +dest_md5="2cbd71ac6e406536e91118e2f7f5b95d" + diff --git a/godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.oggstr b/godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.oggstr new file mode 100644 index 0000000..2653e96 Binary files /dev/null and b/godot/.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.oggstr differ diff --git a/godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.md5 b/godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.md5 new file mode 100644 index 0000000..7918de1 --- /dev/null +++ b/godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.md5 @@ -0,0 +1,3 @@ +source_md5="9c86cbb9d876a664616768b928f09c41" +dest_md5="6f79b791e828a1c0d1ac6925dbe5f1b7" + diff --git a/godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.oggstr b/godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.oggstr new file mode 100644 index 0000000..5ee96b0 Binary files /dev/null and b/godot/.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.oggstr differ diff --git a/godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.md5 b/godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.md5 new file mode 100644 index 0000000..6ebe6a9 --- /dev/null +++ b/godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.md5 @@ -0,0 +1,3 @@ +source_md5="1ad77a09007eecfe72c27d6979372fb9" +dest_md5="eae27abc77d8ece3dd72977c8ba37879" + diff --git a/godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.oggstr b/godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.oggstr new file mode 100644 index 0000000..14ee55e Binary files /dev/null and b/godot/.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.oggstr differ diff --git a/godot/addons/blend/import_blend.gd b/godot/addons/blend/import_blend.gd deleted file mode 100644 index 102b1fc..0000000 --- a/godot/addons/blend/import_blend.gd +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright (c) 2021 K. S. Ernest (iFire) Lee and V-Sekai Contributors. -# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. -# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -tool -extends EditorSceneImporter - -const settings_blender_path = "filesystem/import/blend/blender_path" - -var blender_path : String - -func _init(): - if not ProjectSettings.has_setting(settings_blender_path): - ProjectSettings.set_setting(settings_blender_path, "blender") - ProjectSettings.set_initial_value(settings_blender_path, "blender") - else: - blender_path = ProjectSettings.get_setting(settings_blender_path) - var property_info = { - "name": settings_blender_path, - "type": TYPE_STRING, - "hint": PROPERTY_HINT_GLOBAL_FILE, - "hint_string": "" - } - ProjectSettings.add_property_info(property_info) - - -func _get_extensions(): - return ["blend"] - - -func _get_import_flags(): - return EditorSceneImporter.IMPORT_SCENE - - -func _import_scene(path: String, flags: int, bake_fps: int): - var import_config_file = ConfigFile.new() - import_config_file.load(path + ".import") - var compression_flags: int = import_config_file.get_value("params", "meshes/compress", 0) - # ARRAY_COMPRESS_BASE = (ARRAY_INDEX + 1) - compression_flags = compression_flags << (VisualServer.ARRAY_INDEX + 1) - if import_config_file.get_value("params", "meshes/octahedral_compression", false): - compression_flags |= VisualServer.ARRAY_FLAG_USE_OCTAHEDRAL_COMPRESSION - - var path_global : String = ProjectSettings.globalize_path(path) - path_global = path_global.c_escape() - var output_path : String = "res://.import/" + path.get_file() + "-" + path.md5_text() + ".glb" - var output_path_global = ProjectSettings.globalize_path(output_path) - output_path_global = output_path_global.c_escape() - var stdout = [].duplicate() - var addon_path : String = blender_path - var addon_path_global = ProjectSettings.globalize_path(addon_path) - var params: PoolStringArray = [ - "filepath='%s'" % output_path_global, - "export_format='GLB'", - "export_colors=True", - "export_all_influences=False", - "export_extras=True", - "export_cameras=True", - "export_lights=True", - "export_apply=(len(bpy.data.shape_keys)==0)" - ] - var script : String = "import bpy; bpy.ops.export_scene.gltf(%s)" % params.join(",") - path_global = path_global.c_escape() - var args = PoolStringArray([ - path_global, - "--background", - "--python-expr", - script - ]) - var ret = OS.execute(addon_path_global, args, true, stdout, true) - if ret != OK: - push_error( - "Blender import failed with code=%d.\nCommand: %s\nOutput: %s" % [ - ret, - args.join(" "), - PoolStringArray(stdout).join("\n") - ] - ) - return null - - var root_node: Spatial = null - if Engine.get_version_info()["major"] <= 3 and Engine.get_version_info()["minor"] <= 3: - root_node = call("import_scene_from_other_importer", output_path, flags, bake_fps) - else: - root_node = call("import_scene_from_other_importer", output_path, flags, bake_fps, compression_flags) - return root_node diff --git a/godot/addons/blend/plugin.cfg b/godot/addons/blend/plugin.cfg deleted file mode 100644 index 3fe0961..0000000 --- a/godot/addons/blend/plugin.cfg +++ /dev/null @@ -1,7 +0,0 @@ -[plugin] - -name="Blend" -description="Blend Importer" -author="K. S. Ernest Lee and V-Sekai Contributors" -version="1.0.0" -script="plugin.gd" diff --git a/godot/addons/blend/plugin.gd b/godot/addons/blend/plugin.gd deleted file mode 100644 index d399e67..0000000 --- a/godot/addons/blend/plugin.gd +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (c) 2021 K. S. Ernest (iFire) Lee and V-Sekai Contributors. -# Copyright (c) 2007-2021 Juan Linietsky, Ariel Manzur. -# Copyright (c) 2014-2021 Godot Engine contributors (cf. AUTHORS.md). -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# -tool -extends EditorPlugin - -var import_plugin - -func _enter_tree(): - import_plugin = preload("res://addons/blend/import_blend.gd").new() - add_scene_import_plugin(import_plugin) - - -func _exit_tree(): - remove_scene_import_plugin(import_plugin) - import_plugin = null diff --git a/godot/backup_stuff/Player.gd b/godot/backup_stuff/Player.gd deleted file mode 100644 index 3555de5..0000000 --- a/godot/backup_stuff/Player.gd +++ /dev/null @@ -1,142 +0,0 @@ -extends RigidBody - -###################-VARIABLES-#################### - -# Camera -export(float) var mouse_sensitivity = 12.0 -export(NodePath) var cam_path -export(NodePath) var ai_follower = null -export(float) var FOV = 90.0 -var mouse_axis := Vector2() -onready var cam: Camera = get_node(cam_path) -# Move -var velocity := Vector3() -var direction := Vector3() -var move_axis := Vector2() -# Walk -const FLOOR_MAX_ANGLE: float = deg2rad(46.0) -export(float) var gravity = 17.35 -export(float) var jump_height = 1.084 -var jump_vel = 5.89#sqrt(2 * gravity * jump_height) -var is_on_floor : bool = false -onready var feet = get_node("Feet") - -var controlling_vehicle = false -var vehicle = null - -export(float) var acceleration = 70 -export(int) var walk_speed = 6 -export(float) var _airspeed_cap = 1 -export(float) var air_control = 1 - -# Fly -export(int) var fly_speed = 50 -export(int) var fly_accel = 10 -var flying := false - -# Crouch -var is_duck = 0 -const duck_height = .5*.6*1.8 #one half the hitbox duck height -var duck_speed = 2.3 -var knockback_mult = 1 -var duck_progress = 0 - -var world - -# Shoot -var countdown = 0; -export(float) var firing_cooldown = .8 -export(Vector3) var snap - -static func compare_floats(a, b, epsilon = 0.00001): - return abs(a - b) <= epsilon - -func walk(delta): - knockback_mult = 1.35 if is_duck else 1 - #check if is on floor - if feet.is_colliding(): - is_on_floor = true - - # Duck - if not compare_floats(duck_progress, is_duck): - var h = $CollisionBox.get_shape().get_extents().y - var dir = -1 if is_duck else 1 - var dh = dir*duck_speed*state.step - var desh = duck_height if is_duck else 0.9 - if abs(h+dh - desh) < .05: - dh = desh-h - $CollisionBox.get_shape().set_extents(Vector3(.325,h+dh,.325)) - $CollisionBox.translate_object_local(Vector3(0,-dh/2,0)) - duck_progress = 1-(h+dh-duck_height)/(0.9-duck_height) - - # Input - direction = Vector3() - var aim: Basis = get_global_transform().basis - if move_axis.x >= 0.5: - direction -= aim.z - elif move_axis.x <= -0.5: - direction += aim.z - if move_axis.y <= -0.5: - direction -= aim.x - elif move_axis.y >= 0.5: - direction += aim.x - direction.y = 0 - direction = direction.normalized() - - # Jump - if is_on_floor: - snap = Vector3.DOWN - if Input.is_action_just_pressed("move_jump"): - snap = Vector3.ZERO - velocity.y += jump_vel - - velocity.y -= gravity * state.step - if abs(velocity.y) > 1: - snap = Vector3.ZERO - - - #max walk speed - var _speed = walk_speed if not is_duck else walk_speed*0.5 - - - var _temp_accel: float = acceleration - - - if not is_on_floor or Input.is_action_just_pressed("move_jump"): - _temp_accel *= air_control - else: #apply friction - var _cspeed = sqrt(pow(velocity.x,2)+pow(velocity.z,2)) - if _cspeed != 0: - var walkdir = Vector2(velocity.x,velocity.z) - var fvar = _cspeed*friction if direction.length() != 0 else _cspeed*2*friction - #fvar *= 4 if is_duck else 1 - velocity.x -= walkdir.normalized().x*fvar*state.step - velocity.z -= walkdir.normalized().y*fvar*state.step - - var projVel = Vector2(velocity.x,velocity.z).dot(Vector2(direction.x,direction.z)) - _temp_accel *= state.step - - if is_on_floor: - if _speed - (projVel + _temp_accel) > 0: - velocity.x += direction.x*_temp_accel - velocity.z += direction.z*_temp_accel - else: - velocity.x += direction.x*(_speed-projVel) - velocity.z += direction.z*(_speed-projVel) - elif _airspeed_cap - projVel > 0: - velocity.x += direction.x*_temp_accel - velocity.z += direction.z*_temp_accel - - # clamping (to stop on slopes) - if direction.dot(velocity) == 0: - var _vel_clamp := 0.25 - if abs(velocity.x) < _vel_clamp: - velocity.x = 0 - if abs(velocity.z) < _vel_clamp: - velocity.z = 0 - - # Move - print(velocity) - set_linear_velocity(velocity) - velocity = get_linear_velocity() - diff --git a/godot/backup_stuff/Player.tscn b/godot/backup_stuff/Player.tscn deleted file mode 100644 index a68f994..0000000 --- a/godot/backup_stuff/Player.tscn +++ /dev/null @@ -1,57 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://backup_stuff/Player.gd" type="Script" id=1] - -[sub_resource type="CylinderShape" id=1] -height = 1.8 -radius = 0.4 - -[node name="Player" type="RigidBody"] -mode = 2 -mass = 80.0 -contacts_reported = 1 -contact_monitor = true -axis_lock_angular_x = true -axis_lock_angular_z = true -script = ExtResource( 1 ) -mouse_sensitivity = null -cam_path = null -ai_follower = null -FOV = null -gravity = null -jump_height = null -acceleration = null -walk_speed = null -_airspeed_cap = null -air_control = null -fly_speed = null -fly_accel = null -firing_cooldown = null -snap = null - -[node name="CollisionBox" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0 ) -shape = SubResource( 1 ) - -[node name="Camera" type="Camera" parent="."] -transform = Transform( 1, 0, 0, 0, 0.999973, -0.00740013, 0, 0.00740013, 0.999973, 0, 1.5, 0 ) -cull_mask = 524287 -near = 0.15 -far = 8192.0 - -[node name="UseRay" type="RayCast" parent="Camera"] -enabled = true -cast_to = Vector3( 0, 0, -2.5 ) -collision_mask = 131075 -collide_with_areas = true - -[node name="MeleeRay" type="RayCast" parent="Camera"] -enabled = true -cast_to = Vector3( 0, 0, -2.5 ) -collision_mask = 262145 -collide_with_areas = true - -[node name="Feet" type="RayCast" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0608446, 0 ) -enabled = true -cast_to = Vector3( 0, -0.25, 0 ) diff --git a/godot/backup_stuff/PlayerOld.tscn b/godot/backup_stuff/PlayerOld.tscn deleted file mode 100644 index f79339e..0000000 --- a/godot/backup_stuff/PlayerOld.tscn +++ /dev/null @@ -1,37 +0,0 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://backup_stuff/player_controller.gd" type="Script" id=1] - -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.325, 0.9, 0.325 ) - -[node name="Player" type="KinematicBody" groups=["units"]] -script = ExtResource( 1 ) -cam_path = NodePath("Camera") -jump_height = 2.0 -fly_speed = 10 - -[node name="CollisionBox" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0 ) -shape = SubResource( 1 ) - -[node name="Camera" type="Camera" parent="."] -transform = Transform( 1, 0, 0, 0, 0.999973, -0.00740013, 0, 0.00740013, 0.999973, 0, 1.5, 0 ) -cull_mask = 524287 -near = 0.15 -far = 8192.0 - -[node name="UseRay" type="RayCast" parent="Camera"] -enabled = true -cast_to = Vector3( 0, 0, -2.5 ) -collision_mask = 131075 -collide_with_areas = true - -[node name="MeleeRay" type="RayCast" parent="Camera"] -enabled = true -cast_to = Vector3( 0, 0, -100 ) -collision_mask = 262145 -collide_with_areas = true - -[node name="TugPoint" type="Spatial" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.30489, -1.57084 ) diff --git a/godot/backup_stuff/Player_Other.gd b/godot/backup_stuff/Player_Other.gd deleted file mode 100644 index 0116d71..0000000 --- a/godot/backup_stuff/Player_Other.gd +++ /dev/null @@ -1,219 +0,0 @@ -extends KinematicBody - - -export(String, "red", "blue") var team -#item variables -var can_swap = true -var has_items = [false,false,false,false,false] -var items = [null,null,null,null,null] -export(String) var item0path -export(String) var item1path -export(String) var item2path -export(String) var item3path -export(String) var item4path -var weapon -export(int) var health = 100 - -var unit - -var move_axis := Vector2() -var velocity := Vector3() -var direction := Vector3() -var parentvel := Vector3() -var tugging = false -var tug_target - -export(float) var friction = 4 -export(float) var _airspeed_cap = 1 - -var is_duck = 0 -const duck_height = .5*.6*1.8 #one half the hitbox duck height -var duck_speed = 2.3 -var knockback_mult = 1 -var duck_progress = 0 - -var can_switch = true - - -const gravity = 9.8 -const FLOOR_MAX_ANGLE: float = deg2rad(46.0) -const jump_constant = 12 -const walk_speed = 6 -const tug_speed = 1.5 -const acceleration = 70 -const air_control = 0.3 -const tug_force = 500 -const tug_distance = 3.5 -const push_distance = 1 -const duck_knockback_mult = 1.35 -const jump_vel = 5 - -static func compare_floats(a, b, epsilon = 0.00001): - return abs(a - b) <= epsilon - -# Called when the node enters the scene tree for the first time. -func _ready(): - $Camera/UseRay.add_exception(self) - $Camera/MeleeRay.add_exception(self) - - -func damage(amount, attacker, point = Vector3.ZERO): - health -= amount - rpc("update_health",health) - if health <= 0: - if is_network_master(): - get_node("/root/Game/Camera").current = true - rpc("die") - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta): - if is_network_master() and !get_node('/root/Game/HUD/Selection').is_visible_in_tree(): - if Input.is_action_just_pressed("use"): - pass - move_axis.x = Input.get_action_strength("walk_forward") - Input.get_action_strength("walk_backward") - move_axis.y = Input.get_action_strength("strafe_right") - Input.get_action_strength("strafe_left") - is_duck = Input.get_action_strength("duck") - if Input.is_action_just_pressed("attack1"): - weapon.attack() - if Input.is_action_just_pressed("attack2"): - weapon.attack2() - if Input.is_action_just_pressed("slot1"): - rpc('switch_weapon',0) - if Input.is_action_just_pressed("slot2"): - rpc('switch_weapon',1) - -func initiate_use(): - if tugging: - tugging = false - elif $Camera/UseRay.is_colliding(): - var type = $Camera/UseRay.get_collider().name - match type: - "TugArea": - tugging = true - tug_target = $Camera/UseRay.get_collider().get_parent() - _: - pass - -func check_tug(): - if !$Camera/UseRay.is_colliding() or !($Camera/UseRay.get_collider().name != tug_target.name): - tugging = false - -func _physics_process(delta): - if is_network_master() or (get_tree().get_network_unique_id() == 1 and get_network_master() == -1): - if is_network_master(): - player_move(delta) - else: - ai_move(delta) - rpc("_set_position", global_transform) - -remotesync func update_health(new_h): - health = new_h - if is_network_master(): - get_tree().get_root().get_node('Game/HUD/Health').text = str(health) - -func ai_move(delta): - if !is_on_floor(): - velocity.y -= gravity * delta - move_and_slide(velocity,Vector3.UP) - -func player_move(delta): - # Input - direction = Vector3() - var aim: Basis = get_global_transform().basis - if move_axis.x >= 0.5: - direction -= aim.z - elif move_axis.x <= -0.5: - direction += aim.z - if move_axis.y <= -0.5: - direction -= aim.x - elif move_axis.y >= 0.5: - direction += aim.x - direction.y = 0 - direction = direction.normalized() - - # Jump - var snap = Vector3.ZERO - if is_on_floor(): - snap = Vector3.DOWN - if Input.is_action_just_pressed("jump"): - snap = Vector3.ZERO - velocity.y += jump_vel - else: - velocity += parentvel - - velocity.y -= gravity * delta - if abs(velocity.y) > 1: - snap = Vector3.ZERO - - #max walk speed - var _speed = walk_speed if not is_duck else walk_speed*0.5 - - var _temp_accel: float = acceleration - - if is_on_floor(): - var _cspeed = sqrt(pow(velocity.x,2)+pow(velocity.z,2)) - if _cspeed != 0: - var walkdir = Vector2(velocity.x,velocity.z) - var fvar = _cspeed*friction if direction.length() != 0 else _cspeed*2*friction - #fvar *= 4 if is_duck else 1 - velocity.x -= walkdir.normalized().x*fvar*delta - velocity.z -= walkdir.normalized().y*fvar*delta - animationcontroller.rpc("run",_cspeed/walk_speed) - else: - animationcontroller.rpc("run",0) - #rpc("_play_animation",false,"idle_single") - - var projVel = Vector2(velocity.x,velocity.z).dot(Vector2(direction.x,direction.z)) - _temp_accel *= delta - - if is_on_floor(): - - if _speed - (projVel + _temp_accel) > 0: - velocity.x += direction.x*_temp_accel - velocity.z += direction.z*_temp_accel - else: - velocity.x += direction.x*(_speed-projVel) - velocity.z += direction.z*(_speed-projVel) - elif _airspeed_cap - projVel > 0: - velocity.x += direction.x*_temp_accel - velocity.z += direction.z*_temp_accel - - # clamping (to stop on slopes) - if direction.dot(velocity) == 0: - var _vel_clamp := 0.25 - if abs(velocity.x) < _vel_clamp: - velocity.x = 0 - if abs(velocity.z) < _vel_clamp: - velocity.z = 0 - - # Move - var moving = move_and_slide_with_snap(velocity, snap, Vector3.UP, false, 4, FLOOR_MAX_ANGLE) - if is_on_wall(): - velocity = moving - else: - velocity.y = moving.y - -remotesync func die(): - get_node("/root/Game").update_chars_delay() - queue_free() - - -remote func _set_position(pos): - global_transform = pos -#set net master of this player to the id -func _set_master(id): - if get_network_master() == -1: - $Camera.current = true - $Armature/Skeleton/Cube.set_layer_mask(524288) - for unit in get_tree().get_nodes_in_group("units"): - if unit.get_network_master() == id: - unit.rpc("_set_master_helper",-1) - #nit.set_network_master(-1) - rpc("_set_master_helper", id) -remotesync func _set_master_helper(id): - set_network_master(id) - update_health(health) - if id == -1: - $Armature/Skeleton/Cube.set_layer_mask(1) - get_node("/root/Game").update_chars() diff --git a/godot/backup_stuff/Sailor.gd b/godot/backup_stuff/Sailor.gd deleted file mode 100644 index 24b93f9..0000000 --- a/godot/backup_stuff/Sailor.gd +++ /dev/null @@ -1,43 +0,0 @@ -extends KinematicBody - - -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" -export(NodePath) var parent_vehicle = null -#onready var nav_agent : NavigationAgent = get_node("NavigationAgent") -var parent_vehicle_nav = null - -var destination = Vector3.ZERO -var closest_point = Vector3.ZERO -var direction = Vector3.ZERO -var path = null -var pathfinding = false - -const speed = 5 -var velocity = Vector3.ZERO - - -# Called when the node enters the scene tree for the first time. -func _ready(): - if parent_vehicle != null: - parent_vehicle = get_node(parent_vehicle) - parent_vehicle_nav = parent_vehicle.get_node("Navigation") - #nav_agent.set_navigation(parent_vehicle_nav) - -func update_destination(new_dest): - pass#nav_agent.set_target_location(new_dest) - -func move(delta): - var target = Vector3.ZERO#nav_agent.get_next_location() - var direction : Vector3 = (target - global_transform.origin).normalized() * speed - velocity.y -= 9.8*delta - velocity.x = direction.normalized().x*speed - velocity.z = direction.normalized().z*speed - #nav_agent.set_velocity(Vector3(velocity.x,0,velocity.z)) - velocity = move_and_slide(velocity, Vector3.UP, true, 4, 0.785, false) - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -func _physics_process(delta): - move(delta) diff --git a/godot/backup_stuff/Sailor.tscn b/godot/backup_stuff/Sailor.tscn deleted file mode 100644 index 6458fec..0000000 --- a/godot/backup_stuff/Sailor.tscn +++ /dev/null @@ -1,27 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://backup_stuff/Sailor.gd" type="Script" id=1] - -[sub_resource type="BoxShape" id=1] -extents = Vector3( 0.325, 0.9, 0.325 ) - -[sub_resource type="CubeMesh" id=2] -size = Vector3( 0.625, 1.8, 0.625 ) - -[node name="Sailor" type="KinematicBody"] -collision/safe_margin = 0.01 -script = ExtResource( 1 ) - -[node name="CollisionShape" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.937097, 0 ) -shape = SubResource( 1 ) - -[node name="MeshInstance" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.937097, 0 ) -mesh = SubResource( 2 ) - -[node name="NavigationAgent" type="NavigationAgent" parent="."] -target_desired_distance = 3.52 -agent_height_offset = 0.1 -radius = 0.5 -max_speed = 5.0 diff --git a/godot/backup_stuff/player_controller.gd b/godot/backup_stuff/player_controller.gd deleted file mode 100644 index f52decf..0000000 --- a/godot/backup_stuff/player_controller.gd +++ /dev/null @@ -1,282 +0,0 @@ -extends KinematicBody - -###################-VARIABLES-#################### - -# Camera -export(float) var mouse_sensitivity = 12.0 -export(NodePath) var cam_path -export(NodePath) var ai_follower = null -export(float) var FOV = 90.0 -var mouse_axis := Vector2() -onready var cam: Camera = get_node(cam_path) -# Move -var velocity := Vector3() -var direction := Vector3() -var move_axis := Vector2() -# Walk -const FLOOR_MAX_ANGLE: float = deg2rad(46.0) -export(float) var gravity = 17.35 -export(float) var jump_height = 1.084 -var jump_vel = 5.89#sqrt(2 * gravity * jump_height) - -var has_control = true -var vehicle = null - -export(float) var acceleration = 70 -export(int) var walk_speed = 6 -export(float) var _airspeed_cap = 1 -export(float) var friction = 4 -export(float) var air_control = 1 - -var grappling = false -var grapple_length = 0 -var grapple_point = Vector3.ZERO - -# Fly -export(int) var fly_speed = 50 -export(int) var fly_accel = 10 -var flying := false - -# Crouch -var is_duck = 0 -const duck_height = .5*.6*1.8 #one half the hitbox duck height -var duck_speed = 2.3 -var knockback_mult = 1 -var duck_progress = 0 - -var world - -# Shoot -var countdown = 0; -export(float) var firing_cooldown = .8 -export(Vector3) var snap - - -################################################## - -# Called when the node enters the scene tree -func _ready() -> void: - if ai_follower != null: - ai_follower = get_node(ai_follower) - flying = true - Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) - cam.fov = FOV - $Camera/UseRay.add_exception(self) - $Camera/MeleeRay.add_exception(self) - world = get_parent() - - -# Called every frame. 'delta' is the elapsed time since the previous frame -func _process(_delta: float) -> void: - if Input.is_action_just_pressed("use"): - initiate_use() - if !has_control: - return - if Input.is_action_just_pressed("fly"): - flying = !flying - if Input.is_action_just_pressed("fire"): - if $Camera/MeleeRay.is_colliding(): - grappling = true - grapple_point = $Camera/MeleeRay.get_collision_point() - grapple_length = (grapple_point-global_transform.origin).length() + 1 - elif Input.is_action_just_released("fire"): - grappling = false - if Input.is_action_just_pressed("altfire"): - cam.fov = 20 if cam.fov == FOV else FOV - if countdown > 0: - countdown -= _delta - move_axis.x = Input.get_action_strength("move_forward") - Input.get_action_strength("move_backward") - move_axis.y = Input.get_action_strength("move_right") - Input.get_action_strength("move_left") - is_duck = Input.get_action_strength("duck") - - -# Called every physics tick. 'delta' is constant -func _physics_process(delta: float) -> void: - if !has_control: - move_axis = Vector2.ZERO - if flying: - fly(delta) - else: - walk(delta) - -static func compare_floats(a, b, epsilon = 0.00001): - return abs(a - b) <= epsilon - -func regain_control(gt): - #world.add_child(self) - global_transform.origin = gt - has_control = true - vehicle = null - -func initiate_use(): - if !has_control: - vehicle.relinquish_control() - return - if $Camera/UseRay.is_colliding(): - var type = $Camera/UseRay.get_collider().name - match type: - "SteerArea": - if flying or $Camera/UseRay.get_collider().get_parent().is_in_use(): - return - has_control = false - vehicle = $Camera/UseRay.get_collider().get_parent().take_control(self) - var gt = global_transform.origin - velocity = Vector3.ZERO - #get_parent().remove_child(self) - #vehicle.add_child(self) - global_transform.origin = gt - _: - pass - -# Called when there is an input event -func _input(event: InputEvent) -> void: - if event is InputEventMouseMotion: - mouse_axis = event.relative - camera_rotation() - - -func walk(delta: float) -> void: - knockback_mult = 1.35 if is_duck else 1 - if grappling: - var grapple_vec = global_transform.origin - grapple_point - var grapple_dist = grapple_vec.length() - if grapple_dist >= grapple_length: - velocity -= grapple_vec.dot(velocity)*grapple_vec/(grapple_dist*grapple_dist) - var v = velocity.abs() - velocity -= grapple_vec.normalized()*delta*v*v/grapple_dist - # Duck - if not compare_floats(duck_progress, is_duck): - var h = $CollisionBox.get_shape().get_extents().y - var dir = -1 if is_duck else 1 - var dh = dir*duck_speed*delta - var desh = duck_height if is_duck else 0.9 - if abs(h+dh - desh) < .05: - dh = desh-h - $CollisionBox.get_shape().set_extents(Vector3(.325,h+dh,.325)) - $CollisionBox.translate_object_local(Vector3(0,-dh/2,0)) - duck_progress = 1-(h+dh-duck_height)/(0.9-duck_height) - - # Input - direction = Vector3() - var aim: Basis = get_global_transform().basis - if move_axis.x >= 0.5: - direction -= aim.z - elif move_axis.x <= -0.5: - direction += aim.z - if move_axis.y <= -0.5: - direction -= aim.x - elif move_axis.y >= 0.5: - direction += aim.x - direction.y = 0 - direction = direction.normalized() - - # Jump - if is_on_floor(): - snap = Vector3.DOWN - if Input.is_action_just_pressed("move_jump"): - snap = Vector3.ZERO - velocity.y += jump_vel - - velocity.y -= gravity * delta - if abs(velocity.y) > 1: - snap = Vector3.ZERO - - - #max walk speed - var _speed = walk_speed if not is_duck else walk_speed*0.5 - - - var _temp_accel: float = acceleration - - - if not is_on_floor() or Input.is_action_just_pressed("move_jump"): - _temp_accel *= air_control - else: #apply friction - var _cspeed = sqrt(pow(velocity.x,2)+pow(velocity.z,2)) - if _cspeed != 0: - var walkdir = Vector2(velocity.x,velocity.z) - var fvar = _cspeed*friction if direction.length() != 0 else _cspeed*2*friction - #fvar *= 4 if is_duck else 1 - velocity.x -= walkdir.normalized().x*fvar*delta - velocity.z -= walkdir.normalized().y*fvar*delta - - var projVel = Vector2(velocity.x,velocity.z).dot(Vector2(direction.x,direction.z)) - _temp_accel *= delta - - if is_on_floor(): - if _speed - (projVel + _temp_accel) > 0: - velocity.x += direction.x*_temp_accel - velocity.z += direction.z*_temp_accel - else: - velocity.x += direction.x*(_speed-projVel) - velocity.z += direction.z*(_speed-projVel) - elif _airspeed_cap - projVel > 0: - velocity.x += direction.x*_temp_accel - velocity.z += direction.z*_temp_accel - - - - - # clamping (to stop on slopes) - if direction.dot(velocity) == 0: - var _vel_clamp := 0.25 - if abs(velocity.x) < _vel_clamp: - velocity.x = 0 - if abs(velocity.z) < _vel_clamp: - velocity.z = 0 - - # Move - var landed = is_on_floor() == false - #remove_collision_exception_with(rigid_body) - var moving = move_and_slide_with_snap(velocity, snap,Vector3.UP, true, 4, FLOOR_MAX_ANGLE, false) - landed = landed and is_on_floor() -# if is_on_wall(): -# #velocity.x = moving.x -# #velocity.z = moving.z -# velocity = moving - if landed: - velocity -= get_slide_collision(0).collider_velocity - else: - velocity = moving - - - -func fly(delta: float) -> void: - # Input - direction = Vector3() - var aim = cam.get_global_transform().basis - if move_axis.x >= 0.5: - direction -= aim.z - elif move_axis.x <= -0.5: - direction += aim.z - if move_axis.y <= -0.5: - direction -= aim.x - elif move_axis.y >= 0.5: - direction += aim.x - direction = direction.normalized() - - # Acceleration and Deacceleration - var target: Vector3 = direction * 300 - velocity = velocity.linear_interpolate(target, fly_accel * delta) - - # Move - velocity = move_and_slide(velocity, Vector3.UP, false, 4, 45.0, false) - - -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() - - 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 - diff --git a/godot/bin/playercam._gdnlib b/godot/bin/playercam._gdnlib deleted file mode 100644 index 105b98f..0000000 --- a/godot/bin/playercam._gdnlib +++ /dev/null @@ -1,14 +0,0 @@ -[general] - -singleton=false -load_once=true -symbol_prefix="godot_" -reloadable=true - -[entry] - -X11.64="res://bin/x11/libplayercam.so" - -[dependencies] - -X11.64=[ ] diff --git a/godot/bin/playercam.gdns b/godot/bin/playercam.gdns deleted file mode 100644 index 46fa989..0000000 --- a/godot/bin/playercam.gdns +++ /dev/null @@ -1,8 +0,0 @@ -[gd_resource type="NativeScript" load_steps=2 format=2] - -[ext_resource path="res://bin/playercontroller.gdnlib" type="GDNativeLibrary" id=1] - -[resource] -resource_name = "playercam" -class_name = "PlayerCam" -library = ExtResource( 1 ) diff --git a/godot/bin/playercontroller.gdnlib b/godot/bin/playercontroller.gdnlib deleted file mode 100644 index 37c30d5..0000000 --- a/godot/bin/playercontroller.gdnlib +++ /dev/null @@ -1,14 +0,0 @@ -[general] - -singleton=false -load_once=false -symbol_prefix="godot_" -reloadable=true - -[entry] - -X11.64="res://bin/x11/libplayercontroller.so" - -[dependencies] - -X11.64=[ ] diff --git a/godot/bin/playercontroller.gdns b/godot/bin/playercontroller.gdns deleted file mode 100644 index eaf0649..0000000 --- a/godot/bin/playercontroller.gdns +++ /dev/null @@ -1,8 +0,0 @@ -[gd_resource type="NativeScript" load_steps=2 format=2] - -[ext_resource path="res://bin/playercontroller.gdnlib" type="GDNativeLibrary" id=1] - -[resource] -resource_name = "playercontroller" -class_name = "PlayerController" -library = ExtResource( 1 ) diff --git a/godot/bin/x11/libnetmachine.so b/godot/bin/x11/libnetmachine.so deleted file mode 100755 index b8cc579..0000000 Binary files a/godot/bin/x11/libnetmachine.so and /dev/null differ diff --git a/godot/bin/x11/libplayercam.so b/godot/bin/x11/libplayercam.so deleted file mode 100755 index b48d39a..0000000 Binary files a/godot/bin/x11/libplayercam.so and /dev/null differ diff --git a/godot/bin/x11/libplayercontroller.so b/godot/bin/x11/libplayercontroller.so deleted file mode 100755 index 69262c1..0000000 Binary files a/godot/bin/x11/libplayercontroller.so and /dev/null differ diff --git a/godot/export_presets.cfg b/godot/export_presets.cfg index 1532051..145666c 100644 --- a/godot/export_presets.cfg +++ b/godot/export_presets.cfg @@ -7,7 +7,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="./boats.x86_64" +export_path="../../../boats.x86_64" script_export_mode=1 script_encryption_key="" diff --git a/godot/libnetmachine.so b/godot/libnetmachine.so deleted file mode 100644 index b8cc579..0000000 Binary files a/godot/libnetmachine.so and /dev/null differ diff --git a/godot/maps/Main.tscn b/godot/maps/Main.tscn index 9e7ea06..c84ea11 100644 --- a/godot/maps/Main.tscn +++ b/godot/maps/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=32 format=2] +[gd_scene load_steps=57 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] @@ -16,6 +16,10 @@ [ext_resource path="res://scenes/vehicles/Airplane.tscn" type="PackedScene" id=14] [ext_resource path="res://scenes/weapons/hands.gd" type="Script" id=15] [ext_resource path="res://scenes/ballistics/Cannonball.tscn" type="PackedScene" id=16] +[ext_resource path="res://scenes/weapons/pistol.gd" type="Script" id=17] +[ext_resource path="res://scenes/weapons/rockets.gd" type="Script" id=18] +[ext_resource path="res://scenes/weapons/grapplinghook.gd" type="Script" id=19] +[ext_resource path="res://scenes/worldprops/ball_bucket.tscn" type="PackedScene" id=20] [sub_resource type="PhysicsMaterial" id=17] resource_local_to_scene = true @@ -25,38 +29,122 @@ rough = true resource_local_to_scene = true script = ExtResource( 15 ) +[sub_resource type="Resource" id=21] +resource_local_to_scene = true +script = ExtResource( 17 ) + +[sub_resource type="Resource" id=22] +resource_local_to_scene = true +script = ExtResource( 18 ) + +[sub_resource type="Resource" id=41] +resource_local_to_scene = true +script = ExtResource( 19 ) + [sub_resource type="PhysicsMaterial" id=18] resource_local_to_scene = true rough = true -[sub_resource type="Resource" id=21] +[sub_resource type="Resource" id=23] resource_local_to_scene = true script = ExtResource( 15 ) +[sub_resource type="Resource" id=24] +resource_local_to_scene = true +script = ExtResource( 17 ) + +[sub_resource type="Resource" id=25] +resource_local_to_scene = true +script = ExtResource( 18 ) + +[sub_resource type="Resource" id=42] +resource_local_to_scene = true +script = ExtResource( 19 ) + [sub_resource type="PhysicsMaterial" id=19] resource_local_to_scene = true rough = true -[sub_resource type="Resource" id=22] +[sub_resource type="Resource" id=26] resource_local_to_scene = true script = ExtResource( 15 ) -[sub_resource type="Resource" id=23] +[sub_resource type="Resource" id=27] +resource_local_to_scene = true +script = ExtResource( 17 ) + +[sub_resource type="Resource" id=28] +resource_local_to_scene = true +script = ExtResource( 18 ) + +[sub_resource type="Resource" id=43] +resource_local_to_scene = true +script = ExtResource( 19 ) + +[sub_resource type="Resource" id=29] resource_local_to_scene = true script = ExtResource( 15 ) -[sub_resource type="Resource" id=24] +[sub_resource type="Resource" id=30] +resource_local_to_scene = true +script = ExtResource( 17 ) + +[sub_resource type="Resource" id=31] +resource_local_to_scene = true +script = ExtResource( 18 ) + +[sub_resource type="Resource" id=44] +resource_local_to_scene = true +script = ExtResource( 19 ) + +[sub_resource type="Resource" id=32] resource_local_to_scene = true script = ExtResource( 15 ) -[sub_resource type="Resource" id=25] +[sub_resource type="Resource" id=33] +resource_local_to_scene = true +script = ExtResource( 17 ) + +[sub_resource type="Resource" id=34] +resource_local_to_scene = true +script = ExtResource( 18 ) + +[sub_resource type="Resource" id=45] +resource_local_to_scene = true +script = ExtResource( 19 ) + +[sub_resource type="Resource" id=35] resource_local_to_scene = true script = ExtResource( 15 ) -[sub_resource type="Resource" id=26] +[sub_resource type="Resource" id=36] +resource_local_to_scene = true +script = ExtResource( 17 ) + +[sub_resource type="Resource" id=37] +resource_local_to_scene = true +script = ExtResource( 18 ) + +[sub_resource type="Resource" id=46] +resource_local_to_scene = true +script = ExtResource( 19 ) + +[sub_resource type="Resource" id=38] resource_local_to_scene = true script = ExtResource( 15 ) +[sub_resource type="Resource" id=39] +resource_local_to_scene = true +script = ExtResource( 17 ) + +[sub_resource type="Resource" id=40] +resource_local_to_scene = true +script = ExtResource( 18 ) + +[sub_resource type="Resource" id=47] +resource_local_to_scene = true +script = ExtResource( 19 ) + [sub_resource type="NavigationMesh" id=14] vertices = PoolVector3Array( 7.53034, -0.161953, -20.3654, 6.53034, -0.411953, -23.3654, 2.53034, 0.338047, -21.3654, -3.46966, 0.588047, -19.3654, 7.53034, -0.161953, -20.3654, 2.53034, 0.338047, -21.3654, -3.46966, -0.161953, -22.3654, 1.53034, 1.83805, -16.3654, 5.53034, 2.08805, -15.3654, 4.53034, 1.58805, -17.3654, 6.53034, 2.58805, -11.3654, 13.5303, 1.83805, -10.3654, 12.5303, 1.33805, -14.3654, 5.53034, 2.08805, -15.3654, -16.4697, -1.41195, -12.3654, -16.4697, -0.911953, -10.3654, -12.4697, -0.411953, -11.3654, -16.4697, -1.41195, -12.3654, -12.4697, -0.411953, -11.3654, -16.4697, -1.91195, -14.3654, -18.4697, -2.16195, -12.3654, -16.4697, -1.41195, -12.3654, -16.4697, -1.91195, -14.3654, -23.4697, -1.91195, -14.3654, -19.9697, -2.41195, -14.3654, -23.4697, -1.91195, -14.3654, -23.4697, -0.411953, -5.36539, -17.4697, -1.16195, -8.36539, -18.4697, -2.16195, -12.3654, -9.46966, 3.83805, -3.36539, -9.46966, 3.83805, -2.36539, -8.46966, 3.83805, -2.36539, -7.46966, 3.83805, -4.36539, -9.46966, 3.83805, -4.36539, -9.46966, 3.83805, -3.36539, -8.46966, 3.83805, -2.36539, 17.5303, 1.58805, 0.634615, 12.5303, 2.58805, -0.365385, 10.5303, 3.08805, 0.634615, 9.53034, 3.08805, 2.63461, 12.5303, 2.08805, 9.63461, 16.5303, 1.33805, 8.63461, 17.0303, 1.58805, 4.63461, -7.46966, 3.83805, -4.36539, -8.46966, 3.83805, -2.36539, -7.46966, 3.83805, -1.36539, -5.46966, 3.33805, -7.36539, 0.530344, 3.83805, -9.36539, 2.53034, 3.83805, -9.36539, 1.53034, 3.83805, -13.3654, -10.4697, 2.58805, -9.36539, -9.46966, 3.08805, -6.36539, -7.46966, 3.33805, -6.36539, -5.46966, 3.33805, -7.36539, -7.46966, 2.08805, -14.3654, -6.46966, 3.08805, -10.8654, 1.53034, 3.58805, -4.36539, 2.53034, 3.83805, -6.36539, 0.530344, 3.83805, -9.36539, -5.46966, 3.33805, -7.36539, -0.469656, 3.33805, 4.63461, -2.46966, 3.33805, 3.63461, -1.46966, 2.83805, 6.63461, 0.530344, 2.83805, 10.6346, 1.53034, 3.58805, -4.36539, -5.46966, 3.33805, -7.36539, -7.46966, 3.83805, -1.36539, -2.46966, 3.33805, 3.63461, -0.469656, 3.33805, 4.63461, 4.53034, 3.33805, 0.634615, -5.46966, 3.33805, -7.36539, -7.46966, 3.33805, -6.36539, -7.46966, 3.83805, -4.36539, 4.53034, 3.33805, 0.634615, 2.53034, 3.83805, -3.36539, 1.53034, 3.58805, -4.36539, 16.5303, 1.58805, -7.36539, 14.5303, 2.08805, -7.36539, 12.5303, 2.58805, -0.365385, 17.5303, 1.58805, 0.634615, 0.530344, 3.83805, -9.36539, 1.53034, 3.83805, -13.3654, -4.46966, 3.83805, -13.3654, -5.46966, 3.33805, -7.36539, -1.46966, 2.83805, 6.63461, -3.46966, 3.33805, 4.63461, -8.46966, 2.83805, 6.63461, -3.46966, 2.08805, 15.6346, 0.530344, 2.83805, 10.6346, -2.46966, 1.83805, 16.6346, 4.53034, 1.83805, 16.6346, 0.530344, 2.83805, 10.6346, -3.46966, 2.08805, 15.6346, 4.53034, 3.33805, 0.634615, -0.469656, 3.33805, 4.63461, 1.53034, 3.08805, 6.63461, 9.53034, 3.08805, 2.63461, 10.5303, 3.08805, 0.634615, 5.53034, 3.33805, 4.63461, -8.46966, 3.33805, -0.365385, -8.46966, 3.83805, -2.36539, -9.46966, 3.83805, -2.36539, -11.4697, 3.33805, -3.36539, -9.46966, 3.83805, -3.36539, -9.46966, 3.83805, -4.36539, -5.46966, 1.33805, 17.6346, -2.46966, 1.83805, 16.6346, -3.46966, 2.08805, 15.6346, -6.46966, 1.58805, 15.6346, -8.46966, 2.83805, 6.63461, -3.46966, 3.33805, 4.63461, -2.46966, 3.33805, 3.63461, -7.46966, 3.83805, -1.36539, -8.46966, 3.33805, -0.365385, -11.4697, 2.58805, 5.63461, -6.46966, 1.58805, 15.6346, -3.46966, 2.08805, 15.6346, -7.46966, 1.58805, 13.6346, -11.4697, 3.33805, -3.36539, -9.46966, 3.83805, -4.36539, -9.46966, 3.08805, -6.36539, -10.4697, 2.58805, -9.36539, -14.4697, 1.83805, -8.36539, -13.4697, 2.58805, -5.36539, -8.46966, 3.33805, -0.365385, -9.46966, 3.83805, -2.36539, -11.4697, 3.33805, -3.36539, -20.4697, 1.58805, -1.36539, -20.4697, 1.08805, 3.63461, -17.4697, 2.08805, 1.63461, -18.4697, 2.08805, -3.36539, -11.4697, 1.08805, 15.6346, -6.46966, 1.58805, 15.6346, -7.46966, 1.58805, 13.6346, -11.4697, 1.83805, 12.6346, -24.4697, 1.58805, -3.36539, -25.4697, 1.58805, -13.3654, -27.4697, 1.58805, -13.3654, -28.4697, 1.58805, -2.36539, -14.4697, 2.33805, 4.63461, -14.4697, 1.33805, 11.6346, -11.4697, 2.08805, 7.63461, -11.4697, 2.58805, 5.63461, -17.4697, 2.08805, 1.63461, -14.4697, 2.33805, 4.63461, -11.4697, 2.58805, 5.63461, -8.46966, 3.33805, -0.365385, -11.4697, 3.33805, -3.36539, -18.4697, 2.08805, -3.36539, -13.4697, 2.58805, -5.36539, -16.4697, 1.58805, -6.36539, -18.4697, 2.08805, -3.36539, -11.4697, 3.33805, -3.36539, -11.4697, 1.83805, 12.6346, -7.46966, 1.58805, 13.6346, -8.46966, 2.58805, 8.63461, -11.4697, 2.08805, 7.63461, -14.4697, 1.33805, 11.6346, -24.4697, 1.58805, -3.36539, -28.4697, 1.58805, -2.36539, -20.4697, 1.58805, -1.36539, -18.4697, 2.08805, -3.36539, 4.53034, 4.33805, -5.36539, 1.53034, 3.58805, -4.36539, 2.53034, 3.83805, -3.36539, 4.53034, 4.33805, -3.36539, 6.53034, 4.08805, -7.36539, 4.53034, 4.33805, -5.36539, 4.53034, 4.33805, -3.36539, 6.53034, 4.08805, -7.36539, 4.53034, 3.83805, -13.3654, 1.53034, 3.83805, -13.3654, 2.53034, 3.83805, -9.36539, 4.53034, 4.33805, -5.36539, 4.53034, 4.33805, -3.36539, 4.53034, 4.08805, -1.36539, 9.53034, 4.08805, -2.36539, 10.5303, 3.58805, -8.36539, 6.53034, 4.08805, -7.36539, 3.53034, 2.83805, 8.63461, 5.53034, 2.33805, 12.6346, 9.53034, 2.33805, 10.6346, 8.53034, 2.83805, 6.63461, -19.4697, -0.661953, 7.63461, -19.4697, -1.41195, 10.6346, -17.4697, -0.911953, 10.6346, -16.4697, 0.088047, 13.6346, -12.4697, 0.338047, 16.6346, -13.4697, 0.838047, 13.6346 ) polygons = [ PoolIntArray( 2, 1, 0 ), PoolIntArray( 6, 5, 3 ), PoolIntArray( 3, 5, 4 ), PoolIntArray( 7, 9, 8 ), PoolIntArray( 13, 12, 10 ), PoolIntArray( 10, 12, 11 ), PoolIntArray( 16, 15, 14 ), PoolIntArray( 19, 18, 17 ), PoolIntArray( 21, 20, 22 ), PoolIntArray( 22, 20, 24 ), PoolIntArray( 24, 20, 23 ), PoolIntArray( 28, 27, 25 ), PoolIntArray( 25, 27, 26 ), PoolIntArray( 31, 30, 29 ), PoolIntArray( 34, 33, 35 ), PoolIntArray( 35, 33, 32 ), PoolIntArray( 38, 37, 39 ), PoolIntArray( 39, 37, 36 ), PoolIntArray( 39, 36, 42 ), PoolIntArray( 39, 42, 41 ), PoolIntArray( 39, 41, 40 ), PoolIntArray( 44, 43, 45 ), PoolIntArray( 45, 43, 46 ), PoolIntArray( 49, 48, 47 ), PoolIntArray( 52, 51, 53 ), PoolIntArray( 53, 51, 50 ), PoolIntArray( 53, 50, 55 ), PoolIntArray( 55, 50, 54 ), PoolIntArray( 57, 56, 58 ), PoolIntArray( 58, 56, 59 ), PoolIntArray( 61, 60, 62 ), PoolIntArray( 62, 60, 63 ), PoolIntArray( 68, 67, 69 ), PoolIntArray( 69, 67, 64 ), PoolIntArray( 64, 67, 66 ), PoolIntArray( 64, 66, 65 ), PoolIntArray( 71, 70, 72 ), PoolIntArray( 73, 75, 74 ), PoolIntArray( 77, 76, 78 ), PoolIntArray( 78, 76, 79 ), PoolIntArray( 81, 80, 82 ), PoolIntArray( 82, 80, 83 ), PoolIntArray( 84, 88, 85 ), PoolIntArray( 85, 88, 86 ), PoolIntArray( 86, 88, 87 ), PoolIntArray( 92, 91, 89 ), PoolIntArray( 89, 91, 90 ), PoolIntArray( 96, 98, 97 ), PoolIntArray( 97, 98, 93 ), PoolIntArray( 93, 98, 95 ), PoolIntArray( 93, 95, 94 ), PoolIntArray( 101, 100, 99 ), PoolIntArray( 104, 103, 102 ), PoolIntArray( 106, 105, 107 ), PoolIntArray( 107, 105, 108 ), PoolIntArray( 110, 109, 111 ), PoolIntArray( 111, 109, 114 ), PoolIntArray( 111, 114, 113 ), PoolIntArray( 111, 113, 112 ), PoolIntArray( 117, 116, 115 ), PoolIntArray( 119, 118, 120 ), PoolIntArray( 120, 118, 123 ), PoolIntArray( 120, 123, 121 ), PoolIntArray( 121, 123, 122 ), PoolIntArray( 126, 125, 124 ), PoolIntArray( 130, 129, 127 ), PoolIntArray( 127, 129, 128 ), PoolIntArray( 134, 133, 131 ), PoolIntArray( 131, 133, 132 ), PoolIntArray( 136, 135, 137 ), PoolIntArray( 137, 135, 138 ), PoolIntArray( 142, 141, 139 ), PoolIntArray( 139, 141, 140 ), PoolIntArray( 144, 143, 145 ), PoolIntArray( 145, 143, 146 ), PoolIntArray( 146, 143, 147 ), PoolIntArray( 147, 143, 148 ), PoolIntArray( 149, 152, 150 ), PoolIntArray( 150, 152, 151 ), PoolIntArray( 157, 156, 153 ), PoolIntArray( 153, 156, 155 ), PoolIntArray( 153, 155, 154 ), PoolIntArray( 161, 160, 158 ), PoolIntArray( 158, 160, 159 ), PoolIntArray( 164, 163, 165 ), PoolIntArray( 165, 163, 162 ), PoolIntArray( 168, 167, 166 ), PoolIntArray( 171, 170, 172 ), PoolIntArray( 172, 170, 169 ), PoolIntArray( 172, 169, 173 ), PoolIntArray( 175, 174, 176 ), PoolIntArray( 176, 174, 178 ), PoolIntArray( 176, 178, 177 ), PoolIntArray( 180, 179, 181 ), PoolIntArray( 181, 179, 182 ), PoolIntArray( 185, 184, 183 ), PoolIntArray( 188, 187, 186 ) ] @@ -105,6 +193,15 @@ transform = Transform( -0.866025, 0, -0.5, 0, 3.5, 0, 0.5, 0, -0.866025, 6.42983 [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="Runway2" parent="WORLDGEO" instance=ExtResource( 13 )] +transform = Transform( -1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, -13.8197, 32.8116, 41.3509 ) + +[node name="Runway3" parent="WORLDGEO" instance=ExtResource( 13 )] +transform = Transform( 1.94707e-07, 0, -1, 0, 1, 0, 1, 0, 1.94707e-07, 49.6462, 19.1714, 35.7231 ) + +[node name="ball_bucket" parent="WORLDGEO" instance=ExtResource( 20 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.216192, 3.60375, -12.2556 ) + [node name="MACHINES" type="Spatial" parent="."] [node name="Cannon" parent="MACHINES" instance=ExtResource( 2 )] @@ -136,43 +233,145 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -49.9367, 0.0469036, -33.3132 [node name="Cannonball" parent="BALLISTICS" instance=ExtResource( 16 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.1422, 4.06477, -6.08684 ) +[node name="Cannonball2" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.303401, 4.06477, -12.7643 ) + +[node name="Cannonball3" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.303401, 4.06477, -12.2326 ) + +[node name="Cannonball4" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.162657, 4.06477, -12.2326 ) + +[node name="Cannonball5" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.162657, 4.06477, -11.7252 ) + +[node name="Cannonball6" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.369819, 4.06477, -11.7252 ) + +[node name="Cannonball7" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.06477, -11.7252 ) + +[node name="Cannonball8" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.06477, -12.1919 ) + +[node name="Cannonball9" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.06477, -12.7322 ) + +[node name="Cannonball10" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.206795, 4.06477, -12.7322 ) + +[node name="Cannonball11" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.303401, 4.47363, -12.7643 ) + +[node name="Cannonball12" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.303401, 4.47363, -12.2326 ) + +[node name="Cannonball13" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.162657, 4.47363, -12.2326 ) + +[node name="Cannonball14" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.162657, 4.47363, -11.7252 ) + +[node name="Cannonball15" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.369819, 4.47363, -11.7252 ) + +[node name="Cannonball16" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.47363, -11.7252 ) + +[node name="Cannonball17" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.47363, -12.1919 ) + +[node name="Cannonball18" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.47363, -12.7322 ) + +[node name="Cannonball19" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.206795, 4.47363, -12.7322 ) + +[node name="Cannonball20" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.303401, 4.92571, -12.7643 ) + +[node name="Cannonball21" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.303401, 4.92571, -12.2326 ) + +[node name="Cannonball22" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.162657, 4.92571, -12.2326 ) + +[node name="Cannonball23" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.162657, 4.92571, -11.7252 ) + +[node name="Cannonball24" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.369819, 4.92571, -11.7252 ) + +[node name="Cannonball25" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.92571, -11.7252 ) + +[node name="Cannonball26" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.92571, -12.1919 ) + +[node name="Cannonball27" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.792434, 4.92571, -12.7322 ) + +[node name="Cannonball28" parent="BALLISTICS" instance=ExtResource( 16 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.206795, 4.92571, -12.7322 ) + [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, 28.8794, 2.55194, 2.65124 ) physics_material_override = SubResource( 17 ) -weapon = SubResource( 20 ) +weapon_slot1 = SubResource( 20 ) +weapon_slot2 = SubResource( 21 ) +weapon_slot3 = SubResource( 22 ) +weapon_slot4 = SubResource( 41 ) [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 ) +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 49.2067, 27.526, 45.9431 ) physics_material_override = SubResource( 18 ) team = "BLUE" -weapon = SubResource( 21 ) +weapon_slot1 = SubResource( 23 ) +weapon_slot2 = SubResource( 24 ) +weapon_slot3 = SubResource( 25 ) +weapon_slot4 = SubResource( 42 ) [node name="Player3" parent="PLAYERS" instance=ExtResource( 5 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.426252, 5.22026, -3.48068 ) physics_material_override = SubResource( 19 ) -weapon = SubResource( 22 ) +weapon_slot1 = SubResource( 26 ) +weapon_slot2 = SubResource( 27 ) +weapon_slot3 = SubResource( 28 ) +weapon_slot4 = SubResource( 43 ) [node name="Player5" parent="PLAYERS" instance=ExtResource( 5 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.86776, 6.37388, -1.22525 ) physics_material_override = SubResource( 19 ) -weapon = SubResource( 23 ) +weapon_slot1 = SubResource( 29 ) +weapon_slot2 = SubResource( 30 ) +weapon_slot3 = SubResource( 31 ) +weapon_slot4 = SubResource( 44 ) [node name="Player7" parent="PLAYERS" instance=ExtResource( 5 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -1.11742, 6.37388, 0.816121 ) physics_material_override = SubResource( 19 ) -weapon = SubResource( 24 ) +weapon_slot1 = SubResource( 32 ) +weapon_slot2 = SubResource( 33 ) +weapon_slot3 = SubResource( 34 ) +weapon_slot4 = SubResource( 45 ) [node name="Player8" parent="PLAYERS" instance=ExtResource( 5 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.888317, 6.37388, 1.86328 ) physics_material_override = SubResource( 19 ) -weapon = SubResource( 25 ) +weapon_slot1 = SubResource( 35 ) +weapon_slot2 = SubResource( 36 ) +weapon_slot3 = SubResource( 37 ) +weapon_slot4 = SubResource( 46 ) [node name="Player9" parent="PLAYERS" instance=ExtResource( 5 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.819816, 6.37388, 2.89708 ) physics_material_override = SubResource( 19 ) -weapon = SubResource( 26 ) +weapon_slot1 = SubResource( 38 ) +weapon_slot2 = SubResource( 39 ) +weapon_slot3 = SubResource( 40 ) +weapon_slot4 = SubResource( 47 ) [node name="worldnavmesh" type="NavigationMeshInstance" parent="."] navmesh = SubResource( 14 ) @@ -206,7 +405,7 @@ visible = false mesh = SubResource( 16 ) [node name="DEFAULTCAM" type="Camera" parent="."] -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 ) +transform = Transform( -0.507541, -0.344177, 0.789902, -0.0365804, 0.924536, 0.379336, -0.860851, 0.163633, -0.48183, 12.1857, 17.0183, -13.3083 ) current = true far = 8192.0 diff --git a/godot/meshes/laetine.obj b/godot/meshes/laetine.obj deleted file mode 100644 index b55e973..0000000 --- a/godot/meshes/laetine.obj +++ /dev/null @@ -1,346 +0,0 @@ -# Blender v2.92.0 OBJ File: 'laetine.blend' -# www.blender.org -mtllib laetine.mtl -o Cube -v 16.000000 0.982453 -1.912256 -v 16.000000 -0.682236 -1.641230 -v 16.000000 0.982453 1.882782 -v 16.000000 -0.682236 1.610786 -v -16.000000 1.455369 -0.617766 -v -16.000000 0.897865 -0.530011 -v -16.000000 1.455369 0.557376 -v -16.000000 0.897865 0.476983 -v 0.000000 -0.941928 -2.142920 -v 0.000000 0.982453 2.500000 -v 0.000000 -0.941928 2.141643 -v 0.000000 0.982453 -2.500000 -v 8.000000 -0.941928 2.141643 -v 8.000000 0.982453 -2.500000 -v 8.000000 -0.941928 -2.142920 -v 8.000000 0.982453 2.500000 -v -8.000000 -0.728505 -1.831360 -v -8.000000 0.982453 2.138350 -v -8.000000 -0.728505 1.831740 -v -8.000000 0.982453 -2.136415 -v -12.000000 -0.389587 -1.452316 -v -12.000000 1.142182 1.675897 -v -12.000000 -0.389587 1.435458 -v -12.000000 1.142182 -1.694078 -v -3.851343 -0.941928 2.033623 -v -3.851343 0.982453 -2.377693 -v -3.851343 -0.941928 -2.038114 -v -3.851343 0.982453 2.373943 -v 4.000000 -0.941928 -2.142920 -v 4.000000 0.982453 2.500000 -v 4.000000 -0.941928 2.141643 -v 4.000000 0.982453 -2.500000 -v 12.000000 -0.941928 2.009462 -v 12.000000 0.982453 -2.355201 -v 12.000000 -0.941928 -2.019429 -v 12.000000 0.982453 2.346436 -v 12.000000 0.982453 2.078222 -v 8.000000 0.982453 2.213053 -v 16.000000 0.982453 1.627357 -v -16.000000 1.455369 0.353375 -v 0.000000 0.982453 2.194380 -v -12.000000 1.142182 1.347721 -v -8.000000 0.982453 1.851137 -v -3.851343 0.982453 2.072511 -v 4.000000 0.982453 2.234215 -v -8.000000 0.982453 -1.893030 -v -16.000000 1.455369 -0.446854 -v 16.000000 0.982453 -1.675475 -v -12.000000 1.142182 -1.478664 -v 4.000000 0.982453 -2.174777 -v 8.000000 0.982453 -2.176962 -v 0.000000 0.982453 -2.083515 -v -3.851343 0.982453 -1.994098 -v 12.000000 0.982453 -2.031110 -v -13.354506 1.478747 -0.894318 -v -13.287239 1.483561 0.789345 -v 15.634655 0.982453 -1.716910 -v 15.633256 0.982453 1.693027 -v 12.000000 -0.355757 1.945383 -v 8.000000 -0.355757 2.019444 -v 0.000000 -0.355757 2.065702 -v -12.000000 -0.355757 1.268733 -v -8.000000 -0.355757 1.722697 -v -3.851343 -0.355757 1.950985 -v 4.000000 -0.355757 2.038746 -v -8.000000 -0.355757 -1.764913 -v -12.000000 -0.355757 -1.391772 -v 4.000000 -0.355757 -1.982917 -v 8.000000 -0.355757 -1.984911 -v 0.000000 -0.355757 -1.961124 -v -3.851343 -0.355757 -1.876955 -v 12.000000 -0.355757 -1.900816 -v -13.354506 0.806437 -0.838368 -v -13.287239 0.811252 0.746481 -v 15.634655 -0.450049 -1.616035 -v 15.633256 -0.355757 1.593773 -v -3.851343 -1.123510 0.081178 -v 4.000000 -1.123510 0.081178 -v -8.000000 -0.910087 0.081178 -v 16.000000 -0.863819 0.081178 -v -12.000000 -0.571169 0.081178 -v 0.000000 -1.123510 0.081178 -v 8.000000 -1.123510 0.081178 -v -16.000000 0.716283 0.081178 -v 12.000000 -1.123510 0.081178 -vt 0.843750 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.536360 -vt 0.872226 0.536077 -vt 0.843750 0.533173 -vt 0.375000 0.968750 -vt 0.625000 0.968750 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.043399 -vt 0.625000 0.213640 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.065260 -vt 0.343750 0.500000 -vt 0.375000 0.500000 -vt 0.375000 0.625745 -vt 0.343750 0.625777 -vt 0.625000 0.500000 -vt 0.625000 0.537350 -vt 0.625000 0.694368 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.468750 -vt 0.625000 0.468750 -vt 0.375000 0.344911 -vt 0.625000 0.344911 -vt 0.625000 0.375000 -vt 0.375000 0.375000 -vt 0.219911 0.500000 -vt 0.250000 0.500000 -vt 0.250000 0.629194 -vt 0.219911 0.630768 -vt 0.375000 0.843750 -vt 0.625000 0.843750 -vt 0.625000 0.875000 -vt 0.375000 0.875000 -vt 0.718750 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.532123 -vt 0.718750 0.532990 -vt 0.656250 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.536579 -vt 0.656250 0.535812 -vt 0.375000 0.781250 -vt 0.625000 0.781250 -vt 0.625000 0.812500 -vt 0.375000 0.812500 -vt 0.375000 0.406250 -vt 0.625000 0.406250 -vt 0.625000 0.437500 -vt 0.375000 0.437500 -vt 0.281250 0.500000 -vt 0.312500 0.500000 -vt 0.312500 0.626716 -vt 0.281250 0.627955 -vt 0.156250 0.500000 -vt 0.187500 0.500000 -vt 0.187500 0.633207 -vt 0.156250 0.638918 -vt 0.375000 0.281250 -vt 0.625000 0.281250 -vt 0.625000 0.312500 -vt 0.375000 0.312500 -vt 0.375000 0.905089 -vt 0.625000 0.905089 -vt 0.625000 0.937500 -vt 0.375000 0.937500 -vt 0.780089 0.500000 -vt 0.812500 0.500000 -vt 0.812500 0.545259 -vt 0.780089 0.531167 -vt 0.125000 0.500000 -vt 0.125000 0.684740 -vt 0.631189 0.537046 -vt 0.718750 0.698992 -vt 0.750000 0.705949 -vt 0.750000 0.750000 -vt 0.718750 0.750000 -vt 0.656250 0.692220 -vt 0.687500 0.694741 -vt 0.687500 0.750000 -vt 0.656250 0.750000 -vt 0.843750 0.693080 -vt 0.871700 0.705173 -vt 0.875000 0.706601 -vt 0.875000 0.750000 -vt 0.843750 0.750000 -vt 0.638611 0.693432 -vt 0.812500 0.706742 -vt 0.812500 0.750000 -vt 0.780089 0.707511 -vt 0.780089 0.750000 -vt 0.812500 0.706742 -vt 0.843750 0.693080 -vt 0.687500 0.536579 -vt 0.656250 0.535812 -vt 0.872226 0.536077 -vt 0.843750 0.533173 -vt 0.750000 0.532123 -vt 0.718750 0.532990 -vt 0.871700 0.705173 -vt 0.656250 0.692220 -vt 0.687500 0.694741 -vt 0.780089 0.531167 -vt 0.631189 0.537046 -vt 0.638611 0.693432 -vt 0.812500 0.545259 -vt 0.718750 0.698992 -vt 0.750000 0.705949 -vt 0.780089 0.707511 -vt 0.187500 0.750000 -vt 0.156250 0.750000 -vt 0.250000 0.750000 -vt 0.219911 0.750000 -vt 0.125000 0.750000 -vt 0.281250 0.750000 -vt 0.343750 0.750000 -vt 0.312500 0.750000 -vn -0.0163 0.9374 -0.3478 -vn -0.2759 -0.1459 0.9501 -vn -1.0000 0.0000 0.0000 -vn 0.0689 -0.9931 -0.0943 -vn 1.0000 0.0000 0.0000 -vn 0.1060 -0.1658 -0.9805 -vn -0.0290 -0.1780 -0.9836 -vn -0.0011 -0.9965 -0.0833 -vn 0.0000 -0.1831 0.9831 -vn 0.0000 1.0000 0.0000 -vn 0.0351 -0.1777 0.9835 -vn 0.0000 -0.1824 -0.9832 -vn 0.0000 -0.9967 -0.0814 -vn -0.0889 -0.9906 -0.1044 -vn -0.1109 -0.1653 -0.9800 -vn -0.0563 -0.1749 0.9830 -vn -0.2678 -0.1501 -0.9517 -vn -0.3190 -0.9344 -0.1582 -vn -0.1154 -0.1652 0.9795 -vn 0.0399 0.9992 0.0000 -vn -0.0299 -0.1785 0.9835 -vn -0.0534 -0.9945 -0.0896 -vn -0.0576 -0.1743 -0.9830 -vn 0.1110 -0.1662 0.9798 -vn 0.0330 -0.1771 -0.9836 -vn 0.0013 -0.9965 -0.0837 -vn 0.0006 0.9546 0.2980 -vn 0.1199 0.0724 -0.9901 -vn -0.0285 0.1195 0.9924 -vn 0.4145 0.0598 0.9081 -vn 0.0140 0.1166 0.9931 -vn 0.4118 0.0511 -0.9098 -vn -0.0259 0.1210 -0.9923 -vn 0.0224 0.0891 0.9958 -vn -0.0096 1.0000 -0.0017 -vn -1.0000 0.0000 -0.0004 -vn 0.0256 0.0912 0.9955 -vn 0.9992 -0.0004 -0.0411 -vn -0.0050 0.1439 -0.9896 -vn -0.0808 0.0829 0.9933 -vn 0.0306 0.0930 -0.9952 -vn 0.0992 0.0752 0.9922 -vn -0.1005 0.0860 -0.9912 -vn 0.0539 0.0929 -0.9942 -vn 0.0005 0.1420 0.9899 -vn 0.0016 0.1202 -0.9927 -vn 0.0128 0.9998 -0.0134 -vn 0.6612 0.7501 -0.0113 -vn -0.0895 -0.9892 0.1157 -vn -0.0013 -0.9959 0.0901 -vn -0.3215 -0.9272 0.1924 -vn 0.0000 -0.9961 0.0878 -vn 0.0015 -0.9959 0.0907 -vn 0.0696 -0.9921 0.1042 -vn -0.0535 -0.9938 0.0975 -usemtl Material -s off -f 24/1/1 5/2/1 47/3/1 55/4/1 49/5/1 -f 23/6/2 22/7/2 7/8/2 8/9/2 -f 8/10/3 7/11/3 40/12/3 47/13/3 5/14/3 6/15/3 84/16/3 -f 35/17/4 2/18/4 80/19/4 85/20/4 -f 2/18/5 1/21/5 48/22/5 39/23/5 3/24/5 4/25/5 80/19/5 -f 35/26/6 34/27/6 1/21/6 2/18/6 -f 27/28/7 26/29/7 12/30/7 9/31/7 -f 27/32/8 9/33/8 82/34/8 77/35/8 -f 31/36/9 30/37/9 10/38/9 11/39/9 -f 32/40/10 12/41/10 52/42/10 50/43/10 -f 34/44/10 14/45/10 51/46/10 54/47/10 -f 33/48/11 36/49/11 16/50/11 13/51/11 -f 29/52/12 32/53/12 14/54/12 15/55/12 -f 29/56/13 15/57/13 83/58/13 78/59/13 -f 21/60/14 17/61/14 79/62/14 81/63/14 -f 21/64/15 24/65/15 20/66/15 17/67/15 -f 25/68/16 28/69/16 18/70/16 19/71/16 -f 26/72/10 20/73/10 46/74/10 53/75/10 -f 6/15/17 5/14/17 24/65/17 21/64/17 -f 6/76/18 21/60/18 81/63/18 84/77/18 -f 19/71/19 18/70/19 22/7/19 23/6/19 -f 20/73/20 24/1/20 49/5/20 46/74/20 -f 12/41/10 26/72/10 53/75/10 52/42/10 -f 11/39/21 10/38/21 28/69/21 25/68/21 -f 17/61/22 27/32/22 77/35/22 79/62/22 -f 17/67/23 20/66/23 26/29/23 27/28/23 -f 9/33/13 29/56/13 78/59/13 82/34/13 -f 9/31/12 12/30/12 32/53/12 29/52/12 -f 14/45/10 32/40/10 50/43/10 51/46/10 -f 13/51/9 16/50/9 30/37/9 31/36/9 -f 4/25/24 3/24/24 36/49/24 33/48/24 -f 1/21/10 34/44/10 54/47/10 57/78/10 48/22/10 -f 15/55/25 14/54/25 34/27/25 35/26/25 -f 15/57/26 35/17/26 85/20/26 83/58/26 -f 45/79/10 41/80/10 10/81/10 30/82/10 -f 37/83/10 38/84/10 16/85/10 36/86/10 -f 42/87/27 56/88/27 40/89/27 7/90/27 22/91/27 -f 39/23/10 58/92/10 37/83/10 36/86/10 3/24/10 -f 43/93/20 42/87/20 22/91/20 18/94/20 -f 38/84/10 45/79/10 30/82/10 16/85/10 -f 41/80/10 44/95/10 28/96/10 10/81/10 -f 44/95/10 43/93/10 18/94/10 28/96/10 -f 42/87/28 43/93/28 63/97/28 62/98/28 -f 54/47/29 51/46/29 69/99/29 72/100/29 -f 49/5/30 55/4/30 73/101/30 67/102/30 -f 48/22/10 57/78/10 58/92/10 39/23/10 -f 50/43/31 52/42/31 70/103/31 68/104/31 -f 56/88/32 42/87/32 62/98/32 74/105/32 -f 38/84/33 37/83/33 59/106/33 60/107/33 -f 52/42/34 53/75/34 71/108/34 70/103/34 -f 56/88/35 55/4/35 47/3/35 40/89/35 -f 58/92/36 57/78/36 75/109/36 76/110/36 -f 53/75/37 46/74/37 66/111/37 71/108/37 -f 55/4/38 56/88/38 74/105/38 73/101/38 -f 45/79/39 38/84/39 60/107/39 65/112/39 -f 57/78/40 54/47/40 72/100/40 75/109/40 -f 44/95/41 41/80/41 61/113/41 64/114/41 -f 46/74/42 49/5/42 67/102/42 66/111/42 -f 37/83/43 58/92/43 76/110/43 59/106/43 -f 43/93/44 44/95/44 64/114/44 63/97/44 -f 51/46/45 50/43/45 68/104/45 69/99/45 -f 41/80/46 45/79/46 65/112/46 61/113/46 -f 75/109/47 72/100/47 59/106/47 76/110/47 -f 60/107/10 59/106/10 72/100/10 69/99/10 -f 65/112/10 60/107/10 69/99/10 68/104/10 -f 61/113/10 65/112/10 68/104/10 70/103/10 -f 64/114/10 61/113/10 70/103/10 71/108/10 -f 63/97/10 64/114/10 71/108/10 66/111/10 -f 62/98/10 63/97/10 66/111/10 67/102/10 -f 74/105/48 62/98/48 67/102/48 73/101/48 -f 81/63/49 79/62/49 19/115/49 23/116/49 -f 77/35/50 82/34/50 11/117/50 25/118/50 -f 84/77/51 81/63/51 23/116/51 8/119/51 -f 82/34/52 78/59/52 31/120/52 11/117/52 -f 83/58/53 85/20/53 33/121/53 13/122/53 -f 78/59/52 83/58/52 13/122/52 31/120/52 -f 85/20/54 80/19/54 4/25/54 33/121/54 -f 79/62/55 77/35/55 25/118/55 19/115/55 diff --git a/godot/meshes/laetine.obj.import b/godot/meshes/laetine.obj.import deleted file mode 100644 index 9445c41..0000000 --- a/godot/meshes/laetine.obj.import +++ /dev/null @@ -1,20 +0,0 @@ -[remap] - -importer="wavefront_obj" -type="Mesh" -path="res://.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.mesh" - -[deps] - -files=[ "res://.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.mesh" ] - -source_file="res://meshes/laetine.obj" -dest_files=[ "res://.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.mesh", "res://.import/laetine.obj-e2f2547cb01c5b6ffec4bdf5b2a3aec9.mesh" ] - -[params] - -generate_tangents=true -scale_mesh=Vector3( 1, 1, 1 ) -offset_mesh=Vector3( 0, 0, 0 ) -octahedral_compression=true -optimize_mesh_flags=4286 diff --git a/godot/meshes/laetine_mask.obj b/godot/meshes/laetine_mask.obj deleted file mode 100644 index 44be1a1..0000000 --- a/godot/meshes/laetine_mask.obj +++ /dev/null @@ -1,97 +0,0 @@ -# Blender v2.92.0 OBJ File: 'laetine.blend' -# www.blender.org -mtllib laetine_mask.mtl -o Cube.001 -v -13.287994 0.205399 0.979553 -v -13.287994 1.000000 0.979553 -v -13.287994 0.205399 -0.979553 -v -13.287994 1.000000 -0.979553 -v 15.695301 -0.570796 1.568131 -v 15.736877 1.000000 1.803618 -v 15.695301 -0.570796 -1.568131 -v 15.736877 1.000000 -1.803618 -v 0.000000 -0.880590 -2.129694 -v 0.000000 1.000000 -2.319838 -v 0.000000 -0.880590 2.129694 -v 0.000000 1.000000 2.270563 -v -8.087383 -0.725956 -1.089942 -v -8.655064 1.000000 1.984209 -v -8.655064 1.000000 -1.984209 -v -8.087383 -0.725956 1.089942 -v 10.447272 1.000000 -2.279417 -v 8.087383 -0.869857 2.032708 -v 8.087383 -0.869857 -2.032708 -v 10.447272 1.000000 2.253140 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.375000 0.437500 -vt 0.625000 0.437500 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.937500 -vt 0.625000 0.937500 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.312500 0.500000 -vt 0.312500 0.750000 -vt 0.812500 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.812500 0.750000 -vt 0.687500 0.500000 -vt 0.750000 0.500000 -vt 0.750000 0.750000 -vt 0.687500 0.750000 -vt 0.187500 0.500000 -vt 0.250000 0.500000 -vt 0.250000 0.750000 -vt 0.187500 0.750000 -vt 0.375000 0.812500 -vt 0.625000 0.812500 -vt 0.625000 0.875000 -vt 0.375000 0.875000 -vt 0.375000 0.312500 -vt 0.625000 0.312500 -vt 0.625000 0.375000 -vt 0.375000 0.375000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vn -1.0000 0.0000 0.0000 -vn 0.0758 -0.1901 -0.9788 -vn 0.9996 -0.0265 0.0000 -vn -0.1386 -0.3587 0.9231 -vn 0.0393 -0.9992 0.0000 -vn 0.0000 1.0000 0.0000 -vn -0.0191 -0.9998 0.0000 -vn 0.0062 -0.0998 0.9950 -vn -0.0809 -0.2987 -0.9509 -vn -0.1386 -0.3587 -0.9231 -vn -0.1763 -0.9843 0.0000 -vn -0.0783 -0.2864 0.9549 -vn 0.0737 -0.1814 0.9806 -vn 0.0013 -1.0000 0.0000 -vn 0.0074 -0.1203 -0.9927 -usemtl None -s off -f 1/1/1 2/2/1 4/3/1 3/4/1 -f 19/5/2 17/6/2 8/7/2 7/8/2 -f 7/8/3 8/7/3 6/9/3 5/10/3 -f 16/11/4 14/12/4 2/13/4 1/14/4 -f 19/15/5 7/8/5 5/10/5 18/16/5 -f 15/17/6 4/18/6 2/19/6 14/20/6 -f 17/21/6 10/22/6 12/23/6 20/24/6 -f 13/25/7 9/26/7 11/27/7 16/28/7 -f 18/29/8 20/30/8 12/31/8 11/32/8 -f 13/33/9 15/34/9 10/35/9 9/36/9 -f 3/4/10 4/3/10 15/34/10 13/33/10 -f 3/37/11 13/25/11 16/28/11 1/38/11 -f 10/22/6 15/17/6 14/20/6 12/23/6 -f 11/32/12 12/31/12 14/12/12 16/11/12 -f 5/10/13 6/9/13 20/30/13 18/29/13 -f 8/7/6 17/21/6 20/24/6 6/9/6 -f 9/26/14 19/15/14 18/16/14 11/27/14 -f 9/36/15 10/35/15 17/6/15 19/5/15 diff --git a/godot/project.godot b/godot/project.godot index c9aa7ca..a6d3c33 100644 --- a/godot/project.godot +++ b/godot/project.godot @@ -214,6 +214,7 @@ reload={ [physics] +3d/smooth_trimesh_collision=true 3d/active_soft_world=false [rendering] diff --git a/godot/scenes/ballistics/Cannonball.tscn b/godot/scenes/ballistics/Cannonball.tscn index 4e5d06a..b9d5a0d 100644 --- a/godot/scenes/ballistics/Cannonball.tscn +++ b/godot/scenes/ballistics/Cannonball.tscn @@ -34,7 +34,6 @@ mass = 10.0 continuous_cd = true contacts_reported = 2 contact_monitor = true -can_sleep = false script = ExtResource( 1 ) [node name="CollisionShape" type="CollisionShape" parent="."] @@ -44,12 +43,12 @@ shape = SubResource( 1 ) mesh = SubResource( 2 ) material/0 = SubResource( 3 ) -[node name="PickupArea" type="Area" parent="."] +[node name="CarryArea" type="Area" parent="."] collision_layer = 2 collision_mask = 2 monitoring = false -[node name="CollisionShape" type="CollisionShape" parent="PickupArea"] +[node name="CollisionShape" type="CollisionShape" parent="CarryArea"] shape = SubResource( 6 ) [connection signal="body_entered" from="." to="." method="_on_collision"] diff --git a/godot/scenes/characters/PlayerRigid.tscn b/godot/scenes/characters/PlayerRigid.tscn index 6e9fe48..87a463d 100644 --- a/godot/scenes/characters/PlayerRigid.tscn +++ b/godot/scenes/characters/PlayerRigid.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=2] +[gd_scene load_steps=14 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] @@ -7,6 +7,7 @@ [ext_resource path="res://scenes/weapons/hands.res" type="Resource" id=5] [ext_resource path="res://scenes/weapons/pistol.tres" type="Resource" id=6] [ext_resource path="res://scenes/weapons/rockets.tres" type="Resource" id=7] +[ext_resource path="res://scenes/weapons/grapplinghook.tres" type="Resource" id=8] [sub_resource type="PhysicsMaterial" id=8] resource_local_to_scene = true @@ -46,6 +47,7 @@ script = ExtResource( 1 ) weapon_slot1 = ExtResource( 5 ) weapon_slot2 = ExtResource( 6 ) weapon_slot3 = ExtResource( 7 ) +weapon_slot4 = ExtResource( 8 ) [node name="Collision" type="CollisionShape" parent="."] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0 ) diff --git a/godot/scenes/characters/viewmodel_arms.tscn b/godot/scenes/characters/viewmodel_arms.tscn index 1808785..b4d3257 100644 --- a/godot/scenes/characters/viewmodel_arms.tscn +++ b/godot/scenes/characters/viewmodel_arms.tscn @@ -49,7 +49,7 @@ bones/3/name = "Wrist.R" bones/3/parent = 2 bones/3/rest = Transform( 0.942879, -0.20747, 0.260645, 0.237384, 0.967355, -0.0887301, -0.233727, 0.145535, 0.961348, 2.68221e-07, 1.29325, 0 ) bones/3/enabled = true -bones/3/bound_children = [ NodePath("GunBone") ] +bones/3/bound_children = [ ] bones/4/name = "Thumb.R" bones/4/parent = 3 bones/4/rest = Transform( 0.771494, -0.608265, -0.186579, 0.518122, 0.770842, -0.370612, 0.369253, 0.189254, 0.909854, -0.138479, 0.349082, 0.150327 ) @@ -176,5 +176,5 @@ mesh = ExtResource( 3 ) skin = ExtResource( 4 ) [node name="GunBone" type="BoneAttachment" parent="Skeleton"] -transform = Transform( -0.978, -0.15941, 0.134542, 0.1673, -0.214165, 0.962363, -0.124596, 0.963702, 0.236124, -1.28918, -0.187637, 3.05885 ) +transform = Transform( -0.988177, 0.144629, -0.0508501, -0.0291988, 0.148051, 0.988548, 0.150501, 0.978347, -0.142077, -1.28918, -0.187637, 3.05885 ) bone_name = "Wrist.R" diff --git a/godot/scenes/environment/RopeSegment.tscn b/godot/scenes/environment/RopeSegment.tscn new file mode 100644 index 0000000..ae6d19b --- /dev/null +++ b/godot/scenes/environment/RopeSegment.tscn @@ -0,0 +1,18 @@ +[gd_scene load_steps=3 format=2] + +[sub_resource type="BoxShape" id=1] +extents = Vector3( 0.1, 0.1, 1 ) + +[sub_resource type="CubeMesh" id=2] +size = Vector3( 0.5, 0.5, 0.5 ) + +[node name="RopeSegment" type="RigidBody"] +collision_layer = 32768 +collision_mask = 32768 +mass = 15.0 + +[node name="CollisionShape" type="CollisionShape" parent="."] +shape = SubResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +mesh = SubResource( 2 ) diff --git a/godot/scenes/environment/SwingRope.tscn b/godot/scenes/environment/SwingRope.tscn new file mode 100644 index 0000000..74ec78b --- /dev/null +++ b/godot/scenes/environment/SwingRope.tscn @@ -0,0 +1,3 @@ +[gd_scene format=2] + +[node name="SwingRope" type="Spatial"] diff --git a/godot/scenes/vehicles/Gunboat.tscn b/godot/scenes/vehicles/Gunboat.tscn deleted file mode 100644 index 6b447d6..0000000 --- a/godot/scenes/vehicles/Gunboat.tscn +++ /dev/null @@ -1,282 +0,0 @@ -[gd_scene load_steps=30 format=2] - -[ext_resource path="res://scripts/vehicles/Gunboat.gd" type="Script" id=1] -[ext_resource path="res://scenes/machines/Cannon.tscn" type="PackedScene" id=2] -[ext_resource path="res://textures/planks.jpg" type="Texture" id=3] -[ext_resource path="res://meshes/laetine_mask.obj" type="ArrayMesh" id=4] -[ext_resource path="res://scenes/environment/Ladder.tscn" type="PackedScene" id=5] - -[sub_resource type="PhysicsMaterial" id=28] -rough = true - -[sub_resource type="BoxShape" id=5] -extents = Vector3( 0.2, 0.2, 0.2 ) - -[sub_resource type="CubeMesh" id=6] -size = Vector3( 0.4, 0.4, 0.4 ) - -[sub_resource type="BoxShape" id=7] -extents = Vector3( 0.1, 0.1, 0.1 ) - -[sub_resource type="CubeMesh" id=9] -size = Vector3( 0.15, 24, 0.15 ) - -[sub_resource type="OpenSimplexNoise" id=10] - -[sub_resource type="NoiseTexture" id=11] -noise = SubResource( 10 ) - -[sub_resource type="SpatialMaterial" id=12] -albedo_color = Color( 0.266667, 0.215686, 0.215686, 1 ) -albedo_texture = SubResource( 11 ) - -[sub_resource type="CubeMesh" id=13] -size = Vector3( 0.05, 15, 13 ) - -[sub_resource type="CubeMesh" id=14] -size = Vector3( 2, 2.5, 0.15 ) - -[sub_resource type="SpatialMaterial" id=15] -albedo_texture = ExtResource( 3 ) -uv1_scale = Vector3( 0.1, 0.1, 0.1 ) -uv1_offset = Vector3( 1, 0, 0 ) -uv1_triplanar = true - -[sub_resource type="ArrayMesh" id=16] -surfaces/0 = { -"aabb": AABB( -16, -1.12351, -2.5, 32, 2.60707, 5 ), -"array_data": PoolByteArray( 0, 0, 128, 193, 136, 73, 186, 63, 234, 37, 30, 191, 221, 125, 162, 67, 0, 59, 0, 56, 0, 0, 64, 193, 5, 51, 146, 63, 140, 215, 216, 191, 221, 125, 172, 68, 192, 58, 0, 56, 0, 0, 128, 193, 136, 73, 186, 63, 12, 202, 228, 190, 221, 125, 161, 67, 0, 59, 107, 55, 14, 172, 85, 193, 149, 71, 189, 63, 6, 242, 100, 191, 221, 125, 151, 65, 250, 58, 108, 55, 0, 0, 64, 193, 5, 51, 146, 63, 221, 68, 189, 191, 221, 125, 177, 69, 192, 58, 120, 55, 0, 0, 64, 193, 5, 51, 146, 63, 203, 131, 214, 63, 231, 243, 0, 118, 0, 57, 0, 40, 0, 0, 64, 193, 242, 119, 199, 190, 22, 189, 183, 63, 231, 243, 0, 118, 0, 54, 0, 40, 0, 0, 128, 193, 136, 73, 186, 63, 50, 176, 14, 63, 231, 243, 0, 118, 0, 57, 0, 0, 0, 0, 128, 193, 123, 218, 101, 63, 30, 55, 244, 62, 231, 243, 0, 118, 0, 54, 0, 0, 0, 0, 128, 193, 136, 73, 186, 63, 50, 176, 14, 63, 129, 0, 0, 118, 0, 57, 0, 60, 0, 0, 128, 193, 123, 218, 101, 63, 30, 55, 244, 62, 129, 0, 0, 123, 0, 54, 0, 60, 0, 0, 128, 193, 136, 73, 186, 63, 145, 237, 180, 62, 129, 0, 0, 118, 0, 57, 167, 59, 0, 0, 128, 193, 136, 73, 186, 63, 12, 202, 228, 190, 129, 0, 0, 118, 0, 57, 74, 58, 0, 0, 128, 193, 136, 73, 186, 63, 234, 37, 30, 191, 129, 0, 6, 127, 0, 57, 0, 58, 0, 0, 128, 193, 123, 218, 101, 63, 205, 174, 7, 191, 129, 0, 17, 127, 0, 54, 0, 58, 0, 0, 128, 193, 83, 94, 55, 63, 167, 64, 166, 61, 129, 0, 127, 63, 0, 54, 122, 59, 0, 0, 128, 65, 5, 167, 46, 191, 211, 19, 210, 191, 17, 137, 110, 66, 0, 54, 0, 56, 0, 0, 64, 65, 50, 34, 113, 191, 83, 62, 1, 192, 17, 137, 116, 67, 128, 53, 0, 56, 0, 0, 128, 65, 62, 35, 93, 191, 167, 64, 166, 61, 17, 137, 112, 67, 0, 54, 252, 53, 0, 0, 64, 65, 45, 207, 143, 191, 167, 64, 166, 61, 17, 137, 118, 67, 128, 53, 252, 53, 0, 0, 128, 65, 10, 130, 123, 63, 206, 196, 244, 191, 127, 0, 17, 127, 0, 57, 0, 56, 0, 0, 128, 65, 5, 167, 46, 191, 211, 19, 210, 191, 127, 0, 26, 127, 0, 54, 0, 56, 0, 0, 128, 65, 10, 130, 123, 63, 247, 117, 214, 191, 127, 0, 30, 127, 0, 57, 103, 55, 0, 0, 128, 65, 10, 130, 123, 63, 60, 77, 208, 63, 127, 0, 0, 95, 0, 57, 227, 52, 0, 0, 128, 65, 10, 130, 123, 63, 0, 255, 240, 63, 127, 0, 0, 107, 0, 57, 0, 52, 0, 0, 128, 65, 5, 167, 46, 191, 60, 46, 206, 63, 127, 0, 0, 118, 0, 54, 0, 52, 0, 0, 128, 65, 62, 35, 93, 191, 167, 64, 166, 61, 127, 0, 127, 63, 0, 54, 252, 53, 0, 0, 64, 65, 10, 130, 123, 63, 157, 187, 22, 192, 110, 140, 238, 126, 0, 57, 64, 56, 0, 0, 64, 65, 50, 34, 113, 191, 83, 62, 1, 192, 110, 140, 238, 126, 0, 54, 64, 56, 0, 0, 128, 65, 10, 130, 123, 63, 206, 196, 244, 191, 110, 140, 18, 126, 0, 57, 0, 56, 0, 0, 128, 65, 5, 167, 46, 191, 211, 19, 210, 191, 110, 140, 18, 126, 0, 54, 0, 56, 103, 124, 118, 192, 10, 130, 123, 63, 31, 44, 24, 192, 148, 133, 237, 126, 0, 57, 61, 57, 103, 124, 118, 192, 50, 34, 113, 191, 118, 112, 2, 192, 148, 133, 237, 126, 0, 54, 61, 57, 0, 0, 0, 0, 10, 130, 123, 63, 0, 0, 32, 192, 148, 133, 19, 126, 0, 57, 0, 57, 0, 0, 0, 0, 50, 34, 113, 191, 154, 37, 9, 192, 148, 133, 19, 126, 0, 54, 0, 57, 0, 0, 0, 0, 50, 34, 113, 191, 154, 37, 9, 192, 247, 130, 126, 65, 0, 52, 0, 56, 103, 124, 118, 192, 50, 34, 113, 191, 118, 112, 2, 192, 247, 130, 126, 63, 9, 51, 0, 56, 0, 0, 0, 0, 45, 207, 143, 191, 167, 64, 166, 61, 247, 130, 126, 64, 0, 52, 238, 53, 103, 124, 118, 192, 45, 207, 143, 191, 167, 64, 166, 61, 247, 130, 125, 63, 9, 51, 232, 53, 0, 0, 128, 64, 10, 130, 123, 63, 0, 0, 32, 64, 0, 237, 0, 117, 0, 57, 0, 49, 0, 0, 128, 64, 50, 34, 113, 191, 174, 16, 9, 64, 0, 237, 0, 117, 0, 54, 0, 49, 0, 0, 0, 0, 10, 130, 123, 63, 0, 0, 32, 64, 0, 237, 0, 117, 0, 57, 0, 48, 0, 0, 0, 0, 50, 34, 113, 191, 174, 16, 9, 64, 0, 237, 0, 117, 0, 54, 0, 48, 0, 0, 0, 0, 10, 130, 123, 63, 0, 0, 32, 192, 0, 127, 131, 63, 0, 58, 0, 56, 0, 0, 128, 64, 10, 130, 123, 63, 0, 0, 32, 192, 0, 127, 131, 63, 192, 57, 0, 56, 0, 0, 0, 0, 10, 130, 123, 63, 79, 88, 5, 192, 0, 127, 131, 63, 0, 58, 124, 55, 0, 0, 128, 64, 10, 130, 123, 63, 140, 47, 11, 192, 0, 127, 131, 63, 192, 57, 120, 55, 0, 0, 0, 65, 10, 130, 123, 63, 0, 0, 32, 192, 0, 127, 129, 64, 128, 57, 0, 56, 0, 0, 64, 65, 10, 130, 123, 63, 157, 187, 22, 192, 0, 127, 129, 67, 64, 57, 0, 56, 0, 0, 0, 65, 10, 130, 123, 63, 88, 83, 11, 192, 0, 127, 129, 64, 128, 57, 106, 55, 0, 0, 64, 65, 10, 130, 123, 63, 181, 253, 1, 192, 0, 127, 129, 67, 64, 57, 109, 55, 0, 0, 64, 65, 10, 130, 123, 63, 2, 44, 22, 64, 3, 238, 0, 117, 0, 57, 0, 51, 0, 0, 64, 65, 50, 34, 113, 191, 7, 155, 0, 64, 3, 238, 0, 117, 0, 54, 0, 51, 0, 0, 0, 65, 10, 130, 123, 63, 0, 0, 32, 64, 3, 238, 0, 117, 0, 57, 0, 50, 0, 0, 0, 65, 50, 34, 113, 191, 174, 16, 9, 64, 3, 238, 0, 117, 0, 54, 0, 50, 0, 0, 128, 64, 10, 130, 123, 63, 0, 0, 32, 192, 107, 129, 19, 127, 0, 57, 192, 56, 0, 0, 128, 64, 50, 34, 113, 191, 154, 37, 9, 192, 107, 129, 19, 127, 0, 54, 192, 56, 0, 0, 0, 65, 10, 130, 123, 63, 0, 0, 32, 192, 107, 129, 19, 127, 0, 57, 128, 56, 0, 0, 0, 65, 50, 34, 113, 191, 154, 37, 9, 192, 107, 129, 19, 127, 0, 54, 128, 56, 0, 0, 0, 65, 50, 34, 113, 191, 154, 37, 9, 192, 9, 129, 127, 63, 0, 53, 0, 56, 0, 0, 128, 64, 50, 34, 113, 191, 154, 37, 9, 192, 9, 129, 126, 63, 128, 52, 0, 56, 0, 0, 0, 65, 45, 207, 143, 191, 167, 64, 166, 61, 9, 129, 126, 63, 0, 53, 248, 53, 0, 0, 128, 64, 45, 207, 143, 191, 167, 64, 166, 61, 9, 129, 126, 63, 128, 52, 243, 53, 0, 0, 0, 193, 78, 127, 58, 191, 1, 106, 234, 191, 236, 139, 118, 54, 0, 50, 0, 56, 0, 0, 64, 193, 242, 119, 199, 190, 126, 229, 185, 191, 236, 139, 116, 57, 0, 49, 0, 56, 0, 0, 0, 193, 118, 251, 104, 191, 167, 64, 166, 61, 236, 139, 117, 55, 0, 50, 222, 53, 0, 0, 64, 193, 34, 56, 18, 191, 167, 64, 166, 61, 236, 139, 114, 58, 0, 49, 198, 53, 0, 0, 64, 193, 5, 51, 146, 63, 140, 215, 216, 191, 146, 141, 238, 126, 0, 57, 192, 57, 0, 0, 64, 193, 242, 119, 199, 190, 126, 229, 185, 191, 146, 141, 238, 126, 0, 54, 192, 57, 0, 0, 0, 193, 10, 130, 123, 63, 6, 187, 8, 192, 146, 141, 18, 126, 0, 57, 128, 57, 0, 0, 0, 193, 78, 127, 58, 191, 1, 106, 234, 191, 146, 141, 18, 126, 0, 54, 128, 57, 103, 124, 118, 192, 10, 130, 123, 63, 175, 238, 23, 64, 251, 238, 0, 117, 0, 57, 19, 46, 103, 124, 118, 192, 50, 34, 113, 191, 225, 38, 2, 64, 251, 238, 0, 117, 0, 54, 19, 46, 0, 0, 0, 193, 10, 130, 123, 63, 186, 218, 8, 64, 251, 238, 0, 117, 0, 57, 0, 44, 0, 0, 0, 193, 78, 127, 58, 191, 117, 118, 234, 63, 251, 238, 0, 117, 0, 54, 0, 44, 0, 0, 0, 193, 10, 130, 123, 63, 6, 187, 8, 192, 0, 127, 136, 63, 128, 58, 0, 56, 103, 124, 118, 192, 10, 130, 123, 63, 31, 44, 24, 192, 0, 127, 131, 63, 61, 58, 0, 56, 0, 0, 0, 193, 10, 130, 123, 63, 207, 78, 242, 191, 0, 127, 136, 63, 128, 58, 70, 55, 103, 124, 118, 192, 10, 130, 123, 63, 154, 62, 255, 191, 0, 127, 130, 63, 61, 58, 128, 55, 0, 0, 128, 193, 136, 73, 186, 63, 234, 37, 30, 191, 143, 154, 239, 126, 0, 57, 0, 58, 0, 0, 128, 193, 123, 218, 101, 63, 205, 174, 7, 191, 143, 154, 239, 126, 0, 54, 0, 58, 0, 0, 64, 193, 5, 51, 146, 63, 140, 215, 216, 191, 143, 154, 17, 126, 0, 57, 192, 57, 0, 0, 64, 193, 242, 119, 199, 190, 126, 229, 185, 191, 143, 154, 17, 126, 0, 54, 192, 57, 0, 0, 64, 193, 242, 119, 199, 190, 126, 229, 185, 191, 214, 158, 101, 41, 0, 49, 0, 56, 0, 0, 128, 193, 123, 218, 101, 63, 205, 174, 7, 191, 214, 158, 95, 46, 0, 48, 0, 56, 0, 0, 64, 193, 34, 56, 18, 191, 167, 64, 166, 61, 214, 158, 101, 42, 0, 49, 198, 53, 0, 0, 128, 193, 83, 94, 55, 63, 167, 64, 166, 61, 214, 158, 91, 47, 0, 48, 11, 53, 0, 0, 0, 193, 10, 130, 123, 63, 186, 218, 8, 64, 245, 240, 0, 117, 0, 57, 0, 44, 0, 0, 0, 193, 78, 127, 58, 191, 117, 118, 234, 63, 245, 240, 0, 117, 0, 54, 0, 44, 0, 0, 64, 193, 5, 51, 146, 63, 203, 131, 214, 63, 245, 240, 0, 117, 0, 57, 0, 40, 0, 0, 64, 193, 242, 119, 199, 190, 22, 189, 183, 63, 245, 240, 0, 117, 0, 54, 0, 40, 0, 0, 64, 193, 5, 51, 146, 63, 140, 215, 216, 191, 4, 122, 146, 65, 192, 58, 0, 56, 0, 0, 0, 193, 10, 130, 123, 63, 6, 187, 8, 192, 4, 122, 147, 65, 128, 58, 0, 56, 0, 0, 64, 193, 5, 51, 146, 63, 221, 68, 189, 191, 4, 122, 146, 65, 192, 58, 120, 55, 0, 0, 0, 193, 10, 130, 123, 63, 207, 78, 242, 191, 4, 122, 147, 65, 128, 58, 70, 55, 0, 0, 0, 0, 10, 130, 123, 63, 0, 0, 32, 64, 253, 237, 0, 117, 0, 57, 0, 48, 0, 0, 0, 0, 50, 34, 113, 191, 174, 16, 9, 64, 253, 237, 0, 117, 0, 54, 0, 48, 103, 124, 118, 192, 10, 130, 123, 63, 175, 238, 23, 64, 253, 237, 0, 117, 0, 57, 19, 46, 103, 124, 118, 192, 50, 34, 113, 191, 225, 38, 2, 64, 253, 237, 0, 117, 0, 54, 19, 46, 103, 124, 118, 192, 50, 34, 113, 191, 118, 112, 2, 192, 241, 135, 121, 57, 9, 51, 0, 56, 0, 0, 0, 193, 78, 127, 58, 191, 1, 106, 234, 191, 241, 135, 120, 59, 0, 50, 0, 56, 103, 124, 118, 192, 45, 207, 143, 191, 167, 64, 166, 61, 241, 135, 121, 58, 9, 51, 232, 53, 0, 0, 0, 193, 118, 251, 104, 191, 167, 64, 166, 61, 241, 135, 119, 60, 0, 50, 222, 53, 0, 0, 0, 193, 10, 130, 123, 63, 6, 187, 8, 192, 148, 136, 19, 126, 0, 57, 128, 57, 0, 0, 0, 193, 78, 127, 58, 191, 1, 106, 234, 191, 148, 136, 19, 126, 0, 54, 128, 57, 103, 124, 118, 192, 10, 130, 123, 63, 31, 44, 24, 192, 148, 136, 237, 126, 0, 57, 61, 57, 103, 124, 118, 192, 50, 34, 113, 191, 118, 112, 2, 192, 148, 136, 237, 126, 0, 54, 61, 57, 0, 0, 0, 0, 50, 34, 113, 191, 154, 37, 9, 192, 9, 129, 126, 63, 0, 52, 0, 56, 0, 0, 0, 0, 45, 207, 143, 191, 167, 64, 166, 61, 9, 129, 126, 63, 0, 52, 238, 53, 0, 0, 0, 0, 10, 130, 123, 63, 0, 0, 32, 192, 107, 129, 19, 127, 0, 57, 0, 57, 0, 0, 0, 0, 50, 34, 113, 191, 154, 37, 9, 192, 107, 129, 19, 127, 0, 54, 0, 57, 0, 0, 0, 65, 10, 130, 123, 63, 0, 0, 32, 64, 0, 237, 0, 117, 0, 57, 0, 50, 0, 0, 0, 65, 50, 34, 113, 191, 174, 16, 9, 64, 0, 237, 0, 117, 0, 54, 0, 50, 0, 0, 128, 65, 10, 130, 123, 63, 0, 255, 240, 63, 11, 240, 0, 117, 0, 57, 0, 52, 0, 0, 128, 65, 5, 167, 46, 191, 60, 46, 206, 63, 11, 240, 0, 117, 0, 54, 0, 52, 0, 0, 64, 65, 10, 130, 123, 63, 2, 44, 22, 64, 11, 240, 0, 117, 0, 57, 0, 51, 0, 0, 64, 65, 50, 34, 113, 191, 7, 155, 0, 64, 11, 240, 0, 117, 0, 54, 0, 51, 0, 0, 128, 65, 10, 130, 123, 63, 206, 196, 244, 191, 0, 127, 129, 69, 0, 57, 0, 56, 140, 39, 122, 65, 10, 130, 123, 63, 181, 195, 219, 191, 0, 127, 129, 68, 12, 57, 104, 55, 0, 0, 128, 65, 10, 130, 123, 63, 247, 117, 214, 191, 0, 127, 129, 68, 0, 57, 103, 55, 0, 0, 0, 65, 10, 130, 123, 63, 0, 0, 32, 192, 108, 133, 237, 126, 0, 57, 128, 56, 0, 0, 0, 65, 50, 34, 113, 191, 154, 37, 9, 192, 108, 133, 237, 126, 0, 54, 128, 56, 0, 0, 64, 65, 10, 130, 123, 63, 157, 187, 22, 192, 108, 133, 19, 126, 0, 57, 64, 56, 0, 0, 64, 65, 50, 34, 113, 191, 83, 62, 1, 192, 108, 133, 19, 126, 0, 54, 64, 56, 0, 0, 64, 65, 50, 34, 113, 191, 83, 62, 1, 192, 9, 130, 123, 63, 128, 53, 0, 56, 0, 0, 0, 65, 50, 34, 113, 191, 154, 37, 9, 192, 9, 130, 125, 63, 0, 53, 0, 56, 0, 0, 64, 65, 45, 207, 143, 191, 167, 64, 166, 61, 9, 130, 124, 63, 128, 53, 252, 53, 0, 0, 0, 65, 45, 207, 143, 191, 167, 64, 166, 61, 9, 130, 126, 63, 0, 53, 248, 53, 0, 0, 0, 0, 10, 130, 123, 63, 185, 112, 12, 64, 0, 127, 129, 65, 0, 58, 180, 52, 0, 0, 128, 64, 10, 130, 123, 63, 97, 253, 14, 64, 0, 127, 129, 63, 192, 57, 208, 52, 0, 0, 0, 0, 10, 130, 123, 63, 0, 0, 32, 64, 0, 127, 129, 65, 0, 58, 0, 52, 0, 0, 128, 64, 10, 130, 123, 63, 0, 0, 32, 64, 0, 127, 129, 63, 192, 57, 0, 52, 0, 0, 0, 65, 10, 130, 123, 63, 169, 162, 13, 64, 0, 127, 131, 63, 128, 57, 226, 52, 0, 0, 64, 65, 10, 130, 123, 63, 151, 1, 5, 64, 0, 127, 139, 63, 64, 57, 236, 52, 0, 0, 0, 65, 10, 130, 123, 63, 0, 0, 32, 64, 0, 127, 131, 63, 128, 57, 0, 52, 0, 0, 64, 65, 10, 130, 123, 63, 2, 44, 22, 64, 0, 127, 138, 63, 64, 57, 0, 52, 136, 152, 84, 193, 84, 229, 189, 63, 132, 18, 74, 63, 0, 96, 109, 61, 249, 58, 183, 52, 0, 0, 64, 193, 5, 51, 146, 63, 31, 130, 172, 63, 0, 96, 138, 81, 192, 58, 233, 52, 0, 0, 128, 193, 136, 73, 186, 63, 145, 237, 180, 62, 0, 96, 138, 80, 0, 59, 177, 52, 0, 0, 128, 193, 136, 73, 186, 63, 50, 176, 14, 63, 0, 96, 137, 79, 0, 59, 0, 52, 0, 0, 64, 193, 5, 51, 146, 63, 203, 131, 214, 63, 0, 96, 138, 80, 192, 58, 0, 52, 209, 33, 122, 65, 10, 130, 123, 63, 28, 181, 216, 63, 0, 127, 144, 63, 27, 57, 231, 52, 0, 0, 128, 65, 10, 130, 123, 63, 60, 77, 208, 63, 0, 127, 149, 63, 0, 57, 227, 52, 0, 0, 128, 65, 10, 130, 123, 63, 0, 255, 240, 63, 0, 127, 143, 63, 0, 57, 0, 52, 0, 0, 64, 193, 5, 51, 146, 63, 31, 130, 172, 63, 4, 122, 134, 71, 192, 58, 233, 52, 0, 0, 0, 193, 10, 130, 123, 63, 15, 242, 236, 63, 4, 122, 134, 72, 128, 58, 177, 52, 0, 0, 64, 193, 5, 51, 146, 63, 203, 131, 214, 63, 4, 122, 134, 71, 192, 58, 0, 52, 0, 0, 0, 193, 10, 130, 123, 63, 186, 218, 8, 64, 4, 122, 134, 72, 128, 58, 0, 52, 103, 124, 118, 192, 10, 130, 123, 63, 5, 164, 4, 64, 0, 127, 129, 66, 61, 58, 174, 52, 103, 124, 118, 192, 10, 130, 123, 63, 175, 238, 23, 64, 0, 127, 129, 66, 61, 58, 0, 52, 0, 0, 0, 193, 10, 130, 123, 63, 15, 242, 236, 63, 0, 127, 129, 66, 128, 58, 177, 52, 0, 0, 0, 193, 10, 130, 123, 63, 186, 218, 8, 64, 0, 127, 129, 66, 128, 58, 0, 52, 0, 0, 0, 193, 10, 130, 123, 63, 15, 242, 236, 63, 119, 114, 127, 63, 128, 58, 177, 52, 0, 0, 64, 193, 5, 51, 146, 63, 31, 130, 172, 63, 119, 114, 127, 63, 192, 58, 233, 52, 0, 0, 0, 193, 200, 37, 182, 190, 86, 129, 220, 63, 119, 114, 127, 63, 128, 58, 177, 52, 0, 0, 64, 193, 200, 37, 182, 190, 216, 101, 162, 63, 119, 114, 127, 63, 192, 58, 233, 52, 0, 0, 0, 65, 10, 130, 123, 63, 88, 83, 11, 192, 253, 13, 127, 193, 128, 57, 106, 55, 0, 0, 64, 65, 10, 130, 123, 63, 181, 253, 1, 192, 253, 13, 127, 193, 64, 57, 109, 55, 0, 0, 0, 65, 200, 37, 182, 190, 144, 17, 254, 191, 253, 13, 127, 193, 128, 57, 106, 55, 0, 0, 64, 65, 200, 37, 182, 190, 240, 77, 243, 191, 253, 13, 127, 193, 64, 57, 109, 55, 14, 172, 85, 193, 149, 71, 189, 63, 6, 242, 100, 191, 38, 5, 127, 193, 250, 58, 108, 55, 0, 0, 64, 193, 5, 51, 146, 63, 221, 68, 189, 191, 38, 5, 127, 193, 192, 58, 120, 55, 14, 172, 85, 193, 168, 114, 78, 63, 73, 159, 86, 191, 38, 5, 127, 193, 250, 58, 108, 55, 0, 0, 64, 193, 200, 37, 182, 190, 150, 37, 178, 191, 38, 5, 127, 193, 192, 58, 120, 55, 0, 0, 0, 0, 10, 130, 123, 63, 79, 88, 5, 192, 1, 13, 127, 193, 0, 58, 124, 55, 0, 0, 128, 64, 10, 130, 123, 63, 140, 47, 11, 192, 1, 13, 127, 193, 192, 57, 120, 55, 0, 0, 0, 0, 200, 37, 182, 190, 28, 6, 251, 191, 1, 13, 127, 193, 0, 58, 124, 55, 0, 0, 128, 64, 200, 37, 182, 190, 57, 208, 253, 191, 1, 13, 127, 193, 192, 57, 120, 55, 0, 0, 64, 193, 5, 51, 146, 63, 31, 130, 172, 63, 122, 88, 127, 63, 192, 58, 233, 52, 136, 152, 84, 193, 84, 229, 189, 63, 132, 18, 74, 63, 122, 88, 127, 63, 249, 58, 183, 52, 0, 0, 64, 193, 200, 37, 182, 190, 216, 101, 162, 63, 122, 88, 127, 63, 192, 58, 233, 52, 136, 152, 84, 193, 54, 174, 79, 63, 97, 25, 63, 63, 122, 88, 127, 63, 249, 58, 183, 52, 0, 0, 64, 65, 10, 130, 123, 63, 151, 1, 5, 64, 143, 124, 127, 63, 64, 57, 236, 52, 0, 0, 0, 65, 10, 130, 123, 63, 169, 162, 13, 64, 143, 124, 127, 63, 128, 57, 226, 52, 0, 0, 64, 65, 200, 37, 182, 190, 79, 2, 249, 63, 143, 124, 127, 63, 64, 57, 236, 52, 0, 0, 0, 65, 200, 37, 182, 190, 146, 62, 1, 64, 143, 124, 127, 63, 128, 57, 226, 52, 103, 124, 118, 192, 10, 130, 123, 63, 154, 62, 255, 191, 2, 10, 127, 193, 61, 58, 128, 55, 0, 0, 0, 0, 10, 130, 123, 63, 79, 88, 5, 192, 2, 10, 127, 193, 0, 58, 124, 55, 103, 124, 118, 192, 200, 37, 182, 190, 16, 64, 240, 191, 2, 10, 127, 193, 61, 58, 128, 55, 0, 0, 0, 0, 200, 37, 182, 190, 28, 6, 251, 191, 2, 10, 127, 193, 0, 58, 124, 55, 14, 172, 85, 193, 149, 71, 189, 63, 6, 242, 100, 191, 255, 125, 149, 62, 250, 58, 108, 55, 136, 152, 84, 193, 84, 229, 189, 63, 132, 18, 74, 63, 255, 125, 142, 62, 249, 58, 183, 52, 0, 0, 128, 193, 136, 73, 186, 63, 12, 202, 228, 190, 255, 125, 131, 59, 0, 59, 107, 55, 0, 0, 128, 193, 136, 73, 186, 63, 145, 237, 180, 62, 255, 125, 131, 54, 0, 59, 177, 52, 140, 39, 122, 65, 10, 130, 123, 63, 181, 195, 219, 191, 129, 0, 127, 63, 12, 57, 104, 55, 209, 33, 122, 65, 10, 130, 123, 63, 28, 181, 216, 63, 129, 0, 127, 63, 27, 57, 231, 52, 140, 39, 122, 65, 211, 108, 230, 190, 60, 218, 206, 191, 129, 0, 127, 63, 12, 57, 104, 55, 209, 33, 122, 65, 200, 37, 182, 190, 193, 0, 204, 63, 129, 0, 127, 63, 27, 57, 231, 52, 0, 0, 0, 193, 10, 130, 123, 63, 207, 78, 242, 191, 2, 10, 127, 193, 128, 58, 70, 55, 103, 124, 118, 192, 10, 130, 123, 63, 154, 62, 255, 191, 2, 10, 127, 193, 61, 58, 128, 55, 0, 0, 0, 193, 200, 37, 182, 190, 171, 232, 225, 191, 2, 10, 127, 193, 128, 58, 70, 55, 103, 124, 118, 192, 200, 37, 182, 190, 16, 64, 240, 191, 2, 10, 127, 193, 61, 58, 128, 55, 136, 152, 84, 193, 84, 229, 189, 63, 132, 18, 74, 63, 126, 251, 127, 63, 249, 58, 183, 52, 14, 172, 85, 193, 149, 71, 189, 63, 6, 242, 100, 191, 126, 251, 127, 63, 250, 58, 108, 55, 136, 152, 84, 193, 54, 174, 79, 63, 97, 25, 63, 63, 126, 251, 127, 63, 249, 58, 183, 52, 14, 172, 85, 193, 168, 114, 78, 63, 73, 159, 86, 191, 126, 251, 127, 63, 250, 58, 108, 55, 0, 0, 0, 65, 10, 130, 123, 63, 169, 162, 13, 64, 146, 126, 127, 63, 128, 57, 226, 52, 0, 0, 128, 64, 10, 130, 123, 63, 97, 253, 14, 64, 146, 126, 127, 63, 192, 57, 208, 52, 0, 0, 0, 65, 200, 37, 182, 190, 146, 62, 1, 64, 146, 126, 127, 63, 128, 57, 226, 52, 0, 0, 128, 64, 200, 37, 182, 190, 209, 122, 2, 64, 146, 126, 127, 63, 192, 57, 208, 52, 0, 0, 64, 65, 10, 130, 123, 63, 181, 253, 1, 192, 248, 9, 127, 193, 64, 57, 109, 55, 140, 39, 122, 65, 10, 130, 123, 63, 181, 195, 219, 191, 248, 9, 127, 193, 12, 57, 104, 55, 0, 0, 64, 65, 200, 37, 182, 190, 240, 77, 243, 191, 248, 9, 127, 193, 64, 57, 109, 55, 140, 39, 122, 65, 211, 108, 230, 190, 60, 218, 206, 191, 248, 9, 127, 193, 12, 57, 104, 55, 0, 0, 0, 0, 10, 130, 123, 63, 185, 112, 12, 64, 116, 123, 127, 63, 0, 58, 180, 52, 103, 124, 118, 192, 10, 130, 123, 63, 5, 164, 4, 64, 116, 123, 127, 63, 61, 58, 174, 52, 0, 0, 0, 0, 200, 37, 182, 190, 118, 52, 4, 64, 116, 123, 127, 63, 0, 58, 180, 52, 103, 124, 118, 192, 200, 37, 182, 190, 224, 185, 249, 63, 116, 123, 127, 63, 61, 58, 174, 52, 0, 0, 64, 193, 5, 51, 146, 63, 221, 68, 189, 191, 10, 8, 127, 193, 192, 58, 120, 55, 0, 0, 0, 193, 10, 130, 123, 63, 207, 78, 242, 191, 10, 8, 127, 193, 128, 58, 70, 55, 0, 0, 64, 193, 200, 37, 182, 190, 150, 37, 178, 191, 10, 8, 127, 193, 192, 58, 120, 55, 0, 0, 0, 193, 200, 37, 182, 190, 171, 232, 225, 191, 10, 8, 127, 193, 128, 58, 70, 55, 209, 33, 122, 65, 10, 130, 123, 63, 28, 181, 216, 63, 139, 116, 127, 63, 27, 57, 231, 52, 0, 0, 64, 65, 10, 130, 123, 63, 151, 1, 5, 64, 139, 116, 127, 63, 64, 57, 236, 52, 209, 33, 122, 65, 200, 37, 182, 190, 193, 0, 204, 63, 139, 116, 127, 63, 27, 57, 231, 52, 0, 0, 64, 65, 200, 37, 182, 190, 79, 2, 249, 63, 139, 116, 127, 63, 64, 57, 236, 52, 103, 124, 118, 192, 10, 130, 123, 63, 5, 164, 4, 64, 116, 121, 127, 63, 61, 58, 174, 52, 0, 0, 0, 193, 10, 130, 123, 63, 15, 242, 236, 63, 116, 121, 127, 63, 128, 58, 177, 52, 103, 124, 118, 192, 200, 37, 182, 190, 224, 185, 249, 63, 116, 121, 127, 63, 61, 58, 174, 52, 0, 0, 0, 193, 200, 37, 182, 190, 86, 129, 220, 63, 116, 121, 127, 63, 128, 58, 177, 52, 0, 0, 128, 64, 10, 130, 123, 63, 140, 47, 11, 192, 0, 15, 127, 193, 192, 57, 120, 55, 0, 0, 0, 65, 10, 130, 123, 63, 88, 83, 11, 192, 0, 15, 127, 193, 128, 57, 106, 55, 0, 0, 128, 64, 200, 37, 182, 190, 57, 208, 253, 191, 0, 15, 127, 193, 192, 57, 120, 55, 0, 0, 0, 65, 200, 37, 182, 190, 144, 17, 254, 191, 0, 15, 127, 193, 128, 57, 106, 55, 0, 0, 128, 64, 10, 130, 123, 63, 97, 253, 14, 64, 113, 126, 127, 63, 192, 57, 208, 52, 0, 0, 0, 0, 10, 130, 123, 63, 185, 112, 12, 64, 113, 126, 127, 63, 0, 58, 180, 52, 0, 0, 128, 64, 200, 37, 182, 190, 209, 122, 2, 64, 113, 126, 127, 63, 192, 57, 208, 52, 0, 0, 0, 0, 200, 37, 182, 190, 118, 52, 4, 64, 113, 126, 127, 63, 0, 58, 180, 52, 0, 0, 64, 65, 200, 37, 182, 190, 240, 77, 243, 191, 3, 125, 131, 68, 64, 57, 109, 55, 140, 39, 122, 65, 211, 108, 230, 190, 60, 218, 206, 191, 3, 125, 133, 64, 12, 57, 104, 55, 0, 0, 64, 65, 200, 37, 182, 190, 79, 2, 249, 63, 3, 125, 132, 64, 64, 57, 236, 52, 209, 33, 122, 65, 200, 37, 182, 190, 193, 0, 204, 63, 3, 125, 143, 64, 27, 57, 231, 52, 0, 0, 64, 65, 200, 37, 182, 190, 79, 2, 249, 63, 0, 127, 130, 63, 64, 57, 236, 52, 0, 0, 0, 65, 200, 37, 182, 190, 146, 62, 1, 64, 0, 127, 129, 64, 128, 57, 226, 52, 0, 0, 64, 65, 200, 37, 182, 190, 240, 77, 243, 191, 0, 127, 129, 64, 64, 57, 109, 55, 0, 0, 0, 65, 200, 37, 182, 190, 144, 17, 254, 191, 0, 127, 129, 64, 128, 57, 106, 55, 0, 0, 128, 64, 200, 37, 182, 190, 209, 122, 2, 64, 0, 127, 129, 64, 192, 57, 208, 52, 0, 0, 128, 64, 200, 37, 182, 190, 57, 208, 253, 191, 0, 127, 130, 63, 192, 57, 120, 55, 0, 0, 0, 0, 200, 37, 182, 190, 118, 52, 4, 64, 0, 127, 129, 65, 0, 58, 180, 52, 0, 0, 0, 0, 200, 37, 182, 190, 28, 6, 251, 191, 0, 127, 130, 63, 0, 58, 124, 55, 103, 124, 118, 192, 200, 37, 182, 190, 224, 185, 249, 63, 0, 127, 129, 65, 61, 58, 174, 52, 103, 124, 118, 192, 200, 37, 182, 190, 16, 64, 240, 191, 0, 127, 129, 64, 61, 58, 128, 55, 0, 0, 0, 193, 200, 37, 182, 190, 86, 129, 220, 63, 0, 127, 129, 66, 128, 58, 177, 52, 0, 0, 0, 193, 200, 37, 182, 190, 171, 232, 225, 191, 0, 127, 129, 64, 128, 58, 70, 55, 0, 0, 64, 193, 200, 37, 182, 190, 216, 101, 162, 63, 0, 127, 137, 63, 192, 58, 233, 52, 0, 0, 64, 193, 200, 37, 182, 190, 150, 37, 178, 191, 0, 127, 145, 63, 192, 58, 120, 55, 0, 0, 64, 193, 200, 37, 182, 190, 216, 101, 162, 63, 60, 67, 175, 100, 192, 58, 233, 52, 136, 152, 84, 193, 54, 174, 79, 63, 97, 25, 63, 63, 60, 67, 183, 96, 249, 58, 183, 52, 0, 0, 64, 193, 200, 37, 182, 190, 150, 37, 178, 191, 60, 67, 186, 95, 192, 58, 120, 55, 14, 172, 85, 193, 168, 114, 78, 63, 73, 159, 86, 191, 60, 67, 201, 88, 250, 58, 108, 55, 0, 0, 0, 193, 118, 251, 104, 191, 167, 64, 166, 61, 247, 151, 114, 58, 0, 50, 222, 53, 0, 0, 64, 193, 34, 56, 18, 191, 167, 64, 166, 61, 247, 151, 109, 59, 0, 49, 198, 53, 0, 0, 0, 193, 78, 127, 58, 191, 117, 118, 234, 63, 247, 151, 112, 58, 0, 50, 0, 52, 0, 0, 64, 193, 242, 119, 199, 190, 22, 189, 183, 63, 247, 151, 107, 59, 0, 49, 0, 52, 0, 0, 0, 0, 45, 207, 143, 191, 167, 64, 166, 61, 0, 140, 126, 63, 0, 52, 238, 53, 103, 124, 118, 192, 45, 207, 143, 191, 167, 64, 166, 61, 0, 140, 124, 63, 9, 51, 232, 53, 0, 0, 0, 0, 50, 34, 113, 191, 174, 16, 9, 64, 0, 140, 125, 63, 0, 52, 0, 52, 103, 124, 118, 192, 50, 34, 113, 191, 225, 38, 2, 64, 0, 140, 123, 63, 9, 51, 0, 52, 0, 0, 64, 193, 34, 56, 18, 191, 167, 64, 166, 61, 228, 175, 86, 49, 0, 49, 198, 53, 0, 0, 128, 193, 83, 94, 55, 63, 167, 64, 166, 61, 228, 175, 83, 50, 0, 48, 11, 53, 0, 0, 64, 193, 242, 119, 199, 190, 22, 189, 183, 63, 228, 175, 86, 49, 0, 49, 0, 52, 0, 0, 128, 193, 123, 218, 101, 63, 30, 55, 244, 62, 228, 175, 82, 51, 0, 48, 0, 52, 0, 0, 128, 64, 45, 207, 143, 191, 167, 64, 166, 61, 0, 140, 126, 63, 128, 52, 243, 53, 0, 0, 0, 0, 45, 207, 143, 191, 167, 64, 166, 61, 0, 140, 126, 63, 0, 52, 238, 53, 0, 0, 128, 64, 50, 34, 113, 191, 174, 16, 9, 64, 0, 140, 126, 63, 128, 52, 0, 52, 0, 0, 0, 0, 50, 34, 113, 191, 174, 16, 9, 64, 0, 140, 127, 63, 0, 52, 0, 52, 0, 0, 64, 65, 45, 207, 143, 191, 167, 64, 166, 61, 0, 140, 126, 63, 128, 53, 252, 53, 0, 0, 0, 65, 45, 207, 143, 191, 167, 64, 166, 61, 0, 140, 126, 62, 0, 53, 248, 53, 0, 0, 64, 65, 50, 34, 113, 191, 7, 155, 0, 64, 0, 140, 126, 64, 128, 53, 0, 52, 0, 0, 0, 65, 50, 34, 113, 191, 174, 16, 9, 64, 0, 140, 126, 61, 0, 53, 0, 52, 0, 0, 0, 65, 45, 207, 143, 191, 167, 64, 166, 61, 0, 140, 126, 63, 0, 53, 248, 53, 0, 0, 0, 65, 50, 34, 113, 191, 174, 16, 9, 64, 0, 140, 126, 63, 0, 53, 0, 52, 0, 0, 128, 65, 62, 35, 93, 191, 167, 64, 166, 61, 7, 148, 118, 67, 0, 54, 252, 53, 0, 0, 64, 65, 45, 207, 143, 191, 167, 64, 166, 61, 7, 148, 120, 71, 128, 53, 252, 53, 0, 0, 128, 65, 5, 167, 46, 191, 60, 46, 206, 63, 7, 148, 119, 69, 0, 54, 0, 52, 0, 0, 64, 65, 50, 34, 113, 191, 7, 155, 0, 64, 7, 148, 120, 72, 128, 53, 0, 52, 103, 124, 118, 192, 45, 207, 143, 191, 167, 64, 166, 61, 251, 146, 119, 60, 9, 51, 232, 53, 0, 0, 0, 193, 118, 251, 104, 191, 167, 64, 166, 61, 251, 146, 116, 60, 0, 50, 222, 53, 103, 124, 118, 192, 50, 34, 113, 191, 225, 38, 2, 64, 251, 146, 118, 60, 9, 51, 0, 52, 0, 0, 0, 193, 78, 127, 58, 191, 117, 118, 234, 63, 251, 146, 115, 60, 0, 50, 0, 52 ), -"array_index_data": PoolByteArray( 0, 0, 1, 0, 2, 0, 2, 0, 1, 0, 3, 0, 3, 0, 1, 0, 4, 0, 5, 0, 6, 0, 7, 0, 7, 0, 6, 0, 8, 0, 9, 0, 10, 0, 11, 0, 11, 0, 10, 0, 12, 0, 12, 0, 10, 0, 13, 0, 13, 0, 10, 0, 14, 0, 14, 0, 10, 0, 15, 0, 16, 0, 17, 0, 18, 0, 18, 0, 17, 0, 19, 0, 20, 0, 21, 0, 22, 0, 22, 0, 21, 0, 23, 0, 23, 0, 21, 0, 24, 0, 24, 0, 21, 0, 25, 0, 25, 0, 21, 0, 26, 0, 27, 0, 28, 0, 29, 0, 29, 0, 28, 0, 30, 0, 31, 0, 32, 0, 33, 0, 33, 0, 32, 0, 34, 0, 35, 0, 36, 0, 37, 0, 37, 0, 36, 0, 38, 0, 39, 0, 40, 0, 41, 0, 41, 0, 40, 0, 42, 0, 43, 0, 44, 0, 45, 0, 45, 0, 44, 0, 46, 0, 47, 0, 48, 0, 49, 0, 49, 0, 48, 0, 50, 0, 51, 0, 52, 0, 53, 0, 53, 0, 52, 0, 54, 0, 55, 0, 56, 0, 57, 0, 57, 0, 56, 0, 58, 0, 59, 0, 60, 0, 61, 0, 61, 0, 60, 0, 62, 0, 63, 0, 64, 0, 65, 0, 65, 0, 64, 0, 66, 0, 67, 0, 68, 0, 69, 0, 69, 0, 68, 0, 70, 0, 71, 0, 72, 0, 73, 0, 73, 0, 72, 0, 74, 0, 75, 0, 76, 0, 77, 0, 77, 0, 76, 0, 78, 0, 79, 0, 80, 0, 81, 0, 81, 0, 80, 0, 82, 0, 83, 0, 84, 0, 85, 0, 85, 0, 84, 0, 86, 0, 87, 0, 88, 0, 89, 0, 89, 0, 88, 0, 90, 0, 91, 0, 92, 0, 93, 0, 93, 0, 92, 0, 94, 0, 76, 0, 43, 0, 78, 0, 78, 0, 43, 0, 45, 0, 95, 0, 96, 0, 97, 0, 97, 0, 96, 0, 98, 0, 99, 0, 100, 0, 101, 0, 101, 0, 100, 0, 102, 0, 103, 0, 104, 0, 105, 0, 105, 0, 104, 0, 106, 0, 60, 0, 107, 0, 62, 0, 62, 0, 107, 0, 108, 0, 109, 0, 110, 0, 55, 0, 55, 0, 110, 0, 56, 0, 44, 0, 47, 0, 46, 0, 46, 0, 47, 0, 49, 0, 111, 0, 112, 0, 39, 0, 39, 0, 112, 0, 40, 0, 113, 0, 114, 0, 115, 0, 115, 0, 114, 0, 116, 0, 48, 0, 117, 0, 50, 0, 50, 0, 117, 0, 118, 0, 118, 0, 117, 0, 119, 0, 120, 0, 121, 0, 122, 0, 122, 0, 121, 0, 123, 0, 124, 0, 125, 0, 126, 0, 126, 0, 125, 0, 127, 0, 128, 0, 129, 0, 130, 0, 130, 0, 129, 0, 131, 0, 132, 0, 133, 0, 134, 0, 134, 0, 133, 0, 135, 0, 136, 0, 137, 0, 138, 0, 138, 0, 137, 0, 139, 0, 139, 0, 137, 0, 140, 0, 141, 0, 142, 0, 133, 0, 133, 0, 142, 0, 135, 0, 135, 0, 142, 0, 143, 0, 144, 0, 145, 0, 146, 0, 146, 0, 145, 0, 147, 0, 129, 0, 132, 0, 131, 0, 131, 0, 132, 0, 134, 0, 148, 0, 128, 0, 149, 0, 149, 0, 128, 0, 130, 0, 150, 0, 148, 0, 151, 0, 151, 0, 148, 0, 149, 0, 152, 0, 153, 0, 154, 0, 154, 0, 153, 0, 155, 0, 156, 0, 157, 0, 158, 0, 158, 0, 157, 0, 159, 0, 160, 0, 161, 0, 162, 0, 162, 0, 161, 0, 163, 0, 118, 0, 119, 0, 141, 0, 141, 0, 119, 0, 142, 0, 164, 0, 165, 0, 166, 0, 166, 0, 165, 0, 167, 0, 168, 0, 169, 0, 170, 0, 170, 0, 169, 0, 171, 0, 172, 0, 173, 0, 174, 0, 174, 0, 173, 0, 175, 0, 176, 0, 177, 0, 178, 0, 178, 0, 177, 0, 179, 0, 180, 0, 181, 0, 182, 0, 182, 0, 181, 0, 183, 0, 184, 0, 185, 0, 186, 0, 186, 0, 185, 0, 187, 0, 188, 0, 189, 0, 190, 0, 190, 0, 189, 0, 191, 0, 192, 0, 193, 0, 194, 0, 194, 0, 193, 0, 195, 0, 196, 0, 197, 0, 198, 0, 198, 0, 197, 0, 199, 0, 200, 0, 201, 0, 202, 0, 202, 0, 201, 0, 203, 0, 204, 0, 205, 0, 206, 0, 206, 0, 205, 0, 207, 0, 208, 0, 209, 0, 210, 0, 210, 0, 209, 0, 211, 0, 212, 0, 213, 0, 214, 0, 214, 0, 213, 0, 215, 0, 216, 0, 217, 0, 218, 0, 218, 0, 217, 0, 219, 0, 220, 0, 221, 0, 222, 0, 222, 0, 221, 0, 223, 0, 224, 0, 225, 0, 226, 0, 226, 0, 225, 0, 227, 0, 228, 0, 229, 0, 230, 0, 230, 0, 229, 0, 231, 0, 232, 0, 233, 0, 234, 0, 234, 0, 233, 0, 235, 0, 233, 0, 236, 0, 235, 0, 235, 0, 236, 0, 237, 0, 236, 0, 238, 0, 237, 0, 237, 0, 238, 0, 239, 0, 238, 0, 240, 0, 239, 0, 239, 0, 240, 0, 241, 0, 240, 0, 242, 0, 241, 0, 241, 0, 242, 0, 243, 0, 242, 0, 244, 0, 243, 0, 243, 0, 244, 0, 245, 0, 246, 0, 247, 0, 248, 0, 248, 0, 247, 0, 249, 0, 250, 0, 251, 0, 252, 0, 252, 0, 251, 0, 253, 0, 254, 0, 255, 0, 0, 1, 0, 1, 255, 0, 1, 1, 2, 1, 3, 1, 4, 1, 4, 1, 3, 1, 5, 1, 6, 1, 7, 1, 8, 1, 8, 1, 7, 1, 9, 1, 10, 1, 11, 1, 12, 1, 12, 1, 11, 1, 13, 1, 14, 1, 6, 1, 15, 1, 15, 1, 6, 1, 8, 1, 16, 1, 17, 1, 18, 1, 18, 1, 17, 1, 19, 1, 20, 1, 21, 1, 22, 1, 22, 1, 21, 1, 23, 1 ), -"blend_shape_data": [ ], -"format": 2194711, -"index_count": 498, -"material": SubResource( 15 ), -"name": "Material", -"primitive": 4, -"skeleton_aabb": [ ], -"vertex_count": 280 -} - -[sub_resource type="Shader" id=18] -code = "shader_type spatial; -render_mode blend_mix,depth_draw_always,cull_back,diffuse_burley,specular_schlick_ggx,unshaded; - -void fragment() -{ - ALBEDO.rgb = texture(SCREEN_TEXTURE, SCREEN_UV).rgb; - //ALPHA = texture(SCREEN_TEXTURE, SCREEN_UV).a; - //DEPTH = 0.0; -}" - -[sub_resource type="ShaderMaterial" id=19] -render_priority = -126 -shader = SubResource( 18 ) - -[sub_resource type="BoxShape" id=20] -extents = Vector3( 12.3896, 0.239365, 1.86841 ) - -[sub_resource type="BoxShape" id=21] -extents = Vector3( 7.3368, 0.780973, 0.124213 ) - -[sub_resource type="BoxShape" id=23] -extents = Vector3( 7.3368, 0.934506, 0.124213 ) - -[sub_resource type="BoxShape" id=24] -extents = Vector3( 1.57343, 0.934506, 1.35201 ) - -[sub_resource type="BoxShape" id=25] -extents = Vector3( 0.115313, 0.934506, 1.68658 ) - -[sub_resource type="BoxShape" id=22] -extents = Vector3( 2.14672, 0.239365, 1.59078 ) - -[sub_resource type="NavigationMesh" id=26] -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 ) - -[sub_resource type="CubeMesh" id=29] -size = Vector3( 2, 0.35, 2.5 ) - -[sub_resource type="ConvexPolygonShape" id=30] -points = PoolVector3Array( 1, 0.174966, 1.25, 1, -0.175, 1.25, 1, 0.174966, -1.25, -1, 0.174966, 1.25, -1, -0.175, 1.25, 1, -0.175, -1.25, -1, 0.174966, -1.25, -1, -0.175, -1.25 ) - -[node name="Gunboat" type="RigidBody"] -mass = 13500.0 -physics_material_override = SubResource( 28 ) -can_sleep = false -linear_damp = 1.0 -angular_damp = 1.0 -script = ExtResource( 1 ) - -[node name="SteerArea" type="Area" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 6.36737, 1.76137, 0 ) -monitoring = false - -[node name="CollisionShape" type="CollisionShape" parent="SteerArea"] -shape = SubResource( 5 ) - -[node name="MeshInstance" type="MeshInstance" parent="SteerArea"] -mesh = SubResource( 6 ) - -[node name="FloatPoints" type="Spatial" parent="."] - -[node name="FloatArea" type="Area" parent="FloatPoints"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.4398, -0.80712, -2.36264 ) -collision_layer = 0 -collision_mask = 4 -monitorable = false - -[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea"] -shape = SubResource( 7 ) - -[node name="FloatArea2" type="Area" parent="FloatPoints"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 7.4398, -0.80712, 2.39068 ) -collision_layer = 0 -collision_mask = 4 -monitorable = false - -[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea2"] -shape = SubResource( 7 ) - -[node name="FloatArea5" type="Area" parent="FloatPoints"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.807551, 4.064 ) -collision_layer = 0 -collision_mask = 4 -monitorable = false - -[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea5"] -shape = SubResource( 7 ) - -[node name="FloatArea6" type="Area" parent="FloatPoints"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.807551, -4.064 ) -collision_layer = 0 -collision_mask = 4 -monitorable = false - -[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea6"] -shape = SubResource( 7 ) - -[node name="FloatArea3" type="Area" parent="FloatPoints"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7.44, -0.806844, 2.391 ) -collision_layer = 0 -collision_mask = 4 -monitorable = false - -[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea3"] -shape = SubResource( 7 ) - -[node name="FloatArea4" type="Area" parent="FloatPoints"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7.44, -0.806844, -2.391 ) -collision_layer = 0 -collision_mask = 4 -monitorable = false - -[node name="CollisionShape" type="CollisionShape" parent="FloatPoints/FloatArea4"] -shape = SubResource( 7 ) - -[node name="Mast" type="Spatial" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 3.63842, 5.76149, 0 ) - -[node name="MastPole" type="MeshInstance" parent="Mast"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.93756, 0 ) -mesh = SubResource( 9 ) -skeleton = NodePath("../..") -material/0 = SubResource( 12 ) - -[node name="Sail" type="Spatial" parent="Mast"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.113369, 8.41979, 0 ) - -[node name="SailMesh" type="MeshInstance" parent="Mast/Sail"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.617531, 0 ) -mesh = SubResource( 13 ) -skeleton = NodePath("../..") - -[node name="Rudder" type="Spatial" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -16.0094, 0, 0 ) - -[node name="RudderMesh" type="MeshInstance" parent="Rudder"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -0.651875, 0, 0 ) -mesh = SubResource( 14 ) -skeleton = NodePath("../..") - -[node name="laetine" type="MeshInstance" parent="."] -transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0 ) -mesh = SubResource( 16 ) - -[node name="laetine_mask" type="MeshInstance" parent="."] -transform = Transform( -1, 0, -8.74228e-08, 0, 0.75, 0, 8.74228e-08, 0, -1, 0, -0.214627, 0 ) -visible = false -mesh = ExtResource( 4 ) -skeleton = NodePath("") -material/0 = SubResource( 19 ) - -[node name="CollisionShape" type="CollisionShape" parent="."] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.60351, -0.594547, 0 ) -shape = SubResource( 20 ) - -[node name="CollisionShape3" type="CollisionShape" parent="."] -transform = Transform( 0.999005, 0, -0.0445958, 0, 1, 0, 0.0445958, 0, 0.999005, -8.64722, 0.222032, 2.00624 ) -shape = SubResource( 21 ) - -[node name="CollisionShape5" type="CollisionShape" parent="."] -transform = Transform( 0.997985, 0, 0.0634524, 0, 1, 0, -0.0634524, 0, 0.997985, 5.96797, 0.222032, 1.98993 ) -shape = SubResource( 23 ) - -[node name="CollisionShape6" type="CollisionShape" parent="."] -transform = Transform( 0.997734, 0, -0.0672839, 0, 1, 0, 0.0672839, 0, 0.997734, 5.96797, 0.222032, -1.96965 ) -shape = SubResource( 23 ) - -[node name="CollisionShape7" type="CollisionShape" parent="."] -transform = Transform( 0.997734, 0, -0.0672839, 0, 1, 0, 0.0672839, 0, 0.997734, 14.4082, 0.423598, 0.0317991 ) -shape = SubResource( 24 ) - -[node name="CollisionShape8" type="CollisionShape" parent="."] -transform = Transform( 0.999989, 0, 0.00459021, 0, 1, 0, -0.00459021, 0, 0.999989, -15.8389, 0.423598, -0.0761639 ) -shape = SubResource( 25 ) - -[node name="CollisionShape4" type="CollisionShape" parent="."] -transform = Transform( 0.999644, 0, 0.0266829, 0, 1, 0, -0.0266829, 0, 0.999644, -8.61846, 0.222032, -2.11819 ) -shape = SubResource( 21 ) - -[node name="CollisionShape2" type="CollisionShape" parent="."] -transform = Transform( 0.966756, -0.255699, 0, 0.255699, 0.966756, 0, 0, 0, 1, 10.733, -0.0678967, 0.0285335 ) -shape = SubResource( 22 ) - -[node name="Cannon" parent="." instance=ExtResource( 2 )] -transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 3.29231, 0.746166, -2.13535 ) - -[node name="NavigationMeshInstance" type="NavigationMeshInstance" parent="."] -navmesh = SubResource( 26 ) - -[node name="MeshInstance" type="MeshInstance" parent="NavigationMeshInstance"] -transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.282388, 0 ) -visible = false -mesh = SubResource( 27 ) - -[node name="laetine" type="MeshInstance" parent="NavigationMeshInstance"] -transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0 ) -visible = false -mesh = SubResource( 16 ) - -[node name="ramp" type="MeshInstance" parent="NavigationMeshInstance"] -transform = Transform( 1, 0, 0, 0, 0.816238, 0.577715, 0, -0.577715, 0.816238, -5.03993, 0.157205, 1.35372 ) -visible = false -mesh = SubResource( 29 ) - -[node name="ramp" type="MeshInstance" parent="."] -transform = Transform( 1, 0, 0, 0, 0.771436, 0.636307, 0, -0.636307, 0.771436, -5.03993, 0.255733, 1.26566 ) -mesh = SubResource( 29 ) - -[node name="CollisionShape9" type="CollisionShape" parent="."] -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 )] -transform = Transform( -1, 0, -8.74228e-08, 0, 3, 0, 8.74228e-08, 0, -1, -7.1768, -0.262492, -2.50338 ) diff --git a/godot/scenes/vehicles/Gunbrig.tscn b/godot/scenes/vehicles/Gunbrig.tscn index ce417c7..91900c3 100644 --- a/godot/scenes/vehicles/Gunbrig.tscn +++ b/godot/scenes/vehicles/Gunbrig.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=24 format=2] +[gd_scene load_steps=25 format=2] [ext_resource path="res://scripts/vehicles/Gunboat.gd" type="Script" id=1] [ext_resource path="res://scenes/machines/Cannon.tscn" type="PackedScene" id=2] @@ -53,6 +53,9 @@ agent_radius = 0.18 agent_max_slope = 46.0 region_min_size = 3.0 +[sub_resource type="BoxShape" id=36] +extents = Vector3( 10.0294, 0.598376, 0.166381 ) + [node name="Gunbrig" type="RigidBody"] mass = 238000.0 physics_material_override = SubResource( 28 ) @@ -346,3 +349,11 @@ mesh = ExtResource( 8 ) transform = Transform( 0.926234, 1.7263e-09, 0.0323448, 0.0323448, -1.10483e-07, -0.926234, 1.7263e-09, 0.926799, -1.10483e-07, -10.6379, 11.734, -0.0107608 ) visible = false mesh = ExtResource( 7 ) + +[node name="GunwhaleR" type="CollisionShape" parent="."] +transform = Transform( 0.999486, 0, -0.0320562, 0, 1, 0, 0.0320562, 0, 0.999486, -0.646409, 0.658986, 3.50438 ) +shape = SubResource( 36 ) + +[node name="GunwhaleR2" type="CollisionShape" parent="."] +transform = Transform( 0.999486, 0, 0.0320562, 0, 1, 0, -0.0320562, 0, 0.999486, -0.646409, 0.658986, -3.46571 ) +shape = SubResource( 36 ) diff --git a/godot/scenes/vehicles/ship_parts/SquareSail.gd b/godot/scenes/vehicles/ship_parts/SquareSail.gd index b387232..72159d8 100644 --- a/godot/scenes/vehicles/ship_parts/SquareSail.gd +++ b/godot/scenes/vehicles/ship_parts/SquareSail.gd @@ -7,6 +7,8 @@ func _ready(): wind_bone = $Skeleton.find_bone("Bone") func set_sheet(amount: float): #0 to 1 + $Sheet.transform.origin.y = amount * sheet_out + print(amount) $Skeleton/IKL.start(true) $Skeleton/IKR.start(true) - $Sheet.transform.origin.y = amount * sheet_out + diff --git a/godot/scenes/weapons/grapplinghook.gd b/godot/scenes/weapons/grapplinghook.gd new file mode 100644 index 0000000..f7c1fa8 --- /dev/null +++ b/godot/scenes/weapons/grapplinghook.gd @@ -0,0 +1,98 @@ +extends Resource + +var player_owner: RigidBody = null +const fist_damage: int = 15 +var can_throw: bool = true +var hooking: bool = false + +var pin_root: PinJoint = PinJoint.new() +var pin_mid: PinJoint = PinJoint.new() +var pin_player: PinJoint = PinJoint.new() + +var rope_seg1: RigidBody = null #preload("res://scenes/environment/RopeSegment.tscn").instance() +var rope_seg2: RigidBody = null #preload("res://scenes/environment/RopeSegment.tscn").instance() + +const name: String = "GRAPPLINGHOOK" + +func init(owner): + player_owner = owner + rope_seg1 = preload("res://scenes/environment/RopeSegment.tscn").instance() + rope_seg2 = preload("res://scenes/environment/RopeSegment.tscn").instance() + +func deselect() -> bool: + if can_throw and !hooking: + return true + return false + +func select() -> void: + player_owner.rpc("anim_event", {"VMANIMPLAY" : "rockets_idle_vm"}) + +func attack1(): + if !can_throw or hooking: + return + can_throw = false + player_owner.rpc("anim_event", {"VMANIMPLAY" : "rockets_launch_vm"}) + yield(player_owner.get_tree().create_timer(0.45), "timeout") + hooking = true + player_owner.gun_ray.force_raycast_update() + if player_owner.gun_ray.is_colliding(): + var hit = player_owner.gun_ray.get_collider() + var hitpt: Vector3 = player_owner.gun_ray.get_collision_point() + var vlen: float = (hitpt - player_owner.head.global_transform.origin).length() + player_owner.world.add_child(pin_root) + player_owner.world.add_child(pin_mid) + player_owner.world.add_child(pin_player) + player_owner.world.add_child(rope_seg1) + player_owner.world.add_child(rope_seg2) + + pin_root.global_transform.origin = hitpt + pin_player.global_transform.origin = player_owner.head.global_transform.origin + pin_mid.global_transform.origin = hitpt.move_toward(player_owner.head.global_transform.origin, vlen/2) + pin_player.global_transform.origin += player_owner.velocity*0.0167 + print(pin_root.global_transform.origin) + print(pin_player.global_transform.origin) + print(pin_mid.global_transform.origin) + #should apply to both + rope_seg1.get_node("CollisionShape").shape.extents = Vector3(0.1,0.1,vlen/2) + #rope_seg2.get_node("CollisionShape").shape.extents = Vector3(0.1,0.1,vec.length()/2) + rope_seg1.global_transform.origin = hitpt.move_toward(player_owner.head.global_transform.origin, vlen*0.25) + rope_seg2.global_transform.origin = hitpt.move_toward(player_owner.head.global_transform.origin, 0.75*vlen) + rope_seg1.look_at(hitpt, Vector3.UP) + rope_seg2.look_at(hitpt, Vector3.UP) + + pin_root.set_node_a(hit.get_path()) + pin_root.set_node_b(rope_seg1.get_path()) + pin_mid.set_node_a(rope_seg1.get_path()) + pin_mid.set_node_b(rope_seg2.get_path()) + pin_player.set_node_a(rope_seg2.get_path()) + pin_player.set_node_b(player_owner.get_path()) + #rope_seg2.get_node("CollisionShape").shape.extents = Vector3(0.05,0.05,distance/2) + else: + can_throw = true + +func detach(): + player_owner.world.remove_child(pin_root) + player_owner.world.remove_child(pin_mid) + player_owner.world.remove_child(pin_player) + player_owner.world.remove_child(rope_seg1) + player_owner.world.remove_child(rope_seg2) + pin_root.set_node_a("") + pin_root.set_node_b("") + pin_mid.set_node_a("") + pin_mid.set_node_b("") + pin_player.set_node_a("") + pin_player.set_node_b("") + can_throw = true + hooking = false + +func mouse_input(m1: float, _m3: float, m2: float) -> void: + if m2 > 0 and hooking: + detach() + if m1 > 0 and rope_seg1.get_node("CollisionShape").shape.extents.z > 0.1: + rope_seg1.get_node("CollisionShape").shape.extents.z -= 0.05 + var trf1: Vector3 = (pin_root.global_transform.origin-pin_mid.global_transform.origin).normalized() + rope_seg1.global_transform.origin += trf1*0.025 + var trf2: Vector3 = (pin_mid.global_transform.origin-pin_player.global_transform.origin).normalized() + rope_seg2.global_transform.origin += trf2*0.025 + player_owner.linear_velocity += (trf1*0.05 + trf2*0.05) + diff --git a/godot/scenes/weapons/grapplinghook.tres b/godot/scenes/weapons/grapplinghook.tres new file mode 100644 index 0000000..395998e --- /dev/null +++ b/godot/scenes/weapons/grapplinghook.tres @@ -0,0 +1,7 @@ +[gd_resource type="Resource" load_steps=2 format=2] + +[ext_resource path="res://scenes/weapons/grapplinghook.gd" type="Script" id=1] + +[resource] +resource_local_to_scene = true +script = ExtResource( 1 ) diff --git a/godot/scenes/worldprops/ball_bucket.tscn b/godot/scenes/worldprops/ball_bucket.tscn new file mode 100644 index 0000000..d85a2fc --- /dev/null +++ b/godot/scenes/worldprops/ball_bucket.tscn @@ -0,0 +1,46 @@ +[gd_scene load_steps=4 format=2] + +[sub_resource type="BoxShape" id=1] +extents = Vector3( 1, 0.1, 1 ) + +[sub_resource type="BoxShape" id=2] +extents = Vector3( 1, 0.4, 0.1 ) + +[sub_resource type="SpatialMaterial" id=3] +albedo_color = Color( 0.266667, 0.168627, 0.0235294, 1 ) +metallic_specular = 0.0 + +[node name="ball_bucket" type="StaticBody"] + +[node name="CollisionShape" type="CollisionShape" parent="."] +shape = SubResource( 1 ) + +[node name="CollisionShape2" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.474515, 0.95 ) +shape = SubResource( 2 ) + +[node name="CollisionShape3" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.474515, -0.897996 ) +shape = SubResource( 2 ) + +[node name="CollisionShape4" type="CollisionShape" parent="."] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.889, 0.475, 0 ) +shape = SubResource( 2 ) + +[node name="CollisionShape5" type="CollisionShape" parent="."] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0.889, 0.475, 0 ) +shape = SubResource( 2 ) + +[node name="CSGCombiner" type="CSGCombiner" parent="."] +material_override = SubResource( 3 ) + +[node name="CSGBox" type="CSGBox" parent="CSGCombiner"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.400668, 0 ) +height = 1.00035 + +[node name="CSGBox2" type="CSGBox" parent="CSGCombiner"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.975335, 0 ) +operation = 2 +width = 1.73095 +height = 1.87987 +depth = 1.54392 diff --git a/godot/scripts/GameBase.gd b/godot/scripts/GameBase.gd index 85af89a..9f24d7b 100644 --- a/godot/scripts/GameBase.gd +++ b/godot/scripts/GameBase.gd @@ -103,9 +103,9 @@ func back_to_main(): queue_free() func join_team(team): - if player_char != null: + if player_char != null: player_char.deselect_character() - $DEFAULTCAM.current = true + cam.attach($DEFAULTCAM, "STATIC", NodePath(".")) player_team = team rpc_id(1, "_call_on_server", "_client_change_teams", {"id" : client_id, "team" : team}) diff --git a/godot/scripts/ballistics/Cannonball.gd b/godot/scripts/ballistics/Cannonball.gd index 241fc7d..b41f104 100644 --- a/godot/scripts/ballistics/Cannonball.gd +++ b/godot/scripts/ballistics/Cannonball.gd @@ -15,6 +15,10 @@ func get_init_info(): return {"linear_velocity" : linear_velocity, "angular_velocity" : angular_velocity, "oldvel" : oldvel, "shooter" : shooter, "shooter_id" : shooter_id} func _on_collision(body): + if is_network_master() and body.has_method("load_cannonball") and !body.loaded: + body.rpc("load_cannonball") + rpc("net_remove") + return if is_network_master() and oldvel.length() > 20 and !damage_exceptions.has(body) and body.has_method("damage"): body.rpc("damage", oldvel.length(), "BLUNT", [shooter_id, shooter], "using 'cannon'") damage_exceptions.append(body) diff --git a/godot/scripts/characters/player_controller_new.gd b/godot/scripts/characters/player_controller_new.gd index a61ef1d..b1a8718 100644 --- a/godot/scripts/characters/player_controller_new.gd +++ b/godot/scripts/characters/player_controller_new.gd @@ -105,6 +105,7 @@ func _process(_delta: float) -> void: else: weapon.mouse_input(Input.get_action_strength("fire"), Input.get_action_strength("fire3"),Input.get_action_strength("fire2")) jumping = Input.get_action_strength("move_jump") + walk_speed = 5.0 if Input.get_action_strength("move_walk") else 7.5 if Input.is_action_just_pressed("fire"): weapon.attack1() if Input.is_action_just_pressed("reload") and weapon.has_method("reload"): @@ -190,6 +191,10 @@ func lose_machine(): machine = null func carry_process() -> void: + if !is_instance_valid(carrying_object): + carrying_object = null + carrying = false + return var vec = (carry_point.global_transform.origin - carrying_object.global_transform.origin) var length = vec.length() if length > 1: diff --git a/godot/scripts/machines/Cannon.gd b/godot/scripts/machines/Cannon.gd index 80b9edf..6c0b350 100644 --- a/godot/scripts/machines/Cannon.gd +++ b/godot/scripts/machines/Cannon.gd @@ -41,6 +41,7 @@ func _ready(): add_collision_exception_with(get_parent().get_parent()) mode = RigidBody.MODE_KINEMATIC world_ballistics = world.get_node("BALLISTICS") + if loaded: controllable = true func on_new_control(): if is_network_master(): world.cam.attach(self, "STATIC", "./YawJoint/PitchJoint/CameraPoint") @@ -65,6 +66,7 @@ func attack1(): remotesync func fire(): loaded = false + controllable = false status.set_visible(true) $YawJoint/PitchJoint/Muzzle/explosion_sound.play() var expl = preload("res://particles/p_Explosion.tscn").instance() @@ -79,6 +81,11 @@ remotesync func fire(): cball.shooter = user.name + " (" + world.players_info[user.get_network_master()][0] + ")" cball.shooter_id = user.get_network_master() if mode == RigidBody.MODE_KINEMATIC: - get_parent().apply_impulse($YawJoint/PitchJoint.global_transform.origin - get_parent().global_transform.origin, -1*cball.mass*ball_speed*muzzle.global_transform.basis.x) + get_parent().get_parent().apply_impulse($YawJoint/PitchJoint.global_transform.origin - get_parent().global_transform.origin, -1*cball.mass*ball_speed*muzzle.global_transform.basis.x) else: if is_network_master(): apply_impulse($YawJoint/PitchJoint.global_transform.origin - global_transform.origin, -1*cball.mass*ball_speed*muzzle.global_transform.basis.x) + +remotesync func load_cannonball(): + loaded = true + controllable = true + $StatusNotifier.visible = false diff --git a/godot/scripts/vehicles/Gunboat.gd b/godot/scripts/vehicles/Gunboat.gd index c00479e..03252e6 100644 --- a/godot/scripts/vehicles/Gunboat.gd +++ b/godot/scripts/vehicles/Gunboat.gd @@ -39,12 +39,18 @@ func mp_init(init_info): # Called when the node enters the scene tree for the first time. func _ready(): print("adding gunboat to scene",get_tree().get_network_unique_id()) + controllable = true + for sail in $SAILS.get_children(): + sail.set_sheet(sail_out) world = get_tree().get_root().find_node("GAMEWORLD", true, false) if get_tree().get_network_unique_id() == 0: print("enabling navigation for server") $NavigationMeshInstance.set_enabled(true) func on_no_control(): + rpc("reset_controls") + +remotesync func reset_controls(): rudder = 0.0 throttle = 0.0 mainsheet = 0.0 @@ -76,7 +82,7 @@ remotesync func damage(amount, _type, _shooter, _extra = ""): # Called every frame. 'delta' is the elapsed time since the previous frame. func _physics_process(delta): if is_network_master(): - if mainsheet != 0: + if throttle != 0: for sail in $SAILS.get_children(): sail.set_sheet(sail_out) $Rudder.rotation_degrees.y = rudder_turn diff --git a/godot/sounds/footstep01.ogg b/godot/sounds/footstep01.ogg new file mode 100644 index 0000000..4a2501c Binary files /dev/null and b/godot/sounds/footstep01.ogg differ diff --git a/godot/sounds/footstep01.ogg.import b/godot/sounds/footstep01.ogg.import new file mode 100644 index 0000000..eafe193 --- /dev/null +++ b/godot/sounds/footstep01.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.oggstr" + +[deps] + +source_file="res://sounds/footstep01.ogg" +dest_files=[ "res://.import/footstep01.ogg-d76963bf1bd06cc247473674bc496643.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/sounds/footstep02.ogg b/godot/sounds/footstep02.ogg new file mode 100644 index 0000000..cda8c99 Binary files /dev/null and b/godot/sounds/footstep02.ogg differ diff --git a/godot/sounds/footstep02.ogg.import b/godot/sounds/footstep02.ogg.import new file mode 100644 index 0000000..1dfabc5 --- /dev/null +++ b/godot/sounds/footstep02.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.oggstr" + +[deps] + +source_file="res://sounds/footstep02.ogg" +dest_files=[ "res://.import/footstep02.ogg-f0eec7980dcf1290786fd8f372f7b88f.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/sounds/footstep03.ogg b/godot/sounds/footstep03.ogg new file mode 100644 index 0000000..812335c Binary files /dev/null and b/godot/sounds/footstep03.ogg differ diff --git a/godot/sounds/footstep03.ogg.import b/godot/sounds/footstep03.ogg.import new file mode 100644 index 0000000..711cfc6 --- /dev/null +++ b/godot/sounds/footstep03.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.oggstr" + +[deps] + +source_file="res://sounds/footstep03.ogg" +dest_files=[ "res://.import/footstep03.ogg-03ef4afe33de50dbdff6ddbbf098ad74.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/sounds/footstep04.ogg b/godot/sounds/footstep04.ogg new file mode 100644 index 0000000..dabbd70 Binary files /dev/null and b/godot/sounds/footstep04.ogg differ diff --git a/godot/sounds/footstep04.ogg.import b/godot/sounds/footstep04.ogg.import new file mode 100644 index 0000000..3c81384 --- /dev/null +++ b/godot/sounds/footstep04.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.oggstr" + +[deps] + +source_file="res://sounds/footstep04.ogg" +dest_files=[ "res://.import/footstep04.ogg-16226c305e1322a536cb96a2c537b228.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/sounds/footstep05.ogg b/godot/sounds/footstep05.ogg new file mode 100644 index 0000000..62b8dcc Binary files /dev/null and b/godot/sounds/footstep05.ogg differ diff --git a/godot/sounds/footstep05.ogg.import b/godot/sounds/footstep05.ogg.import new file mode 100644 index 0000000..6f85cf5 --- /dev/null +++ b/godot/sounds/footstep05.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.oggstr" + +[deps] + +source_file="res://sounds/footstep05.ogg" +dest_files=[ "res://.import/footstep05.ogg-ce0f0381235ebdd22319464e329eef5f.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/sounds/footstep06.ogg b/godot/sounds/footstep06.ogg new file mode 100644 index 0000000..9a0ec19 Binary files /dev/null and b/godot/sounds/footstep06.ogg differ diff --git a/godot/sounds/footstep06.ogg.import b/godot/sounds/footstep06.ogg.import new file mode 100644 index 0000000..6970d5d --- /dev/null +++ b/godot/sounds/footstep06.ogg.import @@ -0,0 +1,15 @@ +[remap] + +importer="ogg_vorbis" +type="AudioStreamOGGVorbis" +path="res://.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.oggstr" + +[deps] + +source_file="res://sounds/footstep06.ogg" +dest_files=[ "res://.import/footstep06.ogg-64d7f3763b27a0bf60b51adc0e13f809.oggstr" ] + +[params] + +loop=true +loop_offset=0 diff --git a/godot/theming/menu_font.tres b/godot/theming/menu_font.tres index 5c850e4..b44cf0e 100644 --- a/godot/theming/menu_font.tres +++ b/godot/theming/menu_font.tres @@ -3,4 +3,5 @@ [ext_resource path="res://theming/FreeMono.otf" type="DynamicFontData" id=1] [resource] +use_mipmaps = true font_data = ExtResource( 1 ) diff --git a/godot/ui/HUD.gd b/godot/ui/HUD.gd index 6c45113..9bbcae1 100644 --- a/godot/ui/HUD.gd +++ b/godot/ui/HUD.gd @@ -69,7 +69,6 @@ func update_characters(): for btn in character_list.get_children(): btn.queue_free() for character in world.get_node("PLAYERS").get_children(): - print(character.team) if world.player_team == character.team: var select_button = Button.new() select_button.connect("pressed", world, "select_character", [character.name]) diff --git a/godot/watershadertest.tscn b/godot/watershadertest.tscn new file mode 100644 index 0000000..2c370d9 --- /dev/null +++ b/godot/watershadertest.tscn @@ -0,0 +1,115 @@ +[gd_scene load_steps=10 format=2] + +[sub_resource type="Shader" id=1] +code = "shader_type spatial; +render_mode unshaded; + +uniform vec4 deep_color : hint_color; +uniform vec4 shallow_color : hint_color = vec4(1); + +uniform float refraction_speed = 0.25; +uniform float refraction_strength = 1.0; + +uniform float foam_amount = 1.0; +uniform float foam_cutoff = 1.0; +uniform vec4 foam_color : hint_color = vec4(1); + +uniform float displacement_strength = 0.25; + +uniform float depth_distance = 1.0; + +uniform vec2 movement_direction = vec2(1,0); + +uniform sampler2D refraction_noise : hint_normal; +uniform sampler2D foam_noise : hint_black_albedo; +uniform sampler2D displacement_noise : hint_black; + +void vertex() { + float displacement = textureLod( + displacement_noise, + UV + (TIME * movement_direction) * refraction_speed, + 0.0).r * 2.0 - 1.0; + + VERTEX.y += displacement * displacement_strength; +} + +void fragment() { + vec2 uv = SCREEN_UV + refraction_strength + * (texture(refraction_noise, UV + (TIME * movement_direction) * refraction_speed).rg + * 2.0 - 1.0); + + float real_depth = texture(DEPTH_TEXTURE, SCREEN_UV).r * 2.0 - 1.0; + real_depth = PROJECTION_MATRIX[3][2] / (real_depth + PROJECTION_MATRIX[2][2]) + VERTEX.z; + + // Get the raw linear depth from the depth texture into a [-1, 1] range + float depth = texture(DEPTH_TEXTURE, uv).r * 2.0 - 1.0; + // Recreate linear depth of the intersecting geometry using projection matrix, and subtract the vertex of the sphere + depth = PROJECTION_MATRIX[3][2] / (depth + PROJECTION_MATRIX[2][2]) + VERTEX.z; + + depth = max(depth, real_depth); + + float intersection = clamp(depth / foam_amount, 0, 1) * foam_cutoff; + + vec4 out_color = mix(shallow_color, deep_color, clamp((depth / depth_distance), 0, 1)); + vec4 scene_color = texture(SCREEN_TEXTURE, uv); + out_color = mix(scene_color, out_color, out_color.a); + + vec3 foam = step(intersection, + texture(foam_noise, UV + (TIME * movement_direction) * refraction_speed).rgb) + * foam_color.rgb; + + ALBEDO = out_color.rgb + foam; +}" + +[sub_resource type="OpenSimplexNoise" id=4] + +[sub_resource type="NoiseTexture" id=5] +flags = 3 +width = 1024 +height = 1024 +noise = SubResource( 4 ) + +[sub_resource type="OpenSimplexNoise" id=6] + +[sub_resource type="NoiseTexture" id=7] +width = 1024 +height = 1024 +noise = SubResource( 6 ) + +[sub_resource type="OpenSimplexNoise" id=8] + +[sub_resource type="NoiseTexture" id=9] +width = 1024 +height = 1024 +noise = SubResource( 8 ) + +[sub_resource type="ShaderMaterial" id=2] +shader = SubResource( 1 ) +shader_param/deep_color = Color( 0.00784314, 0, 0.196078, 1 ) +shader_param/shallow_color = Color( 0.65098, 1, 1, 1 ) +shader_param/refraction_speed = 0.25 +shader_param/refraction_strength = 1.0 +shader_param/foam_amount = 1.0 +shader_param/foam_cutoff = 1.0 +shader_param/foam_color = Color( 1, 1, 1, 1 ) +shader_param/displacement_strength = 0.25 +shader_param/depth_distance = 5.0 +shader_param/movement_direction = Vector2( 1, 0 ) +shader_param/refraction_noise = SubResource( 9 ) +shader_param/foam_noise = SubResource( 7 ) +shader_param/displacement_noise = SubResource( 5 ) + +[sub_resource type="PlaneMesh" id=3] +material = SubResource( 2 ) +subdivide_width = 512 +subdivide_depth = 512 + +[node name="Spatial" type="Spatial"] + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.182733, -0.0156302 ) +mesh = SubResource( 3 ) + +[node name="OmniLight" type="OmniLight" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.336934, 0 ) +omni_range = 0.949787 diff --git a/work/backup_stuff/Player.gd b/work/backup_stuff/Player.gd new file mode 100644 index 0000000..3555de5 --- /dev/null +++ b/work/backup_stuff/Player.gd @@ -0,0 +1,142 @@ +extends RigidBody + +###################-VARIABLES-#################### + +# Camera +export(float) var mouse_sensitivity = 12.0 +export(NodePath) var cam_path +export(NodePath) var ai_follower = null +export(float) var FOV = 90.0 +var mouse_axis := Vector2() +onready var cam: Camera = get_node(cam_path) +# Move +var velocity := Vector3() +var direction := Vector3() +var move_axis := Vector2() +# Walk +const FLOOR_MAX_ANGLE: float = deg2rad(46.0) +export(float) var gravity = 17.35 +export(float) var jump_height = 1.084 +var jump_vel = 5.89#sqrt(2 * gravity * jump_height) +var is_on_floor : bool = false +onready var feet = get_node("Feet") + +var controlling_vehicle = false +var vehicle = null + +export(float) var acceleration = 70 +export(int) var walk_speed = 6 +export(float) var _airspeed_cap = 1 +export(float) var air_control = 1 + +# Fly +export(int) var fly_speed = 50 +export(int) var fly_accel = 10 +var flying := false + +# Crouch +var is_duck = 0 +const duck_height = .5*.6*1.8 #one half the hitbox duck height +var duck_speed = 2.3 +var knockback_mult = 1 +var duck_progress = 0 + +var world + +# Shoot +var countdown = 0; +export(float) var firing_cooldown = .8 +export(Vector3) var snap + +static func compare_floats(a, b, epsilon = 0.00001): + return abs(a - b) <= epsilon + +func walk(delta): + knockback_mult = 1.35 if is_duck else 1 + #check if is on floor + if feet.is_colliding(): + is_on_floor = true + + # Duck + if not compare_floats(duck_progress, is_duck): + var h = $CollisionBox.get_shape().get_extents().y + var dir = -1 if is_duck else 1 + var dh = dir*duck_speed*state.step + var desh = duck_height if is_duck else 0.9 + if abs(h+dh - desh) < .05: + dh = desh-h + $CollisionBox.get_shape().set_extents(Vector3(.325,h+dh,.325)) + $CollisionBox.translate_object_local(Vector3(0,-dh/2,0)) + duck_progress = 1-(h+dh-duck_height)/(0.9-duck_height) + + # Input + direction = Vector3() + var aim: Basis = get_global_transform().basis + if move_axis.x >= 0.5: + direction -= aim.z + elif move_axis.x <= -0.5: + direction += aim.z + if move_axis.y <= -0.5: + direction -= aim.x + elif move_axis.y >= 0.5: + direction += aim.x + direction.y = 0 + direction = direction.normalized() + + # Jump + if is_on_floor: + snap = Vector3.DOWN + if Input.is_action_just_pressed("move_jump"): + snap = Vector3.ZERO + velocity.y += jump_vel + + velocity.y -= gravity * state.step + if abs(velocity.y) > 1: + snap = Vector3.ZERO + + + #max walk speed + var _speed = walk_speed if not is_duck else walk_speed*0.5 + + + var _temp_accel: float = acceleration + + + if not is_on_floor or Input.is_action_just_pressed("move_jump"): + _temp_accel *= air_control + else: #apply friction + var _cspeed = sqrt(pow(velocity.x,2)+pow(velocity.z,2)) + if _cspeed != 0: + var walkdir = Vector2(velocity.x,velocity.z) + var fvar = _cspeed*friction if direction.length() != 0 else _cspeed*2*friction + #fvar *= 4 if is_duck else 1 + velocity.x -= walkdir.normalized().x*fvar*state.step + velocity.z -= walkdir.normalized().y*fvar*state.step + + var projVel = Vector2(velocity.x,velocity.z).dot(Vector2(direction.x,direction.z)) + _temp_accel *= state.step + + if is_on_floor: + if _speed - (projVel + _temp_accel) > 0: + velocity.x += direction.x*_temp_accel + velocity.z += direction.z*_temp_accel + else: + velocity.x += direction.x*(_speed-projVel) + velocity.z += direction.z*(_speed-projVel) + elif _airspeed_cap - projVel > 0: + velocity.x += direction.x*_temp_accel + velocity.z += direction.z*_temp_accel + + # clamping (to stop on slopes) + if direction.dot(velocity) == 0: + var _vel_clamp := 0.25 + if abs(velocity.x) < _vel_clamp: + velocity.x = 0 + if abs(velocity.z) < _vel_clamp: + velocity.z = 0 + + # Move + print(velocity) + set_linear_velocity(velocity) + velocity = get_linear_velocity() + diff --git a/work/backup_stuff/Player.tscn b/work/backup_stuff/Player.tscn new file mode 100644 index 0000000..a68f994 --- /dev/null +++ b/work/backup_stuff/Player.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://backup_stuff/Player.gd" type="Script" id=1] + +[sub_resource type="CylinderShape" id=1] +height = 1.8 +radius = 0.4 + +[node name="Player" type="RigidBody"] +mode = 2 +mass = 80.0 +contacts_reported = 1 +contact_monitor = true +axis_lock_angular_x = true +axis_lock_angular_z = true +script = ExtResource( 1 ) +mouse_sensitivity = null +cam_path = null +ai_follower = null +FOV = null +gravity = null +jump_height = null +acceleration = null +walk_speed = null +_airspeed_cap = null +air_control = null +fly_speed = null +fly_accel = null +firing_cooldown = null +snap = null + +[node name="CollisionBox" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0 ) +shape = SubResource( 1 ) + +[node name="Camera" type="Camera" parent="."] +transform = Transform( 1, 0, 0, 0, 0.999973, -0.00740013, 0, 0.00740013, 0.999973, 0, 1.5, 0 ) +cull_mask = 524287 +near = 0.15 +far = 8192.0 + +[node name="UseRay" type="RayCast" parent="Camera"] +enabled = true +cast_to = Vector3( 0, 0, -2.5 ) +collision_mask = 131075 +collide_with_areas = true + +[node name="MeleeRay" type="RayCast" parent="Camera"] +enabled = true +cast_to = Vector3( 0, 0, -2.5 ) +collision_mask = 262145 +collide_with_areas = true + +[node name="Feet" type="RayCast" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.0608446, 0 ) +enabled = true +cast_to = Vector3( 0, -0.25, 0 ) diff --git a/work/backup_stuff/PlayerOld.tscn b/work/backup_stuff/PlayerOld.tscn new file mode 100644 index 0000000..f79339e --- /dev/null +++ b/work/backup_stuff/PlayerOld.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=3 format=2] + +[ext_resource path="res://backup_stuff/player_controller.gd" type="Script" id=1] + +[sub_resource type="BoxShape" id=1] +extents = Vector3( 0.325, 0.9, 0.325 ) + +[node name="Player" type="KinematicBody" groups=["units"]] +script = ExtResource( 1 ) +cam_path = NodePath("Camera") +jump_height = 2.0 +fly_speed = 10 + +[node name="CollisionBox" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0 ) +shape = SubResource( 1 ) + +[node name="Camera" type="Camera" parent="."] +transform = Transform( 1, 0, 0, 0, 0.999973, -0.00740013, 0, 0.00740013, 0.999973, 0, 1.5, 0 ) +cull_mask = 524287 +near = 0.15 +far = 8192.0 + +[node name="UseRay" type="RayCast" parent="Camera"] +enabled = true +cast_to = Vector3( 0, 0, -2.5 ) +collision_mask = 131075 +collide_with_areas = true + +[node name="MeleeRay" type="RayCast" parent="Camera"] +enabled = true +cast_to = Vector3( 0, 0, -100 ) +collision_mask = 262145 +collide_with_areas = true + +[node name="TugPoint" type="Spatial" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.30489, -1.57084 ) diff --git a/work/backup_stuff/Player_Other.gd b/work/backup_stuff/Player_Other.gd new file mode 100644 index 0000000..0116d71 --- /dev/null +++ b/work/backup_stuff/Player_Other.gd @@ -0,0 +1,219 @@ +extends KinematicBody + + +export(String, "red", "blue") var team +#item variables +var can_swap = true +var has_items = [false,false,false,false,false] +var items = [null,null,null,null,null] +export(String) var item0path +export(String) var item1path +export(String) var item2path +export(String) var item3path +export(String) var item4path +var weapon +export(int) var health = 100 + +var unit + +var move_axis := Vector2() +var velocity := Vector3() +var direction := Vector3() +var parentvel := Vector3() +var tugging = false +var tug_target + +export(float) var friction = 4 +export(float) var _airspeed_cap = 1 + +var is_duck = 0 +const duck_height = .5*.6*1.8 #one half the hitbox duck height +var duck_speed = 2.3 +var knockback_mult = 1 +var duck_progress = 0 + +var can_switch = true + + +const gravity = 9.8 +const FLOOR_MAX_ANGLE: float = deg2rad(46.0) +const jump_constant = 12 +const walk_speed = 6 +const tug_speed = 1.5 +const acceleration = 70 +const air_control = 0.3 +const tug_force = 500 +const tug_distance = 3.5 +const push_distance = 1 +const duck_knockback_mult = 1.35 +const jump_vel = 5 + +static func compare_floats(a, b, epsilon = 0.00001): + return abs(a - b) <= epsilon + +# Called when the node enters the scene tree for the first time. +func _ready(): + $Camera/UseRay.add_exception(self) + $Camera/MeleeRay.add_exception(self) + + +func damage(amount, attacker, point = Vector3.ZERO): + health -= amount + rpc("update_health",health) + if health <= 0: + if is_network_master(): + get_node("/root/Game/Camera").current = true + rpc("die") + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + if is_network_master() and !get_node('/root/Game/HUD/Selection').is_visible_in_tree(): + if Input.is_action_just_pressed("use"): + pass + move_axis.x = Input.get_action_strength("walk_forward") - Input.get_action_strength("walk_backward") + move_axis.y = Input.get_action_strength("strafe_right") - Input.get_action_strength("strafe_left") + is_duck = Input.get_action_strength("duck") + if Input.is_action_just_pressed("attack1"): + weapon.attack() + if Input.is_action_just_pressed("attack2"): + weapon.attack2() + if Input.is_action_just_pressed("slot1"): + rpc('switch_weapon',0) + if Input.is_action_just_pressed("slot2"): + rpc('switch_weapon',1) + +func initiate_use(): + if tugging: + tugging = false + elif $Camera/UseRay.is_colliding(): + var type = $Camera/UseRay.get_collider().name + match type: + "TugArea": + tugging = true + tug_target = $Camera/UseRay.get_collider().get_parent() + _: + pass + +func check_tug(): + if !$Camera/UseRay.is_colliding() or !($Camera/UseRay.get_collider().name != tug_target.name): + tugging = false + +func _physics_process(delta): + if is_network_master() or (get_tree().get_network_unique_id() == 1 and get_network_master() == -1): + if is_network_master(): + player_move(delta) + else: + ai_move(delta) + rpc("_set_position", global_transform) + +remotesync func update_health(new_h): + health = new_h + if is_network_master(): + get_tree().get_root().get_node('Game/HUD/Health').text = str(health) + +func ai_move(delta): + if !is_on_floor(): + velocity.y -= gravity * delta + move_and_slide(velocity,Vector3.UP) + +func player_move(delta): + # Input + direction = Vector3() + var aim: Basis = get_global_transform().basis + if move_axis.x >= 0.5: + direction -= aim.z + elif move_axis.x <= -0.5: + direction += aim.z + if move_axis.y <= -0.5: + direction -= aim.x + elif move_axis.y >= 0.5: + direction += aim.x + direction.y = 0 + direction = direction.normalized() + + # Jump + var snap = Vector3.ZERO + if is_on_floor(): + snap = Vector3.DOWN + if Input.is_action_just_pressed("jump"): + snap = Vector3.ZERO + velocity.y += jump_vel + else: + velocity += parentvel + + velocity.y -= gravity * delta + if abs(velocity.y) > 1: + snap = Vector3.ZERO + + #max walk speed + var _speed = walk_speed if not is_duck else walk_speed*0.5 + + var _temp_accel: float = acceleration + + if is_on_floor(): + var _cspeed = sqrt(pow(velocity.x,2)+pow(velocity.z,2)) + if _cspeed != 0: + var walkdir = Vector2(velocity.x,velocity.z) + var fvar = _cspeed*friction if direction.length() != 0 else _cspeed*2*friction + #fvar *= 4 if is_duck else 1 + velocity.x -= walkdir.normalized().x*fvar*delta + velocity.z -= walkdir.normalized().y*fvar*delta + animationcontroller.rpc("run",_cspeed/walk_speed) + else: + animationcontroller.rpc("run",0) + #rpc("_play_animation",false,"idle_single") + + var projVel = Vector2(velocity.x,velocity.z).dot(Vector2(direction.x,direction.z)) + _temp_accel *= delta + + if is_on_floor(): + + if _speed - (projVel + _temp_accel) > 0: + velocity.x += direction.x*_temp_accel + velocity.z += direction.z*_temp_accel + else: + velocity.x += direction.x*(_speed-projVel) + velocity.z += direction.z*(_speed-projVel) + elif _airspeed_cap - projVel > 0: + velocity.x += direction.x*_temp_accel + velocity.z += direction.z*_temp_accel + + # clamping (to stop on slopes) + if direction.dot(velocity) == 0: + var _vel_clamp := 0.25 + if abs(velocity.x) < _vel_clamp: + velocity.x = 0 + if abs(velocity.z) < _vel_clamp: + velocity.z = 0 + + # Move + var moving = move_and_slide_with_snap(velocity, snap, Vector3.UP, false, 4, FLOOR_MAX_ANGLE) + if is_on_wall(): + velocity = moving + else: + velocity.y = moving.y + +remotesync func die(): + get_node("/root/Game").update_chars_delay() + queue_free() + + +remote func _set_position(pos): + global_transform = pos +#set net master of this player to the id +func _set_master(id): + if get_network_master() == -1: + $Camera.current = true + $Armature/Skeleton/Cube.set_layer_mask(524288) + for unit in get_tree().get_nodes_in_group("units"): + if unit.get_network_master() == id: + unit.rpc("_set_master_helper",-1) + #nit.set_network_master(-1) + rpc("_set_master_helper", id) +remotesync func _set_master_helper(id): + set_network_master(id) + update_health(health) + if id == -1: + $Armature/Skeleton/Cube.set_layer_mask(1) + get_node("/root/Game").update_chars() diff --git a/work/backup_stuff/Sailor.gd b/work/backup_stuff/Sailor.gd new file mode 100644 index 0000000..24b93f9 --- /dev/null +++ b/work/backup_stuff/Sailor.gd @@ -0,0 +1,43 @@ +extends KinematicBody + + +# Declare member variables here. Examples: +# var a = 2 +# var b = "text" +export(NodePath) var parent_vehicle = null +#onready var nav_agent : NavigationAgent = get_node("NavigationAgent") +var parent_vehicle_nav = null + +var destination = Vector3.ZERO +var closest_point = Vector3.ZERO +var direction = Vector3.ZERO +var path = null +var pathfinding = false + +const speed = 5 +var velocity = Vector3.ZERO + + +# Called when the node enters the scene tree for the first time. +func _ready(): + if parent_vehicle != null: + parent_vehicle = get_node(parent_vehicle) + parent_vehicle_nav = parent_vehicle.get_node("Navigation") + #nav_agent.set_navigation(parent_vehicle_nav) + +func update_destination(new_dest): + pass#nav_agent.set_target_location(new_dest) + +func move(delta): + var target = Vector3.ZERO#nav_agent.get_next_location() + var direction : Vector3 = (target - global_transform.origin).normalized() * speed + velocity.y -= 9.8*delta + velocity.x = direction.normalized().x*speed + velocity.z = direction.normalized().z*speed + #nav_agent.set_velocity(Vector3(velocity.x,0,velocity.z)) + velocity = move_and_slide(velocity, Vector3.UP, true, 4, 0.785, false) + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _physics_process(delta): + move(delta) diff --git a/work/backup_stuff/Sailor.tscn b/work/backup_stuff/Sailor.tscn new file mode 100644 index 0000000..6458fec --- /dev/null +++ b/work/backup_stuff/Sailor.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=4 format=2] + +[ext_resource path="res://backup_stuff/Sailor.gd" type="Script" id=1] + +[sub_resource type="BoxShape" id=1] +extents = Vector3( 0.325, 0.9, 0.325 ) + +[sub_resource type="CubeMesh" id=2] +size = Vector3( 0.625, 1.8, 0.625 ) + +[node name="Sailor" type="KinematicBody"] +collision/safe_margin = 0.01 +script = ExtResource( 1 ) + +[node name="CollisionShape" type="CollisionShape" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.937097, 0 ) +shape = SubResource( 1 ) + +[node name="MeshInstance" type="MeshInstance" parent="."] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.937097, 0 ) +mesh = SubResource( 2 ) + +[node name="NavigationAgent" type="NavigationAgent" parent="."] +target_desired_distance = 3.52 +agent_height_offset = 0.1 +radius = 0.5 +max_speed = 5.0 diff --git a/work/backup_stuff/player_controller.gd b/work/backup_stuff/player_controller.gd new file mode 100644 index 0000000..f52decf --- /dev/null +++ b/work/backup_stuff/player_controller.gd @@ -0,0 +1,282 @@ +extends KinematicBody + +###################-VARIABLES-#################### + +# Camera +export(float) var mouse_sensitivity = 12.0 +export(NodePath) var cam_path +export(NodePath) var ai_follower = null +export(float) var FOV = 90.0 +var mouse_axis := Vector2() +onready var cam: Camera = get_node(cam_path) +# Move +var velocity := Vector3() +var direction := Vector3() +var move_axis := Vector2() +# Walk +const FLOOR_MAX_ANGLE: float = deg2rad(46.0) +export(float) var gravity = 17.35 +export(float) var jump_height = 1.084 +var jump_vel = 5.89#sqrt(2 * gravity * jump_height) + +var has_control = true +var vehicle = null + +export(float) var acceleration = 70 +export(int) var walk_speed = 6 +export(float) var _airspeed_cap = 1 +export(float) var friction = 4 +export(float) var air_control = 1 + +var grappling = false +var grapple_length = 0 +var grapple_point = Vector3.ZERO + +# Fly +export(int) var fly_speed = 50 +export(int) var fly_accel = 10 +var flying := false + +# Crouch +var is_duck = 0 +const duck_height = .5*.6*1.8 #one half the hitbox duck height +var duck_speed = 2.3 +var knockback_mult = 1 +var duck_progress = 0 + +var world + +# Shoot +var countdown = 0; +export(float) var firing_cooldown = .8 +export(Vector3) var snap + + +################################################## + +# Called when the node enters the scene tree +func _ready() -> void: + if ai_follower != null: + ai_follower = get_node(ai_follower) + flying = true + Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) + cam.fov = FOV + $Camera/UseRay.add_exception(self) + $Camera/MeleeRay.add_exception(self) + world = get_parent() + + +# Called every frame. 'delta' is the elapsed time since the previous frame +func _process(_delta: float) -> void: + if Input.is_action_just_pressed("use"): + initiate_use() + if !has_control: + return + if Input.is_action_just_pressed("fly"): + flying = !flying + if Input.is_action_just_pressed("fire"): + if $Camera/MeleeRay.is_colliding(): + grappling = true + grapple_point = $Camera/MeleeRay.get_collision_point() + grapple_length = (grapple_point-global_transform.origin).length() + 1 + elif Input.is_action_just_released("fire"): + grappling = false + if Input.is_action_just_pressed("altfire"): + cam.fov = 20 if cam.fov == FOV else FOV + if countdown > 0: + countdown -= _delta + move_axis.x = Input.get_action_strength("move_forward") - Input.get_action_strength("move_backward") + move_axis.y = Input.get_action_strength("move_right") - Input.get_action_strength("move_left") + is_duck = Input.get_action_strength("duck") + + +# Called every physics tick. 'delta' is constant +func _physics_process(delta: float) -> void: + if !has_control: + move_axis = Vector2.ZERO + if flying: + fly(delta) + else: + walk(delta) + +static func compare_floats(a, b, epsilon = 0.00001): + return abs(a - b) <= epsilon + +func regain_control(gt): + #world.add_child(self) + global_transform.origin = gt + has_control = true + vehicle = null + +func initiate_use(): + if !has_control: + vehicle.relinquish_control() + return + if $Camera/UseRay.is_colliding(): + var type = $Camera/UseRay.get_collider().name + match type: + "SteerArea": + if flying or $Camera/UseRay.get_collider().get_parent().is_in_use(): + return + has_control = false + vehicle = $Camera/UseRay.get_collider().get_parent().take_control(self) + var gt = global_transform.origin + velocity = Vector3.ZERO + #get_parent().remove_child(self) + #vehicle.add_child(self) + global_transform.origin = gt + _: + pass + +# Called when there is an input event +func _input(event: InputEvent) -> void: + if event is InputEventMouseMotion: + mouse_axis = event.relative + camera_rotation() + + +func walk(delta: float) -> void: + knockback_mult = 1.35 if is_duck else 1 + if grappling: + var grapple_vec = global_transform.origin - grapple_point + var grapple_dist = grapple_vec.length() + if grapple_dist >= grapple_length: + velocity -= grapple_vec.dot(velocity)*grapple_vec/(grapple_dist*grapple_dist) + var v = velocity.abs() + velocity -= grapple_vec.normalized()*delta*v*v/grapple_dist + # Duck + if not compare_floats(duck_progress, is_duck): + var h = $CollisionBox.get_shape().get_extents().y + var dir = -1 if is_duck else 1 + var dh = dir*duck_speed*delta + var desh = duck_height if is_duck else 0.9 + if abs(h+dh - desh) < .05: + dh = desh-h + $CollisionBox.get_shape().set_extents(Vector3(.325,h+dh,.325)) + $CollisionBox.translate_object_local(Vector3(0,-dh/2,0)) + duck_progress = 1-(h+dh-duck_height)/(0.9-duck_height) + + # Input + direction = Vector3() + var aim: Basis = get_global_transform().basis + if move_axis.x >= 0.5: + direction -= aim.z + elif move_axis.x <= -0.5: + direction += aim.z + if move_axis.y <= -0.5: + direction -= aim.x + elif move_axis.y >= 0.5: + direction += aim.x + direction.y = 0 + direction = direction.normalized() + + # Jump + if is_on_floor(): + snap = Vector3.DOWN + if Input.is_action_just_pressed("move_jump"): + snap = Vector3.ZERO + velocity.y += jump_vel + + velocity.y -= gravity * delta + if abs(velocity.y) > 1: + snap = Vector3.ZERO + + + #max walk speed + var _speed = walk_speed if not is_duck else walk_speed*0.5 + + + var _temp_accel: float = acceleration + + + if not is_on_floor() or Input.is_action_just_pressed("move_jump"): + _temp_accel *= air_control + else: #apply friction + var _cspeed = sqrt(pow(velocity.x,2)+pow(velocity.z,2)) + if _cspeed != 0: + var walkdir = Vector2(velocity.x,velocity.z) + var fvar = _cspeed*friction if direction.length() != 0 else _cspeed*2*friction + #fvar *= 4 if is_duck else 1 + velocity.x -= walkdir.normalized().x*fvar*delta + velocity.z -= walkdir.normalized().y*fvar*delta + + var projVel = Vector2(velocity.x,velocity.z).dot(Vector2(direction.x,direction.z)) + _temp_accel *= delta + + if is_on_floor(): + if _speed - (projVel + _temp_accel) > 0: + velocity.x += direction.x*_temp_accel + velocity.z += direction.z*_temp_accel + else: + velocity.x += direction.x*(_speed-projVel) + velocity.z += direction.z*(_speed-projVel) + elif _airspeed_cap - projVel > 0: + velocity.x += direction.x*_temp_accel + velocity.z += direction.z*_temp_accel + + + + + # clamping (to stop on slopes) + if direction.dot(velocity) == 0: + var _vel_clamp := 0.25 + if abs(velocity.x) < _vel_clamp: + velocity.x = 0 + if abs(velocity.z) < _vel_clamp: + velocity.z = 0 + + # Move + var landed = is_on_floor() == false + #remove_collision_exception_with(rigid_body) + var moving = move_and_slide_with_snap(velocity, snap,Vector3.UP, true, 4, FLOOR_MAX_ANGLE, false) + landed = landed and is_on_floor() +# if is_on_wall(): +# #velocity.x = moving.x +# #velocity.z = moving.z +# velocity = moving + if landed: + velocity -= get_slide_collision(0).collider_velocity + else: + velocity = moving + + + +func fly(delta: float) -> void: + # Input + direction = Vector3() + var aim = cam.get_global_transform().basis + if move_axis.x >= 0.5: + direction -= aim.z + elif move_axis.x <= -0.5: + direction += aim.z + if move_axis.y <= -0.5: + direction -= aim.x + elif move_axis.y >= 0.5: + direction += aim.x + direction = direction.normalized() + + # Acceleration and Deacceleration + var target: Vector3 = direction * 300 + velocity = velocity.linear_interpolate(target, fly_accel * delta) + + # Move + velocity = move_and_slide(velocity, Vector3.UP, false, 4, 45.0, false) + + +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() + + 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 + diff --git a/work/man.blend b/work/man.blend new file mode 100644 index 0000000..db5f065 Binary files /dev/null and b/work/man.blend differ diff --git a/work/man.blend1 b/work/man.blend1 new file mode 100644 index 0000000..4e7a2e2 Binary files /dev/null and b/work/man.blend1 differ -- cgit v1.2.3