@@ -29,16 +29,20 @@ def __init__(self, section_id, name, description, default_value):
2929
3030def CreateSpriteEnum (defaultValue ):
3131 return (
32- ("0" , "Disabled" + (defaultValue == 0 and " (Default)" or "" ), "No sprites are rendered" , 0 ),
33- ("1" , "1" + (defaultValue == 1 and " (Default)" or "" ), "One sprite rendered " , 1 ),
34- ("2" , "2" + (defaultValue == 2 and " (Default)" or "" ), "Two sprites rendered " , 2 ),
35- ("4" , "4" + (defaultValue == 4 and " (Default)" or "" ), "Four sprites rendered " , 4 ),
36- ("8" , "8" + (defaultValue == 8 and " (Default)" or "" ), "Eight sprites rendered " , 8 ),
37- ("16" , "16" + (defaultValue == 16 and " (Default)" or "" ), "Sixteen sprites rendered " , 16 ),
38- ("32" , "32" + (defaultValue == 32 and " (Default)" or "" ), "Thirty-two sprites rendered " , 32 ),
39- ("64" , "64" + (defaultValue == 64 and " (Default)" or "" ), "Sixty-four sprites rendered " , 64 )
32+ ("0" , "Disabled" + (defaultValue == 0 and " (Default)" or "" ), "No sprites rendered" , 0 ),
33+ ("1" , "1" + (defaultValue == 1 and " (Default)" or "" ), "1 sprite" , 1 ),
34+ ("2" , "2" + (defaultValue == 2 and " (Default)" or "" ), "2 sprites" , 2 ),
35+ ("4" , "4" + (defaultValue == 4 and " (Default)" or "" ), "4 sprites (recommended minimum) " , 4 ),
36+ ("8" , "8" + (defaultValue == 8 and " (Default)" or "" ), "8 sprites" , 8 ),
37+ ("16" , "16" + (defaultValue == 16 and " (Default)" or "" ), "16 sprites (RCT1 default) " , 16 ),
38+ ("32" , "32" + (defaultValue == 32 and " (Default)" or "" ), "32 sprites (RCT2 default) " , 32 ),
39+ ("64" , "64" + (defaultValue == 64 and " (Default)" or "" ), "64 sprites (OpenRCT2 not yet implemented) " , 64 )
4040 )
4141
42+ # this is called with self as VehicleProperties
43+ def legacy_groups_to_set (self , value ):
44+ difference = [(self .sprite_track_flags [i ] != value [i ]) * (value [i ] and 1 or - 1 ) for i in range (len (self .sprite_track_flags ))]
45+
4246class VehicleProperties (bpy .types .PropertyGroup ):
4347 # Create legacy sprite groups
4448 legacy_defaults = []
@@ -52,7 +56,9 @@ class VehicleProperties(bpy.types.PropertyGroup):
5256 name = "Track Pieces" ,
5357 default = legacy_defaults ,
5458 description = "Which track pieces to render sprites for" ,
55- size = len (legacy_spritegroups ))
59+ size = len (legacy_spritegroups ),
60+ set = legacy_groups_to_set
61+ )
5662
5763 # Create modern sprite groups
5864 for key , config in sprite_group_metadata .items ():
0 commit comments