mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-11 07:18:11 -05:00
Restructure ZoneDefinitionWriting
This commit is contained in:
@ -24,4 +24,9 @@ public:
|
||||
{
|
||||
return static_cast<T*>(m_ptr);
|
||||
}
|
||||
|
||||
const T* Asset() const
|
||||
{
|
||||
return static_cast<const T*>(const_cast<const void*>(m_ptr));
|
||||
}
|
||||
};
|
||||
|
13
src/ZoneCommon/Zone/Definition/ZoneDefinition.cpp
Normal file
13
src/ZoneCommon/Zone/Definition/ZoneDefinition.cpp
Normal file
@ -0,0 +1,13 @@
|
||||
#include "ZoneDefinition.h"
|
||||
|
||||
ZoneDefinitionEntry::ZoneDefinitionEntry()
|
||||
: m_is_reference(false)
|
||||
{
|
||||
}
|
||||
|
||||
ZoneDefinitionEntry::ZoneDefinitionEntry(std::string type, std::string name, bool isReference)
|
||||
: m_asset_type(std::move(type)),
|
||||
m_asset_name(std::move(name)),
|
||||
m_is_reference(isReference)
|
||||
{
|
||||
}
|
22
src/ZoneCommon/Zone/Definition/ZoneDefinition.h
Normal file
22
src/ZoneCommon/Zone/Definition/ZoneDefinition.h
Normal file
@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
class ZoneDefinitionEntry
|
||||
{
|
||||
public:
|
||||
std::string m_asset_type;
|
||||
std::string m_asset_name;
|
||||
bool m_is_reference;
|
||||
|
||||
ZoneDefinitionEntry();
|
||||
ZoneDefinitionEntry(std::string type, std::string name, bool isReference);
|
||||
};
|
||||
|
||||
class ZoneDefinition
|
||||
{
|
||||
public:
|
||||
std::unordered_map<std::string, std::string> m_metadata;
|
||||
std::vector<ZoneDefinitionEntry> m_assets;
|
||||
};
|
36
src/ZoneCommon/Zone/Definition/ZoneDefinitionStream.cpp
Normal file
36
src/ZoneCommon/Zone/Definition/ZoneDefinitionStream.cpp
Normal file
@ -0,0 +1,36 @@
|
||||
#include "ZoneDefinitionStream.h"
|
||||
|
||||
ZoneDefinitionInputStream::ZoneDefinitionInputStream(std::istream& stream)
|
||||
: m_stream(stream)
|
||||
{
|
||||
}
|
||||
|
||||
std::unique_ptr<ZoneDefinition> ZoneDefinitionInputStream::ReadDefinition()
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
ZoneDefinitionOutputStream::ZoneDefinitionOutputStream(std::ostream& stream)
|
||||
: m_stream(stream)
|
||||
{
|
||||
}
|
||||
|
||||
void ZoneDefinitionOutputStream::EmptyLine() const
|
||||
{
|
||||
m_stream << "\n";
|
||||
}
|
||||
|
||||
void ZoneDefinitionOutputStream::WriteComment(const std::string& comment) const
|
||||
{
|
||||
m_stream << "// " << comment << "\n";
|
||||
}
|
||||
|
||||
void ZoneDefinitionOutputStream::WriteMetaData(const std::string& metaDataKey, const std::string& metaDataValue) const
|
||||
{
|
||||
m_stream << ">" << metaDataKey << "," << metaDataValue << "\n";
|
||||
}
|
||||
|
||||
void ZoneDefinitionOutputStream::WriteEntry(const std::string& entryKey, const std::string& entryValue) const
|
||||
{
|
||||
m_stream << entryKey << "," << entryValue << "\n";
|
||||
}
|
28
src/ZoneCommon/Zone/Definition/ZoneDefinitionStream.h
Normal file
28
src/ZoneCommon/Zone/Definition/ZoneDefinitionStream.h
Normal file
@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
#include "ZoneDefinition.h"
|
||||
|
||||
class ZoneDefinitionInputStream
|
||||
{
|
||||
std::istream& m_stream;
|
||||
|
||||
public:
|
||||
explicit ZoneDefinitionInputStream(std::istream& stream);
|
||||
|
||||
std::unique_ptr<ZoneDefinition> ReadDefinition();
|
||||
};
|
||||
|
||||
class ZoneDefinitionOutputStream
|
||||
{
|
||||
std::ostream& m_stream;
|
||||
|
||||
public:
|
||||
explicit ZoneDefinitionOutputStream(std::ostream& stream);
|
||||
|
||||
void EmptyLine() const;
|
||||
void WriteComment(const std::string& comment) const;
|
||||
void WriteMetaData(const std::string& metaDataKey, const std::string& metaDataValue) const;
|
||||
void WriteEntry(const std::string& entryKey, const std::string& entryValue) const;
|
||||
};
|
Reference in New Issue
Block a user