public NpcMessageTargetCommand(NpcBase npc, Entity target, string text, float maxWidth) : base(npc)
 {
     _text                = text;
     _maxWidth            = maxWidth;
     _textWindowComponent = target.getComponent <TextWindowComponent>();
 }
 public NpcCloseMessageCommand(NpcBase npc) : base(npc)
 {
 }
 public NpcHideTextureCommand(NpcBase npc, bool hide) : base(npc)
 {
     _hide = hide;
 }
 public NpcExecuteActionCommand(NpcBase npc, Action action) : base(npc)
 {
     _action = action;
 }
 public NpcMovePlayerCommand(NpcBase npc, Vector2 velocity) : base(npc)
 {
     _velocity = velocity;
 }
 public NpcMessageCommand(NpcBase npc, string text, float maxWidth) : base(npc)
 {
     _text     = text;
     _maxWidth = maxWidth;
 }
 public NpcFocusCameraCommand(NpcBase npc, Entity target) : base(npc)
 {
     _target = target;
 }
 public NpcCinematicCommand(NpcBase npc, float amount, float duration, bool isIn) : base(npc)
 {
     _amount   = amount;
     _duration = duration;
     _isIn     = isIn;
 }
 public NpcSetVariableCommand(NpcBase npc, bool isLocal, string name, int value) : base(npc)
 {
     _isLocal = isLocal;
     _name    = name;
     _value   = value;
 }
 public NpcSetSwitchCommand(NpcBase npc, bool isLocal, string name, bool value) : base(npc)
 {
     _isLocal = isLocal;
     _name    = name;
     _value   = value;
 }
 public NpcCommand(NpcBase npc)
 {
     _npc = npc;
 }
 public NpcWaitCommand(NpcBase npc, float duration) : base(npc)
 {
     _duration = duration;
 }
 public NpcCloseTargetMessageCommand(NpcBase npc, Entity target) : base(npc)
 {
     _textWindowComponent = target.getComponent <TextWindowComponent>();
 }