CI and common update:

-added webpage deploymnet stage
-added separate build stage which build all binaries and generate documentation
-added Emscripten build stage for merge to master only
-added VBO batch rendering (current default, no render mode switch yet)
-fixed camera positioning calculation
-fixed buffer issue with WebGL
-added viewport scalling (at least 300 pixels height). Pixels are scalled if screen is bigger.
-center demos gameplay area
-added fullpage html template for Emscripten build
This commit is contained in:
Dawid Masiukiewicz 2020-05-01 19:26:21 +00:00
parent f67eb452cc
commit 54a6d5dec2
29 changed files with 1167 additions and 322 deletions

View file

@ -1,5 +1,8 @@
/************************************************************************************************************************
*System module.
System module.
Copyright: Copyright © 2018-2019, Dawid Masiukiewicz, Michał Masiukiewicz
License: BSD 3-clause, see LICENSE file in project root folder.
*/
module ecs.system;
@ -7,25 +10,27 @@ import ecs.entity;
import ecs.manager;
/************************************************************************************************************************
*System contain data required to proper glue EntityManager with Systems.
*System callbacks:
*<br/>-void onUpdate(EntitesData);
*<br/>-void onEnable()
*<br/>-void onDisable();
*<br/>-bool onBegin();
*<br/>-void onEnd();
*<br/>-void onCreate()
*<br/>-void onDestroy();
*<br/>-void onAddEntity(EntitesData);
*<br/>-void onRemoveEntity(EntitiesData);
*<br/>-void onChangeEntity(EntitiesData);
*<br/>-void handleEvent(Entity*, Event);
System contain data required to proper glue EntityManager with Systems.
System callbacks:
$(LIST
* void onUpdate(EntitesData);
* void onEnable()
* void onDisable();
* bool onBegin();
* void onEnd();
* void onCreate()
* void onDestroy();
* void onAddEntity(EntitesData);
* void onRemoveEntity(EntitiesData);
* void onChangeEntity(EntitiesData);
* void handleEvent(Entity*, Event);
)
*/
struct System
{
/************************************************************************************************************************
*Check if system is enabled.
Check if system is enabled.
*/
export bool enabled() nothrow @nogc
{
@ -33,7 +38,7 @@ struct System
}
/************************************************************************************************************************
*Enable system. If actually it is enabled function do nothing.
Enable system. If actually it is enabled function do nothing.
*/
export void enable() nothrow @nogc
{
@ -43,7 +48,7 @@ struct System
}
/************************************************************************************************************************
*Disable system. If actually it is disabled function do nothing.
Disable system. If actually it is disabled function do nothing.
*/
export void disable() nothrow @nogc
{
@ -53,7 +58,7 @@ struct System
}
/************************************************************************************************************************
*Get system priority.
Get system priority.
*/
export int priority() nothrow @nogc
{
@ -61,7 +66,7 @@ struct System
}
/************************************************************************************************************************
*Get system priority.
Get system priority.
*/
export bool execute() nothrow @nogc
{
@ -69,7 +74,7 @@ struct System
}
/************************************************************************************************************************
*Get system priority.
Get system priority.
*/
export ushort id() nothrow @nogc
{
@ -77,7 +82,7 @@ struct System
}
/************************************************************************************************************************
*Get system name.
Get system name.
*/
export const(char)[] name() nothrow @nogc
{