[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1123] contrib/py/scripts/addons/ game_engine_save_as_runtime.py: == save as runtime ==
Luca Bonavita
mindrones at gmail.com
Tue Oct 26 11:28:55 CEST 2010
Revision: 1123
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-extensions&revision=1123
Author: mindrones
Date: 2010-10-26 11:28:54 +0200 (Tue, 26 Oct 2010)
Log Message:
-----------
== save as runtime ==
- fixed version as discussed, it has to be a numeric tuple
- used bpy.app.binary_path, to determine executables path and extension
because sys.argv[0] was failing on symlinks
example:
here I have /home/user/blender2.5 -> /home/user/my/blender/builds/cmake/bin/blender
and of course the player is at /home/user/my/blender/builds/cmake/bin/blenderplayer
but sys.argv[0] = '/home/user/blender2.5' hence os.path.dirname(sys.argv[0]) = '/home/user'
so that you have a wrong default player path
Modified Paths:
--------------
contrib/py/scripts/addons/game_engine_save_as_runtime.py
Modified: contrib/py/scripts/addons/game_engine_save_as_runtime.py
===================================================================
--- contrib/py/scripts/addons/game_engine_save_as_runtime.py 2010-10-26 08:09:13 UTC (rev 1122)
+++ contrib/py/scripts/addons/game_engine_save_as_runtime.py 2010-10-26 09:28:54 UTC (rev 1123)
@@ -19,7 +19,7 @@
bl_addon_info = {
"name": "Save As Runtime",
"author": "Mitchell Stokes (Moguri)",
- "version": (0,2b),
+ "version": (0,2,1),
"blender": (2, 5, 4),
"api": 31667,
"location": "File > Export",
@@ -95,22 +95,21 @@
# Make the runtime executable on Linux
if os.name == 'posix':
os.chmod(output_path, 0o755)
-
+
+
from bpy.props import *
+
class SaveAsRuntime(bpy.types.Operator):
bl_idname = "wm.save_as_runtime"
bl_label = "Save As Runtime"
bl_options = {'REGISTER'}
- ext = ""
+ blender_bin_path = bpy.app.binary_path
+ blender_bin_dir = os.path.dirname(blender_bin_path)
+ ext = os.path.splitext(blender_bin_path)[-1]
- if os.name == "nt":
- ext = ".exe"
- elif os.name == "mac":
- ext = ".app"
-
- default_path = os.path.join(os.path.dirname(sys.argv[0]), 'blenderplayer'+ext)
- player_path = StringProperty(name="Player Path", description="The path to the player to use", default=default_path)
+ default_player_path = os.path.join(blender_bin_dir, 'blenderplayer' + ext)
+ player_path = StringProperty(name="Player Path", description="The path to the player to use", default=default_player_path)
filepath = StringProperty(name="Output Path", description="Where to save the runtime", default="")
def execute(self, context):
@@ -127,13 +126,10 @@
return {'RUNNING_MODAL'}
def menu_func(self, context):
- ext = ""
-
- if os.name == "nt":
- ext = ".exe"
- default_path = bpy.data.filepath.replace(".blend", ext)
- self.layout.operator(SaveAsRuntime.bl_idname, text=SaveAsRuntime.bl_label).filepath = default_path
+ ext = os.path.splitext(bpy.app.binary_path)[-1]
+ default_blend_path = bpy.data.filepath.replace(".blend", ext)
+ self.layout.operator(SaveAsRuntime.bl_idname, text=SaveAsRuntime.bl_label).filepath = default_blend_path
def register():
More information about the Bf-extensions-cvs
mailing list