It's normal that a plugin cannot be loaded from a zip archive, because under the hood this is using the Win32 function LoadLibrary. There may be a win32 function to load a library from memory, but I have not confirmed whether there the equivalent functions for Mac and Linux exist.
0.9.5
Everything updated, on Steam and standalone, this sorts out the terrain problem. Nothing had to be programmed, I just had to make sure all the executables, libraries, and shaders were really up to date.
It doesn't appear the library supports loading files from memory, if the model consists of more than one file, like external textures, or in the case of glTF, an external binary file. I asked about it here but have not received a response yet:
https://github.com/assimp/assimp/issues/5511
I am starting to investigate the assimp library. Posting some code to come back to when I am ready to continue:
Assimp::Importer importer;
auto d = CurrentDir();
auto path = d.ToUtf8String() + "/Models/xxxxxxxxx.gltf";
const aiScene* scene = importer.ReadFile(path, 0);
if (!scene || scene->mFlags & AI_SCENE_FLAGS_INCOMPLETE || !scene->mRootNode) {
// Error handling if the file fails to load
return -1;
}
auto node = scene->mRootNode;
auto name = node->mName;
// Process meshes attached to the current node (if any)
for (unsigned int i = 0; i < node->mNumMeshes; i++)
{
aiMesh* mesh = scene->mMeshes[node->mMeshes[i]];
// Process the mesh as needed
}
// Recursively process child nodes
for (unsigned int i = 0; i < node->mNumChildren; i++)
{
}
Ah, I see. Right now you can just add a call to FileType() and it will trigger a rebuild of the archive directory structure. I will have a build up this morning that doesn't require this:
#include "UltraEngine.h"
using namespace UltraEngine;
int main(int argc, const char* argv[])
{
auto package = LoadPackage("Data.zip");
if (package == nullptr) { Notify("No Package Found"); }
package->FileType("");
auto font = LoadFont("Fonts\\ZippedArial.ttf");
if (not font) Notify("No Font Found");
return 0;
}
0.9.5
Update to solve the duplicate components when entities are copied in editor bug.
If you have any compiling problems, updating VS will solve it. I think I solved it regardless, but will hold off until tomorrow to upload another update.
I don't know. I prefer the subscription model and would love to have a recurring revenue stream independent from Steam, but people often have a set way of doing things so I can't be too pushy with incentives.
Here is something I found:
https://developercommunity.visualstudio.com/t/cannot-build-after-vs-update-link-error/1348830#T-N1349621
I checked and the libzip static lib indeed is using the /GL switch. Let me try recompiling this and maybe that will solve your issue.
I was able to solve this problem simply by changing this code:
entity->exportproperties = exportproperties;
entity->importproperties = importproperties;
To this:
entity->exportproperties = exportproperties.copy();
entity->importproperties = importproperties.copy();
The fix will be in the next build that goes up.
Sorry about that. Google has some results on this type of error and I am investigating.
I used the release build of libzip for both the release and debug builds, but it seemed to work fine. That may be the cause.
You can also just navigate to the Leadwerks folder inside the Steam install path, and in a folder "DLC" you will find a zip for each DLC you have. You can just extract the contents of the zip to your project to use it.