Répertorié les sprites par catégories

This commit is contained in:
galaxyoyo 2015-01-08 23:12:38 +01:00
parent 11a8931f6b
commit 136bf70409
7 changed files with 73 additions and 18 deletions

View File

@ -0,0 +1,40 @@
package galaxyoyo.unknown.api.editor.sprites;
import java.util.List;
public class Category
{
private List<Sprite> sprites;
private String name;
private int index;
private Category()
{
}
public String getName()
{
return name;
}
public List<Sprite> getSprites()
{
return sprites;
}
public int getIndex()
{
return index;
}
public static Category create(String name, int index, List<Sprite> sprites)
{
Category c = new Category();
c.name = name;
c.index = index;
c.sprites = sprites;
return c;
}
}

View File

@ -1,20 +1,31 @@
package galaxyoyo.unknown.api.editor.sprites;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
public class Sprite
{
public static final Sprite BLANK = new Sprite(new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB));
public static final Sprite BLANK = new Sprite(new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB), Category.create("blank", 0, new ArrayList<Sprite>()));
private Category cat;
private final BufferedImage img;
public Sprite(BufferedImage img)
public Sprite(BufferedImage img, Category cat)
{
this.img = img;
this.cat = cat;
if (!this.cat.getSprites().contains(this))
this.cat.getSprites().add(this);
}
public BufferedImage getImage()
{
return this.img;
}
public Category getCategory()
{
return cat;
}
}

View File

@ -19,7 +19,7 @@ import com.google.gson.Gson;
public class SpriteRegister
{
private static Map<String, List<List<Double>>> nameToCoords;
private static Map<String, List<Sprite>> sprites = new HashMap<String, List<Sprite>>();
private static Map<String, Category> sprites = new HashMap<String, Category>();
@SuppressWarnings("unchecked")
public static void refreshAllSprites()
@ -41,18 +41,17 @@ public class SpriteRegister
{
InputStream is = SpriteRegister.class.getResourceAsStream("/assets/unknown/textures/sprites/" + key + ".png");
BufferedImage img = ImageIO.read(is);
List<Sprite> lSprites = new ArrayList<Sprite>();
Category cat = Category.create(key, new ArrayList<String>(nameToCoords.keySet()).indexOf(key), new ArrayList<Sprite>());
for (List<Double> list : nameToCoords.get(key))
{
int x = list.get(0).intValue();
int y = list.get(1).intValue();
BufferedImage child = img.getSubimage(x, y, 16, 16);
Sprite sprite = new Sprite(child);
lSprites.add(sprite);
new Sprite(child, cat);
}
sprites.put(key, lSprites);
sprites.put(key, cat);
}
catch (Throwable t)
{
@ -67,23 +66,28 @@ public class SpriteRegister
}
}
public static List<Sprite> getCategory(String name)
public static Category getCategory(String name)
{
return sprites.get(name);
}
public static List<Sprite> getCategory(int index)
public static Category getCategory(int index)
{
return getCategory(new ArrayList<String>(sprites.keySet()).get(index));
}
public static List<Sprite> getAll()
public static List<Category> getAllCategories()
{
return (List<Category>) sprites.values();
}
public static List<Sprite> getAllSprites()
{
List<Sprite> list = new ArrayList<Sprite>();
for (List<Sprite> l : sprites.values())
for (Category c : sprites.values())
{
list.addAll(l);
list.addAll(c.getSprites());
}
return list;

View File

@ -1,6 +1,6 @@
package galaxyoyo.unknown.editor;
import galaxyoyo.unknown.api.editor.sprites.Sprite;
import galaxyoyo.unknown.api.editor.sprites.Category;
import galaxyoyo.unknown.api.editor.sprites.SpriteRegister;
import java.awt.Color;
@ -84,7 +84,7 @@ public class EditorFrame extends JFrame implements ComponentListener, MouseListe
couche2.setBackground(Color.white);
couche3.setBackground(Color.white);
for (Sprite spr : SpriteRegister.getAll())
for (Category cat : SpriteRegister.getAllCategories())
{
}

View File

@ -25,7 +25,7 @@ public class Map
for (RawCase rc : raw.getCases())
{
cases.add(Case.create(rc.getPosX(), rc.getPosY(), SpriteRegister.getCategory(rc.getCoucheOne().getPrimaryIndex()).get(rc.getCoucheOne().getSecondaryIndex()), SpriteRegister.getCategory(rc.getCoucheTwo().getPrimaryIndex()).get(rc.getCoucheTwo().getSecondaryIndex()), SpriteRegister.getCategory(rc.getCoucheThree().getPrimaryIndex()).get(rc.getCoucheThree().getSecondaryIndex())));
cases.add(Case.create(rc.getPosX(), rc.getPosY(), SpriteRegister.getCategory(rc.getCoucheOne().getPrimaryIndex()).getSprites().get(rc.getCoucheOne().getSecondaryIndex()), SpriteRegister.getCategory(rc.getCoucheTwo().getPrimaryIndex()).getSprites().get(rc.getCoucheTwo().getSecondaryIndex()), SpriteRegister.getCategory(rc.getCoucheThree().getPrimaryIndex()).getSprites().get(rc.getCoucheThree().getSecondaryIndex())));
}
frame = new EditorFrame(this);

View File

@ -61,7 +61,7 @@ public class MainFrame extends JFrame
this.setSize(800, 700);
this.setLocationRelativeTo(null);
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menuBar.add(fichier);