Compile out editor-only logic within validate_property in games

This commit is contained in:
LuoZhihao 2025-06-12 12:54:19 +08:00
parent d9cd011e2f
commit 8ba4656ea3
69 changed files with 274 additions and 119 deletions

View file

@ -2564,48 +2564,50 @@ void BaseMaterial3D::_validate_property(PropertyInfo &p_property) const {
p_property.usage = PROPERTY_USAGE_NONE;
}
if (p_property.name == "billboard_keep_scale" && billboard_mode == BILLBOARD_DISABLED) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (Engine::get_singleton()->is_editor_hint()) {
if (p_property.name == "billboard_keep_scale" && billboard_mode == BILLBOARD_DISABLED) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "grow_amount" && !grow_enabled) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "grow_amount" && !grow_enabled) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "point_size" && !flags[FLAG_USE_POINT_SIZE]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "point_size" && !flags[FLAG_USE_POINT_SIZE]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "proximity_fade_distance" && !proximity_fade_enabled) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "proximity_fade_distance" && !proximity_fade_enabled) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "msdf_pixel_range" && !flags[FLAG_ALBEDO_TEXTURE_MSDF]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "msdf_pixel_range" && !flags[FLAG_ALBEDO_TEXTURE_MSDF]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "msdf_outline_size" && !flags[FLAG_ALBEDO_TEXTURE_MSDF]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "msdf_outline_size" && !flags[FLAG_ALBEDO_TEXTURE_MSDF]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "distance_fade_max_distance" || p_property.name == "distance_fade_min_distance") && distance_fade == DISTANCE_FADE_DISABLED) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "distance_fade_max_distance" || p_property.name == "distance_fade_min_distance") && distance_fade == DISTANCE_FADE_DISABLED) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "uv1_triplanar_sharpness" || p_property.name == "uv1_world_triplanar") && !flags[FLAG_UV1_USE_TRIPLANAR]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "uv1_triplanar_sharpness" || p_property.name == "uv1_world_triplanar") && !flags[FLAG_UV1_USE_TRIPLANAR]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "uv2_triplanar_sharpness" || p_property.name == "uv2_world_triplanar") && !flags[FLAG_UV2_USE_TRIPLANAR]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "uv2_triplanar_sharpness" || p_property.name == "uv2_world_triplanar") && !flags[FLAG_UV2_USE_TRIPLANAR]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "z_clip_scale" && !flags[FLAG_USE_Z_CLIP_SCALE]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "z_clip_scale" && !flags[FLAG_USE_Z_CLIP_SCALE]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "fov_override" && !flags[FLAG_USE_FOV_OVERRIDE]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
if (p_property.name == "fov_override" && !flags[FLAG_USE_FOV_OVERRIDE]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
}
// you can only enable anti-aliasing (in materials) on alpha scissor and alpha hash
@ -2640,24 +2642,26 @@ void BaseMaterial3D::_validate_property(PropertyInfo &p_property) const {
p_property.usage = PROPERTY_USAGE_NONE;
}
if (p_property.name == "depth_test" && flags[FLAG_DISABLE_DEPTH_TEST]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (Engine::get_singleton()->is_editor_hint()) {
if (p_property.name == "depth_test" && flags[FLAG_DISABLE_DEPTH_TEST]) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "stencil_reference" && stencil_mode == STENCIL_MODE_DISABLED) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "stencil_reference" && stencil_mode == STENCIL_MODE_DISABLED) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "stencil_flags" || p_property.name == "stencil_compare") && stencil_mode != STENCIL_MODE_CUSTOM) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if ((p_property.name == "stencil_flags" || p_property.name == "stencil_compare") && stencil_mode != STENCIL_MODE_CUSTOM) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "stencil_color" && stencil_mode != STENCIL_MODE_OUTLINE && stencil_mode != STENCIL_MODE_XRAY) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "stencil_color" && stencil_mode != STENCIL_MODE_OUTLINE && stencil_mode != STENCIL_MODE_XRAY) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
if (p_property.name == "stencil_outline_thickness" && stencil_mode != STENCIL_MODE_OUTLINE) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
if (p_property.name == "stencil_outline_thickness" && stencil_mode != STENCIL_MODE_OUTLINE) {
p_property.usage = PROPERTY_USAGE_NO_EDITOR;
}
}
if (flags[FLAG_SUBSURFACE_MODE_SKIN] && (p_property.name == "subsurf_scatter_transmittance_color" || p_property.name == "subsurf_scatter_transmittance_texture")) {