This commit is contained in:
Isuru Samarathunga
2025-10-14 01:50:56 +05:30
parent 13e8c538c7
commit 58f2190199
13 changed files with 261 additions and 45 deletions

View File

@ -102,7 +102,8 @@ namespace ia::iae
Vec4 Color{};
};
enum class Direction : UINT8 {
enum class Direction : UINT8
{
NONE = 255,
DOWN = 0,
DOWN_LEFT,
@ -114,6 +115,12 @@ namespace ia::iae
DOWN_RIGHT
};
enum class ResourceType
{
IMAGE,
SOUND,
};
struct Color
{
UINT8 R{0xFF};

View File

@ -45,10 +45,7 @@ namespace ia::iae
return m_viewport;
}
CONST Mat4 *GetViewMatrix() CONST
{
return &m_viewMatrix;
}
CONST Mat4 *GetViewMatrix();
CONST Mat4 *GetProjectionMatrix() CONST
{
@ -57,8 +54,8 @@ namespace ia::iae
private:
Vec4 m_viewport{};
Mat4 m_viewMatrix{1.0f};
Vec2 m_positionOffset{};
Mat4 m_viewMatrix{1.0f};
Mat4 m_projectionMatrix{1.0f};
};
} // namespace ia::iae

View File

@ -93,7 +93,6 @@ namespace ia::iae
STATIC CameraComponent *GetActiveCamera();
// Scene Functions
STATIC RefPtr<Scene> CreateSceneFromFile(IN CONST String &path);
STATIC Scene *GetActiveScene();
STATIC VOID ChangeActiveScene(IN RefPtr<Scene> scene);
STATIC VOID AddNodeToActiveScene(IN RefPtr<INode> node);
@ -118,6 +117,7 @@ namespace ia::iae
STATIC VOID BindInputAxis(IN InputKey upKey, IN InputKey downKey, IN InputKey leftKey, IN InputKey rightKey);
// Utility Functions
STATIC String ReadTextAsset(IN CONST String& path);
STATIC Direction GetVectorPointingDirection(IN Vec2 v);
STATIC Vector<UINT8> ReadBinaryAsset(IN CONST String& path);

View File

@ -16,6 +16,7 @@
#pragma once
#include <IAEngine/Components/CameraComponent.hpp>
#include <IAEngine/Nodes/INode.hpp>
namespace ia::iae
@ -23,27 +24,48 @@ namespace ia::iae
class Scene
{
public:
STATIC RefPtr<Scene> Create();
STATIC RefPtr<Scene> Create(IN CONST String &sceneXML);
STATIC RefPtr<Scene> Create();
STATIC RefPtr<Scene> Create(
IN CONST String &sceneXML, IN std::function<RefPtr<Node2D>(IN CONST String &, IN Handle)> getCustomNode,
IN std::function<Handle(IN ResourceType type, IN CONST String &, IN INT64)> getResource);
public:
VOID AddNode(IN RefPtr<INode> node);
INode *GetNode(IN CONST String &name);
VOID RemoveNode(IN CONST String &name);
VOID AddNode(IN RefPtr<INode> node);
INode *GetNode(IN CONST String &name);
VOID RemoveNode(IN CONST String &name);
public:
IVec2& Extent()
String &UIMarkup()
{
return m_uiMarkup;
}
String &UIMarkupStyles()
{
return m_uiMarkupStyles;
}
IVec2 &Extent()
{
return m_extent;
}
IVec2 &Viewport()
{
return m_viewport;
}
Color &BackgroundColor()
{
return m_backgroundColor;
}
private:
String m_uiMarkup{};
String m_uiMarkupStyles{};
IVec2 m_extent{100, 100};
IVec2 m_viewport{100, 100};
CameraComponent *m_camera{};
Color m_backgroundColor{0, 0, 0, 255};
Map<String, RefPtr<INode>> m_nodes;
@ -53,5 +75,10 @@ namespace ia::iae
VOID FixedUpdate();
VOID Update();
private:
VOID OnActivate();
friend class WorldManager;
};
} // namespace ia::iae

View File

@ -25,7 +25,7 @@ namespace ia::iae
public:
STATIC VOID AddFontFromFile(IN CONST String &path);
STATIC VOID SetHTML(IN CONST String &source);
STATIC VOID SetMarkup(IN CONST String &markup, IN CONST String &styles);
STATIC VOID AddClickEvent(IN PCCHAR elementId, IN std::function<VOID()> callback);

View File

@ -25,5 +25,8 @@ namespace ia::iae
public:
STATIC Vector<UINT8> Inflate(IN PCUINT8 data, IN SIZE_T dataSize);
STATIC Vector<UINT8> Deflate(IN PCUINT8 data, IN SIZE_T dataSize);
STATIC String RegexReplaceString(IN CONST String& input, IN CONST String& from, IN CONST String& to);
STATIC String RegexReplaceGroups(IN CONST String& input, IN CONST String& pattern, IN std::function<String(IN INT32, IN CONST String&)> groupTransformer);
};
}