Skip to content

Commit cf109ab

Browse files
Provide some basic render stats
1 parent 341403e commit cf109ab

File tree

2 files changed

+50
-5
lines changed

2 files changed

+50
-5
lines changed

loco-graphics-helper/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"name": "Loco Graphics Helper",
2626
"description": "Render tool to replicate Locomotion graphics (based on RCT Graphics Helper)",
2727
"author": "Olivier Wervers & OpenLoco Team",
28-
"version": (0, 1, 3),
28+
"version": (0, 1, 4),
2929
"blender": (2, 79, 0),
3030
"location": "Render",
3131
"support": "COMMUNITY",

loco-graphics-helper/rct_graphics_helper_panel.py

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,19 +211,64 @@ def draw_track_panel(self, scene, layout):
211211
# if general_properties.rendering:
212212
# text = "Failed"
213213
# row.operator("render.loco_track", text=text)
214+
@staticmethod
215+
def get_number_of_sprites(object):
216+
props = object.loco_graphics_helper_vehicle_properties
217+
218+
multiplier = props.number_of_animation_frames
219+
if props.roll_angle != 0:
220+
multiplier = 3
221+
elif props.braking_lights:
222+
multiplier = multiplier + 1
223+
if props.rotational_symmetry:
224+
multiplier = multiplier / 2
225+
226+
num_sprites = 0
227+
if props.sprite_track_flags[0]:
228+
num_sprites = int(props.flat_viewing_angles) * multiplier
229+
if props.sprite_track_flags[1]:
230+
num_sprites = num_sprites + (int(props.sloped_viewing_angles) * 2 + 8) * multiplier
231+
if props.sprite_track_flags[2]:
232+
num_sprites = num_sprites + (int(props.sloped_viewing_angles) * 2 + 8) * multiplier
233+
return int(num_sprites)
214234

215235
def draw_vehicle_panel(self, scene, layout):
216236
general_properties = scene.loco_graphics_helper_general_properties
217237
cars = [x for x in scene.objects if x.loco_graphics_helper_object_properties.object_type == "CAR"]
238+
cars = sorted(cars, key=lambda x: x.loco_graphics_helper_vehicle_properties.index)
218239
bogies = [x for x in scene.objects if x.loco_graphics_helper_object_properties.object_type == "BOGIE"]
240+
bogies = sorted(bogies, key=lambda x: x.loco_graphics_helper_vehicle_properties.index)
219241

220-
row = layout.row()
221-
row.label("Number of Cars: {}".format(len(cars)))
222-
row = layout.row()
223-
row.label("Number of Bogies: {}".format(len(bogies)))
242+
total_number_of_sprites = 0
243+
244+
if len(cars) > 0:
245+
row = layout.row()
246+
row.label("Car(s) details:")
247+
for idx, car in enumerate(cars):
248+
row = layout.row()
249+
number_of_sprites = self.get_number_of_sprites(car)
250+
row.label(" {}. {}, Number of sprites: {}".format(idx + 1, car.name, number_of_sprites))
251+
total_number_of_sprites = total_number_of_sprites + number_of_sprites
252+
253+
if len(bogies) > 0:
254+
row = layout.row()
255+
row.label("Bogie(s) details:")
256+
for idx, bogie in enumerate(bogies):
257+
row = layout.row()
258+
number_of_sprites = self.get_number_of_sprites(bogie)
259+
row.label(" {}. {}, Number of sprites: {}".format(idx + 1, bogie.name, number_of_sprites))
260+
total_number_of_sprites = total_number_of_sprites + number_of_sprites
224261

225262
row = layout.row()
263+
row.label("Total number of sprites: {}".format(total_number_of_sprites))
226264

265+
if total_number_of_sprites == 0:
266+
row = layout.row()
267+
row.label("NO CARS OR BOGIES SET!")
268+
row = layout.row()
269+
row.label("NOTHING WILL BE RENDERED!")
270+
271+
row = layout.row()
227272
text = "Render"
228273
if general_properties.rendering:
229274
text = "Failed"

0 commit comments

Comments
 (0)