mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-14 17:58:01 +00:00
AdventureEditor: added editors
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<build>
|
<build>
|
||||||
<sourceDirectory>src</sourceDirectory>
|
<sourceDirectory>src/main/java</sourceDirectory>
|
||||||
<resources>
|
<resources>
|
||||||
<resource>
|
<resource>
|
||||||
<directory>${project.basedir}</directory>
|
<directory>${project.basedir}</directory>
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
package forge.adventure.editor;
|
||||||
|
|
||||||
|
import forge.adventure.data.BiomeData;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
public class BiomeEdit extends JComponent {
|
||||||
|
BiomeData currentData;
|
||||||
|
|
||||||
|
public JSpinner startPointX= new JSpinner(new SpinnerNumberModel(0.0f, 0.f, 1f, 0.1f));
|
||||||
|
public JSpinner startPointY= new JSpinner(new SpinnerNumberModel(0.0f, 0.f, 1f, 0.1f));
|
||||||
|
public JSpinner noiseWeight= new JSpinner(new SpinnerNumberModel(0.0f, 0.f, 1f, 0.1f));
|
||||||
|
public JSpinner distWeight= new JSpinner(new SpinnerNumberModel(0.0f, 0.f, 1f, 0.1f));
|
||||||
|
public JTextField name=new JTextField();
|
||||||
|
public FilePicker tilesetAtlas=new FilePicker(new String[]{"atlas"});
|
||||||
|
public JTextField tilesetName=new JTextField();
|
||||||
|
public JSpinner width= new JSpinner(new SpinnerNumberModel(0.0f, 0.f, 1f, 0.1f));
|
||||||
|
public JSpinner height= new JSpinner(new SpinnerNumberModel(0.0f, 0.f, 1f, 0.1f));
|
||||||
|
public JTextField color=new JTextField();
|
||||||
|
public TextListEdit spriteNames =new TextListEdit();
|
||||||
|
public TextListEdit enemies =new TextListEdit();
|
||||||
|
public TextListEdit pointsOfInterest =new TextListEdit();
|
||||||
|
|
||||||
|
public TerrainsEditor terrain =new TerrainsEditor();
|
||||||
|
|
||||||
|
private boolean updating=false;
|
||||||
|
|
||||||
|
public BiomeEdit()
|
||||||
|
{
|
||||||
|
|
||||||
|
JComponent center=new JComponent() { };
|
||||||
|
center.setLayout(new GridLayout(14,2));
|
||||||
|
|
||||||
|
center.add(new JLabel("startPointX:")); center.add(startPointX);
|
||||||
|
center.add(new JLabel("startPointY:")); center.add(startPointY);
|
||||||
|
center.add(new JLabel("noiseWeight:")); center.add(noiseWeight);
|
||||||
|
center.add(new JLabel("distWeight:")); center.add(distWeight);
|
||||||
|
center.add(new JLabel("name:")); center.add(name);
|
||||||
|
center.add(new JLabel("tilesetAtlas:")); center.add(tilesetAtlas);
|
||||||
|
center.add(new JLabel("tilesetName:")); center.add(tilesetName);
|
||||||
|
center.add(new JLabel("width:")); center.add(width);
|
||||||
|
center.add(new JLabel("height:")); center.add(height);
|
||||||
|
center.add(new JLabel("spriteNames:")); center.add(spriteNames);
|
||||||
|
center.add(new JLabel("enemies:")); center.add(enemies);
|
||||||
|
center.add(new JLabel("pointsOfInterest:")); center.add(pointsOfInterest);
|
||||||
|
center.add(new JLabel("color:")); center.add(color);
|
||||||
|
center.add(new JLabel("terrain:")); center.add(terrain);
|
||||||
|
BorderLayout layout=new BorderLayout();
|
||||||
|
setLayout(layout);
|
||||||
|
add(center,BorderLayout.PAGE_START);
|
||||||
|
add(terrain,BorderLayout.CENTER);
|
||||||
|
|
||||||
|
name.getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeEdit.this.updateTerrain()));
|
||||||
|
tilesetName.getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeEdit.this.updateTerrain()));
|
||||||
|
color.getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeEdit.this.updateTerrain()));
|
||||||
|
spriteNames.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeEdit.this.updateTerrain()));
|
||||||
|
enemies.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeEdit.this.updateTerrain()));
|
||||||
|
terrain.addChangeListener(e -> BiomeEdit.this.updateTerrain());
|
||||||
|
|
||||||
|
|
||||||
|
startPointX.addChangeListener(e -> BiomeEdit.this.updateTerrain());
|
||||||
|
startPointY.addChangeListener(e -> BiomeEdit.this.updateTerrain());
|
||||||
|
noiseWeight.addChangeListener(e -> BiomeEdit.this.updateTerrain());
|
||||||
|
distWeight.addChangeListener(e -> BiomeEdit.this.updateTerrain());
|
||||||
|
tilesetAtlas.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> BiomeEdit.this.updateTerrain()));
|
||||||
|
width.addChangeListener(e -> BiomeEdit.this.updateTerrain());
|
||||||
|
height.addChangeListener(e -> BiomeEdit.this.updateTerrain());
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateTerrain() {
|
||||||
|
if(currentData==null||updating)
|
||||||
|
return;
|
||||||
|
currentData.startPointX = (Float) startPointX.getValue();
|
||||||
|
currentData.startPointY = (Float) startPointY.getValue();
|
||||||
|
currentData.noiseWeight = (Float) noiseWeight.getValue();
|
||||||
|
currentData.distWeight = (Float)distWeight.getValue();
|
||||||
|
currentData.name = name.getText();
|
||||||
|
currentData.tilesetAtlas = tilesetAtlas.edit.getText();
|
||||||
|
currentData.tilesetName = tilesetName.getName();
|
||||||
|
currentData.terrain = terrain.getBiomeTerrainData();
|
||||||
|
currentData.width = (Float) width.getValue();
|
||||||
|
currentData.height = (Float) height.getValue();
|
||||||
|
currentData.color = color.getText();
|
||||||
|
currentData.spriteNames = spriteNames.getList();
|
||||||
|
currentData.enemies = Arrays.asList(enemies.getList());
|
||||||
|
currentData.pointsOfInterest = Arrays.asList(pointsOfInterest.getList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrentBiome(BiomeData data)
|
||||||
|
{
|
||||||
|
currentData=data;
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refresh() {
|
||||||
|
setEnabled(currentData!=null);
|
||||||
|
if(currentData==null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
updating=true;
|
||||||
|
startPointX.setValue(currentData.startPointX);
|
||||||
|
startPointY.setValue(currentData.startPointY);
|
||||||
|
noiseWeight.setValue(currentData.noiseWeight);
|
||||||
|
distWeight.setValue(currentData.distWeight);
|
||||||
|
name.setText(currentData.name);
|
||||||
|
tilesetAtlas.edit.setText( currentData.tilesetAtlas);
|
||||||
|
tilesetName.setText(currentData.tilesetName);
|
||||||
|
terrain.setTerrains(currentData.terrain);
|
||||||
|
width.setValue(currentData.width);
|
||||||
|
height.setValue(currentData.height);
|
||||||
|
color.setText(currentData.color);
|
||||||
|
spriteNames.setText(currentData.spriteNames);
|
||||||
|
enemies.setText(currentData.enemies);
|
||||||
|
color.setText(currentData.color);
|
||||||
|
pointsOfInterest.setText(currentData.pointsOfInterest);
|
||||||
|
updating=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package forge.adventure.editor;
|
||||||
|
|
||||||
|
import forge.adventure.data.BiomeTerrainData;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.event.ChangeListener;
|
||||||
|
|
||||||
|
public class BiomeTerrainEdit extends JComponent {
|
||||||
|
public void setCurrentTerrain(BiomeTerrainData biomeTerrainData) {
|
||||||
|
}
|
||||||
|
public void addChangeListener(ChangeListener listener) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,8 +10,6 @@ import java.awt.*;
|
|||||||
*/
|
*/
|
||||||
public class ItemEdit extends JComponent {
|
public class ItemEdit extends JComponent {
|
||||||
ItemData currentData;
|
ItemData currentData;
|
||||||
|
|
||||||
|
|
||||||
JTextField nameField=new JTextField();
|
JTextField nameField=new JTextField();
|
||||||
JTextField equipmentSlot=new JTextField();
|
JTextField equipmentSlot=new JTextField();
|
||||||
JTextField iconName=new JTextField();
|
JTextField iconName=new JTextField();
|
||||||
@@ -39,6 +37,7 @@ public class ItemEdit extends JComponent {
|
|||||||
|
|
||||||
add(parameters);
|
add(parameters);
|
||||||
add(effect);
|
add(effect);
|
||||||
|
add(new Box.Filler(new Dimension(0,0),new Dimension(0,Integer.MAX_VALUE),new Dimension(0,Integer.MAX_VALUE)));
|
||||||
|
|
||||||
nameField.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem()));
|
nameField.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem()));
|
||||||
equipmentSlot.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem()));
|
equipmentSlot.getDocument().addDocumentListener(new DocumentChangeListener(() -> ItemEdit.this.updateItem()));
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
package forge.adventure.editor;
|
||||||
|
|
||||||
|
import forge.adventure.data.PointOfInterestData;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
|
||||||
|
public class PointOfInterestEdit extends JComponent {
|
||||||
|
|
||||||
|
PointOfInterestData currentData;
|
||||||
|
|
||||||
|
|
||||||
|
JTextField name = new JTextField();
|
||||||
|
JTextField type = new JTextField();
|
||||||
|
JSpinner count = new JSpinner(new SpinnerNumberModel(0, 0, 1000, 1));
|
||||||
|
FilePicker spriteAtlas = new FilePicker(new String[]{"atlas"});
|
||||||
|
JTextField sprite = new JTextField();
|
||||||
|
FilePicker map = new FilePicker(new String[]{"tmx"});
|
||||||
|
JSpinner radiusFactor= new JSpinner(new SpinnerNumberModel(0.0f, 0.0f, 2.0f, 0.1f));
|
||||||
|
|
||||||
|
|
||||||
|
private boolean updating=false;
|
||||||
|
|
||||||
|
public PointOfInterestEdit()
|
||||||
|
{
|
||||||
|
|
||||||
|
setLayout(new BoxLayout(this,BoxLayout.Y_AXIS));
|
||||||
|
JPanel parameters=new JPanel();
|
||||||
|
parameters.setBorder(BorderFactory.createTitledBorder("Parameter"));
|
||||||
|
parameters.setLayout(new GridLayout(7,2)) ;
|
||||||
|
|
||||||
|
parameters.add(new JLabel("Name:")); parameters.add(name);
|
||||||
|
parameters.add(new JLabel("Type:")); parameters.add(type);
|
||||||
|
parameters.add(new JLabel("Count:")); parameters.add(count);
|
||||||
|
parameters.add(new JLabel("Sprite atlas:")); parameters.add(spriteAtlas);
|
||||||
|
parameters.add(new JLabel("Sprite:")); parameters.add(sprite);
|
||||||
|
parameters.add(new JLabel("Map:")); parameters.add(map);
|
||||||
|
parameters.add(new JLabel("Radius factor:")); parameters.add(radiusFactor);
|
||||||
|
|
||||||
|
add(parameters);
|
||||||
|
add(new Box.Filler(new Dimension(0,0),new Dimension(0,Integer.MAX_VALUE),new Dimension(0,Integer.MAX_VALUE)));
|
||||||
|
|
||||||
|
name.getDocument().addDocumentListener(new DocumentChangeListener(() -> PointOfInterestEdit.this.updateItem()));
|
||||||
|
type.getDocument().addDocumentListener(new DocumentChangeListener(() -> PointOfInterestEdit.this.updateItem()));
|
||||||
|
count.addChangeListener(e -> PointOfInterestEdit.this.updateItem());
|
||||||
|
spriteAtlas.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> PointOfInterestEdit.this.updateItem()));
|
||||||
|
sprite.getDocument().addDocumentListener(new DocumentChangeListener(() -> PointOfInterestEdit.this.updateItem()));
|
||||||
|
map.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> PointOfInterestEdit.this.updateItem()));
|
||||||
|
radiusFactor.addChangeListener(e -> PointOfInterestEdit.this.updateItem());
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateItem() {
|
||||||
|
if(currentData==null||updating)
|
||||||
|
return;
|
||||||
|
currentData.name=name.getText();
|
||||||
|
currentData.type= type.getText();
|
||||||
|
currentData.count= ((Integer) count.getValue()).intValue();
|
||||||
|
currentData.spriteAtlas=spriteAtlas.getEdit().getText();
|
||||||
|
currentData.sprite=sprite.getText();
|
||||||
|
currentData.map=map.getEdit().getText();
|
||||||
|
currentData.radiusFactor=((Float) radiusFactor.getValue()).floatValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrent(PointOfInterestData data)
|
||||||
|
{
|
||||||
|
currentData=data;
|
||||||
|
refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void refresh() {
|
||||||
|
setEnabled(currentData!=null);
|
||||||
|
if(currentData==null)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
updating=true;
|
||||||
|
name.setText(currentData.name);
|
||||||
|
type.setText(currentData.type);
|
||||||
|
count.setValue(currentData.count);
|
||||||
|
spriteAtlas.getEdit().setText(currentData.spriteAtlas);
|
||||||
|
sprite.setText(currentData.sprite);
|
||||||
|
map.getEdit().setText(currentData.map);
|
||||||
|
radiusFactor.setValue(currentData.radiusFactor);
|
||||||
|
|
||||||
|
updating=false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,131 @@
|
|||||||
package forge.adventure.editor;
|
package forge.adventure.editor;
|
||||||
|
|
||||||
import java.awt.*;
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
import com.badlogic.gdx.utils.Json;
|
||||||
|
import com.badlogic.gdx.utils.JsonWriter;
|
||||||
|
import forge.adventure.data.PointOfInterestData;
|
||||||
|
import forge.adventure.util.Config;
|
||||||
|
import forge.adventure.util.Paths;
|
||||||
|
|
||||||
public class PointOfInterestEditor extends Component {
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class PointOfInterestEditor extends JComponent {
|
||||||
|
DefaultListModel<PointOfInterestData> model = new DefaultListModel<>();
|
||||||
|
JList<PointOfInterestData> list = new JList<>(model);
|
||||||
|
JToolBar toolBar = new JToolBar("toolbar");
|
||||||
|
PointOfInterestEdit edit=new PointOfInterestEdit();
|
||||||
|
static HashMap<String,SwingAtlas> atlas=new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class PointOfInterestRenderer extends DefaultListCellRenderer {
|
||||||
|
@Override
|
||||||
|
public Component getListCellRendererComponent(
|
||||||
|
JList list, Object value, int index,
|
||||||
|
boolean isSelected, boolean cellHasFocus) {
|
||||||
|
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
|
||||||
|
if(!(value instanceof PointOfInterestData))
|
||||||
|
return label;
|
||||||
|
PointOfInterestData poi=(PointOfInterestData) value;
|
||||||
|
// Get the renderer component from parent class
|
||||||
|
|
||||||
|
label.setText(poi.name);
|
||||||
|
if(!atlas.containsKey(poi.spriteAtlas))
|
||||||
|
atlas.put(poi.spriteAtlas,new SwingAtlas(Config.instance().getFile(poi.spriteAtlas)));
|
||||||
|
|
||||||
|
SwingAtlas poiAtlas = atlas.get(poi.spriteAtlas);
|
||||||
|
|
||||||
|
if(poiAtlas.has(poi.sprite))
|
||||||
|
label.setIcon(poiAtlas.get(poi.sprite));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ImageIcon img=poiAtlas.getAny();
|
||||||
|
if(img!=null)
|
||||||
|
label.setIcon(img);
|
||||||
|
}
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void addButton(String name, ActionListener action)
|
||||||
|
{
|
||||||
|
JButton newButton=new JButton(name);
|
||||||
|
newButton.addActionListener(action);
|
||||||
|
toolBar.add(newButton);
|
||||||
|
|
||||||
|
}
|
||||||
|
public PointOfInterestEditor()
|
||||||
|
{
|
||||||
|
|
||||||
|
list.setCellRenderer(new PointOfInterestEditor.PointOfInterestRenderer());
|
||||||
|
list.addListSelectionListener(e -> PointOfInterestEditor.this.updateEdit());
|
||||||
|
addButton("add", e -> PointOfInterestEditor.this.addItem());
|
||||||
|
addButton("remove", e -> PointOfInterestEditor.this.remove());
|
||||||
|
addButton("copy", e -> PointOfInterestEditor.this.copy());
|
||||||
|
addButton("load", e -> PointOfInterestEditor.this.load());
|
||||||
|
addButton("save", e -> PointOfInterestEditor.this.save());
|
||||||
|
BorderLayout layout=new BorderLayout();
|
||||||
|
setLayout(layout);
|
||||||
|
add(new JScrollPane(list), BorderLayout.LINE_START);
|
||||||
|
add(toolBar, BorderLayout.PAGE_START);
|
||||||
|
add(edit,BorderLayout.CENTER);
|
||||||
|
load();
|
||||||
|
}
|
||||||
|
private void copy() {
|
||||||
|
|
||||||
|
int selected=list.getSelectedIndex();
|
||||||
|
if(selected<0)
|
||||||
|
return;
|
||||||
|
PointOfInterestData data=new PointOfInterestData(model.get(selected));
|
||||||
|
model.add(model.size(),data);
|
||||||
|
}
|
||||||
|
private void updateEdit() {
|
||||||
|
|
||||||
|
int selected=list.getSelectedIndex();
|
||||||
|
if(selected<0)
|
||||||
|
return;
|
||||||
|
edit.setCurrent(model.get(selected));
|
||||||
|
}
|
||||||
|
|
||||||
|
void save()
|
||||||
|
{
|
||||||
|
Array<PointOfInterestData> allEnemies=new Array<>();
|
||||||
|
for(int i=0;i<model.getSize();i++)
|
||||||
|
allEnemies.add(model.get(i));
|
||||||
|
Json json = new Json(JsonWriter.OutputType.json);
|
||||||
|
FileHandle handle = Config.instance().getFile(Paths.POINTS_OF_INTEREST);
|
||||||
|
handle.writeString(json.prettyPrint(json.toJson(allEnemies,Array.class, PointOfInterestData.class)),false);
|
||||||
|
|
||||||
|
}
|
||||||
|
void load()
|
||||||
|
{
|
||||||
|
model.clear();
|
||||||
|
Array<PointOfInterestData> allEnemies=new Array<>();
|
||||||
|
Json json = new Json();
|
||||||
|
FileHandle handle = Config.instance().getFile(Paths.POINTS_OF_INTEREST);
|
||||||
|
if (handle.exists())
|
||||||
|
{
|
||||||
|
Array readEnemies=json.fromJson(Array.class, PointOfInterestData.class, handle);
|
||||||
|
allEnemies = readEnemies;
|
||||||
|
}
|
||||||
|
for (int i=0;i<allEnemies.size;i++) {
|
||||||
|
model.add(i,allEnemies.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void addItem()
|
||||||
|
{
|
||||||
|
PointOfInterestData data=new PointOfInterestData();
|
||||||
|
data.name="PoI "+model.getSize();
|
||||||
|
model.add(model.size(),data);
|
||||||
|
}
|
||||||
|
void remove()
|
||||||
|
{
|
||||||
|
int selected=list.getSelectedIndex();
|
||||||
|
if(selected<0)
|
||||||
|
return;
|
||||||
|
model.remove(selected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import javax.swing.*;
|
|||||||
import javax.swing.event.ChangeEvent;
|
import javax.swing.event.ChangeEvent;
|
||||||
import javax.swing.event.ChangeListener;
|
import javax.swing.event.ChangeListener;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.ActionEvent;
|
|
||||||
import java.awt.event.ActionListener;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -58,102 +56,22 @@ public class RewardEdit extends JComponent {
|
|||||||
add(new JLabel("cardText:")); add(cardText);
|
add(new JLabel("cardText:")); add(cardText);
|
||||||
|
|
||||||
|
|
||||||
typeField.addActionListener((new ActionListener() {
|
typeField.addActionListener((e -> RewardEdit.this.updateReward()));
|
||||||
@Override
|
probability.addChangeListener(e -> RewardEdit.this.updateReward());
|
||||||
public void actionPerformed(ActionEvent e) {
|
count.addChangeListener(e -> RewardEdit.this.updateReward());
|
||||||
RewardEdit.this.updateReward();
|
addMaxCount.addChangeListener(e -> RewardEdit.this.updateReward());
|
||||||
}
|
cardName.getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
}));
|
itemName.getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
probability.addChangeListener(new ChangeListener() {
|
editions.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
@Override
|
colors.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
public void stateChanged(ChangeEvent e) {
|
rarity.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
RewardEdit.this.updateReward();
|
subTypes.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
}
|
cardTypes.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
});
|
superTypes.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
count.addChangeListener(new ChangeListener() {
|
manaCosts.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
@Override
|
keyWords.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
public void stateChanged(ChangeEvent e) {
|
colorType.addActionListener((e -> RewardEdit.this.updateReward()));
|
||||||
RewardEdit.this.updateReward();
|
cardText.getDocument().addDocumentListener(new DocumentChangeListener(() -> RewardEdit.this.updateReward()));
|
||||||
}
|
|
||||||
});
|
|
||||||
addMaxCount.addChangeListener(new ChangeListener() {
|
|
||||||
@Override
|
|
||||||
public void stateChanged(ChangeEvent e) {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
cardName.getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
itemName.getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
editions.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
colors.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
rarity.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
subTypes.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
cardTypes.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
superTypes.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
manaCosts.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
keyWords.getEdit().getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
colorType.addActionListener((new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
cardText.getDocument().addDocumentListener(new DocumentChangeListener(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
RewardEdit.this.updateReward();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,10 +5,7 @@ import forge.adventure.data.RewardData;
|
|||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.event.ChangeEvent;
|
import javax.swing.event.ChangeEvent;
|
||||||
import javax.swing.event.ChangeListener;
|
import javax.swing.event.ChangeListener;
|
||||||
import javax.swing.event.ListSelectionEvent;
|
|
||||||
import javax.swing.event.ListSelectionListener;
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.event.ActionEvent;
|
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -59,30 +56,10 @@ public class RewardsEditor extends JComponent{
|
|||||||
{
|
{
|
||||||
|
|
||||||
list.setCellRenderer(new RewardDataRenderer());
|
list.setCellRenderer(new RewardDataRenderer());
|
||||||
list.addListSelectionListener(new ListSelectionListener() {
|
list.addListSelectionListener(e -> RewardsEditor.this.updateEdit());
|
||||||
@Override
|
addButton("add", e -> RewardsEditor.this.addReward());
|
||||||
public void valueChanged(ListSelectionEvent e) {
|
addButton("remove", e -> RewardsEditor.this.remove());
|
||||||
RewardsEditor.this.updateEdit();
|
addButton("copy", e -> RewardsEditor.this.copy());
|
||||||
}
|
|
||||||
});
|
|
||||||
addButton("add", new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
RewardsEditor.this.addReward();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
addButton("remove", new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
RewardsEditor.this.remove();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
addButton("copy", new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
RewardsEditor.this.copy();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
BorderLayout layout=new BorderLayout();
|
BorderLayout layout=new BorderLayout();
|
||||||
setLayout(layout);
|
setLayout(layout);
|
||||||
add(list, BorderLayout.LINE_START);
|
add(list, BorderLayout.LINE_START);
|
||||||
|
|||||||
@@ -0,0 +1,138 @@
|
|||||||
|
package forge.adventure.editor;
|
||||||
|
|
||||||
|
import forge.adventure.data.BiomeTerrainData;
|
||||||
|
import forge.adventure.data.RewardData;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.event.ChangeEvent;
|
||||||
|
import javax.swing.event.ChangeListener;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Editor class to edit configuration, maybe moved or removed
|
||||||
|
*/
|
||||||
|
public class TerrainsEditor extends JComponent{
|
||||||
|
DefaultListModel<BiomeTerrainData> model = new DefaultListModel<>();
|
||||||
|
JList<BiomeTerrainData> list = new JList<>(model);
|
||||||
|
JToolBar toolBar = new JToolBar("toolbar");
|
||||||
|
BiomeTerrainEdit edit=new BiomeTerrainEdit();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public class TerrainDataRenderer extends DefaultListCellRenderer {
|
||||||
|
@Override
|
||||||
|
public Component getListCellRendererComponent(
|
||||||
|
JList list, Object value, int index,
|
||||||
|
boolean isSelected, boolean cellHasFocus) {
|
||||||
|
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
|
||||||
|
if(!(value instanceof RewardData))
|
||||||
|
return label;
|
||||||
|
RewardData reward=(RewardData) value;
|
||||||
|
StringBuilder builder=new StringBuilder();
|
||||||
|
if(reward.type==null||reward.type.isEmpty())
|
||||||
|
builder.append("Terrain");
|
||||||
|
else
|
||||||
|
builder.append(reward.type);
|
||||||
|
builder.append(" ");
|
||||||
|
builder.append(reward.count);
|
||||||
|
if(reward.addMaxCount>0)
|
||||||
|
{
|
||||||
|
builder.append("-");
|
||||||
|
builder.append(reward.count+reward.addMaxCount);
|
||||||
|
}
|
||||||
|
label.setText(builder.toString());
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void addButton(String name, ActionListener action)
|
||||||
|
{
|
||||||
|
JButton newButton=new JButton(name);
|
||||||
|
newButton.addActionListener(action);
|
||||||
|
toolBar.add(newButton);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public TerrainsEditor()
|
||||||
|
{
|
||||||
|
|
||||||
|
list.setCellRenderer(new TerrainDataRenderer());
|
||||||
|
list.addListSelectionListener(e -> TerrainsEditor.this.updateEdit());
|
||||||
|
addButton("add", e -> TerrainsEditor.this.addReward());
|
||||||
|
addButton("remove", e -> TerrainsEditor.this.remove());
|
||||||
|
addButton("copy", e -> TerrainsEditor.this.copy());
|
||||||
|
BorderLayout layout=new BorderLayout();
|
||||||
|
setLayout(layout);
|
||||||
|
add(list, BorderLayout.LINE_START);
|
||||||
|
add(toolBar, BorderLayout.PAGE_START);
|
||||||
|
add(edit,BorderLayout.CENTER);
|
||||||
|
|
||||||
|
|
||||||
|
edit.addChangeListener(new ChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void stateChanged(ChangeEvent e) {
|
||||||
|
emitChanged();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
protected void emitChanged() {
|
||||||
|
ChangeListener[] listeners = listenerList.getListeners(ChangeListener.class);
|
||||||
|
if (listeners != null && listeners.length > 0) {
|
||||||
|
ChangeEvent evt = new ChangeEvent(this);
|
||||||
|
for (ChangeListener listener : listeners) {
|
||||||
|
listener.stateChanged(evt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private void copy() {
|
||||||
|
|
||||||
|
int selected=list.getSelectedIndex();
|
||||||
|
if(selected<0)
|
||||||
|
return;
|
||||||
|
BiomeTerrainData data=new BiomeTerrainData(model.get(selected));
|
||||||
|
model.add(model.size(),data);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateEdit() {
|
||||||
|
|
||||||
|
int selected=list.getSelectedIndex();
|
||||||
|
if(selected<0)
|
||||||
|
return;
|
||||||
|
edit.setCurrentTerrain(model.get(selected));
|
||||||
|
}
|
||||||
|
|
||||||
|
void addReward()
|
||||||
|
{
|
||||||
|
BiomeTerrainData data=new BiomeTerrainData();
|
||||||
|
model.add(model.size(),data);
|
||||||
|
}
|
||||||
|
void remove()
|
||||||
|
{
|
||||||
|
int selected=list.getSelectedIndex();
|
||||||
|
if(selected<0)
|
||||||
|
return;
|
||||||
|
model.remove(selected);
|
||||||
|
}
|
||||||
|
public void setTerrains(BiomeTerrainData[] terrain) {
|
||||||
|
|
||||||
|
model.clear();
|
||||||
|
if(terrain==null)
|
||||||
|
return;
|
||||||
|
for (int i=0;i<terrain.length;i++) {
|
||||||
|
model.add(i,terrain[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BiomeTerrainData[] getBiomeTerrainData() {
|
||||||
|
|
||||||
|
BiomeTerrainData[] rewards= new BiomeTerrainData[model.getSize()];
|
||||||
|
for(int i=0;i<model.getSize();i++)
|
||||||
|
{
|
||||||
|
rewards[i]=model.get(i);
|
||||||
|
}
|
||||||
|
return rewards;
|
||||||
|
}
|
||||||
|
public void addChangeListener(ChangeListener listener) {
|
||||||
|
listenerList.add(ChangeListener.class, listener);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ import java.awt.event.ActionEvent;
|
|||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Editor class to edit configuration, maybe moved or removed
|
* Editor class to edit configuration, maybe moved or removed
|
||||||
@@ -59,6 +60,12 @@ public class TextListEdit extends Box {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setText(List<String> itemNames) {
|
||||||
|
if(itemNames==null)
|
||||||
|
edit.setText("");
|
||||||
|
else
|
||||||
|
edit.setText(String.join(";",itemNames));
|
||||||
|
}
|
||||||
public void setText(String[] itemName) {
|
public void setText(String[] itemName) {
|
||||||
if(itemName==null)
|
if(itemName==null)
|
||||||
edit.setText("");
|
edit.setText("");
|
||||||
|
|||||||
@@ -1,6 +1,153 @@
|
|||||||
package forge.adventure.editor;
|
package forge.adventure.editor;
|
||||||
|
|
||||||
import java.awt.*;
|
import com.badlogic.gdx.files.FileHandle;
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
|
import com.badlogic.gdx.utils.Json;
|
||||||
|
import com.badlogic.gdx.utils.JsonWriter;
|
||||||
|
import forge.adventure.data.BiomeData;
|
||||||
|
import forge.adventure.data.WorldData;
|
||||||
|
import forge.adventure.util.Config;
|
||||||
|
import forge.adventure.util.Paths;
|
||||||
|
|
||||||
public class WorldEditor extends Component {
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class WorldEditor extends JComponent {
|
||||||
|
|
||||||
|
WorldData currentData;
|
||||||
|
|
||||||
|
|
||||||
|
JSpinner width= new JSpinner(new SpinnerNumberModel(0, 0, 100000, 1));
|
||||||
|
JSpinner height= new JSpinner(new SpinnerNumberModel(0, 0, 100000, 1));
|
||||||
|
JSpinner playerStartPosX= new JSpinner(new SpinnerNumberModel(0, 0, 1, .1));
|
||||||
|
JSpinner playerStartPosY= new JSpinner(new SpinnerNumberModel(0, 0, 1, .1));
|
||||||
|
JSpinner noiseZoomBiome= new JSpinner(new SpinnerNumberModel(0, 0, 1000f, 1f));
|
||||||
|
JSpinner tileSize= new JSpinner(new SpinnerNumberModel(0, 0, 100000, 1));
|
||||||
|
|
||||||
|
JTextField biomesSprites = new JTextField();
|
||||||
|
JSpinner maxRoadDistance = new JSpinner(new SpinnerNumberModel(0, 0, 100000f, 1f));
|
||||||
|
TextListEdit biomesNames = new TextListEdit();
|
||||||
|
|
||||||
|
DefaultListModel<BiomeData> model = new DefaultListModel<>();
|
||||||
|
JList<BiomeData> list = new JList<>(model);
|
||||||
|
BiomeEdit edit=new BiomeEdit();
|
||||||
|
JTabbedPane tabs =new JTabbedPane();
|
||||||
|
static HashMap<String,SwingAtlas> atlas=new HashMap<>();
|
||||||
|
|
||||||
|
public class BiomeDataRenderer extends DefaultListCellRenderer {
|
||||||
|
@Override
|
||||||
|
public Component getListCellRendererComponent(
|
||||||
|
JList list, Object value, int index,
|
||||||
|
boolean isSelected, boolean cellHasFocus) {
|
||||||
|
JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
|
||||||
|
if(!(value instanceof BiomeData))
|
||||||
|
return label;
|
||||||
|
BiomeData biome=(BiomeData) value;
|
||||||
|
// Get the renderer component from parent class
|
||||||
|
|
||||||
|
label.setText(biome.name);
|
||||||
|
if(!atlas.containsKey(biome.tilesetAtlas))
|
||||||
|
atlas.put(biome.tilesetAtlas,new SwingAtlas(Config.instance().getFile(biome.tilesetAtlas)));
|
||||||
|
|
||||||
|
SwingAtlas poiAtlas = atlas.get(biome.tilesetAtlas);
|
||||||
|
|
||||||
|
if(poiAtlas.has(biome.tilesetName))
|
||||||
|
label.setIcon(poiAtlas.get(biome.tilesetName));
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ImageIcon img=poiAtlas.getAny();
|
||||||
|
if(img!=null)
|
||||||
|
label.setIcon(img);
|
||||||
|
}
|
||||||
|
return label;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public WorldEditor() {
|
||||||
|
list.setCellRenderer(new BiomeDataRenderer());
|
||||||
|
BorderLayout layout = new BorderLayout();
|
||||||
|
setLayout(layout);
|
||||||
|
add(tabs);
|
||||||
|
JPanel worldPanel=new JPanel();
|
||||||
|
JPanel biomeData=new JPanel();
|
||||||
|
tabs.addTab("BiomeData", biomeData);
|
||||||
|
tabs.addTab("WorldData", worldPanel);
|
||||||
|
|
||||||
|
|
||||||
|
JPanel worldData=new JPanel();
|
||||||
|
worldData.setLayout(new GridLayout(9,2)) ;
|
||||||
|
|
||||||
|
worldData.add(new JLabel("width:")); worldData.add(width);
|
||||||
|
worldData.add(new JLabel("height:")); worldData.add(height);
|
||||||
|
worldData.add(new JLabel("playerStartPosX:")); worldData.add(playerStartPosX);
|
||||||
|
worldData.add(new JLabel("playerStartPosY:")); worldData.add(playerStartPosY);
|
||||||
|
worldData.add(new JLabel("noiseZoomBiome:")); worldData.add(noiseZoomBiome);
|
||||||
|
worldData.add(new JLabel("tileSize:")); worldData.add(tileSize);
|
||||||
|
worldData.add(new JLabel("biomesSprites:")); worldData.add(biomesSprites);
|
||||||
|
worldData.add(new JLabel("maxRoadDistance:")); worldData.add(maxRoadDistance);
|
||||||
|
worldData.add(new JLabel("biomesNames:")); worldData.add(biomesNames);
|
||||||
|
|
||||||
|
|
||||||
|
worldPanel.setLayout(new BoxLayout(worldPanel,BoxLayout.Y_AXIS));
|
||||||
|
worldPanel.add(worldData);
|
||||||
|
worldPanel.add(new Box.Filler(new Dimension(0,0),new Dimension(0,Integer.MAX_VALUE),new Dimension(0,Integer.MAX_VALUE)));
|
||||||
|
|
||||||
|
|
||||||
|
biomeData.setLayout(new GridLayout(1,2)) ;
|
||||||
|
biomeData.add(list); biomeData.add(edit);
|
||||||
|
|
||||||
|
load();
|
||||||
|
|
||||||
|
JToolBar toolBar = new JToolBar("toolbar");
|
||||||
|
add(toolBar, BorderLayout.PAGE_START);
|
||||||
|
JButton newButton=new JButton("save");
|
||||||
|
newButton.addActionListener(e -> WorldEditor.this.save());
|
||||||
|
toolBar.add(newButton);
|
||||||
|
newButton=new JButton("load");
|
||||||
|
newButton.addActionListener(e -> WorldEditor.this.load());
|
||||||
|
toolBar.add(newButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
void save()
|
||||||
|
{
|
||||||
|
Json json = new Json(JsonWriter.OutputType.json);
|
||||||
|
FileHandle handle = Config.instance().getFile(Paths.WORLD);
|
||||||
|
handle.writeString(json.prettyPrint(json.toJson(currentData,Array.class, WorldData.class)),false);
|
||||||
|
|
||||||
|
}
|
||||||
|
void load()
|
||||||
|
{
|
||||||
|
model.clear();
|
||||||
|
Json json = new Json();
|
||||||
|
FileHandle handle = Config.instance().getFile(Paths.WORLD);
|
||||||
|
if (handle.exists())
|
||||||
|
{
|
||||||
|
currentData=json.fromJson(WorldData.class, WorldData.class, handle);
|
||||||
|
}
|
||||||
|
update();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void update() {
|
||||||
|
width.setValue(currentData.width);
|
||||||
|
height.setValue(currentData.height);
|
||||||
|
playerStartPosX.setValue(currentData.playerStartPosX);
|
||||||
|
playerStartPosY.setValue(currentData.playerStartPosY);
|
||||||
|
noiseZoomBiome.setValue(currentData.noiseZoomBiome);
|
||||||
|
tileSize.setValue(currentData.tileSize);
|
||||||
|
biomesSprites.setText(currentData.biomesSprites);
|
||||||
|
maxRoadDistance.setValue(currentData.maxRoadDistance);
|
||||||
|
biomesNames.setText(currentData.biomesNames);
|
||||||
|
|
||||||
|
for(String path:currentData.biomesNames)
|
||||||
|
{
|
||||||
|
Json json = new Json();
|
||||||
|
FileHandle handle = Config.instance().getFile(path);
|
||||||
|
if (handle.exists())
|
||||||
|
{
|
||||||
|
BiomeData data=json.fromJson(BiomeData.class, BiomeData.class, handle);
|
||||||
|
model.addElement(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import java.util.Random;
|
|||||||
* contains the information for the biomes
|
* contains the information for the biomes
|
||||||
*/
|
*/
|
||||||
public class BiomeData implements Serializable {
|
public class BiomeData implements Serializable {
|
||||||
private final Random rand = MyRandom.getRandom();
|
|
||||||
public float startPointX;
|
public float startPointX;
|
||||||
public float startPointY;
|
public float startPointY;
|
||||||
public float noiseWeight;
|
public float noiseWeight;
|
||||||
@@ -35,6 +34,7 @@ public class BiomeData implements Serializable {
|
|||||||
private ArrayList<EnemyData> enemyList;
|
private ArrayList<EnemyData> enemyList;
|
||||||
private ArrayList<PointOfInterestData> pointOfInterestList;
|
private ArrayList<PointOfInterestData> pointOfInterestList;
|
||||||
|
|
||||||
|
private final Random rand = MyRandom.getRandom();
|
||||||
public Color GetColor() {
|
public Color GetColor() {
|
||||||
return Color.valueOf(color);
|
return Color.valueOf(color);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,4 +16,16 @@ public class BiomeTerrainData {
|
|||||||
// factor for the noise resolution
|
// factor for the noise resolution
|
||||||
public float resolution;
|
public float resolution;
|
||||||
|
|
||||||
|
public BiomeTerrainData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public BiomeTerrainData(BiomeTerrainData other)
|
||||||
|
{
|
||||||
|
spriteName=other.spriteName;
|
||||||
|
min=other.min;
|
||||||
|
max=other.max;
|
||||||
|
resolution=other.resolution;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,4 +42,18 @@ public class PointOfInterestData {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
public PointOfInterestData()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public PointOfInterestData(PointOfInterestData other)
|
||||||
|
{
|
||||||
|
name=other.name;
|
||||||
|
type=other.type;
|
||||||
|
count=other.count;
|
||||||
|
spriteAtlas=other.spriteAtlas;
|
||||||
|
sprite=other.sprite;
|
||||||
|
map=other.map;
|
||||||
|
radiusFactor=other.radiusFactor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,19 +17,22 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class WorldData implements Serializable {
|
public class WorldData implements Serializable {
|
||||||
|
|
||||||
static Array<EnemyData> allEnemies;
|
|
||||||
public int width;
|
public int width;
|
||||||
public int height;
|
public int height;
|
||||||
public float playerStartPosX;
|
public float playerStartPosX;
|
||||||
public float playerStartPosY;
|
public float playerStartPosY;
|
||||||
public float noiseZoomBiome;
|
public float noiseZoomBiome;
|
||||||
public int tileSize;
|
public int tileSize;
|
||||||
public List<String> biomesNames;
|
|
||||||
public BiomeData roadTileset;
|
public BiomeData roadTileset;
|
||||||
public String biomesSprites;
|
public String biomesSprites;
|
||||||
public float maxRoadDistance;
|
public float maxRoadDistance;
|
||||||
|
public List<String> biomesNames;
|
||||||
|
|
||||||
|
|
||||||
private BiomeSprites sprites;
|
private BiomeSprites sprites;
|
||||||
private List<BiomeData> biomes;
|
private List<BiomeData> biomes;
|
||||||
|
|
||||||
|
private static Array<EnemyData> allEnemies;
|
||||||
private static Array<ShopData> shopList;
|
private static Array<ShopData> shopList;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user