home *** CD-ROM | disk | FTP | other *** search
/ Singles (French) / Singles-FrenchVersion-Win95.iso / data1.cab / Statemachine / movingCarton.lua < prev    next >
Text File  |  2004-03-05  |  2KB  |  59 lines

  1. -- moving carton state machine
  2.  
  3. beginStateMachine()
  4.  
  5.  
  6.     onEnter(function(msg) 
  7.         -- kinda cant be removed afterwards *sob*
  8.         --storeData("empty",true);
  9.     end )
  10.  
  11.  
  12.     onMsg("buildMenu", function(msg)    
  13.         if (repairMenu()) then return end
  14.  
  15.         -- rebuild the pie menu
  16.         clearPieMenu()
  17.         
  18.         if (retrieveData("empty") and retrieveData("empty")~=1) then
  19. -- hier fehlt ne abfrage ob man im richtigen tutorial ist und auspacken darf
  20.             local button = addPieMenuButton("pm_unpack", "unpack");
  21.             button.addDescription(DONTQUEUE, "true");
  22.         end
  23.     end )
  24.  
  25.     -- 
  26.     onMsg("unpack", function(msg)
  27.         -- get the game object server
  28.         local gameObjectServer = getGameObjectServer();
  29.         -- get character who initiated this action
  30.         local character = getStateObjectFromID(msg.sender);
  31.         -- if this is broken: abort characters action
  32.         if abortIfBroken(character) then return end;        
  33.         -- walk to the closest action point
  34.         --local actionPoint = character.getFreeActionPoint(this, "unpack");
  35.         local actionPoint = this.getActionPoint("unpack");
  36.  
  37.         -- get the walk state object
  38.         local wso = character.walkSO;
  39.         -- create state machine contexts
  40.         local wsoContext = StateMachineContext();
  41.         -- store the action point
  42.         wsoContext.storeData("actionPointName", actionPoint.getName());
  43.         
  44.         -- switch to life mode
  45.         local editor = this.getGameObjectServer().getEditor();
  46.         editor.setMode(Editor.LIFE_MODE);
  47.         
  48.         wso.walkToActionPoint(actionPoint);
  49.  
  50.         -- enque action
  51.         wso.queueStateMachine("movingCartonChar.unpack", this, wsoContext);
  52.         
  53.     end )
  54.     
  55.  
  56.  
  57.     
  58. endStateMachine()
  59.