summaryrefslogtreecommitdiff
path: root/src/player_controller/playercontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/player_controller/playercontroller.cpp')
-rw-r--r--src/player_controller/playercontroller.cpp44
1 files changed, 22 insertions, 22 deletions
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;