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.
59 lines
1.6 KiB
Java
59 lines
1.6 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.ui.DefaultIcons;
|
|
|
|
|
|
|
|
public class MapChange extends MapObject {
|
|
|
|
public String map_id = null;
|
|
public TMXMap map = null;
|
|
public String place_id = null;
|
|
|
|
public MapChange(tiled.core.MapObject obj) {
|
|
this.map_id = obj.getProperties().getProperty("map");
|
|
this.place_id = obj.getProperties().getProperty("place");
|
|
}
|
|
|
|
@Override
|
|
public void link() {
|
|
if (map_id != null) this.map = parentMap.getProject().getMap(map_id);
|
|
if (map != null) {
|
|
map.addBacklink(parentMap);
|
|
}
|
|
//TODO reinstate this if data validation system ever exist.
|
|
// else Notification.addWarn("Incomplete mapchange area \""+name+"\" in map \""+parentMap.id+"\". This is OK if it's an arrival only (no exit through this point).");
|
|
}
|
|
|
|
@Override
|
|
public Image getIcon() {
|
|
if (name != null) return DefaultIcons.getTiledIconIcon();
|
|
else return DefaultIcons.getNullifyIcon();
|
|
}
|
|
|
|
@Override
|
|
public void elementChanged(GameDataElement oldOne, GameDataElement newOne) {
|
|
if (oldOne == map) {
|
|
oldOne.removeBacklink(parentMap);
|
|
map = (TMXMap) newOne;
|
|
if (newOne != null) newOne.addBacklink(parentMap);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void savePropertiesInTmxObject(tiled.core.MapObject tmxObject) {
|
|
if (map != null) {
|
|
tmxObject.getProperties().setProperty("map", map.id);
|
|
} else if (map_id != null) {
|
|
tmxObject.getProperties().setProperty("map", map_id);
|
|
}
|
|
if (place_id != null) {
|
|
tmxObject.getProperties().setProperty("place", place_id);
|
|
}
|
|
}
|
|
|
|
}
|