Browse Source

Replace object.location with matrix_world.translation

pull/290/head
Jrius 3 years ago
parent
commit
7bc99d0726
  1. 2
      korman/exporter/camera.py
  2. 2
      korman/exporter/material.py
  3. 2
      korman/exporter/mesh.py
  4. 5
      korman/properties/modifiers/avatar.py
  5. 4
      korman/properties/modifiers/gui.py
  6. 8
      korman/properties/modifiers/water.py
  7. 2
      korman/properties/prop_camera.py

2
korman/exporter/camera.py

@ -132,7 +132,7 @@ class CameraConverter:
# specifying an actual center allows you to do interesting things like animate the center... # specifying an actual center allows you to do interesting things like animate the center...
# Fascinating! Therefore, we will expose the Plasma Object... # Fascinating! Therefore, we will expose the Plasma Object...
if props.circle_center is None: if props.circle_center is None:
brain.center = hsVector3(*bo.location) brain.center = hsVector3(*bo.matrix_world.translation)
else: else:
brain.centerObject = self._mgr.find_create_key(plSceneObject, bl=props.circle_center) brain.centerObject = self._mgr.find_create_key(plSceneObject, bl=props.circle_center)
# This flag has no effect in CWE, but I'm using it for correctness' sake # This flag has no effect in CWE, but I'm using it for correctness' sake

2
korman/exporter/material.py

@ -779,7 +779,7 @@ class MaterialConverter:
# will probably want to steal it for diabolical purposes... In MOUL, root objects are # will probably want to steal it for diabolical purposes... In MOUL, root objects are
# allowed, but that introduces a gotcha with regard to animated roots and PotS. Also, # allowed, but that introduces a gotcha with regard to animated roots and PotS. Also,
# sharing root objects with a DCM seems to result in bad problems in game O.o # sharing root objects with a DCM seems to result in bad problems in game O.o
pl_env.position = hsVector3(*viewpt.location) pl_env.position = hsVector3(*viewpt.matrix_world.translation)
if layer is not None: if layer is not None:
layer.UVWSrc = plLayerInterface.kUVWReflect layer.UVWSrc = plLayerInterface.kUVWReflect

2
korman/exporter/mesh.py

@ -658,7 +658,7 @@ class MeshConverter(_MeshManager):
# FIXME: Can some of this be generalized? # FIXME: Can some of this be generalized?
geospan.props |= (plGeometrySpan.kWaterHeight | plGeometrySpan.kLiteVtxNonPreshaded | geospan.props |= (plGeometrySpan.kWaterHeight | plGeometrySpan.kLiteVtxNonPreshaded |
plGeometrySpan.kPropReverseSort | plGeometrySpan.kPropNoShadow) plGeometrySpan.kPropReverseSort | plGeometrySpan.kPropNoShadow)
geospan.waterHeight = bo.location[2] geospan.waterHeight = bo.matrix_world.translation[2]
return [_GeoSpan(bo, blmat, geospan)], None return [_GeoSpan(bo, blmat, geospan)], None
else: else:
geospans = [None] * len(materials) geospans = [None] * len(materials)

5
korman/properties/modifiers/avatar.py

@ -64,10 +64,7 @@ class PlasmaLadderModifier(PlasmaModifierProperties):
ladderVec = self.facing_object.matrix_world.translation - bo.matrix_world.translation ladderVec = self.facing_object.matrix_world.translation - bo.matrix_world.translation
else: else:
# Make our own artificial target -1.0 units back on the local Y axis. # Make our own artificial target -1.0 units back on the local Y axis.
world = bo.matrix_world.copy() ladderVec = mathutils.Vector((0, -1, 0)) * bo.matrix_world.inverted()
world.invert()
target = bo.location - (mathutils.Vector((0.0, 1.0, 0.0)) * world)
ladderVec = target - bo.matrix_local.translation
mod.ladderView = hsVector3(ladderVec.x, ladderVec.y, 0.0) mod.ladderView = hsVector3(ladderVec.x, ladderVec.y, 0.0)
mod.ladderView.normalize() mod.ladderView.normalize()

4
korman/properties/modifiers/gui.py

@ -230,7 +230,7 @@ class PlasmaJournalBookModifier(PlasmaModifierProperties, PlasmaModifierLogicWiz
if self.clickable_region is None: if self.clickable_region is None:
with utils.bmesh_object("{}_Journal_ClkRgn".format(self.key_name)) as (rgn_obj, bm): with utils.bmesh_object("{}_Journal_ClkRgn".format(self.key_name)) as (rgn_obj, bm):
bmesh.ops.create_cube(bm, size=(6.0)) bmesh.ops.create_cube(bm, size=(6.0))
bmesh.ops.transform(bm, matrix=mathutils.Matrix.Translation(bo.location - rgn_obj.location), bmesh.ops.transform(bm, matrix=mathutils.Matrix.Translation(bo.matrix_world.translation - rgn_obj.matrix_world.translation),
space=rgn_obj.matrix_world, verts=bm.verts) space=rgn_obj.matrix_world, verts=bm.verts)
rgn_obj.plasma_object.enabled = True rgn_obj.plasma_object.enabled = True
rgn_obj.hide_render = True rgn_obj.hide_render = True
@ -466,7 +466,7 @@ class PlasmaLinkingBookModifier(PlasmaModifierProperties, PlasmaModifierLogicWiz
if self.clickable_region is None: if self.clickable_region is None:
with utils.bmesh_object("{}_LinkingBook_ClkRgn".format(self.key_name)) as (rgn_obj, bm): with utils.bmesh_object("{}_LinkingBook_ClkRgn".format(self.key_name)) as (rgn_obj, bm):
bmesh.ops.create_cube(bm, size=(6.0)) bmesh.ops.create_cube(bm, size=(6.0))
rgn_offset = mathutils.Matrix.Translation(self.clickable.location - bo.location) rgn_offset = mathutils.Matrix.Translation(self.clickable.matrix_world.translation - bo.matrix_world.translation)
bmesh.ops.transform(bm, matrix=rgn_offset, space=bo.matrix_world, verts=bm.verts) bmesh.ops.transform(bm, matrix=rgn_offset, space=bo.matrix_world, verts=bm.verts)
rgn_obj.plasma_object.enabled = True rgn_obj.plasma_object.enabled = True
rgn_obj.hide_render = True rgn_obj.hide_render = True

8
korman/properties/modifiers/water.py

@ -114,7 +114,7 @@ class PlasmaSwimRegion(idprops.IDPropObjectMixin, PlasmaModifierProperties, bpy.
losdbs = ["kLOSDBSwimRegion"] losdbs = ["kLOSDBSwimRegion"]
member_group = "kGroupLOSOnly" if exporter.mgr.getVer() != pvMoul else "kGroupStatic" member_group = "kGroupLOSOnly" if exporter.mgr.getVer() != pvMoul else "kGroupStatic"
if bo.plasma_modifiers.water_basic.enabled: if bo.plasma_modifiers.water_basic.enabled:
exporter.physics.generate_flat_proxy(bo, so, z_coord=bo.location[2], exporter.physics.generate_flat_proxy(bo, so, z_coord=bo.matrix_world.translation[2],
member_group=member_group, member_group=member_group,
losdbs=losdbs) losdbs=losdbs)
else: else:
@ -125,7 +125,7 @@ class PlasmaSwimRegion(idprops.IDPropObjectMixin, PlasmaModifierProperties, bpy.
# Detector region bounds # Detector region bounds
if self.region is not None: if self.region is not None:
region_so = exporter.mgr.find_create_object(plSceneObject, bl=self.region) region_so = exporter.mgr.find_create_object(plSceneObject, bl=self.region)
# Good news: if this phys has already been exported, this is basically a noop # Good news: if this phys has already been exported, this is basically a noop
member_group = "kGroupDetector" if exporter.mgr.getVer() == "pvMoul" else "kGroupLOSOnly" member_group = "kGroupDetector" if exporter.mgr.getVer() == "pvMoul" else "kGroupLOSOnly"
exporter.physics.generate_physical(self.region, region_so, exporter.physics.generate_physical(self.region, region_so,
@ -258,7 +258,7 @@ class PlasmaWaterModifier(idprops.IDPropMixin, PlasmaModifierProperties, bpy.typ
# Stuff we expose # Stuff we expose
state = waveset.state state = waveset.state
state.rippleScale = self.ripple_scale state.rippleScale = self.ripple_scale
state.waterHeight = bo.location[2] state.waterHeight = bo.matrix_world.translation[2]
state.windDir = wind_dir state.windDir = wind_dir
state.specVector = hsVector3(self.noise / 100.0, self.specular_start, self.specular_end) state.specVector = hsVector3(self.noise / 100.0, self.specular_start, self.specular_end)
state.specularTint = hsColorRGBA(*self.specular_tint, alpha=self.specular_alpha) state.specularTint = hsColorRGBA(*self.specular_tint, alpha=self.specular_alpha)
@ -273,7 +273,7 @@ class PlasmaWaterModifier(idprops.IDPropMixin, PlasmaModifierProperties, bpy.typ
state.envCenter = dem.position state.envCenter = dem.position
state.envRefresh = dem.refreshRate state.envRefresh = dem.refreshRate
else: else:
state.envCenter = hsVector3(*bo.location) state.envCenter = hsVector3(*bo.matrix_world.translation)
state.envRefresh = 0.0 state.envRefresh = 0.0
state.envRadius = self.envmap_radius state.envRadius = self.envmap_radius

2
korman/properties/prop_camera.py

@ -225,7 +225,7 @@ class PlasmaCameraProperties(bpy.types.PropertyGroup):
"""Gets the circle camera radius for this camera when it is attached to the given Object""" """Gets the circle camera radius for this camera when it is attached to the given Object"""
assert bo is not None assert bo is not None
if self.circle_center is not None: if self.circle_center is not None:
vec = bo.location - self.circle_center.location vec = bo.matrix_world.translation - self.circle_center.matrix_world.translation
return vec.magnitude return vec.magnitude
return self.circle_radius_value return self.circle_radius_value

Loading…
Cancel
Save