mirror of
https://github.com/godotengine/godot.git
synced 2025-10-21 08:53:35 +00:00
-renamed function get_relative_transform() to get_relative_transform_to_parent(), makes more sense
-fixed newly introduced bug in onready keyword, fixes #3155
This commit is contained in:
parent
30c12297dc
commit
f7b64a62d1
5 changed files with 13 additions and 16 deletions
|
@ -2769,12 +2769,8 @@ void GDParser::_parse_class(ClassNode *p_class) {
|
||||||
}; //fallthrough to var
|
}; //fallthrough to var
|
||||||
case GDTokenizer::TK_PR_ONREADY: {
|
case GDTokenizer::TK_PR_ONREADY: {
|
||||||
|
|
||||||
if (tokenizer->get_token(-1)==GDTokenizer::TK_PR_EXPORT) {
|
if (token==GDTokenizer::TK_PR_ONREADY) {
|
||||||
current_export=PropertyInfo();
|
//may be fallthrough from export, ignore if so
|
||||||
_set_error("Expected 'var' (can't combine with 'onready').");
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
tokenizer->advance();
|
tokenizer->advance();
|
||||||
if (tokenizer->get_token()!=GDTokenizer::TK_PR_VAR) {
|
if (tokenizer->get_token()!=GDTokenizer::TK_PR_VAR) {
|
||||||
_set_error("Expected 'var'.");
|
_set_error("Expected 'var'.");
|
||||||
|
|
|
@ -273,7 +273,7 @@ void NavigationPolygonInstance::set_enabled(bool p_enabled) {
|
||||||
|
|
||||||
if (navpoly.is_valid()) {
|
if (navpoly.is_valid()) {
|
||||||
|
|
||||||
nav_id = navigation->navpoly_create(navpoly,get_relative_transform(navigation),this);
|
nav_id = navigation->navpoly_create(navpoly,get_relative_transform_to_parent(navigation),this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,7 +309,7 @@ void NavigationPolygonInstance::_notification(int p_what) {
|
||||||
|
|
||||||
if (enabled && navpoly.is_valid()) {
|
if (enabled && navpoly.is_valid()) {
|
||||||
|
|
||||||
nav_id = navigation->navpoly_create(navpoly,get_relative_transform(navigation),this);
|
nav_id = navigation->navpoly_create(navpoly,get_relative_transform_to_parent(navigation),this);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -321,7 +321,7 @@ void NavigationPolygonInstance::_notification(int p_what) {
|
||||||
case NOTIFICATION_TRANSFORM_CHANGED: {
|
case NOTIFICATION_TRANSFORM_CHANGED: {
|
||||||
|
|
||||||
if (navigation && nav_id!=-1) {
|
if (navigation && nav_id!=-1) {
|
||||||
navigation->navpoly_set_transform(nav_id,get_relative_transform(navigation));
|
navigation->navpoly_set_transform(nav_id,get_relative_transform_to_parent(navigation));
|
||||||
}
|
}
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
|
@ -409,7 +409,7 @@ void NavigationPolygonInstance::set_navigation_polygon(const Ref<NavigationPolyg
|
||||||
}
|
}
|
||||||
|
|
||||||
if (navigation && navpoly.is_valid() && enabled) {
|
if (navigation && navpoly.is_valid() && enabled) {
|
||||||
nav_id = navigation->navpoly_create(navpoly,get_relative_transform(navigation),this);
|
nav_id = navigation->navpoly_create(navpoly,get_relative_transform_to_parent(navigation),this);
|
||||||
}
|
}
|
||||||
//update_gizmo();
|
//update_gizmo();
|
||||||
_change_notify("navpoly");
|
_change_notify("navpoly");
|
||||||
|
|
|
@ -333,17 +333,18 @@ int Node2D::get_z() const{
|
||||||
return z;
|
return z;
|
||||||
}
|
}
|
||||||
|
|
||||||
Matrix32 Node2D::get_relative_transform(const Node *p_parent) const {
|
Matrix32 Node2D::get_relative_transform_to_parent(const Node *p_parent) const {
|
||||||
|
|
||||||
if (p_parent==this)
|
if (p_parent==this)
|
||||||
return Matrix32();
|
return Matrix32();
|
||||||
|
|
||||||
Node2D *parent_2d = get_parent()->cast_to<Node2D>();
|
Node2D *parent_2d = get_parent()->cast_to<Node2D>();
|
||||||
|
|
||||||
ERR_FAIL_COND_V(!parent_2d,Matrix32());
|
ERR_FAIL_COND_V(!parent_2d,Matrix32());
|
||||||
if (p_parent==parent_2d)
|
if (p_parent==parent_2d)
|
||||||
return get_transform();
|
return get_transform();
|
||||||
else
|
else
|
||||||
return parent_2d->get_relative_transform(p_parent) * get_transform();
|
return parent_2d->get_relative_transform_to_parent(p_parent) * get_transform();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -396,7 +397,7 @@ void Node2D::_bind_methods() {
|
||||||
|
|
||||||
ObjectTypeDB::bind_method(_MD("edit_set_pivot","pivot"),&Node2D::edit_set_pivot);
|
ObjectTypeDB::bind_method(_MD("edit_set_pivot","pivot"),&Node2D::edit_set_pivot);
|
||||||
|
|
||||||
ObjectTypeDB::bind_method(_MD("get_relative_transform","parent"),&Node2D::get_relative_transform);
|
ObjectTypeDB::bind_method(_MD("get_relative_transform_to_parent","parent"),&Node2D::get_relative_transform_to_parent);
|
||||||
|
|
||||||
ADD_PROPERTYNZ(PropertyInfo(Variant::VECTOR2,"transform/pos"),_SCS("set_pos"),_SCS("get_pos"));
|
ADD_PROPERTYNZ(PropertyInfo(Variant::VECTOR2,"transform/pos"),_SCS("set_pos"),_SCS("get_pos"));
|
||||||
ADD_PROPERTYNZ(PropertyInfo(Variant::REAL,"transform/rot",PROPERTY_HINT_RANGE,"-1440,1440,0.1"),_SCS("_set_rotd"),_SCS("_get_rotd"));
|
ADD_PROPERTYNZ(PropertyInfo(Variant::REAL,"transform/rot",PROPERTY_HINT_RANGE,"-1440,1440,0.1"),_SCS("_set_rotd"),_SCS("_get_rotd"));
|
||||||
|
|
|
@ -99,7 +99,7 @@ public:
|
||||||
void set_z_as_relative(bool p_enabled);
|
void set_z_as_relative(bool p_enabled);
|
||||||
bool is_z_relative() const;
|
bool is_z_relative() const;
|
||||||
|
|
||||||
Matrix32 get_relative_transform(const Node *p_parent) const;
|
Matrix32 get_relative_transform_to_parent(const Node *p_parent) const;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -118,7 +118,7 @@ void TileMap::_update_quadrant_transform() {
|
||||||
|
|
||||||
Matrix32 nav_rel;
|
Matrix32 nav_rel;
|
||||||
if (navigation)
|
if (navigation)
|
||||||
nav_rel = get_relative_transform(navigation);
|
nav_rel = get_relative_transform_to_parent(navigation);
|
||||||
|
|
||||||
for (Map<PosKey,Quadrant>::Element *E=quadrant_map.front();E;E=E->next()) {
|
for (Map<PosKey,Quadrant>::Element *E=quadrant_map.front();E;E=E->next()) {
|
||||||
|
|
||||||
|
@ -261,7 +261,7 @@ void TileMap::_update_dirty_quadrants() {
|
||||||
Vector2 tcenter = cell_size/2;
|
Vector2 tcenter = cell_size/2;
|
||||||
Matrix32 nav_rel;
|
Matrix32 nav_rel;
|
||||||
if (navigation)
|
if (navigation)
|
||||||
nav_rel = get_relative_transform(navigation);
|
nav_rel = get_relative_transform_to_parent(navigation);
|
||||||
|
|
||||||
Vector2 qofs;
|
Vector2 qofs;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue