Skip to content

Commit d2743e3

Browse files
committed
custom dl name export
1 parent 59052b9 commit d2743e3

2 files changed

Lines changed: 26 additions & 8 deletions

File tree

fast64_internal/z64/f3d/operators.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from ...f3d.f3d_parser import importMeshC, getImportData
1515
from ...f3d.f3d_gbi import DLFormat, TextureExportSettings, ScrollMethod, get_F3D_GBI
1616
from ...f3d.f3d_writer import TriangleConverterInfo, removeDL, saveStaticModel, getInfoDict
17-
from ..utility import ootGetObjectPath, ootGetObjectHeaderPath, getOOTScale
17+
from ..utility import ootGetObjectPath, ootGetObjectHeaderPath, getOOTScale, checkEmptyName
1818
from ..model_classes import OOTF3DContext, ootGetIncludedAssetData
1919
from ..texture_array import ootReadTextureArrays
2020
from ..model_classes import OOTModel, OOTGfxFormatter
@@ -72,11 +72,22 @@ def resolve_custom_export_base(settings: "OOTDLExportSettings") -> str:
7272
return base_path
7373

7474

75-
def resolve_custom_export_folder(base_path: str, folder_name: str) -> str:
76-
folder_path = os.path.join(base_path, folder_name)
77-
if not os.path.exists(folder_path):
78-
os.makedirs(folder_path, exist_ok=True)
79-
return folder_path
75+
def resolve_custom_export_folder(base_path: str, folder_name: str) -> str:
76+
folder_path = os.path.join(base_path, folder_name)
77+
if not os.path.exists(folder_path):
78+
os.makedirs(folder_path, exist_ok=True)
79+
return folder_path
80+
81+
82+
def resolve_dl_export_name(originalObj: bpy.types.Object, settings: "OOTDLExportSettings") -> str:
83+
if settings.useCustomDLName:
84+
custom_name = (settings.customDLName or "").strip()
85+
checkEmptyName(custom_name)
86+
name = toAlnum(custom_name)
87+
checkEmptyName(name)
88+
return name
89+
90+
return toAlnum(originalObj.name)
8091

8192

8293
class OOTF3DGfxFormatter(OOTGfxFormatter):
@@ -99,7 +110,7 @@ def ootConvertMeshToC(
99110
exportPath = resolve_custom_export_base(settings)
100111
isCustomExport = settings.isCustom
101112
removeVanillaData = settings.removeVanillaData
102-
name = toAlnum(originalObj.name)
113+
name = resolve_dl_export_name(originalObj, settings)
103114
overlayName = settings.actorOverlayName
104115
flipbookUses2DArray = settings.flipbookUses2DArray
105116
flipbookArrayIndex2D = settings.flipbookArrayIndex2D if flipbookUses2DArray else None
@@ -170,7 +181,7 @@ def ootConvertMeshToXML(
170181
folderName = settings.folder
171182
exportPath = resolve_custom_export_base(settings)
172183
isCustomExport = settings.isCustom
173-
name = toAlnum(originalObj.name)
184+
name = resolve_dl_export_name(originalObj, settings)
174185
overlayName = settings.actorOverlayName
175186
flipbookUses2DArray = settings.flipbookUses2DArray
176187
flipbookArrayIndex2D = settings.flipbookArrayIndex2D if flipbookUses2DArray else None

fast64_internal/z64/f3d/properties.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ class OOTDLExportSettings(PropertyGroup):
5959
name="Use Custom Filename", description="Override filename instead of basing it off of the Blender name"
6060
)
6161
filename: StringProperty(name="Filename")
62+
useCustomDLName: BoolProperty(
63+
name="Use Custom DL Name", description="Use a custom DL name instead of the object name"
64+
)
65+
customDLName: StringProperty(name="DL Name")
6266
folder: StringProperty(name="DL Folder", default="objects/gameplay_keep")
6367
customPath: StringProperty(name="Custom DL Path", subtype="FILE_PATH")
6468
isCustom: BoolProperty(
@@ -77,6 +81,9 @@ class OOTDLExportSettings(PropertyGroup):
7781
)
7882

7983
def draw_props(self, layout: UILayout, context: bpy.types.Context | None = None):
84+
layout.prop(self, "useCustomDLName")
85+
if self.useCustomDLName:
86+
prop_split(layout, self, "customDLName", "DL Name")
8087
prop_split(layout, self, "folder", "Internal Path")
8188
prop_split(layout, self, "customPath", "Path")
8289
prop_split(layout, self, "actorOverlayName", "Overlay (Optional)")

0 commit comments

Comments
 (0)