-void Creature::Grow(double amount) noexcept {
- const double max_mass = AgeLerp(CurProps().mass, NextProps().mass);
- Mass(std::min(max_mass, mass + amount));
+void Creature::Ingest(int res, double amount) noexcept {
+ const Genome::Composition *cmp = nullptr;
+ for (const auto &c : genome.composition) {
+ if (c.resource == res) {
+ cmp = &c;
+ break;
+ }
+ }
+ if (cmp) {
+ const double max_mass = AgeLerp(CurProps().mass, NextProps().mass);
+ Mass(std::min(max_mass, mass + amount));
+ } else {
+ // foreign material. poisonous?
+ }