Heya. This is feature list for the library I'm working on. Now, the library offers additional features on top of Verge's entity system.
If you like anything you see, let me know. If you think it's useless and/or it's already been implemented in Verge and I didn't know about it, then also please let me know, since I don't want to code something that's completely useless :)
I'll probably release this sometime, but if anybody's interested that time might be a bit sooner :)
------------
Entity rotation (rotation can be layer-dependent or independent)
Entity scaling (scale width and height)
Entity variable lucency
Entity rendering to specific layer
Library tries to determine entity width and height automatically. You can manually set it or let it recalculate after it has tried.
Entity on render commands (think HookEntity)
Access to buffer for Entity's current frame
(Access to buffer for all Entity data?--not sure if this is useful, it would take up more memory, since Verge already has all that stored somewhere, and it's unusual to store a pure copy of it).
Entity blendtypes (additive, subtractive)
Entity meshing (think Sega Genesis/Saturn games, aka "checkerboard" blitting)
Layer rotation
Layer scaling (rendering width and height is scaled to destination's width and height)
Layer lucency
Layer blendtypes
Layer meshing
Layer on render commands (think, HookLayer)
Layer offsets (for scrolling a layer in code)
Layer wrapping/tiling (wrap sections of a layer)
Draw a Layer to a certain destination
Draw a Layer's entities to a certain destination
Draw all data to a certain destination
Blit an image to a map location
Layer 0
If you put 'R' in your renderstring, Layer 0's on render command is called.
If you put 'E' in your renderstring, Layer 0's entities are called.
Enhanced map and entity drawing is HookRetraceable
----------------
All entities are layer 0 initially, since I didn't want to make any new entity creation features. If you leave Entities the way they are, then you can easily use them with just an "E" in the renderstring.
There is no real change to your entity code you have to make, simply new stuff you can do.
myent = EntitySpawn(stuff);
entity.angle[myent] = 128;
entity.lucency[myent] = 50;
entity.onrender[myent] = "PaperDollArmor";
layer.lucency[1] = 50; //Set Layer 1 to half lucency.
layer.angle[2] = 100; //Set Layer 2 to 100 degree rotation.
The only real adaption must be that you call DrawMap, which uses spaghetti code and Render() to draw the enhanced entities and layers. Or, optionally, use a bunch of DrawLayers() to create your own map render routine.
Does this sound remotely interesting?