Search in sources :

Example 1 with Spatial

use of com.gemserk.commons.gdx.games.Spatial in project commons-gdx by gemserk.

the class PreviousStateSpatialSystem method processEntities.

@Override
protected void processEntities() {
    RandomAccessMap<Entity, EntityComponents> allTheEntityComponents = factory.entityComponents;
    int entitiesSize = allTheEntityComponents.size();
    for (int e = 0; e < entitiesSize; e++) {
        EntityComponents entityComponents = allTheEntityComponents.get(e);
        SpatialComponent spatialComponent = entityComponents.spatialComponent;
        PreviousStateSpatialComponent previousStateSpatialComponent = entityComponents.previousStateSpatialComponent;
        Spatial spatial = spatialComponent.getSpatial();
        Spatial previousSpatial = previousStateSpatialComponent.getSpatial();
        previousSpatial.set(spatial);
    }
}
Also used : Entity(com.artemis.Entity) Spatial(com.gemserk.commons.gdx.games.Spatial) PreviousStateSpatialComponent(com.gemserk.commons.artemis.components.PreviousStateSpatialComponent) SpatialComponent(com.gemserk.commons.artemis.components.SpatialComponent) PreviousStateSpatialComponent(com.gemserk.commons.artemis.components.PreviousStateSpatialComponent)

Example 2 with Spatial

use of com.gemserk.commons.gdx.games.Spatial in project commons-gdx by gemserk.

the class MovementSystem method processEntities.

@Override
protected void processEntities() {
    RandomAccessMap<Entity, EntityComponents> allTheEntityComponents = componentsHolder.entityComponents;
    int entitiesSize = allTheEntityComponents.size();
    float delta = GlobalTime.getDelta();
    for (int entityIndex = 0; entityIndex < entitiesSize; entityIndex++) {
        EntityComponents entityComponents = allTheEntityComponents.get(entityIndex);
        MovementComponent movementComponent = entityComponents.movementComponent;
        Spatial spatial = entityComponents.spatialComponent.getSpatial();
        Vector2 velocity = movementComponent.getVelocity();
        tmpVelocity.set(velocity).mul(delta);
        tmpPosition.set(spatial.getX(), spatial.getY()).add(tmpVelocity);
        float newAngle = spatial.getAngle() + delta * movementComponent.getAngularVelocity();
        spatial.setAngle(newAngle);
        spatial.setPosition(tmpPosition.x, tmpPosition.y);
    }
}
Also used : Entity(com.artemis.Entity) Spatial(com.gemserk.commons.gdx.games.Spatial) Vector2(com.badlogic.gdx.math.Vector2) MovementComponent(com.gemserk.commons.artemis.components.MovementComponent)

Example 3 with Spatial

use of com.gemserk.commons.gdx.games.Spatial in project commons-gdx by gemserk.

the class TextLocationUpdateSystem method process.

@Override
protected void process(Entity e) {
    SpatialComponent spatialComponent = Components.getSpatialComponent(e);
    TextComponent textComponent = Components.getTextComponent(e);
    Spatial spatial = spatialComponent.getSpatial();
    textComponent.x = spatial.getX();
    textComponent.y = spatial.getY();
}
Also used : TextComponent(com.gemserk.commons.artemis.components.TextComponent) Spatial(com.gemserk.commons.gdx.games.Spatial) SpatialComponent(com.gemserk.commons.artemis.components.SpatialComponent)

Example 4 with Spatial

use of com.gemserk.commons.gdx.games.Spatial in project commons-gdx by gemserk.

the class RenderLayerSpriteBatchImpl method render.

@Override
public void render() {
    camera.getFrustum(frustum);
    if (optimizationParameters.updateCamera)
        camera.apply(spriteBatch);
    RandomAccessMap<Entity, EntityComponents> entityComponents = factory.entityComponents;
    if (blending && !spriteBatch.isBlendingEnabled())
        spriteBatch.enableBlending();
    else if (!blending && spriteBatch.isBlendingEnabled())
        spriteBatch.disableBlending();
    if (optimizationParameters.beginBatch)
        spriteBatch.begin();
    for (int i = 0; i < orderedByLayerRenderables.size(); i++) {
        Renderable renderable = orderedByLayerRenderables.get(i);
        if (!renderable.isVisible())
            continue;
        EntityComponents components = entityComponents.get(renderable.getEntity());
        FrustumCullingComponent frustumCullingComponent = components.frustumCullingComponent;
        if (frustumCullingComponent != null) {
            Spatial spatial = components.spatialComponent.getSpatial();
            entityBounds.set(frustumCullingComponent.bounds);
            entityBounds.setX(entityBounds.getX() + spatial.getX());
            entityBounds.setY(entityBounds.getY() + spatial.getY());
            if (!frustum.overlaps(entityBounds))
                continue;
        }
        SpriteComponent spriteComponent = components.spriteComponent;
        if (spriteComponent != null) {
            Sprite sprite = spriteComponent.getSprite();
            sprite.setColor(spriteComponent.getColor());
            sprite.draw(spriteBatch);
        }
        // don't like it will be asking for components all the time.
        TextComponent textComponent = components.textComponent;
        if (textComponent != null) {
            BitmapFont font = textComponent.font;
            if (font.getScaleX() != textComponent.scale) {
                font.setScale(textComponent.scale);
            }
            font.setColor(textComponent.color);
            //
            SpriteBatchUtils.drawMultilineText(//
            spriteBatch, //
            font, textComponent.text, textComponent.x, textComponent.y, textComponent.cx, textComponent.cy);
        }
        ParticleEmitterComponent particleEmitterComponent = components.particleEmitterComponent;
        if (particleEmitterComponent != null) {
            particleEmitterComponent.particleEmitter.draw(spriteBatch);
        }
    }
    if (optimizationParameters.endBatch)
        spriteBatch.end();
}
Also used : TextComponent(com.gemserk.commons.artemis.components.TextComponent) Entity(com.artemis.Entity) Renderable(com.gemserk.commons.artemis.render.Renderable) Sprite(com.badlogic.gdx.graphics.g2d.Sprite) Spatial(com.gemserk.commons.gdx.games.Spatial) SpriteComponent(com.gemserk.commons.artemis.components.SpriteComponent) FrustumCullingComponent(com.gemserk.commons.artemis.components.FrustumCullingComponent) BitmapFont(com.badlogic.gdx.graphics.g2d.BitmapFont) ParticleEmitterComponent(com.gemserk.commons.artemis.components.ParticleEmitterComponent)

Example 5 with Spatial

use of com.gemserk.commons.gdx.games.Spatial in project commons-gdx by gemserk.

the class EntityTemplateTest method test.

@Test
public void test() {
    EntityTemplate customShipTemplate = new ShipEntityTemplate() {

        {
            parameters.put("x", 100f);
            parameters.put("y", 200f);
            parameters.put("health", new Container(53f, 250f));
        }
    };
    EntityFactory entityFactory = new EntityFactoryImpl(new World());
    Entity entity = entityFactory.instantiate(customShipTemplate);
    SpatialComponent spatialComponent = entity.getComponent(SpatialComponent.class);
    Spatial spatial = spatialComponent.getSpatial();
    assertThat(spatial.getX(), IsEqual.equalTo(100f));
    assertThat(spatial.getY(), IsEqual.equalTo(200f));
    HealthComponent healthComponent = entity.getComponent(HealthComponent.class);
    Container health = healthComponent.getHealth();
    assertThat(health.getCurrent(), IsEqual.equalTo(53f));
    assertThat(health.getTotal(), IsEqual.equalTo(250f));
}
Also used : Entity(com.artemis.Entity) Container(com.gemserk.componentsengine.utils.Container) EntityFactoryImpl(com.gemserk.commons.artemis.templates.EntityFactoryImpl) Spatial(com.gemserk.commons.gdx.games.Spatial) EntityTemplate(com.gemserk.commons.artemis.templates.EntityTemplate) SpatialComponent(com.gemserk.commons.artemis.components.SpatialComponent) World(com.artemis.World) EntityFactory(com.gemserk.commons.artemis.templates.EntityFactory) Test(org.junit.Test)

Aggregations

Spatial (com.gemserk.commons.gdx.games.Spatial)8 Entity (com.artemis.Entity)6 SpatialComponent (com.gemserk.commons.artemis.components.SpatialComponent)6 World (com.artemis.World)2 ParticleEmitterComponent (com.gemserk.commons.artemis.components.ParticleEmitterComponent)2 PreviousStateSpatialComponent (com.gemserk.commons.artemis.components.PreviousStateSpatialComponent)2 SpriteComponent (com.gemserk.commons.artemis.components.SpriteComponent)2 TextComponent (com.gemserk.commons.artemis.components.TextComponent)2 EntityFactory (com.gemserk.commons.artemis.templates.EntityFactory)2 EntityFactoryImpl (com.gemserk.commons.artemis.templates.EntityFactoryImpl)2 EntityTemplate (com.gemserk.commons.artemis.templates.EntityTemplate)2 Container (com.gemserk.componentsengine.utils.Container)2 Test (org.junit.Test)2 BitmapFont (com.badlogic.gdx.graphics.g2d.BitmapFont)1 Sprite (com.badlogic.gdx.graphics.g2d.Sprite)1 Vector2 (com.badlogic.gdx.math.Vector2)1 FrustumCullingComponent (com.gemserk.commons.artemis.components.FrustumCullingComponent)1 MovementComponent (com.gemserk.commons.artemis.components.MovementComponent)1 Renderable (com.gemserk.commons.artemis.render.Renderable)1