+
+Sky *Sky::Template::create(const map<string, Renderable *> &renderables) const
+{
+ Renderable *content = get_item(renderables, content_name);
+ if(!content || !sun)
+ throw invalid_operation("Sky::Template::create");
+ return new Sky(*content, *sun);
+}
+
+
+DataFile::Loader::ActionMap Sky::Template::Loader::shared_actions;
+
+Sky::Template::Loader::Loader(Template &t, Collection &c):
+ DerivedObjectLoader<Template, Effect::Template::Loader>(t, c)
+{
+ set_actions(shared_actions);
+}
+
+void Sky::Template::Loader::init_actions()
+{
+ Effect::Template::Loader::init_actions();
+ add("sun", &Template::sun);
+}
+