new stuff
This commit is contained in:
commit
c595421288
44 changed files with 2556 additions and 0 deletions
116
Tools/MapTools/include/Element.h
Normal file
116
Tools/MapTools/include/Element.h
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
//
|
||||
// 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
|
||||
};
|
||||
|
||||
inline std::string ToStringYaml(LayerConfig cfg){
|
||||
if(cfg == Common){
|
||||
return "Cmn";
|
||||
} else if(cfg == Paint){
|
||||
return "Pnt";
|
||||
} else if(cfg == Rainmaker) {
|
||||
return "Vlf";
|
||||
} else if(cfg == Tower) {
|
||||
return "Vgl";
|
||||
} else if(cfg == Area) {
|
||||
return "Var";
|
||||
} else if(cfg == Night) {
|
||||
return "Night";
|
||||
} else if(cfg == Day) {
|
||||
return "Day";
|
||||
} else if(cfg == Temporary) {
|
||||
return "Tmp";
|
||||
}
|
||||
}
|
||||
|
||||
inline std::string ToString(LayerConfig cfg){
|
||||
if(cfg == Common){
|
||||
return "Common";
|
||||
} else if(cfg == Paint){
|
||||
return "Paint";
|
||||
} else if(cfg == Rainmaker) {
|
||||
return "Rainmaker";
|
||||
} else if(cfg == Tower) {
|
||||
return "Tower";
|
||||
} else if(cfg == Area) {
|
||||
return "Area";
|
||||
} else if(cfg == Night) {
|
||||
return "Night";
|
||||
} else if(cfg == Day) {
|
||||
return "Day";
|
||||
} else if(cfg == Temporary) {
|
||||
return "Temporary";
|
||||
}
|
||||
}
|
||||
|
||||
inline LayerConfig ToLayerConfig(std::string cfg){
|
||||
if(cfg == "Cmn"){
|
||||
return Common;
|
||||
} else if(cfg == "Pnt"){
|
||||
return Paint;
|
||||
} else if(cfg == "Vlf") {
|
||||
return Rainmaker;
|
||||
} else if(cfg == "Vgl") {
|
||||
return Tower;
|
||||
} else if(cfg == "Var") {
|
||||
return Area;
|
||||
} else if(cfg == "Night") {
|
||||
return Night;
|
||||
} else if(cfg == "Day") {
|
||||
return Day;
|
||||
} else if(cfg == "Tmp") {
|
||||
return Temporary;
|
||||
}
|
||||
}
|
||||
|
||||
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";
|
||||
|
||||
LayerConfig Layer = Common;
|
||||
|
||||
std::vector<long> Parameters = std::vector<long>();
|
||||
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;
|
||||
void YamlInsert(YAML::Emitter &Emitter);
|
||||
|
||||
virtual ~Element() = default;
|
||||
protected:
|
||||
virtual void YamlInsertBody(YAML::Emitter &Emitter);
|
||||
};
|
||||
|
||||
#endif //SPOONTOOL_ELEMENT_H
|
||||
89
Tools/MapTools/include/LevelObject.h
Normal file
89
Tools/MapTools/include/LevelObject.h
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
//
|
||||
// Created by tv on 30.04.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_LEVELOBJECT_H
|
||||
#define SPOONTOOL_LEVELOBJECT_H
|
||||
|
||||
#include<Transform.h>
|
||||
#include<Link.h>
|
||||
|
||||
#include<yaml-cpp/yaml.h>
|
||||
#include "SpecialObjectParams.h"
|
||||
#include "Element.h"
|
||||
|
||||
|
||||
namespace Teams{
|
||||
constexpr long Player = 0;
|
||||
constexpr long Neutral = 1;
|
||||
constexpr long Enemy = 2;
|
||||
|
||||
constexpr std::array<long,3> AllOptions = {Player,Neutral,Enemy};
|
||||
|
||||
inline constexpr std::string TeamToText(long team) {
|
||||
switch(team){
|
||||
case 0:
|
||||
return "Player";
|
||||
case 1:
|
||||
return "Neutral";
|
||||
case 2:
|
||||
return "Enemy";
|
||||
default:
|
||||
return "Invalid";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace DropId{
|
||||
constexpr long Default = -1;
|
||||
constexpr long Armor = 8;
|
||||
constexpr long Map = 9;
|
||||
constexpr long Key = 10;
|
||||
constexpr long OneSphere = 11;
|
||||
constexpr long FiveSphere = 12;
|
||||
constexpr long TenSphere = 13;
|
||||
constexpr long Bubbler = 14;
|
||||
constexpr long Bazooka = 15;
|
||||
|
||||
constexpr std::array<long,9> AllOptions = {Default,Armor,Map,Key,OneSphere,FiveSphere,TenSphere,Bubbler,Bazooka};
|
||||
|
||||
inline constexpr std::string DropIdToText(long team) {
|
||||
switch(team){
|
||||
case -1:
|
||||
return "Default";
|
||||
case 8:
|
||||
return "Armor";
|
||||
case 9:
|
||||
return "Map";
|
||||
case 10:
|
||||
return "Key";
|
||||
case 11:
|
||||
return "1 Sphere";
|
||||
case 12:
|
||||
return "5 Spheres";
|
||||
case 13:
|
||||
return "10 Spheres";
|
||||
case 14:
|
||||
return "Bubbler";
|
||||
case 15:
|
||||
return "Bazooka";
|
||||
default:
|
||||
return "Invalid";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct LevelObject: public Element{
|
||||
LevelObject(const YAML::Node &ObjNode);
|
||||
|
||||
protected:
|
||||
void YamlInsertBody(YAML::Emitter &Emitter) override;
|
||||
public:
|
||||
long Team;
|
||||
long DropId;
|
||||
|
||||
~LevelObject() = default;
|
||||
};
|
||||
|
||||
|
||||
#endif //SPOONTOOL_LEVELOBJECT_H
|
||||
45
Tools/MapTools/include/Link.h
Normal file
45
Tools/MapTools/include/Link.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
//
|
||||
// Created by tv on 30.04.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_LINK_H
|
||||
#define SPOONTOOL_LINK_H
|
||||
|
||||
#include <yaml-cpp/yaml.h>
|
||||
#include<string>
|
||||
|
||||
constexpr std::array<const char*, 12> LinkTypes = {
|
||||
"Spawner",
|
||||
"Rail",
|
||||
"Area",
|
||||
"AutoWarpPointLink",
|
||||
"Switch",
|
||||
"SwitchSender",
|
||||
"LiftBindable",
|
||||
"GraphNode",
|
||||
"ObjToGraphNode",
|
||||
"ObjToGraphNodeOneway",
|
||||
"BoneBindable",
|
||||
"ToGachihokoTargetPoint",
|
||||
};
|
||||
|
||||
struct Link {
|
||||
inline Link() : Name("Rail"), Destination("Undefined Destination"), UnitFile("") {}
|
||||
|
||||
Link(const YAML::Node &ObjNode);
|
||||
|
||||
// DefinitionName in byaml
|
||||
std::string Name;
|
||||
|
||||
// DestUnitId in byaml
|
||||
std::string Destination;
|
||||
|
||||
// UnitFileName in byaml
|
||||
static constexpr char LinkUnitFileID[] = "UnitFile";
|
||||
std::string UnitFile;
|
||||
|
||||
void InsertIntoYaml(YAML::Emitter &Emitter);
|
||||
|
||||
};
|
||||
|
||||
#endif //SPOONTOOL_LINK_H
|
||||
33
Tools/MapTools/include/Map.h
Normal file
33
Tools/MapTools/include/Map.h
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
//
|
||||
// Created by tv on 30.04.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_MAP_H
|
||||
#define SPOONTOOL_MAP_H
|
||||
|
||||
#include<boost/filesystem.hpp>
|
||||
#include<LevelObject.h>
|
||||
#include<Rail.h>
|
||||
|
||||
|
||||
struct Map {
|
||||
//STREEFUNCS
|
||||
Map();
|
||||
|
||||
void Save(boost::filesystem::path FileLocation);
|
||||
|
||||
boost::filesystem::path ActiveLocation = "";
|
||||
|
||||
void Export(boost::filesystem::path YamlOut);
|
||||
|
||||
std::vector<LevelObject> Objects;
|
||||
|
||||
std::vector<Rail> Rails;
|
||||
|
||||
|
||||
};
|
||||
|
||||
Map ConvertFromYaml(boost::filesystem::path File);
|
||||
|
||||
|
||||
#endif //SPOONTOOL_MAP_H
|
||||
57
Tools/MapTools/include/Rail.h
Normal file
57
Tools/MapTools/include/Rail.h
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
//
|
||||
// Created by tv on 30.04.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_RAIL_H
|
||||
#define SPOONTOOL_RAIL_H
|
||||
|
||||
#include<Transform.h>
|
||||
#include<Link.h>
|
||||
#include<RailPoint.h>
|
||||
|
||||
#include<yaml-cpp/yaml.h>
|
||||
#include<RailPoint.h>
|
||||
#include "Element.h"
|
||||
|
||||
enum RailType{
|
||||
Linear,
|
||||
Bezier
|
||||
};
|
||||
|
||||
inline std::string ToString(RailType railType){
|
||||
if(railType == Linear){
|
||||
return "Linear";
|
||||
} else if(railType == Bezier){
|
||||
return "Bezier";
|
||||
}
|
||||
}
|
||||
|
||||
inline RailType ToRailType(std::string railType){
|
||||
if(railType == "Linear"){
|
||||
return Linear;
|
||||
} else if(railType == "Bezier"){
|
||||
return Bezier;
|
||||
}
|
||||
}
|
||||
|
||||
constexpr std::array<RailType,2> AllRailTypeOptions = {Linear,Bezier};
|
||||
|
||||
struct Rail: public Element{
|
||||
|
||||
Rail(const YAML::Node &ObjNode);
|
||||
explicit Rail(const Vector3 &Position);
|
||||
|
||||
std::list<RailPoint> Points = std::list<RailPoint>();
|
||||
|
||||
RailType RailType = Linear;
|
||||
bool IsClosed = false;
|
||||
bool IsLadder = false;
|
||||
long Priority = 100;
|
||||
|
||||
~Rail() override = default;
|
||||
|
||||
protected:
|
||||
void YamlInsertBody(YAML::Emitter &Emitter) override;
|
||||
};
|
||||
|
||||
#endif //SPOONTOOL_RAIL_H
|
||||
33
Tools/MapTools/include/RailPoint.h
Normal file
33
Tools/MapTools/include/RailPoint.h
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
//
|
||||
// Created by tv on 30.04.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_RAILPOINT_H
|
||||
#define SPOONTOOL_RAILPOINT_H
|
||||
|
||||
#include<Vector3.h>
|
||||
#include<Transform.h>
|
||||
#include<Link.h>
|
||||
|
||||
#include<yaml-cpp/yaml.h>
|
||||
#include"Element.h"
|
||||
|
||||
struct RailPoint: public Element{
|
||||
RailPoint(const YAML::Node &ObjNode);
|
||||
explicit RailPoint(const Vector3& pos);
|
||||
|
||||
protected:
|
||||
|
||||
void YamlInsertBody(YAML::Emitter &Emitter) override;
|
||||
public:
|
||||
|
||||
std::vector<Vector3> m_controlPoints = std::vector<Vector3>();
|
||||
|
||||
Vector3 m_offset = {0,0,0};
|
||||
|
||||
bool m_useOffset = false;
|
||||
|
||||
~RailPoint() override = default;
|
||||
};
|
||||
|
||||
#endif //SPOONTOOL_RAILPOINT_H
|
||||
18
Tools/MapTools/include/SpecialObjectParamVersions/All.h
Normal file
18
Tools/MapTools/include/SpecialObjectParamVersions/All.h
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
//
|
||||
// Created by tv on 09.05.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_ALL_H
|
||||
#define SPOONTOOL_ALL_H
|
||||
#include<SpecialObjectParams.h>
|
||||
|
||||
|
||||
inline SpecialObjectParams* GetSpecParamsBySpoonID(std::string spoontype){
|
||||
return new SpecialObjectParams();
|
||||
}
|
||||
|
||||
inline SpecialObjectParams* GetSpecParamsBySubID(std::string spoontype){
|
||||
return new SpecialObjectParams();
|
||||
}
|
||||
|
||||
#endif //SPOONTOOL_ALL_H
|
||||
24
Tools/MapTools/include/SpecialObjectParamVersions/Default.h
Normal file
24
Tools/MapTools/include/SpecialObjectParamVersions/Default.h
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
//
|
||||
// Created by tv on 09.05.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_DEFAULT_H
|
||||
#define SPOONTOOL_DEFAULT_H
|
||||
#include<SpecialObjectParams.h>
|
||||
|
||||
class DefaultObjParams : public SpecialObjectParams {
|
||||
public:
|
||||
DefaultObjParams() : SpecialObjectParams(){
|
||||
|
||||
}
|
||||
|
||||
void ParseOut(YAML::Node node) override {
|
||||
return;
|
||||
}
|
||||
|
||||
void InsertYaml(YAML::Emitter &Emitter) override {
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
#endif //SPOONTOOL_DEFAULT_H
|
||||
23
Tools/MapTools/include/SpecialObjectParams.h
Normal file
23
Tools/MapTools/include/SpecialObjectParams.h
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
//
|
||||
// Created by tv on 07.05.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_SPECIALOBJECTPARAMS_H
|
||||
#define SPOONTOOL_SPECIALOBJECTPARAMS_H
|
||||
|
||||
#include<yaml-cpp/yaml.h>
|
||||
|
||||
struct SpecialObjectParams {
|
||||
public:
|
||||
SpecialObjectParams();
|
||||
|
||||
virtual void ParseOut(YAML::Node node);
|
||||
|
||||
virtual void InsertYaml(YAML::Emitter& Emitter);
|
||||
|
||||
virtual ~SpecialObjectParams() = default;
|
||||
|
||||
std::vector<std::string> GetMiscParamBlockList();
|
||||
};
|
||||
|
||||
#endif //SPOONTOOL_SPECIALOBJECTPARAMS_H
|
||||
19
Tools/MapTools/include/Transform.h
Normal file
19
Tools/MapTools/include/Transform.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// Created by tv on 30.04.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_TRANSFORM_H
|
||||
#define SPOONTOOL_TRANSFORM_H
|
||||
#include<Vector3.h>
|
||||
#include<yaml-cpp/yaml.h>
|
||||
|
||||
struct Transform{
|
||||
|
||||
inline Transform(): Position(0,0,0), Scale(1,1,1), Rotation(0,0,0) {}
|
||||
|
||||
Vector3 Position,Scale,Rotation;
|
||||
|
||||
void InsertIntoYaml(YAML::Emitter &Emitter);
|
||||
};
|
||||
|
||||
#endif //SPOONTOOL_TRANSFORM_H
|
||||
29
Tools/MapTools/include/Vector3.h
Normal file
29
Tools/MapTools/include/Vector3.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
|
||||
//
|
||||
// Created by tv on 30.04.23.
|
||||
//
|
||||
|
||||
#ifndef SPOONTOOL_VECTOR3_H
|
||||
#define SPOONTOOL_VECTOR3_H
|
||||
|
||||
#include <yaml-cpp/yaml.h>
|
||||
#include<boost/algorithm/string.hpp>
|
||||
#include<iostream>
|
||||
|
||||
struct Vector3{
|
||||
|
||||
Vector3(YAML::Node node);
|
||||
float X,Y,Z;
|
||||
|
||||
inline Vector3(float x,float y,float z) : X(x),Y(y),Z(z){}
|
||||
|
||||
inline void InsertIntoYaml(YAML::Emitter &Emitter){
|
||||
Emitter << YAML::BeginMap;
|
||||
Emitter << YAML::Key << "X" << YAML::Value << X;
|
||||
Emitter << YAML::Key << "Y" << YAML::Value << Y;
|
||||
Emitter << YAML::Key << "Z" << YAML::Value << Z;
|
||||
Emitter << YAML::EndMap;
|
||||
|
||||
}
|
||||
};
|
||||
#endif //SPOONTOOL_VECTOR3_H
|
||||
Loading…
Reference in a new issue