Example usage for com.badlogic.gdx.files FileHandle sibling

List of usage examples for com.badlogic.gdx.files FileHandle sibling

Introduction

In this page you can find the example usage for com.badlogic.gdx.files FileHandle sibling.

Prototype

public FileHandle sibling(String name) 

Source Link

Document

Returns a handle to the sibling with the specified name.

Usage

From source file:Generator.java

License:Open Source License

private static void renamePrefixes(String path, String prefix, String newPrefix) {
    Files files = new LwjglFiles();
    for (FileHandle fileHandle : files.local(path).list()) {
        if (fileHandle.name().startsWith(prefix)) {
            String newName = newPrefix + fileHandle.name().substring(prefix.length());
            println(fileHandle.name() + " -> " + newName);
            fileHandle.sibling(newName).write(fileHandle.read(), false);
            fileHandle.delete();/*from  w w w  .j  av  a  2 s  .  c o m*/
        }
    }
}

From source file:com.esotericsoftware.spine.SkeletonViewer.java

License:Open Source License

void loadSkeleton(FileHandle skeletonFile, boolean reload) {
    if (skeletonFile == null)
        return;//www .  ja  va 2  s .  c  o m

    // A regular texture atlas would normally usually be used. This returns a white image for images not found in the atlas.
    Pixmap pixmap = new Pixmap(32, 32, Format.RGBA8888);
    pixmap.setColor(new Color(1, 1, 1, 0.33f));
    pixmap.fill();
    final AtlasRegion fake = new AtlasRegion(new Texture(pixmap), 0, 0, 32, 32);
    pixmap.dispose();

    String atlasFileName = skeletonFile.nameWithoutExtension();
    if (atlasFileName.endsWith(".json"))
        atlasFileName = new FileHandle(atlasFileName).nameWithoutExtension();
    FileHandle atlasFile = skeletonFile.sibling(atlasFileName + ".atlas");
    if (!atlasFile.exists())
        atlasFile = skeletonFile.sibling(atlasFileName + ".atlas.txt");
    TextureAtlasData data = !atlasFile.exists() ? null
            : new TextureAtlasData(atlasFile, atlasFile.parent(), false);
    TextureAtlas atlas = new TextureAtlas(data) {
        public AtlasRegion findRegion(String name) {
            AtlasRegion region = super.findRegion(name);
            return region != null ? region : fake;
        }
    };

    try {
        String extension = skeletonFile.extension();
        if (extension.equalsIgnoreCase("json") || extension.equalsIgnoreCase("txt")) {
            SkeletonJson json = new SkeletonJson(atlas);
            json.setScale(ui.scaleSlider.getValue());
            skeletonData = json.readSkeletonData(skeletonFile);
        } else {
            SkeletonBinary binary = new SkeletonBinary(atlas);
            binary.setScale(ui.scaleSlider.getValue());
            skeletonData = binary.readSkeletonData(skeletonFile);
        }
    } catch (Exception ex) {
        ex.printStackTrace();
        ui.toast("Error loading skeleton: " + skeletonFile.name());
        lastModifiedCheck = 5;
        return;
    }

    skeleton = new Skeleton(skeletonData);
    skeleton.setToSetupPose();
    skeleton = new Skeleton(skeleton);
    skeleton.updateWorldTransform();

    state = new AnimationState(new AnimationStateData(skeletonData));

    this.skeletonFile = skeletonFile;
    Preferences prefs = Gdx.app.getPreferences("spine-skeletontest");
    prefs.putString("lastFile", skeletonFile.path());
    prefs.flush();
    lastModified = skeletonFile.lastModified();
    lastModifiedCheck = checkModifiedInterval;

    // Populate UI.

    ui.skeletonLabel.setText(skeletonFile.name());
    {
        Array<String> items = new Array();
        for (Skin skin : skeletonData.getSkins())
            items.add(skin.getName());
        ui.skinList.setItems(items);
    }
    {
        Array<String> items = new Array();
        for (Animation animation : skeletonData.getAnimations())
            items.add(animation.getName());
        ui.animationList.setItems(items);
    }

    // Configure skeleton from UI.

    skeleton.setSkin(ui.skinList.getSelected());
    state.setAnimation(0, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());

    if (reload)
        ui.toast("Reloaded.");
}

From source file:com.kotcrab.vis.editor.ui.scene.entityproperties.components.handler.ShaderATSelectFileHandler.java

License:Apache License

@Override
public void applyChanges(Entity entity, FileHandle file) {
    Shader shader = entity.getComponent(Shader.class);

    String vert = null;//from w ww. j a  v a 2  s. c o m
    String frag = null;

    if (file.extension().equals("vert")) {
        vert = fileAccess.relativizeToAssetsFolder(file);
        frag = fileAccess.relativizeToAssetsFolder(file.sibling(file.nameWithoutExtension() + ".frag"));
    }

    if (file.extension().equals("frag")) {
        frag = fileAccess.relativizeToAssetsFolder(file);
        vert = fileAccess.relativizeToAssetsFolder(file.sibling(file.nameWithoutExtension() + ".vert"));
    }

    shader.asset = new ShaderAsset(vert, frag);
    shader.shader = shaderCache.get(shader.asset);
}

From source file:com.kotcrab.vis.editor.ui.scene.SceneTab.java

License:Apache License

@Override
public boolean save() {
    super.save();
    //TODO: this deserves async task when scene has many entities

    scene.setSchemes(sceneMC.getEntityEngine().getSystem(EntityProxyCache.class).getEntitySchemes());
    try {/*from  ww  w.ja v a2 s  .  c  o m*/
        FileHandle sceneFile = sceneIOModule.getFileHandleForScene(scene);
        FileHandle backupTarget = sceneIOModule.getSceneBackupFolder().child(scene.path);

        if (lastSaveFailed == false) {
            sceneFile.copyTo(backupTarget.sibling(sceneFile.name() + ".bak"));
        }

        if (savedAtLeastOnce == false) {
            sceneFile.copyTo(backupTarget.sibling(sceneFile.name() + ".firstSaveBak"));
        }

        if (sceneIOModule.save(scene)) {
            setDirty(false);
            sceneMC.save();
            savedAtLeastOnce = true;
            lastSaveFailed = false;
            return true;
        } else {
            lastSaveFailed = true;
            Dialogs.showErrorDialog(stage, "Unknown error encountered while saving resource");
        }

    } catch (Exception e) {
        lastSaveFailed = true;
        Log.exception(e);
        Dialogs.showErrorDialog(stage, "Unknown error encountered while saving resource", e);
    }

    return false;
}

From source file:com.kotcrab.vis.editor.util.FileUtils.java

License:Apache License

/** Returns sibling file with provided extension eg. sibling(Gdx.files.internal("game.atlas"), "png") would return Gdx.files.internal("game.png") */
public static FileHandle sibling(FileHandle file, String siblingExtension) {
    return file.sibling(file.nameWithoutExtension() + "." + siblingExtension);
}

From source file:com.kotcrab.vis.runtime.scene.ShaderLoader.java

License:Apache License

@Override
public ShaderProgram loadSync(AssetManager manager, String fileName, FileHandle file,
        ShaderProgramParameter parameter) {
    FileHandle vert = file.sibling(file.name() + ".vert");
    FileHandle frag = file.sibling(file.name() + ".frag");

    ShaderProgram shader = new ShaderProgram(vert, frag);
    if (!shader.isCompiled())
        Gdx.app.error("ShaderLoader", "compilation failed:\n" + shader.getLog());

    return shader;
}

From source file:com.kotcrab.vis.runtime.util.ShaderLoader.java

License:Apache License

@Override
public ShaderProgram loadSync(AssetManager manager, String fileName, FileHandle file,
        ShaderProgramParameter parameter) {
    FileHandle vert = file.sibling(file.name() + ".vert");
    FileHandle frag = file.sibling(file.name() + ".frag");

    ShaderProgram shader = new ShaderProgram(vert, frag);
    if (!shader.isCompiled())
        Gdx.app.error("ShaderLoader", "Shader compilation failed:\n" + shader.getLog());

    return shader;
}

From source file:com.kotcrab.vis.ui.widget.file.FileChooser.java

License:Apache License

private Array<FileHandle> getFileListFromSelected() {
    Array<FileHandle> list = new Array<FileHandle>();

    if (mode == Mode.OPEN) {
        for (FileItem item : selectedItems)
            list.add(item.getFile());/*from  ww w. j a v  a2  s  .  com*/

        return list;
    } else if (selectedItems.size > 0) {
        for (FileItem item : selectedItems)
            list.add(item.getFile());

        showOverwriteQuestion(list);
        return null;
    } else {
        String fileName = selectedFileTextField.getText();
        FileHandle file = currentDirectory.child(fileName);

        if (FileUtils.isValidFileName(fileName) == false) {
            showDialog(POPUP_FILENAME_INVALID.get());
            return null;
        }

        if (file.exists()) {
            list.add(file);
            showOverwriteQuestion(list);

            return null;
        } else {
            //if user typed no extension or extension is wrong and there is active file type rule
            //then the first extension rule will be appended/replaced automatically to entered file name
            if (activeFileTypeRule != null) {
                Array<String> ruleExts = activeFileTypeRule.getExtensions();
                if (ruleExts.size > 0 && ruleExts.contains(file.extension(), false) == false) {
                    file = file.sibling(file.nameWithoutExtension() + "." + ruleExts.first());
                }
            }

            list.add(file);
            if (file.exists()) {
                showOverwriteQuestion(list);
                return null;
            } else {
                return list;
            }
        }
    }

}

From source file:com.ray3k.skincomposer.data.AtlasData.java

License:Open Source License

public void readAtlas(FileHandle fileHandle) throws Exception {
    if (fileHandle.exists()) {
        FileHandle saveFile = main.getProjectData().getSaveFile();
        FileHandle targetDirectory;/*ww w .  ja v  a 2 s .c  o m*/
        if (saveFile != null) {
            targetDirectory = saveFile.sibling(saveFile.nameWithoutExtension() + "_data/");
        } else {
            targetDirectory = Gdx.files.local("temp/" + main.getProjectData().getId() + "_data/");
        }

        targetDirectory.mkdirs();

        TextureAtlas atlas = new TextureAtlas(fileHandle);
        Array<AtlasRegion> regions = atlas.getRegions();

        for (AtlasRegion region : regions) {
            Texture texture = region.getTexture();
            if (!texture.getTextureData().isPrepared()) {
                texture.getTextureData().prepare();
            }
            Pixmap.setBlending(Pixmap.Blending.None);
            Pixmap pixmap = texture.getTextureData().consumePixmap();
            Pixmap savePixmap;
            String name;

            if (region.splits == null && region.pads == null) {
                name = region.name + ".png";
                savePixmap = new Pixmap(region.getRegionWidth(), region.getRegionHeight(),
                        Pixmap.Format.RGBA8888);
                for (int x = 0; x < region.getRegionWidth(); x++) {
                    for (int y = 0; y < region.getRegionHeight(); y++) {
                        int colorInt = pixmap.getPixel(region.getRegionX() + x, region.getRegionY() + y);
                        savePixmap.drawPixel(x, y, colorInt);
                    }
                }
            } else {
                name = region.name + ".9.png";
                savePixmap = new Pixmap(region.getRegionWidth() + 2, region.getRegionHeight() + 2,
                        pixmap.getFormat());
                int x;
                int y;

                //draw 9 patch lines
                savePixmap.setColor(Color.BLACK);

                if (region.splits != null) {
                    x = 0;
                    for (y = region.splits[2] + 1; y < savePixmap.getHeight() - region.splits[3] - 1; y++) {
                        savePixmap.drawPixel(x, y);
                    }

                    y = 0;
                    for (x = region.splits[0] + 1; x < savePixmap.getWidth() - region.splits[1] - 1; x++) {
                        savePixmap.drawPixel(x, y);
                    }
                }

                if (region.pads != null) {
                    x = savePixmap.getWidth() - 1;
                    for (y = region.pads[2] + 1; y < savePixmap.getHeight() - region.pads[3] - 1; y++) {
                        savePixmap.drawPixel(x, y);
                    }

                    y = savePixmap.getHeight() - 1;
                    for (x = region.pads[0] + 1; x < savePixmap.getWidth() - region.pads[1] - 1; x++) {
                        savePixmap.drawPixel(x, y);
                    }
                }

                for (x = 0; x < region.getRegionWidth(); x++) {
                    for (y = 0; y < region.getRegionHeight(); y++) {
                        int colorInt = pixmap.getPixel(region.getRegionX() + x, region.getRegionY() + y);
                        savePixmap.drawPixel(x + 1, y + 1, colorInt);
                    }
                }
            }
            FileHandle outputFile = targetDirectory.child(name);
            PixmapIO.writePNG(outputFile, savePixmap);
            DrawableData drawable = new DrawableData(outputFile);

            //delete drawables with the same name
            for (DrawableData originalData : new Array<>(main.getProjectData().getAtlasData().getDrawables())) {
                if (originalData.name.equals(drawable.name)) {
                    main.getProjectData().getAtlasData().getDrawables().removeValue(originalData, true);
                }
            }

            drawables.add(drawable);
        }

    } else {
        throw new FileNotFoundException();
    }
}

From source file:com.ray3k.skincomposer.data.AtlasData.java

License:Open Source License

public void writeAtlas() throws Exception {
    FileHandle targetFile = Gdx.files.local("temp/" + main.getProjectData().getId() + ".atlas");
    targetFile.parent().mkdirs();/*  w w w .j  a  va2s.  co  m*/
    FileHandle[] oldFiles = targetFile.parent().list(new FilenameFilter() {
        @Override
        public boolean accept(File file, String string) {
            return string.matches(targetFile.nameWithoutExtension() + "\\d*\\.(?i)png");
        }
    });
    for (FileHandle fileHandle : oldFiles) {
        fileHandle.delete();
    }
    targetFile.sibling(targetFile.nameWithoutExtension() + ".atlas").delete();

    Array<FileHandle> files = new Array<>();
    for (DrawableData drawable : drawables) {
        if (!files.contains(drawable.file, false)) {
            files.add(drawable.file);
        }
    }

    main.getDesktopWorker().texturePack(files, main.getProjectData().getSaveFile(), targetFile,
            main.getProjectData().getMaxTextureWidth(), main.getProjectData().getMaxTextureHeight(),
            main.getProjectData().getStripWhitespace());
}