- e.SetShape(world.BlockTypes()[1].shape, color);
- e.AngularVelocity(glm::quat(glm::vec3{ 0.00001f, 0.000006f, 0.000013f }));
- controllers.emplace_back(e);
+ RandomSkeleton().Instantiate(e.GetModel());
+ e.GetModel().SetTextures(tex_map);
+ e.AngularVelocity(rot);
+ Controller *ctrl;
+ if (random()) {
+ ctrl = new RandomWalk(e, random.Next<std::uint64_t>());
+ e.Name("walker");
+ } else {
+ ctrl = new Chaser(world, e, reference);
+ e.Name("chaser");
+ }
+ controllers.emplace_back(ctrl);
+}
+
+Model &Spawner::RandomSkeleton() noexcept {
+ std::size_t offset = (random.Next<std::size_t>() % skeletons_length) + skeletons_offset;
+ return skeletons[offset];