private NodeElementArchetype[] GetElementArchetypes(SurfaceParameter selected) { if (selected != null && selected.Type.Type != null) { if (Prototypes != null && Prototypes.TryGetValue(selected.Type.Type, out var elements)) { // Special case for Normal Maps if (selected.Type.Type == typeof(Texture) && UseNormalMaps && selected.Value != null) { var asset = selected.Value as Texture; if (asset == null && selected.Value is Guid id) { asset = FlaxEngine.Content.Load <Texture>(id); } if (asset != null && !asset.WaitForLoaded() && asset.IsNormalMap) { elements = _normalMapParameterElements; } } return(elements); } return(new[] { NodeElementArchetype.Factory.Output(0, string.Empty, selected.Type, 0), }); } return(null); }
/// <inheritdoc /> public void OnParamDeleted(SurfaceParameter param) { // Deselect if that parameter is selected if ((Guid)Values[0] == param.ID) { _combobox.SelectedIndex = -1; } UpdateCombo(); }
private void Add() { var param = SurfaceParameter.Create(Type); param.Name = Name; if (Type == ParameterType.NormalMap) { // Use default normal map texture (don't load asset here, just lookup registry for id at path) FlaxEngine.Content.GetAssetInfo(StringUtils.CombinePaths(Globals.EngineFolder, "Textures/NormalTexture.flax"), out _, out var id); param.Value = id; } Window.Surface.Parameters.Insert(Index, param); Window.Surface.OnParamCreated(param); Window.OnParamAddUndo(this); }
private SurfaceParameter GetSelected() { SurfaceParameter result = null; int index = 0; for (int i = 0; i < Surface.Parameters.Count; i++) { var param = Surface.Parameters[i]; if (index == _combobox.SelectedIndex) { result = param; break; } index++; } return(result); }
/// <summary> /// Adds the parameter. /// </summary> /// <param name="type">The type.</param> private void AddParameter(ParameterType type) { var win = Values[0] as MaterialWindow; var material = win?.Asset; if (material == null || !material.IsLoaded) { return; } var param = SurfaceParameter.Create(type); if (type == ParameterType.NormalMap) { // Use default normal map texture (don't load asset here, just lookup registry for id at path) string typeName; Guid id; FlaxEngine.Content.GetAssetInfo(StringUtils.CombinePaths(Globals.EngineFolder, "Textures/NormalTexture.flax"), out typeName, out id); param.Value = id; } win.Surface.Parameters.Add(param); win.Surface.OnParamCreated(param); }
/// <inheritdoc /> public void OnParamEdited(SurfaceParameter param) { UpdateUI(); }
/// <inheritdoc /> public void OnParamRenamed(SurfaceParameter param) { UpdateCombo(); UpdateUI(); }
/// <inheritdoc /> public void OnParamCreated(SurfaceParameter param) { UpdateCombo(); }
/// <inheritdoc /> public void OnParamRenamed(SurfaceParameter param) { // Update UpdateCombo(); UpdateTitle(); }