""" Copyright (C) 2019 Remington Creative This file is part of Atomic Data Manager. Atomic Data Manager is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Atomic Data Manager is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Atomic Data Manager. If not, see . --- This file contains Atomic's global properties and handles the registration for all packages within the add-on. """ import bpy from bpy.utils import register_class from bpy.utils import unregister_class from atomic_data_manager import ops from atomic_data_manager import ui from atomic_data_manager.ui import inspect_ui from atomic_data_manager.updater import addon_updater_ops bl_info = { "name": "Atomic Data Manager", "author": "Remington Creative", "blender": (2, 80, 0), "version": (1, 0, 3), "location": "Properties > Scene", "category": "Remington Creative", "description": "An Intelligent Data Manager for Blender.", "wiki_url": "https://remington.pro/software/blender/atomic", "tracker_url": "https://github.com/grantwilk/atomic-data-manager/issues" } # Atomic Data Manager Properties class ATOMIC_PG_main(bpy.types.PropertyGroup): # main panel toggle buttons collections: bpy.props.BoolProperty(default=False) images: bpy.props.BoolProperty(default=False) lights: bpy.props.BoolProperty(default=False) materials: bpy.props.BoolProperty(default=False) node_groups: bpy.props.BoolProperty(default=False) particles: bpy.props.BoolProperty(default=False) textures: bpy.props.BoolProperty(default=False) worlds: bpy.props.BoolProperty(default=False) # inspect data-block search fields collections_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) images_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) lights_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) materials_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) node_groups_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) particles_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) textures_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) worlds_field: bpy.props.StringProperty( update=inspect_ui.update_inspection) # enum for the inspection mode that is currently active active_inspection: bpy.props.EnumProperty( items=[ ( 'COLLECTIONS', 'Collections', 'Collections' ), ( 'IMAGES', 'Images', 'Images' ), ( 'LIGHTS', 'Lights', 'Lights' ), ( 'MATERIALS', 'Materials', 'Materials' ), ( 'NODE_GROUPS', 'Node Groups', 'Node Groups' ), ( 'PARTICLES', 'Particles', 'Particles' ), ( 'TEXTURES', 'Textures', 'Textures' ), ( 'WORLDS', 'Worlds', 'Worlds' ) ], default='COLLECTIONS' ) # enum for the type of data being shown in the stats panel stats_mode: bpy.props.EnumProperty( items=[ ( 'OVERVIEW', # identifier 'Overview', # title 'Overview', # description 'FILE', # icon 0 # number / id ), ( 'COLLECTIONS', 'Collections', 'Collections', 'GROUP', 1 ), ( 'IMAGES', 'Images', 'Images', 'IMAGE_DATA', 2 ), ( 'LIGHTS', 'Lights', 'Lights', 'LIGHT', 3 ), ( 'MATERIALS', 'Materials', 'Materials', 'MATERIAL', 4 ), ( 'OBJECTS', 'Objects', 'Objects', 'OBJECT_DATA', 5 ), ( 'NODE_GROUPS', 'Node Groups', 'Node Groups', 'NODETREE', 6 ), ( 'PARTICLES', 'Particle Systems', 'Particle Systems', 'PARTICLES', 7 ), ( 'TEXTURES', 'Textures', 'Textures', 'TEXTURE', 8 ), ( 'WORLDS', 'Worlds', 'Worlds', 'WORLD', 9 ) ], default='OVERVIEW' ) # text field for the inspect rename operator rename_field: bpy.props.StringProperty() # search field for the inspect replace operator replace_field: bpy.props.StringProperty() def register(): # add-on updater registration addon_updater_ops.register(bl_info) register_class(ATOMIC_PG_main) bpy.types.Scene.atomic = bpy.props.PointerProperty(type=ATOMIC_PG_main) # atomic package registration ui.register() ops.register() def unregister(): # add-on updated unregistration addon_updater_ops.unregister() # atomic package unregistration ui.unregister() ops.unregister() unregister_class(ATOMIC_PG_main) del bpy.types.Scene.atomic