diff --git a/src/com/gpl/rpg/atcontentstudio/model/GameDataElement.java b/src/com/gpl/rpg/atcontentstudio/model/GameDataElement.java index f65a961..bd5a4a6 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/GameDataElement.java +++ b/src/com/gpl/rpg/atcontentstudio/model/GameDataElement.java @@ -40,12 +40,12 @@ public abstract class GameDataElement implements ProjectTreeNode, Serializable { public String id = null; - protected boolean needsToBeLinked(){ - if (this.state == State.created || this.state == State.modified || this.state == State.saved) { + protected boolean linkCheck(){ + if (checkNotRelatedToParseOrLink()) { //This type of state is unrelated to parsing/linking. return false; } - if (this.state == State.init) { + else if (this.state == State.init) { //Not parsed yet. this.parse(); } else if (this.state == State.linked) { @@ -55,7 +55,14 @@ public abstract class GameDataElement implements ProjectTreeNode, Serializable { return true; } - + + protected boolean checkNotRelatedToParseOrLink() { + if (this.state == State.created || this.state == State.modified || this.state == State.saved) { + //This type of state is unrelated to parsing/linking. + return true; + } + return false; + } @Override public Enumeration children() { return null; diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java index e2aa928..55fac35 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ActorCondition.java @@ -224,7 +224,7 @@ public class ActorCondition extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; if (this.icon_id != null) { String spritesheetId = this.icon_id.split(":")[0]; if (getProject().getSpritesheet(spritesheetId) == null) { diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java index 2493858..75c9a62 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Dialogue.java @@ -206,7 +206,7 @@ public class Dialogue extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; Project proj = getProject(); if (proj == null) { Notification.addError("Error linking dialogue "+id+". No parent project found."); diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Droplist.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Droplist.java index 8f62df8..0ae34a0 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Droplist.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Droplist.java @@ -129,7 +129,7 @@ public class Droplist extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; Project proj = getProject(); if (proj == null) { Notification.addError("Error linking droplist "+id+". No parent project found."); diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java index 94ac347..5917a4e 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java @@ -206,7 +206,7 @@ public class Item extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; Project proj = getProject(); if (proj == null) { Notification.addError("Error linking item "+id+". No parent project found."); diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ItemCategory.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ItemCategory.java index 8a2110c..ecb0f8d 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/ItemCategory.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/ItemCategory.java @@ -171,7 +171,7 @@ public class ItemCategory extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; //Nothing to link to :D this.state = State.linked; diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java index 2a7458a..78d2b1d 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/NPC.java @@ -208,7 +208,7 @@ public class NPC extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; Project proj = getProject(); if (proj == null) { Notification.addError("Error linking item "+id+". No parent project found."); diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Quest.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Quest.java index c7455f8..1439344 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Quest.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Quest.java @@ -113,7 +113,7 @@ public class Quest extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; for (QuestStage stage : stages) { stage.link(); diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/QuestStage.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/QuestStage.java index 072c376..8076707 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/QuestStage.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/QuestStage.java @@ -59,7 +59,7 @@ public class QuestStage extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; //Nothing to link to :D this.state = State.linked; diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java index 25e4974..ac93ac1 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Requirement.java @@ -153,7 +153,7 @@ public class Requirement extends JSONElement { @Override public void link() { - if (!this.needsToBeLinked()) return; + if (!this.linkCheck()) return; Project proj = getProject(); if (proj == null) { Notification.addError("Error linking requirement "+getDesc()+". No parent project found."); diff --git a/src/com/gpl/rpg/atcontentstudio/model/tools/writermode/WriterModeData.java b/src/com/gpl/rpg/atcontentstudio/model/tools/writermode/WriterModeData.java index 489e6c8..432c648 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/tools/writermode/WriterModeData.java +++ b/src/com/gpl/rpg/atcontentstudio/model/tools/writermode/WriterModeData.java @@ -489,10 +489,7 @@ public class WriterModeData extends GameDataElement { @SuppressWarnings("rawtypes") public void parse() { - if (this.state == State.created || this.state == State.modified || this.state == State.saved) { - //This type of state is unrelated to parsing/linking. - return; - } + if (checkNotRelatedToParseOrLink()) return; JSONParser parser = new JSONParser(); FileReader reader = null; try { @@ -526,7 +523,7 @@ public class WriterModeData extends GameDataElement { } } - + @SuppressWarnings("rawtypes") public void parse(Map json) { this.id = (String) json.get("id");