text: (function(GoNorth) {
      "use strict";
      (function(DefaultNodeShapes) {
          (function(Actions) {
  
              /**
               * Set Object State Action
               * @class
               */
              Actions.SetObjectStateAction = function()
              {
                  GoNorth.DefaultNodeShapes.Actions.BaseAction.apply(this);
              };
  
              Actions.SetObjectStateAction.prototype = jQuery.extend({ }, GoNorth.DefaultNodeShapes.Actions.BaseAction.prototype);
  
              /**
               * Returns the HTML Content of the action
               * 
               * @returns {string} HTML Content of the action
               */
              Actions.SetObjectStateAction.prototype.getContent = function() {
                  return  "<input type='text' class='gn-nodeActionObjectState' placeholder='" + DefaultNodeShapes.Localization.Actions.StatePlaceholder + "' list='gn-" + GoNorth.ProjectConfig.ConfigKeys.SetNpcStateAction + "'/>";
              };
  
              /**
               * Gets called once the action was intialized
               * 
               * @param {object} contentElement Content element
               * @param {ActionNode} actionNode Parent Action node
               */
              Actions.SetObjectStateAction.prototype.onInitialized = function(contentElement, actionNode) {
                  this.contentElement = contentElement;
  
                  // Deserialize
                  this.deserializeData();
  
                  // Handlers
                  var self = this;
                  var objectState = contentElement.find(".gn-nodeActionObjectState");
                  objectState.on("input", function(e) {
                      self.saveData();
                  });
              };
  
              /**
               * Deserializes the data
               */
              Actions.SetObjectStateAction.prototype.deserializeData = function() {
                  var actionData = this.nodeModel.get("actionData");
                  if(!actionData)
                  {
                      return "";
                  }
  
                  var data = JSON.parse(actionData);
                  
                  this.contentElement.find(".gn-nodeActionObjectState").val(data.objectState);
              }
  
              /**
               * Saves the data
               */
              Actions.SetObjectStateAction.prototype.saveData = function() {
                  var objectState = this.contentElement.find(".gn-nodeActionObjectState").val();
                  var serializeData = {
                      objectState: objectState
                  };
  
                  this.nodeModel.set("actionData", JSON.stringify(serializeData));
              }
  
              /**
               * Builds the action
               * 
               * @returns {object} Action
               */
              Actions.SetObjectStateAction.prototype.buildAction = function() {
                  return new Actions.SetObjectStateAction();
              };
  
              /**
               * Returns the type of the action
               * 
               * @returns {number} Type of the action
               */
              Actions.SetObjectStateAction.prototype.getType = function() {
                  return -1;
              };
  
              /**
               * Returns the label of the action
               * 
               * @returns {string} Label of the action
               */
              Actions.SetObjectStateAction.prototype.getLabel = function() {
                  return "";
              };
  
              /**
               * Returns the config key for the action
               * 
               * @returns {string} Config key
               */
              Actions.SetObjectStateAction.prototype.getConfigKey = function() {
                  return GoNorth.ProjectConfig.ConfigKeys.SetNpcStateAction;
              }
  
          }(DefaultNodeShapes.Actions = DefaultNodeShapes.Actions || {}));
      }(GoNorth.DefaultNodeShapes = GoNorth.DefaultNodeShapes || {}));
  }(window.GoNorth = window.GoNorth || {}));