public void AddToTemplate(IUIRenderer renderer, string style, GameObject template) { // Add this property to the game object. The value is set to: // - the value of the Renderer/Theme, or // - the overridden default value, or // - no value (= the global default value of the GamePropertyMetadata). T value; if (renderer.GetAttribute(style, Name, out value)) { // Set value from renderer/theme. template.SetValue(Name, value); } else if (OverridesDefaultValue) { // Set overridden default value. template.SetValue(Name, DefaultValue); } else { // Use default value. (Add property without local value.) template.Properties.Add <T>(Name); } }