]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/src/drainage.cpp
Mini bugfix.
[z.facultad/75.42/plaqui.git] / Model / src / drainage.cpp
1
2 #include "drainage.h"
3 #include <iostream>
4
5 using namespace PlaQui::Model;
6
7 Drainage::Drainage(const std::string &_name):Drain(_name),Control(_name)
8 {
9         in_slots = 1;
10         out_slots = 0;
11         capacity = INFINITO;
12         actual_flow = 0.0f;
13 }
14
15 Drainage::~Drainage()
16 {
17 }
18
19 void Drainage::update(int dir)
20 {
21         // El drenaje no tiene que actualizar
22         if (updated) return;
23         actual_flow = 0;
24         updated = true;
25 }
26
27 void Drainage::simulate()
28 {
29 #ifdef DEBUG
30         std::cout << name << "::Flujo recibido = " << actual_flow << std::endl;
31 #endif
32         updated = false;
33         color_updated = false;
34 }
35
36 void Drainage::recieve_msg(int msg, IConector *who, void *data)
37 {
38         float tmp;
39         switch (msg) {
40                 case MSG_QUERY_MAX_FLOW_OUT:
41                         // FIXME Hacer INFINITO !!!
42                         actual_flow = *((float *)data);
43                         who->recieve_msg(MSG_RESPONSE_MAX_FLOW, this, &actual_flow);
44                         updated = true;
45                 break;
46                 default:
47                         Drain::recieve_msg(msg, who, data);
48         }
49 }
50