Example usage for com.badlogic.gdx.utils Array sort

List of usage examples for com.badlogic.gdx.utils Array sort

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils Array sort.

Prototype

public void sort() 

Source Link

Document

Sorts this array.

Usage

From source file:com.agateau.pixelwheels.map.LapPositionTableIO.java

License:Open Source License

public static LapPositionTable load(TiledMap map) {
    MapLayer layer = map.getLayers().get("Sections");
    Assert.check(layer != null, "No 'Sections' layer found");
    MapObjects objects = layer.getObjects();

    Array<Line> lines = new Array<Line>();
    lines.ensureCapacity(objects.getCount());
    Set<String> names = new HashSet<String>();
    for (MapObject obj : objects) {
        String name = obj.getName();
        Assert.check(!name.isEmpty(), "Section line is missing a name");
        Assert.check(!names.contains(name), "Duplicate section line " + name);
        names.add(name);//from w  ww .java2 s .co m

        float order;
        try {
            order = Float.parseFloat(name);
        } catch (NumberFormatException e) {
            throw new RuntimeException("Invalid section name " + name);
        }
        Assert.check(obj instanceof PolylineMapObject,
                "'Sections' layer should only contain PolylineMapObjects");
        Polyline polyline = ((PolylineMapObject) obj).getPolyline();
        float[] vertices = polyline.getTransformedVertices();
        Assert.check(vertices.length == 4,
                "Polyline with name " + order + "should have 2 points, not " + (vertices.length / 2));
        Line line = new Line();
        line.x1 = vertices[0];
        line.y1 = vertices[1];
        line.x2 = vertices[2];
        line.y2 = vertices[3];
        line.order = order;
        lines.add(line);
    }
    lines.sort();

    LapPositionTable table = new LapPositionTable();
    for (int idx = 0; idx < lines.size; ++idx) {
        Line line1 = lines.get(idx);
        Line line2 = lines.get((idx + 1) % lines.size);
        float[] vertices = { line1.x1, line1.y1, line2.x1, line2.y1, line2.x2, line2.y2, line1.x2, line1.y2 };
        Polygon polygon = new Polygon(vertices);
        table.addSection(idx, polygon);
    }
    return table;
}

From source file:com.badlogic.gdx.graphics.g3d.test.PrototypeRendererGL20.java

License:Apache License

private void renderBlended() {

    Gdx.gl.glEnable(GL10.GL_BLEND);//from ww  w .  j  a  v a  2s .c om
    final Array<Drawable> transparentDrawables = drawableManager.drawablesBlended;
    transparentDrawables.sort();

    // find N nearest lights per model
    // draw all models from opaque queue

    int lastSrcBlend = -1;
    int lastDstBlend = -1;

    for (int i = 0, size = transparentDrawables.size; i < size; i++) {

        final Drawable drawable = transparentDrawables.get(i);

        final Vector3 center = drawable.sortCenter;
        lightManager.calculateLights(center.x, center.y, center.z);

        final Matrix4 modelMatrix = drawable.transform;
        normalMatrix.set(modelMatrix);

        if (drawable.isAnimated)
            ((AnimatedModel) (drawable.model)).setAnimation(drawable.animation, drawable.animationTime,
                    drawable.isLooping);

        final SubMesh subMeshes[] = drawable.model.getSubMeshes();

        boolean matrixChanged = true;
        for (int j = 0; j < subMeshes.length; j++) {

            final SubMesh subMesh = subMeshes[j];
            final Material material = drawable.materials.get(j);

            // bind new shader if material can't use old one
            final boolean shaderChanged = bindShader(material);

            if (shaderChanged || matrixChanged) {
                currentShader.setUniformMatrix("u_normalMatrix", normalMatrix, false);
                currentShader.setUniformMatrix("u_modelMatrix", modelMatrix, false);
                matrixChanged = false;
            }

            for (int k = 0, len = material.getNumberOfAttributes(); k < len; k++) {
                final MaterialAttribute atrib = material.getAttribute(k);

                // yet another instanceof. TODO is there any better way to do this? maybe stuffing this to material
                if (atrib instanceof BlendingAttribute) {
                    final BlendingAttribute blending = (BlendingAttribute) atrib;
                    if (blending.blendSrcFunc != lastSrcBlend || blending.blendDstFunc != lastDstBlend) {
                        atrib.bind(currentShader);
                        lastSrcBlend = blending.blendSrcFunc;
                        lastDstBlend = blending.blendDstFunc;
                    }
                } else if (atrib instanceof TextureAttribute) {
                    // special case for textures. really important to batch these
                    final TextureAttribute texAtrib = (TextureAttribute) atrib;
                    if (!texAtrib.texturePortionEquals(lastTexture[texAtrib.unit])) {
                        lastTexture[texAtrib.unit] = texAtrib;
                        texAtrib.bind(currentShader);
                    } else {
                        // need to be done, shader textureAtribute name could be changed.
                        currentShader.setUniformi(texAtrib.name, texAtrib.unit);
                    }
                } else if (atrib instanceof GpuSkinningAttribute) {
                    final GpuSkinningAttribute gpuAtrib = (GpuSkinningAttribute) atrib;
                    gpuAtrib.setModelMatrix(modelMatrix);
                    gpuAtrib.bind(currentShader);
                } else {
                    atrib.bind(currentShader);
                }
            }
            // finally render current submesh
            subMesh.getMesh().render(currentShader, subMesh.primitiveType);
        }
    }
    Gdx.gl.glDisable(GL10.GL_BLEND);
}

From source file:com.badlogic.gdx.spriter.demo.SpriterDemoApp.java

@Override
public void create() {
    // Initialize object
    batch = new SpriteBatch();
    camera = new OrthographicCamera();

    FileHandleResolver resolver = new InternalFileHandleResolver();
    assetManager = new AssetManager(resolver);
    assetManager.setLoader(SpriterData.class, new SpriterDataLoader(resolver));

    resolver = new AbsoluteFileHandleResolver();
    externalAssetManager = new AssetManager(resolver);
    externalAssetManager.setLoader(SpriterData.class, new SpriterDataLoader(resolver));

    assetManager.load("uiskin.json", Skin.class);
    assetManager.finishLoading();/*from   ww w  .  j  ava 2  s .  c o m*/

    skin = assetManager.get("uiskin.json");

    // Create widgets
    stage = new Stage(new ScreenViewport(camera), batch);

    Label titleLabel = new Label("gdx-spriter", skin);
    titleLabel.setFontScale(3f);

    Label fpsLabel = new Label("FPS", skin) {
        @Override
        public void act(float delta) {
            this.setText(Gdx.graphics.getFramesPerSecond() + " FPS");
            super.act(delta);
        }
    };

    fileChooser = new SelectBox<SpriterDemoFileHandle>(skin);
    fileChooser.setName("Files");
    fileChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeSpriterFile(fileChooser.getSelected());
            lastUsedSelectBox = fileChooser;
        }
    });

    Button fileFinder = new TextButton("Browse", skin);
    fileFinder.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            FileDialog fileDialog = new FileDialog((java.awt.Frame) null, "Choose Spriter file",
                    FileDialog.LOAD);
            fileDialog.setDirectory(lastFolderBrowsed);
            fileDialog.setResizable(true);
            fileDialog.setVisible(true);
            String file = fileDialog.getFile();
            String directory = fileDialog.getDirectory();
            if (directory != null) {
                lastFolderBrowsed = directory;
            }
            if (file != null) {
                String path = directory + file;
                addFile(Gdx.files.absolute(path), externalAssetManager);
                fileChooser.setItems(files);
                fileChooser.setSelectedIndex(fileChooser.getItems().size - 1);
            }
        }
    });

    entityChooser = new SelectBox<SpriterAnimator>(skin);
    entityChooser.setName("Entities");
    entityChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeAnimator(entityChooser.getSelected());
            lastUsedSelectBox = entityChooser;
        }
    });

    animationChooser = new SelectBox<String>(skin);
    animationChooser.setName("Animations");
    animationChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeAnimation(animationChooser.getSelected());
            lastUsedSelectBox = animationChooser;
        }
    });

    final CheckBox transitionCheckbox = new CheckBox("Transition", skin);
    transitionCheckbox.setChecked(transition);
    transitionCheckbox.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            transition = transitionCheckbox.isChecked();
        }
    });

    charmapChooser = new List<SpriterCharacterMap>(skin);
    ArraySelection<SpriterCharacterMap> selection = charmapChooser.getSelection();
    selection.setMultiple(true);
    selection.setRangeSelect(false);
    selection.setToggle(false);
    selection.setRequired(false);
    charmapChooser.setName("Charmaps");
    charmapChooser.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            changeCharacterMaps(charmapChooser.getSelection().items().orderedItems());
        }
    });

    angleSlider = new SpriterDemoAnimatorSlider(0, 360, 1f, skin, "%.0f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            spriterAnimator.setRotation(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return spriterAnimator.getRotation();
        }
    };

    pivotXSlider = new SpriterDemoAnimatorSlider(-1000f, 1000f, 1f, skin, "%.0f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setPivotX(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getPivotX();
        }
    };

    pivotYSlider = new SpriterDemoAnimatorSlider(-1000f, 1000f, 1f, skin, "%.0f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setPivotY(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getPivotY();
        }
    };

    scaleXSlider = new SpriterDemoAnimatorSlider(-10f, 10f, 0.1f, skin) {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            spriterAnimator.setScaleX(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return spriterAnimator.getScaleX();
        }
    };

    scaleYSlider = new SpriterDemoAnimatorSlider(-10f, 10f, 0.1f, skin) {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            spriterAnimator.setScaleY(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return spriterAnimator.getScaleY();
        }
    };

    alphaSlider = new SpriterDemoAnimatorSlider(0f, 1f, 0.01f, skin, "%.2f") {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setAlpha(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getAlpha();
        }
    };

    speedSlider = new SpriterDemoAnimatorSlider(0f, 10f, 0.1f, skin) {
        @Override
        public void setValue(SpriterAnimator animator, float value) {
            animator.setSpeed(value);
        }

        @Override
        protected float getValue(SpriterAnimator animator) {
            return animator.getSpeed();
        }
    };

    allAnimatorSliders = new SpriterDemoAnimatorSlider[] { scaleXSlider, scaleYSlider, pivotXSlider,
            pivotYSlider, angleSlider, alphaSlider, speedSlider };

    metaLabel = new Label("Meta: ", skin);
    metaLabel.setWrap(true);
    metaLabel.setAlignment(Align.topLeft);

    spriterPlaceholder = new Label("No animator", skin);
    spriterPlaceholder.setAlignment(Align.center);

    spriterAnimator = new SpriterAnimatorActor(animator);
    spriterAnimator.debug();

    playPauseButton = new ImageButton(skin, "play");
    playPauseButton.setChecked(true);
    playPauseButton.addListener(new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            boolean playing = playPauseButton.isChecked();
            spriterAnimator.setDisabled(!playing);
        }
    });

    timeSlider = new Slider(0f, 2000f, 1, false, skin);
    timeSlider.addListener(timeSliderListener = new ChangeListener() {
        @Override
        public void changed(ChangeEvent event, Actor actor) {
            if (animator == null)
                return;
            animator.setTime(timeSlider.getValue());
            animator.update(0f);
        }
    });

    timeLabel = new Label("---", skin);

    // Put everything in place

    Table titleTable = new Table(skin);
    titleTable.add(titleLabel).pad(6f);
    titleTable.add().expandX();
    titleTable.add(fpsLabel).padRight(10f);

    Table selectionTable = new Table(skin);
    selectionTable.defaults().pad(3f);

    Table filesTable = new Table(skin);
    filesTable.row();
    filesTable.add(fileChooser).expand().fillX();
    filesTable.add(fileFinder).padLeft(2f).padRight(1f);

    Table animationsTable = new Table(skin);
    animationsTable.row();
    animationsTable.add(animationChooser).expand().fill();
    animationsTable.add(transitionCheckbox).fillX().padLeft(2f);

    ScrollPane scrollableCharmapChooser = new ScrollPane(charmapChooser);

    Table menuTable = new Table(skin);
    menuTable.defaults().pad(3f).expandX().fillX();
    menuTable.row();
    menuTable.add(titleTable).colspan(2);
    menuTable.row();
    menuTable.add("File");
    menuTable.add(filesTable).pad(4f);
    menuTable.row();
    menuTable.add("Entity");
    menuTable.add(entityChooser).pad(4f);
    menuTable.row();
    menuTable.add("Animation");
    menuTable.add(animationsTable).pad(4f);
    menuTable.row();
    menuTable.add("Maps");
    menuTable.add(scrollableCharmapChooser).pad(4f);
    menuTable.row();
    menuTable.add("Angle");
    menuTable.add(angleSlider);
    menuTable.row();
    menuTable.add("Pivot X");
    menuTable.add(pivotXSlider);
    menuTable.row();
    menuTable.add("Pivot Y");
    menuTable.add(pivotYSlider);
    menuTable.row();
    menuTable.add("Scale X");
    menuTable.add(scaleXSlider);
    menuTable.row();
    menuTable.add("Scale Y");
    menuTable.add(scaleYSlider);
    menuTable.row();
    menuTable.add("Alpha");
    menuTable.add(alphaSlider);
    menuTable.row();
    menuTable.add("Speed");
    menuTable.add(speedSlider);
    menuTable.row();
    menuTable.add().expandY();

    Table contentTable = new Table(skin);
    contentTable.row();
    contentTable.add(metaLabel).left().expandX().maxHeight(1f);
    contentTable.row();
    contentTable.stack(spriterPlaceholder, spriterAnimator).expand();

    Table timelineTable = new Table(skin);
    timelineTable.row();
    timelineTable.add("Timeline").expandX().align(Align.bottom);
    timelineTable.row();
    timelineTable.add(timeSlider).expandX().fillX();
    timelineTable.row();
    timelineTable.add(timeLabel).expandX().align(Align.top);

    Table controlTable = new Table(skin);
    controlTable.add(playPauseButton).space(5f).expandY().fillY();
    controlTable.add(timelineTable).expandX().fillX();

    rootTable = new Table(skin);
    rootTable.setFillParent(true);
    rootTable.row();
    rootTable.add(menuTable).expandY().fill();
    rootTable.add(contentTable).expand().fill();
    rootTable.row();
    rootTable.add(controlTable).colspan(2).expandX().fillX();

    stage.addActor(rootTable);

    // Bring input processing to the party

    InputProcessor globalInput = new InputProcessor() {
        @Override
        public boolean keyDown(int keycode) {
            switch (keycode) {
            case Keys.UP:
            case Keys.Z:
            case Keys.W:
                if (lastUsedSelectBox != null)
                    lastUsedSelectBox.setSelectedIndex(Math.max(lastUsedSelectBox.getSelectedIndex() - 1, 0));
                break;
            case Keys.DOWN:
            case Keys.S:
                if (lastUsedSelectBox != null)
                    lastUsedSelectBox.setSelectedIndex(Math.min(lastUsedSelectBox.getSelectedIndex() + 1,
                            lastUsedSelectBox.getItems().size - 1));
                break;

            default:
                break;
            }
            return true;
        }

        @Override
        public boolean keyUp(int keycode) {
            return false;
        }

        @Override
        public boolean keyTyped(char character) {
            return false;
        }

        @Override
        public boolean touchDown(int screenX, int screenY, int pointer, int button) {
            return false;
        }

        @Override
        public boolean touchUp(int screenX, int screenY, int pointer, int button) {
            return false;
        }

        @Override
        public boolean touchDragged(int screenX, int screenY, int pointer) {
            return false;
        }

        @Override
        public boolean mouseMoved(int screenX, int screenY) {
            return false;
        }

        @Override
        public boolean scrolled(int amount) {
            amount *= 0.05f; // Zoom coefficient
            scaleXSlider.setValue(scaleXSlider.getValue() + amount);
            scaleYSlider.setValue(scaleYSlider.getValue() + amount);
            return false;
        }
    };
    Gdx.input.setInputProcessor(new InputMultiplexer(stage, globalInput));

    // Add default test resources
    Array<String> testResources = new Array<String>(SpriterTestData.scml);
    testResources.addAll(SpriterTestData.scon);
    testResources.sort();
    for (String path : testResources)
        addFile(Gdx.files.internal(path.replaceFirst("/", "")), assetManager);

    // Also go discover some unknown exotic resources! (won't work in jar though)
    Array<FileHandle> spriterFiles = SpriterDemoUtils.findFiles(new String[] { "scml", "scon" });
    for (FileHandle f : spriterFiles)
        addFile(f, assetManager);

    fileChooser.setItems(files);

    lastUsedSelectBox = fileChooser;

    if (playPauseButton.isChecked())
        animator.play(animator.getAnimations().iterator().next());
}

From source file:com.bladecoder.engine.model.World.java

License:Apache License

@Override
public void retrieveAssets() {
    if (inventory.isDisposed())
        inventory.retrieveAssets();/* w  ww .  ja v  a  2  s.co m*/

    getCurrentScene().retrieveAssets();

    // Print loaded assets for scene
    if (EngineLogger.debugMode()) {
        Array<String> assetNames = EngineAssetManager.getInstance().getAssetNames();

        assetNames.sort();

        EngineLogger.debug("Assets loaded for SCENE: " + currentScene.getId());

        for (String n : assetNames) {
            EngineLogger.debug("\t" + n);
        }
    }
}

From source file:com.kotcrab.vis.editor.module.physicseditor.util.trace.TextureConverter.java

License:Apache License

private static Array<CrossingEdgeInfo> GetCrossingEdges(Array<Vector2> polygon, EdgeAlignment edgeAlign,
        int checkLine) throws Exception {
    Array<CrossingEdgeInfo> edges = new Array<CrossingEdgeInfo>();
    Vector2 slope = new Vector2();
    Vector2 edgeVertex1 = new Vector2();
    Vector2 edgeVertex2 = new Vector2();
    Vector2 slopePreview = new Vector2();
    Vector2 edgeVertexPreview = new Vector2();
    Vector2 crossingPoint = new Vector2();
    boolean addCrossingPoint;
    if (polygon.size > 1) {
        edgeVertex2.set(polygon.get(polygon.size - 1));
        switch (edgeAlign) {
        case Vertical:
            for (int i = 0; i < polygon.size; i++) {
                edgeVertex1.set(polygon.get(i));
                if ((edgeVertex1.y >= checkLine && edgeVertex2.y <= checkLine)
                        || (edgeVertex1.y <= checkLine && edgeVertex2.y >= checkLine)) {
                    if (edgeVertex1.y != edgeVertex2.y) {
                        addCrossingPoint = true;
                        slope.set(vectorSub(edgeVertex2, edgeVertex1));
                        if (edgeVertex1.y == checkLine) {
                            edgeVertexPreview.set(polygon.get((i + 1) % polygon.size));
                            slopePreview.set(vectorSub(edgeVertex1, edgeVertexPreview));
                            if (slope.y > 0) {
                                addCrossingPoint = (slopePreview.y <= 0);
                            } else {
                                addCrossingPoint = (slopePreview.y >= 0);
                            }/*from  w  w  w.  java2s  .  c  om*/
                        }
                        if (addCrossingPoint) {
                            crossingPoint = new Vector2(
                                    (checkLine - edgeVertex1.y) / slope.y * slope.x + edgeVertex1.x, checkLine);
                            edges.add(new CrossingEdgeInfo(edgeVertex1, edgeVertex2, crossingPoint, edgeAlign));
                        }
                    }
                }
                edgeVertex2.set(edgeVertex1);
            }
            break;
        case Horizontal:
            throw new Exception("EdgeAlignment.Horizontal isn't implemented yet. Sorry.");
        }
    }
    edges.sort();
    // Collections.sort(edges);
    return edges;
}

From source file:com.turbogerm.germlibrary.util.GameUtils.java

License:Open Source License

public static Array<Integer> getRandomIndexes(int range, int numberOfIndexes, int offset,
        Array<Integer> excludedIndexes) {

    Array<Integer> selectedList = new Array<Integer>(numberOfIndexes);

    if (numberOfIndexes > 0) {
        Array<Integer> availableList = getRange(range);

        if (excludedIndexes != null) {
            for (Integer excludedIndex : excludedIndexes) {
                availableList.removeValue(excludedIndex, false);
            }//  w  w  w.jav  a  2s . c  o m
        }

        for (int i = 0; i < numberOfIndexes; i++) {
            int selectedIndex = MathUtils.random(availableList.size - 1);
            int selected = availableList.get(selectedIndex);
            selectedList.add(selected + offset);
            availableList.removeIndex(selectedIndex);
        }

        selectedList.sort();
    }

    return selectedList;
}

From source file:com.turbogerm.helljump.game.generator.RiseSectionGenerator.java

License:Open Source License

private static RiseSectionData generateRiseSectionJumpBoost(RiseSectionMetadata riseSectionMetadata) {

    String type = riseSectionMetadata.getType();
    String name = riseSectionMetadata.getName();
    int stepRange = MathUtils.random(riseSectionMetadata.getMinStepRange(),
            riseSectionMetadata.getMaxStepRange());
    int minStepDistance = riseSectionMetadata.getMinStepDistance();
    int maxStepDistance = riseSectionMetadata.getMaxStepDistance();
    int difficulty = riseSectionMetadata.getDifficulty();

    Array<PlatformData> platformDataList = new Array<PlatformData>(stepRange);
    Array<Integer> filledSteps = getFilledSteps(stepRange, minStepDistance, maxStepDistance);
    filledSteps.removeIndex(0);//from  w w  w.ja  v a2s  .  c o m
    filledSteps.removeIndex(0);

    int jumpBoostCount = filledSteps.size;
    int numNonJumpBoostSteps = 0;
    for (int step = 0; step < filledSteps.get(0); step += PlatformData.MAX_PLATFORM_DISTANCE_STEPS) {
        filledSteps.add(step);
        numNonJumpBoostSteps++;
    }
    filledSteps.sort();

    float jumpBoostLowWeight = Float
            .valueOf(riseSectionMetadata.getProperty(RiseSectionMetadata.JUMP_BOOST_LOW_WEIGHT_PROPERTY));
    float jumpBoostMediumWeight = Float
            .valueOf(riseSectionMetadata.getProperty(RiseSectionMetadata.JUMP_BOOST_MEDIUM_WEIGHT_PROPERTY));
    float jumpBoostHighWeight = Float
            .valueOf(riseSectionMetadata.getProperty(RiseSectionMetadata.JUMP_BOOST_HIGH_WEIGHT_PROPERTY));

    float[] jumpBoostWeights = new float[3];
    jumpBoostWeights[0] = jumpBoostLowWeight;
    jumpBoostWeights[1] = jumpBoostMediumWeight;
    jumpBoostWeights[2] = jumpBoostHighWeight;

    Array<Array<Integer>> allJumpBoostPlatformIndexes = getPlatformIndexes(jumpBoostCount, 1.0f,
            jumpBoostWeights, numNonJumpBoostSteps);

    boolean isCrumble = Boolean.valueOf(riseSectionMetadata.getProperty(RiseSectionMetadata.CRUMBLE_PROPERTY));

    for (int i = 0; i < filledSteps.size; i++) {
        int step = filledSteps.get(i);

        PlatformMovementData movementData = null;

        int offset = getOffset(movementData);

        Array<PlatformFeatureData> featuresData = getFeaturesDataJumpBoost(i, allJumpBoostPlatformIndexes);

        String platformType = i >= numNonJumpBoostSteps && isCrumble ? PlatformData.CRUMBLE_TYPE
                : PlatformData.NORMAL_TYPE;

        PlatformData padData = new PlatformData(i, platformType, step, offset, movementData, featuresData,
                null);
        platformDataList.add(padData);
    }

    Array<ItemData> itemDataList = getAllItems(platformDataList, stepRange, minStepDistance);

    return new RiseSectionData(type, name, stepRange, difficulty, platformDataList, null, itemDataList);
}

From source file:com.vlaaad.dice.states.PvpPlayState.java

License:Open Source License

@Override
protected void init() {
    Config.mobileApi.keepScreenOn(true);
    session.disconnectFuture()//w  w w. j ava2 s . c o m
            .addListener(new IFutureListener<Tuple3<Boolean, Option<String>, Option<Throwable>>>() {
                @Override
                public void onHappened(Tuple3<Boolean, Option<String>, Option<Throwable>> reason) {
                    callback.onCancel(session, reason, option(world), option(playersToParticipants));
                }
            });
    Array<String> ids = new Array<String>(session.getAll().size);
    for (IParticipant participant : session.getAll().values())
        ids.add(participant.getId());
    ids.sort();
    listener = null;
    server = session.getAll().get(ids.first());
    showPrepareWindow();
    if (server == session.getMe()) {
        Logger.debug("I am a server!");
        listener = new ServerMessageListener(this);
    } else {
        Logger.debug("I am a client!");
        listener = new ClientMessageListener(this);
    }
    session.setMessageListener(listener);
}

From source file:darkyenus.resourcepacker.util.tools.texturepacker.TexturePacker.java

License:Apache License

private void writePackFile(File outputDir, String scaledPackFileName, Array<Page> pages) throws IOException {
    File packFile = new File(outputDir, scaledPackFileName + settings.atlasExtension);
    File packDir = packFile.getParentFile();
    packDir.mkdirs();/*  w  w  w  . ja v a  2 s  .c o m*/

    if (packFile.exists()) {
        // Make sure there aren't duplicate names.
        TextureAtlasData textureAtlasData = new TextureAtlasData(new FileHandle(packFile),
                new FileHandle(packFile), false);
        for (Page page : pages) {
            for (Rect rect : page.outputRects) {
                String rectName = Rect.getAtlasName(rect.name, settings.flattenPaths);
                for (Region region : textureAtlasData.getRegions()) {
                    if (region.name.equals(rectName)) {
                        throw new GdxRuntimeException("A region with the name \"" + rectName
                                + "\" has already been packed: " + rect.name);
                    }
                }
            }
        }
    }

    Writer writer = new OutputStreamWriter(new FileOutputStream(packFile, true), "UTF-8");
    for (Page page : pages) {
        writer.write("\n" + page.imageName + "\n");
        writer.write("size: " + page.imageWidth + "," + page.imageHeight + "\n");
        writer.write("format: " + settings.format + "\n");
        writer.write("filter: " + settings.filterMin + "," + settings.filterMag + "\n");
        writer.write("repeat: " + getRepeatValue() + "\n");

        page.outputRects.sort();
        for (Rect rect : page.outputRects) {
            writeRect(writer, page, rect, rect.name);
            Array<Alias> aliases = new Array(rect.aliases.toArray());
            aliases.sort();
            for (Alias alias : aliases) {
                Rect aliasRect = new Rect();
                aliasRect.set(rect);
                alias.apply(aliasRect);
                writeRect(writer, page, aliasRect, alias.name);
            }
        }
    }
    writer.close();
}

From source file:de.longri.cachebox3.develop.tools.skin_editor.actors.PreviewPane.java

License:Apache License

private void addDefaultPreview() throws ClassNotFoundException {

    ImageButton button = (ImageButton) game.screenMain.barWidgets.group.getChecked();
    String widget = button.getUserObject().toString();
    String widgetStyle = game.resolveWidgetPackageName(widget);
    Class<?> style = Class.forName(widgetStyle);

    ObjectMap<String, ?> styles = game.skinProject.getAll(style);
    if (styles == null) {
        Label label = new Label("No styles defined for this widget type", game.skin, "error");
        add(label).pad(10).row();//from  w  w w  .jav  a 2s.c om

    } else {

        Keys<String> keys = styles.keys();
        Array<String> sortedKeys = new Array<String>();
        for (String key : keys) {
            sortedKeys.add(key);
        }
        sortedKeys.sort();

        for (String key : sortedKeys) {

            // We render one per key
            add(new Label(key, game.skin, "title")).left().pad(10).expandX().row();

            try {
                if (widget.equals("Label")) {

                    Label w = new Label("This is a Label widget", game.skinProject, key);
                    add(w).pad(10).padBottom(20).row();

                } else if (widget.equals("Button")) { // Button

                    Button w = new Button(game.skinProject, key);
                    add(w).width(120).height(32).pad(10).padBottom(20).row();

                } else if (widget.equals("TextButton")) { // TextButton

                    TextButton w = new TextButton("This is a TextButton widget", game.skinProject, key);

                    add(w).pad(10).padBottom(20).row();

                } else if (widget.equals("ImageButton")) { // ImageButton

                    ImageButton w = new ImageButton(game.skinProject, key);
                    add(w).pad(10).padBottom(20).row();

                } else if (widget.equals("CheckBox")) { // CheckBox

                    CheckBox w = new CheckBox("This is a CheckBox widget", game.skinProject, key);
                    w.setChecked(true);
                    add(w).pad(10).padBottom(20).row();

                } else if (widget.equals("TextField")) { // TextField

                    TextField w = new TextField("This is a TextField widget", game.skinProject, key);
                    if (w.getStyle().fontColor == null) {
                        throw new Exception("Textfield style requires a font color!");
                    }

                    w.addListener(stopTouchDown);

                    add(w).pad(10).width(220).padBottom(20).row();

                } else if (widget.equals("List")) { // List

                    List w = new List(game.skinProject, key);
                    Array<String> items = new Array<String>();
                    items.add("This is");
                    items.add("a");
                    items.add("List widget!");
                    w.setItems(items);

                    add(w).pad(10).width(220).height(120).padBottom(20).expandX().fillX().row();

                } else if (widget.equals("SelectBox")) { // SelectBox
                    SelectBox<String> w = new SelectBox<String>(game.skinProject, key);
                    Array<String> items = new Array<String>();
                    items.add("This is");
                    items.add("a");
                    items.add("SelectBox widget!");
                    w.setItems(items);

                    add(w).pad(10).width(220).padBottom(20).expandX().fillX().row();

                } else if (widget.equals("ProgressBar")) { // ProgressBar

                    ProgressBarStyle progressStyle = game.skinProject.get(key, ProgressBarStyle.class);

                    // Check for edge-case: fields knob and knobBefore are optional but at least one should be specified
                    if (progressStyle.knob == null && progressStyle.knobBefore == null) {
                        throw new IllegalArgumentException(
                                "Fields 'knob' and 'knobBefore' in ProgressBarStyle are both optional but at least one should be specified");
                    }

                    ProgressBar w = new ProgressBar(0, 100, 5, false, progressStyle);
                    w.setValue(50);
                    w.addListener(stopTouchDown);

                    add(w).pad(10).width(220).padBottom(20).expandX().fillX().row();

                } else if (widget.equals("Slider")) { // Slider

                    Slider w = new Slider(0, 100, 5, false, game.skinProject, key);
                    add(w).pad(10).width(220).padBottom(20).expandX().fillX().row();
                    w.addListener(stopTouchDown);

                    Slider w2 = new Slider(0, 100, 5, true, game.skinProject, key);
                    add(w2).pad(10).padBottom(20).expandX().fillX().row();
                    w2.addListener(stopTouchDown);

                } else if (widget.equals("ScrollPane")) { // ScrollPane

                    Table t = new Table(game.skin);
                    for (int i = 0; i < 20; i++) {
                        t.add("This is a ScrollPane Widget").padRight(10);
                        t.add("This is a ScrollPane Widget").padRight(10);
                        t.add("This is a ScrollPane Widget").row();
                    }
                    ScrollPane w = new ScrollPane(t, game.skinProject, key);
                    w.addListener(stopTouchDown);
                    w.setFlickScroll(true);
                    w.setScrollbarsOnTop(true);
                    w.setScrollBarPositions(true, true);
                    w.setFadeScrollBars(false);
                    add(w).pad(10).width(420).height(240).padBottom(20).expandX().fillX().row();

                } else if (widget.equals("SplitPane")) { // SplitPane

                    for (int j = 0; j < 2; j++) {
                        Table t = new Table(game.skin);
                        t.setBackground(game.skin.getDrawable("default-rect"));
                        Table t2 = new Table(game.skin);
                        t2.setBackground(game.skin.getDrawable("default-rect"));
                        for (int i = 0; i < 20; i++) {
                            t.add("This is a SplitPane Widget").pad(10).row();
                            t2.add("This is a SplitPane Widget").pad(10).row();
                        }

                        SplitPane w = new SplitPane(t, t2, (j % 2 == 0), game.skinProject, key);
                        w.addListener(stopTouchDown);
                        add(w).pad(10).width(220).height(160).padBottom(20).expandX().fillX();
                    }
                    row();

                } else if (widget.equals("Window")) { // Window

                    Table t = new Table(game.skin);
                    for (int i = 0; i < 5; i++) {
                        t.add("This is a Window Widget").row();
                    }
                    Window w = new Window("This is a Window Widget", game.skinProject, key);
                    w.addListener(stopTouchDown);
                    w.add(t);
                    add(w).pad(10).width(420).height(240).padBottom(20).expandX().fillX().row();

                } else if (widget.equals("Touchpad")) { // Touchpad

                    Touchpad w = new Touchpad(0, game.skinProject, key);
                    w.addListener(stopTouchDown);

                    add(w).pad(10).width(200).height(200).padBottom(20).expandX().fillX().row();

                } else if (widget.equals("Tree")) { // Tree

                    Tree w = new Tree(game.skinProject, key);
                    Tree.Node node = new Tree.Node(new Label("This", game.skin));
                    Tree.Node node1 = new Tree.Node(new Label("is", game.skin));
                    Tree.Node node2 = new Tree.Node(new Label("a", game.skin));
                    Tree.Node node3 = new Tree.Node(new Label("Tree", game.skin));
                    Tree.Node node4 = new Tree.Node(new Label("Widget", game.skin));
                    node3.add(node4);
                    node2.add(node3);
                    node1.add(node2);
                    node.add(node1);
                    w.add(node);

                    w.expandAll();
                    add(w).pad(10).width(200).height(200).padBottom(20).expandX().fillX().row();
                } else {
                    add(new Label("Unknown widget type!", game.skin, "error")).pad(10).padBottom(20).row();
                }
            } catch (Exception e) {
                add(new Label("Please fill all required fields", game.skin, "error")).pad(10).padBottom(20)
                        .row();
            }
        }

    }
}