Skip to content
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
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
#include <cassert>

MultiPicker *WorldScape3DGradientOperationBuilder::get_point_picker() const {
return Object::cast_to<MultiPicker>(_tool_settings->convert_setting("gradient_points"));
return Object::cast_to<MultiPicker>(_tool_settings->get_setting("gradient_points"));
}

real_t WorldScape3DGradientOperationBuilder::get_brush_size() const {
Expand Down
4 changes: 4 additions & 0 deletions modules/worldscape_3d/editor/ui/worldscape_3d_tools.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,10 @@ void WorldScape3DToolSettings::add_setting(const Dictionary &setting) {
list->add_child(container, true);
}

Variant WorldScape3DToolSettings::get_setting(const String &setting) const {
return _settings[setting];
}

Variant WorldScape3DToolSettings::convert_setting(const String &setting) const {
Variant obj = _settings[setting];
if (obj.is_null()) {
Expand Down
1 change: 1 addition & 0 deletions modules/worldscape_3d/editor/ui/worldscape_3d_tools.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ class WorldScape3DToolSettings : public PanelContainer {
VBoxContainer *color_list() const { return _color_list; }

Variant convert_setting(const String &setting) const;
Variant get_setting(const String &setting) const;
void set_setting(const String &setting, Variant value);
void show_settings(const PackedStringArray &settings);
void on_setting_changed(Variant setting = {});
Expand Down
6 changes: 3 additions & 3 deletions modules/worldscape_3d/editor/ui/worldscape_3d_ui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -529,6 +529,9 @@ void WorldScape3DUI::update_decal() {
}
}

editor_decal_visible.set(1, false);
editor_decal_visible.set(2, false);

if (_active_operation == WorldScape3DEditor::Operation::GRADIENT && _brush_data.has("gradient_points")) {
if (auto points = static_cast<PackedVector3Array>(_brush_data["gradient_points"]); points.size() == 2) {
auto point1 = points[0];
Expand All @@ -546,9 +549,6 @@ void WorldScape3DUI::update_decal() {
editor_decal_position.set(2, Vector2{ point2.x, point2.z });
}
}
} else {
editor_decal_visible.set(1, false);
editor_decal_visible.set(2, false);
}

editor_decal_color.set(0, color);
Expand Down
2 changes: 1 addition & 1 deletion modules/worldscape_3d/editor/worldscape_3d_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ void WorldScape3DEditor::_operate_map(const Vector3 &p_global_position, const re
// The slope tool must not be used until both points have been picked
PackedVector3Array gradient_points = _brush_data["gradient_points"];
if (map_type == TYPE_HEIGHT && _operation == GRADIENT) {
if (gradient_points[0].is_equal_approx(gradient_points[1])) {
if (gradient_points[0].distance_squared_to(gradient_points[1]) < 0.125f) {
LOG(ERROR, "The slope tool requires two distinct points to be picked");
return;
}
Expand Down
Loading