emitter.setFlip(false, true);\r
emitter.setMaxParticleCount(15);\r
emitter.setImagePath("data/particle.png");\r
- synchronized (editor.effect) {\r
- ArrayList<ParticleEmitter> emitters = editor.effect.getEmitters();\r
- if (emitters.isEmpty())\r
- emitter.setPosition(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);\r
- else {\r
- ParticleEmitter p = emitters.get(0);\r
- emitter.setPosition(p.getX(), p.getY());\r
- }\r
- emitters.add(emitter);\r
+\r
+ ArrayList<ParticleEmitter> emitters = editor.effect.getEmitters();\r
+ if (emitters.isEmpty())\r
+ emitter.setPosition(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);\r
+ else {\r
+ ParticleEmitter p = emitters.get(0);\r
+ emitter.setPosition(p.getX(), p.getY());\r
}\r
+ emitters.add(emitter);\r
+\r
emitterTableModel.addRow(new Object[] {name, true});\r
if (select) {\r
editor.reloadRows();\r
lastDir = dir;\r
ParticleEffect effect = new ParticleEffect();\r
try {\r
- synchronized (editor.effect) {\r
- effect.loadEmitters(Gdx.files.getFileHandle(new File(dir, file).getAbsolutePath(), FileType.Absolute));\r
- editor.effect = effect;\r
- emitterTableModel.getDataVector().removeAllElements();\r
- editor.particleData.clear();\r
- }\r
+ effect.loadEmitters(Gdx.files.getFileHandle(new File(dir, file).getAbsolutePath(), FileType.Absolute));\r
+ editor.effect = effect;\r
+ emitterTableModel.getDataVector().removeAllElements();\r
+ editor.particleData.clear();\r
} catch (Exception ex) {\r
System.out.println("Error loading effect: " + new File(dir, file).getAbsolutePath());\r
ex.printStackTrace();\r
JOptionPane.showMessageDialog(editor, "Error opening effect.");\r
return;\r
}\r
- synchronized (editor.effect) {\r
- for (ParticleEmitter emitter : effect.getEmitters()) {\r
- emitter.setPosition(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);\r
- emitterTableModel.addRow(new Object[] {emitter.getName(), true});\r
- }\r
- editIndex = 0;\r
+ for (ParticleEmitter emitter : effect.getEmitters()) {\r
+ emitter.setPosition(Gdx.graphics.getWidth() / 2, Gdx.graphics.getHeight() / 2);\r
+ emitterTableModel.addRow(new Object[] {emitter.getName(), true});\r
}\r
+ editIndex = 0;\r
emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex);\r
editor.reloadRows();\r
}\r
String dir = dialog.getDirectory();\r
if (dir == null || file == null || file.trim().length() == 0) return;\r
lastDir = dir;\r
- synchronized (editor.effect) {\r
- int index = 0;\r
- for (ParticleEmitter emitter : editor.effect.getEmitters())\r
- emitter.setName((String)emitterTableModel.getValueAt(index++, 0));\r
- try {\r
- editor.effect.save(new File(dir, file));\r
- } catch (Exception ex) {\r
- System.out.println("Error saving effect: " + new File(dir, file).getAbsolutePath());\r
- ex.printStackTrace();\r
- JOptionPane.showMessageDialog(editor, "Error saving effect.");\r
- }\r
+ int index = 0;\r
+ for (ParticleEmitter emitter : editor.effect.getEmitters())\r
+ emitter.setName((String)emitterTableModel.getValueAt(index++, 0));\r
+ try {\r
+ editor.effect.save(new File(dir, file));\r
+ } catch (Exception ex) {\r
+ System.out.println("Error saving effect: " + new File(dir, file).getAbsolutePath());\r
+ ex.printStackTrace();\r
+ JOptionPane.showMessageDialog(editor, "Error saving effect.");\r
}\r
}\r
\r
void deleteEmitter () {\r
- synchronized (editor.effect) {\r
- if (editor.effect.getEmitters().size() == 1) return;\r
- int row = emitterTable.getSelectedRow();\r
- if (row == -1) return;\r
- if (row <= editIndex) {\r
- int oldEditIndex = editIndex;\r
- editIndex = Math.max(0, editIndex - 1);\r
- if (oldEditIndex == row) editor.reloadRows();\r
- }\r
- editor.effect.getEmitters().remove(row);\r
- emitterTableModel.removeRow(row);\r
+ if (editor.effect.getEmitters().size() == 1) return;\r
+ int row = emitterTable.getSelectedRow();\r
+ if (row == -1) return;\r
+ if (row <= editIndex) {\r
+ int oldEditIndex = editIndex;\r
+ editIndex = Math.max(0, editIndex - 1);\r
+ if (oldEditIndex == row) editor.reloadRows();\r
}\r
+ editor.effect.getEmitters().remove(row);\r
+ emitterTableModel.removeRow(row);\r
emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex);\r
}\r
\r
void move (int direction) {\r
if (direction < 0 && editIndex == 0) return;\r
- synchronized (editor.effect) {\r
- ArrayList<ParticleEmitter> emitters = editor.effect.getEmitters();\r
- if (direction > 0 && editIndex == emitters.size() - 1) return;\r
- int insertIndex = editIndex + direction;\r
- Object name = emitterTableModel.getValueAt(editIndex, 0);\r
- emitterTableModel.removeRow(editIndex);\r
- ParticleEmitter emitter = emitters.remove(editIndex);\r
- emitterTableModel.insertRow(insertIndex, new Object[] {name});\r
- emitters.add(insertIndex, emitter);\r
- editIndex = insertIndex;\r
- }\r
+ ArrayList<ParticleEmitter> emitters = editor.effect.getEmitters();\r
+ if (direction > 0 && editIndex == emitters.size() - 1) return;\r
+ int insertIndex = editIndex + direction;\r
+ Object name = emitterTableModel.getValueAt(editIndex, 0);\r
+ emitterTableModel.removeRow(editIndex);\r
+ ParticleEmitter emitter = emitters.remove(editIndex);\r
+ emitterTableModel.insertRow(insertIndex, new Object[] {name});\r
+ emitters.add(insertIndex, emitter);\r
+ editIndex = insertIndex;\r
emitterTable.getSelectionModel().setSelectionInterval(editIndex, editIndex);\r
}\r
\r
void emitterChecked (int index, boolean checked) {\r
- synchronized (editor.effect) {\r
- editor.setEnabled(editor.effect.getEmitters().get(index), checked);\r
- editor.effect.start();\r
- }\r
+ editor.setEnabled(editor.effect.getEmitters().get(index), checked);\r
+ editor.effect.start();\r
}\r
\r
private void initializeComponents () {\r
import javax.swing.ImageIcon;\r
import javax.swing.JButton;\r
import javax.swing.JLabel;\r
-import javax.swing.JOptionPane;\r
import javax.swing.JPanel;\r
\r
-import com.badlogic.gdx.graphics.particles.ParticleEmitter;\r
-\r
class ImagePanel extends EditorPanel {\r
JLabel imageLabel;\r
JLabel widthLabel;\r
lastDir = dir;\r
try {\r
ImageIcon icon = new ImageIcon(new File(dir, file).toURI().toURL());\r
- synchronized (editor.effect) {\r
- final ParticleEmitter emitter = editor.getEmitter();\r
- editor.setIcon(emitter, icon);\r
- imageLabel.setIcon(icon);\r
- widthLabel.setText("Width: " + icon.getIconWidth());\r
- heightLabel.setText("Height: " + icon.getIconHeight());\r
- revalidate();\r
- emitter.setImagePath(new File(dir, file).getAbsolutePath());\r
- emitter.setTexture(null);\r
- }\r
+ final ParticleEmitter emitter = editor.getEmitter();\r
+ editor.setIcon(emitter, icon);\r
+ imageLabel.setIcon(icon);\r
+ widthLabel.setText("Width: " + icon.getIconWidth());\r
+ heightLabel.setText("Height: " + icon.getIconHeight());\r
+ revalidate();\r
+ emitter.setImagePath(new File(dir, file).getAbsolutePath());\r
+ emitter.setTexture(null);\r
} catch (Exception ex) {\r
ex.printStackTrace();\r
}\r
import javax.swing.event.ChangeEvent;\r
import javax.swing.event.ChangeListener;\r
\r
-import com.badlogic.gdx.graphics.particles.ParticleEmitter;\r
-\r
class OptionsPanel extends EditorPanel {\r
JCheckBox attachedCheckBox;\r
JCheckBox continuousCheckbox;\r
\r
attachedCheckBox.addActionListener(new ActionListener() {\r
public void actionPerformed (ActionEvent event) {\r
- synchronized (editor.effect) {\r
- editor.getEmitter().setAttached(attachedCheckBox.isSelected());\r
- }\r
+ editor.getEmitter().setAttached(attachedCheckBox.isSelected());\r
}\r
});\r
\r
continuousCheckbox.setSelected(editor.getEmitter().isContinuous());\r
continuousCheckbox.addActionListener(new ActionListener() {\r
public void actionPerformed (ActionEvent event) {\r
- synchronized (editor.effect) {\r
- editor.getEmitter().setContinuous(continuousCheckbox.isSelected());\r
- }\r
+ editor.getEmitter().setContinuous(continuousCheckbox.isSelected());\r
}\r
});\r
\r
alignedCheckbox.addChangeListener(new ChangeListener() {\r
public void stateChanged (ChangeEvent event) {\r
- synchronized (editor.effect) {\r
- editor.getEmitter().setAligned(alignedCheckbox.isSelected());\r
- }\r
+ editor.getEmitter().setAligned(alignedCheckbox.isSelected());\r
}\r
});\r
\r
additiveCheckbox.addChangeListener(new ChangeListener() {\r
public void stateChanged (ChangeEvent event) {\r
- synchronized (editor.effect) {\r
- editor.getEmitter().setAdditive(additiveCheckbox.isSelected());\r
- }\r
+ editor.getEmitter().setAdditive(additiveCheckbox.isSelected());\r
}\r
});\r
\r
behindCheckbox.addChangeListener(new ChangeListener() {\r
public void stateChanged (ChangeEvent event) {\r
- synchronized (editor.effect) {\r
- editor.getEmitter().setBehind(behindCheckbox.isSelected());\r
- }\r
+ editor.getEmitter().setBehind(behindCheckbox.isSelected());\r
}\r
});\r
\r