Lucas Kent e39465ad2f Changes to be committed:
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
2022-11-02 08:40:01 -04:00

122 lines
2.3 KiB
JavaScript

var pgli = pgli || {};
pgli.diagram = pgli.diagram || {};
pgli.diagram.Node = gamecore.Base.extend('Node',
{ // static
layersWidth: 20,
layersMargin: 20,
layersHeight: 16,
headerHeight: 40,
slotX: 10,
slotY: 14,
slotRadius: 6
},
{ // instance
module: null,
key: null,
shape: null,
background: null,
name: null,
layers: null,
slot: null,
sockets: [],
width: 150,
height: 200,
init: function(key, module, x, y)
{
var static = pgli.diagram.Node;
this.key = key;
this.module = module;
this.shape = new Kinetic.Group({
x: x == undefined ? 0 : x,
y: y == undefined ? 0 : y,
draggable: true
});
var layerCount = (module.layers != undefined ? module.layers.length : 0) + 1;
this.height = static.headerHeight + layerCount * static.layersHeight;
this.background = new Kinetic.Rect({
x: 0,
y: 0,
width: this.width,
height: this.height,
fill: "#222",
stroke: "#000",
strokeWidth: 0.5,
shadow: {
color: "black",
blur: 6,
offset: [0, 0],
opacity: 0.5
}
});
this.layers = new Kinetic.Shape({
drawFunc: function(ctx){
ctx.beginPath();
for(var i=0, len = this.attrs.count; i < len; ++i)
ctx.arc(10, 10+i*static.layersHeight, static.slotRadius, 0, Math.PI*2, true);
ctx.closePath();
this.fill(ctx);
},
x: this.width-static.layersWidth,
y: static.layersMargin,
count: layerCount,
fill: "#111"
});
this.slot = new Kinetic.Circle({
x: static.slotX,
y: static.slotY,
radius: static.slotRadius,
fill: "#111"
});
this.name = new Kinetic.Text({
x: 20,
y: 6,
text: module.name,
fontSize: 13,
fontFamily: "Ubuntu Mono",
textFill: "#aaa"
});
this.shape.on('mousedown', function(){
this.moveToTop();
});
this.shape.add(this.background);
this.shape.add(this.name);
this.shape.add(this.layers);
this.shape.add(this.slot);
},
updateLayers: function()
{
var layerCount = (module.layers != undefined ? module.layers.length : 0) + 1;
this.layers.attrs.count = layerCount;
},
getSlot: function()
{
var static = pgli.diagram.Node;
return [this.shape.getX()+static.slotX,
this.shape.getY()+static.slotY];
},
getLayerSlot: function(index)
{
var static = pgli.diagram.Node;
return [this.shape.getX()+this.width-static.layersWidth/2,
this.shape.getY()+10+index*static.layersHeight+static.layersMargin];
}
});