Android Open Source - Ready-Set-Rogue Visibility Processor






From Project

Back to project page Ready-Set-Rogue.

License

The source code is released under:

GNU General Public License

If you think the Android project Ready-Set-Rogue listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.warsheep.scamp.processors;
//from   www.  j  av a2  s.  c o  m
import com.badlogic.ashley.core.Entity;
import com.badlogic.ashley.core.EntityListener;
import com.badlogic.ashley.systems.SortedIteratingSystem;
import com.badlogic.ashley.core.Family;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.warsheep.scamp.AssetDepot;
import com.warsheep.scamp.Scamp;
import com.warsheep.scamp.components.ECSMapper;
import com.warsheep.scamp.components.TransformComponent;
import com.warsheep.scamp.components.VisibleComponent;

import java.util.Comparator;

public class VisibilityProcessor extends SortedIteratingSystem {

    private OrthographicCamera camera;
    private TransformComponent trans;
    private SpriteBatch batch;
    private AssetDepot assets;

    public VisibilityProcessor() {
        super(Family.all(VisibleComponent.class).get(), new ZComparator());
        this.batch = new SpriteBatch();

        this.camera = new OrthographicCamera(Scamp.V_WIDTH, Scamp.V_HEIGHT);
        this.camera.position.set(Scamp.V_WIDTH / 2, Scamp.V_HEIGHT / 2, 0);
        this.assets = AssetDepot.getInstance();
    }

    @Override
    public void processEntity(Entity entity, float deltaTime) {

        VisibleComponent v = ECSMapper.visible.get(entity);
        if (v.image == null) {
            v.image = assets.fetchImage(v.dir, v.file);
        }
        if (v.color != Color.WHITE) {
            batch.setColor(v.color);
        } else {
            batch.setColor(Color.WHITE);
        }
        // TODO: Transform world coords to screen coords
        trans = ECSMapper.transform.get(entity);
        batch.draw(v.image,
                trans.position.x, trans.position.y,
                v.originX, v.originY,
                v.image.originalWidth, v.image.originalHeight,
                trans.scale.x, trans.scale.y,
                trans.rotation);

    }

    public void startBatch() {
        // Clear buffer
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        batch.begin();

        camera.update();
        batch.setProjectionMatrix(camera.combined);
    }

    public void endBatch() {
        batch.end();
    }

    public OrthographicCamera getCamera() {
        return camera;
    }

    private static class ZComparator implements Comparator<Entity> {

        @Override
        public int compare(Entity a, Entity b) {
            float aZ = ECSMapper.transform.get(a).position.z;
            float bZ = ECSMapper.transform.get(b).position.z;
            return (int) Math.signum(bZ - aZ);
        }

        @Override
        public boolean equals(Object o) {
            return false;
        }

    }
}




Java Source Code List

com.warsheep.scamp.AssetDepot.java
com.warsheep.scamp.IOSLauncher.java
com.warsheep.scamp.MapImporter.java
com.warsheep.scamp.PrefabFactory.java
com.warsheep.scamp.Scamp.java
com.warsheep.scamp.adt.BSPRectangle.java
com.warsheep.scamp.adt.Container.java
com.warsheep.scamp.adt.Pair.java
com.warsheep.scamp.adt.Room.java
com.warsheep.scamp.algorithms.BSPMapGenerator.java
com.warsheep.scamp.algorithms.Compositor.java
com.warsheep.scamp.android.AndroidLauncher.java
com.warsheep.scamp.client.HtmlLauncher.java
com.warsheep.scamp.components.AIControllableComponent.java
com.warsheep.scamp.components.AttackerComponent.java
com.warsheep.scamp.components.CameraComponent.java
com.warsheep.scamp.components.CollidableComponent.java
com.warsheep.scamp.components.ControllableComponent.java
com.warsheep.scamp.components.DamageableComponent.java
com.warsheep.scamp.components.DropComponent.java
com.warsheep.scamp.components.ECSMapper.java
com.warsheep.scamp.components.FactionComponent.java
com.warsheep.scamp.components.InventoryComponent.java
com.warsheep.scamp.components.LevelComponent.java
com.warsheep.scamp.components.MovementComponent.java
com.warsheep.scamp.components.StateComponent.java
com.warsheep.scamp.components.TileComponent.java
com.warsheep.scamp.components.TransformComponent.java
com.warsheep.scamp.components.VisibleComponent.java
com.warsheep.scamp.desktop.AssetPacker.java
com.warsheep.scamp.desktop.DesktopLauncher.java
com.warsheep.scamp.processors.AIProcessor.java
com.warsheep.scamp.processors.CameraProcessor.java
com.warsheep.scamp.processors.CollisionProcessor.java
com.warsheep.scamp.processors.CombatProcessor.java
com.warsheep.scamp.processors.ControlProcessor.java
com.warsheep.scamp.processors.DeathProcessor.java
com.warsheep.scamp.processors.LevelingProcessor.java
com.warsheep.scamp.processors.MovementProcessor.java
com.warsheep.scamp.processors.StateProcessor.java
com.warsheep.scamp.processors.TileProcessor.java
com.warsheep.scamp.processors.VisibilityProcessor.java
com.warsheep.scamp.screens.MainGameScreen.java
com.warsheep.scamp.screens.MainMenuScreen.java