Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Helpers
- function onDudeActionEnd(dude)
- {
- dude.setAppearance("Hero_Idle", dude.getDirection())
- }
- class Game extends ApplicationMode
- {
- //-------------------------------------------------------------------
- constructor()
- {
- }
- //
- // ApplicationMode
- //
- //-------------------------------------------------------------------
- function enter()
- {
- Engine().showWorld(true)
- World().load(WorldName, true)
- GUI().showCursor(true)
- local gui = GUIXML()
- gui.createGUI("Game", this)
- m_statusText = gui.getWidget("StatusText")
- // m_statusText.setVisible(true);
- TextWidget(m_statusText).setNormalColor(Color(200, 200, 200, 255));
- TextWidget(m_statusText).setHighlightColor(Color(230, 230, 230, 255));
- TextWidget(m_statusText).setText(LocalizationManager().getText("C4"))
- m_dude = World().findObject("Dude")
- /* $TODO
- local dudePos = m_dude.getWorldPos()
- local dudeWorldPos = Render().tileToScreen(dudePos)
- // center on dude
- */
- // createTileCursor()
- }
- //-------------------------------------------------------------------
- function leave()
- {
- GUI().showCursor(false)
- Engine().showWorld(false)
- }
- //-------------------------------------------------------------------
- function name()
- {
- return "Game"
- }
- //
- // InputListener
- //
- //-------------------------------------------------------------------
- function onKeyDown(key)
- {
- switch (key)
- {
- case Buttons().Escape:
- Engine().quit();
- break;
- case Buttons().MouseLB:
- local tilePos = m_mouseMap.screenToTile(GUI().getMousePos())
- local dudePos = m_dude.getWorldPos()
- local path = SimplePathfinder().findPath(dudePos, tilePos);
- if (path.length() > 0)
- {
- TextWidget(m_statusText).setText(LocalizationManager().getText("OK"));
- // print(path.length() + " moves to go"); // $TMP
- local cells = SimplePathfinder().cells();
- print(cells.length() + " CELLS!");
- m_dude.setAppearance("Hero_Walk", m_dude.getDirection());
- m_dude.walkPath(path, 1.0, "onDudeActionEnd");
- }
- else
- {
- TextWidget(m_statusText).setText(LocalizationManager().getText("CantDoThat"));
- }
- break;
- }
- }
- //-------------------------------------------------------------------
- function onMouseMove(mousePos)
- {
- // Двигаем тайловый курсор
- local world = World();
- if (world.objectExists("TileCursor"))
- {
- local tileCursor = world.findObject("TileCursor")
- local tilePos = m_mouseMap.screenToTile(mousePos);
- tileCursor.setWorldPos(tilePos)
- }
- }
- //
- // DialogBox
- //
- //-------------------------------------------------------------------
- function onCommand( id )
- {
- }
- //-------------------------------------------------------------------
- function createTileCursor()
- {
- local tileCursor = Object()
- tileCursor.setSimpleAppearance("Engine.TileCursor", World().North)
- tileCursor.setWorldPos(Point(0, 0))
- tileCursor.setVisible(true)
- tileCursor.setSelectionEnabled(false) // Тайловый курсор не выделяется мышью, что вполне логично :)
- World().addObject(tileCursor, "TileCursor")
- }
- m_dude = 0
- m_mouseMap = MouseMap("misc/MouseMap64x32.tga");
- m_statusText = null;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement