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_RAIN_HPP 18 #define HEADER_SUPERTUX_SCRIPTING_RAIN_HPP 19 20 #ifndef SCRIPTING_API 21 #include "scripting/game_object.hpp" 22 23 class RainParticleSystem; 24 #endif 25 26 namespace scripting { 27 28 class Rain final 29 #ifndef SCRIPTING_API 30 : public GameObject<::RainParticleSystem> 31 #endif 32 { 33 #ifndef SCRIPTING_API 34 public: 35 using GameObject::GameObject; 36 37 private: 38 Rain(const Rain&) = delete; 39 Rain& operator=(const Rain&) = delete; 40 #endif 41 42 public: 43 void set_enabled(bool enable); 44 bool get_enabled() const; 45 46 /** Smoothly changes the rain speed to the given value */ 47 void fade_speed(float speed, float time); 48 49 /** Smoothly changes the amount of particles to the given value */ 50 void fade_amount(float amount, float time); 51 52 /** Smoothly changes the angle of the rain according to the easing function */ 53 void fade_angle(float angle, float time, const std::string& ease); 54 }; 55 56 } // namespace scripting 57 58 #endif 59 60 /* EOF */ 61