added file location messeges & disabled handler that was crashing on reload or newfile
[blender-addons-contrib.git] / add_mesh_walls / __init__.py
1 # ***** BEGIN GPL LICENSE BLOCK *****
2 #
3 # This program is free software; you may 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:
15 #
16 #       the Free Software Foundation Inc.
17 #       51 Franklin Street, Fifth Floor
18 #       Boston, MA 02110-1301, USA
19 #
20 # or go online at: http://www.gnu.org/licenses/ to view license options.
21 #
22 # ***** END GPL LICENCE BLOCK *****
23
24 bl_info = {
25     "name": "WallFactory",
26     "author": "Jambay, Brikbot",
27     "version": (0, 6, 0),
28     "blender": (2, 6, 1),
29     "location": "View3D > Add > Mesh",
30     "description": "Adds a block/rock wall.",
31     "warning": "WIP - updates pending and API not final for Blender",
32     "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"\
33         "Scripts/Add_Mesh/WallFactory",
34     "tracker_url": "https://projects.blender.org/tracker/index.php?"\
35         "func=detail&aid=24980",
36     "category": "Add Mesh"}
37
38 """
39     This script builds a wall; at current 3D-Cursor location.
40     The wall can be modified to be a disc (radial), curved (slope), or dome (radial+slope).
41     Actually, it could be a path, or a tower, or anything made with blocks.
42     Crenelations also work which can double as arrow slits or support beam holes.
43     Slots, both vertical and horizontal, can be added as openings.
44     Steps and platforms may be added as extensions to the wall.
45 """
46
47 # Version History
48 # v0.59 2011/09/13      Restructured as "factory" set of scripts - preparation for including rocks.
49 # v0.58 2010/12/06      Added "backside" for shelf and steps, and "cantilevered step" options.
50 # v0.57 2010/12/03      Minor updates for Blender SVN maintenance.
51 # v0.56 2010/11/19      Revised UI for property access/display.
52 # V0.55 2010/11/15      Added stairs, improved shelf, fixed plan generation.
53 # V0.54 2010/11/11      Changed version number to match sourceforge check-in,
54 #                       basic shelf, and, some general cleanup.
55 # V0.5 2010/10/31       Converted to Blender 2.5.4
56 # V0.4 2009/11/29       Converted to Blender 2.5
57 # V0.3 2009/11/28       Re-did much of the internals, everything works better, 
58 #                       especially edge finding.
59 # V0.2 2008/03/??       Reworked nearly all the code, many new features
60 # V0.1 2007/09/14       First release!
61
62
63 if "bpy" in locals():
64     import imp
65     imp.reload(Wallfactory)
66 else:
67     from add_mesh_walls import Wallfactory
68
69 import bpy
70
71 ################################################################################
72 ##### REGISTER #####
73
74 # Define "Wall" menu
75 def add_mesh_wall_ops(self, context):
76     self.layout.operator(Wallfactory.add_mesh_wallb.bl_idname, text="Block Wall", icon="PLUGIN")
77 #    self.layout.operator(Wallfactory.add_mesh_wallr.bl_idname, text="Rocks", icon="PLUGIN")
78 #    self.layout.operator(Wallfactory.add_mesh_column.bl_idname, text="Columns", icon="PLUGIN")
79
80
81 # Add "Wall" options to the "Add Mesh" menu
82 def register():
83     bpy.utils.register_module(__name__)
84
85     bpy.types.INFO_MT_mesh_add.append(add_mesh_wall_ops)
86 #    bpy.types.INFO_MT_mesh_add.append(add_mesh_rockwall_button)
87 #    bpy.types.INFO_MT_mesh_add.append(add_mesh_column_button)
88
89 # Remove "Wall" options from the "Add Mesh" menu
90 def unregister():
91     bpy.utils.unregister_module(__name__)
92
93     bpy.types.INFO_MT_mesh_add.remove(add_mesh_wall_ops)
94 #    bpy.types.INFO_MT_mesh_add.remove(add_mesh_rockwall_button)
95 #    bpy.types.INFO_MT_mesh_add.remove(add_mesh_column_button)
96     
97 if __name__ == "__main__":
98     register()