2023-10-14 11:48:41 +08:00
import bpy
2023-11-29 22:12:04 +08:00
import os , typing
from . import UTIL_naming_convension
2023-10-14 11:48:41 +08:00
class RawPreferences ():
2023-11-29 22:12:04 +08:00
cBallanceTextureFolder : typing . ClassVar [ str ] = ""
cNoComponentCollection : typing . ClassVar [ str ] = ""
2023-10-14 11:48:41 +08:00
mBallanceTextureFolder : str
mNoComponentCollection : str
def __init__ ( self , ** kwargs ):
self . mBallanceTextureFolder = kwargs . get ( "mBallanceTextureFolder" , "" )
self . mNoComponentCollection = kwargs . get ( "mNoComponentCollection" , "" )
def has_valid_blc_tex_folder ( self ) -> bool :
return os . path . isdir ( self . mBallanceTextureFolder )
class BBPPreferences ( bpy . types . AddonPreferences ):
bl_idname = __package__
ballance_texture_folder : bpy . props . StringProperty (
name = "Ballance Texture Folder" ,
description = "The path to folder which will be used by this plugin to get external Ballance texture." ,
2023-11-29 22:12:04 +08:00
subtype = 'DIR_PATH' ,
default = RawPreferences . cBallanceTextureFolder ,
2024-12-30 17:53:42 +08:00
) # type: ignore
2023-10-14 11:48:41 +08:00
no_component_collection : bpy . props . StringProperty (
name = "No Component Collection" ,
description = "(Import) The object which stored in this collectiion will not be saved as component. (Export) All forced no component objects will be stored in this collection" ,
2023-11-29 22:12:04 +08:00
default = RawPreferences . cNoComponentCollection ,
2024-12-30 17:53:42 +08:00
) # type: ignore
2023-10-14 11:48:41 +08:00
def draw ( self , context ):
layout = self . layout
row = layout . row ()
col = row . column ()
col . label ( text = "Ballance Texture Folder" )
col . prop ( self , "ballance_texture_folder" , text = "" )
col . label ( text = "No Component Collection" )
col . prop ( self , "no_component_collection" , text = "" )
def get_preferences () -> BBPPreferences :
return bpy . context . preferences . addons [ __package__ ] . preferences
def get_raw_preferences () -> RawPreferences :
pref : BBPPreferences = get_preferences ()
rawdata : RawPreferences = RawPreferences ()
rawdata . mBallanceTextureFolder = pref . ballance_texture_folder
rawdata . mNoComponentCollection = pref . no_component_collection
return rawdata
def register () -> None :
bpy . utils . register_class ( BBPPreferences )
def unregister () -> None :
bpy . utils . unregister_class ( BBPPreferences )