From c870be2d1f40097b330155d3ac289e391b034032 Mon Sep 17 00:00:00 2001 From: Zukero Date: Wed, 12 Aug 2015 15:14:30 +0200 Subject: [PATCH] Fixed missing attributes in TMX file loading and writing (sizes in tilesets). Added a fancy logo in the workspace selector... could look better though. --- hacked-libtiled/tiled/core/TileSet.java | 5 ++++- hacked-libtiled/tiled/io/TMXMapReader.java | 6 +++++- hacked-libtiled/tiled/io/TMXMapWriter.java | 6 +++++- .../gpl/rpg/atcontentstudio/ui/WorkspaceSelector.java | 9 +++++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/hacked-libtiled/tiled/core/TileSet.java b/hacked-libtiled/tiled/core/TileSet.java index 0690220..bd780ad 100644 --- a/hacked-libtiled/tiled/core/TileSet.java +++ b/hacked-libtiled/tiled/core/TileSet.java @@ -74,6 +74,7 @@ public class TileSet implements Iterable private Color transparentColor; private Image tileSetImage; public Spritesheet sheet = null; + public Rectangle sheetDimensions; /** * Default constructor @@ -120,8 +121,10 @@ public class TileSet implements Iterable importTileBitmap(buffered, cutter); } - public void loadFromProject(String name, TMXMap tmxMap) { + public void loadFromProject(String name, TMXMap tmxMap, int tileWidth, int tileHeight) { sheet = tmxMap.getProject().getSpritesheet(name); + tileDimensions.width = tileWidth; + tileDimensions.height = tileHeight; int i = 0; Image tileImage = sheet.getImage(i); while (tileImage != null) { diff --git a/hacked-libtiled/tiled/io/TMXMapReader.java b/hacked-libtiled/tiled/io/TMXMapReader.java index 203c15d..bd2334a 100644 --- a/hacked-libtiled/tiled/io/TMXMapReader.java +++ b/hacked-libtiled/tiled/io/TMXMapReader.java @@ -30,6 +30,7 @@ package tiled.io; import java.awt.Color; import java.awt.Image; +import java.awt.Rectangle; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileNotFoundException; @@ -382,7 +383,10 @@ public class TMXMapReader // case. if (tmxMap.getProject().getSpritesheet(name) != null) { - set.loadFromProject(name, tmxMap); + set.loadFromProject(name, tmxMap, tileWidth, tileHeight); + set.sheetDimensions = new Rectangle(); + set.sheetDimensions.width = getAttribute(child, "width", 0); + set.sheetDimensions.height = getAttribute(child, "height", 0); } else { diff --git a/hacked-libtiled/tiled/io/TMXMapWriter.java b/hacked-libtiled/tiled/io/TMXMapWriter.java index 31cc20d..062ca06 100644 --- a/hacked-libtiled/tiled/io/TMXMapWriter.java +++ b/hacked-libtiled/tiled/io/TMXMapWriter.java @@ -257,7 +257,11 @@ public class TMXMapWriter if (tileBitmapFile != null) { w.startElement("image"); w.writeAttribute("source", getRelativePath(wp, tileBitmapFile)); - + if (set.sheetDimensions != null) { + w.writeAttribute("width", set.sheetDimensions.width); + w.writeAttribute("height", set.sheetDimensions.height); + } + Color trans = set.getTransparentColor(); if (trans != null) { w.writeAttribute("trans", Integer.toHexString( diff --git a/src/com/gpl/rpg/atcontentstudio/ui/WorkspaceSelector.java b/src/com/gpl/rpg/atcontentstudio/ui/WorkspaceSelector.java index 7302638..70d2b90 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/WorkspaceSelector.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/WorkspaceSelector.java @@ -6,9 +6,12 @@ import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.List; +import javax.imageio.ImageIO; +import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFileChooser; @@ -108,9 +111,15 @@ public class WorkspaceSelector extends JFrame { //Layout, labels and dialog behavior. setTitle("Select your workspace"); + JLabel logoLabel = new JLabel(); + try { + logoLabel = new JLabel(new ImageIcon(ImageIO.read(WorkspaceSelector.class.getResource("/com/gpl/rpg/atcontentstudio/img/atcs_logo_banner.png"))), JLabel.CENTER); + } catch (IOException e1) {} + JPanel dialogPane = new JPanel(); dialogPane.setLayout(new BorderLayout()); + dialogPane.add(logoLabel, BorderLayout.NORTH); dialogPane.add(new JLabel("Workspace : "), BorderLayout.WEST); dialogPane.add(combo, BorderLayout.CENTER); dialogPane.add(browse, BorderLayout.EAST);