1 // SuperTux 2 // Copyright (C) 2006 Matthias Braun <matze@braunis.de> 3 // 4 // This program is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17 #ifndef HEADER_SUPERTUX_SCRIPTING_PLATFORM_HPP 18 #define HEADER_SUPERTUX_SCRIPTING_PLATFORM_HPP 19 20 #ifndef SCRIPTING_API 21 #include "scripting/game_object.hpp" 22 23 class Platform; 24 #endif 25 26 namespace scripting { 27 28 class Platform final 29 #ifndef SCRIPTING_API 30 : public GameObject<::Platform> 31 #endif 32 { 33 #ifndef SCRIPTING_API 34 public: 35 using GameObject::GameObject; 36 private: 37 Platform(const Platform&) = delete; 38 Platform& operator=(const Platform&) = delete; 39 #endif 40 41 public: 42 /** Move platform until at given node, then stop */ 43 void goto_node(int node_no); 44 45 /** Start moving platform */ 46 void start_moving(); 47 48 /** Stop platform at next node */ 49 void stop_moving(); 50 51 /** Updates the platform to the given action */ 52 void set_action(const std::string& action, int repeat); 53 }; 54 55 } // namespace scripting 56 57 #endif 58 59 /* EOF */ 60