Files
archived-ATCS/src/com/gpl/rpg/atcontentstudio/model/maps/ScriptArea.java
Zukero dfe3cc8480 UAC dirty script for better windows integration to create symlinks. More
data using a thread-safe collection. Some NPEs fixed. 
More data protection in tiled integration functions (better state
checking, backup tiled-made file before saving ATCS-made data).
jardesc file added for convenience.
2017-03-02 18:10:03 +01:00

62 lines
1.5 KiB
Java

package com.gpl.rpg.atcontentstudio.model.maps;
import java.awt.Image;
import com.gpl.rpg.atcontentstudio.model.GameDataElement;
import com.gpl.rpg.atcontentstudio.model.gamedata.Dialogue;
import com.gpl.rpg.atcontentstudio.ui.DefaultIcons;
public class ScriptArea extends MapObject {
public Dialogue dialogue = null;
public EvaluationTrigger trigger_type = null;
public enum EvaluationTrigger {
enter,
step,
round,
always
}
public ScriptArea(tiled.core.MapObject obj) {
String triggerTypeId = obj.getProperties().getProperty("when");
if (triggerTypeId != null) {
trigger_type = EvaluationTrigger.valueOf(triggerTypeId);
}
}
@Override
public void link() {
if (name != null) dialogue = parentMap.getProject().getDialogue(name);
if (dialogue != null) {
dialogue.addBacklink(parentMap);
}
}
@Override
public Image getIcon() {
if (dialogue != null) return DefaultIcons.getScriptIcon();
else return DefaultIcons.getNullifyIcon();
}
@Override
public void elementChanged(GameDataElement oldOne, GameDataElement newOne) {
if (oldOne == dialogue) {
oldOne.removeBacklink(parentMap);
dialogue = (Dialogue) newOne;
if (newOne != null) newOne.addBacklink(parentMap);
}
}
@Override
public void savePropertiesInTmxObject(tiled.core.MapObject tmxObject) {
if (dialogue != null) {
tmxObject.setName(dialogue.id);
}
if (trigger_type != null) {
tmxObject.getProperties().setProperty("when", trigger_type.toString());
}
}
}