How to implement custom resource? Topic is solved

Problems building or running the engine, queries about how to use features etc.
slapin
Bronze Sponsor
Bronze Sponsor
Posts: 77
Joined: Fri May 23, 2025 5:04 pm
x 2

How to implement custom resource?

Post by slapin »

Hi, all!
I need to implement custom plain text resource type and use it as script (Lua).
I looked at quite some tutorials and none worked. Is there some working
example which works for Ogre master branch?

slapin
Bronze Sponsor
Bronze Sponsor
Posts: 77
Joined: Fri May 23, 2025 5:04 pm
x 2

Re: How to implement custom resource?

Post by slapin »

Generally I need for Ogre resource system to load/unload it on demand from defined paths,
if resource system is overkill for that I'd like to see alternate solutions.

slapin
Bronze Sponsor
Bronze Sponsor
Posts: 77
Joined: Fri May 23, 2025 5:04 pm
x 2

Re: How to implement custom resource?

Post by slapin »

Found much simpler way:

Code: Select all

Ogre::DataStreamPtr stream = Ogre::ResourceGroupManager::getSingleton().openResource("data.lua", "LuaScripts", NULL, false);

Now I want to load all Lua scripts...

paroj
OGRE Team Member
OGRE Team Member
Posts: 2180
Joined: Sun Mar 30, 2014 2:51 pm
x 1168

Re: How to implement custom resource?

Post by paroj »

why dont you use plain std::ifstream?

slapin
Bronze Sponsor
Bronze Sponsor
Posts: 77
Joined: Fri May 23, 2025 5:04 pm
x 2

Re: How to implement custom resource?

Post by slapin »

This is simply perfect:

Code: Select all

               Ogre::DataStreamList streams = Ogre::ResourceGroupManager::getSingleton().openResources("*.lua", "LuaScripts");
                while (!streams.empty()) {
                        Ogre::DataStreamPtr s = streams.front();
                        std::cout << "stream: " << s->getAsString() << "\n";
                        streams.pop_front();
                        luaL_dostring(L, s->getAsString().c_str());
                }
Last edited by slapin on Sat Jun 07, 2025 8:24 pm, edited 1 time in total.
slapin
Bronze Sponsor
Bronze Sponsor
Posts: 77
Joined: Fri May 23, 2025 5:04 pm
x 2

Re: How to implement custom resource?

Post by slapin »

paroj wrote: Sat Jun 07, 2025 8:14 pm

why dont you use plain std::ifstream?

Because I want Ogre to load for me, for cross-platforminess and less problems sake.
Otherwise I'll have to invent the same thing forever. Ogre has its resource paths and groups
so all I need is to use them.