|
@@ -35,13 +35,15 @@
|
|
|
|
|
|
void Position2D::_draw_cross() {
|
|
void Position2D::_draw_cross() {
|
|
|
|
|
|
- draw_line(Point2(-10, 0), Point2(+10, 0), Color(1, 0.5, 0.5));
|
|
|
|
- draw_line(Point2(0, -10), Point2(0, +10), Color(0.5, 1, 0.5));
|
|
|
|
|
|
+ float extents = get_gizmo_extents();
|
|
|
|
+ draw_line(Point2(-extents, 0), Point2(+extents, 0), Color(1, 0.5, 0.5));
|
|
|
|
+ draw_line(Point2(0, -extents), Point2(0, +extents), Color(0.5, 1, 0.5));
|
|
}
|
|
}
|
|
|
|
|
|
Rect2 Position2D::_edit_get_rect() const {
|
|
Rect2 Position2D::_edit_get_rect() const {
|
|
|
|
|
|
- return Rect2(Point2(-10, -10), Size2(20, 20));
|
|
|
|
|
|
+ float extents = get_gizmo_extents();
|
|
|
|
+ return Rect2(Point2(-extents, -extents), Size2(extents * 2, extents * 2));
|
|
}
|
|
}
|
|
|
|
|
|
bool Position2D::_edit_use_rect() const {
|
|
bool Position2D::_edit_use_rect() const {
|
|
@@ -66,5 +68,31 @@ void Position2D::_notification(int p_what) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void Position2D::set_gizmo_extents(float p_extents) {
|
|
|
|
+ if (p_extents == DEFAULT_GIZMO_EXTENTS) {
|
|
|
|
+ set_meta("_gizmo_extents_", Variant());
|
|
|
|
+ } else {
|
|
|
|
+ set_meta("_gizmo_extents_", p_extents);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ update();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+float Position2D::get_gizmo_extents() const {
|
|
|
|
+ if (has_meta("_gizmo_extents_")) {
|
|
|
|
+ return get_meta("_gizmo_extents_");
|
|
|
|
+ } else {
|
|
|
|
+ return DEFAULT_GIZMO_EXTENTS;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void Position2D::_bind_methods() {
|
|
|
|
+
|
|
|
|
+ ClassDB::bind_method(D_METHOD("_set_gizmo_extents", "extents"), &Position2D::set_gizmo_extents);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("_get_gizmo_extents"), &Position2D::get_gizmo_extents);
|
|
|
|
+
|
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::REAL, "gizmo_extents", PROPERTY_HINT_RANGE, "0,1000,0.1,or_greater", PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_INTERNAL), "_set_gizmo_extents", "_get_gizmo_extents");
|
|
|
|
+}
|
|
|
|
+
|
|
Position2D::Position2D() {
|
|
Position2D::Position2D() {
|
|
}
|
|
}
|