-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjs_render_presets_button.py
More file actions
83 lines (67 loc) · 2.85 KB
/
js_render_presets_button.py
File metadata and controls
83 lines (67 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
""" Render Presets Button
A generic class that can be added as a button to LightWave's GUI that simply
starts Render Presets master class.
LightWave 3D (as of v11) seems to crash when combining plugin classes in the
same file. So I keep the button class separate.
"""
__author__ = 'Johan Steen'
__copyright__ = 'Copyright (C) 2010-2012, Johan Steen'
__credits__ = ''
__license__ = 'New BSD License'
__version__ = '2.0'
__maintainer__ = 'Johan Steen'
__email__ = 'http://www.artstorm.net/contact/'
__status__ = 'Production'
__lwver__ = '11'
# ------------------------------------------------------------------------------
# Import Modules
# ------------------------------------------------------------------------------
import lwsdk
# ------------------------------------------------------------------------------
# Generic Plugin Class
# ------------------------------------------------------------------------------
class RenderPresetsButton(lwsdk.IGeneric):
# Constants
SSERVER = 'js_Render_Presets'
def __init__(self, context):
super(RenderPresetsButton, self).__init__()
def process(self, ga):
item_info = lwsdk.LWItemInfo()
# Check if Render Presets Master is already added
index = 1
server_added = False
while True:
server_name = item_info.server(None, 'MasterHandler', index)
# Reached end of list, break loop
if server_name == None:
break
# Render Presets Master added, break loop
if server_name == self.SSERVER:
server_added = True
break
index += 1
# Do the appropriate action on the MasterHandler Render Presets Server
if server_added:
# In production Render Presets is always started from the button
# In development I prefer to toggle it with a remove, for testing
if __status__ == 'Production':
lwsdk.command('EditServer MasterHandler ' + str(index))
else:
lwsdk.command('RemoveServer MasterHandler ' + str(index))
else:
# Not added, so let's add it.
lwsdk.command('ApplyServer MasterHandler ' + self.SSERVER)
lwsdk.command('EditServer MasterHandler ' + str(index))
return lwsdk.AFUNC_OK
# ------------------------------------------------------------------------------
# Register the Plugin
# ------------------------------------------------------------------------------
ServerTagInfo = [
('js Render Presets', lwsdk.SRVTAG_USERNAME | lwsdk.LANGID_USENGLISH),
('Render Presets', lwsdk.SRVTAG_BUTTONNAME | lwsdk.LANGID_USENGLISH),
('Utilities/Python', lwsdk.SRVTAG_MENU | lwsdk.LANGID_USENGLISH)
]
ServerRecord = {
lwsdk.GenericFactory('js_Render_Presets_Btn', RenderPresetsButton):
ServerTagInfo
}