MetaFusion/scripts/config/data.py

127 lines
4.6 KiB
Python
Raw Normal View History

2025-02-05 22:39:45 +08:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import maya.cmds as cmds
2025-02-06 19:49:53 +08:00
import datetime
2025-02-05 22:39:45 +08:00
# Base Information
2025-02-06 04:00:17 +08:00
TOOL_NAME = str("MetaFusion")
TOOL_VERSION = str("Beta v1.0.0")
TOOL_AUTHOR = str("CGNICO")
TOOL_LANG = str('en_US')
TOOL_WSCL_NAME = str(f"{TOOL_NAME}WorkSpaceControl")
TOOL_HELP_URL = str(f"https://gitea.cgnico.com/CGNICO/{TOOL_NAME}/wiki")
2025-02-06 19:49:53 +08:00
TOOL_YEAR = str(datetime.datetime.now().year)
2025-02-05 22:39:45 +08:00
# BASE_PATH
2025-02-06 04:08:52 +08:00
TOOL_PATH = str(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))).replace("\\", "/"))
SCRIPTS_PATH = str(os.path.join(TOOL_PATH, "scripts").replace("\\", "/"))
2025-02-06 04:00:17 +08:00
# 资源路径
2025-02-06 04:08:52 +08:00
RESOURCES_PATH = str(os.path.join(TOOL_PATH, "resources").replace("\\", "/"))
2025-02-06 04:00:17 +08:00
ICONS_PATH = str(os.path.join(RESOURCES_PATH, "icons").replace("\\", "/"))
STYLES_PATH = str(os.path.join(RESOURCES_PATH, "styles").replace("\\", "/"))
2025-02-07 05:10:30 +08:00
# DNA
2025-02-06 04:00:17 +08:00
DNA_FILE_PATH = str(os.path.join(RESOURCES_PATH, "dna").replace("\\", "/"))
DNA_IMG_PATH = str(os.path.join(RESOURCES_PATH, "img").replace("\\", "/"))
2025-02-07 05:10:30 +08:00
DNA_VERSION = str("MH.4")
LOD_LEVELS = range(8)
DEFAULT_MESH_INDICES = range(54)
GUI_PATH = str(os.path.join(RESOURCES_PATH, "gui.ma").replace("\\", "/"))
ASSEMBLE_SCRIPT = str(os.path.join(RESOURCES_PATH, "additional_assemble_script.py").replace("\\", "/"))
2025-02-06 04:00:17 +08:00
# SYSTEM_INFO
SYSTEM_OS = str("Windows" if cmds.about(os=True).lower().startswith("win") else "Linux")
MAYA_VERSION = str(int(cmds.about(version=True).split('.')[0]))
# PYTHON_VERSION
2025-02-07 11:44:01 +08:00
PYTHON_VERSION = str(f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}")
2025-02-06 04:00:17 +08:00
2025-02-07 11:44:01 +08:00
def get_python_version():
"""获取Python版本目录名称"""
version = sys.version_info
if version.major == 3:
if version.minor == 9 and version.micro == 7:
return "python397"
elif version.minor == 10 and version.micro == 8:
return "python3108"
elif version.minor == 11:
return "python311"
return "python3"
2025-02-06 04:00:17 +08:00
2025-02-07 11:44:01 +08:00
PYTHON_VERSION_DIR = get_python_version()
2025-02-06 04:00:17 +08:00
# PATHS
2025-02-06 04:08:52 +08:00
PLUGIN_PATH = str(os.path.join(TOOL_PATH, "plugins", SYSTEM_OS, MAYA_VERSION).replace("\\", "/"))
PYDNA_PATH = str(os.path.join(TOOL_PATH, "plugins", SYSTEM_OS, "pydna", PYTHON_VERSION_DIR).replace("\\", "/"))
2025-02-05 22:39:45 +08:00
# TOOLS_PATH
2025-02-06 04:08:52 +08:00
DNACALIB_PATH = str(os.path.join(TOOL_PATH, "dnacalib").replace("\\", "/"))
2025-02-06 04:00:17 +08:00
BUILDER_PATH = str(os.path.join(SCRIPTS_PATH, "builder").replace("\\", "/"))
DNALIB_PATH = str(os.path.join(SCRIPTS_PATH, "dnalib").replace("\\", "/"))
UI_PATH = str(os.path.join(SCRIPTS_PATH, "ui").replace("\\", "/"))
UTILS_PATH = str(os.path.join(SCRIPTS_PATH, "utils").replace("\\", "/"))
# FILES
TOOL_MAIN_SCRIPT = str(os.path.join(SCRIPTS_PATH, f"{TOOL_NAME}.py").replace("\\", "/"))
TOOL_STYLE_FILE = str(os.path.join(UI_PATH, "style.qss").replace("\\", "/"))
TOOL_ICON = str(os.path.join(ICONS_PATH, f"{TOOL_NAME}Logo.png").replace("\\", "/"))
TOOL_COMMAND_ICON = str(os.path.join(ICONS_PATH, "CommandButton.png").replace("\\", "/"))
TOOL_MOD_FILENAME = str(f"{TOOL_NAME}.mod")
if __name__ == "__main__":
validate_paths = {
2025-02-06 04:08:52 +08:00
TOOL_PATH,
2025-02-06 04:00:17 +08:00
SCRIPTS_PATH,
ICONS_PATH,
STYLES_PATH,
DNA_FILE_PATH,
DNA_IMG_PATH,
PLUGIN_PATH,
PYDNA_PATH,
DNACALIB_PATH,
BUILDER_PATH,
DNALIB_PATH,
UI_PATH,
2025-02-07 05:10:30 +08:00
UTILS_PATH,
GUI_PATH,
ASSEMBLE_SCRIPT
2025-02-06 04:00:17 +08:00
}
for i in validate_paths:
if not i in sys.path:
sys.path.append(i)
print("============================================")
print(f"TOOL_NAME: {TOOL_NAME}")
print(f"TOOL_VERSION: {TOOL_VERSION}")
print(f"TOOL_AUTHOR: {TOOL_AUTHOR}")
print(f"TOOL_LANG: {TOOL_LANG}")
print(f"TOOL_WSCL_NAME: {TOOL_WSCL_NAME}")
print(f"TOOL_HELP_URL: {TOOL_HELP_URL}")
2025-02-06 04:08:52 +08:00
print(f"TOOL_PATH: {TOOL_PATH}")
2025-02-06 04:00:17 +08:00
print(f"SCRIPTS_PATH: {SCRIPTS_PATH}")
print(f"ICONS_PATH: {ICONS_PATH}")
print(f"STYLES_PATH: {STYLES_PATH}")
print(f"DNA_FILE_PATH: {DNA_FILE_PATH}")
print(f"DNA_IMG_PATH: {DNA_IMG_PATH}")
print(f"PLUGIN_PATH: {PLUGIN_PATH}")
print(f"PYDNA_PATH: {PYDNA_PATH}")
print(f"DNACALIB_PATH: {DNACALIB_PATH}")
print(f"BUILDER_PATH: {BUILDER_PATH}")
print(f"DNALIB_PATH: {DNALIB_PATH}")
print(f"UI_PATH: {UI_PATH}")
print(f"UTILS_PATH: {UTILS_PATH}")
print(f"TOOL_MAIN_SCRIPT: {TOOL_MAIN_SCRIPT}")
print(f"TOOL_STYLE_FILE: {TOOL_STYLE_FILE}")
print(f"TOOL_ICON: {TOOL_ICON}")
print(f"TOOL_COMMAND_ICON: {TOOL_COMMAND_ICON}")
print(f"TOOL_MOD_FILENAME: {TOOL_MOD_FILENAME}")
2025-02-05 22:39:45 +08:00