| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The AutomatingSystem has been renamed to the ScriptingSystem, since the automatic behavior script is just a special case of the scripts that an entity can exhibit. The AutomatableComponent has largely been moved to the new RunnableComponent (might not be the final name for it).
The Lua state object, previously living on the singleton RealizableComponent, is now a member of the ScriptingSystem itself, because it A) doesn't really belong on the realizable entity, and B) a singleton entity seems weird and like a cumbersome attempt to apply the ECS rules to places they don't apply. In a similar vein, the RealizableComponent itself will probably soon be integrated into the RealizingSystem too.
The attempt at using Lua environments in order to encapsulate the different behaviors that objects exhibit was scrapped in preference of just creating differently named Lua tables for each prototype.
The new PrototypableComponent contains some information about entities which were prototyped. It is partially used by the ScriptingSystem to figure out what event handlers are appropriate, which may not be the best approach. It also has some data about automatic behavior, which also maybe does not belong in this component.
The OnTouch event is raised by a player colliding with a physics body with the collider type "event", which may not be the best way to implement this.
The result of all of this is that checkpoints now work, although no sound is played, and the result is not persistent across exiting the game.
|
| |
|
|
|
|
| |
Currently moving platforms are able to have their movement controlled by a script rather than by XML, which is probably a better implementation and scales better to other things. The scripts, instead of using the components as state, use the stack as state. In this way, they pretend to be multithreaded. For instance, the moving platform calls moveRight and then moveLeft. Both of those functions internally make calls that say to wait until the next tick. When the AutomatingSystem ticks, it continues execution of all scripts (sequentially, of course) until they ask for the next tick again. This is implemented using coroutines.
|
| |
|
| |
|
|
|
|
| |
Changed the world format so that map objects are indexed (per map). The next available map object index is cached for each map.
|
|
|
|
| |
Also added ability to make sprites flicker, to freeze physics for an entity, and to freeze progression of a sprite's animation loop.
|
|
|
|
|
|
|
|
|
|
| |
The issue appears to have been caused by blending with unset alpha channels.
Also included the re-ordered player character sprite image.
The CMake file has been updated to include linking against some Apple libraries that are usually already included in GLFW3.
refs #1
|
|
|
|
| |
Only wall and platform collision currently works, and map edges are not currently implemented.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
specified edge of the map
|
| |
|
|
|
|
|
|
|
| |
Center the map edit widget
Map edit zooming in should happen around the cursor
Disallow editing outside the mapedit widget
Add some scroll space around the mapedit widget
|
|
|
|
| |
Maps are viewed in a tree control on the left. They can be dragged and dropped. Maps are bolded when they are dirty. Saving saves expansion status and order of maps in tree.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also tweaked the bloom flicker, tweaked the scanline texture, created a second test map, and created some currently unused sound effects.
|
|
|
|
| |
mesh
|
| |
|
| |
|
|
|
|
| |
Also a character sprite, changed up the map file format, fixed some shader bugs
|
|
|
|
| |
the last commit
|
| |
|
|
|