You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main)
#rb none #lockdown Nick.Penwarden #ROBOMERGE-OWNER: ryan.gerleve #ROBOMERGE-AUTHOR: ben.marsh #ROBOMERGE-SOURCE: CL 4567513 in //UE4/Main/... #ROBOMERGE-BOT: ENGINE (Main -> Dev-Networking) [CL 4573136 by ryan gerleve in Dev-Networking branch]
This commit is contained in:
@@ -208,7 +208,8 @@ void FMaterialInstanceParameterDetails::CustomizeDetails(IDetailLayoutBuilder& D
|
||||
|
||||
|
||||
// Add/hide other properties
|
||||
DefaultCategory.AddProperty("LightmassSettings");
|
||||
DetailLayout.HideProperty("LightmassSettings");
|
||||
CreateLightmassOverrideWidgets(DetailLayout);
|
||||
DetailLayout.HideProperty("bUseOldStyleMICEditorGroups");
|
||||
DetailLayout.HideProperty("ParameterGroups");
|
||||
|
||||
@@ -253,8 +254,30 @@ void FMaterialInstanceParameterDetails::CreateGroupsWidget(TSharedRef<IPropertyH
|
||||
&& ParameterGroup.GroupName != FMaterialPropertyHelpers::LayerParamName)
|
||||
{
|
||||
bShowSaveButtons = true;
|
||||
IDetailGroup& DetailGroup = GroupsCategory.AddGroup(ParameterGroup.GroupName, FText::FromName(ParameterGroup.GroupName), false, true);
|
||||
CreateSingleGroupWidget(ParameterGroup, ParameterGroupsProperty->GetChildHandle(GroupIdx), DetailGroup);
|
||||
bool bCreateGroup = false;
|
||||
for (int32 ParamIdx = 0; ParamIdx < ParameterGroup.Parameters.Num(); ++ParamIdx)
|
||||
{
|
||||
UDEditorParameterValue* Parameter = ParameterGroup.Parameters[ParamIdx];
|
||||
if (MaterialEditorInstance->bShowOnlyOverrides)
|
||||
{
|
||||
if (MaterialEditorInstance->VisibleExpressions.Contains(Parameter->ParameterInfo) && FMaterialPropertyHelpers::IsOverriddenExpression(Parameter))
|
||||
{
|
||||
bCreateGroup = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (MaterialEditorInstance->VisibleExpressions.Contains(Parameter->ParameterInfo))
|
||||
{
|
||||
bCreateGroup = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bCreateGroup)
|
||||
{
|
||||
IDetailGroup& DetailGroup = GroupsCategory.AddGroup(ParameterGroup.GroupName, FText::FromName(ParameterGroup.GroupName), false, true);
|
||||
CreateSingleGroupWidget(ParameterGroup, ParameterGroupsProperty->GetChildHandle(GroupIdx), DetailGroup);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bShowSaveButtons)
|
||||
@@ -707,6 +730,70 @@ EVisibility FMaterialInstanceParameterDetails::ShouldShowSubsurfaceProfile() con
|
||||
}
|
||||
|
||||
|
||||
void FMaterialInstanceParameterDetails::CreateLightmassOverrideWidgets(IDetailLayoutBuilder& DetailLayout)
|
||||
{
|
||||
IDetailCategoryBuilder& DetailCategory = DetailLayout.EditCategory(NAME_None);
|
||||
|
||||
static FName GroupName(TEXT("LightmassSettings"));
|
||||
IDetailGroup& LightmassSettingsGroup = DetailCategory.AddGroup(GroupName, LOCTEXT("LightmassSettingsGroup", "Lightmass Settings"), false, false);
|
||||
|
||||
TAttribute<bool> IsOverrideCastShadowAsMaskedEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateLambda([this] { return (bool)MaterialEditorInstance->LightmassSettings.CastShadowAsMasked.bOverride; }));
|
||||
TAttribute<bool> IsOverrideEmissiveBoostEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateLambda([this] { return (bool)MaterialEditorInstance->LightmassSettings.EmissiveBoost.bOverride; }));
|
||||
TAttribute<bool> IsOverrideDiffuseBoostEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateLambda([this] { return (bool)MaterialEditorInstance->LightmassSettings.DiffuseBoost.bOverride; }));
|
||||
TAttribute<bool> IsOverrideExportResolutionScaleEnabled = TAttribute<bool>::Create(TAttribute<bool>::FGetter::CreateLambda([this] { return (bool)MaterialEditorInstance->LightmassSettings.ExportResolutionScale.bOverride; }));
|
||||
|
||||
TSharedRef<IPropertyHandle> LightmassSettings = DetailLayout.GetProperty("LightmassSettings");
|
||||
TSharedPtr<IPropertyHandle> CastShadowAsMaskedProperty = LightmassSettings->GetChildHandle("CastShadowAsMasked");
|
||||
TSharedPtr<IPropertyHandle> EmissiveBoostProperty = LightmassSettings->GetChildHandle("EmissiveBoost");
|
||||
TSharedPtr<IPropertyHandle> DiffuseBoostProperty = LightmassSettings->GetChildHandle("DiffuseBoost");
|
||||
TSharedPtr<IPropertyHandle> ExportResolutionScaleProperty = LightmassSettings->GetChildHandle("ExportResolutionScale");
|
||||
|
||||
|
||||
IDetailPropertyRow& CastShadowAsMaskedPropertyRow = LightmassSettingsGroup.AddPropertyRow(CastShadowAsMaskedProperty->GetChildHandle(0).ToSharedRef());
|
||||
CastShadowAsMaskedPropertyRow
|
||||
.DisplayName(CastShadowAsMaskedProperty->GetPropertyDisplayName())
|
||||
.ToolTip(CastShadowAsMaskedProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideCastShadowAsMaskedEnabled, FOnBooleanValueChanged::CreateLambda([this](bool NewValue) {
|
||||
MaterialEditorInstance->LightmassSettings.CastShadowAsMasked.bOverride = (uint32)NewValue;
|
||||
MaterialEditorInstance->PostEditChange();
|
||||
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
|
||||
}))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideCastShadowAsMaskedEnabled)));
|
||||
|
||||
IDetailPropertyRow& EmissiveBoostPropertyRow = LightmassSettingsGroup.AddPropertyRow(EmissiveBoostProperty->GetChildHandle(0).ToSharedRef());
|
||||
EmissiveBoostPropertyRow
|
||||
.DisplayName(EmissiveBoostProperty->GetPropertyDisplayName())
|
||||
.ToolTip(EmissiveBoostProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideEmissiveBoostEnabled, FOnBooleanValueChanged::CreateLambda([this](bool NewValue) {
|
||||
MaterialEditorInstance->LightmassSettings.EmissiveBoost.bOverride = (uint32)NewValue;
|
||||
MaterialEditorInstance->PostEditChange();
|
||||
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
|
||||
}))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideEmissiveBoostEnabled)));
|
||||
|
||||
IDetailPropertyRow& DiffuseBoostPropertyRow = LightmassSettingsGroup.AddPropertyRow(DiffuseBoostProperty->GetChildHandle(0).ToSharedRef());
|
||||
DiffuseBoostPropertyRow
|
||||
.DisplayName(DiffuseBoostProperty->GetPropertyDisplayName())
|
||||
.ToolTip(DiffuseBoostProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideDiffuseBoostEnabled, FOnBooleanValueChanged::CreateLambda([this](bool NewValue) {
|
||||
MaterialEditorInstance->LightmassSettings.DiffuseBoost.bOverride = (uint32)NewValue;
|
||||
MaterialEditorInstance->PostEditChange();
|
||||
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
|
||||
}))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideDiffuseBoostEnabled)));
|
||||
|
||||
IDetailPropertyRow& ExportResolutionScalePropertyRow = LightmassSettingsGroup.AddPropertyRow(ExportResolutionScaleProperty->GetChildHandle(0).ToSharedRef());
|
||||
ExportResolutionScalePropertyRow
|
||||
.DisplayName(ExportResolutionScaleProperty->GetPropertyDisplayName())
|
||||
.ToolTip(ExportResolutionScaleProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideExportResolutionScaleEnabled, FOnBooleanValueChanged::CreateLambda([this](bool NewValue) {
|
||||
MaterialEditorInstance->LightmassSettings.ExportResolutionScale.bOverride = (uint32)NewValue;
|
||||
MaterialEditorInstance->PostEditChange();
|
||||
FEditorSupportDelegates::RedrawAllViewports.Broadcast();
|
||||
}))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideExportResolutionScaleEnabled)));
|
||||
}
|
||||
|
||||
void FMaterialInstanceParameterDetails::CreateBasePropertyOverrideWidgets(IDetailLayoutBuilder& DetailLayout)
|
||||
{
|
||||
IDetailCategoryBuilder& DetailCategory = DetailLayout.EditCategory(NAME_None);
|
||||
@@ -731,31 +818,46 @@ void FMaterialInstanceParameterDetails::CreateBasePropertyOverrideWidgets(IDetai
|
||||
OpacityClipMaskValuePropertyRow
|
||||
.DisplayName(OpacityClipMaskValueProperty->GetPropertyDisplayName())
|
||||
.ToolTip(OpacityClipMaskValueProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideOpacityClipMaskValueEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideOpacityClipMaskValueChanged));
|
||||
.EditCondition(IsOverrideOpacityClipMaskValueEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideOpacityClipMaskValueChanged))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideOpacityClipMaskValueEnabled)));
|
||||
|
||||
IDetailPropertyRow& BlendModePropertyRow = BasePropertyOverrideGroup.AddPropertyRow(BlendModeProperty.ToSharedRef());
|
||||
BlendModePropertyRow
|
||||
.DisplayName(BlendModeProperty->GetPropertyDisplayName())
|
||||
.ToolTip(BlendModeProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideBlendModeEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideBlendModeChanged));
|
||||
.EditCondition(IsOverrideBlendModeEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideBlendModeChanged))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideBlendModeEnabled)));
|
||||
|
||||
IDetailPropertyRow& ShadingModelPropertyRow = BasePropertyOverrideGroup.AddPropertyRow(ShadingModelProperty.ToSharedRef());
|
||||
ShadingModelPropertyRow
|
||||
.DisplayName(ShadingModelProperty->GetPropertyDisplayName())
|
||||
.ToolTip(ShadingModelProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideShadingModelEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideShadingModelChanged));
|
||||
.EditCondition(IsOverrideShadingModelEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideShadingModelChanged))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideShadingModelEnabled)));
|
||||
|
||||
IDetailPropertyRow& TwoSidedPropertyRow = BasePropertyOverrideGroup.AddPropertyRow(TwoSidedProperty.ToSharedRef());
|
||||
TwoSidedPropertyRow
|
||||
.DisplayName(TwoSidedProperty->GetPropertyDisplayName())
|
||||
.ToolTip(TwoSidedProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideTwoSidedEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideTwoSidedChanged));
|
||||
.EditCondition(IsOverrideTwoSidedEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideTwoSidedChanged))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideTwoSidedEnabled)));
|
||||
|
||||
IDetailPropertyRow& DitheredLODTransitionPropertyRow = BasePropertyOverrideGroup.AddPropertyRow(DitheredLODTransitionProperty.ToSharedRef());
|
||||
DitheredLODTransitionPropertyRow
|
||||
.DisplayName(DitheredLODTransitionProperty->GetPropertyDisplayName())
|
||||
.ToolTip(DitheredLODTransitionProperty->GetToolTipText())
|
||||
.EditCondition(IsOverrideDitheredLODTransitionEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideDitheredLODTransitionChanged));
|
||||
.EditCondition(IsOverrideDitheredLODTransitionEnabled, FOnBooleanValueChanged::CreateSP(this, &FMaterialInstanceParameterDetails::OnOverrideDitheredLODTransitionChanged))
|
||||
.Visibility(TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateSP(this, &FMaterialInstanceParameterDetails::IsOverriddenAndVisible, IsOverrideDitheredLODTransitionEnabled)));
|
||||
}
|
||||
|
||||
EVisibility FMaterialInstanceParameterDetails::IsOverriddenAndVisible(TAttribute<bool> IsOverridden) const
|
||||
{
|
||||
bool bShouldBeVisible = true;
|
||||
if (MaterialEditorInstance->bShowOnlyOverrides)
|
||||
{
|
||||
bShouldBeVisible = IsOverridden.Get();
|
||||
}
|
||||
return bShouldBeVisible ? EVisibility::Visible : EVisibility::Collapsed;
|
||||
}
|
||||
|
||||
bool FMaterialInstanceParameterDetails::OverrideOpacityClipMaskValueEnabled() const
|
||||
|
||||
Reference in New Issue
Block a user