|
@@ -175,7 +175,7 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2 &mouse_pos) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- Node2D *n2d = E->get()->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(E->get());
|
|
if (n2d && n2d->edit_has_pivot()) {
|
|
if (n2d && n2d->edit_has_pivot()) {
|
|
|
|
|
|
Vector2 offset = n2d->edit_get_pivot();
|
|
Vector2 offset = n2d->edit_get_pivot();
|
|
@@ -190,7 +190,7 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2 &mouse_pos) {
|
|
undo_redo->add_undo_method(n2d, "set_global_position", gpos);
|
|
undo_redo->add_undo_method(n2d, "set_global_position", gpos);
|
|
undo_redo->add_undo_method(n2d, "edit_set_pivot", offset);
|
|
undo_redo->add_undo_method(n2d, "edit_set_pivot", offset);
|
|
for (int i = 0; i < n2d->get_child_count(); i++) {
|
|
for (int i = 0; i < n2d->get_child_count(); i++) {
|
|
- Node2D *n2dc = n2d->get_child(i)->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2dc = Object::cast_to<Node2D>(n2d->get_child(i));
|
|
if (!n2dc)
|
|
if (!n2dc)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -199,7 +199,7 @@ void CanvasItemEditor::_edit_set_pivot(const Vector2 &mouse_pos) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- Control *cnt = E->get()->cast_to<Control>();
|
|
|
|
|
|
+ Control *cnt = Object::cast_to<Control>(E->get());
|
|
if (cnt) {
|
|
if (cnt) {
|
|
|
|
|
|
Vector2 old_pivot = cnt->get_pivot_offset();
|
|
Vector2 old_pivot = cnt->get_pivot_offset();
|
|
@@ -265,7 +265,7 @@ void CanvasItemEditor::_tool_select(int p_index) {
|
|
|
|
|
|
Object *CanvasItemEditor::_get_editor_data(Object *p_what) {
|
|
Object *CanvasItemEditor::_get_editor_data(Object *p_what) {
|
|
|
|
|
|
- CanvasItem *ci = p_what->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *ci = Object::cast_to<CanvasItem>(p_what);
|
|
if (!ci)
|
|
if (!ci)
|
|
return NULL;
|
|
return NULL;
|
|
|
|
|
|
@@ -413,7 +413,7 @@ void CanvasItemEditor::_visibility_changed(ObjectID p_canvas_item) {
|
|
Object *c = ObjectDB::get_instance(p_canvas_item);
|
|
Object *c = ObjectDB::get_instance(p_canvas_item);
|
|
if (!c)
|
|
if (!c)
|
|
return;
|
|
return;
|
|
- CanvasItem *ct = c->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *ct = Object::cast_to<CanvasItem>(c);
|
|
if (!ct)
|
|
if (!ct)
|
|
return;
|
|
return;
|
|
canvas_items.erase(ct);
|
|
canvas_items.erase(ct);
|
|
@@ -451,17 +451,17 @@ bool CanvasItemEditor::_is_part_of_subscene(CanvasItem *p_item) {
|
|
void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos, Node *p_node, const Transform2D &p_parent_xform, const Transform2D &p_canvas_xform, Vector<_SelectResult> &r_items, unsigned int limit) {
|
|
void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos, Node *p_node, const Transform2D &p_parent_xform, const Transform2D &p_canvas_xform, Vector<_SelectResult> &r_items, unsigned int limit) {
|
|
if (!p_node)
|
|
if (!p_node)
|
|
return;
|
|
return;
|
|
- if (p_node->cast_to<Viewport>())
|
|
|
|
|
|
+ if (Object::cast_to<Viewport>(p_node))
|
|
return;
|
|
return;
|
|
|
|
|
|
- CanvasItem *c = p_node->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *c = Object::cast_to<CanvasItem>(p_node);
|
|
|
|
|
|
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
|
|
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
|
|
|
|
|
|
if (c && !c->is_set_as_toplevel())
|
|
if (c && !c->is_set_as_toplevel())
|
|
_find_canvas_items_at_pos(p_pos, p_node->get_child(i), p_parent_xform * c->get_transform(), p_canvas_xform, r_items);
|
|
_find_canvas_items_at_pos(p_pos, p_node->get_child(i), p_parent_xform * c->get_transform(), p_canvas_xform, r_items);
|
|
else {
|
|
else {
|
|
- CanvasLayer *cl = p_node->cast_to<CanvasLayer>();
|
|
|
|
|
|
+ CanvasLayer *cl = Object::cast_to<CanvasLayer>(p_node);
|
|
_find_canvas_items_at_pos(p_pos, p_node->get_child(i), transform, cl ? cl->get_transform() : p_canvas_xform, r_items); //use base transform
|
|
_find_canvas_items_at_pos(p_pos, p_node->get_child(i), transform, cl ? cl->get_transform() : p_canvas_xform, r_items); //use base transform
|
|
}
|
|
}
|
|
|
|
|
|
@@ -469,13 +469,13 @@ void CanvasItemEditor::_find_canvas_items_at_pos(const Point2 &p_pos, Node *p_no
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) {
|
|
|
|
|
|
+ if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !Object::cast_to<CanvasLayer>(c)) {
|
|
|
|
|
|
Rect2 rect = c->get_item_rect();
|
|
Rect2 rect = c->get_item_rect();
|
|
Point2 local_pos = (p_parent_xform * p_canvas_xform * c->get_transform()).affine_inverse().xform(p_pos);
|
|
Point2 local_pos = (p_parent_xform * p_canvas_xform * c->get_transform()).affine_inverse().xform(p_pos);
|
|
|
|
|
|
if (rect.has_point(local_pos)) {
|
|
if (rect.has_point(local_pos)) {
|
|
- Node2D *node = c->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *node = Object::cast_to<Node2D>(c);
|
|
|
|
|
|
_SelectResult res;
|
|
_SelectResult res;
|
|
res.item = c;
|
|
res.item = c;
|
|
@@ -492,10 +492,10 @@ void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2 &p_rect, Node *p_n
|
|
|
|
|
|
if (!p_node)
|
|
if (!p_node)
|
|
return;
|
|
return;
|
|
- if (p_node->cast_to<Viewport>())
|
|
|
|
|
|
+ if (Object::cast_to<Viewport>(p_node))
|
|
return;
|
|
return;
|
|
|
|
|
|
- CanvasItem *c = p_node->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *c = Object::cast_to<CanvasItem>(p_node);
|
|
|
|
|
|
bool inherited = p_node != get_tree()->get_edited_scene_root() && p_node->get_filename() != "";
|
|
bool inherited = p_node != get_tree()->get_edited_scene_root() && p_node->get_filename() != "";
|
|
bool editable = false;
|
|
bool editable = false;
|
|
@@ -509,13 +509,13 @@ void CanvasItemEditor::_find_canvas_items_at_rect(const Rect2 &p_rect, Node *p_n
|
|
if (c && !c->is_set_as_toplevel())
|
|
if (c && !c->is_set_as_toplevel())
|
|
_find_canvas_items_at_rect(p_rect, p_node->get_child(i), p_parent_xform * c->get_transform(), p_canvas_xform, r_items);
|
|
_find_canvas_items_at_rect(p_rect, p_node->get_child(i), p_parent_xform * c->get_transform(), p_canvas_xform, r_items);
|
|
else {
|
|
else {
|
|
- CanvasLayer *cl = p_node->cast_to<CanvasLayer>();
|
|
|
|
|
|
+ CanvasLayer *cl = Object::cast_to<CanvasLayer>(p_node);
|
|
_find_canvas_items_at_rect(p_rect, p_node->get_child(i), transform, cl ? cl->get_transform() : p_canvas_xform, r_items);
|
|
_find_canvas_items_at_rect(p_rect, p_node->get_child(i), transform, cl ? cl->get_transform() : p_canvas_xform, r_items);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !c->cast_to<CanvasLayer>()) {
|
|
|
|
|
|
+ if (c && c->is_visible_in_tree() && !c->has_meta("_edit_lock_") && !Object::cast_to<CanvasLayer>(c)) {
|
|
|
|
|
|
Rect2 rect = c->get_item_rect();
|
|
Rect2 rect = c->get_item_rect();
|
|
Transform2D xform = p_parent_xform * p_canvas_xform * c->get_transform();
|
|
Transform2D xform = p_parent_xform * p_canvas_xform * c->get_transform();
|
|
@@ -590,7 +590,7 @@ void CanvasItemEditor::_key_move(const Vector2 &p_dir, bool p_snap, KeyMoveMODE
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -619,7 +619,7 @@ void CanvasItemEditor::_key_move(const Vector2 &p_dir, bool p_snap, KeyMoveMODE
|
|
|
|
|
|
} else { // p_move_mode==MOVE_LOCAL_BASE || p_move_mode==MOVE_LOCAL_WITH_ROT
|
|
} else { // p_move_mode==MOVE_LOCAL_BASE || p_move_mode==MOVE_LOCAL_WITH_ROT
|
|
|
|
|
|
- if (Node2D *node_2d = canvas_item->cast_to<Node2D>()) {
|
|
|
|
|
|
+ if (Node2D *node_2d = Object::cast_to<Node2D>(canvas_item)) {
|
|
|
|
|
|
if (p_move_mode == MOVE_LOCAL_WITH_ROT) {
|
|
if (p_move_mode == MOVE_LOCAL_WITH_ROT) {
|
|
Transform2D m;
|
|
Transform2D m;
|
|
@@ -628,7 +628,7 @@ void CanvasItemEditor::_key_move(const Vector2 &p_dir, bool p_snap, KeyMoveMODE
|
|
}
|
|
}
|
|
node_2d->set_position(node_2d->get_position() + drag);
|
|
node_2d->set_position(node_2d->get_position() + drag);
|
|
|
|
|
|
- } else if (Control *control = canvas_item->cast_to<Control>()) {
|
|
|
|
|
|
+ } else if (Control *control = Object::cast_to<Control>(canvas_item)) {
|
|
|
|
|
|
control->set_position(control->get_position() + drag);
|
|
control->set_position(control->get_position() + drag);
|
|
}
|
|
}
|
|
@@ -648,7 +648,7 @@ Point2 CanvasItemEditor::_find_topleftmost_point() {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -673,7 +673,7 @@ int CanvasItemEditor::get_item_count() {
|
|
int ic = 0;
|
|
int ic = 0;
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -694,7 +694,7 @@ CanvasItem *CanvasItemEditor::get_single_item() {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->key());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -822,7 +822,7 @@ CanvasItemEditor::DragType CanvasItemEditor::_get_anchor_handle_drag_type(const
|
|
CanvasItem *canvas_item = get_single_item();
|
|
CanvasItem *canvas_item = get_single_item();
|
|
ERR_FAIL_COND_V(!canvas_item, DRAG_NONE);
|
|
ERR_FAIL_COND_V(!canvas_item, DRAG_NONE);
|
|
|
|
|
|
- Control *control = canvas_item->cast_to<Control>();
|
|
|
|
|
|
+ Control *control = Object::cast_to<Control>(canvas_item);
|
|
ERR_FAIL_COND_V(!control, DRAG_NONE);
|
|
ERR_FAIL_COND_V(!control, DRAG_NONE);
|
|
|
|
|
|
Vector2 anchor_pos[4];
|
|
Vector2 anchor_pos[4];
|
|
@@ -865,7 +865,7 @@ void CanvasItemEditor::_prepare_drag(const Point2 &p_click_pos) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -876,15 +876,15 @@ void CanvasItemEditor::_prepare_drag(const Point2 &p_click_pos) {
|
|
continue;
|
|
continue;
|
|
|
|
|
|
se->undo_state = canvas_item->edit_get_state();
|
|
se->undo_state = canvas_item->edit_get_state();
|
|
- if (canvas_item->cast_to<Node2D>())
|
|
|
|
- se->undo_pivot = canvas_item->cast_to<Node2D>()->edit_get_pivot();
|
|
|
|
- if (canvas_item->cast_to<Control>())
|
|
|
|
- se->undo_pivot = canvas_item->cast_to<Control>()->get_pivot_offset();
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item))
|
|
|
|
+ se->undo_pivot = Object::cast_to<Node2D>(canvas_item)->edit_get_pivot();
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item))
|
|
|
|
+ se->undo_pivot = Object::cast_to<Control>(canvas_item)->get_pivot_offset();
|
|
}
|
|
}
|
|
|
|
|
|
- if (selection.size() == 1 && selection[0]->cast_to<Node2D>()) {
|
|
|
|
|
|
+ if (selection.size() == 1 && Object::cast_to<Node2D>(selection[0])) {
|
|
drag = DRAG_NODE_2D;
|
|
drag = DRAG_NODE_2D;
|
|
- drag_point_from = selection[0]->cast_to<Node2D>()->get_global_position();
|
|
|
|
|
|
+ drag_point_from = Object::cast_to<Node2D>(selection[0])->get_global_position();
|
|
} else {
|
|
} else {
|
|
drag = DRAG_ALL;
|
|
drag = DRAG_ALL;
|
|
drag_point_from = _find_topleftmost_point();
|
|
drag_point_from = _find_topleftmost_point();
|
|
@@ -1169,7 +1169,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
List<Node *> &selection = editor_selection->get_selected_node_list();
|
|
List<Node *> &selection = editor_selection->get_selected_node_list();
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -1180,10 +1180,10 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
continue;
|
|
continue;
|
|
|
|
|
|
canvas_item->edit_set_state(se->undo_state);
|
|
canvas_item->edit_set_state(se->undo_state);
|
|
- if (canvas_item->cast_to<Node2D>())
|
|
|
|
- canvas_item->cast_to<Node2D>()->edit_set_pivot(se->undo_pivot);
|
|
|
|
- if (canvas_item->cast_to<Control>())
|
|
|
|
- canvas_item->cast_to<Control>()->set_pivot_offset(se->undo_pivot);
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item))
|
|
|
|
+ Object::cast_to<Node2D>(canvas_item)->edit_set_pivot(se->undo_pivot);
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item))
|
|
|
|
+ Object::cast_to<Control>(canvas_item)->set_pivot_offset(se->undo_pivot);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1251,7 +1251,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -1265,13 +1265,13 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
undo_redo->add_do_method(canvas_item, "edit_set_state", state);
|
|
undo_redo->add_do_method(canvas_item, "edit_set_state", state);
|
|
undo_redo->add_undo_method(canvas_item, "edit_set_state", se->undo_state);
|
|
undo_redo->add_undo_method(canvas_item, "edit_set_state", se->undo_state);
|
|
{
|
|
{
|
|
- Node2D *pvt = canvas_item->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *pvt = Object::cast_to<Node2D>(canvas_item);
|
|
if (pvt && pvt->edit_has_pivot()) {
|
|
if (pvt && pvt->edit_has_pivot()) {
|
|
undo_redo->add_do_method(canvas_item, "edit_set_pivot", pvt->edit_get_pivot());
|
|
undo_redo->add_do_method(canvas_item, "edit_set_pivot", pvt->edit_get_pivot());
|
|
undo_redo->add_undo_method(canvas_item, "edit_set_pivot", se->undo_pivot);
|
|
undo_redo->add_undo_method(canvas_item, "edit_set_pivot", se->undo_pivot);
|
|
}
|
|
}
|
|
|
|
|
|
- Control *cnt = canvas_item->cast_to<Control>();
|
|
|
|
|
|
+ Control *cnt = Object::cast_to<Control>(canvas_item);
|
|
if (cnt) {
|
|
if (cnt) {
|
|
undo_redo->add_do_method(canvas_item, "set_pivot_offset", cnt->get_pivot_offset());
|
|
undo_redo->add_do_method(canvas_item, "set_pivot_offset", cnt->get_pivot_offset());
|
|
undo_redo->add_undo_method(canvas_item, "set_pivot_offset", se->undo_pivot);
|
|
undo_redo->add_undo_method(canvas_item, "set_pivot_offset", se->undo_pivot);
|
|
@@ -1341,10 +1341,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
}
|
|
}
|
|
|
|
|
|
if (Cbone) {
|
|
if (Cbone) {
|
|
- Node2D *b = NULL;
|
|
|
|
- Object *obj = ObjectDB::get_instance(Cbone->get().bone);
|
|
|
|
- if (obj)
|
|
|
|
- b = obj->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *b = Object::cast_to<Node2D>(ObjectDB::get_instance(Cbone->get().bone));
|
|
|
|
|
|
if (b) {
|
|
if (b) {
|
|
|
|
|
|
@@ -1359,7 +1356,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
break;
|
|
break;
|
|
|
|
|
|
float len = pi->get_global_transform().get_origin().distance_to(b->get_global_position());
|
|
float len = pi->get_global_transform().get_origin().distance_to(b->get_global_position());
|
|
- b = pi->cast_to<Node2D>();
|
|
|
|
|
|
+ b = Object::cast_to<Node2D>(pi);
|
|
if (!b)
|
|
if (!b)
|
|
break;
|
|
break;
|
|
|
|
|
|
@@ -1405,10 +1402,10 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
drag = DRAG_ROTATE;
|
|
drag = DRAG_ROTATE;
|
|
drag_from = transform.affine_inverse().xform(click);
|
|
drag_from = transform.affine_inverse().xform(click);
|
|
se->undo_state = canvas_item->edit_get_state();
|
|
se->undo_state = canvas_item->edit_get_state();
|
|
- if (canvas_item->cast_to<Node2D>())
|
|
|
|
- se->undo_pivot = canvas_item->cast_to<Node2D>()->edit_get_pivot();
|
|
|
|
- if (canvas_item->cast_to<Control>())
|
|
|
|
- se->undo_pivot = canvas_item->cast_to<Control>()->get_pivot_offset();
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item))
|
|
|
|
+ se->undo_pivot = Object::cast_to<Node2D>(canvas_item)->edit_get_pivot();
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item))
|
|
|
|
+ se->undo_pivot = Object::cast_to<Control>(canvas_item)->get_pivot_offset();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1426,15 +1423,15 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
if (drag != DRAG_NONE) {
|
|
if (drag != DRAG_NONE) {
|
|
drag_from = transform.affine_inverse().xform(click);
|
|
drag_from = transform.affine_inverse().xform(click);
|
|
se->undo_state = canvas_item->edit_get_state();
|
|
se->undo_state = canvas_item->edit_get_state();
|
|
- if (canvas_item->cast_to<Node2D>())
|
|
|
|
- se->undo_pivot = canvas_item->cast_to<Node2D>()->edit_get_pivot();
|
|
|
|
- if (canvas_item->cast_to<Control>())
|
|
|
|
- se->undo_pivot = canvas_item->cast_to<Control>()->get_pivot_offset();
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item))
|
|
|
|
+ se->undo_pivot = Object::cast_to<Node2D>(canvas_item)->edit_get_pivot();
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item))
|
|
|
|
+ se->undo_pivot = Object::cast_to<Control>(canvas_item)->get_pivot_offset();
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
// Drag anchor handles
|
|
// Drag anchor handles
|
|
- if (canvas_item->cast_to<Control>()) {
|
|
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item)) {
|
|
drag = _get_anchor_handle_drag_type(click, drag_point_from);
|
|
drag = _get_anchor_handle_drag_type(click, drag_point_from);
|
|
if (drag != DRAG_NONE) {
|
|
if (drag != DRAG_NONE) {
|
|
drag_from = transform.affine_inverse().xform(click);
|
|
drag_from = transform.affine_inverse().xform(click);
|
|
@@ -1457,9 +1454,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
|
|
|
|
CanvasItem *c = NULL;
|
|
CanvasItem *c = NULL;
|
|
if (Cbone) {
|
|
if (Cbone) {
|
|
- Object *obj = ObjectDB::get_instance(Cbone->get().bone);
|
|
|
|
- if (obj)
|
|
|
|
- c = obj->cast_to<CanvasItem>();
|
|
|
|
|
|
+ c = Object::cast_to<CanvasItem>(ObjectDB::get_instance(Cbone->get().bone));
|
|
if (c)
|
|
if (c)
|
|
c = c->get_parent_item();
|
|
c = c->get_parent_item();
|
|
}
|
|
}
|
|
@@ -1489,7 +1484,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
};
|
|
};
|
|
|
|
|
|
if (n) {
|
|
if (n) {
|
|
- c = n->cast_to<CanvasItem>();
|
|
|
|
|
|
+ c = Object::cast_to<CanvasItem>(n);
|
|
} else {
|
|
} else {
|
|
c = NULL;
|
|
c = NULL;
|
|
}
|
|
}
|
|
@@ -1537,7 +1532,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
List<Node *> &selection = editor_selection->get_selected_node_list();
|
|
List<Node *> &selection = editor_selection->get_selected_node_list();
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -1551,10 +1546,10 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
|
|
|
|
if (!dragging_bone) {
|
|
if (!dragging_bone) {
|
|
canvas_item->edit_set_state(se->undo_state); //reset state and reapply
|
|
canvas_item->edit_set_state(se->undo_state); //reset state and reapply
|
|
- if (canvas_item->cast_to<Node2D>())
|
|
|
|
- canvas_item->cast_to<Node2D>()->edit_set_pivot(se->undo_pivot);
|
|
|
|
- if (canvas_item->cast_to<Control>())
|
|
|
|
- canvas_item->cast_to<Control>()->set_pivot_offset(se->undo_pivot);
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item))
|
|
|
|
+ Object::cast_to<Node2D>(canvas_item)->edit_set_pivot(se->undo_pivot);
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item))
|
|
|
|
+ Object::cast_to<Control>(canvas_item)->set_pivot_offset(se->undo_pivot);
|
|
}
|
|
}
|
|
|
|
|
|
Vector2 dfrom = drag_from;
|
|
Vector2 dfrom = drag_from;
|
|
@@ -1566,7 +1561,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
// Rotate the node
|
|
// Rotate the node
|
|
Vector2 center = canvas_item->get_global_transform_with_canvas().get_origin();
|
|
Vector2 center = canvas_item->get_global_transform_with_canvas().get_origin();
|
|
{
|
|
{
|
|
- Node2D *node = canvas_item->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *node = Object::cast_to<Node2D>(canvas_item);
|
|
|
|
|
|
if (node) {
|
|
if (node) {
|
|
real_t angle = node->get_rotation();
|
|
real_t angle = node->get_rotation();
|
|
@@ -1578,7 +1573,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
}
|
|
}
|
|
|
|
|
|
{
|
|
{
|
|
- Control *node = canvas_item->cast_to<Control>();
|
|
|
|
|
|
+ Control *node = Object::cast_to<Control>(canvas_item);
|
|
|
|
|
|
if (node) {
|
|
if (node) {
|
|
real_t angle = node->get_rotation();
|
|
real_t angle = node->get_rotation();
|
|
@@ -1592,7 +1587,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- Control *control = canvas_item->cast_to<Control>();
|
|
|
|
|
|
+ Control *control = Object::cast_to<Control>(canvas_item);
|
|
if (control) {
|
|
if (control) {
|
|
// Drag and snap the anchor
|
|
// Drag and snap the anchor
|
|
Vector2 anchor = _position_to_anchor(control, canvas_item->get_global_transform_with_canvas().affine_inverse().xform(dto - drag_from + drag_point_from));
|
|
Vector2 anchor = _position_to_anchor(control, canvas_item->get_global_transform_with_canvas().affine_inverse().xform(dto - drag_from + drag_point_from));
|
|
@@ -1728,19 +1723,19 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
|
|
|
|
case DRAG_PIVOT:
|
|
case DRAG_PIVOT:
|
|
|
|
|
|
- if (canvas_item->cast_to<Node2D>()) {
|
|
|
|
- Node2D *n2d = canvas_item->cast_to<Node2D>();
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item)) {
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(canvas_item);
|
|
n2d->edit_set_pivot(se->undo_pivot + drag_vector);
|
|
n2d->edit_set_pivot(se->undo_pivot + drag_vector);
|
|
}
|
|
}
|
|
- if (canvas_item->cast_to<Control>()) {
|
|
|
|
- canvas_item->cast_to<Control>()->set_pivot_offset(se->undo_pivot + drag_vector);
|
|
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item)) {
|
|
|
|
+ Object::cast_to<Control>(canvas_item)->set_pivot_offset(se->undo_pivot + drag_vector);
|
|
}
|
|
}
|
|
continue;
|
|
continue;
|
|
break;
|
|
break;
|
|
case DRAG_NODE_2D:
|
|
case DRAG_NODE_2D:
|
|
|
|
|
|
- ERR_FAIL_COND(!canvas_item->cast_to<Node2D>());
|
|
|
|
- canvas_item->cast_to<Node2D>()->set_global_position(dto);
|
|
|
|
|
|
+ ERR_FAIL_COND(!Object::cast_to<Node2D>(canvas_item));
|
|
|
|
+ Object::cast_to<Node2D>(canvas_item)->set_global_position(dto);
|
|
continue;
|
|
continue;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -1754,7 +1749,7 @@ void CanvasItemEditor::_viewport_gui_input(const Ref<InputEvent> &p_event) {
|
|
} else {
|
|
} else {
|
|
//ok, all that had to be done was done, now solve IK
|
|
//ok, all that had to be done was done, now solve IK
|
|
|
|
|
|
- Node2D *n2d = canvas_item->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(canvas_item);
|
|
Transform2D final_xform = bone_orig_xform;
|
|
Transform2D final_xform = bone_orig_xform;
|
|
|
|
|
|
if (n2d) {
|
|
if (n2d) {
|
|
@@ -1981,7 +1976,7 @@ void CanvasItemEditor::_viewport_draw() {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->key());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
@@ -2013,16 +2008,16 @@ void CanvasItemEditor::_viewport_draw() {
|
|
|
|
|
|
if (single && (tool == TOOL_SELECT || tool == TOOL_MOVE || tool == TOOL_ROTATE || tool == TOOL_EDIT_PIVOT)) { //kind of sucks
|
|
if (single && (tool == TOOL_SELECT || tool == TOOL_MOVE || tool == TOOL_ROTATE || tool == TOOL_EDIT_PIVOT)) { //kind of sucks
|
|
|
|
|
|
- if (canvas_item->cast_to<Node2D>()) {
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item)) {
|
|
|
|
|
|
- if (canvas_item->cast_to<Node2D>()->edit_has_pivot()) {
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item)->edit_has_pivot()) {
|
|
viewport->draw_texture(pivot, xform.get_origin() + (-pivot->get_size() / 2).floor());
|
|
viewport->draw_texture(pivot, xform.get_origin() + (-pivot->get_size() / 2).floor());
|
|
can_move_pivot = true;
|
|
can_move_pivot = true;
|
|
pivot_found = true;
|
|
pivot_found = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- Control *control = canvas_item->cast_to<Control>();
|
|
|
|
|
|
+ Control *control = Object::cast_to<Control>(canvas_item);
|
|
if (control) {
|
|
if (control) {
|
|
Vector2 pivot_ofs = control->get_pivot_offset();
|
|
Vector2 pivot_ofs = control->get_pivot_offset();
|
|
if (pivot_ofs != Vector2()) {
|
|
if (pivot_ofs != Vector2()) {
|
|
@@ -2214,11 +2209,7 @@ void CanvasItemEditor::_viewport_draw() {
|
|
E->get().from = Vector2();
|
|
E->get().from = Vector2();
|
|
E->get().to = Vector2();
|
|
E->get().to = Vector2();
|
|
|
|
|
|
- Object *obj = ObjectDB::get_instance(E->get().bone);
|
|
|
|
- if (!obj)
|
|
|
|
- continue;
|
|
|
|
-
|
|
|
|
- Node2D *n2d = obj->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(ObjectDB::get_instance(E->get().bone));
|
|
if (!n2d)
|
|
if (!n2d)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -2227,7 +2218,7 @@ void CanvasItemEditor::_viewport_draw() {
|
|
|
|
|
|
CanvasItem *pi = n2d->get_parent_item();
|
|
CanvasItem *pi = n2d->get_parent_item();
|
|
|
|
|
|
- Node2D *pn2d = n2d->get_parent()->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *pn2d = Object::cast_to<Node2D>(n2d->get_parent());
|
|
|
|
|
|
if (!pn2d)
|
|
if (!pn2d)
|
|
continue;
|
|
continue;
|
|
@@ -2283,14 +2274,14 @@ void CanvasItemEditor::_notification(int p_what) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- if (canvas_item->cast_to<Control>())
|
|
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item))
|
|
has_control = true;
|
|
has_control = true;
|
|
else
|
|
else
|
|
all_control = false;
|
|
all_control = false;
|
|
@@ -2304,12 +2295,12 @@ void CanvasItemEditor::_notification(int p_what) {
|
|
|
|
|
|
float anchors[4];
|
|
float anchors[4];
|
|
Vector2 pivot;
|
|
Vector2 pivot;
|
|
- if (canvas_item->cast_to<Control>()) {
|
|
|
|
- pivot = canvas_item->cast_to<Control>()->get_pivot_offset();
|
|
|
|
- anchors[MARGIN_LEFT] = canvas_item->cast_to<Control>()->get_anchor(MARGIN_LEFT);
|
|
|
|
- anchors[MARGIN_RIGHT] = canvas_item->cast_to<Control>()->get_anchor(MARGIN_RIGHT);
|
|
|
|
- anchors[MARGIN_TOP] = canvas_item->cast_to<Control>()->get_anchor(MARGIN_TOP);
|
|
|
|
- anchors[MARGIN_BOTTOM] = canvas_item->cast_to<Control>()->get_anchor(MARGIN_BOTTOM);
|
|
|
|
|
|
+ if (Object::cast_to<Control>(canvas_item)) {
|
|
|
|
+ pivot = Object::cast_to<Control>(canvas_item)->get_pivot_offset();
|
|
|
|
+ anchors[MARGIN_LEFT] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_LEFT);
|
|
|
|
+ anchors[MARGIN_RIGHT] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_RIGHT);
|
|
|
|
+ anchors[MARGIN_TOP] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_TOP);
|
|
|
|
+ anchors[MARGIN_BOTTOM] = Object::cast_to<Control>(canvas_item)->get_anchor(MARGIN_BOTTOM);
|
|
}
|
|
}
|
|
|
|
|
|
if (r != se->prev_rect || xform != se->prev_xform || pivot != se->prev_pivot || anchors[MARGIN_LEFT] != se->prev_anchors[MARGIN_LEFT] || anchors[MARGIN_RIGHT] != se->prev_anchors[MARGIN_RIGHT] || anchors[MARGIN_TOP] != se->prev_anchors[MARGIN_TOP] || anchors[MARGIN_BOTTOM] != se->prev_anchors[MARGIN_BOTTOM]) {
|
|
if (r != se->prev_rect || xform != se->prev_xform || pivot != se->prev_pivot || anchors[MARGIN_LEFT] != se->prev_anchors[MARGIN_LEFT] || anchors[MARGIN_RIGHT] != se->prev_anchors[MARGIN_RIGHT] || anchors[MARGIN_TOP] != se->prev_anchors[MARGIN_TOP] || anchors[MARGIN_BOTTOM] != se->prev_anchors[MARGIN_BOTTOM]) {
|
|
@@ -2338,7 +2329,7 @@ void CanvasItemEditor::_notification(int p_what) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- Node2D *b2 = b->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *b2 = Object::cast_to<Node2D>(b);
|
|
if (!b2) {
|
|
if (!b2) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
@@ -2426,7 +2417,7 @@ void CanvasItemEditor::_find_canvas_items_span(Node *p_node, Rect2 &r_rect, cons
|
|
if (!p_node)
|
|
if (!p_node)
|
|
return;
|
|
return;
|
|
|
|
|
|
- CanvasItem *c = p_node->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *c = Object::cast_to<CanvasItem>(p_node);
|
|
|
|
|
|
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
|
|
for (int i = p_node->get_child_count() - 1; i >= 0; i--) {
|
|
|
|
|
|
@@ -2587,7 +2578,7 @@ void CanvasItemEditor::_set_anchors_preset(Control::LayoutPreset p_preset) {
|
|
undo_redo->create_action(TTR("Change Anchors"));
|
|
undo_redo->create_action(TTR("Change Anchors"));
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- Control *c = E->get()->cast_to<Control>();
|
|
|
|
|
|
+ Control *c = Object::cast_to<Control>(E->get());
|
|
|
|
|
|
undo_redo->add_do_method(c, "set_anchors_preset", p_preset);
|
|
undo_redo->add_do_method(c, "set_anchors_preset", p_preset);
|
|
undo_redo->add_undo_method(c, "set_anchor", MARGIN_LEFT, c->get_anchor(MARGIN_LEFT));
|
|
undo_redo->add_undo_method(c, "set_anchor", MARGIN_LEFT, c->get_anchor(MARGIN_LEFT));
|
|
@@ -2605,7 +2596,7 @@ void CanvasItemEditor::_set_full_rect() {
|
|
undo_redo->create_action(TTR("Change Anchors"));
|
|
undo_redo->create_action(TTR("Change Anchors"));
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- Control *c = E->get()->cast_to<Control>();
|
|
|
|
|
|
+ Control *c = Object::cast_to<Control>(E->get());
|
|
|
|
|
|
undo_redo->add_do_method(c, "set_anchors_preset", PRESET_WIDE);
|
|
undo_redo->add_do_method(c, "set_anchors_preset", PRESET_WIDE);
|
|
undo_redo->add_do_method(c, "set_margin", MARGIN_LEFT, 0);
|
|
undo_redo->add_do_method(c, "set_margin", MARGIN_LEFT, 0);
|
|
@@ -2713,7 +2704,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -2731,7 +2722,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -2751,7 +2742,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -2769,7 +2760,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -2888,15 +2879,15 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->key());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- if (canvas_item->cast_to<Node2D>()) {
|
|
|
|
- Node2D *n2d = canvas_item->cast_to<Node2D>();
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item)) {
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(canvas_item);
|
|
|
|
|
|
if (key_pos)
|
|
if (key_pos)
|
|
AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d, "position", n2d->get_position(), existing);
|
|
AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(n2d, "position", n2d->get_position(), existing);
|
|
@@ -2909,7 +2900,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
//look for an IK chain
|
|
//look for an IK chain
|
|
List<Node2D *> ik_chain;
|
|
List<Node2D *> ik_chain;
|
|
|
|
|
|
- Node2D *n = n2d->get_parent_item()->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n = Object::cast_to<Node2D>(n2d->get_parent_item());
|
|
bool has_chain = false;
|
|
bool has_chain = false;
|
|
|
|
|
|
while (n) {
|
|
while (n) {
|
|
@@ -2922,7 +2913,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
if (!n->get_parent_item())
|
|
if (!n->get_parent_item())
|
|
break;
|
|
break;
|
|
- n = n->get_parent_item()->cast_to<Node2D>();
|
|
|
|
|
|
+ n = Object::cast_to<Node2D>(n->get_parent_item());
|
|
}
|
|
}
|
|
|
|
|
|
if (has_chain && ik_chain.size()) {
|
|
if (has_chain && ik_chain.size()) {
|
|
@@ -2939,9 +2930,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- } else if (canvas_item->cast_to<Control>()) {
|
|
|
|
|
|
+ } else if (Object::cast_to<Control>(canvas_item)) {
|
|
|
|
|
|
- Control *ctrl = canvas_item->cast_to<Control>();
|
|
|
|
|
|
+ Control *ctrl = Object::cast_to<Control>(canvas_item);
|
|
|
|
|
|
if (key_pos)
|
|
if (key_pos)
|
|
AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(ctrl, "rect_position", ctrl->get_position(), existing);
|
|
AnimationPlayerEditor::singleton->get_key_editor()->insert_node_value_key(ctrl, "rect_position", ctrl->get_position(), existing);
|
|
@@ -2998,16 +2989,16 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->key());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- if (canvas_item->cast_to<Node2D>()) {
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item)) {
|
|
|
|
|
|
- Node2D *n2d = canvas_item->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(canvas_item);
|
|
PoseClipboard pc;
|
|
PoseClipboard pc;
|
|
pc.pos = n2d->get_position();
|
|
pc.pos = n2d->get_position();
|
|
pc.rot = n2d->get_rotation();
|
|
pc.rot = n2d->get_rotation();
|
|
@@ -3026,10 +3017,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
undo_redo->create_action(TTR("Paste Pose"));
|
|
undo_redo->create_action(TTR("Paste Pose"));
|
|
for (List<PoseClipboard>::Element *E = pose_clipboard.front(); E; E = E->next()) {
|
|
for (List<PoseClipboard>::Element *E = pose_clipboard.front(); E; E = E->next()) {
|
|
|
|
|
|
- Object *o = ObjectDB::get_instance(E->get().id);
|
|
|
|
- if (!o)
|
|
|
|
- continue;
|
|
|
|
- Node2D *n2d = o->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(ObjectDB::get_instance(E->get().id));
|
|
if (!n2d)
|
|
if (!n2d)
|
|
continue;
|
|
continue;
|
|
undo_redo->add_do_method(n2d, "set_position", E->get().pos);
|
|
undo_redo->add_do_method(n2d, "set_position", E->get().pos);
|
|
@@ -3048,15 +3036,15 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->key());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
- if (canvas_item->cast_to<Node2D>()) {
|
|
|
|
- Node2D *n2d = canvas_item->cast_to<Node2D>();
|
|
|
|
|
|
+ if (Object::cast_to<Node2D>(canvas_item)) {
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(canvas_item);
|
|
|
|
|
|
if (key_pos)
|
|
if (key_pos)
|
|
n2d->set_position(Vector2());
|
|
n2d->set_position(Vector2());
|
|
@@ -3064,9 +3052,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
n2d->set_rotation(0);
|
|
n2d->set_rotation(0);
|
|
if (key_scale)
|
|
if (key_scale)
|
|
n2d->set_scale(Vector2(1, 1));
|
|
n2d->set_scale(Vector2(1, 1));
|
|
- } else if (canvas_item->cast_to<Control>()) {
|
|
|
|
|
|
+ } else if (Object::cast_to<Control>(canvas_item)) {
|
|
|
|
|
|
- Control *ctrl = canvas_item->cast_to<Control>();
|
|
|
|
|
|
+ Control *ctrl = Object::cast_to<Control>(canvas_item);
|
|
|
|
|
|
if (key_pos)
|
|
if (key_pos)
|
|
ctrl->set_position(Point2());
|
|
ctrl->set_position(Point2());
|
|
@@ -3090,7 +3078,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- Node2D *n2d = E->key()->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(E->key());
|
|
if (!n2d)
|
|
if (!n2d)
|
|
continue;
|
|
continue;
|
|
if (!n2d->is_visible_in_tree())
|
|
if (!n2d->is_visible_in_tree())
|
|
@@ -3111,7 +3099,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- Node2D *n2d = E->key()->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *n2d = Object::cast_to<Node2D>(E->key());
|
|
if (!n2d)
|
|
if (!n2d)
|
|
continue;
|
|
continue;
|
|
if (!n2d->is_visible_in_tree())
|
|
if (!n2d->is_visible_in_tree())
|
|
@@ -3130,7 +3118,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (List<Node *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->get());
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
if (!canvas_item || !canvas_item->is_visible_in_tree())
|
|
continue;
|
|
continue;
|
|
|
|
|
|
@@ -3151,7 +3139,7 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
|
|
|
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
|
|
|
|
- CanvasItem *n2d = E->key()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *n2d = Object::cast_to<CanvasItem>(E->key());
|
|
if (!n2d)
|
|
if (!n2d)
|
|
continue;
|
|
continue;
|
|
if (!n2d->is_visible_in_tree())
|
|
if (!n2d->is_visible_in_tree())
|
|
@@ -3202,7 +3190,7 @@ void CanvasItemEditor::_focus_selection(int p_op) {
|
|
|
|
|
|
Map<Node *, Object *> &selection = editor_selection->get_selection();
|
|
Map<Node *, Object *> &selection = editor_selection->get_selection();
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
for (Map<Node *, Object *>::Element *E = selection.front(); E; E = E->next()) {
|
|
- CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
|
|
|
|
|
+ CanvasItem *canvas_item = Object::cast_to<CanvasItem>(E->key());
|
|
if (!canvas_item) continue;
|
|
if (!canvas_item) continue;
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
if (canvas_item->get_viewport() != EditorNode::get_singleton()->get_scene_root())
|
|
continue;
|
|
continue;
|
|
@@ -3302,7 +3290,7 @@ void CanvasItemEditor::box_selection_start( Point2 &click ) {
|
|
bool CanvasItemEditor::box_selection_end() {
|
|
bool CanvasItemEditor::box_selection_end() {
|
|
print_line( "box selection end" );
|
|
print_line( "box selection end" );
|
|
|
|
|
|
- Node* scene = get_scene()->get_root_node()->cast_to<EditorNode>()->get_edited_scene();
|
|
|
|
|
|
+ Node* scene = Object::cast_to<EditorNode>(get_scene()->get_root_node())->get_edited_scene();
|
|
if (scene) {
|
|
if (scene) {
|
|
|
|
|
|
List<CanvasItem*> selitems;
|
|
List<CanvasItem*> selitems;
|
|
@@ -3651,7 +3639,7 @@ CanvasItemEditor *CanvasItemEditor::singleton = NULL;
|
|
void CanvasItemEditorPlugin::edit(Object *p_object) {
|
|
void CanvasItemEditorPlugin::edit(Object *p_object) {
|
|
|
|
|
|
canvas_item_editor->set_undo_redo(&get_undo_redo());
|
|
canvas_item_editor->set_undo_redo(&get_undo_redo());
|
|
- canvas_item_editor->edit(p_object->cast_to<CanvasItem>());
|
|
|
|
|
|
+ canvas_item_editor->edit(Object::cast_to<CanvasItem>(p_object));
|
|
}
|
|
}
|
|
|
|
|
|
bool CanvasItemEditorPlugin::handles(Object *p_object) const {
|
|
bool CanvasItemEditorPlugin::handles(Object *p_object) const {
|
|
@@ -3704,7 +3692,7 @@ void CanvasItemEditorViewport::_on_mouse_exit() {
|
|
}
|
|
}
|
|
|
|
|
|
void CanvasItemEditorViewport::_on_select_type(Object *selected) {
|
|
void CanvasItemEditorViewport::_on_select_type(Object *selected) {
|
|
- CheckBox *check = selected->cast_to<CheckBox>();
|
|
|
|
|
|
+ CheckBox *check = Object::cast_to<CheckBox>(selected);
|
|
String type = check->get_text();
|
|
String type = check->get_text();
|
|
selector_label->set_text(vformat(TTR("Add %s"), type));
|
|
selector_label->set_text(vformat(TTR("Add %s"), type));
|
|
label->set_text(vformat(TTR("Adding %s..."), type));
|
|
label->set_text(vformat(TTR("Adding %s..."), type));
|
|
@@ -3714,7 +3702,7 @@ void CanvasItemEditorViewport::_on_change_type() {
|
|
if (!button_group->get_pressed_button())
|
|
if (!button_group->get_pressed_button())
|
|
return;
|
|
return;
|
|
|
|
|
|
- CheckBox *check = button_group->get_pressed_button()->cast_to<CheckBox>();
|
|
|
|
|
|
+ CheckBox *check = Object::cast_to<CheckBox>(button_group->get_pressed_button());
|
|
default_type = check->get_text();
|
|
default_type = check->get_text();
|
|
_perform_drop_data();
|
|
_perform_drop_data();
|
|
selector->hide();
|
|
selector->hide();
|
|
@@ -3726,8 +3714,8 @@ void CanvasItemEditorViewport::_create_preview(const Vector<String> &files) cons
|
|
for (int i = 0; i < files.size(); i++) {
|
|
for (int i = 0; i < files.size(); i++) {
|
|
String path = files[i];
|
|
String path = files[i];
|
|
RES res = ResourceLoader::load(path);
|
|
RES res = ResourceLoader::load(path);
|
|
- Ref<Texture> texture = Ref<Texture>(res->cast_to<Texture>());
|
|
|
|
- Ref<PackedScene> scene = Ref<PackedScene>(res->cast_to<PackedScene>());
|
|
|
|
|
|
+ Ref<Texture> texture = Ref<Texture>(Object::cast_to<Texture>(*res));
|
|
|
|
+ Ref<PackedScene> scene = Ref<PackedScene>(Object::cast_to<PackedScene>(*res));
|
|
if (texture != NULL || scene != NULL) {
|
|
if (texture != NULL || scene != NULL) {
|
|
if (texture != NULL) {
|
|
if (texture != NULL) {
|
|
Sprite *sprite = memnew(Sprite);
|
|
Sprite *sprite = memnew(Sprite);
|
|
@@ -3778,7 +3766,7 @@ bool CanvasItemEditorViewport::_cyclical_dependency_exists(const String &p_targe
|
|
|
|
|
|
void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String &path, const Point2 &p_point) {
|
|
void CanvasItemEditorViewport::_create_nodes(Node *parent, Node *child, String &path, const Point2 &p_point) {
|
|
child->set_name(path.get_file().get_basename());
|
|
child->set_name(path.get_file().get_basename());
|
|
- Ref<Texture> texture = Ref<Texture>(ResourceCache::get(path)->cast_to<Texture>());
|
|
|
|
|
|
+ Ref<Texture> texture = Object::cast_to<Texture>(Ref<Texture>(ResourceCache::get(path)).ptr());
|
|
Size2 texture_size = texture->get_size();
|
|
Size2 texture_size = texture->get_size();
|
|
|
|
|
|
editor_data->get_undo_redo().add_do_method(parent, "add_child", child);
|
|
editor_data->get_undo_redo().add_do_method(parent, "add_child", child);
|
|
@@ -3867,11 +3855,11 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons
|
|
editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name));
|
|
editor_data->get_undo_redo().add_undo_method(sed, "live_debug_remove_node", NodePath(String(editor->get_edited_scene()->get_path_to(parent)) + "/" + new_name));
|
|
|
|
|
|
Point2 pos;
|
|
Point2 pos;
|
|
- Node2D *parent_node2d = parent->cast_to<Node2D>();
|
|
|
|
|
|
+ Node2D *parent_node2d = Object::cast_to<Node2D>(parent);
|
|
if (parent_node2d) {
|
|
if (parent_node2d) {
|
|
pos = parent_node2d->get_global_position();
|
|
pos = parent_node2d->get_global_position();
|
|
} else {
|
|
} else {
|
|
- Control *parent_control = parent->cast_to<Control>();
|
|
|
|
|
|
+ Control *parent_control = Object::cast_to<Control>(parent);
|
|
if (parent_control) {
|
|
if (parent_control) {
|
|
pos = parent_control->get_global_position();
|
|
pos = parent_control->get_global_position();
|
|
}
|
|
}
|
|
@@ -3879,7 +3867,7 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons
|
|
Transform2D trans = canvas->get_canvas_transform();
|
|
Transform2D trans = canvas->get_canvas_transform();
|
|
Vector2 target_pos = (p_point - trans.get_origin()) / trans.get_scale().x - pos;
|
|
Vector2 target_pos = (p_point - trans.get_origin()) / trans.get_scale().x - pos;
|
|
// in relative snapping it may be useful for the user to take the original node position into account
|
|
// in relative snapping it may be useful for the user to take the original node position into account
|
|
- Vector2 start_pos = instanced_scene->cast_to<Node2D>() ? instanced_scene->cast_to<Node2D>()->get_position() : target_pos;
|
|
|
|
|
|
+ Vector2 start_pos = Object::cast_to<Node2D>(instanced_scene) ? Object::cast_to<Node2D>(instanced_scene)->get_position() : target_pos;
|
|
target_pos = canvas->snap_point(target_pos, start_pos);
|
|
target_pos = canvas->snap_point(target_pos, start_pos);
|
|
editor_data->get_undo_redo().add_do_method(instanced_scene, "set_position", target_pos);
|
|
editor_data->get_undo_redo().add_do_method(instanced_scene, "set_position", target_pos);
|
|
|
|
|
|
@@ -3899,8 +3887,8 @@ void CanvasItemEditorViewport::_perform_drop_data() {
|
|
if (res.is_null()) {
|
|
if (res.is_null()) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- Ref<Texture> texture = Ref<Texture>(res->cast_to<Texture>());
|
|
|
|
- Ref<PackedScene> scene = Ref<PackedScene>(res->cast_to<PackedScene>());
|
|
|
|
|
|
+ Ref<Texture> texture = Ref<Texture>(Object::cast_to<Texture>(*res));
|
|
|
|
+ Ref<PackedScene> scene = Ref<PackedScene>(Object::cast_to<PackedScene>(*res));
|
|
if (texture != NULL) {
|
|
if (texture != NULL) {
|
|
Node *child;
|
|
Node *child;
|
|
if (default_type == "Light2D")
|
|
if (default_type == "Light2D")
|
|
@@ -4016,7 +4004,7 @@ void CanvasItemEditorViewport::drop_data(const Point2 &p_point, const Variant &p
|
|
button_group->get_buttons(&btn_list);
|
|
button_group->get_buttons(&btn_list);
|
|
|
|
|
|
for (int i = 0; i < btn_list.size(); i++) {
|
|
for (int i = 0; i < btn_list.size(); i++) {
|
|
- CheckBox *check = btn_list[i]->cast_to<CheckBox>();
|
|
|
|
|
|
+ CheckBox *check = Object::cast_to<CheckBox>(btn_list[i]);
|
|
check->set_pressed(check->get_text() == default_type);
|
|
check->set_pressed(check->get_text() == default_type);
|
|
}
|
|
}
|
|
selector_label->set_text(vformat(TTR("Add %s"), default_type));
|
|
selector_label->set_text(vformat(TTR("Add %s"), default_type));
|