Skip to content
Open
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
22 changes: 15 additions & 7 deletions __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,10 @@
}


required_version = bl_info.get("blender")
is_blender_version_supported = bpy.app.version >= required_version


class RbxAddonPreferences(AddonPreferences):
"""AddOnPreferences that are serialized between Blender sessions"""

Expand Down Expand Up @@ -197,8 +201,7 @@ class RBX_PT_main(RBX_PT_sidebar, Panel):

def draw(self, context):
layout = self.layout
required_version = bl_info.get("blender")
if bpy.app.version < required_version:
if not is_blender_version_supported:
layout.row().label(text="Please update Blender!", icon="ERROR")
layout.row().label(
text=f"Required: Blender {'.'.join(str(v) for v in required_version)} or newer",
Expand Down Expand Up @@ -315,6 +318,9 @@ def load_post(dummy):


def get_classes():
if not is_blender_version_supported:
return (RBX_PT_main,)

from .lib import (
event_loop,
creator_details,
Expand Down Expand Up @@ -345,17 +351,19 @@ def register():
for cls in get_classes():
bpy.utils.register_class(cls)

from .lib import roblox_properties
if is_blender_version_supported:
from .lib import roblox_properties

bpy.types.WindowManager.rbx = PointerProperty(type=roblox_properties.RbxProperties)
bpy.app.handlers.load_post.append(load_post)
bpy.types.WindowManager.rbx = PointerProperty(type=roblox_properties.RbxProperties)
bpy.app.handlers.load_post.append(load_post)


def unregister():
# We unregister in reverse order to ensure a class is not unregistered while
# another still depends on it
for cls in reversed(get_classes()):
bpy.utils.unregister_class(cls)
del bpy.types.WindowManager.rbx

bpy.app.handlers.load_post.remove(load_post)
if is_blender_version_supported:
del bpy.types.WindowManager.rbx
bpy.app.handlers.load_post.remove(load_post)