asset rework
This commit is contained in:
parent
0b192c611f
commit
df4ee20976
22 changed files with 145 additions and 87 deletions
56
main.cpp
56
main.cpp
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Crafter.Build
|
||||
Crafter®.Asset
|
||||
Copyright (C) 2025 Catcrafts®
|
||||
Catcrafts.net
|
||||
|
||||
|
|
@ -35,7 +35,6 @@ int main(int argc, char* argv[]) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
|
||||
std::string command = std::string(argv[1]);
|
||||
|
||||
if(command == "help") {
|
||||
|
|
@ -59,11 +58,10 @@ int main(int argc, char* argv[]) {
|
|||
std::cout << "Asset file does not exist" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
Asset asset;
|
||||
asset.LoadFull(argv[2]);
|
||||
AssetLoad asset(argv[2]);
|
||||
std::cout << "<name>\t<type>\t<size>" << std::endl;
|
||||
for(const AssetEntry& entry : asset.entries) {
|
||||
std::cout << std::format("{}\t{}\t{}", entry.name, entry.type, entry.data.size()) << std::endl;
|
||||
std::cout << std::format("{}\t{}\t{}", entry.name, entry.type, entry.lenght) << std::endl;
|
||||
}
|
||||
}
|
||||
} else if(command == "remove") {
|
||||
|
|
@ -78,8 +76,8 @@ int main(int argc, char* argv[]) {
|
|||
std::cout << "Asset file does not exist" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
Asset asset;
|
||||
asset.LoadFull(argv[2]);
|
||||
AssetLoad asset(argv[2]);
|
||||
|
||||
if(asset.entries.size() == 0) {
|
||||
std::cout << "Nothing to remove, asset file empty" << std::endl;
|
||||
}
|
||||
|
|
@ -87,7 +85,8 @@ int main(int argc, char* argv[]) {
|
|||
if (it->name == argv[3]) {
|
||||
asset.entries.erase(it);
|
||||
fs::remove(argv[2]);
|
||||
asset.Save(argv[2]);
|
||||
AssetSave ass2(asset.entries, std::move(asset.LoadAll()));
|
||||
ass2.Save(argv[2]);
|
||||
return 0;
|
||||
}
|
||||
std::cout << std::format("Entry {} not found", argv[3]) << std::endl;
|
||||
|
|
@ -110,11 +109,6 @@ int main(int argc, char* argv[]) {
|
|||
std::cout << "Missing argument {entry name}. Run help for help" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
Asset asset;
|
||||
if(fs::exists(argv[2])) {
|
||||
asset.LoadFull(argv[2]);
|
||||
fs::remove(argv[2]);
|
||||
}
|
||||
AssetEntry entry;
|
||||
entry.name = std::string(argv[6]);
|
||||
entry.type = std::string(argv[4]);
|
||||
|
|
@ -123,11 +117,16 @@ int main(int argc, char* argv[]) {
|
|||
std::cout << std::format("Unkown serializer {}", argv[5]) << std::endl;
|
||||
return -1;
|
||||
} else {
|
||||
entry.data = pos->second(argv[3]);
|
||||
}
|
||||
asset.entries.push_back(entry);
|
||||
asset.Save(argv[2]);
|
||||
AssetSave asset;
|
||||
if(fs::exists(argv[2])) {
|
||||
AssetLoad assload(argv[2]);
|
||||
asset = AssetSave(assload.entries, std::move(assload.LoadAll()));
|
||||
fs::remove(argv[2]);
|
||||
}
|
||||
|
||||
asset.AddEntry(entry.name, entry.type, pos->second(argv[3]));
|
||||
asset.Save(argv[2]);
|
||||
}
|
||||
} else if(command == "extract") {
|
||||
if(argc == 2) {
|
||||
std::cout << "Missing argument {file}. Run help for help" << std::endl;
|
||||
|
|
@ -146,8 +145,7 @@ int main(int argc, char* argv[]) {
|
|||
std::cout << "Asset file does not exist" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
Asset asset;
|
||||
asset.LoadFull(argv[2]);
|
||||
AssetLoad asset(argv[2]);
|
||||
auto pos = extractors.find(argv[4]);
|
||||
if (pos == extractors.end()) {
|
||||
std::cout << std::format("Unkown extractor {}", argv[4]) << std::endl;
|
||||
|
|
@ -155,8 +153,8 @@ int main(int argc, char* argv[]) {
|
|||
} else {
|
||||
for(const AssetEntry& entry : asset.entries) {
|
||||
if(entry.name == std::string(argv[3])) {
|
||||
pos->second(argv[5], entry.data.data());
|
||||
return 0;
|
||||
std::vector<char> loaded = asset.Load(entry);
|
||||
pos->second(argv[5], loaded.data());
|
||||
}
|
||||
}
|
||||
std::cout << std::format("Entry {} not found", argv[3]) << std::endl;
|
||||
|
|
@ -165,18 +163,4 @@ int main(int argc, char* argv[]) {
|
|||
} else {
|
||||
std::cout << "Unkown command, use help for help" << std::endl;
|
||||
}
|
||||
|
||||
// Asset test;
|
||||
// AssetEntry entry;
|
||||
// entry.name = "Logo";
|
||||
// entry.type = "Crafter.Graphics.TextureR8B8G8A8";
|
||||
// //entry.data = serializers.find("PNG:Crafter.Graphics.TextureR8B8G8A8")->second("/home/jorijn/Pictures/3dfortslogo.png");
|
||||
// test.entries.push_back(entry);
|
||||
// test.Save("test.cras");
|
||||
|
||||
// Asset test2;
|
||||
// test2.LoadFull("test.cras");
|
||||
//extractors.find(std::format("{}:PNG", test2.entries[0].type))->second("/home/jorijn/repos/Crafter/Crafter.Asset/test.png", test2.entries[0].data.data());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue