第一批重构,主要是物理迁移脚本和部分命名空间的调整
- 结构上迁移文件,将脚本分成 Base/Runtime/Presentation/Procedure/Editor 五大文件夹 - 调整 DataTable 和 Definition 下脚本的命名空间 - 依据 UI-5层架构设计规范 拆分原先的 UI 到 Runtime 和 Presentation 下
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
using System;
|
||||
using CustomUtility;
|
||||
using SepCore.Definition;
|
||||
using UnityGameFramework.Runtime;
|
||||
|
||||
namespace SepCore.DataTable
|
||||
{
|
||||
public class DRLevel : DataRowBase
|
||||
{
|
||||
private int m_Id = 0;
|
||||
|
||||
/// <summary>
|
||||
/// 获取关卡编号。
|
||||
/// </summary>
|
||||
public override int Id => m_Id;
|
||||
|
||||
/// <summary>
|
||||
/// 获取关卡内会生成的实体编号
|
||||
/// </summary>
|
||||
public EnemyType[] EntityTypes { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取关卡内每次生成实体的数量
|
||||
/// </summary>
|
||||
public int[] EntityCounts { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取关卡内生成实体的间隔时间
|
||||
/// </summary>
|
||||
public float[] Intervals { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取关卡时间。
|
||||
/// </summary>
|
||||
public int Duration { get; private set; }
|
||||
|
||||
public override bool ParseDataRow(string dataRowString, object userData)
|
||||
{
|
||||
string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators);
|
||||
|
||||
int index = 0;
|
||||
index++;
|
||||
m_Id = int.Parse(columnStrings[index++]);
|
||||
index++;
|
||||
GenerateEntityTypes(columnStrings[index++]);
|
||||
GenerateEntityCounts(columnStrings[index++]);
|
||||
GenerateIntervals(columnStrings[index++]);
|
||||
Duration = int.Parse(columnStrings[index++]);
|
||||
|
||||
GeneratePropertyArray();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void GeneratePropertyArray()
|
||||
{
|
||||
}
|
||||
|
||||
private void GenerateEntityTypes(string raw)
|
||||
{
|
||||
if (!raw.StartsWith('[') || !raw.EndsWith(']'))
|
||||
{
|
||||
throw new ArgumentException("Input must be enclosed in square brackets.");
|
||||
}
|
||||
|
||||
if (raw.Length == 2) return;
|
||||
string[] entityIds = raw.Substring(1, raw.Length - 2).Split(",");
|
||||
int length = entityIds.Length;
|
||||
EntityTypes = new EnemyType[length];
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
EntityTypes[i] = EnumUtility<EnemyType>.Get(entityIds[i]);
|
||||
}
|
||||
}
|
||||
|
||||
private void GenerateEntityCounts(string raw)
|
||||
{
|
||||
if (!raw.StartsWith('[') || !raw.EndsWith(']'))
|
||||
{
|
||||
throw new ArgumentException("Input must be enclosed in square brackets.");
|
||||
}
|
||||
|
||||
if (raw.Length == 2) return;
|
||||
string[] entityCounts = raw.Substring(1, raw.Length - 2).Split(",");
|
||||
int length = entityCounts.Length;
|
||||
EntityCounts = new int[length];
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
EntityCounts[i] = int.Parse(entityCounts[i]);
|
||||
}
|
||||
}
|
||||
|
||||
private void GenerateIntervals(string raw)
|
||||
{
|
||||
if (!raw.StartsWith('[') || !raw.EndsWith(']'))
|
||||
{
|
||||
throw new ArgumentException("Input must be enclosed in square brackets.");
|
||||
}
|
||||
|
||||
if (raw.Length == 2) return;
|
||||
string[] intervals = raw.Substring(1, raw.Length - 2).Split(",");
|
||||
int length = intervals.Length;
|
||||
Intervals = new float[length];
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
Intervals[i] = float.Parse(intervals[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user