Honestly, either way will work for me.
So I'm having a bit of trouble deciding how to implement what exactly each component covers. Here's my thinking right now:
- cMovementComponent
- Stores information about each movement type, such as jumping/walking/running speed. Also does movement along the path as called by the movement behaviors.
- Should it contain the position, rotation, etc. of the mob, or should we leave that in the cEntity class?
- cAttackComponent
- Should this handle OnTakeDamage, or should cAIComponent do that?
- cModelComponent
- For mobs with inventory, should the inventory be a part of cAIComponent, or this one?
- cEnvironmentComponent
- How should we handle this one? I'm not quite sure how to implement this.
- Should we provide as part of the base class the ability to add blocks that are considered breathable?
This is just a short list of the things on my mind right now. I stopped being able to think coherently about 5 minutes ago.
Is anyone interested in rewriting the AI/Entity stuff? I don't really have time for a couple of months, otherwise I would do it myself. I really haven't been able to make any progress due to time constraints.
Tigerw I have to say I'm realy impressed with the new AI. Ofcourse there is still room for improvement but a zombie is now able to track me down and I think that is a huge step forward.
Is it maybe an idea to export the cMonster::MoveToPosition function to Lua?
Also maybe a function to set mob destination

The MoveToPosition does that (I think)

It does. You export it :D
Pity that you decided to code on top of the old AI code, that way we'll have to rewrite everything once we decide to really implement this new model. Which I think we should, rather sooner than later.
So I guess no one is going to start working on the new Entity and AI code till I am able to, huh?

I'll see if I can squeeze some time in to make some progress, I guess...