private void DropdownChanged(UIComponent trigger, int selectedValue)
        {
            if (!isInitialized)
            {
                return;
            }
            DebugUtils.Log($"DropdownChanged: name = {trigger.name}, selected value is {selectedValue}.");
            //
            CustomizableRoadsignItem        affectedSign  = new CustomizableRoadsignItem();
            List <CustomizableRoadsignItem> affectedSigns = new List <CustomizableRoadsignItem>();

            if (trigger == _gantryDropdown)
            {
                affectedSign = AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "motorway overroad signs").FirstOrDefault();
                AmericanRoadsignsTool.ChangeRoadsignPropWithoutCustomAsset(affectedSign, selectedValue);
                AmericanRoadsignsTool.config.rendermode_highwaygantry = selectedValue;
            }
            else if (trigger == _highwayDropdown)
            {
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "motorway sign").FirstOrDefault());
                AmericanRoadsignsTool.ChangeRoadsignPropWithCustomAsset(affectedSigns, selectedValue);
                AmericanRoadsignsTool.config.rendermode_highwaysign = selectedValue;
            }
            else if (trigger == _noparkingDropdown)
            {
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "no parking sign").FirstOrDefault());
                AmericanRoadsignsTool.ChangeRoadsignPropWithCustomAsset(affectedSigns, selectedValue);
                AmericanRoadsignsTool.config.rendermode_noparking = selectedValue;
            }
            else if (trigger == _turningDropdown)
            {
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "no left turn sign").FirstOrDefault());
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "no right turn sign").FirstOrDefault());
                AmericanRoadsignsTool.ChangeRoadsignPropWithCustomAsset(affectedSigns, selectedValue);
                AmericanRoadsignsTool.config.rendermode_noturnings = selectedValue;
            }
            else if (trigger == _speedlimitDropdown)
            {
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "30 speed limit").FirstOrDefault());
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "40 speed limit").FirstOrDefault());
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "50 speed limit").FirstOrDefault());
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "60 speed limit").FirstOrDefault());
                affectedSigns.Add(AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "100 speed limit").FirstOrDefault());
                AmericanRoadsignsTool.ChangeRoadsignPropWithCustomAsset(affectedSigns, selectedValue);
                AmericanRoadsignsTool.config.rendermode_speedlimits = selectedValue;
            }
            else if (trigger == _streetnameDropdown)
            {
                affectedSign = AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "street name sign").FirstOrDefault();
                AmericanRoadsignsTool.ChangeRoadsignPropWithoutCustomAsset(affectedSign, selectedValue);
                AmericanRoadsignsTool.config.rendermode_streetname = selectedValue;
            }
            //
            AmericanRoadsignsTool.SaveConfig();
        }
 private void TextureCheckboxChanged(UIComponent trigger, bool isChecked)
 {
     if (!isInitialized)
     {
         return;
     }
     DebugUtils.Log($"CheckboxChanged: name = {trigger.name}, use alternative texture = {isChecked}.");
     //
     if (trigger == _textureCheckbox)
     {
         CustomizableRoadsignItem affectedSign = AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "motorway overroad signs").FirstOrDefault();
         AmericanRoadsignsTool.RetextureRoadSignProp("Motorway Overroad Signs", isChecked);
         AmericanRoadsignsTool.config.rendermode_highwaygantry_usealt = isChecked;
     }
     AmericanRoadsignsTool.SaveConfig();
     //
 }
 private void CheckboxChanged(UIComponent trigger, bool isChecked)
 {
     if (!isInitialized)
     {
         return;
     }
     //
     if (trigger == _textureCheckbox)
     {
         //  Only for Americanized texture:
         //if (AmericanRoadsignsTool.config.rendermode_highwaygantry != 0)
         //{
         //    return;
         //}
         AmericanRoadsignsTool.config.rendermode_highwaygantry_usealt = isChecked;
         CustomizableRoadsignItem affectedSign = AmericanRoadsignsTool.CustomizableRoadsignsList.Where(x => x._originalSign.name.ToLower() == "motorway overroad signs").FirstOrDefault();
         AmericanRoadsignsTool.ChangeRoadsignPropWithoutCustomAsset(affectedSign, 0);
         //
         AmericanRoadsignsTool.SaveConfig();
         //
         _gantryDropdown.selectedIndex = 0;
     }
 }