mirror of
https://github.com/OMGeeky/ATCS.git
synced 2025-12-26 23:57:25 +01:00
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.
62 lines
1.5 KiB
Java
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());
|
|
}
|
|
}
|
|
|
|
}
|