List of usage examples for com.badlogic.gdx.utils Array sort
public void sort()
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(); } } } }