new file: Files/flashplayer_32_sa.exe new file: favicon.ico new file: globe.gif new file: imgs/download.png new file: imgs/zuck.jpg new file: index.html new file: other.ico new file: script.js new file: site.webmanifest new file: sitemap.html new file: styles/backround.css new file: styles/border.css new file: styles/fonts/Titillium_Web/OFL.txt new file: styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf new file: styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf new file: styles/fonts/webfontkit-20221027-163353/generator_config.txt new file: styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/stylesheet.css new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff new file: styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2 new file: styles/fonts/webfontkit-20221027-165950/generator_config.txt new file: styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css new file: styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/stylesheet.css new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff new file: styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2 new file: styles/style.css new file: tools/2048/.gitignore new file: tools/2048/.jshintrc new file: tools/2048/CONTRIBUTING.md new file: tools/2048/LICENSE.txt new file: tools/2048/README.md new file: tools/2048/Rakefile new file: tools/2048/favicon.ico new file: tools/2048/index.html new file: tools/2048/js/animframe_polyfill.js new file: tools/2048/js/application.js new file: tools/2048/js/bind_polyfill.js new file: tools/2048/js/classlist_polyfill.js new file: tools/2048/js/game_manager.js new file: tools/2048/js/grid.js new file: tools/2048/js/html_actuator.js new file: tools/2048/js/keyboard_input_manager.js new file: tools/2048/js/local_storage_manager.js new file: tools/2048/js/tile.js new file: tools/2048/meta/apple-touch-icon.png new file: tools/webretro/cores/neocd_libretro.js new file: tools/webretro/cores/neocd_libretro.wasm new file: tools/webretro/cores/nestopia_libretro.js new file: tools/webretro/cores/nestopia_libretro.wasm new file: tools/webretro/cores/o2em_libretro.js new file: tools/webretro/cores/o2em_libretro.wasm new file: tools/webretro/cores/opera_libretro.js new file: tools/webretro/cores/opera_libretro.wasm
162 lines
2.8 KiB
JavaScript
162 lines
2.8 KiB
JavaScript
var pgli = pgli || {};
|
|
|
|
|
|
pgli.Project = gamecore.Base.extend('Project',
|
|
{
|
|
patternRoot: /\/([a-z]+\.pmod)/ig,
|
|
patternPath: /([a-z\/]+\/)[a-z]+\.pmod/ig
|
|
|
|
},
|
|
|
|
{
|
|
appInstance: null,
|
|
modules: null,
|
|
activeFile: null,
|
|
files:null,
|
|
keys :[],
|
|
name: "default",
|
|
path: "/files/",
|
|
root: "default.pmod",
|
|
diagram: null,
|
|
loadingQueue: [],
|
|
onLoad: function() { console.log("Project loaded."); },
|
|
|
|
|
|
|
|
init : function(projectFile, onLoad)
|
|
{
|
|
this.onLoad = onLoad;
|
|
this.modules = new gamecore.Hashtable();
|
|
this.files = new gamecore.Hashtable();
|
|
this.path = pgli.Project.patternPath.exec(projectFile)[1];
|
|
this.root = pgli.Project.patternRoot.exec(projectFile)[1];
|
|
|
|
var self = this;
|
|
|
|
this.loadFile(projectFile,this.root,true,true);
|
|
|
|
},
|
|
|
|
loadFile: function(path,name,doDependencies,doDiagram)
|
|
{
|
|
trace("#Loading ["+name+"].");
|
|
var self = this;
|
|
var request = $.ajax({
|
|
url: path,
|
|
type: 'get',
|
|
dataType: "text",
|
|
})
|
|
.success(function(data)
|
|
{
|
|
self.files.put(name, data);
|
|
self.keys.push(name);
|
|
|
|
var object = pgli.lang.Parser.parseModule(data);
|
|
self.modules.put(name, object);
|
|
|
|
if(doDependencies == true)
|
|
self.loadDependencies(object);
|
|
|
|
if(doDiagram == true)
|
|
self.getAppInstance().addDiagramNode(name, object);
|
|
|
|
trace("#["+name+"] loaded");
|
|
|
|
self.onLoad();
|
|
})
|
|
.error(function()
|
|
{
|
|
throw "Unable to load file: " + path;
|
|
});
|
|
},
|
|
|
|
loadDependencies: function(object)
|
|
{
|
|
|
|
if(!("layers" in object))
|
|
return;
|
|
|
|
var layers = object.layers;
|
|
var self = this;
|
|
|
|
for (var i=0, len = layers.length; i<len ; i++)
|
|
{
|
|
if(!("use" in layers[i]) )
|
|
continue;
|
|
|
|
var layerName = layers[i].use;
|
|
|
|
trace("#Found dependency ["+layerName+"]");
|
|
|
|
(function(name,self)
|
|
{
|
|
self.loadFile(self.path+name,name,true,true);
|
|
|
|
})(layerName,self);
|
|
}
|
|
|
|
},
|
|
|
|
getModulesCount: function()
|
|
{
|
|
return this.keys.length;
|
|
},
|
|
|
|
getModule: function(key)
|
|
{
|
|
return this.modules.get(key);
|
|
},
|
|
|
|
getFile: function(key)
|
|
{
|
|
return this.files.get(key);
|
|
},
|
|
|
|
getModuleKey: function(index)
|
|
{
|
|
return this.keys[index];
|
|
},
|
|
|
|
getRootModule: function()
|
|
{
|
|
return this.modules.get(this.root);
|
|
},
|
|
|
|
isEmpty: function()
|
|
{
|
|
return (this.keys.length <= 0);
|
|
},
|
|
|
|
setAppInstance: function(app)
|
|
{
|
|
this.appInstance = app;
|
|
},
|
|
|
|
getAppInstance: function()
|
|
{
|
|
return this.appInstance;
|
|
},
|
|
|
|
setActiveFile: function(key)
|
|
{
|
|
this.activeFile = key;
|
|
},
|
|
|
|
rememberActiveFile: function()
|
|
{
|
|
if(!this.activeFile) return;
|
|
|
|
this.files.put(this.activeFile, this.getAppInstance().getEditorContent());
|
|
}
|
|
|
|
/*updateDiagram: function()
|
|
{
|
|
|
|
},
|
|
|
|
render: function(canvasRenderer)
|
|
{
|
|
//canvasRenderer.Render(modules, root, new Hashtable());
|
|
}*/
|
|
|
|
}); |