#pragma once #include "../Engine_Messaging_System/MessageSystemEvent.h" #include "../Engine_Json_System/json.h" // Generate text on Window (Game) class Text : public MessageFromJsonSystemEvent { public: static const MessageSystemEventType messageTypeID = MessageSystemEventType::TEXT_TYPE; MessageSystemEventType getType() override { return messageTypeID; } int getTypeValue() override { return static_cast(messageTypeID); } static Text* messageBuildFromJson(Json::Value Engine_PhysicsystemSource, ...); explicit Text(std::string textName) : textName(textName) { }; std::string getText() const { return textName; }; void setText(std::string name) { textName = name; }; Json::Value convertToJson() override; protected: std::string textName; }; inline Text* Text::messageBuildFromJson(Json::Value Engine_PhysicsystemSource, ...) { std::string textName = Engine_PhysicsystemSource.get("TextName", "").asString(); if (textName.empty()) { throw "Invalid TextName"; } return new Text(textName); } inline Json::Value Text::convertToJson() { Json::Value engineSystemSource; engineSystemSource["EventType"] = static_cast(this->getType()); engineSystemSource["TextName"] = this->getText(); return engineSystemSource; }