-change ecsID to becsID

-change component_id/system_id to becsID in demos
This commit is contained in:
Mergul 2021-02-27 17:25:13 +01:00
parent a926b79223
commit a6d92cb21b
17 changed files with 296 additions and 272 deletions

View file

@ -125,11 +125,11 @@ struct Launcher
foreach(ref system; manager.systems)
{
if(system.id != CountSystem.system_id && system.id != CleanSystem.system_id)system.disable();
if(system.id != becsID!CountSystem && system.id != becsID!CleanSystem)system.disable();
}
/*launcher.manager.getSystem(CountSystem.system_id).enable();
launcher.manager.getSystem(CleanSystem.system_id).enable();//*/
/*launcher.manager.getSystem(becsID!CountSystem).enable();
launcher.manager.getSystem(becsID!CleanSystem).enable();//*/
if(callbacks.register)callbacks.register();
if(callbacks.initialize)callbacks.initialize();

View file

@ -372,9 +372,9 @@ void brickBreakerStart()
draw_system.default_data.material_id = 0;
EntityTemplate* brick_tmpl = launcher.manager.allocateTemplate(
[CLocation.component_id, CScale.component_id, CColor.component_id,
CTexCoordsIndex.component_id, CBVH.component_id, CHitPoints.component_id,
CAABB.component_id, CStatic.component_id].staticArray
[becsID!CLocation, becsID!CScale, becsID!CColor,
becsID!CTexCoordsIndex, becsID!CBVH, becsID!CHitPoints,
becsID!CAABB, becsID!CStatic].staticArray
);
brick_tmpl.getComponent!CTexCoordsIndex().value = TexCoordsManager.instance.getCoordIndex(vec4(304,40,16,8)*px);
brick_tmpl.getComponent!CColor().value = 0x80206020;
@ -387,10 +387,10 @@ void brickBreakerStart()
big_brick_tmpl.getComponent!CScale().value = vec2(16,16);
EntityTemplate* paddle_tmpl = launcher.manager.allocateTemplate(
[CLocation.component_id, CScale.component_id, CInput.component_id,
CTexCoordsIndex.component_id, CPaddle.component_id, CVelocity.component_id,
CDamping.component_id, CVelocityFactor.component_id, CBVH.component_id,
CAABB.component_id].staticArray
[becsID!CLocation, becsID!CScale, becsID!CInput,
becsID!CTexCoordsIndex, becsID!CPaddle, becsID!CVelocity,
becsID!CDamping, becsID!CVelocityFactor, becsID!CBVH,
becsID!CAABB].staticArray
);
paddle_tmpl.getComponent!CTexCoordsIndex().value = TexCoordsManager.instance.getCoordIndex(vec4(272,48,64,10)*px);
paddle_tmpl.getComponent!CScale().value = vec2(64,10);
@ -398,8 +398,8 @@ void brickBreakerStart()
paddle_tmpl.getComponent!CVelocityFactor().value = vec2(1,0);
EntityTemplate* ball_tmpl = launcher.manager.allocateTemplate(
[CLocation.component_id, CScale.component_id, //CDamping.component_id,
CTexCoordsIndex.component_id, CBall.component_id, CVelocity.component_id].staticArray
[becsID!CLocation, becsID!CScale, //becsID!CDamping,
becsID!CTexCoordsIndex, becsID!CBall, becsID!CVelocity].staticArray
);
ball_tmpl.getComponent!CTexCoordsIndex().value = TexCoordsManager.instance.getCoordIndex(vec4(304,32,8,8)*px);
ball_tmpl.getComponent!CScale().value = vec2(8,8);
@ -417,12 +417,12 @@ void brickBreakerStart()
launcher.gui_manager.addComponent(CDamping(), "Damping");
launcher.gui_manager.addComponent(CBall(), "Ball");
launcher.gui_manager.addSystem(MoveSystem.system_id, "Move System");
launcher.gui_manager.addSystem(EdgeCollisionSystem.system_id, "Edge Collision System");
launcher.gui_manager.addSystem(BallCollisionSystem.system_id, "Ball Collision System");
launcher.gui_manager.addSystem(InputMovementSystem.system_id, "Input Movement System");
launcher.gui_manager.addSystem(DampingSystem.system_id, "Damping System");
launcher.gui_manager.addSystem(DamageSystem.system_id, "Damage System");
launcher.gui_manager.addSystem(becsID!MoveSystem, "Move System");
launcher.gui_manager.addSystem(becsID!EdgeCollisionSystem, "Edge Collision System");
launcher.gui_manager.addSystem(becsID!BallCollisionSystem, "Ball Collision System");
launcher.gui_manager.addSystem(becsID!InputMovementSystem, "Input Movement System");
launcher.gui_manager.addSystem(becsID!DampingSystem, "Damping System");
launcher.gui_manager.addSystem(becsID!DamageSystem, "Damage System");
launcher.gui_manager.addTemplate(brick_tmpl, "Brick");
launcher.gui_manager.addTemplate(big_brick_tmpl, "Big Brick");

View file

@ -494,13 +494,13 @@ void particlesStart()
draw_system.default_data.material_id = 2;
draw_system.default_data.texture = particles_demo.texture;
launcher.gui_manager.addSystem(MoveSystem.system_id,"Move System");
launcher.gui_manager.addSystem(DrawSystem.system_id,"Draw System");
launcher.gui_manager.addSystem(PlayAreaSystem.system_id,"Play Area System");
launcher.gui_manager.addSystem(AttractSystem.system_id,"Attract System");
launcher.gui_manager.addSystem(MouseAttractSystem.system_id,"Mouse Attract System");
launcher.gui_manager.addSystem(DampingSystem.system_id,"Damping System");
launcher.gui_manager.addSystem(ParticleLifeSystem.system_id,"Particle Life System");
launcher.gui_manager.addSystem(becsID!MoveSystem,"Move System");
launcher.gui_manager.addSystem(becsID!DrawSystem,"Draw System");
launcher.gui_manager.addSystem(becsID!PlayAreaSystem,"Play Area System");
launcher.gui_manager.addSystem(becsID!AttractSystem,"Attract System");
launcher.gui_manager.addSystem(becsID!MouseAttractSystem,"Mouse Attract System");
launcher.gui_manager.addSystem(becsID!DampingSystem,"Damping System");
launcher.gui_manager.addSystem(becsID!ParticleLifeSystem,"Particle Life System");
// launcher.gui_manager.addComponent(CColor(),"Color (white)");
// launcher.gui_manager.addComponent(CColor(0xFF101540),"Color (red)");
@ -516,7 +516,7 @@ void particlesStart()
launcher.gui_manager.addComponent(CGravity(),"Gravity");
EntityTemplate* tmpl;
EntityTemplate* base_tmpl = launcher.manager.allocateTemplate([CTexCoords.component_id, CLocation.component_id, CColor.component_id, CVelocity.component_id, CDamping.component_id, CScale.component_id, CMaterialIndex.component_id].staticArray);
EntityTemplate* base_tmpl = launcher.manager.allocateTemplate([becsID!CTexCoords, becsID!CLocation, becsID!CColor, becsID!CVelocity, becsID!CDamping, becsID!CScale, becsID!CMaterialIndex].staticArray);
base_tmpl.getComponent!CColor().value = 0xFF251010;
base_tmpl.getComponent!CScale().value = vec2(2);
base_tmpl.getComponent!CTexCoords().value = vec4(246,64,2,2)*px;
@ -531,15 +531,15 @@ void particlesStart()
// tmpl = launcher.manager.allocateTemplate(base_tmpl);
// tmpl.getComponent!CColor().value = 0xFF101540;
// launcher.gui_manager.addTemplate(tmpl,"Particle (red)");
// tmpl = launcher.manager.allocateTemplate(tmpl, [CDamping.component_id].staticArray);
// tmpl = launcher.manager.allocateTemplate(tmpl, [becsID!CDamping].staticArray);
// launcher.gui_manager.addTemplate(tmpl,"Particle (damping)");
// tmpl = launcher.manager.allocateTemplate(tmpl);
// tmpl.getComponent!CDamping().power = 4;
// launcher.gui_manager.addTemplate(tmpl,"Particle (damping!)");
tmpl = launcher.manager.allocateTemplate([CAttractor.component_id, CLocation.component_id, CForceRange.component_id, CScale.component_id].staticArray);
tmpl = launcher.manager.allocateTemplate([becsID!CAttractor, becsID!CLocation, becsID!CForceRange, becsID!CScale].staticArray);
tmpl.getComponent!CScale().value = vec2(4);
launcher.gui_manager.addTemplate(tmpl,"Attractor");
tmpl = launcher.manager.allocateTemplate(tmpl, [CVortex.component_id].staticArray);
tmpl = launcher.manager.allocateTemplate(tmpl, [becsID!CVortex].staticArray);
launcher.gui_manager.addTemplate(tmpl,"Vortex");
// tmpl = launcher.manager.allocateTemplate(tmpl);
// tmpl.getComponent!CVortex().strength = -0.6;

View file

@ -2,6 +2,8 @@ module demos.sandbox;
import bindbc.sdl;
import bubel.ecs.core;
import demos.simple;
import demos.snake;
import demos.space_invaders;
@ -37,8 +39,8 @@ void sandboxStart()
draw_system.default_data.texture = particles_demo.texture;
draw_system.default_data.color = 0x80808080;
launcher.manager.getSystem(MouseAttractSystem.system_id).disable();
launcher.manager.getSystem(demos.simple.MoveSystem.system_id).disable();
launcher.manager.getSystem(becsID!MouseAttractSystem).disable();
launcher.manager.getSystem(becsID!(demos.simple.MoveSystem)).disable();
}

View file

@ -134,10 +134,10 @@ void simpleStart()
draw_system.default_data.size = vec2(16,16);
draw_system.default_data.coords = vec4(0,48,16,16)*px;//vec4(0,0,1,1);
launcher.gui_manager.addSystem(MoveSystem.system_id,"Move Up System");
launcher.gui_manager.addSystem(DrawSystem.system_id,"Draw System");
launcher.gui_manager.addSystem(becsID!MoveSystem,"Move Up System");
launcher.gui_manager.addSystem(becsID!DrawSystem,"Draw System");
simple.tmpl = launcher.manager.allocateTemplate([CLocation.component_id, CDrawDefault.component_id].staticArray);
simple.tmpl = launcher.manager.allocateTemplate([becsID!CLocation, becsID!CDrawDefault].staticArray);
//*simple.tmpl.getComponent!CTexCoordsIndex = TexCoordsManager.instance.getCoordIndex(vec4(0,48,16,16)*px);
//CLocation* loc_comp = simple.tmpl.getComponent!CLocation;
@ -153,8 +153,8 @@ void simpleStart()
void simpleEnd()
{
launcher.manager.getSystem(MoveSystem.system_id).disable();
launcher.manager.getSystem(DrawSystem.system_id).disable();
launcher.manager.getSystem(becsID!MoveSystem).disable();
launcher.manager.getSystem(becsID!DrawSystem).disable();
simple.texture.destroy();

View file

@ -903,26 +903,26 @@ void snakeStart()
//launcher.gui_manager.addComponent(CAnimation(),"Movement");
launcher.gui_manager.addComponent(CILocation(),"Int Location");
launcher.gui_manager.addSystem(MoveSystem.system_id,"Move System");
launcher.gui_manager.addSystem(InputSystem.system_id,"Input System");
launcher.gui_manager.addSystem(FixSnakeDirectionSystem.system_id,"Fix Direction System");
launcher.gui_manager.addSystem(AnimationRenderSystem.system_id,"Animation Render System");
launcher.gui_manager.addSystem(AnimationSystem.system_id,"Animation System");
launcher.gui_manager.addSystem(ParticleSystem.system_id,"Particle Life System");
launcher.gui_manager.addSystem(ParticleMovementSystem.system_id,"Particle Movement System");
launcher.gui_manager.addSystem(DrawAppleSystem.system_id,"Draw Apple System");
launcher.gui_manager.addSystem(DrawSnakeSystem.system_id,"Draw Snake System");
launcher.gui_manager.addSystem(becsID!MoveSystem,"Move System");
launcher.gui_manager.addSystem(becsID!InputSystem,"Input System");
launcher.gui_manager.addSystem(becsID!FixSnakeDirectionSystem,"Fix Direction System");
launcher.gui_manager.addSystem(becsID!AnimationRenderSystem,"Animation Render System");
launcher.gui_manager.addSystem(becsID!AnimationSystem,"Animation System");
launcher.gui_manager.addSystem(becsID!ParticleSystem,"Particle Life System");
launcher.gui_manager.addSystem(becsID!ParticleMovementSystem,"Particle Movement System");
launcher.gui_manager.addSystem(becsID!DrawAppleSystem,"Draw Apple System");
launcher.gui_manager.addSystem(becsID!DrawSnakeSystem,"Draw Snake System");
snake.snake_destroy_particle_frames = Mallocator.makeArray([vec4(64,144,16,16)*px,vec4(80,144,16,16)*px,vec4(96,144,16,16)*px,vec4(112,144,16,16)*px].staticArray);
{
ushort[5] components = [CILocation.component_id, CSnake.component_id, CMovement.component_id, CInput.component_id, CLocation.component_id];
ushort[5] components = [becsID!CILocation, becsID!CSnake, becsID!CMovement, becsID!CInput, becsID!CLocation];
snake.snake_tmpl = launcher.manager.allocateTemplate(components);
launcher.manager.addEntity(snake.snake_tmpl,[CILocation(ivec2(2,2)).ref_].staticArray);
}
{
snake.snake_destroy_particle = launcher.manager.allocateTemplate([CLocation.component_id, CParticle.component_id, CParticleVector.component_id, CAnimation.component_id, CLocation.component_id].staticArray);
snake.snake_destroy_particle = launcher.manager.allocateTemplate([becsID!CLocation, becsID!CParticle, becsID!CParticleVector, becsID!CAnimation, becsID!CLocation].staticArray);
CAnimation* canim = snake.snake_destroy_particle.getComponent!CAnimation;
canim.frames = snake.snake_destroy_particle_frames;
CParticle* particle = snake.snake_destroy_particle.getComponent!CParticle;
@ -930,7 +930,7 @@ void snakeStart()
}
{
ushort[3] components = [CILocation.component_id, CApple.component_id, CLocation.component_id];
ushort[3] components = [becsID!CILocation, becsID!CApple, becsID!CLocation];
snake.apple_tmpl = launcher.manager.allocateTemplate(components);
snake.addApple();
}

View file

@ -542,8 +542,8 @@ struct ShipWeaponSystem
void create()
{
laser1_tmpl = launcher.manager.allocateTemplate([CWeapon.component_id, CLocation.component_id, CShootDirection.component_id, CTargetParent.component_id, CGuild.component_id, CVelocity.component_id].staticArray);
main_weapon_tmpl = launcher.manager.allocateTemplate([CLocation.component_id, CShootDirection.component_id, CTargetParent.component_id, CGuild.component_id, CVelocity.component_id].staticArray);
laser1_tmpl = launcher.manager.allocateTemplate([becsID!CWeapon, becsID!CLocation, becsID!CShootDirection, becsID!CTargetParent, becsID!CGuild, becsID!CVelocity].staticArray);
main_weapon_tmpl = launcher.manager.allocateTemplate([becsID!CLocation, becsID!CShootDirection, becsID!CTargetParent, becsID!CGuild, becsID!CVelocity].staticArray);
*laser1_tmpl.getComponent!CWeapon = CWeapon(0,CWeapon.Type.laser,3);
laser1_tmpl.getComponent!CTargetParent().rel_pos = vec2(10,13);
main_weapon_tmpl.getComponent!CTargetParent().rel_pos = vec2(0,4);
@ -585,11 +585,11 @@ struct ShipWeaponSystem
void create()
{
weapon_tmpl = launcher.manager.allocateTemplate(
[CWeapon.component_id, CLocation.component_id, CShootDirection.component_id,
CTargetParent.component_id, CGuild.component_id, CVelocity.component_id,
CAutoShoot.component_id, CTarget.component_id, CTargetPlayerShip.component_id,
CRotation.component_id, CScale.component_id, CTexCoords.component_id,
CDepth.component_id, CWeaponLocation.component_id].staticArray);
[becsID!CWeapon, becsID!CLocation, becsID!CShootDirection,
becsID!CTargetParent, becsID!CGuild, becsID!CVelocity,
becsID!CAutoShoot, becsID!CTarget, becsID!CTargetPlayerShip,
becsID!CRotation, becsID!CScale, becsID!CTexCoords,
becsID!CDepth, becsID!CWeaponLocation].staticArray);
*weapon_tmpl.getComponent!CWeapon = CWeapon(0,CWeapon.Type.laser,3);
weapon_tmpl.getComponent!CTargetParent().rel_pos = vec2(0,0);
weapon_tmpl.getComponent!CGuild().guild = 1;
@ -601,8 +601,8 @@ struct ShipWeaponSystem
weapon_tmpl.getComponent!CWeaponLocation().rel_pos = vec2(0,12);
top_tmpl = launcher.manager.allocateTemplate(
[CLocation.component_id, CTargetParent.component_id, CScale.component_id,
CTexCoords.component_id, CDepth.component_id].staticArray);
[becsID!CLocation, becsID!CTargetParent, becsID!CScale,
becsID!CTexCoords, becsID!CDepth].staticArray);
top_tmpl.getComponent!CTargetParent().rel_pos = vec2(0,1);
top_tmpl.getComponent!CScale().value = vec2(10,11);
top_tmpl.getComponent!CDepth().value = -2;
@ -645,11 +645,11 @@ struct ShipWeaponSystem
void create()
{
tower1_tmpl = launcher.manager.allocateTemplate(
[CColor.component_id, CHitMark.component_id, CHitPoints.component_id, CLocation.component_id,
CTexCoords.component_id, CScale.component_id, CEnemy.component_id,
CShootGrid.component_id, CGuild.component_id, CInit.component_id,
CChildren.component_id, CDepth.component_id, CTargetParent.component_id,
CSpawnUponDeath.component_id, CShootWaveUponDeath.component_id, CShootGridMask.component_id].staticArray
[becsID!CColor, becsID!CHitMark, becsID!CHitPoints, becsID!CLocation,
becsID!CTexCoords, becsID!CScale, becsID!CEnemy,
becsID!CShootGrid, becsID!CGuild, becsID!CInit,
becsID!CChildren, becsID!CDepth, becsID!CTargetParent,
becsID!CSpawnUponDeath, becsID!CShootWaveUponDeath, becsID!CShootGridMask].staticArray
);
/*CTexCoords* tex_comp = tower1_tmpl.getComponent!CTexCoords;
@ -696,8 +696,8 @@ struct ShipWeaponSystem
ship.create();
tower.create();
boss.create();
/*ship.laser1_tmpl = launcher.manager.allocateTemplate([CWeapon.component_id, CLocation.component_id, CShootDirection.component_id, CTargetParent.component_id, CGuild.component_id, CVelocity.component_id].staticArray);
ship.main_weapon_tmpl = launcher.manager.allocateTemplate([CLocation.component_id, CShootDirection.component_id, CTargetParent.component_id, CGuild.component_id, CVelocity.component_id].staticArray);
/*ship.laser1_tmpl = launcher.manager.allocateTemplate([becsID!CWeapon, becsID!CLocation, becsID!CShootDirection, becsID!CTargetParent, becsID!CGuild, becsID!CVelocity].staticArray);
ship.main_weapon_tmpl = launcher.manager.allocateTemplate([becsID!CLocation, becsID!CShootDirection, becsID!CTargetParent, becsID!CGuild, becsID!CVelocity].staticArray);
*ship.laser1_tmpl.getComponent!CWeapon = CWeapon(3,0.0);
ship.laser1_tmpl.getComponent!CTargetParent().rel_pos = vec2(10,13);
ship.main_weapon_tmpl.getComponent!CTargetParent().rel_pos = vec2(0,4);
@ -958,8 +958,8 @@ struct ShootingSystem
void onCreate()
{
/*bullet_tmpl[0] = launcher.manager.allocateTemplate(
[CLocation.component_id, CTexCoords.component_id, CVelocity.component_id,
CScale.component_id, CBullet.component_id, CGuild.component_id].staticArray
[becsID!CLocation, becsID!CTexCoords, becsID!CVelocity,
becsID!CScale, becsID!CBullet, becsID!CGuild].staticArray
);
bullet_tmpl[0].getComponent!CTexCoords().value = vec4(0,24,2,8)*px;
bullet_tmpl[0].getComponent!CScale().value = vec2(2,8);
@ -977,9 +977,9 @@ struct ShootingSystem
fire_tmpl = launcher.manager.allocateTemplate(
[CLocation.component_id, CTexCoords.component_id, CScale.component_id,
CAnimation.component_id, CParticle.component_id, CRotation.component_id,
CVelocity.component_id, CDamping.component_id].staticArray
[becsID!CLocation, becsID!CTexCoords, becsID!CScale,
becsID!CAnimation, becsID!CParticle, becsID!CRotation,
becsID!CVelocity, becsID!CDamping].staticArray
);
fire_tmpl.getComponent!CTexCoords().value = vec4(96,64,8,16)*px;
@ -1174,9 +1174,9 @@ struct ParticleEmittingSystem
void onCreate()
{
templates[0] = launcher.manager.allocateTemplate(
[CLocation.component_id, CTexCoords.component_id, CScale.component_id,
CAnimation.component_id, CParticle.component_id, CRotation.component_id,
CVelocity.component_id, CDamping.component_id, CDepth.component_id].staticArray);
[becsID!CLocation, becsID!CTexCoords, becsID!CScale,
becsID!CAnimation, becsID!CParticle, becsID!CRotation,
becsID!CVelocity, becsID!CDamping, becsID!CDepth].staticArray);
*templates[0].getComponent!CAnimation() = CAnimation(flashes,0,2);
*templates[0].getComponent!CParticle() = CParticle(350);
//*templates[0].getComponent!CDepth() = CDepth(-3);
@ -1242,7 +1242,7 @@ struct UpgradeCollisionSystem
if(space_invaders.shoot_grid.test(id, data.location[i], cast(ubyte)(0xFF)))
{
Entity* entity = launcher.manager.getEntity(id);
if(entity && entity.hasComponent(CShip.component_id))
if(entity && entity.hasComponent(becsID!CShip))
{
launcher.manager.sendEvent(id, EUpgrade());
launcher.manager.removeEntity(data.entity[i].id);
@ -1471,17 +1471,17 @@ struct HitPointsSystem
void onCreate()
{
upgrade_tmpl = launcher.manager.allocateTemplate(
[CVelocity.component_id, CLocation.component_id, CTexCoords.component_id,
CScale.component_id, CUpgrade.component_id, CAnimation.component_id,
CAnimationLooped.component_id].staticArray);
[becsID!CVelocity, becsID!CLocation, becsID!CTexCoords,
becsID!CScale, becsID!CUpgrade, becsID!CAnimation,
becsID!CAnimationLooped].staticArray);
//tex_comp.tex = space_invaders.texture;//ship_tex;
upgrade_tmpl.getComponent!CTexCoords().value = vec4(0*px,32*px,16*px,16*px);
*upgrade_tmpl.getComponent!CAnimation = CAnimation(upgrade_laser_frames, 0, 1);
upgrade_tmpl.getComponent!CVelocity().value = vec2(0,-0.05);
explosion_tmpl = launcher.manager.allocateTemplate(
[CDepth.component_id, CParticle.component_id, CLocation.component_id,
CTexCoords.component_id, CScale.component_id, CAnimation.component_id].staticArray);
[becsID!CDepth, becsID!CParticle, becsID!CLocation,
becsID!CTexCoords, becsID!CScale, becsID!CAnimation].staticArray);
//explosion_tmpl.getComponent!(CTexCoords).tex = space_invaders.texture;
*explosion_tmpl.getComponent!CAnimation = CAnimation(explosion_laser_frames, 0, 1.333);
explosion_tmpl.getComponent!(CParticle).life = 600;
@ -1627,8 +1627,8 @@ struct PartsDestroySystem
{
flashes_emitter = launcher.manager.allocateTemplate(
[
CVelocity.component_id, CLocation.component_id, CParticleEmitter.component_id,
CParticleEmitterTime.component_id, CTargetParent.component_id, CDepth.component_id
becsID!CVelocity, becsID!CLocation, becsID!CParticleEmitter,
becsID!CParticleEmitterTime, becsID!CTargetParent, becsID!CDepth
].staticArray);
*flashes_emitter.getComponent!CParticleEmitter() = CParticleEmitter(vec2(0,0), vec2(800,1600), 0);
}
@ -1992,8 +1992,8 @@ struct CShipIterator
{
flashes_emitter = launcher.manager.allocateTemplate(
[
CVelocity.component_id, CLocation.component_id, CParticleEmitter.component_id,
CParticleEmitterTime.component_id, CTargetParent.component_id
becsID!CVelocity, becsID!CLocation, becsID!CParticleEmitter,
becsID!CParticleEmitterTime, becsID!CTargetParent
].staticArray);
*flashes_emitter.getComponent!CParticleEmitter() = CParticleEmitter(vec2(0,0), vec2(400,400), 0);
}
@ -2185,43 +2185,43 @@ void spaceInvadersStart()
//launcher.gui_manager.addComponent(CSpawnUponDeath(),"Spawn Upon Death");
launcher.gui_manager.addComponent(CShootWaveUponDeath(CWeapon.Type.canon),"Wave Upon Death");
launcher.gui_manager.addSystem(DrawSystem.system_id,"Draw System");
launcher.gui_manager.addSystem(InputMovementSystem.system_id,"Input Movement");
launcher.gui_manager.addSystem(ShootingSystem.system_id,"Shooting System");
//launcher.gui_manager.addSystem(MovementSystem.system_id,"Movement System");
launcher.gui_manager.addSystem(MoveSystem.system_id,"Move System");
launcher.gui_manager.addSystem(ClampPositionSystem.system_id,"Clamp Position System");
launcher.gui_manager.addSystem(ChangeDirectionSystem.system_id,"Change Direction System");
launcher.gui_manager.addSystem(BulletsCollisionSystem.system_id,"Bullets Collision System");
launcher.gui_manager.addSystem(ShootGridManager.system_id,"Shoot Grid Manager");
launcher.gui_manager.addSystem(ShootGridCleaner.system_id,"Shoot Grid Cleaner");
launcher.gui_manager.addSystem(HitPointsSystem.system_id,"Hit Points System");
launcher.gui_manager.addSystem(HitMarkingSystem.system_id,"Hit Marking System");
launcher.gui_manager.addSystem(UpgradeCollisionSystem.system_id,"Upgrade Collision System");
launcher.gui_manager.addSystem(UpgradeSystem.system_id,"Upgrade System");
launcher.gui_manager.addSystem(ParticleSystem.system_id,"Particle System");
launcher.gui_manager.addSystem(AnimationSystem.system_id,"Animation System");
launcher.gui_manager.addSystem(DampingSystem.system_id,"Damping System");
launcher.gui_manager.addSystem(MoveToParentTargetSystem.system_id,"Move To Target System");
launcher.gui_manager.addSystem(ParentOwnerSystem.system_id,"Parent Owner System");
launcher.gui_manager.addSystem(ShipWeaponSystem.system_id,"Ship Weapon System");
launcher.gui_manager.addSystem(ParticleEmittingSystem.system_id,"Particle Emitting System");
launcher.gui_manager.addSystem(RotateToTargetSystem.system_id,"Rotate To Target System");
launcher.gui_manager.addSystem(ShipTargetSystem.system_id,"Ship Target System");
launcher.gui_manager.addSystem(PartsDestroySystem.system_id,"Parts Destroy System");
launcher.gui_manager.addSystem(ChildDestroySystem.system_id,"Child Destroy System");
launcher.gui_manager.addSystem(ShootWaveSystem.system_id,"Shoot Wave System");
//launcher.gui_manager.addSystem(SpawnUponDeathSystem.system_id,"Child Destroy System");
launcher.gui_manager.addSystem(becsID!DrawSystem,"Draw System");
launcher.gui_manager.addSystem(becsID!InputMovementSystem,"Input Movement");
launcher.gui_manager.addSystem(becsID!ShootingSystem,"Shooting System");
//launcher.gui_manager.addSystem(becsID!MovementSystem,"Movement System");
launcher.gui_manager.addSystem(becsID!MoveSystem,"Move System");
launcher.gui_manager.addSystem(becsID!ClampPositionSystem,"Clamp Position System");
launcher.gui_manager.addSystem(becsID!ChangeDirectionSystem,"Change Direction System");
launcher.gui_manager.addSystem(becsID!BulletsCollisionSystem,"Bullets Collision System");
launcher.gui_manager.addSystem(becsID!ShootGridManager,"Shoot Grid Manager");
launcher.gui_manager.addSystem(becsID!ShootGridCleaner,"Shoot Grid Cleaner");
launcher.gui_manager.addSystem(becsID!HitPointsSystem,"Hit Points System");
launcher.gui_manager.addSystem(becsID!HitMarkingSystem,"Hit Marking System");
launcher.gui_manager.addSystem(becsID!UpgradeCollisionSystem,"Upgrade Collision System");
launcher.gui_manager.addSystem(becsID!UpgradeSystem,"Upgrade System");
launcher.gui_manager.addSystem(becsID!ParticleSystem,"Particle System");
launcher.gui_manager.addSystem(becsID!AnimationSystem,"Animation System");
launcher.gui_manager.addSystem(becsID!DampingSystem,"Damping System");
launcher.gui_manager.addSystem(becsID!MoveToParentTargetSystem,"Move To Target System");
launcher.gui_manager.addSystem(becsID!ParentOwnerSystem,"Parent Owner System");
launcher.gui_manager.addSystem(becsID!ShipWeaponSystem,"Ship Weapon System");
launcher.gui_manager.addSystem(becsID!ParticleEmittingSystem,"Particle Emitting System");
launcher.gui_manager.addSystem(becsID!RotateToTargetSystem,"Rotate To Target System");
launcher.gui_manager.addSystem(becsID!ShipTargetSystem,"Ship Target System");
launcher.gui_manager.addSystem(becsID!PartsDestroySystem,"Parts Destroy System");
launcher.gui_manager.addSystem(becsID!ChildDestroySystem,"Child Destroy System");
launcher.gui_manager.addSystem(becsID!ShootWaveSystem,"Shoot Wave System");
//launcher.gui_manager.addSystem(becsID!SpawnUponDeathSystem,"Child Destroy System");
//launcher.manager.getSystem(CleanSystem.system_id).disable();
//launcher.manager.getSystem(becsID!CleanSystem).disable();
{
space_invaders.ship_tmpl = launcher.manager.allocateTemplate(
[CVelocity.component_id, CColor.component_id, CHitMark.component_id, CHitPoints.component_id,
CLocation.component_id, CTexCoords.component_id, CInput.component_id,
CShip.component_id, CScale.component_id, CColliderScale.component_id,
CShootDirection.component_id, CShootGrid.component_id, CGuild.component_id,
CDamping.component_id, CChildren.component_id, CInit.component_id,
CShootGridMask.component_id, CVelocityFactor.component_id].staticArray
[becsID!CVelocity, becsID!CColor, becsID!CHitMark, becsID!CHitPoints,
becsID!CLocation, becsID!CTexCoords, becsID!CInput,
becsID!CShip, becsID!CScale, becsID!CColliderScale,
becsID!CShootDirection, becsID!CShootGrid, becsID!CGuild,
becsID!CDamping, becsID!CChildren, becsID!CInit,
becsID!CShootGridMask, becsID!CVelocityFactor].staticArray
);
space_invaders.ship_tmpl.getComponent!CTexCoords().value = vec4(0,80,48,32)*px;
space_invaders.ship_tmpl.getComponent!CScale().value = vec2(48,32);
@ -2235,7 +2235,7 @@ void spaceInvadersStart()
}
{
ushort[6] components = [CLocation.component_id, CTexCoords.component_id, CVelocity.component_id, CScale.component_id, CBullet.component_id, CGuild.component_id];
ushort[6] components = [becsID!CLocation, becsID!CTexCoords, becsID!CVelocity, becsID!CScale, becsID!CBullet, becsID!CGuild];
space_invaders.laser_tmpl = launcher.manager.allocateTemplate(components);
space_invaders.laser_tmpl.getComponent!CTexCoords().value = vec4(0,24,2,8)*px;
@ -2253,11 +2253,11 @@ void spaceInvadersStart()
{
boss_tmpl = launcher.manager.allocateTemplate(
[CColor.component_id, CHitMark.component_id, CParts.component_id, CLocation.component_id,
CTexCoords.component_id, CScale.component_id, CEnemy.component_id,
CBoss.component_id, CGuild.component_id, CInit.component_id,
CChildren.component_id, CSideMove.component_id, CVelocity.component_id,
CDepth.component_id].staticArray
[becsID!CColor, becsID!CHitMark, becsID!CParts, becsID!CLocation,
becsID!CTexCoords, becsID!CScale, becsID!CEnemy,
becsID!CBoss, becsID!CGuild, becsID!CInit,
becsID!CChildren, becsID!CSideMove, becsID!CVelocity,
becsID!CDepth].staticArray
);
//CTexture* tex_comp = boss_tmpl.getComponent!CTexture;
@ -2276,10 +2276,10 @@ void spaceInvadersStart()
{
tower_tmpl = launcher.manager.allocateTemplate(
[CColor.component_id, CHitMark.component_id, CHitPoints.component_id, CLocation.component_id,
CTexCoords.component_id, CScale.component_id, CEnemy.component_id,
CShootGrid.component_id, CGuild.component_id, CInit.component_id,
CChildren.component_id, CShootGridMask.component_id].staticArray
[becsID!CColor, becsID!CHitMark, becsID!CHitPoints, becsID!CLocation,
becsID!CTexCoords, becsID!CScale, becsID!CEnemy,
becsID!CShootGrid, becsID!CGuild, becsID!CInit,
becsID!CChildren, becsID!CShootGridMask].staticArray
);
tower_tmpl.getComponent!CTexCoords().value = vec4(96,96,16,16)*px;
@ -2290,11 +2290,11 @@ void spaceInvadersStart()
{
space_invaders.enemy_tmpl = launcher.manager.allocateTemplate(
[CWeaponLocation.component_id, CColor.component_id, CHitMark.component_id, CHitPoints.component_id,
CVelocity.component_id, CAutoShoot.component_id, CLocation.component_id,
CTexCoords.component_id, CScale.component_id, CWeapon.component_id,
CEnemy.component_id, CShootDirection.component_id, CShootGrid.component_id,
CGuild.component_id, CShootGridMask.component_id].staticArray
[becsID!CWeaponLocation, becsID!CColor, becsID!CHitMark, becsID!CHitPoints,
becsID!CVelocity, becsID!CAutoShoot, becsID!CLocation,
becsID!CTexCoords, becsID!CScale, becsID!CWeapon,
becsID!CEnemy, becsID!CShootDirection, becsID!CShootGrid,
becsID!CGuild, becsID!CShootGridMask].staticArray
);
space_invaders.enemy_tmpl.getComponent!CTexCoords().value = vec4(32,32,16,16)*px;
@ -2329,7 +2329,7 @@ void spaceInvadersStart()
EntityTemplate* upgrade_tmpl;
{
upgrade_tmpl = launcher.manager.allocateTemplate([CVelocity.component_id, CLocation.component_id, CTexCoords.component_id, CScale.component_id, CUpgrade.component_id, CAnimationLooped.component_id, CAnimation.component_id].staticArray);
upgrade_tmpl = launcher.manager.allocateTemplate([becsID!CVelocity, becsID!CLocation, becsID!CTexCoords, becsID!CScale, becsID!CUpgrade, becsID!CAnimationLooped, becsID!CAnimation].staticArray);
upgrade_tmpl.getComponent!CTexCoords().value = vec4(0,32,16,16)*px;
upgrade_tmpl.getComponent!CVelocity().value = vec2(0,-0.05);
*upgrade_tmpl.getComponent!CAnimation = CAnimation(HitPointsSystem.upgrade_laser_frames, 0, 0.75);
@ -2341,8 +2341,8 @@ void spaceInvadersStart()
grouped_tmpl = launcher.manager.allocateTemplate(grouped_id);
space_invaders.bullet_tmpl[0] = launcher.manager.allocateTemplate(
[CLocation.component_id, CTexCoords.component_id, CVelocity.component_id,
CScale.component_id, CBullet.component_id, CGuild.component_id].staticArray
[becsID!CLocation, becsID!CTexCoords, becsID!CVelocity,
becsID!CScale, becsID!CBullet, becsID!CGuild].staticArray
);
space_invaders.bullet_tmpl[0].getComponent!CTexCoords().value = vec4(0,24,2,8)*px;
space_invaders.bullet_tmpl[0].getComponent!CScale().value = vec2(2,8);
@ -2372,12 +2372,12 @@ void spaceInvadersStart()
void spaceInvadersEnd()
{
/*launcher.manager.getSystem(DrawSystem.system_id).disable();
launcher.manager.getSystem(InputMovementSystem.system_id).disable();
launcher.manager.getSystem(ShootingSystem.system_id).disable();
launcher.manager.getSystem(MovementSystem.system_id).disable();
launcher.manager.getSystem(ClampPositionSystem.system_id).disable();
launcher.manager.getSystem(ShootGridCleaner.system_id).disable();*/
/*launcher.manager.getSystem(becsID!DrawSystem).disable();
launcher.manager.getSystem(becsID!InputMovementSystem).disable();
launcher.manager.getSystem(becsID!ShootingSystem).disable();
launcher.manager.getSystem(becsID!MovementSystem).disable();
launcher.manager.getSystem(becsID!ClampPositionSystem).disable();
launcher.manager.getSystem(becsID!ShootGridCleaner).disable();*/
//launcher.manager.freeTemplate(space_invaders.enemy_tmpl);
Mallocator.dispose(space_invaders);
@ -2401,13 +2401,13 @@ bool spaceInvadersLoop()
{
if(igCheckbox("Move system",&simple.move_system))
{
if(simple.move_system)launcher.manager.getSystem(MoveSystem.system_id).enable();
else launcher.manager.getSystem(MoveSystem.system_id).disable();
if(simple.move_system)launcher.manager.getSystem(becsID!MoveSystem).enable();
else launcher.manager.getSystem(becsID!MoveSystem).disable();
}
if(igCheckbox("Draw system",&simple.draw_system))
{
if(simple.draw_system)launcher.manager.getSystem(DrawSystem.system_id).enable();
else launcher.manager.getSystem(DrawSystem.system_id).disable();
if(simple.draw_system)launcher.manager.getSystem(becsID!DrawSystem).enable();
else launcher.manager.getSystem(becsID!DrawSystem).disable();
}
igPushButtonRepeat(true);
igColumns(3,null,0);
@ -2429,11 +2429,11 @@ bool spaceInvadersLoop()
igColumns(1,null,0);
if(igButton("Clear",ImVec2(-1,0)))
{
launcher.manager.getSystem(CleanSystem.system_id).enable();
launcher.manager.getSystem(becsID!CleanSystem).enable();
launcher.manager.begin();
launcher.manager.update();
launcher.manager.end();
launcher.manager.getSystem(CleanSystem.system_id).disable();
launcher.manager.getSystem(becsID!CleanSystem).disable();
}
}
igEnd();

View file

@ -119,26 +119,25 @@ struct GUIManager
// void addComponent(ComponentRef comp, const (char)* name)
// {
// uint size = EntityManager.instance.components[comp.component_id].size;
// uint size = EntityManager.instance.components[becsID(comp)].size;
// void* data = malloc(size);
// memcpy(data, comp.ptr, size);
// components.add(ComponentGUI(name, data, comp.component_id));
// components.add(ComponentGUI(name, data, becsID(comp)));
// }
void addComponent(T)(T comp, const (char)* name)
{
static assert(hasStaticMember!(T,"component_id"));
uint size = EntityManager.instance.components[comp.component_id].size;
uint size = EntityManager.instance.components[becsID(comp)].size;
void* data = malloc(size);
memcpy(data, &comp, size);
components.add(ComponentGUI(name, data, comp.component_id));
components.add(ComponentGUI(name, data, becsID(comp)));
if(edit_components.length <= comp.component_id)
if(edit_components.length <= becsID(comp))
{
edit_components.length = comp.component_id+1;//.extend(comp.component_id + 1);
edit_components.length = becsID(comp)+1;//.extend(becsID(comp) + 1);
}
//edit_components[comp.component_id] = ComponentEditGUI(name);
if(edit_components[comp.component_id].variables)return;
//edit_components[becsID(comp)] = ComponentEditGUI(name);
if(edit_components[becsID(comp)].variables)return;
ComponentEditGUI comp_edit;
comp_edit.name = T.stringof;
//enum fields = __traits(allMembers, T);
@ -246,7 +245,7 @@ struct GUIManager
}
}
}
edit_components[comp.component_id] = comp_edit;
edit_components[becsID(comp)] = comp_edit;
}
void gui()