Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[OoT] Imports cleanup #150

Merged
merged 6 commits into from
Oct 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 27 additions & 14 deletions __init__.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,39 @@
import sys
import tempfile
import copy
import shutil
import bpy
import traceback
import os
from pathlib import Path

from .fast64_internal import *
from bpy.utils import register_class, unregister_class
from . import addon_updater_ops
from .fast64_internal.operators import AddWaterBox
from .fast64_internal.panels import SM64_Panel
from .fast64_internal.utility import PluginError, raisePluginError, attemptModifierApply, prop_split

from .fast64_internal.sm64 import SM64_Properties, sm64_register, sm64_unregister
from .fast64_internal.sm64.sm64_geolayout_bone import SM64_BoneProperties
from .fast64_internal.sm64.sm64_objects import SM64_ObjectProperties
from .fast64_internal.sm64.sm64_geolayout_utility import createBoneGroups
from .fast64_internal.sm64.sm64_geolayout_parser import generateMetarig

from .fast64_internal.oot import OOT_Properties, oot_register, oot_unregister
from .fast64_internal.oot.oot_level import OOT_ObjectProperties

from .fast64_internal.f3d.f3d_material import mat_register, mat_unregister
from .fast64_internal.f3d.f3d_render_engine import render_engine_register, render_engine_unregister
from .fast64_internal.f3d.f3d_writer import f3d_writer_register, f3d_writer_unregister
from .fast64_internal.f3d.f3d_parser import f3d_parser_register, f3d_parser_unregister

from .fast64_internal.f3d_material_converter import (
MatUpdateConvert,
upgradeF3DVersionAll,
bsdf_conv_register,
bsdf_conv_unregister,
bsdf_conv_panel_regsiter,
bsdf_conv_panel_unregsiter,
)

from .fast64_internal.render_settings import (
Fast64RenderSettings_Properties,
resync_scene_props,
on_update_render_settings,
)

import cProfile
import pstats

from . import addon_updater_ops

# info about add on
bl_info = {
"name": "Fast64",
Expand Down
16 changes: 1 addition & 15 deletions fast64_internal/__init__.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,5 @@
from .f3d_material_converter import *
from .f3d import *
from .sm64 import *
from .oot import *
from .oot import * # is this really needed?
from .panels import *

# temporary star imports until more imports are cleaned up
from .oot.oot_f3d_writer import *
from .oot.oot_constants import *
from .oot.oot_collision import *
from .oot.oot_level import *
from .oot.oot_level_writer import *
from .oot.c_writer import *
from .oot.oot_spline import *
from .oot.oot_anim import *
from .oot.oot_skeleton import *
from .oot.oot_cutscene import *
from .oot.oot_operators import *
from .utility import *
142 changes: 89 additions & 53 deletions fast64_internal/oot/__init__.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,57 @@
from . import oot_anim
from . import oot_collision
from . import oot_cutscene
from . import oot_f3d_writer
from . import oot_level
from . import oot_level_writer
from . import oot_operators
from . import oot_skeleton
from . import oot_spline
from . import oot_utility
import bpy
from .c_writer import OOTBootupSceneOptions

from ..panels import OOT_Panel
from bpy.utils import register_class, unregister_class
from .oot_level import oot_obj_panel_register, oot_obj_panel_unregister, oot_obj_register, oot_obj_unregister
from .oot_anim import oot_anim_panel_register, oot_anim_panel_unregister, oot_anim_register, oot_anim_unregister
from .oot_collision import oot_col_panel_register, oot_col_panel_unregister, oot_col_register, oot_col_unregister
from .oot_utility import oot_utility_register, oot_utility_unregister
from ..utility import prop_split
from ..render_settings import on_update_render_settings

import bpy
from bpy.utils import register_class, unregister_class
from .oot_f3d_writer import (
OOTDLExportSettings,
OOTDLImportSettings,
oot_dl_writer_panel_register,
oot_dl_writer_panel_unregister,
oot_dl_writer_register,
oot_dl_writer_unregister,
)

from .oot_level_writer import (
oot_level_panel_register,
oot_level_panel_unregister,
oot_level_register,
oot_level_unregister,
)

from .oot_operators import (
oot_operator_panel_register,
oot_operator_panel_unregister,
oot_operator_register,
oot_operator_unregister,
)

from .oot_skeleton import (
oot_skeleton_panel_register,
oot_skeleton_panel_unregister,
oot_skeleton_register,
oot_skeleton_unregister,
)

from .oot_spline import (
oot_spline_panel_register,
oot_spline_panel_unregister,
oot_spline_register,
oot_spline_unregister,
)

from .oot_cutscene import (
oot_cutscene_panel_register,
oot_cutscene_panel_unregister,
oot_cutscene_register,
oot_cutscene_unregister,
)


class OOT_FileSettingsPanel(OOT_Panel):
Expand All @@ -40,8 +76,8 @@ class OOT_Properties(bpy.types.PropertyGroup):
version: bpy.props.IntProperty(name="OOT_Properties Version", default=0)
hackerFeaturesEnabled: bpy.props.BoolProperty(name="Enable HackerOOT Features")
bootupSceneOptions: bpy.props.PointerProperty(type=OOTBootupSceneOptions)
DLExportSettings: bpy.props.PointerProperty(type=oot_f3d_writer.OOTDLExportSettings)
DLImportSettings: bpy.props.PointerProperty(type=oot_f3d_writer.OOTDLImportSettings)
DLExportSettings: bpy.props.PointerProperty(type=OOTDLExportSettings)
DLImportSettings: bpy.props.PointerProperty(type=OOTDLImportSettings)
skeletonExportSettings: bpy.props.PointerProperty(type=oot_skeleton.OOTSkeletonExportSettings)
skeletonImportSettings: bpy.props.PointerProperty(type=oot_skeleton.OOTSkeletonImportSettings)

Expand All @@ -53,40 +89,40 @@ class OOT_Properties(bpy.types.PropertyGroup):


def oot_panel_register():
oot_operators.oot_operator_panel_register()
oot_f3d_writer.oot_dl_writer_panel_register()
oot_collision.oot_col_panel_register()
oot_level.oot_obj_panel_register()
oot_level_writer.oot_level_panel_register()
oot_spline.oot_spline_panel_register()
oot_anim.oot_anim_panel_register()
oot_skeleton.oot_skeleton_panel_register()
oot_cutscene.oot_cutscene_panel_register()
oot_operator_panel_register()
oot_dl_writer_panel_register()
oot_col_panel_register()
oot_obj_panel_register()
oot_level_panel_register()
oot_spline_panel_register()
oot_anim_panel_register()
oot_skeleton_panel_register()
oot_cutscene_panel_register()


def oot_panel_unregister():
oot_operators.oot_operator_panel_unregister()
oot_collision.oot_col_panel_unregister()
oot_level.oot_obj_panel_unregister()
oot_level_writer.oot_level_panel_unregister()
oot_spline.oot_spline_panel_unregister()
oot_f3d_writer.oot_dl_writer_panel_unregister()
oot_anim.oot_anim_panel_unregister()
oot_skeleton.oot_skeleton_panel_unregister()
oot_cutscene.oot_cutscene_panel_unregister()
oot_operator_panel_unregister()
oot_col_panel_unregister()
oot_obj_panel_unregister()
oot_level_panel_unregister()
oot_spline_panel_unregister()
oot_dl_writer_panel_unregister()
oot_anim_panel_unregister()
oot_skeleton_panel_unregister()
oot_cutscene_panel_unregister()


def oot_register(registerPanels):
oot_operators.oot_operator_register()
oot_utility.oot_utility_register()
oot_collision.oot_col_register() # register first, so panel goes above mat panel
oot_level.oot_obj_register()
oot_level_writer.oot_level_register()
oot_spline.oot_spline_register()
oot_f3d_writer.oot_dl_writer_register()
oot_anim.oot_anim_register()
oot_skeleton.oot_skeleton_register()
oot_cutscene.oot_cutscene_register()
oot_operator_register()
oot_utility_register()
oot_col_register() # register first, so panel goes above mat panel
oot_obj_register()
oot_level_register()
oot_spline_register()
oot_dl_writer_register()
oot_anim_register()
oot_skeleton_register()
oot_cutscene_register()

for cls in oot_classes:
register_class(cls)
Expand All @@ -105,16 +141,16 @@ def oot_unregister(unregisterPanels):
for cls in reversed(oot_classes):
unregister_class(cls)

oot_operators.oot_operator_unregister()
oot_utility.oot_utility_unregister()
oot_collision.oot_col_unregister() # register first, so panel goes above mat panel
oot_level.oot_obj_unregister()
oot_level_writer.oot_level_unregister()
oot_spline.oot_spline_unregister()
oot_f3d_writer.oot_dl_writer_unregister()
oot_anim.oot_anim_unregister()
oot_skeleton.oot_skeleton_unregister()
oot_cutscene.oot_cutscene_unregister()
oot_operator_unregister()
oot_utility_unregister()
oot_col_unregister() # register first, so panel goes above mat panel
oot_obj_unregister()
oot_level_unregister()
oot_spline_unregister()
oot_dl_writer_unregister()
oot_anim_unregister()
oot_skeleton_unregister()
oot_cutscene_unregister()

if unregisterPanels:
oot_panel_unregister()
Expand Down
12 changes: 7 additions & 5 deletions fast64_internal/oot/c_writer/oot_level_c.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import math
from ..oot_f3d_writer import *
from ..oot_level_writer import *
from ..oot_collision import *
from ..oot_cutscene import *
from ...utility import CData, PluginError
from ...f3d.f3d_gbi import ScrollMethod
from ..oot_f3d_writer import OOTGfxFormatter
from ..oot_collision import ootCollisionToC
from ..oot_cutscene import ootCutsceneDataToC
from ..oot_utility import indent
from ..oot_constants import ootRoomShapeStructs, ootRoomShapeEntryStructs


def cmdName(name, header, index):
Expand Down
3 changes: 1 addition & 2 deletions fast64_internal/oot/c_writer/oot_scene_bootup.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import os, re, bpy
import string
from bpy.utils import register_class, unregister_class
from ...utility import PluginError, writeFile, readFile
from ..oot_constants import ootEnumHeaderMenuComplete
from typing import Callable, Iterable, Any, List
from typing import Any


def setBootupScene(configPath: str, entranceIndex: str, options: "OOTBootupSceneOptions"):
Expand Down
7 changes: 3 additions & 4 deletions fast64_internal/oot/c_writer/oot_scene_folder.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
import os, re, shutil
from ...utility import *
from ..oot_utility import *
from ..oot_utility import getSceneDirFromLevelName

def modifySceneFiles(scene, exportInfo):
exportPath = exportInfo.exportPath
if exportInfo.customSubPath is not None:
sceneDir = exportInfo.customSubPath + exportInfo.name
else:
sceneDir = getSceneDirFromLevelName(scene.name)
scenePath = os.path.join(exportPath, sceneDir)
scenePath = os.path.join(exportPath, sceneDir)
for filename in os.listdir(scenePath):
filepath = os.path.join(scenePath, filename)
if os.path.isfile(filepath):
match = re.match(scene.name + "\_room\_(\d+)\.[ch]", filename)
if match is not None and int(match.group(1)) >= len(scene.rooms):
os.remove(filepath)
os.remove(filepath)

def deleteSceneFiles(exportInfo):
exportPath = exportInfo.exportPath
Expand Down
2 changes: 1 addition & 1 deletion fast64_internal/oot/c_writer/oot_scene_table_c.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def getSceneIndex(sceneNameList, sceneName):
def getOriginalIndex(sceneName):
"""
Returns the index of a specific scene defined by which one the user chose
or by the ``sceneName`` parameter if it's not set to ``None``
or by the ``sceneName`` parameter if it's not set to ``None``
"""
i = 0

Expand Down
16 changes: 8 additions & 8 deletions fast64_internal/oot/c_writer/oot_spec.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import os, re
from ...utility import *
from ..oot_utility import *
import os, re, bpy
from ...utility import readFile, writeFile
from ..oot_utility import getSceneDirFromLevelName, indent

def getSegmentDefinitionEntryBySceneName(segmentDefinition, sceneName):
entries = []
Expand Down Expand Up @@ -74,7 +74,7 @@ def modifySegmentDefinition(scene, exportInfo, levelC):

for i in range(len(scene.rooms)):
roomSuffix = "_room_" + str(i)
segmentDefinitions.insert(firstIndex,
segmentDefinitions.insert(firstIndex,
'\n' + indent + 'name "' + scene.name + roomSuffix + '"\n' +\
compressFlag +\
indent + "romalign 0x1000\n" +\
Expand All @@ -87,15 +87,15 @@ def modifySegmentDefinition(scene, exportInfo, levelC):
indent + "romalign 0x1000\n" +\
indent + 'include "' + includeDir + '_scene_main.o"\n' +\
indent + 'include "' + includeDir + '_scene_col.o"\n'

if levelC is not None:
if (levelC.sceneTexturesIsUsed()):
sceneSegInclude += indent + 'include "' + includeDir + '_scene_tex.o"\n'

if (levelC.sceneCutscenesIsUsed()):
for i in range(len(levelC.sceneCutscenesC)):
sceneSegInclude += indent + 'include "' + includeDir + '_cs_' + str(i) + '.o"\n'

sceneSegInclude += indent + "number 2\n"

segmentDefinitions.insert(firstIndex, sceneSegInclude)
Expand All @@ -104,7 +104,7 @@ def modifySegmentDefinition(scene, exportInfo, levelC):

for i in range(len(scene.rooms)):
roomSuffix = "_room_" + str(i)
segmentDefinitions.insert(firstIndex,
segmentDefinitions.insert(firstIndex,
'\n' + indent + 'name "' + scene.name + roomSuffix + '"\n' +\
compressFlag +\
indent + "romalign 0x1000\n" +\
Expand Down
Loading