From 3c28951b6eeeb19a11a29ca65c4fd2be25af1c7a Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 18 Jan 2016 15:24:27 -0500 Subject: [PATCH] Put FollowMod in the correct order --- korman/properties/modifiers/render.py | 110 +++++++++++++------------- korman/ui/modifiers/render.py | 12 +-- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/korman/properties/modifiers/render.py b/korman/properties/modifiers/render.py index 4fd49c9..05b1ae8 100644 --- a/korman/properties/modifiers/render.py +++ b/korman/properties/modifiers/render.py @@ -22,6 +22,61 @@ from .base import PlasmaModifierProperties from ...exporter import utils from ...exporter.explosions import ExportError +class PlasmaFollowMod(PlasmaModifierProperties): + pl_id = "followmod" + + bl_category = "Render" + bl_label = "Follow" + bl_description = "Follow the movement of the camera, player, or another object" + + follow_mode = EnumProperty(name="Mode", + description="Leader's movement to follow", + items=[ + ("kPositionX", "X Axis", "Follow the leader's X movements"), + ("kPositionY", "Y Axis", "Follow the leader's Y movements"), + ("kPositionZ", "Z Axis", "Follow the leader's Z movements"), + ("kRotate", "Rotation", "Follow the leader's rotation movements"), + ], + default={"kPositionX", "kPositionY", "kPositionZ"}, + options={"ENUM_FLAG"}) + + leader_type = EnumProperty(name="Leader Type", + description="Leader to follow", + items=[ + ("kFollowCamera", "Camera", "Follow the camera"), + ("kFollowListener", "Listener", "Follow listeners"), + ("kFollowPlayer", "Player", "Follow the local player"), + ("kFollowObject", "Object", "Follow an object"), + ]) + + leader_object = StringProperty(name="Leader Object", + description="Object to follow") + + def export(self, exporter, bo, so): + fm = exporter.mgr.find_create_object(plFollowMod, so=so, name=self.key_name) + + fm.mode = 0 + for flag in (getattr(plFollowMod, mode) for mode in self.follow_mode): + fm.mode |= flag + + fm.leaderType = getattr(plFollowMod, self.leader_type) + if self.leader_type == "kFollowObject": + # If this object is following another object, make sure that the + # leader has been selected and is a valid SO. + if self.leader_object: + leader_obj = bpy.data.objects.get(self.leader_object, None) + if leader_obj is None: + raise ExportError("'{}': Follow's leader object is invalid".format(self.key_name)) + else: + fm.leader = exporter.mgr.find_create_key(plSceneObject, bl=leader_obj) + else: + raise ExportError("'{}': Follow's leader object must be selected".format(self.key_name)) + + @property + def requires_actor(self): + return True + + class PlasmaLightMapGen(PlasmaModifierProperties): pl_id = "lightmap" @@ -251,58 +306,3 @@ class PlasmaVisibilitySet(PlasmaModifierProperties): if rgn_bo is None: raise ExportError("{}: Invalid VisControl '{}' in VisSet modifier".format(bo.name, region.region_name)) addRegion(exporter.mgr.find_create_key(plVisRegion, bl=rgn_bo)) - - -class PlasmaFollowMod(PlasmaModifierProperties): - pl_id = "followmod" - - bl_category = "Render" - bl_label = "Follow" - bl_description = "Follow the movement of the camera, player, or another object" - - follow_mode = EnumProperty(name="Mode", - description="Leader's movement to follow", - items=[ - ("kPositionX", "X Axis", "Follow the leader's X movements"), - ("kPositionY", "Y Axis", "Follow the leader's Y movements"), - ("kPositionZ", "Z Axis", "Follow the leader's Z movements"), - ("kRotate", "Rotation", "Follow the leader's rotation movements"), - ], - default={"kPositionX", "kPositionY", "kPositionZ"}, - options={"ENUM_FLAG"}) - - leader_type = EnumProperty(name="Leader Type", - description="Leader to follow", - items=[ - ("kFollowCamera", "Camera", "Follow the camera"), - ("kFollowListener", "Listener", "Follow listeners"), - ("kFollowPlayer", "Player", "Follow the local player"), - ("kFollowObject", "Object", "Follow an object"), - ]) - - leader_object = StringProperty(name="Leader Object", - description="Object to follow") - - def export(self, exporter, bo, so): - fm = exporter.mgr.find_create_object(plFollowMod, so=so, name=self.key_name) - - fm.mode = 0 - for flag in (getattr(plFollowMod, mode) for mode in self.follow_mode): - fm.mode |= flag - - fm.leaderType = getattr(plFollowMod, self.leader_type) - if self.leader_type == "kFollowObject": - # If this object is following another object, make sure that the - # leader has been selected and is a valid SO. - if self.leader_object: - leader_obj = bpy.data.objects.get(self.leader_object, None) - if leader_obj is None: - raise ExportError("'{}': Follow's leader object is invalid".format(self.key_name)) - else: - fm.leader = exporter.mgr.find_create_key(plSceneObject, bl=leader_obj) - else: - raise ExportError("'{}': Follow's leader object must be selected".format(self.key_name)) - - @property - def requires_actor(self): - return True diff --git a/korman/ui/modifiers/render.py b/korman/ui/modifiers/render.py index 0a0c956..2449280 100644 --- a/korman/ui/modifiers/render.py +++ b/korman/ui/modifiers/render.py @@ -15,6 +15,12 @@ import bpy +def followmod(modifier, layout, context): + layout.row().prop(modifier, "follow_mode", expand=True) + layout.prop(modifier, "leader_type") + if modifier.leader_type == "kFollowObject": + layout.prop_search(modifier, "leader_object", bpy.data, "objects", icon="OUTLINER_OB_MESH") + def lightmap(modifier, layout, context): layout.row(align=True).prop(modifier, "quality", expand=True) layout.prop_search(modifier, "light_group", bpy.data, "groups", icon="GROUP") @@ -90,9 +96,3 @@ def visregion(modifier, layout, context): # Other settings layout.prop(modifier, "replace_normal") - -def followmod(modifier, layout, context): - layout.row().prop(modifier, "follow_mode", expand=True) - layout.prop(modifier, "leader_type") - if modifier.leader_type == "kFollowObject": - layout.prop_search(modifier, "leader_object", bpy.data, "objects", icon="OUTLINER_OB_MESH")