Skip to content

Commit 0d42d3d

Browse files
Merge pull request #21 from spacek531/menu-item
Menu item
2 parents 8f71136 + 45b24b7 commit 0d42d3d

5 files changed

Lines changed: 79 additions & 23 deletions

File tree

rct-graphics-helper/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from .properties.general_properties import register_general_properties, unregister_general_properties
1717
from .properties.track_properties import register_track_properties, unregister_track_properties
1818
from .rct_graphics_helper_panel import GraphicsHelperPanel
19+
from .rct_graphics_render_button import try_register_button, unregister_button
1920
from . import developer_utils
2021
import importlib
2122
import bpy
@@ -24,7 +25,7 @@
2425
"name": "RCT Graphics Helper",
2526
"description": "Render tool to replicate RCT graphics",
2627
"author": "Olivier Wervers",
27-
"version": (0, 6, 0),
28+
"version": (0, 6, 1),
2829
"blender": (2, 79, 0),
2930
"location": "Render",
3031
"support": "COMMUNITY",
@@ -52,6 +53,7 @@ def register():
5253
register_vehicles_properties()
5354
register_walls_properties()
5455
register_track_properties()
56+
try_register_button(bpy.context)
5557

5658
print("Registered {} with {} modules".format(
5759
bl_info["name"], len(modules)))
@@ -68,5 +70,6 @@ def unregister():
6870
unregister_vehicles_properties()
6971
unregister_walls_properties()
7072
unregister_track_properties()
73+
unregister_button()
7174

7275
print("Unregistered {}".format(bl_info["name"]))

rct-graphics-helper/operators/init_operator.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
from ..builders.scene_builder import SceneBuilder
1717
from ..builders.compositor_builder import CompositorBuilder
18+
from ..rct_graphics_render_button import register_button, unregister_button
1819

1920

2021
class Init(bpy.types.Operator):
@@ -71,6 +72,9 @@ def execute(self, context):
7172
materialsBuilder = MaterialsBuilder()
7273
materialsBuilder.build(context)
7374

75+
unregister_button()
76+
register_button()
77+
7478
return {'FINISHED'}
7579

7680
def delete_default_render_layer(self, context):
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
'''
2+
Copyright (c) 2022 RCT Graphics Helper developers
3+
4+
For a complete list of all authors, please refer to the addon's meta info.
5+
Interested in contributing? Visit https://github.com/oli414/Blender-RCT-Graphics
6+
7+
RCT Graphics Helper is licensed under the GNU General Public License version 3.
8+
'''
9+
10+
import bpy
11+
12+
from .vehicle_render_operator import RenderVehicle
13+
from .walls_render_operator import RenderWalls
14+
from .render_tiles_operator import RenderTiles
15+
16+
class RenderRCTSwitch(bpy.types.Operator):
17+
bl_idname = "render.rct_switch"
18+
bl_label = "Render RCT project"
19+
20+
21+
def execute(self, context):
22+
23+
properties = context.scene.rct_graphics_helper_general_properties
24+
render_mode = properties.render_mode
25+
26+
if render_mode == "TILES":
27+
bpy.ops.render.rct_static()
28+
elif render_mode == "VEHICLE":
29+
bpy.ops.render.rct_vehicle()
30+
elif render_mode == "WALLS":
31+
bpy.ops.render.rct_walls()
32+
33+
return{'FINISHED'}

rct-graphics-helper/rct_graphics_helper_panel.py

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,7 @@
1313

1414
from .operators.init_operator import Init
1515

16-
from .operators.vehicle_render_operator import RenderVehicle
17-
18-
from .operators.walls_render_operator import RenderWalls
19-
20-
from .operators.track_render_operator import RenderTrack
21-
22-
from .operators.render_tiles_operator import RenderTiles
16+
from .operators.render_switch_operator import RenderRCTSwitch
2317

2418
from .models.palette import palette_colors, palette_colors_details
2519

@@ -40,6 +34,13 @@ def execute(self, context):
4034
def invoke(self, context, event):
4135
return context.window_manager.invoke_confirm(self, event)
4236

37+
def addRenderButton(layout, hasFailed = False):
38+
row = layout.row()
39+
text = "Render"
40+
if hasFailed:
41+
text = "Render failed"
42+
row.operator("render.rct_switch", text=text)
43+
4344
class GraphicsHelperPanel(bpy.types.Panel):
4445
bl_label = "RCT Graphics Helper"
4546
bl_idname = "VIEW3D_PT_rct_graphics_helper"
@@ -169,11 +170,7 @@ def draw_tiles_panel(self, scene, layout):
169170
if properties.object_width > 1 or properties.object_length > 1:
170171
row.prop(properties, "invert_tile_positions")
171172

172-
row = layout.row()
173-
text = "Render"
174-
if general_properties.rendering:
175-
text = "Failed"
176-
row.operator("render.rct_static", text=text)
173+
addRenderButton(layout, general_properties.rendering)
177174

178175
def draw_walls_panel(self, scene, layout):
179176
properties = scene.rct_graphics_helper_walls_properties
@@ -188,11 +185,7 @@ def draw_walls_panel(self, scene, layout):
188185
row = layout.row()
189186
row.prop(properties, "doorway")
190187

191-
row = layout.row()
192-
text = "Render"
193-
if general_properties.rendering:
194-
text = "Failed"
195-
row.operator("render.rct_walls", text=text)
188+
addRenderButton(layout, general_properties.rendering)
196189

197190
def draw_track_panel(self, scene, layout):
198191
properties = scene.rct_graphics_helper_track_properties
@@ -237,8 +230,4 @@ def draw_vehicle_panel(self, scene, layout):
237230
row = layout.row()
238231
row.prop(properties, "inverted_set")
239232

240-
row = layout.row()
241-
text = "Render"
242-
if general_properties.rendering:
243-
text = "Failed"
244-
row.operator("render.rct_vehicle", text=text)
233+
addRenderButton(layout, general_properties.rendering)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'''
2+
Copyright (c) 2022 RCT Graphics Helper developers
3+
4+
For a complete list of all authors, please refer to the addon's meta info.
5+
Interested in contributing? Visit https://github.com/oli414/Blender-RCT-Graphics
6+
7+
RCT Graphics Helper is licensed under the GNU General Public License version 3.
8+
'''
9+
10+
import bpy
11+
12+
def draw(self, context):
13+
self.layout.operator("render.rct_switch")
14+
15+
def register_button():
16+
bpy.types.INFO_MT_render.append(draw)
17+
18+
19+
def unregister_button():
20+
bpy.types.INFO_MT_render.remove(draw)
21+
22+
23+
def try_register_button(context):
24+
if "Rig" in context.scene.objects:
25+
register_button()
26+
else:
27+
unregister_button()

0 commit comments

Comments
 (0)