-
#include "plantitem.h"
+#include <iostream>
using namespace PlaQui::Model;
name = _name;
updated = false;
fluid_color = RGB(255,255,255);
+ color_updated = false;
}
PlantItem::PlantItem(unsigned ins, unsigned outs):IConector(ins, outs)
// TODO
return;
break;
+ case MSG_QUERY_COLOR:
+ if (color_updated) {
+ who->recieve_msg(MSG_RESPONSE_COLOR, this, &fluid_color);
+ }
+ update_color();
+ who->recieve_msg(MSG_RESPONSE_COLOR, this, &fluid_color);
+ break;
+ case MSG_RESPONSE_COLOR:
+ {
+ RGB *c = ((RGB *)data);
+ set_color(*c);
+ }
+ break;
default:
IConector::recieve_msg(msg, who, data);
}
}
+void PlantItem::update_color()
+{
+ if (color_updated) return;
+
+ send_msg(IConector::IN, MSG_QUERY_COLOR);
+ color_updated = true;
+}
+
void PlantItem::get_state_as_xml(std::stringstream &out)
{
out << "\t<float name=\"" << name << "\">" << std::endl;