(function() {

  this.def_class('Block',DObject,function(__scope,__class){

    this["@types"] = [];

    this.__ctor__ = function Block(options) {
      this["@name"] = options['name'];
      this["@nr"] = options['nr'];
      this["@code"] = this["@nr"] + 48;
      this["@char"] = __scope.String.fromCharCode(this["@code"]);
      this.class()[this["@nr"]] = this;
      this.class()[this["@char"]] = this;
      this.class()[this["@code"]] = this;
      this.class()[this["@name"]] = this;
      return this.class()["@types"].push(this);
    }; this.__ctor__.prototype = this.prototype;;

  });

  new (__ctor(__scope.Block))({
    name: 'empty',
    nr: 0
  });

  new (__ctor(__scope.Block))({
    name: 'metal',
    nr: 1
  });

  new (__ctor(__scope.Block))({
    name: 'rock',
    nr: 2
  });

  new (__ctor(__scope.Block))({
    name: 'dirt',
    nr: 3
  });

  new (__ctor(__scope.Block))({
    name: 'bonus',
    nr: 4
  });

  new (__ctor(__scope.Block))({
    name: 'combo',
    nr: 5
  });

  new (__ctor(__scope.Block))({
    name: 'food',
    nr: 6
  });

  new (__ctor(__scope.Block))({
    name: 'goal',
    nr: 7
  });

  new (__ctor(__scope.Block))({
    name: 'star',
    nr: 8
  });

  new (__ctor(__scope.Block))({
    name: 'focusbig',
    nr: 9
  });

  new (__ctor(__scope.Block))({
    name: 'speedup',
    nr: 10
  });

  new (__ctor(__scope.Block))({
    name: 'slowdown',
    nr: 11
  });

  new (__ctor(__scope.Block))({
    name: 'mesh',
    nr: 12
  });

  new (__ctor(__scope.Block))({
    name: 'path',
    nr: 13
  });

  this.def_class('BlockTimer',DObject,function(__scope,__class){

    this.__ctor__ = function BlockTimer() {
      return true;
    }; this.__ctor__.prototype = this.prototype;;

  });

}).call($$base);

