Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make CharacterBody properties public #87167

Merged
merged 1 commit into from
Jan 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 38 additions & 38 deletions scene/2d/physics_body_2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -362,44 +362,6 @@ class CharacterBody2D : public PhysicsBody2D {
int get_slide_collision_count() const;
PhysicsServer2D::MotionResult get_slide_collision(int p_bounce) const;

CharacterBody2D();
~CharacterBody2D();

private:
real_t margin = 0.08;
MotionMode motion_mode = MOTION_MODE_GROUNDED;
PlatformOnLeave platform_on_leave = PLATFORM_ON_LEAVE_ADD_VELOCITY;

bool floor_constant_speed = false;
bool floor_stop_on_slope = true;
bool floor_block_on_wall = true;
bool slide_on_ceiling = true;
int max_slides = 4;
int platform_layer = 0;
real_t floor_max_angle = Math::deg_to_rad((real_t)45.0);
real_t floor_snap_length = 1;
real_t wall_min_slide_angle = Math::deg_to_rad((real_t)15.0);
Vector2 up_direction = Vector2(0.0, -1.0);
uint32_t platform_floor_layers = UINT32_MAX;
uint32_t platform_wall_layers = 0;
Vector2 velocity;

Vector2 floor_normal;
Vector2 platform_velocity;
Vector2 wall_normal;
Vector2 last_motion;
Vector2 previous_position;
Vector2 real_velocity;

RID platform_rid;
ObjectID platform_object_id;
bool on_floor = false;
bool on_ceiling = false;
bool on_wall = false;

Vector<PhysicsServer2D::MotionResult> motion_results;
Vector<Ref<KinematicCollision2D>> slide_colliders;

void set_safe_margin(real_t p_margin);
real_t get_safe_margin() const;

Expand Down Expand Up @@ -439,6 +401,44 @@ class CharacterBody2D : public PhysicsBody2D {
void set_platform_on_leave(PlatformOnLeave p_on_leave_velocity);
PlatformOnLeave get_platform_on_leave() const;

CharacterBody2D();
~CharacterBody2D();

private:
real_t margin = 0.08;
MotionMode motion_mode = MOTION_MODE_GROUNDED;
PlatformOnLeave platform_on_leave = PLATFORM_ON_LEAVE_ADD_VELOCITY;

bool floor_constant_speed = false;
bool floor_stop_on_slope = true;
bool floor_block_on_wall = true;
bool slide_on_ceiling = true;
int max_slides = 4;
int platform_layer = 0;
real_t floor_max_angle = Math::deg_to_rad((real_t)45.0);
real_t floor_snap_length = 1;
real_t wall_min_slide_angle = Math::deg_to_rad((real_t)15.0);
Vector2 up_direction = Vector2(0.0, -1.0);
uint32_t platform_floor_layers = UINT32_MAX;
uint32_t platform_wall_layers = 0;
Vector2 velocity;

Vector2 floor_normal;
Vector2 platform_velocity;
Vector2 wall_normal;
Vector2 last_motion;
Vector2 previous_position;
Vector2 real_velocity;

RID platform_rid;
ObjectID platform_object_id;
bool on_floor = false;
bool on_ceiling = false;
bool on_wall = false;

Vector<PhysicsServer2D::MotionResult> motion_results;
Vector<Ref<KinematicCollision2D>> slide_colliders;

void _move_and_slide_floating(double p_delta);
void _move_and_slide_grounded(double p_delta, bool p_was_on_floor);

Expand Down
78 changes: 39 additions & 39 deletions scene/3d/physics_body_3d.h
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,45 @@ class CharacterBody3D : public PhysicsBody3D {
int get_slide_collision_count() const;
PhysicsServer3D::MotionResult get_slide_collision(int p_bounce) const;

void set_safe_margin(real_t p_margin);
real_t get_safe_margin() const;

bool is_floor_stop_on_slope_enabled() const;
void set_floor_stop_on_slope_enabled(bool p_enabled);

bool is_floor_constant_speed_enabled() const;
void set_floor_constant_speed_enabled(bool p_enabled);

bool is_floor_block_on_wall_enabled() const;
void set_floor_block_on_wall_enabled(bool p_enabled);

bool is_slide_on_ceiling_enabled() const;
void set_slide_on_ceiling_enabled(bool p_enabled);

int get_max_slides() const;
void set_max_slides(int p_max_slides);

real_t get_floor_max_angle() const;
void set_floor_max_angle(real_t p_radians);

real_t get_floor_snap_length();
void set_floor_snap_length(real_t p_floor_snap_length);

real_t get_wall_min_slide_angle() const;
void set_wall_min_slide_angle(real_t p_radians);

uint32_t get_platform_floor_layers() const;
void set_platform_floor_layers(const uint32_t p_exclude_layer);

uint32_t get_platform_wall_layers() const;
void set_platform_wall_layers(const uint32_t p_exclude_layer);

void set_motion_mode(MotionMode p_mode);
MotionMode get_motion_mode() const;

void set_platform_on_leave(PlatformOnLeave p_on_leave_velocity);
PlatformOnLeave get_platform_on_leave() const;

CharacterBody3D();
~CharacterBody3D();

Expand Down Expand Up @@ -435,45 +474,6 @@ class CharacterBody3D : public PhysicsBody3D {
Vector<PhysicsServer3D::MotionResult> motion_results;
Vector<Ref<KinematicCollision3D>> slide_colliders;

void set_safe_margin(real_t p_margin);
real_t get_safe_margin() const;

bool is_floor_stop_on_slope_enabled() const;
void set_floor_stop_on_slope_enabled(bool p_enabled);

bool is_floor_constant_speed_enabled() const;
void set_floor_constant_speed_enabled(bool p_enabled);

bool is_floor_block_on_wall_enabled() const;
void set_floor_block_on_wall_enabled(bool p_enabled);

bool is_slide_on_ceiling_enabled() const;
void set_slide_on_ceiling_enabled(bool p_enabled);

int get_max_slides() const;
void set_max_slides(int p_max_slides);

real_t get_floor_max_angle() const;
void set_floor_max_angle(real_t p_radians);

real_t get_floor_snap_length();
void set_floor_snap_length(real_t p_floor_snap_length);

real_t get_wall_min_slide_angle() const;
void set_wall_min_slide_angle(real_t p_radians);

uint32_t get_platform_floor_layers() const;
void set_platform_floor_layers(const uint32_t p_exclude_layer);

uint32_t get_platform_wall_layers() const;
void set_platform_wall_layers(const uint32_t p_exclude_layer);

void set_motion_mode(MotionMode p_mode);
MotionMode get_motion_mode() const;

void set_platform_on_leave(PlatformOnLeave p_on_leave_velocity);
PlatformOnLeave get_platform_on_leave() const;

void _move_and_slide_floating(double p_delta);
void _move_and_slide_grounded(double p_delta, bool p_was_on_floor);

Expand Down
Loading