"atomic component"

//Define a Scene component
exports.component = function(self) {
  //we are attaching that component to the Scene, so we are sure that ours node is a scene
  var scene = self.node;
  var time = 12;

  self.start = function() {

      // Add light flickers
      var lightNodes = scene.getChildrenWithComponent("Light", true);
      for (var i = 0; i < lightNodes.length; i++) {
          lightNodes[i].createJSComponent("Components/LightFlicker.js");
      }

      // create the procedural sky
      var pnode = scene.createChild();
      self.procSky = pnode.createComponent("ProcSky");
      self.procSky.setDayTime(time);

      //Create music
      var musicFile = Atomic.cache.getResource("Sound", "Music/StoryTime.ogg");
      //Set it looped
      musicFile.looped = true;
      var musicNode = scene.createChild("MusicNode");
      var musicSource = musicNode.createComponent("SoundSource");
      musicSource.gain = .5;
      musicSource.soundType = Atomic.SOUND_MUSIC;
      musicSource.play(musicFile);

      //init DPad if its a mobile platform
      if(Atomic.platform == "Android" || Atomic.platform == "iOS") {
        var DPad = require("DPad");
        var dpad = new DPad();
        dpad.addAll();
        dpad.init();

        var jumpView = new Atomic.UIView();

        var jumpButton = new Atomic.UIButton();
        //unset its skin, because we will use UIImageWidget
        jumpButton.skinBg = "";
        //create ours jump button image
        var jumpButtonImage = new Atomic.UIImageWidget();
        //load image
        jumpButtonImage.setImage("UI/jumpButton.png");
        //resize ours image by 2.2x
        var jumpButtonWidth = jumpButtonImage.imageWidth*2.2;
        var jumpButtonHeight = jumpButtonImage.imageHeight*2.2;
        //calculate position
        var posX = Atomic.graphics.width - Atomic.graphics.width/8-jumpButtonWidth/2;
        var posY = Atomic.graphics.height - Atomic.graphics.height/4-jumpButtonHeight/2;

        //sets jumpButton rect, specify position and end position
        jumpView.rect = [posX, posY, posX+jumpButtonWidth, posY+jumpButtonHeight];
        jumpButton.rect = [0, 0, jumpButtonWidth, jumpButtonHeight];
        //sets jumpButtonImage rect, we specify there only end position
        jumpButtonImage.rect = [0, 0, jumpButtonWidth, jumpButtonHeight];
        //adds image to jumpButton
        jumpButton.addChild(jumpButtonImage);
        //adds jumpButton to the dpad view
        jumpView.addChild(jumpButton);
        //sets jumpButton capturing to false, because we wanna make it multitouchable
        jumpButton.setCapturing(false);
        //binds jumpButton to KEY_SPACE
        Atomic.input.bindButton(jumpButton, Atomic.KEY_SPACE);
      }
  }

  self.update = function(timeStep) {

      time += timeStep * .08;
      self.procSky.setDayTime(time);
  }
}
