Skip to content

Commit 8de1a9e

Browse files
v0.23-beta
1 parent ce67d20 commit 8de1a9e

File tree

13 files changed

+67
-47
lines changed

13 files changed

+67
-47
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
group 'pekaeds'
7-
version '0.22-beta'
7+
version '0.23-beta'
88

99
repositories {
1010
mavenCentral()

src/main/java/pekaeds/PekaEDS.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
import pekaeds.ui.misc.AppEnum;
1515
import pekaeds.ui.misc.AppSelectionDialog;
1616
import pekaeds.ui.misc.InitialSetupDialog;
17-
import pekaeds.ui.misc.LookAndFeelHelper;
1817
import pekaep.PekaEPGUI;
1918
import pekase3.PekaSE3GUI;
2019
import pk2.filesystem.FHSHelper;
2120
import pk2.filesystem.PK2FileSystem;
2221
import pk2.settings.Settings;
22+
import pk2.util.LookAndFeelHelper;
2323

2424
public class PekaEDS {
2525
private static AppEnum selectedApp = AppEnum.NOT_SELECTED;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
package pekaeds.data;
22

33
public class PekaEDSVersion {
4-
public static final String VERSION_STRING = "0.22 beta";
4+
public static final String VERSION_STRING = "0.23 beta";
55
}

src/main/java/pekaeds/ui/minimappanel/MiniMapPanel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
import pekaeds.ui.listeners.PK2SectorConsumer;
77
import pekaeds.ui.listeners.TileChangeListener;
88
import pekaeds.ui.mappanel.MapPanel;
9-
import pekaeds.ui.misc.LookAndFeelHelper;
109
import pk2.level.PK2LevelSector;
10+
import pk2.util.LookAndFeelHelper;
1111

1212
import java.awt.*;
1313
import java.awt.event.MouseEvent;

src/main/java/pekaeds/ui/misc/InitialSetupDialog.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import pekaeds.data.PekaEDSVersion;
55
import pk2.filesystem.FHSHelper;
66
import pk2.settings.Settings;
7+
import pk2.util.LookAndFeelHelper;
78

89
import javax.imageio.ImageIO;
910
import javax.swing.*;

src/main/java/pekaeds/ui/settings/PanelLookAndFeel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
import net.miginfocom.swing.MigLayout;
88
import pekaeds.ui.main.IPekaEdsApp;
9-
import pekaeds.ui.misc.LookAndFeelHelper;
109
import pk2.settings.Settings;
10+
import pk2.util.LookAndFeelHelper;
1111

1212
public class PanelLookAndFeel extends JPanel implements ISettingsPanel {
1313

src/main/java/pekase3/PekaSE3GUI.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,14 @@ public void pathSet() {
118118

119119

120120
private void loadSprite(File file) {
121+
122+
if (this.editPane!=null && this.editPane.unsavedChangesPresent()) {
123+
int result = JOptionPane.showConfirmDialog(null, "Unsaved changes. Save?");
124+
if(result==JOptionPane.YES_OPTION){
125+
this.saveSprite();
126+
}
127+
}
128+
121129
PK2Sprite sprite = null;
122130

123131
try {
@@ -157,6 +165,19 @@ private void loadSprite(File file) {
157165
JOptionPane.showMessageDialog(null, "Unable to load the sprite file.\n" + e.getMessage(), "Unable to load sprite!", JOptionPane.ERROR_MESSAGE);
158166
}
159167
}
168+
169+
private void saveSprite(){
170+
if (this.loadedFile == null) {
171+
var fc = new SpriteFileChooser();
172+
173+
if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
174+
saveSprite(fc.getSelectedFile());
175+
}
176+
} else {
177+
saveSprite(loadedFile);
178+
}
179+
}
180+
160181

161182
private void saveSprite(File file) {
162183

@@ -245,6 +266,8 @@ private void createMenuBar() {
245266
//menuBar.add(mProfiles);
246267
menuBar.add(mOther);
247268
}
269+
270+
248271

249272
private void addListeners() {
250273

@@ -263,15 +286,7 @@ private void addListeners() {
263286
});
264287

265288
miFSave.addActionListener(e -> {
266-
if (loadedFile == null) {
267-
var fc = new SpriteFileChooser();
268-
269-
if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
270-
saveSprite(fc.getSelectedFile());
271-
}
272-
} else {
273-
saveSprite(loadedFile);
274-
}
289+
saveSprite();
275290
});
276291

277292
miFSaveAs.addActionListener(e -> {

src/main/java/pekase3/panels/FrameImagePanel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import javax.swing.*;
44

5-
import pekaeds.ui.misc.LookAndFeelHelper;
5+
import pk2.util.LookAndFeelHelper;
66

77
import java.awt.*;
88
import java.awt.image.BufferedImage;

src/main/java/pekase3/panels/imagepanel/ImagePanel.java

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import pekase3.filefilters.ImageFilter;
55
import pekase3.listener.UnsavedChangesListener;
66
import pekase3.panels.PekaSE2Panel;
7+
import pekase3.panels.animation.AnimationsEditPanel;
78
import pekase3.panels.imagepanel.spritesheetpanel.SpriteSheetPanel;
89
import pekase3.panels.imagepanel.spritesheetpanel.FrameEditMode.*;
910
import pekase3.panels.spriteeditpane.SpriteEditPaneModel;
@@ -14,7 +15,6 @@
1415

1516
import org.tinylog.Logger;
1617

17-
import javax.imageio.ImageIO;
1818
import javax.swing.*;
1919
import java.awt.*;
2020
import java.awt.image.BufferedImage;
@@ -54,9 +54,13 @@ public class ImagePanel extends PekaSE2Panel {
5454
private JToggleButton lastSelectedButton;
5555

5656
private SpriteProfile profile;
57+
private PK2Sprite sprite;
58+
59+
private final AnimationsEditPanel animationPanel;
5760

58-
public ImagePanel(SpriteEditPaneModel spriteModel) {
59-
this.spriteEditModel = spriteModel;
61+
public ImagePanel(SpriteEditPaneModel spriteModel, AnimationsEditPanel animationPanel) {
62+
this.spriteEditModel = spriteModel;
63+
this.animationPanel = animationPanel;
6064
setup();
6165
}
6266

@@ -286,7 +290,8 @@ public void mousePressed(MouseEvent e) {
286290
}
287291

288292
@Override
289-
public void setSprite(PK2Sprite sprite) {
293+
public void setSprite(PK2Sprite sprite) {
294+
this.sprite = sprite;
290295
tfImage.setText(sprite.getImageFile());
291296

292297
this.image = sprite.getImage();
@@ -393,12 +398,14 @@ private void loadImage(File file, boolean resetFrameData) {
393398
this.image = null;
394399

395400
try {
396-
this.image = ImageIO.read(file);
397-
this.image = GFXUtils.makeTransparent(this.image);
398401

399-
//spriteEditModel.setSpriteImage(this.image);
400-
spriteSheetPanel.setImage(this.image, resetFrameData);
401-
//pnlBorderColor.setBackground(spriteSheetPanel.getBorderColor());
402+
this.sprite.setImageFile(file.getName());
403+
GFXUtils.loadSpriteImageSheet(this.sprite, file);
404+
this.spriteSheetPanel.setImage(this.sprite.getImage(), resetFrameData);
405+
406+
this.animationPanel.setSprite(this.sprite); //To update sprite animations
407+
408+
402409
} catch (IOException ex) {
403410
Logger.warn(ex);
404411
}

src/main/java/pekase3/panels/spriteeditpane/SpriteEditPane.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@
1515
import pekase3.panels.soundspanel.SoundsPanel;
1616
import pk2.profile.SpriteProfile;
1717
import pk2.sprite.PK2Sprite;
18-
import pk2.util.GFXUtils;
1918

20-
import java.awt.image.BufferedImage;
21-
import java.awt.image.RasterFormatException;
2219
import java.util.ArrayList;
2320
import java.util.List;
2421

@@ -47,8 +44,8 @@ public SpriteEditPane() {
4744
private void setup() {
4845
panels = new ArrayList<>();
4946

50-
imagePanel = new ImagePanel(model);
5147
animationsPanel = new AnimationsEditPanel();
48+
imagePanel = new ImagePanel(model, animationsPanel);
5249
aiListPanel = new AIListPanel();
5350
soundsPanel = new SoundsPanel();
5451
attacksPanel = new AttacksPanel();
@@ -90,14 +87,6 @@ public PK2Sprite setValues() {
9087

9188
public void setSprite(PK2Sprite sprite) {
9289
unsavedChangesListener.setIgnoreChanges(true);
93-
94-
try{
95-
sprite.setFramesList(GFXUtils.cutFrames(sprite.getImage(), sprite.getFramesAmount(), sprite.getFrameX(), sprite.getFrameY(), sprite.getFrameWidth(), sprite.getFrameHeight()));
96-
}
97-
catch(RasterFormatException e){
98-
JOptionPane.showMessageDialog(this, "Your sprite could be badly cropped!","Cannot cut sprite frames!", JOptionPane.WARNING_MESSAGE);
99-
sprite.setFramesList(new ArrayList<BufferedImage>());
100-
}
10190

10291
model.setSprite(sprite);
10392
for(PekaSE2Panel p: panels){

0 commit comments

Comments
 (0)