openfl
Version:
A fast, productive library for 2D cross-platform development.
1,592 lines • 3.58 MB
JavaScript
// Generated by Haxe 4.0.5
(function ($global) { "use strict";
var $hxClasses = {},$estr = function() { return js_Boot.__string_rec(this,''); },$hxEnums = $hxEnums || {},$_;
function $extend(from, fields) {
var proto = Object.create(from);
for (var name in fields) proto[name] = fields[name];
if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString;
return proto;
}
var EReg = function(r,opt) {
this.r = new RegExp(r,opt.split("u").join(""));
};
$hxClasses["EReg"] = EReg;
EReg.__name__ = "EReg";
EReg.prototype = {
r: null
,match: function(s) {
if(this.r.global) {
this.r.lastIndex = 0;
}
this.r.m = this.r.exec(s);
this.r.s = s;
return this.r.m != null;
}
,matched: function(n) {
if(this.r.m != null && n >= 0 && n < this.r.m.length) {
return this.r.m[n];
} else {
throw new js__$Boot_HaxeError("EReg::matched");
}
}
,matchedLeft: function() {
if(this.r.m == null) {
throw new js__$Boot_HaxeError("No string matched");
}
return HxOverrides.substr(this.r.s,0,this.r.m.index);
}
,matchedRight: function() {
if(this.r.m == null) {
throw new js__$Boot_HaxeError("No string matched");
}
var sz = this.r.m.index + this.r.m[0].length;
return HxOverrides.substr(this.r.s,sz,this.r.s.length - sz);
}
,matchedPos: function() {
if(this.r.m == null) {
throw new js__$Boot_HaxeError("No string matched");
}
return { pos : this.r.m.index, len : this.r.m[0].length};
}
,matchSub: function(s,pos,len) {
if(len == null) {
len = -1;
}
if(this.r.global) {
this.r.lastIndex = pos;
this.r.m = this.r.exec(len < 0 ? s : HxOverrides.substr(s,0,pos + len));
var b = this.r.m != null;
if(b) {
this.r.s = s;
}
return b;
} else {
var b1 = this.match(len < 0 ? HxOverrides.substr(s,pos,null) : HxOverrides.substr(s,pos,len));
if(b1) {
this.r.s = s;
this.r.m.index += pos;
}
return b1;
}
}
,split: function(s) {
var d = "#__delim__#";
return s.replace(this.r,d).split(d);
}
,map: function(s,f) {
var offset = 0;
var buf_b = "";
while(true) {
if(offset >= s.length) {
break;
} else if(!this.matchSub(s,offset)) {
buf_b += Std.string(HxOverrides.substr(s,offset,null));
break;
}
var p = this.matchedPos();
buf_b += Std.string(HxOverrides.substr(s,offset,p.pos - offset));
buf_b += Std.string(f(this));
if(p.len == 0) {
buf_b += Std.string(HxOverrides.substr(s,p.pos,1));
offset = p.pos + 1;
} else {
offset = p.pos + p.len;
}
if(!this.r.global) {
break;
}
}
if(!this.r.global && offset > 0 && offset < s.length) {
buf_b += Std.string(HxOverrides.substr(s,offset,null));
}
return buf_b;
}
,__class__: EReg
};
var HxOverrides = function() { };
$hxClasses["HxOverrides"] = HxOverrides;
HxOverrides.__name__ = "HxOverrides";
HxOverrides.dateStr = function(date) {
var m = date.getMonth() + 1;
var d = date.getDate();
var h = date.getHours();
var mi = date.getMinutes();
var s = date.getSeconds();
return date.getFullYear() + "-" + (m < 10 ? "0" + m : "" + m) + "-" + (d < 10 ? "0" + d : "" + d) + " " + (h < 10 ? "0" + h : "" + h) + ":" + (mi < 10 ? "0" + mi : "" + mi) + ":" + (s < 10 ? "0" + s : "" + s);
};
HxOverrides.strDate = function(s) {
switch(s.length) {
case 8:
var k = s.split(":");
var d = new Date();
d["setTime"](0);
d["setUTCHours"](k[0]);
d["setUTCMinutes"](k[1]);
d["setUTCSeconds"](k[2]);
return d;
case 10:
var k1 = s.split("-");
return new Date(k1[0],k1[1] - 1,k1[2],0,0,0);
case 19:
var k2 = s.split(" ");
var y = k2[0].split("-");
var t = k2[1].split(":");
return new Date(y[0],y[1] - 1,y[2],t[0],t[1],t[2]);
default:
throw new js__$Boot_HaxeError("Invalid date format : " + s);
}
};
HxOverrides.cca = function(s,index) {
var x = s.charCodeAt(index);
if(x != x) {
return undefined;
}
return x;
};
HxOverrides.substr = function(s,pos,len) {
if(len == null) {
len = s.length;
} else if(len < 0) {
if(pos == 0) {
len = s.length + len;
} else {
return "";
}
}
return s.substr(pos,len);
};
HxOverrides.remove = function(a,obj) {
var i = a.indexOf(obj);
if(i == -1) {
return false;
}
a.splice(i,1);
return true;
};
HxOverrides.iter = function(a) {
return { cur : 0, arr : a, hasNext : function() {
return this.cur < this.arr.length;
}, next : function() {
return this.arr[this.cur++];
}};
};
var Lambda = function() { };
$hxClasses["Lambda"] = Lambda;
Lambda.__name__ = "Lambda";
Lambda.array = function(it) {
var a = [];
var i = $getIterator(it);
while(i.hasNext()) {
var i1 = i.next();
a.push(i1);
}
return a;
};
Lambda.count = function(it,pred) {
var n = 0;
if(pred == null) {
var _ = $getIterator(it);
while(_.hasNext()) {
var _1 = _.next();
++n;
}
} else {
var x = $getIterator(it);
while(x.hasNext()) {
var x1 = x.next();
if(pred(x1)) {
++n;
}
}
}
return n;
};
Math.__name__ = "Math";
var Reflect = function() { };
$hxClasses["Reflect"] = Reflect;
Reflect.__name__ = "Reflect";
Reflect.field = function(o,field) {
try {
return o[field];
} catch( e ) {
haxe_CallStack.lastException = e;
var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
return null;
}
};
Reflect.getProperty = function(o,field) {
var tmp;
if(o == null) {
return null;
} else {
var tmp1;
if(o.__properties__) {
tmp = o.__properties__["get_" + field];
tmp1 = tmp;
} else {
tmp1 = false;
}
if(tmp1) {
return o[tmp]();
} else {
return o[field];
}
}
};
Reflect.setProperty = function(o,field,value) {
var tmp;
var tmp1;
if(o.__properties__) {
tmp = o.__properties__["set_" + field];
tmp1 = tmp;
} else {
tmp1 = false;
}
if(tmp1) {
o[tmp](value);
} else {
o[field] = value;
}
};
Reflect.fields = function(o) {
var a = [];
if(o != null) {
var hasOwnProperty = Object.prototype.hasOwnProperty;
for( var f in o ) {
if(f != "__id__" && f != "hx__closures__" && hasOwnProperty.call(o,f)) {
a.push(f);
}
}
}
return a;
};
Reflect.isFunction = function(f) {
if(typeof(f) == "function") {
return !(f.__name__ || f.__ename__);
} else {
return false;
}
};
Reflect.compare = function(a,b) {
if(a == b) {
return 0;
} else if(a > b) {
return 1;
} else {
return -1;
}
};
Reflect.compareMethods = function(f1,f2) {
if(f1 == f2) {
return true;
}
if(!Reflect.isFunction(f1) || !Reflect.isFunction(f2)) {
return false;
}
if(f1.scope == f2.scope && f1.method == f2.method) {
return f1.method != null;
} else {
return false;
}
};
Reflect.isObject = function(v) {
if(v == null) {
return false;
}
var t = typeof(v);
if(!(t == "string" || t == "object" && v.__enum__ == null)) {
if(t == "function") {
return (v.__name__ || v.__ename__) != null;
} else {
return false;
}
} else {
return true;
}
};
Reflect.isEnumValue = function(v) {
if(v != null) {
return v.__enum__ != null;
} else {
return false;
}
};
Reflect.deleteField = function(o,field) {
if(!Object.prototype.hasOwnProperty.call(o,field)) {
return false;
}
delete(o[field]);
return true;
};
Reflect.makeVarArgs = function(f) {
return function() {
var a = Array.prototype.slice.call(arguments);
return f(a);
};
};
var Std = function() { };
$hxClasses["Std"] = Std;
Std.__name__ = "Std";
Std.string = function(s) {
return js_Boot.__string_rec(s,"");
};
Std.parseInt = function(x) {
if(x != null) {
var _g = 0;
var _g1 = x.length;
while(_g < _g1) {
var i = _g++;
var c = x.charCodeAt(i);
if(c <= 8 || c >= 14 && c != 32 && c != 45) {
var v = parseInt(x, (x[(i + 1)]=="x" || x[(i + 1)]=="X") ? 16 : 10);
if(isNaN(v)) {
return null;
} else {
return v;
}
}
}
}
return null;
};
var _$String_String_$Impl_$ = function() { };
$hxClasses["_String.String_Impl_"] = _$String_String_$Impl_$;
_$String_String_$Impl_$.__name__ = "_String.String_Impl_";
_$String_String_$Impl_$.fromCharCode = function(code) {
return String.fromCodePoint(code);
};
var StringBuf = function() {
this.b = "";
};
$hxClasses["StringBuf"] = StringBuf;
StringBuf.__name__ = "StringBuf";
StringBuf.prototype = {
b: null
,__class__: StringBuf
};
var StringTools = function() { };
$hxClasses["StringTools"] = StringTools;
StringTools.__name__ = "StringTools";
StringTools.htmlEscape = function(s,quotes) {
var buf_b = "";
var _g_offset = 0;
var _g_s = s;
while(_g_offset < _g_s.length) {
var s1 = _g_s;
var index = _g_offset++;
var c = s1.charCodeAt(index);
if(c >= 55296 && c <= 56319) {
c = c - 55232 << 10 | s1.charCodeAt(index + 1) & 1023;
}
var c1 = c;
if(c1 >= 65536) {
++_g_offset;
}
var code = c1;
switch(code) {
case 34:
if(quotes) {
buf_b += """;
} else {
buf_b += String.fromCodePoint(code);
}
break;
case 38:
buf_b += "&";
break;
case 39:
if(quotes) {
buf_b += "'";
} else {
buf_b += String.fromCodePoint(code);
}
break;
case 60:
buf_b += "<";
break;
case 62:
buf_b += ">";
break;
default:
buf_b += String.fromCodePoint(code);
}
}
return buf_b;
};
StringTools.htmlUnescape = function(s) {
return s.split(">").join(">").split("<").join("<").split(""").join("\"").split("'").join("'").split("&").join("&");
};
StringTools.startsWith = function(s,start) {
if(s.length >= start.length) {
return s.lastIndexOf(start,0) == 0;
} else {
return false;
}
};
StringTools.endsWith = function(s,end) {
var elen = end.length;
var slen = s.length;
if(slen >= elen) {
return s.indexOf(end,slen - elen) == slen - elen;
} else {
return false;
}
};
StringTools.isSpace = function(s,pos) {
var c = HxOverrides.cca(s,pos);
if(!(c > 8 && c < 14)) {
return c == 32;
} else {
return true;
}
};
StringTools.ltrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,r)) ++r;
if(r > 0) {
return HxOverrides.substr(s,r,l - r);
} else {
return s;
}
};
StringTools.rtrim = function(s) {
var l = s.length;
var r = 0;
while(r < l && StringTools.isSpace(s,l - r - 1)) ++r;
if(r > 0) {
return HxOverrides.substr(s,0,l - r);
} else {
return s;
}
};
StringTools.trim = function(s) {
return StringTools.ltrim(StringTools.rtrim(s));
};
StringTools.lpad = function(s,c,l) {
if(c.length <= 0) {
return s;
}
var buf_b = "";
l -= s.length;
while(buf_b.length < l) buf_b += c == null ? "null" : "" + c;
buf_b += s == null ? "null" : "" + s;
return buf_b;
};
StringTools.rpad = function(s,c,l) {
if(c.length <= 0) {
return s;
}
var buf_b = "";
buf_b += s == null ? "null" : "" + s;
while(buf_b.length < l) buf_b += c == null ? "null" : "" + c;
return buf_b;
};
StringTools.replace = function(s,sub,by) {
return s.split(sub).join(by);
};
StringTools.hex = function(n,digits) {
var s = "";
var hexChars = "0123456789ABCDEF";
while(true) {
s = hexChars.charAt(n & 15) + s;
n >>>= 4;
if(!(n > 0)) {
break;
}
}
if(digits != null) {
while(s.length < digits) s = "0" + s;
}
return s;
};
var Sys = function() { };
$hxClasses["Sys"] = Sys;
Sys.__name__ = "Sys";
Sys.environment = function() {
var m = new haxe_ds_StringMap();
var _g = 0;
var _g1 = Reflect.fields(process.env);
while(_g < _g1.length) {
var key = _g1[_g];
++_g;
var v = process.env[key];
if(__map_reserved[key] != null) {
m.setReserved(key,v);
} else {
m.h[key] = v;
}
}
return m;
};
Sys.systemName = function() {
var _g = process.platform;
switch(_g) {
case "darwin":
return "Mac";
case "freebsd":
return "BSD";
case "linux":
return "Linux";
case "win32":
return "Windows";
default:
var other = _g;
return other;
}
};
var haxe_io_Output = function() { };
$hxClasses["haxe.io.Output"] = haxe_io_Output;
haxe_io_Output.__name__ = "haxe.io.Output";
haxe_io_Output.prototype = {
bigEndian: null
,writeByte: function(c) {
throw new js__$Boot_HaxeError("Not implemented");
}
,writeBytes: function(s,pos,len) {
if(pos < 0 || len < 0 || pos + len > s.length) {
throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);
}
var b = s.b;
var k = len;
while(k > 0) {
this.writeByte(b[pos]);
++pos;
--k;
}
return len;
}
,set_bigEndian: function(b) {
this.bigEndian = b;
return b;
}
,write: function(s) {
var l = s.length;
var p = 0;
while(l > 0) {
var k = this.writeBytes(s,p,l);
if(k == 0) {
throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);
}
p += k;
l -= k;
}
}
,writeFullBytes: function(s,pos,len) {
while(len > 0) {
var k = this.writeBytes(s,pos,len);
pos += k;
len -= k;
}
}
,writeDouble: function(x) {
var i64 = haxe_io_FPHelper.doubleToI64(x);
if(this.bigEndian) {
this.writeInt32(i64.high);
this.writeInt32(i64.low);
} else {
this.writeInt32(i64.low);
this.writeInt32(i64.high);
}
}
,writeUInt16: function(x) {
if(x < 0 || x >= 65536) {
throw new js__$Boot_HaxeError(haxe_io_Error.Overflow);
}
if(this.bigEndian) {
this.writeByte(x >> 8);
this.writeByte(x & 255);
} else {
this.writeByte(x & 255);
this.writeByte(x >> 8);
}
}
,writeInt32: function(x) {
if(this.bigEndian) {
this.writeByte(x >>> 24);
this.writeByte(x >> 16 & 255);
this.writeByte(x >> 8 & 255);
this.writeByte(x & 255);
} else {
this.writeByte(x & 255);
this.writeByte(x >> 8 & 255);
this.writeByte(x >> 16 & 255);
this.writeByte(x >>> 24);
}
}
,writeInput: function(i,bufsize) {
if(bufsize == null) {
bufsize = 4096;
}
var buf = new haxe_io_Bytes(new ArrayBuffer(bufsize));
try {
while(true) {
var len = i.readBytes(buf,0,bufsize);
if(len == 0) {
throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);
}
var p = 0;
while(len > 0) {
var k = this.writeBytes(buf,p,len);
if(k == 0) {
throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);
}
p += k;
len -= k;
}
}
} catch( e ) {
haxe_CallStack.lastException = e;
var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
if(((e1) instanceof haxe_io_Eof)) {
var e2 = e1;
} else {
throw e;
}
}
}
,writeString: function(s,encoding) {
var b = haxe_io_Bytes.ofString(s,encoding);
this.writeFullBytes(b,0,b.length);
}
,__class__: haxe_io_Output
,__properties__: {set_bigEndian:"set_bigEndian"}
};
var _$Sys_FileOutput = function(fd) {
this.fd = fd;
};
$hxClasses["_Sys.FileOutput"] = _$Sys_FileOutput;
_$Sys_FileOutput.__name__ = "_Sys.FileOutput";
_$Sys_FileOutput.__super__ = haxe_io_Output;
_$Sys_FileOutput.prototype = $extend(haxe_io_Output.prototype,{
fd: null
,writeByte: function(c) {
js_node_Fs.writeSync(this.fd,String.fromCodePoint(c));
}
,writeBytes: function(s,pos,len) {
var data = s.b;
return js_node_Fs.writeSync(this.fd,js_node_buffer_Buffer.from(data.buffer,data.byteOffset,s.length),pos,len);
}
,writeString: function(s,encoding) {
js_node_Fs.writeSync(this.fd,s);
}
,flush: function() {
js_node_Fs.fsyncSync(this.fd);
}
,close: function() {
js_node_Fs.closeSync(this.fd);
}
,__class__: _$Sys_FileOutput
});
var haxe_io_Input = function() { };
$hxClasses["haxe.io.Input"] = haxe_io_Input;
haxe_io_Input.__name__ = "haxe.io.Input";
haxe_io_Input.prototype = {
bigEndian: null
,readByte: function() {
throw new js__$Boot_HaxeError("Not implemented");
}
,readBytes: function(s,pos,len) {
var k = len;
var b = s.b;
if(pos < 0 || len < 0 || pos + len > s.length) {
throw new js__$Boot_HaxeError(haxe_io_Error.OutsideBounds);
}
try {
while(k > 0) {
b[pos] = this.readByte();
++pos;
--k;
}
} catch( eof ) {
haxe_CallStack.lastException = eof;
var eof1 = ((eof) instanceof js__$Boot_HaxeError) ? eof.val : eof;
if(((eof1) instanceof haxe_io_Eof)) {
var eof2 = eof1;
} else {
throw eof;
}
}
return len - k;
}
,set_bigEndian: function(b) {
this.bigEndian = b;
return b;
}
,readAll: function(bufsize) {
if(bufsize == null) {
bufsize = 16384;
}
var buf = new haxe_io_Bytes(new ArrayBuffer(bufsize));
var total = new haxe_io_BytesBuffer();
try {
while(true) {
var len = this.readBytes(buf,0,bufsize);
if(len == 0) {
throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);
}
total.addBytes(buf,0,len);
}
} catch( e ) {
haxe_CallStack.lastException = e;
var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
if(((e1) instanceof haxe_io_Eof)) {
var e2 = e1;
} else {
throw e;
}
}
return total.getBytes();
}
,readFullBytes: function(s,pos,len) {
while(len > 0) {
var k = this.readBytes(s,pos,len);
if(k == 0) {
throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);
}
pos += k;
len -= k;
}
}
,read: function(nbytes) {
var s = new haxe_io_Bytes(new ArrayBuffer(nbytes));
var p = 0;
while(nbytes > 0) {
var k = this.readBytes(s,p,nbytes);
if(k == 0) {
throw new js__$Boot_HaxeError(haxe_io_Error.Blocked);
}
p += k;
nbytes -= k;
}
return s;
}
,readLine: function() {
var buf = new haxe_io_BytesBuffer();
var last;
var s;
try {
while(true) {
last = this.readByte();
if(!(last != 10)) {
break;
}
buf.addByte(last);
}
s = buf.getBytes().toString();
if(HxOverrides.cca(s,s.length - 1) == 13) {
s = HxOverrides.substr(s,0,-1);
}
} catch( e ) {
haxe_CallStack.lastException = e;
var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
if(((e1) instanceof haxe_io_Eof)) {
s = buf.getBytes().toString();
if(s.length == 0) {
throw new js__$Boot_HaxeError(e1);
}
} else {
throw e;
}
}
return s;
}
,readFloat: function() {
return haxe_io_FPHelper.i32ToFloat(this.readInt32());
}
,readDouble: function() {
var i1 = this.readInt32();
var i2 = this.readInt32();
if(this.bigEndian) {
return haxe_io_FPHelper.i64ToDouble(i2,i1);
} else {
return haxe_io_FPHelper.i64ToDouble(i1,i2);
}
}
,readInt8: function() {
var n = this.readByte();
if(n >= 128) {
return n - 256;
}
return n;
}
,readInt16: function() {
var ch1 = this.readByte();
var ch2 = this.readByte();
var n = this.bigEndian ? ch2 | ch1 << 8 : ch1 | ch2 << 8;
if((n & 32768) != 0) {
return n - 65536;
}
return n;
}
,readUInt16: function() {
var ch1 = this.readByte();
var ch2 = this.readByte();
if(this.bigEndian) {
return ch2 | ch1 << 8;
} else {
return ch1 | ch2 << 8;
}
}
,readInt24: function() {
var ch1 = this.readByte();
var ch2 = this.readByte();
var ch3 = this.readByte();
var n = this.bigEndian ? ch3 | ch2 << 8 | ch1 << 16 : ch1 | ch2 << 8 | ch3 << 16;
if((n & 8388608) != 0) {
return n - 16777216;
}
return n;
}
,readInt32: function() {
var ch1 = this.readByte();
var ch2 = this.readByte();
var ch3 = this.readByte();
var ch4 = this.readByte();
if(this.bigEndian) {
return ch4 | ch3 << 8 | ch2 << 16 | ch1 << 24;
} else {
return ch1 | ch2 << 8 | ch3 << 16 | ch4 << 24;
}
}
,readString: function(len,encoding) {
var b = new haxe_io_Bytes(new ArrayBuffer(len));
this.readFullBytes(b,0,len);
return b.getString(0,len,encoding);
}
,__class__: haxe_io_Input
,__properties__: {set_bigEndian:"set_bigEndian"}
};
var _$Sys_FileInput = function(fd) {
this.fd = fd;
};
$hxClasses["_Sys.FileInput"] = _$Sys_FileInput;
_$Sys_FileInput.__name__ = "_Sys.FileInput";
_$Sys_FileInput.__super__ = haxe_io_Input;
_$Sys_FileInput.prototype = $extend(haxe_io_Input.prototype,{
fd: null
,readByte: function() {
var buf = js_node_buffer_Buffer.alloc(1);
try {
js_node_Fs.readSync(this.fd,buf,0,1,null);
} catch( e ) {
haxe_CallStack.lastException = e;
var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
if(e1.code == "EOF") {
throw new js__$Boot_HaxeError(new haxe_io_Eof());
} else {
throw new js__$Boot_HaxeError(haxe_io_Error.Custom(e1));
}
}
return buf[0];
}
,readBytes: function(s,pos,len) {
var data = s.b;
var buf = js_node_buffer_Buffer.from(data.buffer,data.byteOffset,s.length);
try {
return js_node_Fs.readSync(this.fd,buf,pos,len,null);
} catch( e ) {
haxe_CallStack.lastException = e;
var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
if(e1.code == "EOF") {
throw new js__$Boot_HaxeError(new haxe_io_Eof());
} else {
throw new js__$Boot_HaxeError(haxe_io_Error.Custom(e1));
}
}
}
,close: function() {
js_node_Fs.closeSync(this.fd);
}
,__class__: _$Sys_FileInput
});
var Tools = function() { };
$hxClasses["Tools"] = Tools;
Tools.__name__ = "Tools";
Tools.formatClassName = function(className,prefix) {
if(className == null) {
return null;
}
if(prefix == null) {
prefix = "";
}
var lastIndexOfPeriod = className.lastIndexOf(".");
var packageName = "";
var name = "";
if(lastIndexOfPeriod == -1) {
name = prefix + className;
} else {
packageName = HxOverrides.substr(className,0,lastIndexOfPeriod);
name = prefix + HxOverrides.substr(className,lastIndexOfPeriod + 1,null);
}
packageName = packageName.charAt(0).toLowerCase() + HxOverrides.substr(packageName,1,null);
name = HxOverrides.substr(name,0,1).toUpperCase() + HxOverrides.substr(name,1,null);
if(packageName != "") {
return hxp_StringTools.trim(packageName + "." + name);
} else {
return hxp_StringTools.trim(name);
}
};
Tools.generateSWFClasses = function(project,output,swfAsset,prefix) {
if(prefix == null) {
prefix = "";
}
var bitmapDataTemplate = js_node_Fs.readFileSync(hxp_Haxelib.getPath(new hxp_Haxelib("openfl"),true) + "/assets/templates/swf/BitmapData.mtt",{ encoding : "utf8"});
var movieClipTemplate = js_node_Fs.readFileSync(hxp_Haxelib.getPath(new hxp_Haxelib("openfl"),true) + "/assets/templates/swf/MovieClip.mtt",{ encoding : "utf8"});
var simpleButtonTemplate = js_node_Fs.readFileSync(hxp_Haxelib.getPath(new hxp_Haxelib("openfl"),true) + "/assets/templates/swf/SimpleButton.mtt",{ encoding : "utf8"});
var swf1 = new swf_SWF(openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(js_node_buffer__$Buffer_Helper.bytesOfBuffer(js_node_Fs.readFileSync(swfAsset.sourcePath))));
if(prefix != "" && prefix != null) {
prefix = HxOverrides.substr(prefix,0,1).toUpperCase() + HxOverrides.substr(prefix,1,null);
}
var generatedClasses = [];
var classLookupMap_h = { };
var className = swf1.symbols.keys();
while(className.hasNext()) {
var className1 = className.next();
var _this = swf1.symbols;
classLookupMap_h[__map_reserved[className1] != null ? _this.getReserved(className1) : _this.h[className1]] = className1;
}
var className2 = swf1.symbols.keys();
while(className2.hasNext()) {
var className3 = className2.next();
if(className3 == null) {
continue;
}
var lastIndexOfPeriod = className3.lastIndexOf(".");
var packageName = "";
var name = "";
if(lastIndexOfPeriod == -1) {
name = className3;
} else {
packageName = HxOverrides.substr(className3,0,lastIndexOfPeriod);
name = HxOverrides.substr(className3,lastIndexOfPeriod + 1,null);
}
packageName = packageName.charAt(0).toLowerCase() + HxOverrides.substr(packageName,1,null);
name = Tools.formatClassName(name,prefix);
var _this1 = swf1.symbols;
var symbolID = __map_reserved[className3] != null ? _this1.getReserved(className3) : _this1.h[className3];
var templateData = null;
var symbol = swf1.data.getCharacter(symbolID);
var baseClassName = null;
if(((symbol) instanceof swf_tags_TagDefineBits) || ((symbol) instanceof swf_tags_TagDefineBitsJPEG2) || ((symbol) instanceof swf_tags_TagDefineBitsLossless)) {
templateData = bitmapDataTemplate;
baseClassName = "openfl.display.BitmapData";
} else if(((symbol) instanceof swf_tags_TagDefineButton2)) {
templateData = simpleButtonTemplate;
baseClassName = "openfl.display.SimpleButton";
} else if(((symbol) instanceof swf_SWFTimelineContainer)) {
templateData = movieClipTemplate;
baseClassName = "openfl.display.MovieClip";
}
var classData = swf_exporters_AVM2.findClassByName(swf1.data.abcData,className3);
if(classData != null) {
if(classData.superclass != null) {
var superClassData = swf_exporters_AVM2.resolveMultiNameByIndex(swf1.data.abcData,classData.superclass);
var _g = superClassData.nameSpace;
if(_g._hx_index == 2) {
var _g1 = _g.ns;
if(!new EReg("^flash\\.","").match(superClassData.nameSpaceName)) {
baseClassName = ("" == superClassData.nameSpaceName ? "" : superClassData.nameSpaceName + ".") + superClassData.name;
}
}
}
}
if(templateData != null) {
var classProperties = [];
var objectReferences = new haxe_ds_StringMap();
if(((symbol) instanceof swf_SWFTimelineContainer)) {
var timelineContainer = symbol;
if(timelineContainer.frames.length > 0) {
var _g2 = 0;
var _g11 = timelineContainer.frames;
while(_g2 < _g11.length) {
var frame = _g11[_g2];
++_g2;
var frameObject = frame.objects.iterator();
while(frameObject.hasNext()) {
var frameObject1 = frameObject.next();
var placeObject = timelineContainer.tags[frameObject1.placedAtIndex];
var tmp;
if(placeObject != null && placeObject.instanceName != null) {
var key = placeObject.instanceName;
tmp = !(__map_reserved[key] != null ? objectReferences.existsReserved(key) : objectReferences.h.hasOwnProperty(key));
} else {
tmp = false;
}
if(tmp) {
var id = frameObject1.characterId;
var childSymbol = timelineContainer.getCharacter(id);
var className4 = null;
if(classLookupMap_h.hasOwnProperty(id)) {
className4 = classLookupMap_h[id];
}
if(childSymbol != null) {
if(className4 == null) {
if(((childSymbol) instanceof swf_tags_TagDefineSprite)) {
className4 = "openfl.display.MovieClip";
} else if(((childSymbol) instanceof swf_tags_TagDefineBits) || ((childSymbol) instanceof swf_tags_TagDefineBitsJPEG2) || ((childSymbol) instanceof swf_tags_TagDefineBitsLossless)) {
className4 = "openfl.display.BitmapData";
} else if(((childSymbol) instanceof swf_tags_TagDefineShape) || ((childSymbol) instanceof swf_tags_TagDefineMorphShape)) {
className4 = "openfl.display.Shape";
} else if(((childSymbol) instanceof swf_tags_TagDefineText) || ((childSymbol) instanceof swf_tags_TagDefineEditText)) {
className4 = "openfl.text.TextField";
} else if(((childSymbol) instanceof swf_tags_TagDefineButton2)) {
className4 = "openfl.display.SimpleButton";
}
} else {
className4 = Tools.formatClassName(className4,prefix);
}
var tmp1;
if(className4 != null) {
var key1 = placeObject.instanceName;
tmp1 = !(__map_reserved[key1] != null ? objectReferences.existsReserved(key1) : objectReferences.h.hasOwnProperty(key1));
} else {
tmp1 = false;
}
if(tmp1) {
var k = placeObject.instanceName;
if(__map_reserved[k] != null) {
objectReferences.setReserved(k,true);
} else {
objectReferences.h[k] = true;
}
classProperties.push({ name : placeObject.instanceName, type : className4});
}
}
}
}
}
}
}
var context = { PACKAGE_NAME : packageName, NATIVE_CLASS_NAME : hxp_StringTools.trim(className3), CLASS_NAME : name, BASE_CLASS_NAME : baseClassName, SWF_ID : swfAsset.id, SYMBOL_ID : symbolID, PREFIX : "", CLASS_PROPERTIES : classProperties};
var template = new haxe_Template(templateData);
var targetPath = "../haxe/_generated";
var templateFile = new lime_tools_Asset("",hxp_Path.combine(targetPath,hxp_Path.directory(className3.split(".").join("/"))) + "/" + prefix + name + ".hx",lime_tools_AssetType.TEMPLATE);
templateFile.data = template.execute(context);
output.assets.push(templateFile);
generatedClasses.push((packageName.length > 0 ? packageName + "." : "") + name);
}
}
return generatedClasses;
};
Tools.generateSWFLiteClasses = function(targetPath,output,swfLite,swfID,prefix) {
if(prefix == null) {
prefix = "";
}
var bitmapDataTemplate = js_node_Fs.readFileSync(hxp_Path.combine(__dirname,"../assets/templates/swf/BitmapData.mtt"),{ encoding : "utf8"});
var movieClipTemplate = js_node_Fs.readFileSync(hxp_Path.combine(__dirname,"../assets/templates/swf/MovieClip.mtt"),{ encoding : "utf8"});
var simpleButtonTemplate = js_node_Fs.readFileSync(hxp_Path.combine(__dirname,"../assets/templates/swf/SimpleButton.mtt"),{ encoding : "utf8"});
var generatedClasses = [];
var symbolID = swfLite.symbols.keys();
while(symbolID.hasNext()) {
var symbolID1 = symbolID.next();
var symbol = swfLite.symbols.h[symbolID1];
var templateData = null;
var baseClassName = null;
if(((symbol) instanceof swf_exporters_swflite_BitmapSymbol)) {
templateData = bitmapDataTemplate;
baseClassName = "openfl.display.BitmapData";
} else if(((symbol) instanceof swf_exporters_swflite_SpriteSymbol)) {
templateData = movieClipTemplate;
if((js_Boot.__cast(symbol , swf_exporters_swflite_SpriteSymbol)).baseClassName != null) {
baseClassName = (js_Boot.__cast(symbol , swf_exporters_swflite_SpriteSymbol)).baseClassName;
} else {
baseClassName = "openfl.display.MovieClip";
}
} else if(((symbol) instanceof swf_exporters_swflite_ButtonSymbol)) {
templateData = simpleButtonTemplate;
baseClassName = "openfl.display.SimpleButton";
}
if(templateData != null && symbol.className != null) {
var className = symbol.className;
var name = className;
var packageName = "";
var lastIndexOfPeriod = className.lastIndexOf(".");
if(lastIndexOfPeriod > -1) {
packageName = HxOverrides.substr(className,0,lastIndexOfPeriod);
if(packageName.length > 0) {
packageName = packageName.charAt(0).toLowerCase() + HxOverrides.substr(packageName,1,null);
}
name = HxOverrides.substr(className,lastIndexOfPeriod + 1,null);
}
var classProperties = [];
var objectReferences = new haxe_ds_StringMap();
if(((symbol) instanceof swf_exporters_swflite_SpriteSymbol)) {
var spriteSymbol = symbol;
if(spriteSymbol.frames.length > 0 && Object.prototype.hasOwnProperty.call(spriteSymbol.frames[0],"objects")) {
var _g = 0;
var _g1 = spriteSymbol.frames;
while(_g < _g1.length) {
var frame = _g1[_g];
++_g;
if(frame.objects != null) {
var _g2 = 0;
var _g11 = frame.objects;
while(_g2 < _g11.length) {
var object = _g11[_g2];
++_g2;
var tmp;
if(object.name != null) {
var key = object.name;
tmp = !(__map_reserved[key] != null ? objectReferences.existsReserved(key) : objectReferences.h.hasOwnProperty(key));
} else {
tmp = false;
}
if(tmp) {
if(swfLite.symbols.h.hasOwnProperty(object.symbol)) {
var childSymbol = swfLite.symbols.h[object.symbol];
var className1 = childSymbol.className;
if(className1 == null) {
if(((childSymbol) instanceof swf_exporters_swflite_SpriteSymbol)) {
className1 = "openfl.display.MovieClip";
} else if(((childSymbol) instanceof swf_tags_TagDefineBits) || ((childSymbol) instanceof swf_tags_TagDefineBitsJPEG2) || ((childSymbol) instanceof swf_tags_TagDefineBitsLossless)) {
className1 = "openfl.display.BitmapData";
} else if(((childSymbol) instanceof swf_exporters_swflite_ShapeSymbol)) {
className1 = "openfl.display.Shape";
} else if(((childSymbol) instanceof swf_exporters_swflite_BitmapSymbol)) {
className1 = "openfl.display.Bitmap";
} else if(((childSymbol) instanceof swf_exporters_swflite_DynamicTextSymbol) || ((childSymbol) instanceof swf_exporters_swflite_StaticTextSymbol)) {
className1 = "openfl.text.TextField";
} else if(((childSymbol) instanceof swf_exporters_swflite_ButtonSymbol)) {
className1 = "openfl.display.SimpleButton";
}
}
if(className1 != null) {
var k = object.name;
if(__map_reserved[k] != null) {
objectReferences.setReserved(k,true);
} else {
objectReferences.h[k] = true;
}
classProperties.push({ name : object.name, type : className1});
}
}
}
}
}
}
}
}
var context = { PACKAGE_NAME : packageName, NATIVE_CLASS_NAME : className, CLASS_NAME : name, BASE_CLASS_NAME : baseClassName, SWF_ID : swfID, SYMBOL_ID : symbolID1, PREFIX : "", CLASS_PROPERTIES : classProperties};
var template = new haxe_Template(templateData);
var templateFile = new lime_tools_Asset("",hxp_Path.combine(targetPath,hxp_Path.directory(symbol.className.split(".").join("/"))) + "/" + name + ".hx",lime_tools_AssetType.TEMPLATE);
templateFile.data = template.execute(context);
output.push(templateFile);
generatedClasses.push((packageName.length > 0 ? packageName + "." : "") + name);
}
}
return generatedClasses;
};
Tools.main = function() {
var $arguments = process.argv.slice(2);
$arguments.shift();
$arguments.shift();
var words = [];
Tools.targetFlags = new haxe_ds_StringMap();
var _g = 0;
while(_g < $arguments.length) {
var argument = $arguments[_g];
++_g;
if(HxOverrides.substr(argument,0,1) == "-") {
if(HxOverrides.substr(argument,1,1) == "-") {
var equals = argument.indexOf("=");
if(equals > -1) {
var field = HxOverrides.substr(argument,2,equals - 2);
var argValue = HxOverrides.substr(argument,equals + 1,null);
switch(field) {
case "prefix":
Tools.filePrefix = argValue;
break;
case "targetDirectory":
Tools.targetDirectory = argValue;
break;
default:
}
}
} else {
if(argument == "-v" || argument == "-verbose") {
argument = "-verbose";
hxp_Log.verbose = true;
}
var key = HxOverrides.substr(argument,1,null);
var _this = Tools.targetFlags;
if(__map_reserved[key] != null) {
_this.setReserved(key,"");
} else {
_this.h[key] = "";
}
}
} else {
words.push(argument);
}
}
if(words[0] == "process") {
if(words.length == 1) {
hxp_Log.error("Incorrect number of arguments for command 'process'");
return;
}
var inputPath = words[1];
var outputPath = words.length > 2 ? words[2] : null;
if(words.length == 1 || hxp_Path.extension(inputPath) == "swf") {
if(words.length > 3) {
hxp_Log.error("Incorrect number of arguments for command 'process'");
return;
}
hxp_Log.info("",hxp_Log.accentColor + "Running command: PROCESS" + hxp_Log.resetColor);
Tools.processFile(inputPath,outputPath,Tools.filePrefix);
} else if(words.length > 2) {
try {
var projectData = js_node_Fs.readFileSync(inputPath,{ encoding : "utf8"});
var unserializer = new haxe_Unserializer(projectData);
unserializer.setResolver({ resolveEnum : Type.resolveEnum, resolveClass : Tools.resolveClass});
var project = unserializer.unserialize();
var output = Tools.processLibraries(project);
if(output != null) {
js_node_Fs.writeFileSync(outputPath,haxe_Serializer.run(output));
}
} catch( e ) {
haxe_CallStack.lastException = e;
hxp_Log.error(((e) instanceof js__$Boot_HaxeError) ? e.val : e);
}
}
}
};
Tools.processFile = function(sourcePath,targetPath,prefix) {
var bytes = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(js_node_buffer__$Buffer_Helper.bytesOfBuffer(js_node_Fs.readFileSync(sourcePath)));
var swf1 = new swf_SWF(bytes);
var exporter = new swf_exporters_SWFLiteExporter(swf1.data);
var swfLite = exporter.swfLite;
if(prefix != null && prefix != "") {
var symbol = swfLite.symbols.iterator();
while(symbol.hasNext()) {
var symbol1 = symbol.next();
if(symbol1.className != null) {
symbol1.className = Tools.formatClassName(symbol1.className,prefix);
}
}
}
if(targetPath == null) {
targetPath = hxp_Path.withoutExtension(sourcePath) + ".bundle";
}
try {
hxp_System.removeDirectory(targetPath);
} catch( e ) {
haxe_CallStack.lastException = e;
var e1 = ((e) instanceof js__$Boot_HaxeError) ? e.val : e;
}
hxp_System.mkdir(targetPath);
var project = new lime_tools_HXProject();
var createdDirectory = false;
var id = exporter.bitmaps.keys();
while(id.hasNext()) {
var id1 = id.next();
if(!createdDirectory) {
hxp_System.mkdir(hxp_Path.combine(targetPath,"symbols"));
createdDirectory = true;
}
var type = exporter.bitmapTypes.h[id1] == swf_exporters_BitmapType.PNG ? "png" : "jpg";
var symbol2 = swfLite.symbols.h[id1];
symbol2.path = "symbols/" + id1 + "." + type;
swfLite.symbols.h[id1] = symbol2;
var asset = new lime_tools_Asset("",symbol2.path,lime_tools_AssetType.IMAGE);
var assetData = exporter.bitmaps.h[id1];
project.assets.push(asset);
var path = hxp_Path.combine(targetPath,symbol2.path);
var bytes1 = openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(assetData);
var data = bytes1.b;
js_node_Fs.writeFileSync(path,js_node_buffer_Buffer.from(data.buffer,data.byteOffset,bytes1.length));
if(exporter.bitmapTypes.h[id1] == swf_exporters_BitmapType.JPEG_ALPHA) {
symbol2.alpha = "symbols/" + id1 + "a.png";
var asset1 = new lime_tools_Asset("",symbol2.alpha,lime_tools_AssetType.IMAGE);
var assetData1 = exporter.bitmapAlpha.h[id1];
project.assets.push(asset1);
var path1 = hxp_Path.combine(targetPath,symbol2.alpha);
var bytes2 = openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(assetData1);
var data1 = bytes2.b;
js_node_Fs.writeFileSync(path1,js_node_buffer_Buffer.from(data1.buffer,data1.byteOffset,bytes2.length));
}
}
createdDirectory = false;
var id2 = exporter.sounds.keys();
while(id2.hasNext()) {
var id3 = id2.next();
if(!createdDirectory) {
hxp_System.mkdir(hxp_Path.combine(targetPath,"sounds"));
createdDirectory = true;
}
var symbolClassName = exporter.soundSymbolClassNames.h[id3];
var typeId = exporter.soundTypes.h[id3];
hxp_Log.info(""," - \x1B[1mExporting sound:\x1B[0m [id=" + id3 + ", type=" + Std.string(typeId) + ", symbolClassName=" + symbolClassName + "]");
var type1;
if(typeId == null) {
throw new js__$Boot_HaxeError("unsupported sound type " + id3 + ", type " + Std.string(typeId) + ", symbol class name " + symbolClassName);
} else {
switch(typeId._hx_index) {
case 1:
type1 = "adpcm";
break;
case 2:
type1 = "mp3";
break;
default:
throw new js__$Boot_HaxeError("unsupported sound type " + id3 + ", type " + Std.string(typeId) + ", symbol class name " + symbolClassName);
}
}
var path2 = "sounds/" + symbolClassName + "." + type1;
var assetData2 = exporter.sounds.h[id3];
var path3 = hxp_Path.combine(targetPath,path2);
var bytes3 = openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(assetData2);
var data2 = bytes3.b;
js_node_Fs.writeFileSync(path3,js_node_buffer_Buffer.from(data2.buffer,data2.byteOffset,bytes3.length));
var soundAsset = new lime_tools_Asset("","sounds/" + symbolClassName + ".mp3",lime_tools_AssetType.SOUND);
project.assets.push(soundAsset);
}
var swfLiteAsset = new lime_tools_Asset("","swflite" + ".bin",lime_tools_AssetType.TEXT);
var swfLiteAssetData = swfLite.serialize();
project.assets.push(swfLiteAsset);
js_node_Fs.writeFileSync(hxp_Path.combine(targetPath,swfLiteAsset.targetPath),swfLiteAssetData);
var srcPath = hxp_Path.combine(targetPath,"src");
var prefix1 = "";
var uuid = hxp_StringTools.generateUUID(20);
var data3 = lime_tools_AssetHelper.createManifest(project);
data3.libraryType = "swf.exporters.swflite.SWFLiteLibrary";
data3.libraryArgs = ["swflite" + ".bin",uuid];
data3.name = hxp_Path.withoutDirectory(hxp_Path.withoutExtension(sourcePath));
js_node_Fs.writeFileSync(hxp_Path.combine(targetPath,"library.json"),data3.serialize());
var includeXML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<library>\n\n\t<source path=\"src\" />\n\n</library>";
js_node_Fs.writeFileSync(hxp_Path.combine(targetPath,"include.xml"),includeXML);
return true;
};
Tools.processLibraries = function(project) {
lime_tools_HXProject._debug = project.debug;
lime_tools_HXProject._environment = project.environment;
lime_tools_HXProject._target = project.target;
lime_tools_HXProject._targetFlags = project.targetFlags;
lime_tools_HXProject._templatePaths = project.templatePaths;
lime_tools_HXProject._userDefines = project.defines;
var output = new lime_tools_HXProject();
var embeddedSWF = false;
var embeddedSWFLite = false;
var _g = 0;
var _g1 = project.libraries;
while(_g < _g1.length) {
var library = _g1[_g];
++_g;
if(library.sourcePath == null) {
continue;
}
var type = library.type;
if(type == null) {
type = hxp_Path.extension(library.sourcePath).toLowerCase();
}
if(type == "swf" || type == "swf_lite" || type == "swflite") {
if(project.target == "flash" || project.target == "air") {
if(!sys_FileSystem.exists(library.sourcePath)) {
hxp_Log.warn("Could not find library file: " + library.sourcePath);
continue;
}
hxp_Log.info(""," - \x1B[1mProcessing library:\x1B[0m " + library.sourcePath + " [SWF]");
var swf1 = new lime_tools_Asset(library.sourcePath,library.name + ".swf",lime_tools_AssetType.BINARY);
var embed = library.embed != false;
if(embed) {
output.haxeflags.push("-resource " + swf1.sourcePath + "@swf:" + swf1.id);
} else {
swf1.embed = false;
output.assets.push(swf1);
}
var data = lime_tools_AssetHelper.createManifest(output,library.name);
data.libraryType = "openfl._internal.formats.swf.SWFLibrary";
data.libraryArgs = [library.name + ".swf"];
data.name = library.name;
data.rootPath = "lib/" + library.name;
swf1.library = library.name;
var asset = new lime_tools_Asset("","lib/" + library.name + ".json",lime_tools_AssetType.MANIFEST);
asset.id = "libraries/" + library.name + ".json";
asset.library = library.name;
asset.data = data.serialize();
asset.embed = true;
output.assets.push(asset);
var generatedClasses = Tools.generateSWFClasses(project,output,swf1,library.prefix);
var _g2 = 0;
while(_g2 < generatedClasses.length) {
var className = generatedClasses[_g2];
++_g2;
output.haxeflags.push(className);
}
embeddedSWF = true;
} else {
if(!sys_FileSystem.exists(library.sourcePath)) {
hxp_Log.warn("Could not find library file: " + library.sourcePath);
continue;
}
hxp_Log.info(""," - \x1B[1mProcessing library:\x1B[0m " + library.sourcePath + " [SWF]");
var uuid = null;
var cacheAvailable = false;
var cacheDirectory = null;
var merge = new lime_tools_HXProject();
if(Tools.targetDirectory != null) {
cacheDirectory = Tools.targetDirectory + "/obj/libraries/" + library.name;
var cacheFile = cacheDirectory + "/" + library.name + ".bin";
if(sys_FileSystem.exists(cacheFile)) {
var cacheDate = js_node_Fs.statSync(cacheFile).mtime;
var swfToolDate = js_node_Fs.statSync(hxp_Haxelib.getPath(new hxp_Haxelib("openfl"),true) + "/scripts/tools.n").mtime;
var sourceDate = js_node_Fs.statSync(library.sourcePath).mtime;
if(sourceDate.getTime() < cacheDate.getTime() && swfToolDate.getTime() < cacheDate.getTime()) {
cacheAvailable = true;
}
}
}
if(cacheAvailable) {
var _g3 = 0;
var _g11 = js_node_Fs.readdirSync(cacheDirectory);
while(_g3 < _g11.length) {
var file = _g11[_g3];
++_g3;
if(hxp_Path.extension(file) == "png" || hxp_Path.extension(file) == "jpg") {
var asset1 = new lime_tools_Asset(cacheDirectory + "/" + file,file,lime_tools_AssetType.IMAGE);
if(library.embed != null) {
asset1.embed = library.embed;
}
merge.assets.push(asset1);
}
}
var swfLiteAsset = new lime_tools_Asset(cacheDirectory + "/" + library.name + ".bin",library.name + ".bin",lime_tools_AssetType.TEXT);
if(library.embed != null) {
swfLiteAsset.embed = library.embed;
}
merge.assets.push(swfLiteAsset);
if(sys_FileSystem.exists(cacheDirectory + "/classNames.txt")) {
var generatedClasses1 = js_node_Fs.readFileSync(cacheDirectory + "/classNames.txt",{ encoding : "utf8"}).split("\n");
var _g21 = 0;
while(_g21 < generatedClasses1.length) {
var className1 = generatedClasses1[_g21];
++_g21;
output.haxeflags.push(className1);
}
}
if(sys_FileSystem.exists(cacheDirectory + "/uuid.txt")) {
uuid = js_node_Fs.readFileSync(cacheDirectory + "/uuid.txt",{ encoding : "utf8"});
}
embeddedSWFLite = true;
} else {
if(uuid == null) {
uuid = hxp_StringTools.generateUUID(20);
}
if(cacheDirectory != null) {
hxp_System.mkdir(cacheDirectory);
}
var bytes = openfl_utils__$ByteArray_ByteArray_$Impl_$.fromBytes(js_node_buffer__$Buffer_Helper.bytesOfBuffer(js_node_Fs.readFileSync(library.sourcePath)));
var swf2 = new swf_SWF(bytes);
var exporter = new swf_exporters_SWFLiteExporter(swf2.data);
var swfLite = exporter.swfLite;
if(library.prefix != null && library.prefix != "") {
var prefix = library.prefix;
var symbol = swfLite.symbols.iterator();
while(symbol.hasNext()) {
var symbol1 = symbol.next();
if(symbol1.className != null) {
symbol1.className = Tools.formatClassName(symbol1.className,prefix);
}
}
}
var id = exporter.bitmaps.keys();
while(id.hasNext()) {
var id1 = id.next();
var type1 = exporter.bitmapTypes.h[id1] == swf_exporters_BitmapType.PNG ? "png" : "jpg";
var symbol2 = swfLite.symbols.h[id1];
symbol2.path = id1 + "." + type1;
swfLite.symbols.h[id1] = symbol2;
var asset2 = new lime_tools_Asset("",symbol2.path,lime_tools_AssetType.IMAGE);
var assetData = exporter.bitmaps.h[id1];
if(cacheDirectory != null) {
asset2.sourcePath = cacheDirectory + "/" + id1 + "." + type1;
asset2.format = type1;
var path = asset2.sourcePath;
var bytes1 = openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(assetData);
var data1 = bytes1.b;
js_node_Fs.writeFileSync(path,js_node_buffer_Buffer.from(data1.buffer,data1.byteOffset,bytes1.length));
} else {
asset2.data = hxp_StringTools.base64Encode(assetData);
asset2.encoding = lime_tools_AssetEncoding.BASE64;
}
if(library.embed != null) {
asset2.embed = library.embed;
}
merge.assets.push(asset2);
if(exporter.bitmapTypes.h[id1] == swf_exporters_BitmapType.JPEG_ALPHA) {
symbol2.alpha = id1 + "a.png";
var asset3 = new lime_tools_Asset("",symbol2.alpha,lime_tools_AssetType.IMAGE);
var assetData1 = exporter.bitmapAlpha.h[id1];
if(cacheDirectory != null) {
asset3.sourcePath = cacheDirectory + "/" + id1 + "a.png";
asset3.format = "png";
var path1 = asset3.sourcePath;
var bytes2 = openfl_utils__$ByteArray_ByteArray_$Impl_$.toBytes(assetData1);
var data2 = bytes2.b;
js_node_Fs.writeFileSync(path1,js_node_buffer_Buffer.from(data2.buffer,data2.byteOffset,bytes2.length));
} else {
asset3.data = hxp_StringTools.base64Encode(assetData1);
asset3.encoding = lime_tools_AssetEncoding.BASE64;
}
asset3.embed = false;
if(library.embed != null) {
asset3.embed = library.embed;
}
merge.assets.push(asset3);
}
}
var swfLiteAsset1 = new lime_tools_Asset("",library.name + ".bin",lime_tools_AssetType.TEXT);
var swfLiteAssetData = swfLite.serialize();
if(cacheDirectory != null) {
swfLiteAsset1.sourcePath = cacheDirectory + "/" + library.name + ".bin";
js_node_Fs.writeFileSync(swfLiteAsset1.sourcePath,swfLiteAssetData);
} else {
swfLiteAsset1.data = swfLiteAssetData;
}
if(library.embed != null) {
swfLiteAsset1.embed = library.embed;
}
merge.assets.push(swfLiteAsset1);
if(library.generate) {
var targetPath;
if(project.target == "ios") {
targetPath = hxp_Path.tryFullPath(Tools.targetDirectory) + "/" + project.app.file + "/" + "/haxe/_generated";
} else {
targetPath = hxp_Path.tryFullPath(Tools.targetDirectory) + "/haxe/_generated";
}
var generatedClasses2 = Tools.generateSWFLiteClasses(targetPath,output.assets,swfLite,uuid,library.prefix);
var _g4 = 0;
while(_g4 < generatedClasses2.length) {
var className2 = generatedClasses2[_g4];
++_g4;
output.haxeflags.push(className2);
}
if(cacheDirectory != null) {
js_node_Fs.writeFileSync(cacheDirectory + "/classNames.txt",generatedClasses2.join("\n"));
}
}
if(cacheDirectory != null) {
js_node_Fs.writeFileSync(cacheDirectory + "/uuid.txt",uuid);
}
embeddedSWFLite = true;
}
var data3 = lime_tools_AssetHelper.createManifest(merge);
data3.libraryType = "swf.exporters.swflite.SWFLiteLibrary";
data3.libraryArgs = [library.name + ".bin",uuid];
data3.name = library.name;
if(library.embed == true || library.embed == null && (project.platformType == lime_tools_PlatformType.WEB || project.target == "air")) {
data3.rootPath = "lib/" + library.name;
} else {
data3.rootPath = library.name;
}
var _g5 = 0;
var _g12 = merge.assets;
while(_g5 < _g12.length) {
var asset4 = _g12[_g5];
++_g5;
asset4.library = library.name;
asset4.targetPath = "lib/" + library.name + "/" + asset4.targetPath;
asset4.resourceName = asset4.targetPath;
}
output.merge(merge);
var asset5 = new lime_tools_Asset("","lib/" + library.name + ".json",lime_tools_AssetT