Progress BreakDown
Dynamic Resources Plugin
What is the Dynamic Resources Plugin?:
- It is used to quickly grab an index that is free
- It comes with it's own garbage collector (Can use multi-threading plugin to run on another thread)
- It self recycles deleted indexes as long as you use the DR Delete commands.
- It has shortcut commands that are OOP based so you can return an index automatically.
- If you don't want to keep track of pesky indexes then give the resource a name and you can easily lookup the index by using the name.
- It comes in two flavors: Regular and LUA. The LUA has all the name resource commands and is completely self enclosed. It does need a "Main.Lua" file in order to function properly. You can include that within your projects.
Next Resource:
The next resource commands will return the next free index.
index = DR Next Object()
index = DR Next Sprite()
index = DR Next Emitter()
index = DR Next Vector()
index = DR Next Memblock()
index = DR Next Camera()
index = DR Next Image()
index = DR Next Effect()
index = DR Next Sound()
index = DR Next Mesh()
index = DR Next Music()
index = DR Next File()
index = DR Next Matrix()
index = DR Next Object()
index = DR Next Lookup()
index = DR Next Bank()
index = DR Next Mutex()
index = DR Next Dll()
index = DR Next Animation()
index = DR Next Coroutine()
index = DR Next Light()
Delete Resource:
The delete resource commands will recycle an index that you are no longer using anymore and delete the object. If the object has a name please use the delete commands with a LUA tag instead of a DR tag.
DR Delete Object index
DR Delete Sprite index
DR Delete Emitter index
DR Delete Memblock index
DR Delete Camera index
DR Delete Image index
DR Delete Effect index
DR Delete Sound index
DR Delete Mesh index
DR Delete Music index
DR Delete Matrix index
DR Delete Database index
DR Delete Lookup index
DR Delete Bank index
DR Delete Mutex index
DR Delete Dll index
DR Delete Animation index
DR Delete Coroutine index
DR Close File index
DR Delete Vector3 index
DR Delete Vector2 index
DR Delete Vector4 index
DR Delete Light index
LUA Delete Resource:
The delete resource commands will delete the resource and recycles the index.
LUA Delete Object Name$
LUA Delete Sprite Name$
LUA Delete Emitter Name$
LUA Delete Memblock Name$
LUA Delete Camera Name$
LUA Delete Image Name$
LUA Delete Effect Name$
LUA Delete Sound Name$
LUA Delete Mesh Name$
LUA Delete Music Name$
LUA Delete Matrix Name$
LUA Delete Database Name$
LUA Delete Lookup Name$
LUA Delete Bank Name$
LUA Delete Mutex Name$
LUA Delete Dll Name$
LUA Delete Animation Name$
LUA Delete Coroutine Name$
LUA Close File Name$
LUA Delete Vector3 Name$
LUA Delete Vector2 Name$
LUA Delete Vector4 Name$
LUA Delete Thread Name$
LUA Delete ArrayFile Name$
LUA Delete Light Name$
Update Indexes:
This command will search though each resource and add any commands that were deleted without using my delete commands.
DR Update Indexes maxindex
Free Resource
Free resource commands will search though indexes starting at 1 and counting up until it finds a free index.
index = DR Free Object(Index)
index = DR Free Sprite(Index)
index = DR Free Emitter(Index)
index = DR Free Vector(Index)
index = DR Free Memblock(Index)
index = DR Free Camera(Index)
index = DR Free Image(Index)
index = DR Free Effect(Index)
index = DR Free Sound(Index)
index = DR Free Mesh(Index)
index = DR Free Music(Index)
index = DR Free File(Index)
index = DR Free Dll(Index)
index = DR Free Light(Index)
Get Resource Index:
The get resource index commands will return the index it is currently at. It isn't a resource count.
index = DR Get Object Index()
index = DR Get Image Index()
index = DR Get Camera Index()
index = DR Get Effect Index()
index = DR Get Sound Index()
index = DR Get Mesh Index()
index = DR Get Music Index()
index = DR Get File Index()
index = DR Get Emitter Index()
index = DR Get Sprite Index()
index = DR Get Matrix Index()
index = DR Get Vector Index()
index = DR Get Database Index()
index = DR Get Lookup Index()
index = DR Get Memblock Index()
index = DR Get Bank Index()
index = DR Get Coroutine Index()
index = DR Get Mutex Index()
index = DR Get Dll Index()
index = DR Get Animation Index()
Open/Close Main Script
The open/close main script commands are used to open the main.lua file that is provided. This will allow you to use the commands tagged LUA.
exist = DR Open Main Script
DR Close Main Script
Name Resource:
The name resource commands will assign a name to a resources index. This way you can easily get an index from a name.
LUA Name Object index, name$
LUA Name Image index, name$
LUA Name Camera index, name$
LUA Name Effect index, name$
LUA Name Sound index, name$
LUA Name Mesh index, name$
LUA Name Music index, name$
LUA Name File index, name$
LUA Name Emitter index, name$
LUA Name Sprite index, name$
LUA Name Matrix index, name$
LUA Name Vector index, name$
LUA Name Database index, name$
LUA Name Lookup index name$
LUA Name Memblock index, name$
LUA Name Bank index, name$
LUA Name Coroutine index, name$
LUA Name Mutex index, name$
LUA Name Animation index, name$
LUA Name Thread index, name$
LUA Name ArrayFile index, name$
LUA Name Dll index, name$
LUA Name Light index, name$
Get Resource Index From Name:
You give a name and it will get the resources index for that name.
index = LUA Get Object(name$)
index = LUA Get Image(name$)
index = LUA Get Camera(name$)
index = LUA Get Effect(name$)
index = LUA Get Sound(name$)
index = LUA Get Mesh(name$)
index = LUA Get Vector(name$)
index = LUA Get Matrix(name$)
index = LUA Get Sprite(name$)
index = LUA Get Emitter(name$)
index = LUA Get Music(name$)
index = LUA Get File(name$)
index = LUA Get ArrayFile( name$)
index = LUA Get Dll(name$)
Lua Free Resource:
The lua free resource command is just like the free resource command except you can set the object name of the item free that is found.
index = LUA Free Object(name$)
index = LUA Free Sprite(name$)
index = LUA Free Emitter(name$)
index = LUA Free Memblock(name$)
index = LUA Free Camera(name$)
index = LUA Free Image(name$)
index = LUA Free Effect(name$)
index = LUA Free Sound(name$)
index = LUA Free Mesh(name$)
index = LUA Free Music(name$)
index = LUA Free File(name$)
index = LUA Free Dll(name$)
index = LUA Free Light(name$)
Set Start Index:
This command is how you can set the start index of the Free Resource commands.
Lua Next Resource:
These commands are just like the Next Resource commands but it also sets the name of the object.
index = LUA Next Object(name$)
index = LUA Next Sprite(name$)
index = LUA Next Emitter(name$)
index = LUA Next Vector(name$)
index = LUA Next Memblock(name$)
index = LUA Next Camera(name$)
index = LUA Next Image(name$)
index = LUA Next Effect(name$)
index = LUA Next Sound(name$)
index = LUA Next Mesh(name$)
index = LUA Next Music(name$)
index = LUA Next File(name$)
index = LUA Next Matrix(name$)
index = LUA Next Object(name$)
index = LUA Next LookUp(name$)
index = LUA Next Bank(name$)
index = LUA Next Mutex(name$)
index = LUA Next Dll(name$)
index = LUA Next Animation(name$)
index = LUA Next Coroutine(name$)
index = LUA Next Light(name$)
Shortcut Commands:
These commands are shortcuts to the original DBP commands. The LUA tagged commands you can set the name of the resource you loaded or created. DR tagged are just normal load/create command. The commands assign an index to the object loaded/created and returns it as an integer. Uses the new Next Free Resource commands!
index = LUA Load Object(name$, path$)
index = DR Load Object(path$)
index = LUA Load Image(name$, path$)
index = DR Load Image(path$)
index = LUA Load Effect(name$, path$, textureflag)
index = DR Load Effect(path$, textureflag)
index = LUA Load Sound(name$, path$)
index = DR Load Sound(path$)
index = LUA Load Mesh(name$, path$)
index = DR Load Mesh(path$)
index = LUA Load Music(name$, path$)
index = DR Load Music(path$)
index = DR Open To Read(path$)
index = LUA Open To Read(name$, path$)
index = LUA Open To Write(name$, path$)
index = DR Open To Write(path$)
index = LUA Load Dll(name$, path$)
index = DR Load Dll(path$)
index = LUA Make Object Plain(name$, width#, height#)
index = DR Make Object Plain(width#, height#)
index = LUA Make Object Sphere(name$, size#)
index = DR Make Object Sphere(size#)
index = LUA Make Object Cone(name$, size#)
index = DR Make Object Cone(size#)
index = LUA Make Object Cylinder(name$, Size#)
index = DR Make Object Cylinder(size#)
index = LUA Make Object Triangle(name$, X1#, Y1#, Z#2, X2#, Y2#, Z1#, X3#, Y3#, Z3#)
index = DR Make Object Triangle(X1#, Y1#, Z2#, X2#, Y2#, Z1#, X3#, Y3#, Z3#)
index = LUA Create Sprite(name$, image, x#, y#)
index = DR Create Sprite(image, x#, y#)
index = DR Create Camera()
index = LUA Create Camera(name$)
index = DR Make Object Box(width#, height#, depth#)
index = LUA Make Object Box(Name, width#, height#, depth#)
index = LUA Make Object Cube(name$, size#)
index = DR Make Object Cube(size#)
index = LUA Object To Mesh(name$, object)
index = DR Object To Mesh(object)
index = DR Make Matrix(width#, height#, XSeg, ZSeg)
index = LUA Make Matrix(name$, width#, height#, XSeg, ZSeg)
DR Close Current File
Item Resource Commands:
I created an item type so you can use your own resource items and keep track of their indexes. This will only work for one item type.
index = DR Next Item()
index = LUA Next Item(name$)
DR Delete Item(index)
LUA Delete Item(name$)
DR Name Item(int Index, name$)
index = DR Get Item(name$)
Next Free Resource:
This command will find the next available resource. It is a combination between the next resource and free resource commands.
index = DR Next Free Light()
index = DR Next Free Object()
index = DR Next Free Sprite()
index = DR Next Free Emitter()
index = DR Next Free Memblock()
index = DR Next Free Camera()
index = DR Next Free Image()
index = DR Next Free Effect()
index = DR Next Free Sound()
index = DR Next Free Mesh()
index = DR Next Free Music()
index = DR Next Free File()
index = DR Next Free Matrix()
index = DR Next Free Dll()
LUA Next Free Resource:
This command will find the next available resource. It is a combination between the next resource and free resource commands. This version will set the name of the resource as well.
index = LUA Next Free Object(name$)
index = LUA Next Free Sprite(name$)
index = LUA Next Free Emitter(name$)
index = LUA Next Free Memblock(name$)
index = LUA Next Free Camera(name$)
index = LUA Next Free Image(name$)
index = LUA Next Free Effect(name$)
index = LUA Next Free Sound(name$)
index = LUA Next Free Mesh(name$)
index = LUA Next Free Music(name$)
index = LUA Next Free File(name$)
index = LUA Next Free Matrix(name$)
index = LUA Next Free Dll(name$)
index = LUA Next Free Light(name$)
More to Come!
DigitalFury