various fixes + chunk dragger

This commit is contained in:
Skarn
2022-02-09 22:20:20 +03:00
parent 207942c549
commit 1576186a35
6 changed files with 29 additions and 43 deletions

View File

@@ -752,7 +752,6 @@ void Noggit::Action::registerAllChunkChanges(MapChunk* chunk)
registerChunkLiquidChange(chunk);
registerVertexSelectionChange();
registerChunkShadowChange(chunk);
registerAllChunkChanges(chunk);
}
Noggit::Action::~Action()

View File

@@ -39,6 +39,7 @@
#include <noggit/ui/tools/UiCommon/ImageBrowser.hpp>
#include <noggit/ui/tools/BrushStack/BrushStack.hpp>
#include <noggit/ui/tools/LightEditor/LightEditor.hpp>
#include <noggit/ui/tools/ChunkManipulator/ChunkManipulator.hpp>
#include <external/imguipiemenu/PieMenu.hpp>
#include <external/tracy/Tracy.hpp>
#include <noggit/ui/object_palette.hpp>
@@ -204,7 +205,7 @@ ACTION_CODE
static const float XSENS = 15.0f;
static const float YSENS = 15.0f;
void MapView::set_editing_mode (editing_mode mode)
void MapView::set_editing_mode(editing_mode mode)
{
{
@@ -835,6 +836,12 @@ void MapView::setupLightEditorUi()
_tool_panel_dock->registerTool("Light Editor", lightEditor);
}
void MapView::setupChunkManipulatorUi()
{
_chunk_manipulator = new Noggit::Ui::Tools::ChunkManipulator(this, this);
_tool_panel_dock->registerTool("Chunk Manipulator", _chunk_manipulator);
}
void MapView::setupNodeEditor()
{
auto _node_editor = new Noggit::Ui::Tools::NodeEditor::Ui::NodeEditorWidget(this);
@@ -2470,6 +2477,9 @@ void MapView::createGUI()
connect(this, &QObject::destroyed, _tool_panel_dock, &QObject::deleteLater);
_main_window->addDockWidget(Qt::RightDockWidgetArea, _tool_panel_dock);
// These calls need to be correctly ordered in order to work with the toolbar.
// TODO: fix
setupRaiseLowerUi();
setupFlattenBlurUi();
setupTexturePainterUi();
@@ -2482,6 +2492,7 @@ void MapView::createGUI()
setupMinimapEditorUi();
setupStampUi();
setupLightEditorUi();
setupChunkManipulatorUi();
setupScriptingUi();
// End combined dock

View File

@@ -61,6 +61,7 @@ namespace Noggit
{
class BrushStack;
class LightEditor;
class ChunkManipulator;
}
namespace Scripting
@@ -393,6 +394,7 @@ private:
Noggit::Ui::MinimapCreator* minimapTool;
Noggit::Ui::Tools::BrushStack* stampTool;
Noggit::Ui::Tools::LightEditor* lightEditor;
Noggit::Ui::Tools::ChunkManipulator* _chunk_manipulator;
Noggit::Scripting::scripting_tool* scriptingTool;
OpenGL::texture* const _texBrush;
@@ -440,6 +442,7 @@ private:
void setupStampUi();
void setupLightEditorUi();
void setupScriptingUi();
void setupChunkManipulatorUi();
void setupNodeEditor();
void setupAssetBrowser();
void setupDetailInfos();

View File

@@ -133,32 +133,3 @@ namespace Noggit::Application
LogError << "std::terminate: " << reason << std::endl;
}
}
/* I wonder if you would correctly guess the reason of this being here... */
template < typename Char >
requires (std::is_same_v<Char, wchar_t> || std::is_same_v<Char, char>)
auto convert
(
Char const* src,
std::string* dst
)
-> char const*
{
if constexpr (std::is_same_v<Char, char>)
{
*dst = src;
return dst->c_str();
}
std::string mbc(MB_CUR_MAX, '\0');
dst->clear();
while (*src)
{
std::wctomb(mbc.data(), *src++);
dst->append(mbc.c_str());
}
return dst->c_str();
}

View File

@@ -74,7 +74,8 @@ enum class editing_mode
minimap = 9,
stamp = 10,
light = 11,
scripting = 12
scripting = 12,
chunk = 13
};
enum water_opacity

View File

@@ -14,19 +14,20 @@ namespace Noggit
setAllowedAreas(Qt::LeftToolBarArea);
setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
add_tool_icon (editing_mode::ground, tr("Raise / Lower"), FontNoggit::TOOL_RAISE_LOWER);
add_tool_icon (editing_mode::flatten_blur, tr("Flatten / Blur"), FontNoggit::TOOL_FLATTEN_BLUR);
add_tool_icon (editing_mode::paint, tr("Texture Painter"), FontNoggit::TOOL_TEXTURE_PAINT);
add_tool_icon (editing_mode::holes, tr("Hole Cutter"), FontNoggit::TOOL_HOLE_CUTTER);
add_tool_icon (editing_mode::areaid, tr("Area Designator"), FontNoggit::TOOL_AREA_DESIGNATOR);
add_tool_icon (editing_mode::flags, tr("Impass Designator"), FontNoggit::TOOL_IMPASS_DESIGNATOR);
add_tool_icon (editing_mode::water, tr("Water Editor"), FontNoggit::TOOL_WATER_EDITOR);
add_tool_icon (editing_mode::mccv, tr("Vertex Painter"), FontNoggit::TOOL_VERTEX_PAINT);
add_tool_icon (editing_mode::object, tr("Object Editor"), FontNoggit::TOOL_OBJECT_EDITOR);
add_tool_icon (editing_mode::minimap, tr("Minimap Editor"), FontNoggit::TOOL_MINIMAP_EDITOR);
add_tool_icon(editing_mode::ground, tr("Raise / Lower"), FontNoggit::TOOL_RAISE_LOWER);
add_tool_icon(editing_mode::flatten_blur, tr("Flatten / Blur"), FontNoggit::TOOL_FLATTEN_BLUR);
add_tool_icon(editing_mode::paint, tr("Texture Painter"), FontNoggit::TOOL_TEXTURE_PAINT);
add_tool_icon(editing_mode::holes, tr("Hole Cutter"), FontNoggit::TOOL_HOLE_CUTTER);
add_tool_icon(editing_mode::areaid, tr("Area Designator"), FontNoggit::TOOL_AREA_DESIGNATOR);
add_tool_icon(editing_mode::flags, tr("Impass Designator"), FontNoggit::TOOL_IMPASS_DESIGNATOR);
add_tool_icon(editing_mode::water, tr("Water Editor"), FontNoggit::TOOL_WATER_EDITOR);
add_tool_icon(editing_mode::mccv, tr("Vertex Painter"), FontNoggit::TOOL_VERTEX_PAINT);
add_tool_icon(editing_mode::object, tr("Object Editor"), FontNoggit::TOOL_OBJECT_EDITOR);
add_tool_icon(editing_mode::minimap, tr("Minimap Editor"), FontNoggit::TOOL_MINIMAP_EDITOR);
add_tool_icon(editing_mode::stamp, tr("Stamp Mode"), FontNoggit::TOOL_STAMP);
add_tool_icon(editing_mode::light, tr("Light Editor"), FontNoggit::TOOL_STAMP);
add_tool_icon (editing_mode::scripting, tr("Scripting"), FontNoggit::INFO);
add_tool_icon(editing_mode::scripting, tr("Scripting"), FontNoggit::INFO);
add_tool_icon(editing_mode::chunk, tr("Chunk Manipulator"), FontNoggit::INFO);
}
void toolbar::add_tool_icon(editing_mode mode, const QString& name, const FontNoggit::Icons& icon)