Blender-ZeroEngine-MSH2-Plugin/src_research_readme/zero-edit-tool-python-base/Application/Logic/mshjson.py

47 lines
1.3 KiB
Python

'''
UI functionality for the msh2text dialog.
'''
xsi = Application
import msh2
reload(msh2)
import msh2_unpack
reload(msh2_unpack)
import os
TXTPATH = 'C:\\SWBF2_ModTools\\data_TST\\Worlds\\TST\\msh\\test\\abc.txt'
MSHPATH = 'C:\\SWBF2_ModTools\\data_TST\\Worlds\\TST\\msh\\nab2_prop_fountain.msh'
USE_HARD_PATHS = False
def get_paths():
params = PPG.Inspected(0).Parameters
if USE_HARD_PATHS or params('dev').Value:
return MSHPATH, TXTPATH
return params('mshpath').Value, params('txtpath').Value
def msh2txt_OnClicked():
mshpath, txtpath = get_paths()
if not mshpath or not txtpath:
return
unpacker = msh2_unpack.MSHUnpack(mshpath)
msh = unpacker.unpack()
if PPG.Inspected(0).Parameters('segmented').Value is True:
msh.save_segmented_json(os.path.dirname(txtpath), os.path.basename(txtpath.split('.')[0]))
else:
msh.save_json(txtpath)
def txt2msh_OnClicked():
mshpath, txtpath = get_paths()
if not mshpath or not txtpath:
return
if PPG.Inspected(0).Parameters('segmented').Value is True:
msh = msh2.Msh.load_segmented_json(os.path.dirname(txtpath), os.path.basename(txtpath.split('.')[0]))
else:
msh = msh2.Msh.load_json(txtpath)
if PPG.Inspected(0).Parameters('dev').Value:
msh.save(mshpath + '.msh')
else:
msh.save(mshpath)