6874a7af1aa9a5847a2a167e850a9918e691abcd
[blender-addons-contrib.git] / add_test_scene_elements / __init__.py
1 # ##### BEGIN GPL LICENSE BLOCK #####
2 #
3 #  This program is free software; you can redistribute it and/or
4 #  modify it under the terms of the GNU General Public License
5 #  as published by the Free Software Foundation; either version 2
6 #  of the License, or (at your option) any later version.
7 #
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12 #
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software Foundation,
15 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 #
17 # ##### END GPL LICENSE BLOCK #####
18 # by meta-androcto #
19
20 bl_info = {
21     "name": "Test Scene, Light, Camera",
22     "author": "Meta Androcto",
23     "version": (0, 2),
24     "blender": (2, 77, 0),
25     "location": "View3D > Add > Scene Elements",
26     "description": "Add Scenes & Lights, Objects.",
27     "warning": "",
28     "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6"
29     "/Py/Scripts",
30     "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
31     "category": "Object"}
32
33
34 if "bpy" in locals():
35     import importlib
36     importlib.reload(scene_camera)
37     importlib.reload(scene_materials)
38     importlib.reload(scene_objects)
39     importlib.reload(scene_objects_cycles)
40     importlib.reload(scene_texture_render)
41     importlib.reload(add_light_template)
42     importlib.reload(trilighting)
43     importlib.reload(camera_turnaround)
44
45 else:
46     from . import scene_camera
47     from . import scene_materials
48     from . import scene_objects
49     from . import scene_objects_cycles
50     from . import scene_texture_render
51     from . import add_light_template
52     from . import trilighting
53     from . import camera_turnaround
54
55 import bpy
56
57
58 class INFO_MT_scene_elements_add(bpy.types.Menu):
59     # Define the "mesh objects" menu
60     bl_idname = "INFO_MT_scene_elements"
61     bl_label = "Test scenes"
62
63     def draw(self, context):
64         layout = self.layout
65         layout.operator_context = 'INVOKE_REGION_WIN'
66         layout.operator("camera.add_scene",
67                         text="Scene_Camera")
68         layout.operator("materials.add_scene",
69                         text="Scene_Objects_BI")
70         layout.operator("plane.add_scene",
71                         text="Scene_Plane")
72         layout.operator("objects_cycles.add_scene",
73                         text="Scene_Objects_Cycles")
74         layout.operator("objects_texture.add_scene",
75                         text="Scene_Textures_Cycles")
76
77 class INFO_MT_mesh_lamps_add(bpy.types.Menu):
78     # Define the "mesh objects" menu
79     bl_idname = "INFO_MT_scene_lamps"
80     bl_label = "Lighting Sets"
81
82     def draw(self, context):
83         layout = self.layout
84         layout.operator_context = 'INVOKE_REGION_WIN'
85         layout.operator("object.add_light_template",
86                         text="Add Light Template")
87         layout.operator("object.trilighting",
88                         text="Add Tri Lighting")
89
90 class INFO_MT_mesh_cameras_add(bpy.types.Menu):
91     # Define the "mesh objects" menu
92     bl_idname = "INFO_MT_scene_cameras"
93     bl_label = "Camera Sets"
94
95     def draw(self, context):
96         layout = self.layout
97         layout.operator_context = 'INVOKE_REGION_WIN'
98         layout.operator("object.rotate_around",
99                         text="Turnaround Camera")
100
101 # Define menu
102 def menu(self, context):
103
104     layout = self.layout
105     layout.operator_context = 'INVOKE_REGION_WIN'
106     self.layout.separator()
107     self.layout.menu("INFO_MT_scene_elements", icon="SCENE_DATA")
108     self.layout.menu("INFO_MT_scene_lamps", icon="LAMP_SPOT")
109     self.layout.menu("INFO_MT_scene_cameras", icon="OUTLINER_DATA_CAMERA")
110
111 # Addons Preferences
112
113
114 class AddonPreferences(bpy.types.AddonPreferences):
115     bl_idname = __name__
116
117     def draw(self, context):
118         layout = self.layout
119         layout.label(text="Lighting Sets:")
120         layout.label(text="Spots, Points & Tri Lights")
121         layout.label(text="Test Scenes:")
122         layout.label(text="Basic pre-built test scenes Cycles & BI")
123
124
125 def register():
126     camera_turnaround.register()
127     bpy.utils.register_module(__name__)
128     # Add "Extras" menu to the "Add Mesh" menu
129     bpy.types.INFO_MT_add.append(menu)
130     try:
131         bpy.types.VIEW3D_MT_AddMenu.prepend(menu)
132     except:
133         pass
134
135 def unregister():
136     camera_turnaround.unregister()
137     # Remove "Extras" menu from the "Add Mesh" menu.
138     bpy.types.INFO_MT_add.remove(menu)
139     try:
140         bpy.types.VIEW3D_MT_AddMenu.remove(menu)
141     except:
142         pass
143     bpy.utils.unregister_module(__name__)
144
145 if __name__ == "__main__":
146     register()