com.github.fauu.helix.editor.screen.Overworld.java Source code

Java tutorial

Introduction

Here is the source code for com.github.fauu.helix.editor.screen.Overworld.java

Source

/*
 * Copyright (C) 2014, 2015 Helix Engine Developers 
 * (http://github.com/fauu/HelixEngine)
 *
 * This software is licensed under the GNU General Public License
 * (version 3 or later). See the COPYING file in this distribution.
 *
 * You should have received a copy of the GNU Library General Public License
 * along with this software. If not, see <http://www.gnu.org/licenses/>.
 *
 * Authored by: Piotr Grabowski <fau999@gmail.com>
 */

package com.github.fauu.helix.editor.screen;

import com.artemis.World;
import com.artemis.WorldConfiguration;
import com.artemis.managers.GroupManager;
import com.artemis.managers.TagManager;
import com.artemis.managers.UuidEntityManager;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.assets.AssetManager;
import com.badlogic.gdx.math.Vector3;
import com.github.fauu.helix.editor.manager.CameraIntermediary;
import com.github.fauu.helix.editor.manager.DisplayableIntermediary;
import com.github.fauu.helix.editor.system.CameraControlSystem;
import com.github.fauu.helix.editor.system.TileHighlightingSystem;
import com.github.fauu.helix.editor.system.TilePermissionsEditingSystem;
import com.github.fauu.helix.graphics.HelixCamera;
import com.github.fauu.helix.manager.AreaManager;
import com.github.fauu.helix.manager.TextureManager;
import com.github.fauu.helix.manager.WeatherMan;
import com.github.fauu.helix.system.RenderingSystem;

public class Overworld implements Screen {

    private World world;

    private HelixCamera camera;

    private AssetManager assetManager;

    private DisplayableIntermediary displayableIntermediary;

    private CameraIntermediary cameraIntermediary;

    public Overworld() {
        assetManager = new AssetManager();

        camera = new HelixCamera(60, new Vector3(0, -30, 30), .01f, 300);

        WorldConfiguration worldConfiguration = new WorldConfiguration().register(assetManager).register(camera);
        world = new World(worldConfiguration);

        world.setManager(new UuidEntityManager());
        world.setManager(new TextureManager());
        world.setManager(new TagManager());
        world.setManager(new GroupManager());
        world.setManager(new AreaManager());
        world.setManager(new WeatherMan());
        world.setManager(displayableIntermediary = new DisplayableIntermediary());
        world.setManager(cameraIntermediary = new CameraIntermediary());

        world.setSystem(new CameraControlSystem());
        world.setSystem(new TileHighlightingSystem());
        world.setSystem(new TilePermissionsEditingSystem());
        world.setSystem(new RenderingSystem());

        world.initialize();
    }

    @Override
    public void render(float delta) {
        world.setDelta(delta);
        world.process();
    }

    @Override
    public void resize(int width, int height) {
    }

    @Override
    public void show() {
    }

    @Override
    public void hide() {
    }

    @Override
    public void pause() {
    }

    @Override
    public void resume() {
    }

    @Override
    public void dispose() {
        world.dispose();
        assetManager.dispose();
    }

    public World getWorld() {
        return world;
    }

    public AssetManager getAssetManager() {
        return assetManager;
    }

    public DisplayableIntermediary getDisplayableIntermediary() {
        return displayableIntermediary;
    }

    public CameraIntermediary getCameraIntermediary() {
        return cameraIntermediary;
    }

}