Search in sources :

Example 1 with BuildingSlot

use of de.gg.game.model.entities.BuildingSlot in project ProjektGG by eskalon.

the class GameLoadingScreen method onFinishedLoading.

@Override
protected void onFinishedLoading() {
    GameSession session = ((ProjektGGApplication) application).getClient().getSession();
    World world = session.getWorld();
    // Create the ModelInstances
    for (BuildingSlot s : world.getBuildingSlots()) {
        if (s.isBuiltOn()) {
            s.getBuilding().setRenderData(new SelectableRenderData(application.getAssetManager().get(s.getBuilding().getType().getModelPath(), Model.class)));
            // FIXME siehe AuthoritativeSession#init(...)
            s.getBuilding().getRenderData().transform.translate(s.getPosX(), 0, s.getPosZ());
            s.getBuilding().getRenderData().transform.rotate(Y_AXIS, s.getRotationToStreet());
        // TODO Use _one_ scene for all models?
        // new SelectableRenderData(scene,
        // building1.getType().getNodeName(), true);
        }
    }
    Model skyboxModel = application.getAssetManager().get(session.getSessionSetup().getMap().getSkyboxPath(), Model.class);
    for (Material m : skyboxModel.materials) {
        // fixes a bug related to changes in gdx 1.9.9, see
        // https://github.com/libgdx/libgdx/issues/5529
        m.remove(ColorAttribute.Emissive);
    }
    world.setSkybox(new ModelInstance(skyboxModel));
    Log.info("Client", "Game assets loaded");
    if (((ProjektGGApplication) application).isHost()) {
        ((ProjektGGApplication) application).getServer().startMatch();
        Log.info("Server", "Game started!");
    }
    application.getScreenManager().pushScreen("round_end", "simple_zoom", 1);
}
Also used : GameSession(de.gg.game.session.GameSession) ModelInstance(com.badlogic.gdx.graphics.g3d.ModelInstance) Model(com.badlogic.gdx.graphics.g3d.Model) Material(com.badlogic.gdx.graphics.g3d.Material) ProjektGGApplication(de.gg.game.core.ProjektGGApplication) World(de.gg.game.model.World) SelectableRenderData(de.gg.game.ui.rendering.SelectableRenderData) BuildingSlot(de.gg.game.model.entities.BuildingSlot)

Example 2 with BuildingSlot

use of de.gg.game.model.entities.BuildingSlot in project ProjektGG by eskalon.

the class WorldGenerator method generateBuildings.

private void generateBuildings() {
    // Building-Slots
    world.buildingSlots = map.getBuildingSlots().toArray(new BuildingSlot[0]);
    // [Test] Buildings
    BuildingSlot slot = world.buildingSlots[0];
    Building b = new Building();
    b.setType(BuildingType.FORGE_1);
    slot.setBuilding(b);
    slot = world.buildingSlots[1];
    b = new Building();
    b.setType(BuildingType.TOWN_HALL);
    slot.setBuilding(b);
}
Also used : Building(de.gg.game.model.entities.Building) BuildingSlot(de.gg.game.model.entities.BuildingSlot)

Aggregations

BuildingSlot (de.gg.game.model.entities.BuildingSlot)2 Material (com.badlogic.gdx.graphics.g3d.Material)1 Model (com.badlogic.gdx.graphics.g3d.Model)1 ModelInstance (com.badlogic.gdx.graphics.g3d.ModelInstance)1 ProjektGGApplication (de.gg.game.core.ProjektGGApplication)1 World (de.gg.game.model.World)1 Building (de.gg.game.model.entities.Building)1 GameSession (de.gg.game.session.GameSession)1 SelectableRenderData (de.gg.game.ui.rendering.SelectableRenderData)1