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#include "object/electrifier.hpp"
18
19#include "supertux/sector.hpp"
20
21Electrifier::Electrifier(TileChangeMap replacements, float seconds) :
22 change_map(std::move(replacements)),
23 duration()
24{
25 duration.start(seconds);
26 for (auto& tile : change_map) {
27 Sector::get().change_solid_tiles(tile.first, tile.second);
28 }
29}
30
31Electrifier::Electrifier(uint32_t oldtile, uint32_t newtile, float seconds) :
32 change_map({{oldtile, newtile}}),
33 duration()
34{
35 duration.start(seconds);
36 for (auto& tile : change_map) {
37 Sector::get().change_solid_tiles(tile.first, tile.second);
38 }
39}
40
41void
42Electrifier::update(float )
43{
44 if (duration.check()) {
45 for (const auto& tile : change_map){
46 Sector::get().change_solid_tiles(tile.second, tile.first);
47 }
48 remove_me();
49 }
50}
51
52void
53Electrifier::draw(DrawingContext& )
54{
55}
56
57/* EOF */
58