Initial commit

This commit is contained in:
Zukero
2015-02-23 22:43:19 +01:00
commit 59d8ad1cdb
212 changed files with 29432 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
package com.gpl.rpg.atcontentstudio.ui.tools;
import java.awt.BorderLayout;
import java.util.List;
import javax.swing.Icon;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.TableModel;
import com.gpl.rpg.atcontentstudio.model.GameDataElement;
import com.gpl.rpg.atcontentstudio.model.SaveEvent;
import com.gpl.rpg.atcontentstudio.model.gamedata.GameDataSet;
import com.gpl.rpg.atcontentstudio.ui.Editor;
public class ElementTableView extends Editor {
private static final long serialVersionUID = 8048693233599125878L;
public ElementTableView(TableModel elementTableModel, String title, Icon icon) {
this.target = new DummyGDE();
this.name = title;
this.icon = icon;
setLayout(new BorderLayout());
JTable table = new JTable(elementTableModel) {
private static final long serialVersionUID = -2738230330859706440L;
public boolean getScrollableTracksViewportWidth() {
return getPreferredSize().width < getParent().getWidth();
}
};
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setAutoCreateRowSorter(true);
table.setAutoscrolls(true);
table.setCellSelectionEnabled(false);
table.setRowSelectionAllowed(true);
table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
add(new JScrollPane(table), BorderLayout.CENTER);
}
@Override
public void targetUpdated() {
}
class DummyGDE extends GameDataElement {
private static final long serialVersionUID = 5889666999423783180L;
@Override
public GameDataSet getDataSet() {return null;}
@Override
public String getDesc() {return null;}
@Override
public void parse() {}
@Override
public void link() {}
@Override
public GameDataElement clone() {return null;}
@Override
public void elementChanged(GameDataElement oldOne, GameDataElement newOne) {}
@Override
public String getProjectFilename() {return null;}
@Override
public void save() {}
@Override
public List<SaveEvent> attemptSave() {return null;}
}
}

View File

@@ -0,0 +1,214 @@
package com.gpl.rpg.atcontentstudio.ui.tools;
import java.util.ArrayList;
import java.util.List;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import com.gpl.rpg.atcontentstudio.model.Project;
import com.gpl.rpg.atcontentstudio.model.gamedata.Item;
import com.gpl.rpg.atcontentstudio.model.gamedata.ItemCategory;
import com.gpl.rpg.atcontentstudio.ui.DefaultIcons;
public class ItemsTableView extends ElementTableView {
private static final long serialVersionUID = 1474255176349837609L;
public ItemsTableView(Project proj) {
super(new ItemsTableModel(proj), "Compare "+proj.getItemCount()+" items.", new ImageIcon(DefaultIcons.getItemIcon()));
}
private static class ItemsTableModel implements TableModel {
Project proj;
public ItemsTableModel(Project proj) {
this.proj = proj;
}
@Override
public int getRowCount() {
// return proj.getItemCount() + 1;
return proj.getItemCount();
}
@Override
public int getColumnCount() {
return 32;
}
@Override
public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0: return "Icon"; //Icon
case 1: return "ID"; //ID
case 2: return "Name"; //Name
case 3: return "Folder type"; //Source type (created, altered, source)
case 4: return "Use type"; //Use type ("none", "use", or equip slot name).
case 5: return "Category"; //Category id.
case 6: return "Manually set price ?"; //Has manual price
case 7: return "Price"; //Price
case 8: return "On use/hit - HP min";
case 9: return "On use/hit - HP max";
case 10: return "On use/hit - AP min";
case 11: return "On use/hit - AP max";
case 12: return "On use/hit - # conditions";
case 13: return "On kill - HP min";
case 14: return "On kill - HP max";
case 15: return "On kill - AP min";
case 16: return "On kill - AP max";
case 17: return "On kill - # conditions";
case 18: return "AD min";
case 19: return "AD max";
case 20: return "Max HP";
case 21: return "Max AP";
case 22: return "Attack cost";
case 23: return "AC";
case 24: return "BC";
case 25: return "DR";
case 26: return "CS";
case 27: return "CM";
case 28: return "Move cost";
case 29: return "Use cost";
case 30: return "Reequip cost";
case 31: return "# conditions";
}
return null;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
// return String.class;
switch (columnIndex) {
case 0: return Icon.class; // Icon
case 1: return String.class; //ID
case 2: return String.class; //Name
case 3: return String.class; //Source type (created, altered, source)
case 4: return String.class; //Use type ("none", "use", or equip slot name).
case 5: return String.class; //Category id.
case 6: return Boolean.class; //Has manual price
case 7: return Integer.class; //Price
case 8: return Integer.class;//"On use/hit - HP min";
case 9: return Integer.class;//"On use/hit - HP max";
case 10: return Integer.class;//"On use/hit - AP min";
case 11: return Integer.class;//"On use/hit - AP max";
case 12: return Integer.class;//"On use/hit - # conditions";
case 13: return Integer.class;//"On kill - HP min";
case 14: return Integer.class;//"On kill - HP max";
case 15: return Integer.class;//"On kill - AP min";
case 16: return Integer.class;//"On kill - AP max";
case 17: return Integer.class;//"On kill - # conditions";
case 18: return Integer.class;//"AD min";
case 19: return Integer.class;//"AD max";
case 20: return Integer.class;//"Max HP";
case 21: return Integer.class;//"Max AP";
case 22: return Integer.class;//"Attack cost";
case 23: return Integer.class;//"AC";
case 24: return Integer.class;//"BC";
case 25: return Integer.class;//"DR";
case 26: return Integer.class;//"CS";
case 27: return Double.class;//"CM";
case 28: return Integer.class;//"Move cost";
case 29: return Integer.class;//"Use cost";
case 30: return Integer.class;//"Reequip cost";
case 31: return Integer.class;//"# conditions";
}
return null;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
// if (rowIndex == 0) {
// return getColumnName(columnIndex);
// }
// Item item = proj.getItem(rowIndex - 1);
Item item = proj.getItem(rowIndex);
boolean canUse = item.category != null && item.category.action_type == ItemCategory.ActionType.use;
boolean canEquip = item.category != null && item.category.action_type == ItemCategory.ActionType.equip;
switch (columnIndex) {
case 0: return new ImageIcon(item.getIcon()); //Icon
case 1: return item.id; //ID
case 2: return item.name; //Name
case 3: return item.getDataType().toString(); //Source type (created, altered, source)
case 4: //Use type ("none", "use", or equip slot name).
if (item.category == null) return "none";
if (item.category.action_type == null) return "none";
if (item.category.action_type != ItemCategory.ActionType.equip) return item.category.action_type.toString();
return item.category.slot.toString();
case 5: return item.category != null ? item.category.id : (item.category_id != null ? item.category_id : null ); //Category id.
case 6: return item.has_manual_price == null ? false : (item.has_manual_price == 1); //Has manual price
case 7: //Price
if (item.has_manual_price == null || item.has_manual_price != 1) return item.computePrice();
return item.base_market_cost;
case 8: return canUse ? (item.kill_effect != null ? item.kill_effect.hp_boost_min : null) : (item.hit_effect != null ? item.hit_effect.hp_boost_min : null);//"On use/hit - HP min";
case 9: return canUse ? (item.kill_effect != null ? item.kill_effect.hp_boost_max : null) : (item.hit_effect != null ? item.hit_effect.hp_boost_max : null);//"On use/hit - HP max";
case 10: return canUse ? (item.kill_effect != null ? item.kill_effect.ap_boost_min : null) : (item.hit_effect != null ? item.hit_effect.ap_boost_min : null);//"On use/hit - AP min";
case 11: return canUse ? (item.kill_effect != null ? item.kill_effect.ap_boost_max : null) : (item.hit_effect != null ? item.hit_effect.ap_boost_max : null);//"On use/hit - AP max";
case 12: //"On use/hit - # conditions";
if (canUse) {
if (item.kill_effect != null && item.kill_effect.conditions_source != null) {
return item.kill_effect.conditions_source.size();
}
return 0;
} else if (item.hit_effect != null) {
int val = 0;
if (item.hit_effect.conditions_source != null) {
val += item.hit_effect.conditions_source.size();
}
if (item.hit_effect.conditions_target != null) {
val += item.hit_effect.conditions_target.size();
}
return val;
}
return null;
case 13: return (!canUse && item.kill_effect != null) ? item.kill_effect.hp_boost_min : null;//"On kill - HP min";
case 14: return (!canUse && item.kill_effect != null) ? item.kill_effect.hp_boost_max : null;//"On kill - HP max";
case 15: return (!canUse && item.kill_effect != null) ? item.kill_effect.ap_boost_min : null;//"On kill - AP min";
case 16: return (!canUse && item.kill_effect != null) ? item.kill_effect.ap_boost_max : null;//"On kill - AP max";
case 17: return (!canUse && item.kill_effect != null && item.kill_effect.conditions_source != null) ? item.kill_effect.conditions_source.size() : null;//"On kill - # conditions";
case 18: return (canEquip && item.equip_effect != null) ? item.equip_effect.damage_boost_min : null;//"AD min";
case 19: return (canEquip && item.equip_effect != null) ? item.equip_effect.damage_boost_max : null;//"AD max";
case 20: return (canEquip && item.equip_effect != null) ? item.equip_effect.max_hp_boost : null;//"Max HP";
case 21: return (canEquip && item.equip_effect != null) ? item.equip_effect.max_ap_boost : null;//"Max AP";
case 22: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_attack_cost : null;//"Attack cost";
case 23: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_attack_chance : null;//"AC";
case 24: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_block_chance : null;//"BC";
case 25: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_damage_resistance : null;//"DR";
case 26: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_critical_skill : null;//"CS";
case 27: return (canEquip && item.equip_effect != null) ? item.equip_effect.critical_multiplier : null;//"CM";
case 28: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_move_cost : null;//"Move cost";
case 29: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_use_item_cost : null;//"Use cost";
case 30: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_reequip_cost : null;//"Reequip cost";
case 31: return (canEquip && item.equip_effect != null && item.equip_effect.conditions != null) ? item.equip_effect.conditions.size() : null;//"# conditions";
}
return null;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//not editable.
}
List<TableModelListener> listeners = new ArrayList<TableModelListener>();
@Override
public void addTableModelListener(TableModelListener l) {
listeners.add(l);
}
@Override
public void removeTableModelListener(TableModelListener l) {
listeners.remove(l);
}
}
}

View File

@@ -0,0 +1,175 @@
package com.gpl.rpg.atcontentstudio.ui.tools;
import java.util.ArrayList;
import java.util.List;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import com.gpl.rpg.atcontentstudio.model.Project;
import com.gpl.rpg.atcontentstudio.model.gamedata.NPC;
import com.gpl.rpg.atcontentstudio.ui.DefaultIcons;
public class NPCsTableView extends ElementTableView {
private static final long serialVersionUID = -4196852140899079621L;
public NPCsTableView(Project proj) {
super(new NPCsTableModel(proj), "Compare "+proj.getNPCCount()+" NPCs.", new ImageIcon(DefaultIcons.getNPCIcon()));
}
private static class NPCsTableModel implements TableModel {
Project proj;
public NPCsTableModel(Project proj) {
this.proj = proj;
}
@Override
public int getRowCount() {
return proj.getNPCCount();
}
@Override
public int getColumnCount() {
return 25;
}
@Override
public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0: return "Icon"; //Icon
case 1: return "ID"; //ID
case 2: return "Name"; //Name
case 3: return "Category type"; //Source type (created, altered, source)
case 4: return "Unique";
case 5: return "Class";
case 6: return "Movement type";
case 7: return "Spawngroup";
case 8: return "Faction";
case 9: return "HP";
case 10: return "AP";
case 11: return "Attack Cost";
case 12: return "AC";
case 13: return "BC";
case 14: return "AD min";
case 15: return "AD max";
case 16: return "DR";
case 17: return "CS";
case 18: return "CM";
case 19: return "On hit - HP min";
case 20: return "On hit - HP max";
case 21: return "On hit - AP min";
case 22: return "On hit - AP max";
case 23: return "On hit - # conditions";
case 24: return "Experience reward";
}
return null;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case 0: return Icon.class; //Icon
case 1: return String.class; //ID
case 2: return String.class; //Name
case 3: return String.class; //Source type (created, altered, source)
case 4: return Boolean.class; //"Unique";
case 5: return String.class; //"Class";
case 6: return String.class; //"Movement type";
case 7: return String.class; //"Spawngroup";
case 8: return String.class; //"Faction";
case 9: return Integer.class; //"HP";
case 10: return Integer.class; //"AP";
case 11: return Integer.class; //"Attack Cost";
case 12: return Integer.class; //"AC";
case 13: return Integer.class; //"BC";
case 14: return Integer.class; //"AD min";
case 15: return Integer.class; //"AD max";
case 16: return Integer.class; //"DR";
case 17: return Integer.class; //"CS";
case 18: return Double.class; //"CM";
case 19: return Integer.class; //"On hit - HP min";
case 20: return Integer.class; //"On hit - HP max";
case 21: return Integer.class; //"On hit - AP min";
case 22: return Integer.class; //"On hit - AP max";
case 23: return Integer.class; //"On hit - # conditions";
case 24: return Integer.class; //"Experience reward";
}
return null;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
NPC npc = proj.getNPC(rowIndex);
switch (columnIndex) {
case 0: return new ImageIcon(npc.getIcon()); // Icon
case 1: return npc.id; //ID
case 2: return npc.name; //Name
case 3: return npc.getDataType().toString(); //Source type (created, altered, source)
case 4: return npc.unique != null && npc.unique == 1;//"Unique";
case 5: return npc.monster_class != null ? npc.monster_class.toString() : null; //"Class";
case 6: return npc.movement_type != null ? npc.movement_type.toString() : null; //"Movement type";
case 7: return npc.spawngroup_id; //"Spawngroup";
case 8: return npc.faction_id; //"Faction";
case 9: return npc.max_hp; //"HP";
case 10: return npc.max_ap; //"AP";
case 11: return npc.attack_cost; //"Attack Cost";
case 12: return npc.attack_chance; //"AC";
case 13: return npc.block_chance; //"BC";
case 14: return npc.attack_damage_min; //"AD min";
case 15: return npc.attack_damage_max; //"AD max";
case 16: return npc.damage_resistance; //"DR";
case 17: return npc.critical_skill; //"CS";
case 18: return npc.critical_multiplier; //"CM";
case 19: return npc.hit_effect != null ? npc.hit_effect.hp_boost_min : null; //"On hit - HP min";
case 20: return npc.hit_effect != null ? npc.hit_effect.hp_boost_max : null; //"On hit - HP max";
case 21: return npc.hit_effect != null ? npc.hit_effect.ap_boost_min : null; //"On hit - AP min";
case 22: return npc.hit_effect != null ? npc.hit_effect.ap_boost_max : null; //"On hit - AP max";
case 23: //"On hit - # conditions";
if (npc.hit_effect != null) {
Integer val = null;
if (npc.hit_effect.conditions_source != null) {
val = npc.hit_effect.conditions_source.size();
}
if (npc.hit_effect.conditions_target != null) {
if (val == null) val = npc.hit_effect.conditions_target.size();
else val += npc.hit_effect.conditions_target.size();
}
return val;
}
return null;
case 24: return npc.getMonsterExperience();
}
return null;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//not editable.
}
List<TableModelListener> listeners = new ArrayList<TableModelListener>();
@Override
public void addTableModelListener(TableModelListener l) {
listeners.add(l);
}
@Override
public void removeTableModelListener(TableModelListener l) {
listeners.remove(l);
}
}
}