List of usage examples for com.badlogic.gdx.files FileHandle sibling
public FileHandle sibling(String name)
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()); }