esc to quit to menu
This commit is contained in:
parent
86e300ba7d
commit
b3e349d099
|
@ -37,6 +37,10 @@ package
|
||||||
else
|
else
|
||||||
this.xml = xml;
|
this.xml = xml;
|
||||||
}
|
}
|
||||||
|
public function FDirty():Boolean
|
||||||
|
{
|
||||||
|
return int(xml.@x) !== posReal.x || int(xml.@y) !== posReal.y;
|
||||||
|
}
|
||||||
public function FSelected(): Boolean
|
public function FSelected(): Boolean
|
||||||
{
|
{
|
||||||
return WorldStage(this.world).tokSelected === this;
|
return WorldStage(this.world).tokSelected === this;
|
||||||
|
@ -142,6 +146,7 @@ package
|
||||||
xml.@x = int(posReal.x);
|
xml.@x = int(posReal.x);
|
||||||
xml.@y = int(posReal.y);
|
xml.@y = int(posReal.y);
|
||||||
xml.@path = urff;
|
xml.@path = urff;
|
||||||
|
this.xml = xml;
|
||||||
return xml;
|
return xml;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ package
|
||||||
{
|
{
|
||||||
var file: File = new File(File.userDirectory.nativePath + File.separator + "NewStage.xml");
|
var file: File = new File(File.userDirectory.nativePath + File.separator + "NewStage.xml");
|
||||||
file.addEventListener(Event.SELECT, function():void {
|
file.addEventListener(Event.SELECT, function():void {
|
||||||
FP.world = new WorldStage(file.url);
|
FP.world = new WorldStage(file.url, function():World { return new WorldMenu(); });
|
||||||
});
|
});
|
||||||
|
|
||||||
return file;
|
return file;
|
||||||
|
|
|
@ -59,6 +59,7 @@ package
|
||||||
public static const LAYER_MSG: int = 70;
|
public static const LAYER_MSG: int = 70;
|
||||||
public static const LAYER_OFFSTAGE: int = 1000;
|
public static const LAYER_OFFSTAGE: int = 1000;
|
||||||
|
|
||||||
|
private var dgWorldPrev: Function;
|
||||||
private var imgdir: Imgdir;
|
private var imgdir: Imgdir;
|
||||||
private var dragView: Drag;
|
private var dragView: Drag;
|
||||||
private var urff: String;
|
private var urff: String;
|
||||||
|
@ -75,9 +76,11 @@ package
|
||||||
public var pointView: Point;
|
public var pointView: Point;
|
||||||
public var uabd: String;
|
public var uabd: String;
|
||||||
|
|
||||||
public function WorldStage(uabf: String)
|
public function WorldStage(uabf: String, dgWorldPrev: Function)
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
this.dgWorldPrev = dgWorldPrev;
|
||||||
|
|
||||||
var match:* = /(.*\/)([^\/]*)$/.exec(uabf);
|
var match:* = /(.*\/)([^\/]*)$/.exec(uabf);
|
||||||
this.uabd = match[1];
|
this.uabd = match[1];
|
||||||
this.urff = match[2];
|
this.urff = match[2];
|
||||||
|
@ -221,6 +224,7 @@ package
|
||||||
|
|
||||||
// I've passed the stage in my programming career where I would happily spend a few months designing a generic GUI library in
|
// I've passed the stage in my programming career where I would happily spend a few months designing a generic GUI library in
|
||||||
// response to this problem and consequently forget about my original goal; there are a few other projects doing that for me
|
// response to this problem and consequently forget about my original goal; there are a few other projects doing that for me
|
||||||
|
private var fForceQuit:Boolean = false;
|
||||||
override public function update():void
|
override public function update():void
|
||||||
{
|
{
|
||||||
if (Input.mouseUp && dragView !== null)
|
if (Input.mouseUp && dragView !== null)
|
||||||
|
@ -260,6 +264,30 @@ package
|
||||||
|
|
||||||
if (Input.pressed(Key.TAB))
|
if (Input.pressed(Key.TAB))
|
||||||
ToggleUI();
|
ToggleUI();
|
||||||
|
if (Input.pressed(Key.ESCAPE))
|
||||||
|
{
|
||||||
|
var fDirty:Boolean = false;
|
||||||
|
if (!fForceQuit)
|
||||||
|
{
|
||||||
|
var rgtok: Array = [];
|
||||||
|
getLayer(LAYER_TOKENS, rgtok);
|
||||||
|
for each (var tok:Token in rgtok)
|
||||||
|
{
|
||||||
|
if (tok.FDirty())
|
||||||
|
{
|
||||||
|
fDirty = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fDirty && !fForceQuit)
|
||||||
|
{
|
||||||
|
fForceQuit = true;
|
||||||
|
ShowMsg("Unsaved! Press ESC again to confirm.", function() { fForceQuit = false; });
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FP.world = dgWorldPrev();
|
||||||
|
}
|
||||||
|
|
||||||
if (Input.mouseWheel)
|
if (Input.mouseWheel)
|
||||||
{
|
{
|
||||||
|
|
6
todo.txt
6
todo.txt
|
@ -1,10 +1,12 @@
|
||||||
- decide on a license
|
- decide on a license
|
||||||
- create a readme
|
|
||||||
- push to github
|
- push to github
|
||||||
|
- JSON output?
|
||||||
|
- fixed-sized factories
|
||||||
|
|
||||||
- finalize "library" notion
|
- finalize "library" notion
|
||||||
- text objects
|
- text objects
|
||||||
- UI refactoring?
|
- UI refactoring?
|
||||||
|
- put it into a package
|
||||||
|
|
||||||
- tilemap
|
- tilemap
|
||||||
- layers
|
- layers
|
||||||
|
@ -15,3 +17,5 @@ DONE:
|
||||||
- zoom to 100% (magnifying glass icon?)
|
- zoom to 100% (magnifying glass icon?)
|
||||||
- show 0,0, maybe some other griddy options
|
- show 0,0, maybe some other griddy options
|
||||||
- fix scrollwheel sensitivity
|
- fix scrollwheel sensitivity
|
||||||
|
- create a readme
|
||||||
|
- quit to menu
|
Loading…
Reference in a new issue