function Magnet() { Module.call(this,"magnet","Cursor magnetisation settings, changes are reflected on the grid layer."); this.size = 0; this.step = 4; this.methods.lock = new Method("lock","10","Magnetize cursor",function(q){ var size = parseInt(q); if(size < 5){ this.unlock(); return; } ronin.magnet.size = size; ronin.grid.draw(size,ronin.magnet.step); }) this.methods.unlock = new Method("unlock","","Release cursor",function(q){ ronin.magnet.size = 0; ronin.grid.clear(); }) this.filter = function(pos) { if(this.size < 5){ return pos; } var s = this.size; return {x:parseInt(pos.x/s)*s,y:parseInt(pos.y/s)*s}; } }