summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-10-12 10:36:10 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-10-12 10:36:10 -0600
commit0a3be4e644d9f0ecae7e07dd52a844e2b373b0b7 (patch)
tree0e586e2875a1312903c77c2ac398d3e903763d9e
parentbca2ea5769bf7438912676e29f236f7d3648381c (diff)
Added blob moddingblob_modding
-rw-r--r--src/factories/BlobFactory.cpp10
-rw-r--r--src/factories/BlobFactory.h9
2 files changed, 17 insertions, 2 deletions
diff --git a/src/factories/BlobFactory.cpp b/src/factories/BlobFactory.cpp
index 0539641..f478913 100644
--- a/src/factories/BlobFactory.cpp
+++ b/src/factories/BlobFactory.cpp
@@ -53,6 +53,16 @@ void BlobBinaryExporter::Export(std::ostream &write, std::shared_ptr<IParsedData
writer.Finish(write);
}
+void BlobModdingExporter::Export(std::ostream &write, std::shared_ptr<IParsedData> raw, std::string& entryName, YAML::Node &node, std::string* replacement ) {
+ auto writer = LUS::BinaryWriter();
+
+ *replacement += ".bin";
+
+ auto data = std::static_pointer_cast<RawBuffer>(raw)->mBuffer;
+ writer.Write((char*) data.data(), data.size());
+ writer.Finish(write);
+}
+
std::optional<std::shared_ptr<IParsedData>> BlobFactory::parse(std::vector<uint8_t>& buffer, YAML::Node& node) {
auto size = GetSafeNode<size_t>(node, "size");
auto [_, segment] = Decompressor::AutoDecode(node, buffer);
diff --git a/src/factories/BlobFactory.h b/src/factories/BlobFactory.h
index 9dd1c0d..388361b 100644
--- a/src/factories/BlobFactory.h
+++ b/src/factories/BlobFactory.h
@@ -10,6 +10,10 @@ class BlobCodeExporter : public BaseExporter {
void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
};
+class BlobModdingExporter : public BaseExporter {
+ void Export(std::ostream& write, std::shared_ptr<IParsedData> data, std::string& entryName, YAML::Node& node, std::string* replacement) override;
+};
+
class BlobFactory : public BaseFactory {
public:
std::optional<std::shared_ptr<IParsedData>> parse(std::vector<uint8_t>& buffer, YAML::Node& data) override;
@@ -20,7 +24,8 @@ public:
return {
REGISTER(Binary, BlobBinaryExporter)
REGISTER(Code, BlobCodeExporter)
+ REGISTER(Modding, BlobModdingExporter)
};
}
- bool SupportModdedAssets() override { return false; }
-}; \ No newline at end of file
+ bool SupportModdedAssets() override { return true; }
+};