From 22255493344dee756a6f6f0491a205f7cd2a9eb3 Mon Sep 17 00:00:00 2001 From: iwubcode Date: Tue, 25 Jul 2023 18:02:43 -0500 Subject: [PATCH] VideoCommon: update graphics mod action interface with details needed for editor --- .../Runtime/Actions/MoveAction.cpp | 14 ++++++++++++++ .../GraphicsModSystem/Runtime/Actions/MoveAction.h | 6 ++++++ .../GraphicsModSystem/Runtime/GraphicsModAction.h | 2 ++ 3 files changed, 22 insertions(+) diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp index d141af585c..e6c28a3991 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.cpp @@ -3,6 +3,8 @@ #include "VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h" +#include + std::unique_ptr MoveAction::Create(const picojson::value& json_data) { Common::Vec3 position_offset; @@ -26,10 +28,22 @@ std::unique_ptr MoveAction::Create(const picojson::value& json_data) return std::make_unique(position_offset); } +std::unique_ptr MoveAction::Create() +{ + return std::make_unique(Common::Vec3{}); +} + MoveAction::MoveAction(Common::Vec3 position_offset) : m_position_offset(position_offset) { } +void MoveAction::DrawImGui() +{ + ImGui::InputFloat("X", &m_position_offset.x); + ImGui::InputFloat("Y", &m_position_offset.y); + ImGui::InputFloat("Z", &m_position_offset.z); +} + void MoveAction::OnProjection(GraphicsModActionData::Projection* projection) { if (!projection) [[unlikely]] diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h index b7a0358ce8..aee5e75f29 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h @@ -15,7 +15,13 @@ class MoveAction final : public GraphicsModAction public: static constexpr std::string_view factory_name = "move"; static std::unique_ptr Create(const picojson::value& json_data); + static std::unique_ptr Create(); + + MoveAction() = default; explicit MoveAction(Common::Vec3 position_offset); + + void DrawImGui() override; + void OnProjection(GraphicsModActionData::Projection* projection) override; void OnProjectionAndTexture(GraphicsModActionData::Projection* projection) override; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h index 04a371a73e..65f003a7a9 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h @@ -23,4 +23,6 @@ public: virtual void OnTextureLoad(GraphicsModActionData::TextureLoad*) {} virtual void OnTextureCreate(GraphicsModActionData::TextureCreate*) {} virtual void OnFrameEnd() {} + + virtual void DrawImGui() {} };