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};
  }
}