@@ -211,19 +211,64 @@ def draw_track_panel(self, scene, layout):
211
211
# if general_properties.rendering:
212
212
# text = "Failed"
213
213
# 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 )
214
234
215
235
def draw_vehicle_panel (self , scene , layout ):
216
236
general_properties = scene .loco_graphics_helper_general_properties
217
237
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 )
218
239
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 )
219
241
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
224
261
225
262
row = layout .row ()
263
+ row .label ("Total number of sprites: {}" .format (total_number_of_sprites ))
226
264
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 ()
227
272
text = "Render"
228
273
if general_properties .rendering :
229
274
text = "Failed"
0 commit comments