using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ScriptToolGui { abstract class NavigationEntry { public abstract NavigationType Type { get; } } enum NavigationType { MatchedGroup, Reference } class MatchedGroupNavigationEntry : NavigationEntry { public override NavigationType Type { get { return NavigationType.MatchedGroup; } } public MatchedGroup Group { get; private set; } public MatchedGroupCollection Collection { get; private set; } public MatchedGroupNavigationEntry(MatchedGroup group, MatchedGroupCollection collection) { Group = group; Collection = collection; } } class ReferenceNavigationEntry : NavigationEntry { public override NavigationType Type { get { return NavigationType.Reference; } } public string Label { get; private set; } public Game Game { get; private set; } public ReferenceNavigationEntry(Game game, string label) { Game = game; Label = label; } } }