Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.45 KB | None | 0 0
  1.  
  2. // Helpers
  3.  
  4. function onDudeActionEnd(dude)
  5. {
  6.   dude.setAppearance("Hero_Idle", dude.getDirection())
  7. }
  8.  
  9.  
  10. class Game extends ApplicationMode
  11. {
  12.   //-------------------------------------------------------------------
  13.   constructor()
  14.   {
  15.   }
  16.  
  17.   //
  18.   // ApplicationMode
  19.   //
  20.  
  21.   //-------------------------------------------------------------------
  22.   function enter()
  23.   {
  24.     Engine().showWorld(true)
  25.     World().load(WorldName, true)
  26.     GUI().showCursor(true)
  27.  
  28.     local gui = GUIXML()
  29.  
  30.     gui.createGUI("Game", this)
  31.     m_statusText = gui.getWidget("StatusText")
  32. //    m_statusText.setVisible(true);
  33.     TextWidget(m_statusText).setNormalColor(Color(200, 200, 200, 255));
  34.     TextWidget(m_statusText).setHighlightColor(Color(230, 230, 230, 255));
  35.  
  36.     TextWidget(m_statusText).setText(LocalizationManager().getText("C4"))
  37.  
  38.  
  39.     m_dude = World().findObject("Dude")
  40.  
  41.     /* $TODO
  42.     local dudePos      = m_dude.getWorldPos()
  43.     local dudeWorldPos = Render().tileToScreen(dudePos)
  44.     // center on dude
  45.     */
  46.     // createTileCursor()
  47.   }
  48.  
  49.   //-------------------------------------------------------------------
  50.   function leave()
  51.   {
  52.     GUI().showCursor(false)
  53.     Engine().showWorld(false)
  54.   }
  55.  
  56.   //-------------------------------------------------------------------
  57.   function name()
  58.   {
  59.     return "Game"
  60.   }
  61.  
  62.   //
  63.   // InputListener
  64.   //
  65.  
  66.   //-------------------------------------------------------------------
  67.   function onKeyDown(key)  
  68.   {
  69.     switch (key)
  70.     {
  71.     case Buttons().Escape:
  72.       Engine().quit();
  73.       break;
  74.  
  75.     case Buttons().MouseLB:
  76.       local tilePos = m_mouseMap.screenToTile(GUI().getMousePos())
  77.       local dudePos = m_dude.getWorldPos()
  78.       local path    = SimplePathfinder().findPath(dudePos, tilePos);
  79.  
  80.       if (path.length() > 0)
  81.       {
  82.          TextWidget(m_statusText).setText(LocalizationManager().getText("OK"));
  83.          // print(path.length() + " moves to go"); // $TMP
  84.          local cells = SimplePathfinder().cells();
  85.          print(cells.length() + " CELLS!");
  86.  
  87.          m_dude.setAppearance("Hero_Walk", m_dude.getDirection());
  88.          m_dude.walkPath(path, 1.0, "onDudeActionEnd");
  89.        }
  90.        else
  91.        {
  92.          TextWidget(m_statusText).setText(LocalizationManager().getText("CantDoThat"));
  93.        }
  94.        break;
  95.     }
  96.   }
  97.  
  98.   //-------------------------------------------------------------------
  99.   function onMouseMove(mousePos)
  100.   {
  101.     // Двигаем тайловый курсор
  102.       local world = World();
  103.     if (world.objectExists("TileCursor"))
  104.     {
  105.       local tileCursor = world.findObject("TileCursor")
  106.         local tilePos    = m_mouseMap.screenToTile(mousePos);
  107.       tileCursor.setWorldPos(tilePos)
  108.       }
  109.   }
  110.  
  111.   //
  112.   // DialogBox
  113.   //
  114.   //-------------------------------------------------------------------
  115.   function onCommand( id )
  116.   {
  117.   }
  118.  
  119.   //-------------------------------------------------------------------
  120.   function createTileCursor()
  121.   {
  122.     local tileCursor = Object()
  123.     tileCursor.setSimpleAppearance("Engine.TileCursor", World().North)
  124.     tileCursor.setWorldPos(Point(0, 0))
  125.     tileCursor.setVisible(true)
  126.     tileCursor.setSelectionEnabled(false) // Тайловый курсор не выделяется мышью, что вполне логично :)
  127.     World().addObject(tileCursor, "TileCursor")
  128.   }
  129.  
  130.   m_dude       = 0
  131.   m_mouseMap   = MouseMap("misc/MouseMap64x32.tga");
  132.   m_statusText = null;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement