mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2025-02-18 21:54:21 +01:00
Removed the add and remove single tools from TerrainWorldEditor as they are not very useful for a terrain engine.
This commit is contained in:
parent
da336fdb73
commit
33bd758806
@ -81,9 +81,6 @@ EditorPlugin::AfterGUIInput TerrainWorldEditor::forward_spatial_input_event(Came
|
|||||||
if (mm.is_valid()) {
|
if (mm.is_valid()) {
|
||||||
if (!_mouse_down) {
|
if (!_mouse_down) {
|
||||||
switch (_tool_mode) {
|
switch (_tool_mode) {
|
||||||
case TOOL_MODE_ADD:
|
|
||||||
case TOOL_MODE_REMOVE: {
|
|
||||||
} break;
|
|
||||||
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
||||||
Vector3 position;
|
Vector3 position;
|
||||||
Vector3 normal;
|
Vector3 normal;
|
||||||
@ -124,9 +121,6 @@ EditorPlugin::AfterGUIInput TerrainWorldEditor::forward_spatial_input_event(Came
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (_tool_mode) {
|
switch (_tool_mode) {
|
||||||
case TOOL_MODE_ADD:
|
|
||||||
case TOOL_MODE_REMOVE: {
|
|
||||||
} break;
|
|
||||||
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
||||||
Vector3 position;
|
Vector3 position;
|
||||||
Vector3 normal;
|
Vector3 normal;
|
||||||
@ -176,9 +170,6 @@ EditorPlugin::AfterGUIInput TerrainWorldEditor::forward_spatial_input_event(Came
|
|||||||
if (mb->is_pressed()) {
|
if (mb->is_pressed()) {
|
||||||
if (mb->get_button_index() == BUTTON_LEFT) {
|
if (mb->get_button_index() == BUTTON_LEFT) {
|
||||||
switch (_tool_mode) {
|
switch (_tool_mode) {
|
||||||
case TOOL_MODE_ADD:
|
|
||||||
case TOOL_MODE_REMOVE:
|
|
||||||
return do_add_remove_action(p_camera, Point2(mb->get_position().x, mb->get_position().y), true);
|
|
||||||
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
||||||
Vector3 position;
|
Vector3 position;
|
||||||
Vector3 normal;
|
Vector3 normal;
|
||||||
@ -243,9 +234,6 @@ EditorPlugin::AfterGUIInput TerrainWorldEditor::forward_spatial_input_event(Came
|
|||||||
} else {
|
} else {
|
||||||
if (mb->get_button_index() == BUTTON_LEFT) {
|
if (mb->get_button_index() == BUTTON_LEFT) {
|
||||||
switch (_tool_mode) {
|
switch (_tool_mode) {
|
||||||
case TOOL_MODE_ADD:
|
|
||||||
case TOOL_MODE_REMOVE:
|
|
||||||
break;
|
|
||||||
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
||||||
create_undo_point(_current_action, _isolevel_brush_channel, _isolevel_brush_allow_creating_chunks_button);
|
create_undo_point(_current_action, _isolevel_brush_channel, _isolevel_brush_allow_creating_chunks_button);
|
||||||
} break;
|
} break;
|
||||||
@ -274,76 +262,6 @@ EditorPlugin::AfterGUIInput TerrainWorldEditor::forward_spatial_input_event(Came
|
|||||||
return EditorPlugin::AFTER_GUI_INPUT_PASS;
|
return EditorPlugin::AFTER_GUI_INPUT_PASS;
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorPlugin::AfterGUIInput TerrainWorldEditor::do_add_remove_action(Camera *p_camera, const Point2 &p_point, bool p_click) {
|
|
||||||
Camera *camera = p_camera;
|
|
||||||
Vector3 from = camera->project_ray_origin(p_point);
|
|
||||||
Vector3 to = from + camera->project_ray_normal(p_point) * 10000;
|
|
||||||
Transform local_xform = _world->get_global_transform().affine_inverse();
|
|
||||||
|
|
||||||
from = local_xform.xform(from);
|
|
||||||
to = local_xform.xform(to);
|
|
||||||
|
|
||||||
PhysicsDirectSpaceState *ss = _world->get_world_3d()->get_direct_space_state();
|
|
||||||
|
|
||||||
PhysicsDirectSpaceState::RayResult res;
|
|
||||||
|
|
||||||
if (ss->intersect_ray(from, to, res)) {
|
|
||||||
int selected_terrain = 0;
|
|
||||||
int channel = 0;
|
|
||||||
|
|
||||||
channel = _channel_type;
|
|
||||||
|
|
||||||
if (channel == -1) {
|
|
||||||
return EditorPlugin::AFTER_GUI_INPUT_PASS;
|
|
||||||
}
|
|
||||||
|
|
||||||
int isolevel = _add_remove_current_isolevel;
|
|
||||||
bool mode_add = false;
|
|
||||||
|
|
||||||
if (_tool_mode == TOOL_MODE_ADD) {
|
|
||||||
selected_terrain = _selected_type + 1;
|
|
||||||
mode_add = true;
|
|
||||||
_undo_redo->create_action("Add terrain voxel.");
|
|
||||||
} else if (_tool_mode == TOOL_MODE_REMOVE) {
|
|
||||||
selected_terrain = 0;
|
|
||||||
isolevel = 0;
|
|
||||||
mode_add = false;
|
|
||||||
_undo_redo->create_action("Remove terrain voxel.");
|
|
||||||
}
|
|
||||||
|
|
||||||
Vector3 pos;
|
|
||||||
|
|
||||||
if (mode_add) {
|
|
||||||
pos = (res.position + (Vector3(0.1, 0.1, 0.1) * res.normal * _world->get_voxel_scale()));
|
|
||||||
} else {
|
|
||||||
pos = (res.position + (Vector3(0.1, 0.1, 0.1) * -res.normal * _world->get_voxel_scale()));
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t prev_terrain = _world->get_voxel_at_world_position(pos, _channel_type);
|
|
||||||
uint8_t prev_isolevel = 0;
|
|
||||||
|
|
||||||
if (_channel_isolevel != -1) {
|
|
||||||
prev_isolevel = _world->get_voxel_at_world_position(pos, _channel_isolevel);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_channel_isolevel == -1) {
|
|
||||||
_undo_redo->add_do_method(_world, "set_voxel_at_world_position", pos, selected_terrain, _channel_type);
|
|
||||||
_undo_redo->add_undo_method(_world, "set_voxel_at_world_position", pos, prev_terrain, _channel_type);
|
|
||||||
} else {
|
|
||||||
_undo_redo->add_do_method(_world, "set_voxel_at_world_position", pos, selected_terrain, _channel_type, false);
|
|
||||||
_undo_redo->add_do_method(_world, "set_voxel_at_world_position", pos, isolevel, _channel_isolevel);
|
|
||||||
_undo_redo->add_undo_method(_world, "set_voxel_at_world_position", pos, prev_terrain, _channel_type, false);
|
|
||||||
_undo_redo->add_undo_method(_world, "set_voxel_at_world_position", pos, prev_isolevel, _channel_isolevel);
|
|
||||||
}
|
|
||||||
|
|
||||||
_undo_redo->commit_action();
|
|
||||||
|
|
||||||
return EditorPlugin::AFTER_GUI_INPUT_STOP;
|
|
||||||
}
|
|
||||||
|
|
||||||
return EditorPlugin::AFTER_GUI_INPUT_PASS;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TerrainWorldEditor::get_draw_world_coordinate(Camera *p_camera, const Point2 &p_point, Vector3 &r_position, Vector3 &r_normal) {
|
bool TerrainWorldEditor::get_draw_world_coordinate(Camera *p_camera, const Point2 &p_point, Vector3 &r_position, Vector3 &r_normal) {
|
||||||
Camera *camera = p_camera;
|
Camera *camera = p_camera;
|
||||||
Vector3 from = camera->project_ray_origin(p_point);
|
Vector3 from = camera->project_ray_origin(p_point);
|
||||||
@ -513,9 +431,6 @@ void TerrainWorldEditor::edit(TerrainWorld *p_world) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (_tool_mode) {
|
switch (_tool_mode) {
|
||||||
case TOOL_MODE_ADD:
|
|
||||||
case TOOL_MODE_REMOVE:
|
|
||||||
break;
|
|
||||||
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
case TOOL_MODE_ISOLEVEL_BRUSH: {
|
||||||
_gizmo->size = _isolevel_brush_size;
|
_gizmo->size = _isolevel_brush_size;
|
||||||
} break;
|
} break;
|
||||||
@ -545,14 +460,6 @@ void TerrainWorldEditor::edit(TerrainWorld *p_world) {
|
|||||||
_paint_brush_channel = _channel_type;
|
_paint_brush_channel = _channel_type;
|
||||||
_paint_brush_channel_select_sb->set_value(_paint_brush_channel);
|
_paint_brush_channel_select_sb->set_value(_paint_brush_channel);
|
||||||
|
|
||||||
if (_channel_isolevel == -1) {
|
|
||||||
_add_remove_isolevel_slider_label->hide();
|
|
||||||
_add_remove_isolevel_slider->hide();
|
|
||||||
} else {
|
|
||||||
_add_remove_isolevel_slider_label->show();
|
|
||||||
_add_remove_isolevel_slider->show();
|
|
||||||
}
|
|
||||||
|
|
||||||
_isolevel_brush_channel_select_sb->set_value(_channel_isolevel);
|
_isolevel_brush_channel_select_sb->set_value(_channel_isolevel);
|
||||||
_isolevel_brush_channel = _channel_isolevel;
|
_isolevel_brush_channel = _channel_isolevel;
|
||||||
|
|
||||||
@ -622,7 +529,6 @@ TerrainWorldEditor::TerrainWorldEditor() {
|
|||||||
_world = NULL;
|
_world = NULL;
|
||||||
_selected_type = -1;
|
_selected_type = -1;
|
||||||
_channel_type = -1;
|
_channel_type = -1;
|
||||||
_add_remove_current_isolevel = 255;
|
|
||||||
_channel_isolevel = -1;
|
_channel_isolevel = -1;
|
||||||
_editor = NULL;
|
_editor = NULL;
|
||||||
_tool_mode = TOOL_MODE_ISOLEVEL_BRUSH;
|
_tool_mode = TOOL_MODE_ISOLEVEL_BRUSH;
|
||||||
@ -652,7 +558,6 @@ TerrainWorldEditor::TerrainWorldEditor(EditorNode *p_editor) {
|
|||||||
_world = NULL;
|
_world = NULL;
|
||||||
_selected_type = -1;
|
_selected_type = -1;
|
||||||
_channel_type = -1;
|
_channel_type = -1;
|
||||||
_add_remove_current_isolevel = 255;
|
|
||||||
_channel_isolevel = -1;
|
_channel_isolevel = -1;
|
||||||
|
|
||||||
_mouse_down = false;
|
_mouse_down = false;
|
||||||
@ -732,61 +637,8 @@ TerrainWorldEditor::TerrainWorldEditor(EditorNode *p_editor) {
|
|||||||
_chunk_remove_button->set_shortcut(ED_SHORTCUT("terrain_world_editor/chunk_remove", "Chunk Remove", KEY_U));
|
_chunk_remove_button->set_shortcut(ED_SHORTCUT("terrain_world_editor/chunk_remove", "Chunk Remove", KEY_U));
|
||||||
_tool_button_container->add_child(_chunk_remove_button);
|
_tool_button_container->add_child(_chunk_remove_button);
|
||||||
|
|
||||||
_add_button = memnew(ToolButton);
|
|
||||||
//_add_button->set_text("Add");
|
|
||||||
_add_button->set_toggle_mode(true);
|
|
||||||
_add_button->set_button_group(_tool_button_group);
|
|
||||||
_add_button->set_meta("tool_mode", TOOL_MODE_ADD);
|
|
||||||
_add_button->connect("button_up", this, "_on_tool_button_pressed");
|
|
||||||
_add_button->set_shortcut(ED_SHORTCUT("terrain_world_editor/add_single_mode", "Add Single Voxel Mode", KEY_A));
|
|
||||||
_tool_button_container->add_child(_add_button);
|
|
||||||
|
|
||||||
_remove_button = memnew(ToolButton);
|
|
||||||
//_remove_button->set_text("Remove");
|
|
||||||
_remove_button->set_toggle_mode(true);
|
|
||||||
_remove_button->set_button_group(_tool_button_group);
|
|
||||||
_remove_button->set_meta("tool_mode", TOOL_MODE_REMOVE);
|
|
||||||
_remove_button->connect("button_up", this, "_on_tool_button_pressed");
|
|
||||||
_remove_button->set_shortcut(ED_SHORTCUT("terrain_world_editor/remove_single_mode", "Remove Single Voxel Mode", KEY_S));
|
|
||||||
_tool_button_container->add_child(_remove_button);
|
|
||||||
|
|
||||||
main_container->add_child(memnew(HSeparator));
|
main_container->add_child(memnew(HSeparator));
|
||||||
|
|
||||||
// Add Remove tool
|
|
||||||
_add_remove_tool_container = memnew(VBoxContainer);
|
|
||||||
_add_remove_tool_container->hide();
|
|
||||||
main_container->add_child(_add_remove_tool_container);
|
|
||||||
|
|
||||||
_add_single_label = memnew(Label);
|
|
||||||
_add_single_label->set_text(TTR("Add Single Tool"));
|
|
||||||
_add_remove_tool_container->add_child(_add_single_label);
|
|
||||||
|
|
||||||
_remove_single_label = memnew(Label);
|
|
||||||
_remove_single_label->set_text(TTR("Remove Single Tool"));
|
|
||||||
_remove_single_label->hide();
|
|
||||||
_add_remove_tool_container->add_child(_remove_single_label);
|
|
||||||
|
|
||||||
_insert_button = memnew(ToolButton);
|
|
||||||
//_insert_button->set_text("Insert");
|
|
||||||
_insert_button->connect("button_up", this, "_on_insert_block_at_camera_button_pressed");
|
|
||||||
_insert_button->set_shortcut(ED_SHORTCUT("terrain_world_editor/instert_block_at_camera", "Insert at camera", KEY_B));
|
|
||||||
_add_remove_tool_container->add_child(_insert_button);
|
|
||||||
|
|
||||||
_add_remove_isolevel_slider_label = memnew(Label);
|
|
||||||
_add_remove_isolevel_slider_label->set_text(TTR("Isolevel"));
|
|
||||||
_add_remove_tool_container->add_child(_add_remove_isolevel_slider_label);
|
|
||||||
|
|
||||||
_add_remove_isolevel_slider = memnew(HSlider);
|
|
||||||
_add_remove_isolevel_slider->set_min(1);
|
|
||||||
_add_remove_isolevel_slider->set_value(_add_remove_current_isolevel);
|
|
||||||
_add_remove_isolevel_slider->set_custom_minimum_size(Size2(50 * EDSCALE, 0));
|
|
||||||
_add_remove_isolevel_slider->set_v_size_flags(SIZE_EXPAND_FILL);
|
|
||||||
_add_remove_isolevel_slider->set_h_size_flags(SIZE_EXPAND_FILL);
|
|
||||||
_add_remove_isolevel_slider->set_tooltip(TTR("Isolevel"));
|
|
||||||
_add_remove_tool_container->add_child(_add_remove_isolevel_slider);
|
|
||||||
_add_remove_isolevel_slider->connect("value_changed", this, "_on_add_remove_isolevel_slider_value_changed");
|
|
||||||
_add_remove_isolevel_slider->hide();
|
|
||||||
|
|
||||||
// Isolevel Brush
|
// Isolevel Brush
|
||||||
_isolevel_brush_tool_container = memnew(VBoxContainer);
|
_isolevel_brush_tool_container = memnew(VBoxContainer);
|
||||||
main_container->add_child(_isolevel_brush_tool_container);
|
main_container->add_child(_isolevel_brush_tool_container);
|
||||||
@ -971,9 +823,6 @@ void TerrainWorldEditor::_notification(int p_what) {
|
|||||||
switch (p_what) {
|
switch (p_what) {
|
||||||
case NOTIFICATION_ENTER_TREE:
|
case NOTIFICATION_ENTER_TREE:
|
||||||
case NOTIFICATION_THEME_CHANGED: {
|
case NOTIFICATION_THEME_CHANGED: {
|
||||||
_add_button->set_icon(get_theme_icon("Add", "EditorIcons"));
|
|
||||||
_remove_button->set_icon(get_theme_icon("Remove", "EditorIcons"));
|
|
||||||
_insert_button->set_icon(get_theme_icon("InsertBefore", "EditorIcons"));
|
|
||||||
_isolevel_brush_button->set_icon(get_theme_icon("CanvasItem", "EditorIcons"));
|
_isolevel_brush_button->set_icon(get_theme_icon("CanvasItem", "EditorIcons"));
|
||||||
_paint_brush_button->set_icon(get_theme_icon("CanvasItemShader", "EditorIcons"));
|
_paint_brush_button->set_icon(get_theme_icon("CanvasItemShader", "EditorIcons"));
|
||||||
_paint_picker_button->set_icon(get_theme_icon("ColorPick", "EditorIcons"));
|
_paint_picker_button->set_icon(get_theme_icon("ColorPick", "EditorIcons"));
|
||||||
@ -1105,38 +954,19 @@ void TerrainWorldEditor::_on_tool_button_pressed() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
switch (_tool_mode) {
|
switch (_tool_mode) {
|
||||||
case TOOL_MODE_ADD:
|
|
||||||
_add_single_label->show();
|
|
||||||
_remove_single_label->hide();
|
|
||||||
_add_remove_tool_container->show();
|
|
||||||
_isolevel_brush_tool_container->hide();
|
|
||||||
_paint_brush_tool_container->hide();
|
|
||||||
_surfaces_vbox_container->hide();
|
|
||||||
break;
|
|
||||||
case TOOL_MODE_REMOVE:
|
|
||||||
_add_single_label->hide();
|
|
||||||
_remove_single_label->show();
|
|
||||||
_add_remove_tool_container->show();
|
|
||||||
_isolevel_brush_tool_container->hide();
|
|
||||||
_paint_brush_tool_container->hide();
|
|
||||||
_surfaces_vbox_container->hide();
|
|
||||||
break;
|
|
||||||
case TOOL_MODE_PAINT_BRUSH:
|
case TOOL_MODE_PAINT_BRUSH:
|
||||||
_gizmo->size = _paint_brush_size;
|
_gizmo->size = _paint_brush_size;
|
||||||
_add_remove_tool_container->hide();
|
|
||||||
_isolevel_brush_tool_container->hide();
|
_isolevel_brush_tool_container->hide();
|
||||||
_paint_brush_tool_container->show();
|
_paint_brush_tool_container->show();
|
||||||
_surfaces_vbox_container->show();
|
_surfaces_vbox_container->show();
|
||||||
break;
|
break;
|
||||||
case TOOL_MODE_ISOLEVEL_BRUSH:
|
case TOOL_MODE_ISOLEVEL_BRUSH:
|
||||||
_gizmo->size = _isolevel_brush_size;
|
_gizmo->size = _isolevel_brush_size;
|
||||||
_add_remove_tool_container->hide();
|
|
||||||
_isolevel_brush_tool_container->show();
|
_isolevel_brush_tool_container->show();
|
||||||
_paint_brush_tool_container->hide();
|
_paint_brush_tool_container->hide();
|
||||||
_surfaces_vbox_container->hide();
|
_surfaces_vbox_container->hide();
|
||||||
break;
|
break;
|
||||||
case TOOL_MODE_PAINT_PICKER:
|
case TOOL_MODE_PAINT_PICKER:
|
||||||
_add_remove_tool_container->hide();
|
|
||||||
_isolevel_brush_tool_container->hide();
|
_isolevel_brush_tool_container->hide();
|
||||||
_paint_brush_tool_container->hide();
|
_paint_brush_tool_container->hide();
|
||||||
_surfaces_vbox_container->hide();
|
_surfaces_vbox_container->hide();
|
||||||
@ -1150,54 +980,6 @@ void TerrainWorldEditor::_on_tool_button_pressed() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TerrainWorldEditor::_on_insert_block_at_camera_button_pressed() {
|
|
||||||
int selected_terrain = 0;
|
|
||||||
int channel = 0;
|
|
||||||
|
|
||||||
channel = _channel_type;
|
|
||||||
|
|
||||||
if (channel == -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
SpatialEditorViewport *vp = SpatialEditor::get_singleton()->get_editor_viewport(0);
|
|
||||||
|
|
||||||
if (!vp)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Camera *cam = vp->get_camera();
|
|
||||||
|
|
||||||
if (!cam)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Vector3 pos = cam->get_transform().origin;
|
|
||||||
selected_terrain = _selected_type + 1;
|
|
||||||
|
|
||||||
_undo_redo->create_action("Insert terrain voxel at camera.");
|
|
||||||
|
|
||||||
uint8_t prev_terrain = _world->get_voxel_at_world_position(pos, _channel_type);
|
|
||||||
uint8_t prev_isolevel = 0;
|
|
||||||
|
|
||||||
if (_channel_isolevel != -1) {
|
|
||||||
prev_isolevel = _world->get_voxel_at_world_position(pos, _channel_isolevel);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (_channel_isolevel == -1) {
|
|
||||||
_undo_redo->add_do_method(_world, "set_voxel_at_world_position", pos, selected_terrain, channel);
|
|
||||||
_undo_redo->add_undo_method(_world, "set_voxel_at_world_position", pos, prev_terrain, channel);
|
|
||||||
} else {
|
|
||||||
_undo_redo->add_do_method(_world, "set_voxel_at_world_position", pos, selected_terrain, channel, false);
|
|
||||||
_undo_redo->add_do_method(_world, "set_voxel_at_world_position", pos, _add_remove_current_isolevel, _channel_isolevel);
|
|
||||||
_undo_redo->add_undo_method(_world, "set_voxel_at_world_position", pos, prev_terrain, channel, false);
|
|
||||||
_undo_redo->add_undo_method(_world, "set_voxel_at_world_position", pos, prev_isolevel, _channel_isolevel);
|
|
||||||
}
|
|
||||||
|
|
||||||
_undo_redo->commit_action();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TerrainWorldEditor::_on_add_remove_isolevel_slider_value_changed(float value) {
|
|
||||||
_add_remove_current_isolevel = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
void TerrainWorldEditor::_on_isolevel_brush_tool_button_pressed() {
|
void TerrainWorldEditor::_on_isolevel_brush_tool_button_pressed() {
|
||||||
BaseButton *button = _isolevel_brush_tool_button_group->get_pressed_button();
|
BaseButton *button = _isolevel_brush_tool_button_group->get_pressed_button();
|
||||||
|
|
||||||
@ -1278,9 +1060,6 @@ void TerrainWorldEditor::_bind_methods() {
|
|||||||
ClassDB::bind_method("_on_surface_button_pressed", &TerrainWorldEditor::_on_surface_button_pressed);
|
ClassDB::bind_method("_on_surface_button_pressed", &TerrainWorldEditor::_on_surface_button_pressed);
|
||||||
ClassDB::bind_method("_on_tool_button_pressed", &TerrainWorldEditor::_on_tool_button_pressed);
|
ClassDB::bind_method("_on_tool_button_pressed", &TerrainWorldEditor::_on_tool_button_pressed);
|
||||||
|
|
||||||
ClassDB::bind_method("_on_insert_block_at_camera_button_pressed", &TerrainWorldEditor::_on_insert_block_at_camera_button_pressed);
|
|
||||||
ClassDB::bind_method("_on_add_remove_isolevel_slider_value_changed", &TerrainWorldEditor::_on_add_remove_isolevel_slider_value_changed);
|
|
||||||
|
|
||||||
ClassDB::bind_method("_on_isolevel_brush_tool_button_pressed", &TerrainWorldEditor::_on_isolevel_brush_tool_button_pressed);
|
ClassDB::bind_method("_on_isolevel_brush_tool_button_pressed", &TerrainWorldEditor::_on_isolevel_brush_tool_button_pressed);
|
||||||
ClassDB::bind_method("_on_isolevel_brush_size_slider_changed", &TerrainWorldEditor::_on_isolevel_brush_size_slider_changed);
|
ClassDB::bind_method("_on_isolevel_brush_size_slider_changed", &TerrainWorldEditor::_on_isolevel_brush_size_slider_changed);
|
||||||
ClassDB::bind_method("_on_isolevel_brush_strength_slider_changed", &TerrainWorldEditor::_on_isolevel_brush_strength_slider_changed);
|
ClassDB::bind_method("_on_isolevel_brush_strength_slider_changed", &TerrainWorldEditor::_on_isolevel_brush_strength_slider_changed);
|
||||||
|
@ -51,14 +51,11 @@ class TerrainWorldEditor : public PanelContainer {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
enum TerrainWorldEditorToolMode {
|
enum TerrainWorldEditorToolMode {
|
||||||
TOOL_MODE_ADD = 0,
|
TOOL_MODE_ISOLEVEL_BRUSH = 0,
|
||||||
TOOL_MODE_REMOVE,
|
|
||||||
TOOL_MODE_ISOLEVEL_BRUSH,
|
|
||||||
TOOL_MODE_PAINT_BRUSH,
|
TOOL_MODE_PAINT_BRUSH,
|
||||||
TOOL_MODE_PAINT_PICKER,
|
TOOL_MODE_PAINT_PICKER,
|
||||||
TOOL_MODE_SPAWN_BRUSH,
|
TOOL_MODE_SPAWN_BRUSH,
|
||||||
TOOL_MODE_CHUNK_REMOVE,
|
TOOL_MODE_CHUNK_REMOVE,
|
||||||
//TOOL_MODE_DELETE_BRUSH, //Sets data in channel to 0
|
|
||||||
// TODO object manipulation tools.
|
// TODO object manipulation tools.
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -68,7 +65,6 @@ public:
|
|||||||
EditorPlugin::AfterGUIInput forward_spatial_input_event(Camera *p_camera, const Ref<InputEvent> &p_event);
|
EditorPlugin::AfterGUIInput forward_spatial_input_event(Camera *p_camera, const Ref<InputEvent> &p_event);
|
||||||
|
|
||||||
void edit(TerrainWorld *p_world);
|
void edit(TerrainWorld *p_world);
|
||||||
EditorPlugin::AfterGUIInput do_add_remove_action(Camera *p_camera, const Point2 &p_point, bool p_click);
|
|
||||||
bool get_draw_world_coordinate(Camera *p_camera, const Point2 &p_point, Vector3 &r_position, Vector3 &r_normal);
|
bool get_draw_world_coordinate(Camera *p_camera, const Point2 &p_point, Vector3 &r_position, Vector3 &r_normal);
|
||||||
void isolevel_brush_draw(const Vector3 &p_world_position);
|
void isolevel_brush_draw(const Vector3 &p_world_position);
|
||||||
void paint_brush_draw(const Vector3 &p_world_position);
|
void paint_brush_draw(const Vector3 &p_world_position);
|
||||||
@ -94,8 +90,7 @@ protected:
|
|||||||
|
|
||||||
void _on_surface_button_pressed();
|
void _on_surface_button_pressed();
|
||||||
void _on_tool_button_pressed();
|
void _on_tool_button_pressed();
|
||||||
void _on_insert_block_at_camera_button_pressed();
|
|
||||||
void _on_add_remove_isolevel_slider_value_changed(float value);
|
|
||||||
void _on_isolevel_brush_tool_button_pressed();
|
void _on_isolevel_brush_tool_button_pressed();
|
||||||
void _on_isolevel_brush_size_slider_changed(float value);
|
void _on_isolevel_brush_size_slider_changed(float value);
|
||||||
void _on_isolevel_brush_strength_slider_changed(float value);
|
void _on_isolevel_brush_strength_slider_changed(float value);
|
||||||
@ -156,8 +151,6 @@ private:
|
|||||||
TerrainWorldEditorToolMode _tool_mode;
|
TerrainWorldEditorToolMode _tool_mode;
|
||||||
TerrainWorldEditorToolMode _previous_tool_mode;
|
TerrainWorldEditorToolMode _previous_tool_mode;
|
||||||
|
|
||||||
ToolButton *_add_button;
|
|
||||||
ToolButton *_remove_button;
|
|
||||||
ToolButton *_isolevel_brush_button;
|
ToolButton *_isolevel_brush_button;
|
||||||
ToolButton *_paint_brush_button;
|
ToolButton *_paint_brush_button;
|
||||||
ToolButton *_paint_picker_button;
|
ToolButton *_paint_picker_button;
|
||||||
@ -167,14 +160,6 @@ private:
|
|||||||
HFlowContainer *_tool_button_container;
|
HFlowContainer *_tool_button_container;
|
||||||
Ref<ButtonGroup> _tool_button_group;
|
Ref<ButtonGroup> _tool_button_group;
|
||||||
|
|
||||||
VBoxContainer *_add_remove_tool_container;
|
|
||||||
Label *_add_single_label;
|
|
||||||
Label *_remove_single_label;
|
|
||||||
Label *_add_remove_isolevel_slider_label;
|
|
||||||
HSlider *_add_remove_isolevel_slider;
|
|
||||||
int _add_remove_current_isolevel;
|
|
||||||
ToolButton *_insert_button;
|
|
||||||
|
|
||||||
VBoxContainer *_isolevel_brush_tool_container;
|
VBoxContainer *_isolevel_brush_tool_container;
|
||||||
Ref<ButtonGroup> _isolevel_brush_tool_button_group;
|
Ref<ButtonGroup> _isolevel_brush_tool_button_group;
|
||||||
ToolButton *_isolevel_brush_type_add_button;
|
ToolButton *_isolevel_brush_type_add_button;
|
||||||
|
Loading…
Reference in New Issue
Block a user