A few observed problems:
- In PotS, any physical parented to another object fell through the
floor on link in.
- In MOUL, physicals in a subworld were exported in the wrong coordinate
system. They were exported in local-to-world space, but MOUL expects
them in local-to-subworld space.
- In PotS, any scaled physical parented to another object wiped out the
visual (but not physical) scaling due to an improper flag setting.
Font objects were exported as a completely different SceneObject,
causing the parenting relationship to be broken. This ensures that the
drawable is properly attached to the correct SceneObject.
This was troublesome in that the Blender documentation implies that
`FCurve.range()` returns times when it actually returns frame numbers.
This superceeds and closes#216. Prefer this fix because
`functools.reduce` is not as readable and the formatting is closer to
what exists in the animation converter.
For some reason, SetDefExp2 type fog doesn't seem to work upon export, but regular SetDefExp does. This is just a proposed minor change to use the regular SetDefExp option if fixing the other is too big a task.
Separates ATC and AgeGlobal animtaions so we don't get any doubles between the two. Also, AgeGlobal doesn't need auto start and loop values as it does that automatically.
This fixes the layer preshade color to be black when runtime lighting is
requested. Further, both preshade and runtime are properly set to black
for emissive layers.
This appropriately marks spans as VtxNonPreshaded if they use vertex
alpha or runtime lighting. In those cases, we properly fold the runtime
light color into the vertex color as expected by Plasma.
This matches us up more closely with what PlasmaMAX does and allows us
to really fix x-raying effects by properly forcing objects into the
correct render pass.
We were only comparing connections in one direction in order to make the
list of suggestions. This ensures that suggested connections are
validated in both directions.
Blender can crash during export when baking vertex colors to shared mesh
data objects. Doing that can lead to lighting gotchas, but it's better
to have lighting gotchas than crashes.