+public:
+ /**
+ Holds the parameters for an Effect. Used with SequenceTemplate.
+ */
+ struct Template
+ {
+ class Loader: public DataFile::CollectionObjectLoader<Template>
+ {
+ public:
+ Loader(Template &, Collection &);
+ protected:
+ virtual void init_actions();
+
+ private:
+ void enable_for_method(const std::string &);
+ };
+
+ std::string content_name;
+ std::vector<Tag> enabled_methods;
+
+ virtual ~Template() = default;
+
+ virtual Effect *create(const std::map<std::string, Renderable *> &) const = 0;
+ void create_base(Effect &) const;
+ };
+