VideoCommon: update graphics mod action interface with details needed for editor

This commit is contained in:
iwubcode 2023-07-25 18:02:43 -05:00
parent 338854fa41
commit 2225549334
3 changed files with 22 additions and 0 deletions

View file

@ -3,6 +3,8 @@
#include "VideoCommon/GraphicsModSystem/Runtime/Actions/MoveAction.h"
#include <imgui.h>
std::unique_ptr<MoveAction> MoveAction::Create(const picojson::value& json_data)
{
Common::Vec3 position_offset;
@ -26,10 +28,22 @@ std::unique_ptr<MoveAction> MoveAction::Create(const picojson::value& json_data)
return std::make_unique<MoveAction>(position_offset);
}
std::unique_ptr<MoveAction> MoveAction::Create()
{
return std::make_unique<MoveAction>(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]]

View file

@ -15,7 +15,13 @@ class MoveAction final : public GraphicsModAction
public:
static constexpr std::string_view factory_name = "move";
static std::unique_ptr<MoveAction> Create(const picojson::value& json_data);
static std::unique_ptr<MoveAction> Create();
MoveAction() = default;
explicit MoveAction(Common::Vec3 position_offset);
void DrawImGui() override;
void OnProjection(GraphicsModActionData::Projection* projection) override;
void OnProjectionAndTexture(GraphicsModActionData::Projection* projection) override;

View file

@ -23,4 +23,6 @@ public:
virtual void OnTextureLoad(GraphicsModActionData::TextureLoad*) {}
virtual void OnTextureCreate(GraphicsModActionData::TextureCreate*) {}
virtual void OnFrameEnd() {}
virtual void DrawImGui() {}
};