1 #ifndef BLOBLS_CREATURE_COMPOSITION_HPP_
2 #define BLOBLS_CREATURE_COMPOSITION_HPP_
16 Component(int r, double v)
17 : resource(r), value(v) { }
24 Composition(const Composition &) = delete;
25 Composition &operator =(const Composition &) = delete;
27 Composition(Composition &&) = delete;
28 Composition &operator =(Composition &&) = delete;
31 void Add(int res, double amount);
32 bool Has(int res) const noexcept;
33 double Get(int res) const noexcept;
34 double TotalMass() const noexcept { return total_mass; }
37 std::vector<Component>::size_type size() const noexcept { return components.size(); }
38 std::vector<Component>::iterator begin() noexcept { return components.begin(); }
39 std::vector<Component>::iterator end() noexcept { return components.end(); }
40 std::vector<Component>::const_iterator begin() const noexcept { return components.begin(); }
41 std::vector<Component>::const_iterator end() const noexcept { return components.end(); }
42 std::vector<Component>::const_iterator cbegin() noexcept { return components.cbegin(); }
43 std::vector<Component>::const_iterator cend() noexcept { return components.cend(); }
46 std::vector<Component> components;