text: var Text = require('./Text');
  var GetAdvancedValue = require('../../../utils/object/GetAdvancedValue');
  var BuildGameObject = require('../../BuildGameObject');
  
  var TextCreator = function (state, config)
  {
      // style Object = {
      //     font: [ 'font', '16px Courier' ],
      //     backgroundColor: [ 'backgroundColor', null ],
      //     fill: [ 'fill', '#fff' ],
      //     stroke: [ 'stroke', '#fff' ],
      //     strokeThickness: [ 'strokeThickness', 0 ],
      //     shadowOffsetX: [ 'shadow.offsetX', 0 ],
      //     shadowOffsetY: [ 'shadow.offsetY', 0 ],
      //     shadowColor: [ 'shadow.color', '#000' ],
      //     shadowBlur: [ 'shadow.blur', 0 ],
      //     shadowStroke: [ 'shadow.stroke', false ],
      //     shadowFill: [ 'shadow.fill', false ],
      //     align: [ 'align', 'left' ],
      //     maxLines: [ 'maxLines', 0 ],
      //     fixedWidth: [ 'fixedWidth', false ],
      //     fixedHeight: [ 'fixedHeight', false ],
      //     rtl: [ 'rtl', false ]
      // }
  
      var content = GetAdvancedValue(config, 'text', '');
      var style = GetAdvancedValue(config, 'style', null);
  
      var text = new Text(state, 0, 0, content, style);
  
      BuildGameObject(state, text, config);
  
      //  Text specific config options:
  
      text.autoRound = GetAdvancedValue(config, 'autoRound', true);
      text.resolution = GetAdvancedValue(config, 'resolution', 1);
  
      //  Padding
      //  Either: { padding: 2 } or { padding: { x: 2, y: 2 }}
  
      var padding = GetAdvancedValue(config, 'padding', null);
  
      if (typeof padding === 'number')
      {
          text.padding.x = padding;
          text.padding.y = padding;
      }
      else if (padding !== null)
      {
          text.padding.x = GetAdvancedValue(padding, 'x', 1);
          text.padding.y = GetAdvancedValue(padding, 'y', 1);
      }
  
      text.updateText();
  
      return text;
  };
  
  module.exports = TextCreator;
  