2016-06-30 13:22:05 +02:00
|
|
|
import bpy
|
|
|
|
import json
|
|
|
|
import os
|
2016-07-10 00:51:39 +02:00
|
|
|
import glob
|
2016-07-20 17:33:17 +02:00
|
|
|
import lib.umsgpack
|
2016-08-12 02:29:09 +02:00
|
|
|
import platform
|
2016-06-30 13:22:05 +02:00
|
|
|
|
2016-07-20 17:33:17 +02:00
|
|
|
def write_arm(filepath, output):
|
2016-08-15 01:59:49 +02:00
|
|
|
if bpy.data.worlds[0].ArmMinimize:
|
2016-07-20 17:33:17 +02:00
|
|
|
with open(filepath, 'wb') as f:
|
|
|
|
f.write(lib.umsgpack.dumps(output))
|
|
|
|
else:
|
|
|
|
with open(filepath, 'w') as f:
|
|
|
|
# f.write(json.dumps(output, separators=(',',':')))
|
|
|
|
f.write(json.dumps(output, sort_keys=True, indent=4))
|
2016-06-30 13:22:05 +02:00
|
|
|
|
|
|
|
def get_fp():
|
|
|
|
s = bpy.data.filepath.split(os.path.sep)
|
|
|
|
s.pop()
|
|
|
|
return os.path.sep.join(s)
|
|
|
|
|
2016-08-12 02:29:09 +02:00
|
|
|
def get_os():
|
|
|
|
s = platform.system()
|
|
|
|
if s == 'Windows':
|
|
|
|
return 'win'
|
|
|
|
elif s == 'Darwin':
|
|
|
|
return 'mac'
|
|
|
|
else:
|
|
|
|
return 'linux'
|
|
|
|
|
2016-07-10 00:51:39 +02:00
|
|
|
def fetch_script_names():
|
|
|
|
user_preferences = bpy.context.user_preferences
|
|
|
|
addon_prefs = user_preferences.addons['armory'].preferences
|
|
|
|
sdk_path = addon_prefs.sdk_path
|
|
|
|
wrd = bpy.data.worlds[0]
|
|
|
|
wrd.bundled_scripts_list.clear()
|
|
|
|
os.chdir(sdk_path + '/armory/Sources/armory/trait')
|
|
|
|
for file in glob.glob('*.hx'):
|
|
|
|
wrd.bundled_scripts_list.add().name = file.rsplit('.')[0]
|
|
|
|
wrd.scripts_list.clear()
|
2016-08-15 01:59:49 +02:00
|
|
|
sources_path = get_fp() + '/Sources/' + wrd.ArmProjectPackage
|
2016-07-10 00:51:39 +02:00
|
|
|
if os.path.isdir(sources_path):
|
|
|
|
os.chdir(sources_path)
|
|
|
|
for file in glob.glob('*.hx'):
|
|
|
|
wrd.scripts_list.add().name = file.rsplit('.')[0]
|
|
|
|
os.chdir(get_fp())
|
2016-07-17 23:29:30 +02:00
|
|
|
|
|
|
|
def to_hex(val):
|
|
|
|
return '#%02x%02x%02x%02x' % (int(val[3] * 255), int(val[0] * 255), int(val[1] * 255), int(val[2] * 255))
|
2016-07-27 14:25:01 +02:00
|
|
|
|
|
|
|
def safe_filename(s):
|
|
|
|
return s.replace('.', '_').replace('-', '_').replace(' ', '_')
|
2016-08-15 23:45:03 +02:00
|
|
|
|
|
|
|
def get_render_resolution(scene_index=0):
|
|
|
|
render = bpy.data.scenes[scene_index].render
|
|
|
|
scale = render.resolution_percentage / 100
|
|
|
|
return int(render.resolution_x * scale), int(render.resolution_y * scale)
|