]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blob - Model/src/drainage.cpp
* Se agrega un nuevo mensaje para intercambio de colores que anda muy bien
[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         // FIXME hacer INFINITO!
12         capacity = 99999;
13         actual_flow = 0.0f;
14 }
15
16 Drainage::~Drainage()
17 {
18 }
19
20 void Drainage::update(int dir)
21 {
22         // El drenaje no tiene que actualizar
23         if (updated) return;
24         actual_flow = 0;
25         updated = true;
26 }
27
28 void Drainage::simulate()
29 {
30 #ifdef DEBUG
31         std::cout << name << "::Flujo recibido = " << actual_flow << std::endl;
32 #endif
33         updated = false;
34         color_updated = false;
35         actual_flow = 0;
36 }
37
38 void Drainage::recieve_msg(int msg, IConector *who, void *data)
39 {
40         float tmp;
41         switch (msg) {
42                 case MSG_QUERY_MAX_FLOW_OUT:
43                         // FIXME Hacer INFINITO !!!
44                         actual_flow = *((float *)data);
45                         tmp = 999999;
46                         who->recieve_msg(MSG_RESPONSE_MAX_FLOW, this, &tmp);
47                         updated = true;
48                 break;
49                 default:
50                         Drain::recieve_msg(msg, who, data);
51         }
52 }
53