Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDalai Felinto <dfelinto@gmail.com>2009-05-24 08:45:10 +0400
committerDalai Felinto <dfelinto@gmail.com>2009-05-24 08:45:10 +0400
commit45f2463c833577852b2c9d3c85e435fc25b945bd (patch)
tree42aae2aedb34e3287d67c0247c994c2656f88286 /release
parent52b0a2b3dbf5c5e0b930dcaff8647ec1d06e2d3c (diff)
Patch #18815: BGE: More updates to deprecation documentation and 2.49 conversion script by Alex Frases(z0r)
- Fixed some deprecation warnings in documentation. - Added more conversions to script. - Added more attributes to script todo list. - Print out name of text buffer when encountering an error in batch mode. - Refactor: Simplified attribute map. - Added notImplemented function to print warnings for missing conversions. References documentation.
Diffstat (limited to 'release')
-rw-r--r--release/scripts/textplugin_convert_ge.py534
1 files changed, 292 insertions, 242 deletions
diff --git a/release/scripts/textplugin_convert_ge.py b/release/scripts/textplugin_convert_ge.py
index 043b40252d9..f3b44cdb14b 100644
--- a/release/scripts/textplugin_convert_ge.py
+++ b/release/scripts/textplugin_convert_ge.py
@@ -39,16 +39,23 @@ Tooltip: 'Attemps to update deprecated usage of game engine API.'
# recommended that you review all changes after running this script.
#
# TODO: The following attributes are either ambiguous or need special processing
-# to handle parameters.
+# to handle parameters. Deprecated attributes that map to multiple target
+# attributes will require a refactor of the main conversion loop in the
+# convert248to249 function: currently, it doesn't allow any conversion to
+# advance the row index by more than one.
#
-# getLinearVelocity (KX_SCA_AddObjectActuator)
+# getLinearVelocity (KX_SCA_AddObjectActuator, KX_ObjectActuator)
# Conflicts with KX_GameObject.
-# setLinearVelocity (KX_SCA_AddObjectActuator)
+# Maps to multiple attributes.
+# setLinearVelocity (KX_SCA_AddObjectActuator, KX_ObjectActuator)
# Conflicts with KX_GameObject.
-# getAngularVelocity (KX_SCA_AddObjectActuator)
+# Maps to multiple attributes.
+# getAngularVelocity (KX_SCA_AddObjectActuator, KX_ObjectActuator)
# Conflicts with KX_GameObject.
-# setAngularVelocity (KX_SCA_AddObjectActuator)
+# Maps to multiple attributes.
+# setAngularVelocity (KX_SCA_AddObjectActuator, KX_ObjectActuator)
# Conflicts with KX_GameObject.
+# Maps to multiple attributes.
# setAction (BL_ShapeActionActuator, BL_ActionActuator)
# `reset' argument has no conversion target.
# set (KX_VisibilityActuator, KX_IpoActuator)
@@ -69,6 +76,26 @@ Tooltip: 'Attemps to update deprecated usage of game engine API.'
# KX_GameObject.
# setOperation (KX_SCA_DynamicActuator, KX_StateActuator)
# Ambiguous: different target names.
+# getDRot (KX_ObjectActuator)
+# Maps to multiple attributes.
+# setDRot (KX_ObjectActuator)
+# Arguments map to multiple attributes.
+# getDLoc (KX_ObjectActuator)
+# Maps to multiple attributes.
+# setDLoc (KX_ObjectActuator)
+# Arguments map to multiple attributes.
+# getTorque (KX_ObjectActuator)
+# Maps to multiple attributes.
+# setTorque (KX_ObjectActuator)
+# Arguments map to multiple attributes.
+# getForce (KX_ObjectActuator)
+# Maps to multiple attributes.
+# setForce (KX_ObjectActuator)
+# Arguments map to multiple attributes.
+# position (KX_GameObject)
+# Conflicts with KX_SoundActuator.
+# orientation (KX_GameObject)
+# Conflicts with KX_SoundActuator.
#
import string
@@ -268,7 +295,9 @@ def replaceGetXYPosition(lines, row, colStart, colEnd, axis):
lines[row] = replaceSubstr(lines[row], colStart, colEnd, 'position')
def replaceRename(lines, row, colStart, colEnd, newName):
- """Replace an identifier with another, e.g. foo.getBar() -> foo.getBaz()
+ """Replace an identifier with another, e.g.
+ foo.getBar() -> foo.getBaz()
+ foo.bar -> foo.baz
The identifier being replaced must be on line `row' and between `colStart'
and `colEnd'."""
@@ -402,233 +431,268 @@ def replaceSetPosition(lines, row, colStart, colEnd, closure):
# It's probably a KX_GameObject.
replaceSimpleSetter(lines, row, colStart, colEnd, 'localPosition')
+def replaceSplitProperty(lines, row, colStart, colEnd, (newGetter, newSetter)):
+ '''Some property attributes behave differently when being written to or read
+ from. Try to determine the operation, and replace accordingly. E.G.
+ o.position = foo -> o.localPosition = foo # set
+ foo = o.position -> foo = o.worldPosition # get
+
+ This implementation can not handle cases where the object is returned from
+ a function, e.g.
+ foo = bar.getObject().position # Error!
+
+ Raises a ConversionError if the operation can't be determined, or if the
+ object is returned from a function.'''
+ assnRegex = re.compile(r'(=\s*)?' # Getter
+ r'[a-zA-Z_]\w*' # Object identifier
+ r'\.([a-zA-Z_][a-zA-Z0-9_.]*)+' # Trailing attributes
+ r'(\s*=)?') # Setter
+ match = assnRegex.search(lines[row])
+
+ if not match:
+ raise ConversionError, "Can't determine operation (getting or setting)."
+
+ setting = False
+ getting = False
+ if match.group(1):
+ getting = True
+ if match.group(3):
+ setting = True
+ if (getting and setting) or ((not getting) and (not setting)):
+ raise ConversionError, "Can't determine operation (getting or setting)."
+
+ if getting:
+ replaceRename(lines, row, colStart, colEnd, newGetter)
+ else:
+ replaceRename(lines, row, colStart, colEnd, newSetter)
+
+def notImplemented(lines, row, colStart, colEnd, classNames):
+ message = "Conversion not implemented. See documentation for " +\
+ string.join(classNames, ', ')
+ raise ConversionError, message
+
#
# Deprecated attribute information. The format is:
-# deprecatedAttributeName: {(conversionFunction, closure): classList}
+# deprecatedAttributeName: (conversionFunction, closure)
# Usually the closure will be the name of the superceding attribute.
#
-# If an attribute maps to more than one function/attribute pair, the conversion
-# is ambiguous and can't be performed.
+# Since each deprecated attribute can appear in this dictionary only once, it is
+# the conversion function's responsibility to resolve ambiguity.
#
attributeRenameDict = {
# Special cases
- 'addActiveActuator': {(replaceAddActiveActuator, None): []},
- 'getActuator': {(replaceGetActuator, None): ['SCA_IController', 'SCA_ActuatorSensor']},
- 'getXPosition': {(replaceGetXYPosition, '0'): ['SCA_MouseSensor']},
- 'getYPosition': {(replaceGetXYPosition, '1'): ['SCA_MouseSensor']},
- 'setOrientation': {(replaceSetOrientation, None): ['KX_GameObject', 'KX_SoundActuator']},
- 'setPosition': {(replaceSetPosition, None): ['KX_GameObject', 'KX_SoundActuator']},
+ 'addActiveActuator': (replaceAddActiveActuator, None), #
+ 'getActuator': (replaceGetActuator, None), # SCA_IController, SCA_ActuatorSensor
+ 'getXPosition': (replaceGetXYPosition, '0'), # SCA_MouseSensor
+ 'getYPosition': (replaceGetXYPosition, '1'), # SCA_MouseSensor
+ 'setOrientation': (replaceSetOrientation, None), # KX_GameObject, KX_SoundActuator
+ 'setPosition': (replaceSetPosition, None), # KX_GameObject, KX_SoundActuator
# Keyed getters/setters
- 'getSensor': {(replaceKeyedGetter, 'sensors'): ['SCA_IController']},
+ 'getSensor': (replaceKeyedGetter, 'sensors'), # SCA_IController
# Multi-arg -> List setter
- 'setAxis': {(replaceArgsWithListSetter, 'axis'): ['SCA_JoystickSensor']},
- 'setHat': {(replaceArgsWithListSetter, 'hat'): ['SCA_JoystickSensor']},
- 'setVelocity': {(replaceArgsWithListSetter, 'velocity'): ['KX_SoundActuator']},
+ 'setAxis': (replaceArgsWithListSetter, 'axis'), # SCA_JoystickSensor
+ 'setForceLimitX': (replaceArgsWithListSetter, 'forceLimitX'), # KX_ObjectActuator
+ 'setForceLimitY': (replaceArgsWithListSetter, 'forceLimitY'), # KX_ObjectActuator
+ 'setForceLimitZ': (replaceArgsWithListSetter, 'forceLimitZ'), # KX_ObjectActuator
+ 'setHat': (replaceArgsWithListSetter, 'hat'), # SCA_JoystickSensor
+ 'setPID': (replaceArgsWithListSetter, 'pid'), # KX_ObjectActuator
+ 'setVelocity': (replaceArgsWithListSetter, 'velocity'), # KX_SoundActuator
# Straight rename
- 'getButtonValue': {(replaceRename, 'getButtonActiveList'): ['SCA_JoystickSensor']},
+ 'getButtonValue': (replaceRename, 'getButtonActiveList'), # SCA_JoystickSensor
+
+ # Split properties
+ 'scaling': (replaceSplitProperty, ('worldScaling', 'localScaling')), # KX_GameObject
# Simple getters/setters
- 'getSensors': {(replaceSimpleGetter, 'sensors'): ['SCA_IController']},
- 'getActuators': {(replaceSimpleGetter, 'actuators'): ['SCA_IController']},
- 'enableViewport': {(replaceSimpleSetter, 'useViewport'): ['KX_Camera']},
- 'getAction': {(replaceSimpleGetter, 'action'): ['BL_ShapeActionActuator', 'BL_ActionActuator']},
- 'getAxis': {(replaceSimpleGetter, 'axis'): ['SCA_JoystickSensor']},
- 'getAxisValue': {(replaceSimpleGetter, 'axisValues'): ['SCA_JoystickSensor']},
- 'getBlendin': {(replaceSimpleGetter, 'blendIn'): ['BL_ShapeActionActuator',
- 'BL_ActionActuator']},
- 'getBodies': {(replaceSimpleGetter, 'bodies'): ['KX_NetworkMessageSensor']},
- 'getButton': {(replaceSimpleGetter, 'button'): ['SCA_JoystickSensor']},
- 'getCamera': {(replaceSimpleGetter, 'camera'): ['KX_SceneActuator']},
- 'getConeOrigin': {(replaceSimpleGetter, 'coneOrigin'): ['KX_RadarSensor']},
- 'getConeTarget': {(replaceSimpleGetter, 'coneTarget'): ['KX_RadarSensor']},
- 'getContinue': {(replaceSimpleGetter, 'useContinue'): ['BL_ActionActuator']},
- 'getCurrentlyPressedKeys': {(replaceSimpleGetter, 'events'): ['SCA_KeyboardSensor']},
- 'getDelay': {(replaceSimpleGetter, 'delay'): ['SCA_DelaySensor']},
- 'getDistribution': {(replaceSimpleGetter, 'distribution'): ['SCA_RandomActuator']},
- 'getDuration': {(replaceSimpleGetter, 'duration'): ['SCA_DelaySensor']},
- 'getEnd': {(replaceSimpleGetter, 'frameEnd'): ['BL_ShapeActionActuator',
- 'KX_IpoActuator',
- 'BL_ActionActuator']},
- 'getExecutePriority': {(replaceSimpleGetter, 'executePriority'): ['SCA_ILogicBrick']},
- 'getFile': {(replaceSimpleGetter, 'fileName'): ['KX_GameActuator']},
- 'getFilename': {(replaceSimpleGetter, 'fileName'): ['KX_SoundActuator']},
- 'getForceIpoActsLocal': {(replaceSimpleGetter, 'useIpoLocal'): ['KX_IpoActuator']},
- 'getFrame': {(replaceSimpleGetter, 'frame'): ['BL_ShapeActionActuator', 'BL_ActionActuator']},
- 'getFrameMessageCount': {(replaceSimpleGetter, 'frameMessageCount'): ['KX_NetworkMessageSensor']},
- 'getFrameProperty': {(replaceSimpleGetter, 'framePropName'): ['BL_ShapeActionActuator',
- 'BL_ActionActuator']},
- 'getFrequency': {(replaceSimpleGetter, 'frequency'): ['SCA_ISensor']},
- 'getGain': {(replaceSimpleGetter, 'volume'): ['KX_SoundActuator', 'KX_CDActuator']},
- 'getHat': {(replaceSimpleGetter, 'hat'): ['SCA_JoystickSensor']},
- 'getHeight': {(replaceSimpleGetter, 'height'): ['KX_CameraActuator']},
- 'getHitNormal': {(replaceSimpleGetter, 'hitNormal'): ['KX_MouseFocusSensor', 'KX_RaySensor']},
- 'getHitObject': {(replaceSimpleGetter, 'hitObject'): ['KX_MouseFocusSensor',
- 'KX_RaySensor',
- 'KX_TouchSensor']},
- 'getHitObjectList': {(replaceSimpleGetter, 'hitObjectList'): ['KX_TouchSensor']},
- 'getHitPosition': {(replaceSimpleGetter, 'hitPosition'): ['KX_MouseFocusSensor',
- 'KX_RaySensor']},
- 'getHold1': {(replaceSimpleGetter, 'hold1'): ['SCA_KeyboardSensor']},
- 'getHold2': {(replaceSimpleGetter, 'hold2'): ['SCA_KeyboardSensor']},
- 'getInvert': {(replaceSimpleGetter, 'invert'): ['SCA_ISensor']},
- 'getIpoAdd': {(replaceSimpleGetter, 'useIpoAdd'): ['KX_IpoActuator']},
- 'getIpoAsForce': {(replaceSimpleGetter, 'useIpoAsForce'): ['KX_IpoActuator']},
- 'getKey': {(replaceSimpleGetter, 'key'): ['SCA_KeyboardSensor']},
- 'getLastCreatedObject': {(replaceSimpleGetter, 'objectLastCreated'): ['KX_SCA_AddObjectActuator']},
- 'getLevel': {(replaceSimpleGetter, 'level'): ['SCA_ISensor']},
- 'getLightList': {(replaceSimpleGetter, 'lights'): ['KX_Scene']},
- 'getLooping': {(replaceSimpleGetter, 'looping'): ['KX_SoundActuator']},
- 'getMass': {(replaceSimpleGetter, 'mass'): ['KX_GameObject']},
- 'getMax': {(replaceSimpleGetter, 'max'): ['KX_CameraActuator']},
- 'getMin': {(replaceSimpleGetter, 'min'): ['KX_CameraActuator']},
- 'getName': {(replaceSimpleGetter, 'name'): ['KX_Scene']},
- 'getNumAxes': {(replaceSimpleGetter, 'numAxis'): ['SCA_JoystickSensor']},
- 'getNumButtons': {(replaceSimpleGetter, 'numButtons'): ['SCA_JoystickSensor']},
- 'getNumHats': {(replaceSimpleGetter, 'numHats'): ['SCA_JoystickSensor']},
- 'getObjectList': {(replaceSimpleGetter, 'objects'): ['KX_Scene']},
- 'getOperation': {(replaceSimpleGetter, 'mode'): ['KX_SCA_DynamicActuator']},
- 'getOrientation': {(replaceSimpleGetter, 'worldOrientation'): ['KX_GameObject']},
- 'getOwner': {(replaceSimpleGetter, 'owner'): ['SCA_ILogicBrick']},
- 'getPara1': {(replaceSimpleGetter, 'para1'): ['SCA_RandomActuator']},
- 'getPara2': {(replaceSimpleGetter, 'para2'): ['SCA_RandomActuator']},
- 'getParent': {(replaceSimpleGetter, 'parent'): ['KX_GameObject']},
- 'getPitch': {(replaceSimpleGetter, 'pitch'): ['KX_SoundActuator']},
- 'getPosition': {(replaceSimpleGetter, 'worldPosition'): ['KX_GameObject']},
- 'getPressedKeys': {(replaceSimpleGetter, 'events'): ['SCA_KeyboardSensor']},
- 'getPriority': {(replaceSimpleGetter, 'priority'): ['BL_ShapeActionActuator',
- 'BL_ActionActuator']},
- 'getProjectionMatrix': {(replaceSimpleGetter, 'projection_matrix'): ['KX_Camera']},
- 'getProperty': {(replaceSimpleGetter, 'propName'): ['SCA_PropertySensor',
- 'SCA_RandomActuator',
- 'SCA_PropertyActuator']},
- 'getRayDirection': {(replaceSimpleGetter, 'rayDirection'): ['KX_MouseFocusSensor',
- 'KX_RaySensor']},
- 'getRaySource': {(replaceSimpleGetter, 'raySource'): ['KX_MouseFocusSensor']},
- 'getRayTarget': {(replaceSimpleGetter, 'rayTarget'): ['KX_MouseFocusSensor']},
- 'getRepeat': {(replaceSimpleGetter, 'repeat'): ['SCA_DelaySensor']},
- 'getRollOffFactor': {(replaceSimpleGetter, 'rollOffFactor'): ['KX_SoundActuator']},
- 'getScene': {(replaceSimpleGetter, 'scene'): ['KX_SceneActuator']},
- 'getScript': {(replaceSimpleGetter, 'script'): ['SCA_PythonController']},
- 'getSeed': {(replaceSimpleGetter, 'seed'): ['SCA_RandomActuator']},
- 'getStart': {(replaceSimpleGetter, 'frameStart'): ['BL_ShapeActionActuator',
- 'KX_IpoActuator',
- 'BL_ActionActuator']},
- 'getState': {(replaceSimpleGetter, 'state'): ['SCA_IController', 'KX_GameObject']},
- 'getSubject': {(replaceSimpleGetter, 'subject'): ['KX_NetworkMessageSensor']},
- 'getSubjects': {(replaceSimpleGetter, 'subjects'): ['KX_NetworkMessageSensor']},
- 'getThreshold': {(replaceSimpleGetter, 'threshold'): ['SCA_JoystickSensor']},
- 'getTime': {(replaceSimpleGetter, 'time'): ['KX_SCA_AddObjectActuator', 'KX_TrackToActuator']},
- 'getTouchMaterial': {(replaceSimpleGetter, 'useMaterial'): ['KX_TouchSensor']},
- 'getType': {(replaceSimpleGetter, 'mode'): ['SCA_PropertySensor']},
- 'getUse3D': {(replaceSimpleGetter, 'use3D'): ['KX_TrackToActuator']},
- 'getUseNegPulseMode': {(replaceSimpleGetter, 'useNegPulseMode'): ['SCA_ISensor']},
- 'getUsePosPulseMode': {(replaceSimpleGetter, 'usePosPulseMode'): ['SCA_ISensor']},
- 'getUseRestart': {(replaceSimpleGetter, 'useRestart'): ['KX_SceneActuator']},
- 'getValue': {(replaceSimpleGetter, 'value'): ['SCA_PropertySensor', 'SCA_PropertyActuator']},
- 'getVisible': {(replaceSimpleGetter, 'visible'): ['KX_GameObject']},
- 'getXY': {(replaceSimpleGetter, 'useXY'): ['KX_CameraActuator']},
- 'isConnected': {(replaceSimpleGetter, 'connected'): ['SCA_JoystickSensor']},
- 'isPositive': {(replaceSimpleGetter, 'positive'): ['SCA_ISensor']},
- 'isTriggered': {(replaceSimpleGetter, 'triggered'): ['SCA_ISensor']},
- 'setActuator': {(replaceSimpleSetter, 'actuator'): ['SCA_ActuatorSensor']},
- 'setBlendin': {(replaceSimpleSetter, 'blendIn'): ['BL_ShapeActionActuator',
- 'BL_ActionActuator']},
- 'setBlendtime': {(replaceSimpleSetter, 'blendTime'): ['BL_ShapeActionActuator',
- 'BL_ActionActuator']},
- 'setBodyType': {(replaceSimpleSetter, 'usePropBody'): ['KX_NetworkMessageActuator']},
- 'setButton': {(replaceSimpleSetter, 'button'): ['SCA_JoystickSensor']},
- 'setCamera': {(replaceSimpleSetter, 'camera'): ['KX_SceneActuator']},
- 'setContinue': {(replaceSimpleSetter, 'useContinue'): ['BL_ActionActuator']},
- 'setDelay': {(replaceSimpleSetter, 'delay'): ['SCA_DelaySensor']},
- 'setDuration': {(replaceSimpleSetter, 'duration'): ['SCA_DelaySensor']},
- 'setEnd': {(replaceSimpleSetter, 'frameEnd'): ['BL_ShapeActionActuator',
- 'KX_IpoActuator',
- 'BL_ActionActuator']},
- 'setExecutePriority': {(replaceSimpleSetter, 'executePriority'): ['SCA_ILogicBrick']},
- 'setFile': {(replaceSimpleSetter, 'fileName'): ['KX_GameActuator']},
- 'setFilename': {(replaceSimpleSetter, 'fileName'): ['KX_SoundActuator']},
- 'setForceIpoActsLocal': {(replaceSimpleSetter, 'useIpoLocal'): ['KX_IpoActuator']},
- 'setFrame': {(replaceSimpleSetter, 'frame'): ['BL_ShapeActionActuator', 'BL_ActionActuator']},
- 'setFrameProperty': {(replaceSimpleSetter, 'framePropName'): ['BL_ShapeActionActuator',
- 'BL_ActionActuator']},
- 'setFrequency': {(replaceSimpleSetter, 'frequency'): ['SCA_ISensor']},
- 'setGain': {(replaceSimpleSetter, 'volume'): ['KX_SoundActuator', 'KX_CDActuator']},
- 'setHeight': {(replaceSimpleSetter, 'height'): ['KX_CameraActuator']},
- 'setHold1': {(replaceSimpleSetter, 'hold1'): ['SCA_KeyboardSensor']},
- 'setHold2': {(replaceSimpleSetter, 'hold2'): ['SCA_KeyboardSensor']},
- 'setInvert': {(replaceSimpleSetter, 'invert'): ['SCA_ISensor']},
- 'setIpoAdd': {(replaceSimpleSetter, 'useIpoAdd'): ['KX_IpoActuator']},
- 'setIpoAsForce': {(replaceSimpleSetter, 'useIpoAsForce'): ['KX_IpoActuator']},
- 'setKey': {(replaceSimpleSetter, 'key'): ['SCA_KeyboardSensor']},
- 'setLevel': {(replaceSimpleSetter, 'level'): ['SCA_ISensor']},
- 'setLooping': {(replaceSimpleSetter, 'looping'): ['KX_SoundActuator']},
- 'setMask': {(replaceSimpleSetter, 'mask'): ['KX_StateActuator']},
- 'setMax': {(replaceSimpleSetter, 'max'): ['KX_CameraActuator']},
- 'setMesh': {(replaceSimpleSetter, 'mesh'): ['KX_SCA_ReplaceMeshActuator']},
- 'setMin': {(replaceSimpleSetter, 'min'): ['KX_CameraActuator']},
- 'setPitch': {(replaceSimpleSetter, 'pitch'): ['KX_SoundActuator']},
- 'setPriority': {(replaceSimpleSetter, 'priority'): ['BL_ShapeActionActuator',
- 'BL_ActionActuator']},
- 'setProjectionMatrix': {(replaceSimpleSetter, 'projection_matrix'): ['KX_Camera']},
- 'setProperty': {(replaceSimpleSetter, 'propName'): ['KX_IpoActuator',
- 'SCA_PropertySensor',
- 'SCA_RandomActuator',
- 'SCA_PropertyActuator']},
- 'setRepeat': {(replaceSimpleSetter, 'repeat'): ['SCA_DelaySensor']},
- 'setRollOffFactor': {(replaceSimpleSetter, 'rollOffFactor'): ['KX_SoundActuator']},
- 'setScene': {(replaceSimpleSetter, 'scene'): ['KX_SceneActuator']},
- 'setScript': {(replaceSimpleSetter, 'script'): ['SCA_PythonController']},
- 'setSeed': {(replaceSimpleSetter, 'seed'): ['SCA_RandomActuator']},
- 'setStart': {(replaceSimpleSetter, 'frameStart'): ['BL_ShapeActionActuator',
- 'KX_IpoActuator',
- 'BL_ActionActuator']},
- 'setState': {(replaceSimpleSetter, 'state'): ['KX_GameObject']},
- 'setSubject': {(replaceSimpleSetter, 'subject'): ['KX_NetworkMessageActuator']},
- 'setSubjectFilterText': {(replaceSimpleSetter, 'subject'): ['KX_NetworkMessageSensor']},
- 'setThreshold': {(replaceSimpleSetter, 'threshold'): ['SCA_JoystickSensor']},
- 'setTime': {(replaceSimpleSetter, 'time'): ['KX_SCA_AddObjectActuator', 'KX_TrackToActuator']},
- 'setToPropName': {(replaceSimpleSetter, 'propName'): ['KX_NetworkMessageActuator']},
- 'setType': {(replaceSimpleSetter, 'mode'): ['SCA_PropertySensor']},
- 'setUse3D': {(replaceSimpleSetter, 'use3D'): ['KX_TrackToActuator']},
- 'setUseNegPulseMode': {(replaceSimpleSetter, 'useNegPulseMode'): ['SCA_ISensor']},
- 'setUsePosPulseMode': {(replaceSimpleSetter, 'usePosPulseMode'): ['SCA_ISensor']},
- 'setUseRestart': {(replaceSimpleSetter, 'useRestart'): ['KX_SceneActuator']},
- 'setValue': {(replaceSimpleSetter, 'value'): ['SCA_PropertySensor', 'SCA_PropertyActuator']},
- 'setXY': {(replaceSimpleSetter, 'useXY'): ['KX_CameraActuator']}
+ 'getSensors': (replaceSimpleGetter, 'sensors'), # SCA_IController
+ 'getActuators': (replaceSimpleGetter, 'actuators'), # SCA_IController
+ 'enableViewport': (replaceSimpleSetter, 'useViewport'), # KX_Camera
+ 'getAction': (replaceSimpleGetter, 'action'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'getAxis': (replaceSimpleGetter, 'axis'), # SCA_JoystickSensor
+ 'getAxisValue': (replaceSimpleGetter, 'axisValues'), # SCA_JoystickSensor
+ 'getBlendin': (replaceSimpleGetter, 'blendIn'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'getBodies': (replaceSimpleGetter, 'bodies'), # KX_NetworkMessageSensor
+ 'getButton': (replaceSimpleGetter, 'button'), # SCA_JoystickSensor
+ 'getCamera': (replaceSimpleGetter, 'camera'), # KX_SceneActuator
+ 'getConeOrigin': (replaceSimpleGetter, 'coneOrigin'), # KX_RadarSensor
+ 'getConeTarget': (replaceSimpleGetter, 'coneTarget'), # KX_RadarSensor
+ 'getContinue': (replaceSimpleGetter, 'useContinue'), # BL_ActionActuator
+ 'getCurrentlyPressedKeys': (replaceSimpleGetter, 'events'), # SCA_KeyboardSensor
+ 'getDamping': (replaceSimpleGetter, 'damping'), # KX_ObjectActuator
+ 'getDelay': (replaceSimpleGetter, 'delay'), # SCA_DelaySensor
+ 'getDistribution': (replaceSimpleGetter, 'distribution'), # SCA_RandomActuator
+ 'getDuration': (replaceSimpleGetter, 'duration'), # SCA_DelaySensor
+ 'getEnd': (replaceSimpleGetter, 'frameEnd'), # BL_ShapeActionActuator, KX_IpoActuator, BL_ActionActuator
+ 'getExecutePriority': (replaceSimpleGetter, 'executePriority'), # SCA_ILogicBrick
+ 'getFile': (replaceSimpleGetter, 'fileName'), # KX_GameActuator
+ 'getFilename': (replaceSimpleGetter, 'fileName'), # KX_SoundActuator
+ 'getForceIpoActsLocal': (replaceSimpleGetter, 'useIpoLocal'), # KX_IpoActuator
+ 'getForceLimitX': (replaceSimpleGetter, 'forceLimitX'), # KX_ObjectActuator
+ 'getForceLimitY': (replaceSimpleGetter, 'forceLimitY'), # KX_ObjectActuator
+ 'getForceLimitZ': (replaceSimpleGetter, 'forceLimitZ'), # KX_ObjectActuator
+ 'getFrame': (replaceSimpleGetter, 'frame'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'getFrameMessageCount': (replaceSimpleGetter, 'frameMessageCount'), # KX_NetworkMessageSensor
+ 'getFrameProperty': (replaceSimpleGetter, 'framePropName'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'getFrequency': (replaceSimpleGetter, 'frequency'), # SCA_ISensor
+ 'getGain': (replaceSimpleGetter, 'volume'), # KX_SoundActuator, KX_CDActuator
+ 'getHat': (replaceSimpleGetter, 'hat'), # SCA_JoystickSensor
+ 'getHeight': (replaceSimpleGetter, 'height'), # KX_CameraActuator
+ 'getHitNormal': (replaceSimpleGetter, 'hitNormal'), # KX_MouseFocusSensor, KX_RaySensor
+ 'getHitObject': (replaceSimpleGetter, 'hitObject'), # KX_MouseFocusSensor, KX_RaySensor, KX_TouchSensor
+ 'getHitObjectList': (replaceSimpleGetter, 'hitObjectList'), # KX_TouchSensor
+ 'getHitPosition': (replaceSimpleGetter, 'hitPosition'), # KX_MouseFocusSensor, KX_RaySensor
+ 'getHold1': (replaceSimpleGetter, 'hold1'), # SCA_KeyboardSensor
+ 'getHold2': (replaceSimpleGetter, 'hold2'), # SCA_KeyboardSensor
+ 'getInvert': (replaceSimpleGetter, 'invert'), # SCA_ISensor
+ 'getIpoAdd': (replaceSimpleGetter, 'useIpoAdd'), # KX_IpoActuator
+ 'getIpoAsForce': (replaceSimpleGetter, 'useIpoAsForce'), # KX_IpoActuator
+ 'getKey': (replaceSimpleGetter, 'key'), # SCA_KeyboardSensor
+ 'getLastCreatedObject': (replaceSimpleGetter, 'objectLastCreated'), # KX_SCA_AddObjectActuator
+ 'getLevel': (replaceSimpleGetter, 'level'), # SCA_ISensor
+ 'getLightList': (replaceSimpleGetter, 'lights'), # KX_Scene
+ 'getLooping': (replaceSimpleGetter, 'looping'), # KX_SoundActuator
+ 'getMass': (replaceSimpleGetter, 'mass'), # KX_GameObject
+ 'getMax': (replaceSimpleGetter, 'max'), # KX_CameraActuator
+ 'getMin': (replaceSimpleGetter, 'min'), # KX_CameraActuator
+ 'getName': (replaceSimpleGetter, 'name'), # KX_Scene
+ 'getNumAxes': (replaceSimpleGetter, 'numAxis'), # SCA_JoystickSensor
+ 'getNumButtons': (replaceSimpleGetter, 'numButtons'), # SCA_JoystickSensor
+ 'getNumHats': (replaceSimpleGetter, 'numHats'), # SCA_JoystickSensor
+ 'getObjectList': (replaceSimpleGetter, 'objects'), # KX_Scene
+ 'getOperation': (replaceSimpleGetter, 'mode'), # KX_SCA_DynamicActuator
+ 'getOrientation': (replaceSimpleGetter, 'worldOrientation'), # KX_GameObject
+ 'getOwner': (replaceSimpleGetter, 'owner'), # SCA_ILogicBrick
+ 'getPara1': (replaceSimpleGetter, 'para1'), # SCA_RandomActuator
+ 'getPara2': (replaceSimpleGetter, 'para2'), # SCA_RandomActuator
+ 'getParent': (replaceSimpleGetter, 'parent'), # KX_GameObject
+ 'getPID': (replaceSimpleGetter, 'pid'), # KX_ObjectActuator
+ 'getPitch': (replaceSimpleGetter, 'pitch'), # KX_SoundActuator
+ 'getPosition': (replaceSimpleGetter, 'worldPosition'), # KX_GameObject
+ 'getPressedKeys': (replaceSimpleGetter, 'events'), # SCA_KeyboardSensor
+ 'getPriority': (replaceSimpleGetter, 'priority'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'getProjectionMatrix': (replaceSimpleGetter, 'projection_matrix'), # KX_Camera
+ 'getProperty': (replaceSimpleGetter, 'propName'), # SCA_PropertySensor, SCA_RandomActuator, SCA_PropertyActuator
+ 'getRayDirection': (replaceSimpleGetter, 'rayDirection'), # KX_MouseFocusSensor, KX_RaySensor
+ 'getRaySource': (replaceSimpleGetter, 'raySource'), # KX_MouseFocusSensor
+ 'getRayTarget': (replaceSimpleGetter, 'rayTarget'), # KX_MouseFocusSensor
+ 'getRepeat': (replaceSimpleGetter, 'repeat'), # SCA_DelaySensor
+ 'getRollOffFactor': (replaceSimpleGetter, 'rollOffFactor'), # KX_SoundActuator
+ 'getScene': (replaceSimpleGetter, 'scene'), # KX_SceneActuator
+ 'getScript': (replaceSimpleGetter, 'script'), # SCA_PythonController
+ 'getSeed': (replaceSimpleGetter, 'seed'), # SCA_RandomActuator
+ 'getStart': (replaceSimpleGetter, 'frameStart'), # BL_ShapeActionActuator, KX_IpoActuator, BL_ActionActuator
+ 'getState': (replaceSimpleGetter, 'state'), # SCA_IController, KX_GameObject
+ 'getSubject': (replaceSimpleGetter, 'subject'), # KX_NetworkMessageSensor
+ 'getSubjects': (replaceSimpleGetter, 'subjects'), # KX_NetworkMessageSensor
+ 'getThreshold': (replaceSimpleGetter, 'threshold'), # SCA_JoystickSensor
+ 'getTime': (replaceSimpleGetter, 'time'), # KX_SCA_AddObjectActuator, KX_TrackToActuator
+ 'getTouchMaterial': (replaceSimpleGetter, 'useMaterial'), # KX_TouchSensor
+ 'getType': (replaceSimpleGetter, 'mode'), # SCA_PropertySensor
+ 'getUse3D': (replaceSimpleGetter, 'use3D'), # KX_TrackToActuator
+ 'getUseNegPulseMode': (replaceSimpleGetter, 'useNegPulseMode'), # SCA_ISensor
+ 'getUsePosPulseMode': (replaceSimpleGetter, 'usePosPulseMode'), # SCA_ISensor
+ 'getUseRestart': (replaceSimpleGetter, 'useRestart'), # KX_SceneActuator
+ 'getValue': (replaceSimpleGetter, 'value'), # SCA_PropertySensor, SCA_PropertyActuator
+ 'getVisible': (replaceSimpleGetter, 'visible'), # KX_GameObject
+ 'getXY': (replaceSimpleGetter, 'useXY'), # KX_CameraActuator
+ 'isConnected': (replaceSimpleGetter, 'connected'), # SCA_JoystickSensor
+ 'isPositive': (replaceSimpleGetter, 'positive'), # SCA_ISensor
+ 'isTriggered': (replaceSimpleGetter, 'triggered'), # SCA_ISensor
+ 'setActuator': (replaceSimpleSetter, 'actuator'), # SCA_ActuatorSensor
+ 'setBlendin': (replaceSimpleSetter, 'blendIn'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'setBlendtime': (replaceSimpleSetter, 'blendTime'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'setBodyType': (replaceSimpleSetter, 'usePropBody'), # KX_NetworkMessageActuator
+ 'setBody': (replaceSimpleSetter, 'body'), # KX_NetworkMessageActuator
+ 'setButton': (replaceSimpleSetter, 'button'), # SCA_JoystickSensor
+ 'setCamera': (replaceSimpleSetter, 'camera'), # KX_SceneActuator
+ 'setContinue': (replaceSimpleSetter, 'useContinue'), # BL_ActionActuator
+ 'setDamping': (replaceSimpleSetter, 'damping'), # KX_ObjectActuator
+ 'setDelay': (replaceSimpleSetter, 'delay'), # SCA_DelaySensor
+ 'setDuration': (replaceSimpleSetter, 'duration'), # SCA_DelaySensor
+ 'setEnd': (replaceSimpleSetter, 'frameEnd'), # BL_ShapeActionActuator, KX_IpoActuator, BL_ActionActuator
+ 'setExecutePriority': (replaceSimpleSetter, 'executePriority'), # SCA_ILogicBrick
+ 'setFile': (replaceSimpleSetter, 'fileName'), # KX_GameActuator
+ 'setFilename': (replaceSimpleSetter, 'fileName'), # KX_SoundActuator
+ 'setForceIpoActsLocal': (replaceSimpleSetter, 'useIpoLocal'), # KX_IpoActuator
+ 'setFrame': (replaceSimpleSetter, 'frame'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'setFrameProperty': (replaceSimpleSetter, 'framePropName'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'setFrequency': (replaceSimpleSetter, 'frequency'), # SCA_ISensor
+ 'setGain': (replaceSimpleSetter, 'volume'), # KX_SoundActuator, KX_CDActuator
+ 'setHeight': (replaceSimpleSetter, 'height'), # KX_CameraActuator
+ 'setHold1': (replaceSimpleSetter, 'hold1'), # SCA_KeyboardSensor
+ 'setHold2': (replaceSimpleSetter, 'hold2'), # SCA_KeyboardSensor
+ 'setInvert': (replaceSimpleSetter, 'invert'), # SCA_ISensor
+ 'setIpoAdd': (replaceSimpleSetter, 'useIpoAdd'), # KX_IpoActuator
+ 'setIpoAsForce': (replaceSimpleSetter, 'useIpoAsForce'), # KX_IpoActuator
+ 'setKey': (replaceSimpleSetter, 'key'), # SCA_KeyboardSensor
+ 'setLevel': (replaceSimpleSetter, 'level'), # SCA_ISensor
+ 'setLooping': (replaceSimpleSetter, 'looping'), # KX_SoundActuator
+ 'setMask': (replaceSimpleSetter, 'mask'), # KX_StateActuator
+ 'setMax': (replaceSimpleSetter, 'max'), # KX_CameraActuator
+ 'setMesh': (replaceSimpleSetter, 'mesh'), # KX_SCA_ReplaceMeshActuator
+ 'setMin': (replaceSimpleSetter, 'min'), # KX_CameraActuator
+ 'setPitch': (replaceSimpleSetter, 'pitch'), # KX_SoundActuator
+ 'setPriority': (replaceSimpleSetter, 'priority'), # BL_ShapeActionActuator, BL_ActionActuator
+ 'setProjectionMatrix': (replaceSimpleSetter, 'projection_matrix'), # KX_Camera
+ 'setProperty': (replaceSimpleSetter, 'propName'), # KX_IpoActuator, SCA_PropertySensor, SCA_RandomActuator, SCA_PropertyActuator
+ 'setRepeat': (replaceSimpleSetter, 'repeat'), # SCA_DelaySensor
+ 'setRollOffFactor': (replaceSimpleSetter, 'rollOffFactor'), # KX_SoundActuator
+ 'setScene': (replaceSimpleSetter, 'scene'), # KX_SceneActuator
+ 'setScript': (replaceSimpleSetter, 'script'), # SCA_PythonController
+ 'setSeed': (replaceSimpleSetter, 'seed'), # SCA_RandomActuator
+ 'setStart': (replaceSimpleSetter, 'frameStart'), # BL_ShapeActionActuator, KX_IpoActuator, BL_ActionActuator
+ 'setState': (replaceSimpleSetter, 'state'), # KX_GameObject
+ 'setSubject': (replaceSimpleSetter, 'subject'), # KX_NetworkMessageActuator
+ 'setSubjectFilterText': (replaceSimpleSetter, 'subject'), # KX_NetworkMessageSensor
+ 'setThreshold': (replaceSimpleSetter, 'threshold'), # SCA_JoystickSensor
+ 'setTime': (replaceSimpleSetter, 'time'), # KX_SCA_AddObjectActuator, KX_TrackToActuator
+ 'setToPropName': (replaceSimpleSetter, 'propName'), # KX_NetworkMessageActuator
+ 'setType': (replaceSimpleSetter, 'mode'), # SCA_PropertySensor
+ 'setUse3D': (replaceSimpleSetter, 'use3D'), # KX_TrackToActuator
+ 'setUseNegPulseMode': (replaceSimpleSetter, 'useNegPulseMode'), # SCA_ISensor
+ 'setUsePosPulseMode': (replaceSimpleSetter, 'usePosPulseMode'), # SCA_ISensor
+ 'setUseRestart': (replaceSimpleSetter, 'useRestart'), # KX_SceneActuator
+ 'setValue': (replaceSimpleSetter, 'value'), # SCA_PropertySensor, SCA_PropertyActuator
+ 'setXY': (replaceSimpleSetter, 'useXY'), # KX_CameraActuator
# Unimplemented!
- #'getLinearVelocity': {(replaceSimpleGetter, 'linearVelocity'): ['KX_SCA_AddObjectActuator']},
- #'setLinearVelocity': {(replaceSimpleSetter, 'linearVelocity'): ['KX_SCA_AddObjectActuator']},
- #'getAngularVelocity': {(replaceSimpleGetter, 'angularVelocity'): ['KX_SCA_AddObjectActuator']},
- #'setAngularVelocity': {(replaceSimpleSetter, 'angularVelocity'): ['KX_SCA_AddObjectActuator']},
- #'setAction': {(replaceSimpleSetter, 'action'): ['BL_ShapeActionActuator', 'BL_ActionActuator']},
- #'set': {(replaceSimpleSetter, 'visibility'): ['KX_VisibilityActuator']},
- #'getIndex': {(replaceSimpleGetter, 'index'): ['SCA_JoystickSensor']},
- #'getMesh': {(replaceSimpleGetter, 'mesh'): ['KX_SCA_ReplaceMeshActuator']},
- #'getObject': {(replaceSimpleGetter, 'object'): ['KX_SCA_AddObjectActuator',
- # 'KX_CameraActuator',
- # 'KX_TrackToActuator',
- # 'KX_ParentActuator']},
- #'setIndex': {(replaceSimpleSetter, 'index'): ['SCA_JoystickSensor']},
- #'setObject': {(replaceSimpleSetter, 'object'): ['KX_SCA_AddObjectActuator',
- # 'KX_CameraActuator',
- # 'KX_TrackToActuator',
- # 'KX_ParentActuator']},
- #'setOperation': {(replaceSimpleSetter, 'mode'): ['KX_SCA_DynamicActuator'],
- # (replaceSimpleSetter, 'operation'): ['KX_StateActuator']},
+ 'getLinearVelocity': (notImplemented, ['KX_SCA_AddObjectActuator', 'KX_GameObject']),
+ 'setLinearVelocity': (notImplemented, ['KX_SCA_AddObjectActuator', 'KX_GameObject']),
+ 'getAngularVelocity': (notImplemented, ['KX_SCA_AddObjectActuator', 'KX_GameObject']),
+ 'setAngularVelocity': (notImplemented, ['KX_SCA_AddObjectActuator', 'KX_GameObject']),
+ 'setAction': (notImplemented, ['BL_ShapeActionActuator', 'BL_ActionActuator']),
+ 'set': (notImplemented, ['KX_VisibilityActuator', 'KX_IpoActuator']),
+ 'getIndex': (notImplemented, ['SCA_JoystickSensor']),
+ 'getMesh': (notImplemented, ['KX_SCA_ReplaceMeshActuator']),
+ 'getObject': (notImplemented, ['KX_SCA_AddObjectActuator', 'KX_CameraActuator', 'KX_TrackToActuator', 'KX_ParentActuator']),
+ 'setIndex': (notImplemented, ['SCA_JoystickSensor']),
+ 'setObject': (notImplemented, ['KX_SCA_AddObjectActuator', 'KX_CameraActuator', 'KX_TrackToActuator', 'KX_ParentActuator']),
+ 'setOperation': (notImplemented, ['KX_SCA_DynamicActuator', 'KX_StateActuator']),
+ 'position': (notImplemented, ['KX_GameObject', 'KX_SoundActuator']),
+ 'orientation': (notImplemented, ['KX_GameObject', 'KX_SoundActuator']),
+ 'getDRot': (notImplemented, ['KX_ObjectActuator']),
+ 'setDRot': (notImplemented, ['KX_ObjectActuator']),
+ 'getDLoc': (notImplemented, ['KX_ObjectActuator']),
+ 'setDLoc': (notImplemented, ['KX_ObjectActuator']),
+ 'getTorque': (notImplemented, ['KX_ObjectActuator']),
+ 'getTorque': (notImplemented, ['KX_ObjectActuator']),
+ 'getForce': (notImplemented, ['KX_ObjectActuator']),
+ 'setForce': (notImplemented, ['KX_ObjectActuator']),
}
-def convert248to249(lines, log = True, logErrors = True):
+def convert248to249(lines, log = True, logErrors = True, fileName = None):
# Regular expression for finding attributes. For the string 'a.b', this
# returns three groups: ['a.b', 'a.', 'b']. The last is the attribute name.
attrRegex = re.compile(r'\.\s*' # Dot
r'([a-zA-Z_]\w*)') # Identifier
+ fileIdStr = ""
+ if fileName:
+ fileIdStr = fileName + ": "
row = 0
- sourceRow = 0
col = 0
nconverted = 0
nerrors = 0
@@ -650,51 +714,34 @@ def convert248to249(lines, log = True, logErrors = True):
attrName = match.group(1)
if attributeRenameDict.has_key(attrName):
# name is deprecated.
- conversionDict = attributeRenameDict[attrName]
-
- if len(conversionDict.keys()) > 1:
- # Ambiguous! Can't convert.
- print "ERROR: source line %d, ambiguous conversion:" % sourceRow
+ func, closure = attributeRenameDict[attrName]
+ try:
+ # Convert!
+ func(lines, row, match.start(1), match.end(1), closure)
+ except ConversionError as e:
+ # Insert a comment saying the conversion failed.
+ print "ERROR: %sline %d, %s: %s\n" % (
+ fileIdStr, row + 1, attrName, e)
if logErrors:
- lines.insert(row, "##248## ERROR: ambiguous conversion.\n")
+ lines.insert(row,
+ "##248## ERROR: %s: %s\n" %
+ (attrName, e))
row = row + 1
- for conversion in conversionDict.keys():
- _, newAttrName = conversion
- classes = conversionDict[conversion]
- print "\t%s -> %s (classes %s)" % (attrName, newAttrName, classes)
- if logErrors:
- lines.insert(row, "##248##%s -> %s (classes %s)\n" %
- (attrName, newAttrName, classes))
- row = row + 1
nerrors = nerrors + 1
-
else:
- # Conversion is well-defined. Execute.
- func, newAttrName = conversionDict.keys()[0]
- try:
- func(lines, row, match.start(1), match.end(1), newAttrName)
- except ConversionError as e:
- # Insert a comment saying the conversion failed.
- print "ERROR: source line %d, %s: %s\n" % (
- sourceRow, attrName, e)
- if logErrors:
- lines.insert(row,
- "##248## ERROR: %s: %s\n" %
- (attrName, e))
- row = row + 1
- nerrors = nerrors + 1
- else:
- changed = True
- nconverted = nconverted + 1
+ changed = True
+ nconverted = nconverted + 1
# Search the rest of this line.
col = match.start(1)
+
if changed and log:
+ # Insert a comment to showing difference in lines.
if originalLine[-1] != '\n':
originalLine = originalLine + '\n'
lines.insert(row, "##248##%s" % originalLine)
row = row + 1
+
row = row + 1
- sourceRow = sourceRow + 1
col = 0
return nconverted, nerrors
@@ -774,12 +821,15 @@ def runAsTextPlugin():
Blender.SaveUndoState('Convert BGE 2.49')
for txt in texts:
+ bufName = txt.name
+ if txt.lib:
+ bufName = txt.lib + '/' + bufName
lines = txt.asLines()
for i in range(0, len(lines)):
if not lines[i].endswith('\n'):
lines[i] = lines[i] + '\n'
- nc, ne = convert248to249(lines)
+ nc, ne = convert248to249(lines, fileName = bufName)
nconverted = nconverted + nc
nerrors = nerrors + ne
txt.clear()