Yes, most commands will have overloads like this:
SetPosition(x,y,z)
SetPosition(Vec3)
For inputting floats, the default function will be to send the float values, and then internally the overloaded functions will just call that, i.e.:
void Entity::SetPosition(const Vec3& position, const bool& global)
{
SetPosition(position.x,position.y,position.z,global);
}
LuaBind works nicely with C++ and allows function overloading, something that was not possible with Lua in LE2, so in Lua you can do this:
entity:SetPosition(1,2,3)
entity:SetPosition(entity2.position)
x = entity.position.x
After reviewing the alternatives, I am 100% happy with Lua. It works really well together with C++, and it runs on everything.
I agree, the -> separator is ugly and inconvenient, but that's really a complaint of the C++ language itself. When Codewerks arrives, you'll be able to produce the same executables with the same C++ compilers, using a saner syntax.