Files
PCK-Studio/PckStudio.Core/DLC/DLCPackage.cs

41 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PckStudio.Core.Interfaces;
namespace PckStudio.Core.DLC
{
public abstract class DLCPackage : IDLCPackage
{
public static IDLCPackage Invalid = new InvalidDLCPackage();
protected DLCPackage(string name, int identifier, IDLCPackage parentPackage)
{
Name = name;
Identifier = identifier;
ParentPackage = parentPackage;
}
private sealed class InvalidDLCPackage : DLCPackage
{
internal InvalidDLCPackage() : base(nameof(InvalidDLCPackage), -1, null) { }
public override DLCPackageType GetDLCPackageType() => DLCPackageType.Invalid;
}
public int Identifier { get; }
public string Name { get; } = string.Empty;
public virtual string Description { get; } = string.Empty;
public abstract DLCPackageType GetDLCPackageType();
public IDLCPackage ParentPackage { get; }
public bool IsRootPackage => ParentPackage is null;
}
}