2019-01-24 08:43:03 +00:00
|
|
|
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
|
|
|
// See the LICENCE file in the repository root for full licence text.
|
2018-11-30 08:50:27 +00:00
|
|
|
|
|
2019-05-03 01:05:45 +00:00
|
|
|
|
using System;
|
2021-09-10 02:09:13 +00:00
|
|
|
|
using osu.Framework.Graphics.Sprites;
|
2018-12-12 07:06:56 +00:00
|
|
|
|
|
2018-11-30 08:50:27 +00:00
|
|
|
|
namespace osu.Game.Rulesets.Mods
|
2018-11-30 08:16:00 +00:00
|
|
|
|
{
|
2019-05-03 01:05:45 +00:00
|
|
|
|
public interface IMod : IEquatable<IMod>
|
2018-11-30 08:16:00 +00:00
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The shortened name of this mod.
|
|
|
|
|
/// </summary>
|
|
|
|
|
string Acronym { get; }
|
2021-09-10 02:09:13 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// The icon of this mod.
|
|
|
|
|
/// </summary>
|
|
|
|
|
IconUsage? Icon { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Whether this mod is playable by an end user.
|
|
|
|
|
/// Should be <c>false</c> for cases where the user is not interacting with the game (so it can be excluded from multiplayer selection, for example).
|
|
|
|
|
/// </summary>
|
|
|
|
|
bool UserPlayable { get; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Create a fresh <see cref="Mod"/> instance based on this mod.
|
|
|
|
|
/// </summary>
|
|
|
|
|
Mod CreateInstance() => ((Mod)this).DeepClone();
|
2018-11-30 08:16:00 +00:00
|
|
|
|
}
|
|
|
|
|
}
|