var latest_output_area ="NONE"; // Jquery object for the DOM element of output area which was used most recently
function handle_output(out, block){
var output = out.content.data["text/html"];
latest_output_area.html(output);
}
function handle_click(canvas,coord) {
console.log(canvas,coord);
latest_output_area = $(canvas).parents('.output_subarea');
$(canvas).parents('.output_subarea')
var world_object_name = canvas.dataset.world_name;
var command = world_object_name + ".handle_click(" + JSON.stringify(coord) + ")";
console.log("Executing Command: " + command);
var kernel = IPython.notebook.kernel;
var callbacks = { 'iopub' : {'output' : handle_output}};
kernel.execute(command,callbacks);
};
function generateGridWorld(state,size,elements)
{
// Declaring array to store image object
var $imgArray = new Object(), hasImg=false;
// Loading images LOOP
$.each(elements, function(i, val) {
// filtering for type img
if(val["type"]=="img") {
// setting image load
hasImg = true;
$imgArray[i] = $('').attr({height:size,width:size,src:val["source"]}).data({name:i,loaded:false}).load(function(){
// Check for all image loaded
var execute=true;
$(this).data("loaded",true);
$.each($imgArray, function(i, val) {
if(!$(this).data("loaded")) {
execute=false;
// exit on unloaded image
return false;
}
});
if (execute) {
// Converting loaded image to canvas covering block size.
$.each($imgArray, function(i, val) {
$imgArray[i] = $('').attr({width:size,height:size}).get(0);
$imgArray[i].getContext('2d').drawImage(val.get(0),0,0,size,size);
});
// initialize the world
initializeWorld();
}
});
}
});
if(!hasImg) {
initializeWorld();
}
function initializeWorld(){
var $parentDiv = $('div.map-grid-world');
// remove object reference
$('div.map-grid-world').removeClass('map-grid-world');
// get some info about the canvas
var row = state.length;
var column = state[0].length;
var canvas = $parentDiv.find('canvas').get(0);
var ctx = canvas.getContext('2d');
canvas.width = size * column;
canvas.height = size * row;
//Initialize previous positions
for(var i=0;i=0 && gx=0 && gy