6#include <unordered_map>
9#include <BufferStream.h>
90 explicit FGD(
const std::string& fgdPath);
97 void load(
const std::string& fgdPath);
101 [[nodiscard]] sourcepp::math::Vec2i
getMapSize()
const;
103 [[nodiscard]]
const std::unordered_map<std::string_view, Entity>&
getEntities()
const;
110 void readEntities(BufferStreamReadOnly& stream,
const std::string& path, std::vector<std::string>& seenPaths);
116 std::unordered_map<std::string_view, Entity>
entities;
153 KeyValueFlagsWriter&
flag(uint64_t value,
const std::string& displayName,
bool enabledByDefault,
const std::string& description =
"");
163 EntityWriter&
keyValue(
const std::string& name,
const std::string& valueType,
const std::string& displayName =
"",
const std::string& valueDefault =
"",
const std::string& description =
"",
bool readOnly =
false,
bool report =
false);
165 KeyValueChoicesWriter beginKeyValueChoices(
const std::string& name,
const std::string& displayName =
"",
const std::string& valueDefault =
"",
const std::string& description =
"",
bool readOnly =
false,
bool report =
false);
167 KeyValueFlagsWriter beginKeyValueFlags(
const std::string& name,
const std::string& displayName =
"",
const std::string& description =
"",
bool readOnly =
false,
bool report =
false);
169 EntityWriter&
input(
const std::string& name,
const std::string& valueType,
const std::string& description =
"");
171 EntityWriter&
output(
const std::string& name,
const std::string& valueType,
const std::string& description =
"");
191 EntityWriter beginEntity(
const std::string& classType,
const std::vector<std::string>& classProperties,
const std::string& name,
const std::string& description =
"",
const std::string& docsURL =
"");
193 [[nodiscard]] std::string
bake()
const;
195 bool bake(
const std::string& fgdPath)
const;