Merge branch 'master' of https://github.com/okamstudio/godot
# Solved Conflicts: # scene/gui/spin_box.cpp # scene/gui/tree.cpp
This commit is contained in:
+25
-10
@@ -83,15 +83,25 @@ real_t Area::get_gravity() const{
|
||||
|
||||
return gravity;
|
||||
}
|
||||
void Area::set_linear_damp(real_t p_linear_damp){
|
||||
|
||||
void Area::set_density(real_t p_density){
|
||||
|
||||
density=p_density;
|
||||
PhysicsServer::get_singleton()->area_set_param(get_rid(),PhysicsServer::AREA_PARAM_DENSITY,p_density);
|
||||
linear_damp=p_linear_damp;
|
||||
PhysicsServer::get_singleton()->area_set_param(get_rid(),PhysicsServer::AREA_PARAM_LINEAR_DAMP,p_linear_damp);
|
||||
}
|
||||
real_t Area::get_density() const{
|
||||
real_t Area::get_linear_damp() const{
|
||||
|
||||
return density;
|
||||
return linear_damp;
|
||||
}
|
||||
|
||||
void Area::set_angular_damp(real_t p_angular_damp){
|
||||
|
||||
angular_damp=p_angular_damp;
|
||||
PhysicsServer::get_singleton()->area_set_param(get_rid(),PhysicsServer::AREA_PARAM_ANGULAR_DAMP,p_angular_damp);
|
||||
}
|
||||
|
||||
real_t Area::get_angular_damp() const{
|
||||
|
||||
return angular_damp;
|
||||
}
|
||||
|
||||
void Area::set_priority(real_t p_priority){
|
||||
@@ -533,8 +543,11 @@ void Area::_bind_methods() {
|
||||
ObjectTypeDB::bind_method(_MD("set_gravity","gravity"),&Area::set_gravity);
|
||||
ObjectTypeDB::bind_method(_MD("get_gravity"),&Area::get_gravity);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_density","density"),&Area::set_density);
|
||||
ObjectTypeDB::bind_method(_MD("get_density"),&Area::get_density);
|
||||
ObjectTypeDB::bind_method(_MD("set_angular_damp","angular_damp"),&Area::set_angular_damp);
|
||||
ObjectTypeDB::bind_method(_MD("get_angular_damp"),&Area::get_angular_damp);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_linear_damp","linear_damp"),&Area::set_linear_damp);
|
||||
ObjectTypeDB::bind_method(_MD("get_linear_damp"),&Area::get_linear_damp);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_priority","priority"),&Area::set_priority);
|
||||
ObjectTypeDB::bind_method(_MD("get_priority"),&Area::get_priority);
|
||||
@@ -571,7 +584,8 @@ void Area::_bind_methods() {
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"gravity_distance_scale", PROPERTY_HINT_RANGE,"0,1024,0.001"),_SCS("set_gravity_distance_scale"),_SCS("get_gravity_distance_scale"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::VECTOR3,"gravity_vec"),_SCS("set_gravity_vector"),_SCS("get_gravity_vector"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"gravity",PROPERTY_HINT_RANGE,"-1024,1024,0.01"),_SCS("set_gravity"),_SCS("get_gravity"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"density",PROPERTY_HINT_RANGE,"0,1024,0.001"),_SCS("set_density"),_SCS("get_density"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"linear_damp",PROPERTY_HINT_RANGE,"0,1024,0.001"),_SCS("set_linear_damp"),_SCS("get_linear_damp"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"angular_damp",PROPERTY_HINT_RANGE,"0,1024,0.001"),_SCS("set_angular_damp"),_SCS("get_angular_damp"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::INT,"priority",PROPERTY_HINT_RANGE,"0,128,1"),_SCS("set_priority"),_SCS("get_priority"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"monitoring"),_SCS("set_enable_monitoring"),_SCS("is_monitoring_enabled"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"monitorable"),_SCS("set_monitorable"),_SCS("is_monitorable"));
|
||||
@@ -586,7 +600,8 @@ Area::Area() : CollisionObject(PhysicsServer::get_singleton()->area_create(),tru
|
||||
set_gravity_vector(Vector3(0,-1,0));
|
||||
gravity_is_point=false;
|
||||
gravity_distance_scale=0;
|
||||
density=0.1;
|
||||
linear_damp=0.1;
|
||||
angular_damp=1;
|
||||
priority=0;
|
||||
monitoring=false;
|
||||
set_ray_pickable(false);
|
||||
|
||||
+7
-3
@@ -50,7 +50,8 @@ private:
|
||||
real_t gravity;
|
||||
bool gravity_is_point;
|
||||
real_t gravity_distance_scale;
|
||||
real_t density;
|
||||
real_t angular_damp;
|
||||
real_t linear_damp;
|
||||
int priority;
|
||||
bool monitoring;
|
||||
bool monitorable;
|
||||
@@ -139,8 +140,11 @@ public:
|
||||
void set_gravity(real_t p_gravity);
|
||||
real_t get_gravity() const;
|
||||
|
||||
void set_density(real_t p_density);
|
||||
real_t get_density() const;
|
||||
void set_angular_damp(real_t p_angular_damp);
|
||||
real_t get_angular_damp() const;
|
||||
|
||||
void set_linear_damp(real_t p_linear_damp);
|
||||
real_t get_linear_damp() const;
|
||||
|
||||
void set_priority(real_t p_priority);
|
||||
real_t get_priority() const;
|
||||
|
||||
@@ -133,6 +133,8 @@ real_t StaticBody::get_bounce() const{
|
||||
return bounce;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void StaticBody::set_constant_linear_velocity(const Vector3& p_vel) {
|
||||
|
||||
constant_linear_velocity=p_vel;
|
||||
@@ -494,6 +496,42 @@ real_t RigidBody::get_bounce() const{
|
||||
return bounce;
|
||||
}
|
||||
|
||||
|
||||
void RigidBody::set_gravity_scale(real_t p_gravity_scale){
|
||||
|
||||
gravity_scale=p_gravity_scale;
|
||||
PhysicsServer::get_singleton()->body_set_param(get_rid(),PhysicsServer::BODY_PARAM_GRAVITY_SCALE,gravity_scale);
|
||||
|
||||
}
|
||||
real_t RigidBody::get_gravity_scale() const{
|
||||
|
||||
return gravity_scale;
|
||||
}
|
||||
|
||||
void RigidBody::set_linear_damp(real_t p_linear_damp){
|
||||
|
||||
ERR_FAIL_COND(p_linear_damp<-1);
|
||||
linear_damp=p_linear_damp;
|
||||
PhysicsServer::get_singleton()->body_set_param(get_rid(),PhysicsServer::BODY_PARAM_LINEAR_DAMP,linear_damp);
|
||||
|
||||
}
|
||||
real_t RigidBody::get_linear_damp() const{
|
||||
|
||||
return linear_damp;
|
||||
}
|
||||
|
||||
void RigidBody::set_angular_damp(real_t p_angular_damp){
|
||||
|
||||
ERR_FAIL_COND(p_angular_damp<-1);
|
||||
angular_damp=p_angular_damp;
|
||||
PhysicsServer::get_singleton()->body_set_param(get_rid(),PhysicsServer::BODY_PARAM_ANGULAR_DAMP,angular_damp);
|
||||
|
||||
}
|
||||
real_t RigidBody::get_angular_damp() const{
|
||||
|
||||
return angular_damp;
|
||||
}
|
||||
|
||||
void RigidBody::set_axis_velocity(const Vector3& p_axis) {
|
||||
|
||||
Vector3 v = state? state->get_linear_velocity() : linear_velocity;
|
||||
@@ -685,6 +723,16 @@ void RigidBody::_bind_methods() {
|
||||
ObjectTypeDB::bind_method(_MD("set_angular_velocity","angular_velocity"),&RigidBody::set_angular_velocity);
|
||||
ObjectTypeDB::bind_method(_MD("get_angular_velocity"),&RigidBody::get_angular_velocity);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_gravity_scale","gravity_scale"),&RigidBody::set_gravity_scale);
|
||||
ObjectTypeDB::bind_method(_MD("get_gravity_scale"),&RigidBody::get_gravity_scale);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_linear_damp","linear_damp"),&RigidBody::set_linear_damp);
|
||||
ObjectTypeDB::bind_method(_MD("get_linear_damp"),&RigidBody::get_linear_damp);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_angular_damp","angular_damp"),&RigidBody::set_angular_damp);
|
||||
ObjectTypeDB::bind_method(_MD("get_angular_damp"),&RigidBody::get_angular_damp);
|
||||
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_max_contacts_reported","amount"),&RigidBody::set_max_contacts_reported);
|
||||
ObjectTypeDB::bind_method(_MD("get_max_contacts_reported"),&RigidBody::get_max_contacts_reported);
|
||||
|
||||
@@ -722,6 +770,7 @@ void RigidBody::_bind_methods() {
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"weight",PROPERTY_HINT_EXP_RANGE,"0.01,65535,0.01",PROPERTY_USAGE_EDITOR),_SCS("set_weight"),_SCS("get_weight"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"friction",PROPERTY_HINT_RANGE,"0,1,0.01"),_SCS("set_friction"),_SCS("get_friction"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"bounce",PROPERTY_HINT_RANGE,"0,1,0.01"),_SCS("set_bounce"),_SCS("get_bounce"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"gravity_scale",PROPERTY_HINT_RANGE,"-128,128,0.01"),_SCS("set_gravity_scale"),_SCS("get_gravity_scale"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"custom_integrator"),_SCS("set_use_custom_integrator"),_SCS("is_using_custom_integrator"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::BOOL,"continuous_cd"),_SCS("set_use_continuous_collision_detection"),_SCS("is_using_continuous_collision_detection"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::INT,"contacts_reported"),_SCS("set_max_contacts_reported"),_SCS("get_max_contacts_reported"));
|
||||
@@ -731,6 +780,8 @@ void RigidBody::_bind_methods() {
|
||||
ADD_PROPERTY( PropertyInfo(Variant::INT,"axis_lock",PROPERTY_HINT_ENUM,"Disabled,Lock X,Lock Y,Lock Z"),_SCS("set_axis_lock"),_SCS("get_axis_lock"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::VECTOR3,"velocity/linear"),_SCS("set_linear_velocity"),_SCS("get_linear_velocity"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::VECTOR3,"velocity/angular"),_SCS("set_angular_velocity"),_SCS("get_angular_velocity"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"damp_override/linear",PROPERTY_HINT_RANGE,"-1,128,0.01"),_SCS("set_linear_damp"),_SCS("get_linear_damp"));
|
||||
ADD_PROPERTY( PropertyInfo(Variant::REAL,"damp_override/angular",PROPERTY_HINT_RANGE,"-1,128,0.01"),_SCS("set_angular_damp"),_SCS("get_angular_damp"));
|
||||
|
||||
ADD_SIGNAL( MethodInfo("body_enter_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape")));
|
||||
ADD_SIGNAL( MethodInfo("body_exit_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape")));
|
||||
@@ -753,6 +804,10 @@ RigidBody::RigidBody() : PhysicsBody(PhysicsServer::BODY_MODE_RIGID) {
|
||||
max_contacts_reported=0;
|
||||
state=NULL;
|
||||
|
||||
gravity_scale=1;
|
||||
linear_damp=-1;
|
||||
angular_damp=-1;
|
||||
|
||||
//angular_velocity=0;
|
||||
sleeping=false;
|
||||
ccd=false;
|
||||
|
||||
@@ -129,6 +129,10 @@ private:
|
||||
|
||||
Vector3 linear_velocity;
|
||||
Vector3 angular_velocity;
|
||||
real_t gravity_scale;
|
||||
real_t linear_damp;
|
||||
real_t angular_damp;
|
||||
|
||||
bool sleeping;
|
||||
bool ccd;
|
||||
|
||||
@@ -217,6 +221,16 @@ public:
|
||||
void set_angular_velocity(const Vector3&p_velocity);
|
||||
Vector3 get_angular_velocity() const;
|
||||
|
||||
void set_gravity_scale(real_t p_gravity_scale);
|
||||
real_t get_gravity_scale() const;
|
||||
|
||||
void set_linear_damp(real_t p_linear_damp);
|
||||
real_t get_linear_damp() const;
|
||||
|
||||
void set_angular_damp(real_t p_angular_damp);
|
||||
real_t get_angular_damp() const;
|
||||
|
||||
|
||||
void set_use_custom_integrator(bool p_enable);
|
||||
bool is_using_custom_integrator();
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ void SpinBox::_input_event(const InputEvent& p_event) {
|
||||
if (drag.enabled) {
|
||||
|
||||
float diff_y = drag.mouse_pos.y - cpos.y;
|
||||
diff_y=pow((float)ABS(diff_y),(float)1.8)*SGN(diff_y);
|
||||
diff_y=Math::pow(ABS(diff_y),1.8)*SGN(diff_y);
|
||||
diff_y*=0.1;
|
||||
|
||||
drag.mouse_pos=cpos;
|
||||
|
||||
+1
-1
@@ -2070,7 +2070,7 @@ void Tree::_input_event(InputEvent p_event) {
|
||||
|
||||
TreeItem::Cell &c=popup_edited_item->cells[popup_edited_item_col];
|
||||
float diff_y = -b.relative_y;
|
||||
diff_y=pow((float)ABS(diff_y),(float)1.8)*SGN(diff_y);
|
||||
diff_y=Math::pow(ABS(diff_y),1.8)*SGN(diff_y);
|
||||
diff_y*=0.1;
|
||||
range_drag_base=CLAMP(range_drag_base + c.step * diff_y, c.min, c.max);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user