Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
1661b8d
[Repo Settings] Only set if different (#468)
Lilaa3 Oct 14, 2024
3e47569
[F3D] Fix sameTextures condition, make assert more user friendly (#466)
Lilaa3 Oct 14, 2024
ac5ff61
[SM64] Add back custom include directory + add automatic option (#464)
Lilaa3 Oct 14, 2024
b0bad2f
T3D UI (#389)
Lilaa3 Nov 10, 2024
bce9ebd
[SM64] show custom export path without save textures (#475)
Lilaa3 Dec 1, 2024
81fd463
[OoT] Update cutscene macro names (#481)
fig02 Dec 3, 2024
f0ff40c
[SM64/F3D] Area fog improvements (#378)
Lilaa3 Dec 28, 2024
85330e1
[SM64] Add exception handling for area init and throw error for insta…
Lilaa3 Dec 28, 2024
c475ce3
[SM64] Fix/Improve multi-actor UI (not export all selected) (#450)
Lilaa3 Dec 28, 2024
60bdf25
[SM64] Only throw empty gfx exception in actor exports (#413)
Lilaa3 Dec 28, 2024
dac0a8f
[OOT] Detailed Actor Panel (Actors, Transition Actors, Entrance Actor…
Yanis002 Jan 1, 2025
98520f1
[SM64] Fix SM64 binary geolayout exports (#423)
Lilaa3 Jan 1, 2025
a072427
[SM64] Add in actor preset information for future use (#393)
Lilaa3 Jan 1, 2025
79d3bad
[OOT + F3D] More informative error messages for deleted lights (#491)
Lilaa3 Jan 8, 2025
003bd49
[OoT] Fix issue where light settings is using the wrong name (#493)
Yanis002 Jan 17, 2025
e18c45e
SM64: Add missing typecasts from Gfx* to SetTileSize* to suppress com…
gheskett Jan 19, 2025
f247e20
[F3D] [Bugfix] Fix Sync Optimization for Mat Bleed (#487)
jesusyoshi54 Jan 28, 2025
328736d
[SM64] Bring binary dl exporter up-to-date (#459)
Lilaa3 Feb 11, 2025
a139743
[mk64] Implement Material Presets & World Defaults (#470)
MegaMech Feb 14, 2025
c51e462
[SM64/F3D] Fix and update Ui Image Exporter (#452)
Lilaa3 Feb 14, 2025
3f476df
Check if fog data exists (#497)
Lilaa3 Mar 3, 2025
095696f
Fix bug where water conveyors set COLPOLY_IS_FLOOR_CONVEYOR (#502)
CDi-Fails Mar 4, 2025
8652b0b
[OoT] Fixed actor enums overriding actor types (#504)
Yanis002 Mar 20, 2025
420dba3
[OoT] Fixed UI issue when an actor has no type (#509)
Yanis002 Apr 20, 2025
c903642
[OoT] Update actor scale's default value (#508)
Yanis002 Apr 20, 2025
791971f
[SM64] Add better exception processing to combined exporter (#496)
jesusyoshi54 Apr 20, 2025
f599185
[OoT] Updated `EnumData.xml` (fixes some cutscene import issues) (#484)
Yanis002 Apr 20, 2025
0ba8243
[OoT] Fixed standalone cutscene export (#480)
Yanis002 Apr 20, 2025
f2a0ca6
[OoT] Fixed writing to the spec file (#503)
Yanis002 May 19, 2025
2a9a249
Make update UI more understandable (#446)
Lilaa3 May 20, 2025
515a14c
[F3D] Use set for image and pal dependencies (#522)
Lilaa3 May 20, 2025
4908039
[F3D] Fix cycle 2 NOOP identifier (#521)
Lilaa3 May 20, 2025
236c34a
[OoT] Add a toggle for the new actor panel (#505)
Yanis002 May 20, 2025
5445d2e
[OoT] Move collection operators/functions from oot_utility.py (#486)
Yanis002 May 20, 2025
cebdd14
[OoT] Fixed collision export (#507)
Yanis002 May 20, 2025
88c3041
[OoT] Remove `global.h`, `macros.h` and `z64.h` in the exported inclu…
Yanis002 May 20, 2025
8336f42
[OoT] Add missing versions to `oot_versions_items` and add overlay su…
Yanis002 May 20, 2025
66d38da
[F3D] Fix for blender 4.4 (#529)
Lilaa3 May 23, 2025
552bdb7
[OoT] Add basic title cards support (#525)
Yanis002 May 23, 2025
f221e64
[SM64/F3D] Use WriteDifferingAndRevert for bleed (#461)
Lilaa3 May 23, 2025
985f4c4
[OoT] Scene/Cutscene Export Fixes (#528)
Yanis002 May 24, 2025
d705b7a
[OoT] Add move cutscene bone operator (#530)
Dragorn421 May 25, 2025
d536ebf
[OoT] Fix player flipbooks export (#536)
Dragorn421 May 28, 2025
c6b6782
[F3D Bleed] Fix switch option doing an extra reset (#534)
Lilaa3 May 29, 2025
a80a05b
[OoT] Fixed object being added to the duplicated room object (#543)
Yanis002 May 30, 2025
fa62e13
[OoT] Fix animation exporter expecting an object name with custom pat…
Yanis002 Jun 1, 2025
f637ed8
[OoT] Fix includes for z64 prefix removal (#549)
Dragorn421 Jun 6, 2025
e95bd6f
Fix export of custom conveyorSpeed (#550)
Dragorn421 Jun 10, 2025
6365e7a
Bump bl_info version to v2.4.0 (#542)
Dragorn421 Jun 14, 2025
d6bb836
Cleanup: setOrigin() (#537)
Dragorn421 Jun 14, 2025
c4376de
Cleanup: deselectAllObjects() and selectSingleObject() (#538)
Dragorn421 Jun 14, 2025
7d71078
[OoT] Exporter Cleanup (#533)
Yanis002 Jun 14, 2025
d7b1ae8
[OoT] Fix the importers (#547)
Yanis002 Jun 15, 2025
fa3eff1
[OOT/MM] Rename OoT to Z64 and remove the OoT prefix from the files (…
Yanis002 Jun 15, 2025
89fde3f
[SM64] Make switch material override stackable and apply layer revert…
Lilaa3 Jun 18, 2025
2c87745
Create Game Data and move `fast64_internal/oot/data` (#541)
Yanis002 Jun 20, 2025
f84d179
[OOT/MM] Remove "oot" prefix from some enums and switch to them (#553)
Yanis002 Jun 22, 2025
b77720f
[OOT/MM] Misc changes for MM (#555)
Yanis002 Jun 29, 2025
518ce00
Update packed normals implementation to match F3DEX3 beta (#567)
sauraen Aug 2, 2025
83b7657
Fixup 565 normal import (#571)
Dragorn421 Aug 5, 2025
21059ce
Fix Link import/export (#552)
Dragorn421 Aug 5, 2025
b51495a
[OoT] Fix scene command issues (#562)
Yanis002 Aug 5, 2025
2db7eaa
[OoT] Fix cutscene export issues (#569)
Yanis002 Aug 5, 2025
5b23359
Try to do append load post on register and remove it on unregister (#…
Lilaa3 Aug 5, 2025
c24e20a
[OoT] Add default camera when creating the scene (#563)
Yanis002 Aug 5, 2025
f9b1b3c
[SM64] Add material slot sorting to armatures (#572)
Lilaa3 Aug 13, 2025
58564cf
Remove legacy & unused f3d_render_engine (#570)
Dragorn421 Aug 13, 2025
8687eda
[SM64] Fix mesh instancing, regression from #423 (#559)
Lilaa3 Aug 15, 2025
a53681e
[SM64] Smarter and standardized includes (#449)
Lilaa3 Aug 15, 2025
6dd14a0
[SM64] Rework actor load exports for level scripts (#564)
Anoliah Aug 15, 2025
aff23e0
[SM64] Bring more props to combined and merge level enums (#512)
Lilaa3 Aug 15, 2025
3a7fcc2
[SM64] Add lighting engine presets (#531)
Lilaa3 Aug 15, 2025
f138921
[SM64] Implement someone level template styled bounds (#513)
Lilaa3 Aug 15, 2025
c3f7ea4
[F3D + SM64] Dedup mesh names, fixes repeated final revert DLs (#565)
Lilaa3 Aug 16, 2025
5877a94
[F3D] Fix node creation in 4.5 (#566)
Lilaa3 Aug 16, 2025
8853a48
[SM64] Animations Rewrite/Rework (#467)
Lilaa3 Aug 21, 2025
17a6155
[SM64] Custom level script and special commands and improvements to c…
Lilaa3 Aug 21, 2025
c76f317
Fix README link for Ocarina of Time to point to z64 folder (#577)
GrahamBenHarper Aug 29, 2025
b645788
[Codebase] Restore original functionality to setOrigin (#575)
Lilaa3 Sep 3, 2025
f7f7a05
[Codebase] Fix setOrigin AGAIN (#588)
Lilaa3 Oct 16, 2025
57539b1
[OoT] Various fixes (#592)
Yanis002 Nov 10, 2025
63b3a6c
[OoT] Fix misplaced objects bug (#596)
Yanis002 Nov 10, 2025
f7380e1
[SM64] Fix custom bones (#580)
Lilaa3 Nov 10, 2025
4e49d6a
[SM64] Bug fix for animation rework table logic (#585)
Lilaa3 Nov 10, 2025
5b48a36
Fix for issues #601 and #602 (#605)
Yanis002 Nov 10, 2025
bdc0e6d
[OoT] Fix scene export issues (#607)
Yanis002 Nov 10, 2025
85bdf3c
[OoT] Improve how lighting is handled (#597)
Yanis002 Nov 13, 2025
e2c786d
[OoT] Various fixes 2 (#612)
Yanis002 Nov 16, 2025
f1ed9b8
[OoT/MM] Implement Animated Materials (#608)
Yanis002 Nov 16, 2025
18a0599
[OoT] Fixed commands parsed incorrectly (#615)
Yanis002 Nov 17, 2025
4818e9d
[F3D] glTF2 support (#368)
Lilaa3 Nov 18, 2025
5af113c
[OoT] Skeleton export fix (#620)
Yanis002 Nov 18, 2025
8bfa481
[OoT] Added checkbox to import all animations when importing an OoT s…
Nokaubure Nov 20, 2025
43b82c0
[SM64] Fix createBone (regression in custom commands) (#611)
Lilaa3 Nov 20, 2025
fbfb008
[OoT] Introduce feature set (#622)
Yanis002 Nov 21, 2025
41fce34
[OOT] Remove clear_mesh_children workaround (#618)
Lilaa3 Nov 25, 2025
fbfd300
[SM64] Fix rotation bug when mesh is invisible (#625)
Lilaa3 Nov 26, 2025
cf9f3e9
[OoT] Add new Animated Materials types (#623)
Yanis002 Nov 26, 2025
ea7107c
[OoT] Some CS export fixes and improvements (#624)
Yanis002 Nov 26, 2025
6ed2377
[SM64] Fix custom color argument (#628)
Lilaa3 Nov 26, 2025
bc50692
[SM64] Fix uses_env_fx missing or (#629)
Lilaa3 Nov 26, 2025
ebd7f94
[OoT] Always consider global.h existing for legacy version (#631)
Yanis002 Nov 30, 2025
8beceff
Fixed local view issue (#635)
Yanis002 Dec 2, 2025
9324e05
[OoT] Fixed collision exporter not cleaning up duplicates (#639)
Yanis002 Dec 4, 2025
086ff30
Merge upstream/main: intégration v2.4.0 avec conservation des fonctio…
coco875 Dec 16, 2025
b041aa2
try fix error
coco875 Dec 16, 2025
2231876
Update addon_updater_ops.py
coco875 Dec 16, 2025
893644e
Update __init__.py
coco875 Dec 16, 2025
091c828
Update f3d_gbi.py
coco875 Dec 16, 2025
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
36 changes: 10 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,11 @@ Forked from [kurethedead/fast64 on BitBucket](https://bitbucket.org/kurethedead/

This is a Blender plugin that allows one to export F3D display lists. It also has the ability to export assets for Super Mario 64 and Ocarina of Time decompilation projects. It supports custom color combiners / geometry modes / etc. It is also possible to use exported C code in homebrew applications.

Make sure to save often, as this plugin is prone to crashing when creating materials / undoing material creation. This is a Blender issue.

<https://developer.blender.org/T70574>
Make sure to save often, as this plugin is prone to crashing when creating materials / undoing material creation. [This is a Blender issue](https://developer.blender.org/T70574).

### Example models can be found [here](https://github.com/Fast-64/fast64-models)

![alt-text](/images/mat_inspector.png)
Fast64 features an updater (which can also be used to try out in testing features and bugfixes), [follow these instructions to use it](https://fast64.readthedocs.io/en/latest/common/updater/updater.html)

### Credits
Thanks to anonymous_moose, Cheezepin, Rovert, and especially InTheBeef for testing.
Expand All @@ -27,7 +25,7 @@ We have a Discord server for support as well as development [here](https://disco

### Links to Docs / Guides for Each Game
1. [ Super Mario 64 ](/fast64_internal/sm64/README.md)
2. [ Ocarina Of Time ](/fast64_internal/oot/README.md)
2. [ Ocarina Of Time ](/fast64_internal/z64/README.md)

### Installation
Download the repository as a zip file. In Blender, go to Edit -> Preferences -> Add-Ons and click the "Install" button to install the plugin from the zip file. Find the Fast64 addon in the addon list and enable it. If it does not show up, go to Edit -> Preferences -> Save&Load and make sure 'Auto Run Python Scripts' is enabled.
Expand All @@ -48,6 +46,12 @@ In F3D material properties, you can enable "Large Texture Mode". This will let y
### Decomp vs Homebrew Compatibility
There may occur cases where code is formatted differently based on the code use case. In the tools panel under the Fast64 File Settings subheader, you can toggle homebrew compatibility.

### glTF 2.0 Support
Fast64 supports several extensions for glTF 2.0 that can be exported and imported via the glTF 2.0 io addon integrated in blender via hooks. It also implements hacks for broken versions of the addon.

Currently only basic n64 material properties and F3D properties are supported, but extensions for game modes like SM64 and OOT can be added in the future.
See the [glTF README](/fast64_internal/f3d/glTF/README.md) for details and schemas.

### Converting To F3D v5 Materials
A new optimized shader graph was introduced to decrease processing times for material creation and exporting. If you have a project that still uses old materials, you may want to convert them to v5. To convert an old project, click the "Recreate F3D Materials As V5" operator near the top of the Fast64 tab in 3D view. This may take a while depending on the number of materials in the project. Then go to the outliner, change the display mode to "Orphan Data" (broken heart icon), then click "Purge" in the top right corner. Purge multiple times until all of the old node groups are gone.

Expand All @@ -66,27 +70,7 @@ Selecting F3DEX3 as your microcode unlocks a large number of additional presets

For cel shading, it is recommended to start with one of the cel shading presets, then modify the settings under the `Use Cel Shading` panel. Hover over each UI control for additional information about how that setting works.

### Updater

Fast64 features an updater ([CGCookie/blender-addon-updater](https://github.com/CGCookie/blender-addon-updater)).

It can be found in the addon preferences:

![How the updater in the addon preferences looks, right after addon install](/images/updater_initially.png)

Click the "Check now for fast64 update" button to check for updates.

![Updater preferences after clicking the "check for updates" button](/images/updater_after_check.png)

Click "Install main / old version" and choose "Main" if it isn't already selected:

![Updater: install main](/images/updater_install_main.png)

Click OK, there should be a message "Addon successfully installed" and prompting you to restart Blender:

![Updater: successful install, must restart](/images/updater_success_restart.png)

Clicking the red button will close Blender. After restarting, fast64 will be up-to-date with the latest main revision.
### [Repo Settings](https://fast64.readthedocs.io/en/latest/common/repo_settings/repo_settings.html)

### Fast64 Development
If you'd like to develop in VSCode, follow this tutorial to get proper autocomplete. Skip the linter for now, we'll need to make sure the entire project gets linted before enabling autosave linting because the changes will be massive.
Expand Down
90 changes: 61 additions & 29 deletions __init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import bpy

from bpy.utils import register_class, unregister_class
from bpy.path import abspath

from . import addon_updater_ops

from .fast64_internal.utility import prop_split, multilineLabel, draw_and_check_tab
from .fast64_internal.game_data import game_data
from .fast64_internal.utility import prop_split, multilineLabel, set_prop_if_in_data, Matrix4x4Property

from .fast64_internal.repo_settings import (
draw_repo_settings,
Expand All @@ -13,15 +15,16 @@
repo_settings_operators_unregister,
)

from .fast64_internal.sm64 import sm64_register, sm64_unregister
from .fast64_internal.sm64 import sm64_register, sm64_unregister, SM64_ActionProperty
from .fast64_internal.sm64.sm64_constants import sm64_world_defaults
from .fast64_internal.sm64.settings.properties import SM64_Properties
from .fast64_internal.sm64.sm64_geolayout_bone import SM64_BoneProperties
from .fast64_internal.sm64.sm64_objects import SM64_ObjectProperties

from .fast64_internal.oot import OOT_Properties, oot_register, oot_unregister
from .fast64_internal.oot.oot_constants import oot_world_defaults
from .fast64_internal.oot.props_panel_main import OOT_ObjectProperties
from .fast64_internal.z64 import OOT_Properties, oot_register, oot_unregister
from .fast64_internal.z64.constants import oot_world_defaults
from .fast64_internal.z64.props_panel_main import OOT_ObjectProperties
from .fast64_internal.z64.actor.properties import initOOTActorProperties
from .fast64_internal.utility_anim import utility_anim_register, utility_anim_unregister, ArmatureApplyWithMeshOperator

from .fast64_internal.mk64.mk64_constants import mk64_world_defaults
Expand All @@ -34,7 +37,6 @@
mat_unregister,
check_or_ask_color_management,
)
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.flipbook import flipbook_register, flipbook_unregister
Expand All @@ -56,10 +58,19 @@
on_update_render_settings,
)

from .fast64_internal.gltf_extension import (
glTF2ExportUserExtension, # Import these so they are visible to the glTF add-on
glTF2ImportUserExtension,
glTF2_pre_export_callback,
Fast64GlTFSettings,
gltf_extension_register,
gltf_extension_unregister,
)

# info about add on
bl_info = {
"name": "Fast64 (HM64)",
"version": (2, 3, 0),
"version": (2, 4, 0),
"author": "kurethedead",
"location": "3DView",
"description": "Plugin for exporting F3D display lists and other game data related to Nintendo 64 games.",
Expand All @@ -70,6 +81,7 @@
gameEditorEnum = (
("SM64", "SM64", "Super Mario 64", 0),
("OOT", "OOT", "Ocarina Of Time", 1),
# ("MM", "MM", "Majora's Mask", 4),
("MK64", "MK64", "Mario Kart 64", 3),
("Homebrew", "Homebrew", "Homebrew", 2),
)
Expand All @@ -90,7 +102,9 @@ def poll(cls, context):
def draw(self, context):
col = self.layout.column()
col.scale_y = 1.1 # extra padding
prop_split(col, context.scene, "f3d_type", "F3D Microcode")
prop_split(col, context.scene, "f3d_type", "Microcode")
if context.scene.f3d_type in {"F3DEX3", "T3D"}:
prop_split(col, context.scene, "packed_normals_algorithm", "Packed normals alg")
col.prop(context.scene, "saveTextures")
col.prop(context.scene, "f3d_simple", text="Simple Material UI")
col.prop(context.scene, "exportInlineF3D", text="Bleed and Inline Material Exports")
Expand Down Expand Up @@ -166,6 +180,8 @@ class Fast64Settings_Properties(bpy.types.PropertyGroup):

version: bpy.props.IntProperty(name="Fast64Settings_Properties Version", default=0)

glTF: bpy.props.PointerProperty(type=Fast64GlTFSettings, name="glTF Properties")

anim_range_choice: bpy.props.EnumProperty(
name="Anim Range",
description="What to use to determine what frames of the animation to export",
Expand Down Expand Up @@ -215,6 +231,19 @@ class Fast64Settings_Properties(bpy.types.PropertyGroup):

internal_game_update_ver: bpy.props.IntProperty(default=0)

def to_repo_settings(self):
data = {}
data["autoLoad"] = self.auto_repo_load_settings
data["autoPickTextureFormat"] = self.auto_pick_texture_format
if self.auto_pick_texture_format:
data["preferRGBAOverCI"] = self.prefer_rgba_over_ci
return data

def from_repo_settings(self, data: dict):
set_prop_if_in_data(self, "auto_repo_load_settings", data, "autoLoad")
set_prop_if_in_data(self, "auto_pick_texture_format", data, "autoPickTextureFormat")
set_prop_if_in_data(self, "prefer_rgba_over_ci", data, "preferRGBAOverCI")


class Fast64_Properties(bpy.types.PropertyGroup):
"""
Expand All @@ -229,6 +258,14 @@ class Fast64_Properties(bpy.types.PropertyGroup):
renderSettings: bpy.props.PointerProperty(type=Fast64RenderSettings_Properties, name="Fast64 Render Settings")


class Fast64_ActionProperties(bpy.types.PropertyGroup):
"""
Properties in Action.fast64.
"""

sm64: bpy.props.PointerProperty(type=SM64_ActionProperty, name="SM64 Properties")


class Fast64_BoneProperties(bpy.types.PropertyGroup):
"""
Properties in bone.fast64 (bpy.types.Bone)
Expand Down Expand Up @@ -296,24 +333,6 @@ def execute(self, context: "bpy.types.Context"):
return {"FINISHED"}


# def updateGameEditor(scene, context):
# if scene.currentGameEditorMode == 'SM64':
# sm64_panel_unregister()
# elif scene.currentGameEditorMode == 'Z64':
# oot_panel_unregister()
# else:
# raise PluginError("Unhandled game editor mode " + str(scene.currentGameEditorMode))
#
# if scene.gameEditorMode == 'SM64':
# sm64_panel_register()
# elif scene.gameEditorMode == 'Z64':
# oot_panel_register()
# else:
# raise PluginError("Unhandled game editor mode " + str(scene.gameEditorMode))
#
# scene.currentGameEditorMode = scene.gameEditorMode


class ExampleAddonPreferences(bpy.types.AddonPreferences, addon_updater_ops.AddonUpdaterPreferences):
bl_idname = __package__

Expand All @@ -326,6 +345,7 @@ def draw(self, context):
Fast64RenderSettings_Properties,
ManualUpdatePreviewOperator,
Fast64_Properties,
Fast64_ActionProperties,
Fast64_BoneProperties,
Fast64_ObjectProperties,
Fast64_CurveProperties,
Expand All @@ -339,8 +359,10 @@ def draw(self, context):
def upgrade_changed_props():
"""Set scene properties after a scene loads, used for migrating old properties"""
SM64_Properties.upgrade_changed_props()
OOT_Properties.upgrade_changed_props()
MK64_Properties.upgrade_changed_props()
SM64_ObjectProperties.upgrade_changed_props()
SM64_BoneProperties.upgrade_changed_props()
OOT_ObjectProperties.upgrade_changed_props()
for scene in bpy.data.scenes:
settings: Fast64Settings_Properties = scene.fast64.settings
Expand Down Expand Up @@ -369,6 +391,8 @@ def upgrade_scene_props_node():

@bpy.app.handlers.persistent
def after_load(_a, _b):
game_data.update(bpy.context.scene.gameEditorMode)

settings = bpy.context.scene.fast64.settings
if any(mat.is_f3d for mat in bpy.data.materials):
check_or_ask_color_management(bpy.context)
Expand All @@ -391,11 +415,12 @@ def set_game_defaults(scene: bpy.types.Scene, set_ucode=True):
if scene.gameEditorMode == "SM64":
f3d_type = "F3D"
world_defaults = sm64_world_defaults
elif scene.gameEditorMode == "OOT":
elif scene.gameEditorMode in {"OOT", "MM"}:
f3d_type = "F3DEX2/LX2"
world_defaults = oot_world_defaults
elif scene.gameEditorMode == "MK64":
f3d_type = "F3DEX/LX"
world_defaults = mk64_world_defaults
elif scene.gameEditorMode == "Homebrew":
f3d_type = "F3D"
world_defaults = {} # This will set some pretty bad defaults, but trust the user
Expand All @@ -406,6 +431,7 @@ def set_game_defaults(scene: bpy.types.Scene, set_ucode=True):


def gameEditorUpdate(scene: bpy.types.Scene, _context):
game_data.update(scene.gameEditorMode)
set_game_defaults(scene)


Expand All @@ -430,14 +456,17 @@ def register():
register_class(ExampleAddonPreferences)
addon_updater_ops.register(bl_info)

register_class(Matrix4x4Property)
initOOTActorProperties()
utility_anim_register()
mat_register()
render_engine_register()
bsdf_conv_register()
sm64_register(True)
oot_register(True)
mk64_register(True)

gltf_extension_register()

repo_settings_operators_register()

for cls in classes:
Expand Down Expand Up @@ -471,6 +500,7 @@ def register():
bpy.types.Bone.fast64 = bpy.props.PointerProperty(type=Fast64_BoneProperties, name="Fast64 Bone Properties")
bpy.types.Object.fast64 = bpy.props.PointerProperty(type=Fast64_ObjectProperties, name="Fast64 Object Properties")
bpy.types.Curve.fast64 = bpy.props.PointerProperty(type=Fast64_CurveProperties, name="Fast64 Curve Properties")
bpy.types.Action.fast64 = bpy.props.PointerProperty(type=Fast64_ActionProperties, name="Fast64 Action Properties")

bpy.app.handlers.load_post.append(after_load)

Expand All @@ -486,9 +516,10 @@ def unregister():
oot_unregister(True)
mk64_unregister(True)
mat_unregister()
gltf_extension_unregister()
bsdf_conv_unregister()
bsdf_conv_panel_unregsiter()
render_engine_unregister()
unregister_class(Matrix4x4Property)

del bpy.types.Scene.fullTraceback
del bpy.types.Scene.ignoreTextureRestrictions
Expand All @@ -500,6 +531,7 @@ def unregister():
del bpy.types.Scene.fast64
del bpy.types.Bone.fast64
del bpy.types.Object.fast64
del bpy.types.Action.fast64

repo_settings_operators_unregister()

Expand Down
Loading
Loading