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_OBJECT_INVISIBLE_BLOCK_HPP 18 #define HEADER_SUPERTUX_OBJECT_INVISIBLE_BLOCK_HPP 19 20 #include "object/block.hpp" 21 22 class ReaderMapping; 23 24 class InvisibleBlock final : public Block 25 { 26 public: 27 InvisibleBlock(const Vector& pos); 28 InvisibleBlock(const ReaderMapping& mapping); 29 get_class() const30 virtual std::string get_class() const override { return "invisible_block"; } get_display_name() const31 virtual std::string get_display_name() const override { return _("Invisible Block"); } 32 33 virtual void draw(DrawingContext& context) override; 34 virtual bool collides(GameObject& other, const CollisionHit& hit) const override; 35 virtual HitResponse collision(GameObject& other, const CollisionHit& hit) override; 36 37 private: 38 virtual void hit(Player& player) override; 39 40 private: 41 bool visible; 42 43 private: 44 InvisibleBlock(const InvisibleBlock&) = delete; 45 InvisibleBlock& operator=(const InvisibleBlock&) = delete; 46 }; 47 48 #endif 49 50 /* EOF */ 51