using Milimoe.FunGame.Core.Interface.Addons;
namespace Milimoe.FunGame.Core.Library.Common.Addon
{
public abstract class GameMap : IGameMap
{
///
/// 地图名称
///
public abstract string Name { get; }
///
/// 地图描述
///
public abstract string Description { get; }
///
/// 地图版本
///
public abstract string Version { get; }
///
/// 地图作者
///
public abstract string Author { get; }
///
/// 宽度
///
public abstract float Width { get; }
///
/// 高度
///
public abstract float Height { get; }
///
/// 格子大小
///
public abstract float Size { get; }
///
/// 加载标记
///
private bool IsLoaded = false;
///
/// 加载地图
///
///
///
public bool Load(params object[] objs)
{
if (IsLoaded)
{
return false;
}
// BeforeLoad可以阻止加载此地图
if (BeforeLoad())
{
// 地图加载后,不允许再次加载此地图
IsLoaded = true;
// 如果加载后需要执行代码,请重写AfterLoad方法
AfterLoad();
}
return IsLoaded;
}
///
/// 加载后需要做的事
///
protected virtual void AfterLoad()
{
// override
}
///
/// 允许返回false来阻止加载此地图
///
///
protected virtual bool BeforeLoad()
{
return true;
}
}
}