spoonedit/Tools/MapTools/include/Element.h

56 lines
1.3 KiB
C
Raw Normal View History

2023-07-02 22:21:26 +02:00
//
// Created by tv on 29.06.23.
//
#ifndef SPOONTOOL_ELEMENT_H
#define SPOONTOOL_ELEMENT_H
#include<list>
#include<string>
#include"Transform.h"
#include"Link.h"
enum LayerConfig{
Common, //Cmn
Paint, //Pnt
//Online, //Vss
Rainmaker, //Vlf
Tower, //Vgl
Area, //Var
Night, //Night
Day, //Day
Temporary //Tmp
};
class Element{
public:
Element() = default;
Element(const YAML::Node &ObjNode,std::list<std::string> PropertyBlockList = {});
unsigned int runtimeID = static_cast<unsigned int>(rand());
Transform TF = Transform();
std::string Type = "Unnamed Type";
std::string Name = "Unnamed Element";
std::string ModelName = "null";
2023-08-28 21:23:47 +02:00
std::string Layer = "Cmn";
2023-07-02 22:21:26 +02:00
2023-08-28 21:23:47 +02:00
std::vector<int> Parameters = std::vector<int>();
2023-07-02 22:21:26 +02:00
std::vector<float> FloatParameters = std::vector<float>();
//std::map<std::string,std::vector<Link>> Links = std::map<std::string,std::vector<Link>>();
std::vector<Link> Links = std::vector<Link>();
std::map<std::string,std::string> OtherOptions = std::map<std::string,std::string>();
bool IsLinkDest = false;
2023-11-12 16:29:22 +01:00
void YamlInsert(YAML::Emitter &Emitter,bool compiled = false);
2023-07-02 22:21:26 +02:00
virtual ~Element() = default;
protected:
2023-11-12 16:29:22 +01:00
virtual void YamlInsertBody(YAML::Emitter &Emitter,bool compiled = false);
2023-07-02 22:21:26 +02:00
};
#endif //SPOONTOOL_ELEMENT_H