Ajouté entièrement l'enregistrement des sprites
This commit is contained in:
parent
5847486e2f
commit
968536742b
|
@ -1,5 +1,7 @@
|
||||||
package galaxyoyo.unknown.api.editor;
|
package galaxyoyo.unknown.api.editor;
|
||||||
|
|
||||||
|
import galaxyoyo.unknown.editor.Editor;
|
||||||
|
|
||||||
import java.io.BufferedInputStream;
|
import java.io.BufferedInputStream;
|
||||||
import java.io.BufferedOutputStream;
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -78,7 +80,7 @@ public class EditorAPI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void open()
|
public static Editor open()
|
||||||
{
|
{
|
||||||
JFileChooser jfc = createJFC();
|
JFileChooser jfc = createJFC();
|
||||||
File file = null;
|
File file = null;
|
||||||
|
@ -90,17 +92,16 @@ public class EditorAPI
|
||||||
System.out.println(file);
|
System.out.println(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
open(file);
|
return open(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void open(File f)
|
public static Editor open(File f)
|
||||||
{
|
{
|
||||||
System.out.println(f);
|
byte[] bytes = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
|
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(f));
|
||||||
byte[] bytes = new byte[(int) f.length()];
|
bytes = new byte[(int) f.length()];
|
||||||
System.out.println(bis);
|
|
||||||
while (bis.read(bytes) != -1);
|
while (bis.read(bytes) != -1);
|
||||||
for (byte b : bytes)
|
for (byte b : bytes)
|
||||||
{
|
{
|
||||||
|
@ -112,9 +113,12 @@ public class EditorAPI
|
||||||
{
|
{
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return open(bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void open(byte[] bytes)
|
public static Editor open(byte[] bytes)
|
||||||
{
|
{
|
||||||
|
return new Editor(bytes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package galaxyoyo.unknown.api.editor.sprites;
|
||||||
|
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
|
||||||
|
public class Sprite
|
||||||
|
{
|
||||||
|
private final BufferedImage img;
|
||||||
|
|
||||||
|
public Sprite(BufferedImage img)
|
||||||
|
{
|
||||||
|
this.img = img;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BufferedImage getImage()
|
||||||
|
{
|
||||||
|
return this.img;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,77 @@
|
||||||
|
package galaxyoyo.unknown.api.editor.sprites;
|
||||||
|
|
||||||
|
import java.awt.image.BufferedImage;
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import javax.imageio.ImageIO;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
|
||||||
|
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>>();
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public static void refreshAllSprites()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
BufferedReader br = new BufferedReader(new InputStreamReader(SpriteRegister.class.getResourceAsStream("/assets/unknown/textures/sprites/sprites.json")));
|
||||||
|
nameToCoords = new Gson().fromJson(br, Map.class);
|
||||||
|
System.out.println(nameToCoords);
|
||||||
|
br.close();
|
||||||
|
|
||||||
|
for (String key : nameToCoords.keySet())
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
InputStream is = SpriteRegister.class.getResourceAsStream("/assets/unknown/textures/sprites/" + key + ".png");
|
||||||
|
BufferedImage img = ImageIO.read(is);
|
||||||
|
List<Sprite> lSprites = new ArrayList<Sprite>();
|
||||||
|
|
||||||
|
for (List<Double> list : nameToCoords.get(key))
|
||||||
|
{
|
||||||
|
int x = list.get(0).intValue();
|
||||||
|
int y = list.get(1).intValue();
|
||||||
|
int width = list.get(2).intValue() * 16;
|
||||||
|
int height = list.get(3).intValue() * 16;
|
||||||
|
BufferedImage child = img.getSubimage(x, y, width, height);
|
||||||
|
Sprite sprite = new Sprite(child);
|
||||||
|
lSprites.add(sprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
sprites.put(key, lSprites);
|
||||||
|
}
|
||||||
|
catch (Throwable t)
|
||||||
|
{
|
||||||
|
LogManager.getLogger("SpriteRegister").fatal("Erreur lors de la lecture du sprite '" + key + "'", t);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Sprite> getCategory(String name)
|
||||||
|
{
|
||||||
|
return sprites.get(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Sprite> getCategory(int index)
|
||||||
|
{
|
||||||
|
return getCategory(new ArrayList<String>(sprites.keySet()).get(index));
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,6 +4,7 @@
|
||||||
package galaxyoyo.unknown.client.main;
|
package galaxyoyo.unknown.client.main;
|
||||||
|
|
||||||
import galaxyoyo.unknown.api.editor.EditorAPI;
|
import galaxyoyo.unknown.api.editor.EditorAPI;
|
||||||
|
import galaxyoyo.unknown.api.editor.sprites.SpriteRegister;
|
||||||
import galaxyoyo.unknown.frame.MainFrame;
|
import galaxyoyo.unknown.frame.MainFrame;
|
||||||
|
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
|
@ -103,6 +104,8 @@ public class Main
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SpriteRegister.refreshAllSprites();
|
||||||
|
|
||||||
if (set.has(edit))
|
if (set.has(edit))
|
||||||
{
|
{
|
||||||
launchEditMode();
|
launchEditMode();
|
||||||
|
|
|
@ -1,14 +1,22 @@
|
||||||
package galaxyoyo.unknown.editor;
|
package galaxyoyo.unknown.editor;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import galaxyoyo.unknown.api.editor.sprites.Sprite;
|
||||||
|
|
||||||
public class Editor
|
public class Editor
|
||||||
{
|
{
|
||||||
private final EditorFrame frame;
|
private final EditorFrame frame;
|
||||||
private byte[] bytes;
|
private byte[] bytes;
|
||||||
|
private List<List<Sprite>> sprites = new ArrayList<List<Sprite>>();
|
||||||
|
|
||||||
public Editor(byte[] bytes)
|
public Editor(byte[] bytes)
|
||||||
{
|
{
|
||||||
frame = new EditorFrame();
|
frame = new EditorFrame(this);
|
||||||
this.bytes = bytes;
|
this.bytes = bytes;
|
||||||
|
|
||||||
|
getFrame().setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public EditorFrame getFrame()
|
public EditorFrame getFrame()
|
||||||
|
@ -25,4 +33,9 @@ public class Editor
|
||||||
{
|
{
|
||||||
this.bytes = bytes;
|
this.bytes = bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Sprite getSprite(int x, int y)
|
||||||
|
{
|
||||||
|
return sprites.get(x).get(y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,12 @@ import javax.swing.JFrame;
|
||||||
public class EditorFrame extends JFrame
|
public class EditorFrame extends JFrame
|
||||||
{
|
{
|
||||||
private static final long serialVersionUID = -2705122356101556462L;
|
private static final long serialVersionUID = -2705122356101556462L;
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private final Editor editor;
|
||||||
|
|
||||||
public EditorFrame()
|
public EditorFrame(Editor editor)
|
||||||
{
|
{
|
||||||
|
this.editor = editor;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"gazon": [
|
||||||
|
[0,15,1,5],
|
||||||
|
[0,144,1,3],
|
||||||
|
[16,144,2,2],
|
||||||
|
[32,208,6,2],
|
||||||
|
[128,144,1,2],
|
||||||
|
[160,156,3,2],
|
||||||
|
[160,32,1,3]
|
||||||
|
]
|
||||||
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
Loading…
Reference in New Issue