using UnityEngine;
using static XPlugin.Data.JsonLiteDB.JsonLiteDB;
public class GameLevelInfo
{
///
/// 区域id
///
public int AreaId;
///
/// 宠物id随机范围
///
public int[] PetId = null;
///
/// 宠物初始(x, y, z, 旋转, 大小,等级, 状态)
///
public float[] PetInit;
///
/// 怪物id随机范围
///
public int[] EnemyId = null;
///
/// 怪物初始(x,y,z,大小,旋转,等级,状态)
///
public float[] EnemyInit;
///
/// 复活点
///
public Vector3 RevivePoint = Vector3.zero;
///
/// 笼子初始(x,y,z,旋转)
///
public float[] CageInit = null;
///
/// 战斗区域初始(x,y,z,长,高,宽)
///
public float[] BattleAreaInit = null;
public GameLevelInfo(TableReader table)
{
AreaId = table["AreaId"].OptInt();
PetId = ParseStringToIntArray(table["PetId"].OptString(""));
PetInit = ParseStringToFloatArray(table["PetInit"].OptString(""));
EnemyId = ParseStringToIntArray(table["EnemyId"].OptString(""));
EnemyInit = ParseStringToFloatArray(table["EnemyInit"].OptString(""));
RevivePoint = StringToVector(table["RevivePoint"].OptString(""));
CageInit = ParseStringToFloatArray(table["CageInit"].OptString(""));
BattleAreaInit = ParseStringToFloatArray(table["BattleAreaInit"].OptString(""));
}
public Vector3 StringToVector(string input)
{
if (input == "")
{
return Vector3.zero;
}
// 去掉字符串中的括号和空格
input = input.Replace("(", "").Replace(")", "").Replace(" ", "");
// 将字符串按逗号分割成三个部分
string[] parts = input.Split(',');
// 将每个部分解析为浮点数
float x = float.Parse(parts[0]);
float y = float.Parse(parts[1]);
float z = float.Parse(parts[2]);
// 创建并返回 Vector3
return new Vector3(x, y, z);
}
int[] ParseStringToIntArray(string input)
{
if (input == "")
{
return null;
}
string[] elements = input.Replace("[", "").Replace("]", "").Split(',');
int[] intArray = new int[elements.Length];
for (int i = 0; i < elements.Length; i++)
{
intArray[i] = int.Parse(elements[i]);
}
return intArray;
}
float[] ParseStringToFloatArray(string input)
{
if (input == "")
{
return null;
}
string[] elements = input.Replace("(", "").Replace(")", "").Split(',');
float[] floatArray = new float[elements.Length];
for (int i = 0; i < elements.Length; i++)
{
floatArray[i] = float.Parse(elements[i]);
}
return floatArray;
}
}