public bool ExecuteCommand(CharacterCommand type) { if (type == CharacterCommand.CC_None) { return(false); } Command cmd = TryGet(type); if (cmd == null) { return(false); } LastCommand = CurrentCommand; CurrentCommand = cmd; if (LastCommand != null && LastCommand.ActiveStatus == true) { LastCommand.InActive(Machine, this, cmd); } CurrentCommand.Active(Machine, this, LastCommand); if (OnChangeCommandDelegate != null) { OnChangeCommandDelegate(CurrentCommand, LastCommand); } return(true); }