Cacti aren't entities, they're just blocks.
As for entity health, pickups have kinda health - they get destroyed when any kind of damage is applied to them.
What about dispenced arrows? How their TDI will be/should be transcripted?
Instigator / killer should be null then I think
True, that does make sense - we might want to know which dispenser shot the arrow. Then the API would be incomplete. Any ideas?
This quite makes me inclined to really make the Attacker member a cEntity, so that it can point to the arrow being shot, and the cArrow would have all the info needed. So maybe it would make sense to move the weapon / armor API to cEntity, so that plugins don't need to check classnames all the time.
mmm, i just had an idea. Maybe you already considered and it doesn't work hehe... but what if you separate the damage portion of the API from the Weapon / Armor, and health . So you can give cEntity the ability to do damage, but they don't have "health or can wield Weapon and Armor to modify the damage sent.
Too much work in case it isn't used by the plugins at all - too many cItem copy-assignments. Especially when we add enchantments to items, so cItem copy-constructor becomes non-trivial.