Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LayerEffectData fixes #1046

Merged
merged 4 commits into from
Jul 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion UndertaleModLib/Models/UndertaleRoom.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1370,7 +1370,13 @@ public void Unserialize(UndertaleReader reader)
case LayerType.Tiles: Data = reader.ReadUndertaleObject<LayerTilesData>(); break;
case LayerType.Background: Data = reader.ReadUndertaleObject<LayerBackgroundData>(); break;
case LayerType.Assets: Data = reader.ReadUndertaleObject<LayerAssetsData>(); break;
case LayerType.Effect: Data = reader.ReadUndertaleObject<LayerEffectData>(); break;
case LayerType.Effect:
// Because effect data is empty in 2022.1+, it would erroneously read the next object.
Data =
reader.undertaleData.GMS2022_1
? new LayerEffectData() { EffectType = EffectType, Properties = EffectProperties }
: reader.ReadUndertaleObject<LayerEffectData>();
break;
default: throw new Exception("Unsupported layer type " + LayerType);
}
}
Expand Down
5 changes: 5 additions & 0 deletions UndertaleModTool/Editors/UndertaleRoomEditor.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,11 @@
<TextBlock Text="{Binding LayerName.Content, Mode=OneWay}" />
</HierarchicalDataTemplate>
</local:LayerDataTemplateSelector.BackgroundDataTemplate>
<local:LayerDataTemplateSelector.EffectDataTemplate>
<HierarchicalDataTemplate ItemTemplateSelector="{x:Null}">
<TextBlock Text="{Binding LayerName.Content, Mode=OneWay}" />
</HierarchicalDataTemplate>
</local:LayerDataTemplateSelector.EffectDataTemplate>
</local:LayerDataTemplateSelector>
</TreeViewItem.ItemTemplateSelector>
</TreeViewItem>
Expand Down
17 changes: 10 additions & 7 deletions UndertaleModTool/Editors/UndertaleRoomEditor.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1264,20 +1264,20 @@ public void Command_Paste(object sender, ExecutedRoutedEventArgs e)
{
baseName = name[..^numMatch.Length];
nameNum = Int32.Parse(numMatch.Groups[0].Value) + 1;

name = baseName + nameNum;
}
// Name doesn't have a trailing number, so it's the first duplicate.
// Thus we append append "1" to it ("name" -> "name1")
// Thus we set baseName and nameNum to produce "name1" on the next loop.
else
name += "1";
{
baseName = name;
nameNum = 1;
}
}
// If base name is already extracted, increment "nameNum" and append it to the base name
else
{
nameNum++;
name = baseName + nameNum;
}
// Update name using baseName and nameNum
name = baseName + nameNum;
}

Layer layer = new()
Expand Down Expand Up @@ -1730,6 +1730,7 @@ public class LayerDataTemplateSelector : DataTemplateSelector
public DataTemplate TilesDataTemplate { get; set; }
public DataTemplate AssetsDataTemplate { get; set; }
public DataTemplate BackgroundDataTemplate { get; set; }
public DataTemplate EffectDataTemplate { get; set; }

public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
Expand All @@ -1745,6 +1746,8 @@ public override DataTemplate SelectTemplate(object item, DependencyObject contai
return AssetsDataTemplate;
case LayerType.Background:
return BackgroundDataTemplate;
case LayerType.Effect:
return EffectDataTemplate;
}
}

Expand Down