Common update:
-added multiple new function to allocate template and add entity -updated README.md (complete initial version) -empty components now don't take memory -fixedd small bug with TestRunner -added many new tests (HashMap, Vector, EntityMeta, ...) -added default hashing function to HashMap -fixed critical bug with adding entities -fixed small bug with adding entity with remplacement components -added asserts into code to better bug detection -small performance improvement for events -added ComponentRef structure which contain data pointer and componentID -remove EntityID from Event structure -now events are handled before removing entiteis -fixed GDC compilation -fixed rendering of rotated sprites -added weapons as separate entities to space ship and others -added Tower enemy to SpaceInvaders demo -added Boss to SpaceInvaders demo (boss has four tower attached to it) -Boss towers shoot multiple bullets upon death -fixed critical bug with demos switching -fixed critical bug related to adding/removing entities form inside onAdd/onRemove entity callback -added animation support -added particles sypport and particles for firing and explostions, and more -multithreaded rendering now has same rendering order as singlethreaded -application automaticallu detect host CPU threads count -added upgrades to SPaceInvaders demo -fixed texture memory freeing -improved documentation -improved multithreaded performance -improve shader code -fixed registration issue -some additional performance improvements -added depth and colors to rendering parameters -jobs now has names corresponding to their systems -change execute() -> willExecute() -added EntityMeta structure to speedup getting fetching components form entity -improved multithreading rendering -added possibility tio change number of threads runtime -added bullets collision detection in SpaceInvaders demo -some CI changes -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 -added many new sprites to atlas -fixed critical bug with CPU usage in multithreaded mode -snake render tile coresponding to body part -snake is destroyed after collision and emit some particles -added some functionality to vectors -fixed documentation issue in Manager.d -more minor code changes and cleanup
This commit is contained in:
parent
2ddb97e9ce
commit
024356df9b
62 changed files with 5918 additions and 1673 deletions
|
|
@ -2,6 +2,18 @@ module ecs_utils.math.vector;
|
|||
|
||||
struct vec2
|
||||
{
|
||||
this(float v) @nogc nothrow
|
||||
{
|
||||
x = v;
|
||||
y = v;
|
||||
}
|
||||
|
||||
this(float x, float y) @nogc nothrow
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
|
|
@ -75,6 +87,22 @@ struct vec4
|
|||
float[4] data;
|
||||
}
|
||||
|
||||
this(float v) @nogc nothrow
|
||||
{
|
||||
x = v;
|
||||
y = v;
|
||||
z = v;
|
||||
w = v;
|
||||
}
|
||||
|
||||
this(float x, float y, float z, float w) @nogc nothrow
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.w = w;
|
||||
}
|
||||
|
||||
vec4 opBinary(string op)(float v)
|
||||
{
|
||||
static if (op == "+") return vec4(x + v, y + v, z + v, w + v);
|
||||
|
|
@ -96,6 +124,27 @@ struct ivec2
|
|||
}
|
||||
int[2] data;
|
||||
}
|
||||
|
||||
this(int v) @nogc nothrow
|
||||
{
|
||||
x = v;
|
||||
y = v;
|
||||
}
|
||||
|
||||
this(int x, int y) @nogc nothrow
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
ivec2 opBinary(string op, T)(T v)
|
||||
{
|
||||
static if (op == "+") return ivec2(x + v, y + v);
|
||||
else static if (op == "-") return ivec2(x - v, y - v);
|
||||
else static if (op == "*") return ivec2(x * v, y * v);
|
||||
else static if (op == "/") return ivec2(x / v, y / v);
|
||||
else static assert(0, "Operator "~op~" not implemented");
|
||||
}
|
||||
|
||||
vec2 opCast()
|
||||
{
|
||||
|
|
@ -116,4 +165,20 @@ struct ivec4
|
|||
}
|
||||
int[4] data;
|
||||
}
|
||||
|
||||
this(int v) @nogc nothrow
|
||||
{
|
||||
x = v;
|
||||
y = v;
|
||||
z = v;
|
||||
w = v;
|
||||
}
|
||||
|
||||
this(int x, int y, int z, int w) @nogc nothrow
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.w = w;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue