X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fai%2FSpawner.cpp;fp=src%2Fai%2FSpawner.cpp;h=1120b5b320c5987d415243314d3c58cf7c33ce37;hb=2ea26d9ca5eaeae65daa0edbbaeada8c1f23670e;hp=5b54c3eb56cd03dbb827f20bc754db5dbfb55a26;hpb=5304d1e3c1a1e90d474307f4f7eea812a61e483c;p=blank.git diff --git a/src/ai/Spawner.cpp b/src/ai/Spawner.cpp index 5b54c3e..1120b5b 100644 --- a/src/ai/Spawner.cpp +++ b/src/ai/Spawner.cpp @@ -21,24 +21,33 @@ Spawner::Spawner(World &world) , chunk_range(4) { EntityModel::Buffer buf; { - CuboidShape shape({{ -0.25f, -0.5f, -0.25f }, { 0.25f, 0.5f, 0.25f }}); + AABB bounds{{ -0.25f, -0.5f, -0.25f }, { 0.25f, 0.5f, 0.25f }}; + CuboidShape shape(bounds); shape.Vertices(buf, 1.0f); buf.colors.resize(shape.VertexCount(), { 1.0f, 1.0f, 0.0f }); models[0].Update(buf); + skeletons[0].Bounds(bounds); + skeletons[0].SetNodeModel(&models[0]); } { - CuboidShape shape({{ -0.5f, -0.25f, -0.5f }, { 0.5f, 0.25f, 0.5f }}); + AABB bounds{{ -0.5f, -0.25f, -0.5f }, { 0.5f, 0.25f, 0.5f }}; + CuboidShape shape(bounds); buf.Clear(); shape.Vertices(buf, 2.0f); buf.colors.resize(shape.VertexCount(), { 0.0f, 1.0f, 1.0f }); models[1].Update(buf); + skeletons[1].Bounds(bounds); + skeletons[1].SetNodeModel(&models[1]); } { - StairShape shape({{ -0.5f, -0.5f, -0.5f }, { 0.5f, 0.5f, 0.5f }}, { 0.4f, 0.4f }); + AABB bounds{{ -0.5f, -0.5f, -0.5f }, { 0.5f, 0.5f, 0.5f }}; + StairShape shape(bounds, { 0.4f, 0.4f }); buf.Clear(); shape.Vertices(buf, 3.0f); buf.colors.resize(shape.VertexCount(), { 1.0f, 0.0f, 1.0f }); models[2].Update(buf); + skeletons[2].Bounds(bounds); + skeletons[2].SetNodeModel(&models[2]); } timer.Start(); @@ -132,7 +141,7 @@ void Spawner::Spawn(const glm::ivec3 &chunk, const glm::vec3 &pos) { e.Position(chunk, pos); e.Bounds({ { -0.5f, -0.5f, -0.5f }, { 0.5f, 0.5f, 0.5f } }); e.WorldCollidable(true); - e.GetModel().SetNodeModel(&models[rand() % 3]); + skeletons[rand() % 3].Instantiate(e.GetModel()); e.AngularVelocity(rot); Controller *ctrl; if (rand() % 2) {