* There is Ray::fromTo(), please use that
* the orientation * (0,0,-1) is a hack (what is that supposed to mean anyway?), please use a step of worldobject->transform().scale in the actual fire-direction to ignore the HardPointVoxel.