diff options
| -rw-r--r-- | godot/bin/playercam._gdnlib (renamed from godot/bin/playercam.gdnlib) | 0 | ||||
| -rw-r--r-- | godot/bin/playercam.gdns | 2 | ||||
| -rw-r--r-- | godot/bin/playercontroller.gdnlib | 14 | ||||
| -rw-r--r-- | godot/bin/playercontroller.gdns | 8 | ||||
| -rwxr-xr-x | godot/bin/x11/libplayercontroller.so | bin | 0 -> 5260784 bytes | |||
| -rw-r--r-- | godot/maps/Main.tscn | 133 | ||||
| -rw-r--r-- | godot/scenes/GameBase.tscn | 2 | ||||
| -rw-r--r-- | godot/scripts/GameBase.gd | 6 | ||||
| -rw-r--r-- | godot/scripts/characters/player_controller_new.gd | 1 | ||||
| -rw-r--r-- | godot/ui/HUD.gd | 1 | ||||
| -rw-r--r-- | src/player_controller/.sconsign.dblite | bin | 27268 -> 44397 bytes | |||
| -rw-r--r-- | src/player_controller/gdlibrary.os | bin | 406904 -> 243200 bytes | |||
| -rw-r--r-- | src/player_controller/playercam.os | bin | 413784 -> 248864 bytes | |||
| -rw-r--r-- | src/player_controller/playercontroller.cpp | 44 | ||||
| -rw-r--r-- | src/player_controller/playercontroller.os | bin | 0 -> 578072 bytes |
15 files changed, 170 insertions, 41 deletions
diff --git a/godot/bin/playercam.gdnlib b/godot/bin/playercam._gdnlib index 105b98f..105b98f 100644 --- a/godot/bin/playercam.gdnlib +++ b/godot/bin/playercam._gdnlib diff --git a/godot/bin/playercam.gdns b/godot/bin/playercam.gdns index a3ca832..46fa989 100644 --- a/godot/bin/playercam.gdns +++ b/godot/bin/playercam.gdns @@ -1,6 +1,6 @@ [gd_resource type="NativeScript" load_steps=2 format=2] -[ext_resource path="res://bin/playercam.gdnlib" type="GDNativeLibrary" id=1] +[ext_resource path="res://bin/playercontroller.gdnlib" type="GDNativeLibrary" id=1] [resource] resource_name = "playercam" diff --git a/godot/bin/playercontroller.gdnlib b/godot/bin/playercontroller.gdnlib new file mode 100644 index 0000000..e252d30 --- /dev/null +++ b/godot/bin/playercontroller.gdnlib @@ -0,0 +1,14 @@ +[general] + +singleton=false +load_once=true +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 new file mode 100644 index 0000000..eaf0649 --- /dev/null +++ b/godot/bin/playercontroller.gdns @@ -0,0 +1,8 @@ +[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/libplayercontroller.so b/godot/bin/x11/libplayercontroller.so Binary files differnew file mode 100755 index 0000000..7297917 --- /dev/null +++ b/godot/bin/x11/libplayercontroller.so diff --git a/godot/maps/Main.tscn b/godot/maps/Main.tscn index 2575195..ce69f18 100644 --- a/godot/maps/Main.tscn +++ b/godot/maps/Main.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=24 format=2] +[gd_scene load_steps=23 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] @@ -13,7 +13,6 @@ [ext_resource path="res://scenes/environment/Ladder.tscn" type="PackedScene" id=12] [ext_resource path="res://scenes/worldprops/Runway.tscn" type="PackedScene" id=13] [ext_resource path="res://scenes/vehicles/Airplane.tscn" type="PackedScene" id=14] -[ext_resource path="res://scenes/vehicles/Gunbrig.tscn" type="PackedScene" id=15] [sub_resource type="PhysicsMaterial" id=17] resource_local_to_scene = true @@ -93,21 +92,6 @@ transform = Transform( -0.854422, 0, 0.519579, 0, 1, 0, -0.519579, 0, -0.854422, [node name="Airplane" parent="MACHINES" instance=ExtResource( 14 )] transform = Transform( -4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 30.8999, 5.13129, -8.23008 ) -[node name="Gunbrig" parent="MACHINES" instance=ExtResource( 15 )] -transform = Transform( 0.0568323, 0, -0.998384, 0, 1, 0, 0.998384, 0, 0.0568323, -34.0193, 0.974679, -14.3304 ) - -[node name="Gunbrig2" parent="MACHINES" instance=ExtResource( 15 )] -transform = Transform( 0.0568323, 0, -0.998384, 0, 1, 0, 0.998384, 0, 0.0568323, -47.9628, 0.974679, -14.3304 ) - -[node name="Gunbrig3" parent="MACHINES" instance=ExtResource( 15 )] -transform = Transform( 0.0568323, 0, -0.998384, 0, 1, 0, 0.998384, 0, 0.0568323, -64.1506, 0.974679, -14.3304 ) - -[node name="Gunbrig4" parent="MACHINES" instance=ExtResource( 15 )] -transform = Transform( 0.0568323, 0, -0.998384, 0, 1, 0, 0.998384, 0, 0.0568323, -76.9425, 0.974679, -14.3304 ) - -[node name="Gunbrig5" parent="MACHINES" instance=ExtResource( 15 )] -transform = Transform( 0.0568323, 0, -0.998384, 0, 1, 0, 0.998384, 0, 0.0568323, -90.1824, 0.974679, -14.3304 ) - [node name="BALLISTICS" type="Spatial" parent="."] [node name="PLAYERS" type="Spatial" parent="."] @@ -158,6 +142,121 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 5.30355, 7.43823, -0.851583 ) physics_material_override = SubResource( 19 ) can_sleep = false +[node name="Player14" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.95018, 7.43823, -0.851583 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player15" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2.95018, 7.43823, -3.20183 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player16" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.87781, 7.43823, -3.20183 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player17" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.87781, 7.43823, 3.13773 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player18" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7.0239, 7.43823, 3.13773 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player19" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -7.0239, 7.43823, -0.817495 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player20" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.12393, 7.43823, -0.224145 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player21" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.12393, 7.43823, 2.2347 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player22" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.38949, 7.43823, 0.619112 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player23" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -3.38949, 7.43823, 5.61911 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player24" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -6.42406, 7.43823, 4.66007 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player25" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.20856, 7.43823, 7.0694 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player26" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -9.76747, 7.43823, 4.50223 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player27" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -11.5136, 7.43823, 6.91273 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player28" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -6.33851, 7.43823, 11.0765 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player29" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.96565, 7.43823, 8.55268 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player30" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -8.96565, 7.43823, 9.55268 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player31" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -12.9657, 7.43823, 2.55268 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player32" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.41254, 7.43823, -1.05999 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player33" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.376633, 7.43823, 6.84529 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player34" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.14765, 7.43823, 12.3432 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player35" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -5.14397, 7.43823, 13.8279 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + +[node name="Player36" parent="PLAYERS" instance=ExtResource( 5 )] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4609, 7.43823, 15.8727 ) +physics_material_override = SubResource( 19 ) +can_sleep = false + [node name="Player6" parent="PLAYERS" instance=ExtResource( 5 )] transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0.47871, 6.03278, -0.287899 ) physics_material_override = SubResource( 19 ) diff --git a/godot/scenes/GameBase.tscn b/godot/scenes/GameBase.tscn index 2f603e2..6764b81 100644 --- a/godot/scenes/GameBase.tscn +++ b/godot/scenes/GameBase.tscn @@ -3,7 +3,7 @@ [ext_resource path="res://scenes/environment/Water.tscn" type="PackedScene" id=1] [ext_resource path="res://ui/HUD.tscn" type="PackedScene" id=2] [ext_resource path="res://scripts/GameBase.gd" type="Script" id=3] -[ext_resource path="res://bin/playercam.gdns" type="Script" id=4] +[ext_resource path="res://scripts/cameras/PlayerCamGDS.gd" type="Script" id=4] [node name="GAMEWORLD" type="Spatial"] script = ExtResource( 3 ) diff --git a/godot/scripts/GameBase.gd b/godot/scripts/GameBase.gd index 89d457b..cff8bf4 100644 --- a/godot/scripts/GameBase.gd +++ b/godot/scripts/GameBase.gd @@ -114,3 +114,9 @@ func get_client_id() -> int: func is_chatting_f() -> bool: return is_chatting + +func get_players_info(id: int, index: int) -> String: + return players_info[id][index] + +func set_player_char(character: RigidBody) -> void: + player_char = character diff --git a/godot/scripts/characters/player_controller_new.gd b/godot/scripts/characters/player_controller_new.gd index bc41842..a6a0827 100644 --- a/godot/scripts/characters/player_controller_new.gd +++ b/godot/scripts/characters/player_controller_new.gd @@ -188,6 +188,7 @@ func _integrate_forces(state: PhysicsDirectBodyState) -> void: rpc("damage", 500000, "drown", [1, "Davy Jones"]) func walk(_delta: float) -> void: + return # Input direction = Vector3() var aim: Basis = head.get_global_transform().basis diff --git a/godot/ui/HUD.gd b/godot/ui/HUD.gd index 9bbcae1..6c45113 100644 --- a/godot/ui/HUD.gd +++ b/godot/ui/HUD.gd @@ -69,6 +69,7 @@ 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/src/player_controller/.sconsign.dblite b/src/player_controller/.sconsign.dblite Binary files differindex 577a41d..fdbad93 100644 --- a/src/player_controller/.sconsign.dblite +++ b/src/player_controller/.sconsign.dblite diff --git a/src/player_controller/gdlibrary.os b/src/player_controller/gdlibrary.os Binary files differindex c984489..c357e6f 100644 --- a/src/player_controller/gdlibrary.os +++ b/src/player_controller/gdlibrary.os diff --git a/src/player_controller/playercam.os b/src/player_controller/playercam.os Binary files differindex 2b88b46..629e608 100644 --- a/src/player_controller/playercam.os +++ b/src/player_controller/playercam.os diff --git a/src/player_controller/playercontroller.cpp b/src/player_controller/playercontroller.cpp index 6ea5544..e14aa5e 100644 --- a/src/player_controller/playercontroller.cpp +++ b/src/player_controller/playercontroller.cpp @@ -126,7 +126,7 @@ void PlayerController::set_net_owner(int owner_id) { nametag->set_text(""); set_network_master(owner_id); if(owner_id != 1) - nametag->set_text(String(world->call("get_players_info")[owner_id][0])); + nametag->set_text(String(world->call("get_players_info", owner_id, 0))); if(get_tree()->get_network_unique_id() != 1){ if(owner_id == (int)world->call("get_client_id")){ nametag->set_visible(false); @@ -143,7 +143,7 @@ void PlayerController::set_net_owner(int owner_id) { void PlayerController::deselect_character() { if(is_network_master()){ - world->call("set_player_char", nullptr); + world->call("set_player_char", "NULL"); if((int)world->call("get_client_id") != 1)cam->attach(world, "STATIC", "./DEFAULTCAM"); rpc("set_net_owner", 1); } @@ -177,12 +177,12 @@ bool PlayerController::on_floor_test() { if(feet->is_colliding()){ is_on_floor = true; floor_normal = Vector3::UP; - floorspeed = feet->get_collider()->has_method("get_linear_velocity") ? feet->get_collider()->get_linear_velocity() : Vector3::ZERO; + floorspeed = feet->get_collider()->has_method("get_linear_velocity") ? ((RigidBody *)(feet->get_collider()))->get_linear_velocity() : Vector3::ZERO; return true; } if(player_state){ - for(int i = 0;i< player_state->get_contact_count()) { - float contact_angle_from_up = Vector3::UP.angle_to(player_state->get_contact_local_normal(i)) + for(int i = 0;i< player_state->get_contact_count(); i++) { + float contact_angle_from_up = Vector3::UP.angle_to(player_state->get_contact_local_normal(i)); if(contact_angle_from_up < FLOOR_MAX_ANGLE) { floor_normal = player_state->get_contact_local_normal(i); is_on_floor = true; @@ -203,12 +203,12 @@ void PlayerController::_integrate_forces(PhysicsDirectBodyState *state) { set_friction(0); break; } - if(i == player_state.get_contact_count() - 1) + if(i == (player_state->get_contact_count() - 1)) set_friction(1); } rpc("set_phys_transform", get_transform(), get_linear_velocity()); if(get_global_transform().origin.y < -30) - rpc("damage", 500000, "drown", Array::make(1, String("Davy Jones")); + rpc("damage", 500000, "drown", Array::make(1, String("Davy Jones"))); } void PlayerController::walk(float _delta) { @@ -236,15 +236,15 @@ void PlayerController::walk(float _delta) { void PlayerController::jump() { can_jump = false; - apply_central_impulse(Vector3.UP*jump_height); - yield(get_tree().create_timer(0.05),"timeout"); + apply_central_impulse(Vector3::UP*jump_height); + //Godot::yield(get_tree().create_timer(0.05),"timeout"); can_jump = true; } void PlayerController::swim(float _delta) { // #drag and buoyancy - add_central_force(Vector3::UP*weight); - add_central_force(-100*linear_velocity); + add_central_force(Vector3::UP*get_weight()); + add_central_force(-100*get_linear_velocity()); // #controls Basis dir = head->get_global_transform().basis; Vector3 m_dir = -move_axis.x * dir.z + move_axis.y * dir.x; @@ -262,32 +262,32 @@ void PlayerController::exit_water() { } void PlayerController::mount_ladder(Spatial *target_ladder) { - Spatial *ladder_tracker = Spatial::new(); - ladder_tracker->name = get_name(); + Spatial *ladder_tracker = Spatial::_new(); + ladder_tracker->set_name(get_name()); target_ladder->add_child(ladder_tracker); - ladder_tracker->set_transform(target_ladder->get_node<Spatial>("BOTTOM")->get_transform(); + ladder_tracker->set_transform(target_ladder->get_node<Spatial>("BOTTOM")->get_transform()); - ladder_tracker->set_global_transform( Transform(target_ladder->call("get_nearest_point_to_route", get_global_transform().origin), ladder_tracker->get_global_transform().basis ) ); - look_at(get_global_transform().origin + target_ladder->get_global_transform().basis.x, target_ladder->get_global_transform().basis.y) + ladder_tracker->set_global_transform( Transform( ladder_tracker->get_global_transform().basis, (Vector3)target_ladder->call("get_nearest_point_to_route", get_global_transform().origin)) ); + look_at(get_global_transform().origin + target_ladder->get_global_transform().basis.x, target_ladder->get_global_transform().basis.y); ladder_m = ladder_tracker; Transform t = ladder_m->get_global_transform(); - set_global_transform( Transform(t.origin, t.basis.orthonormalized())); + set_global_transform( Transform(t.basis.orthonormalized(), t.origin)); set_linear_velocity(Vector3::ZERO); set_gravity_scale(0.0); } void PlayerController::climb_ladder(float delta) { Vector3 new_ladder_pos = ladder_m->get_global_transform().origin + ladder_m->get_global_transform().basis.y.normalized() * move_axis.x * delta * climb_speed; - float prog = ladder_m->get_parent()->call("get_climb_scalar", new_ladder_pos) - if(prog >= 0.0 and && <= 1.0) - ladder_m->set_global_transform(Transform(new_ladder_pos, ladder_m->get_global_transform().basis)); + float prog = ladder_m->get_parent()->call("get_climb_scalar", new_ladder_pos); + if(prog >= 0.0 && prog <= 1.0) + ladder_m->set_global_transform(Transform(ladder_m->get_global_transform().basis, new_ladder_pos)); Transform t = ladder_m->get_global_transform(); - set_global_transform( Transform(t.origin, t.basis.orthonormalized())); + set_global_transform( Transform(t.basis.orthonormalized(), t.origin )); } void PlayerController::leave_ladder() { - if((ladder_m->get_parent()->get_node<Spatial>("TOP")->global_transform.origin - get_global_transform().origin).length_squared() < 0.01) + if((ladder_m->get_parent()->get_node<Spatial>("TOP")->get_global_transform().origin - get_global_transform().origin).length_squared() < 0.01) apply_central_impulse(-400*ladder_m->get_global_transform().basis.z); Transform t = get_global_transform(); t.basis = world->get_global_transform().basis; diff --git a/src/player_controller/playercontroller.os b/src/player_controller/playercontroller.os Binary files differnew file mode 100644 index 0000000..9630000 --- /dev/null +++ b/src/player_controller/playercontroller.os |
