// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #ifndef R2_TOOL_CHOOSE_POS_LUA_H #define R2_TOOL_CHOOSE_POS_LUA_H #include "tool_choose_pos.h" #include "nel/misc/vector.h" #include "../interface_v3/lua_object.h" class CEntity; class CLuaObject; namespace R2 { /** * Choose a position and forward the result to lua */ class CToolChoosePosLua : public CToolChoosePos { public: NLMISC_DECLARE_CLASS(R2::CToolChoosePosLua); CToolChoosePosLua() { nlassert(0); } CToolChoosePosLua(uint ghostSlot, const CLuaObject &validFunc, const CLuaObject &cancelFunc, const std::string &toolName, const std::string &cursValid = "curs_create.tga", const std::string &cursInvalid = "curs_stop.tga", const std::vector &polyList = std::vector(), const CPrimLook &polyValidLook = CPrimLook(), const CPrimLook &polyInvalidLook = CPrimLook() ); virtual const char *getToolUIName() const { return _ToolName.c_str(); } protected: // from CToolChoosePos virtual void commit(const NLMISC::CVector &createPosition, float createAngle); virtual void cancel(); private: CLuaObject _ValidFunc; CLuaObject _CancelFunc; bool _Commited; std::string _ToolName; }; } // R2 #endif