104 lines
3.1 KiB
C#
104 lines
3.1 KiB
C#
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Newtonsoft.Json;
|
|
using UnityEngine;
|
|
using Random = System.Random;
|
|
|
|
namespace Script.RuntimeScript.model.Data
|
|
{
|
|
public class DinggingSceneData
|
|
{
|
|
public string BoxPositionJson;
|
|
public string AllBroadJson;
|
|
public string AllPropJson;
|
|
public string AllCubeJson;
|
|
public string AllTempJson;
|
|
|
|
private BroadData[] _allBroadData;
|
|
private GridData[] _allGridData;
|
|
private PropData[] _allPropData;
|
|
private List<List<PropTempData>> _allPropTempData;
|
|
//任务目标宝箱位置
|
|
private Vector3 _taskBoxPositon = Vector3.zero;
|
|
|
|
|
|
public void AnalysisData(List<ServerGridData> serverGrid)
|
|
{
|
|
_taskBoxPositon = JsonConvert.DeserializeObject<Vector3>(BoxPositionJson);
|
|
_allBroadData = JsonConvert.DeserializeObject<BroadData[]>(AllBroadJson);
|
|
_allGridData = JsonConvert.DeserializeObject<GridData[]>(AllCubeJson);
|
|
_allPropData = JsonConvert.DeserializeObject<PropData[]>(AllPropJson);
|
|
_allPropTempData = JsonConvert.DeserializeObject<List<List<PropTempData>>>(AllTempJson);
|
|
|
|
GridData gData;
|
|
for (int i = 0; i < _allGridData.Length; i++)
|
|
{
|
|
gData = _allGridData[i];
|
|
gData.Init();
|
|
for (int j = 0; j < serverGrid.Count; j++)
|
|
{
|
|
if (serverGrid[j].Row == gData.Row && serverGrid[j].Col == gData.Col)
|
|
{
|
|
gData.IsOpen = serverGrid[j].IsOpen == 1;
|
|
gData.hasClickCount = serverGrid[j].hasClickCount;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public void Reset()
|
|
{
|
|
_allGridData = new GridData[0];
|
|
_allPropData = new PropData[0];
|
|
}
|
|
public GridData GetGridData(int row, int col)
|
|
{
|
|
GridData gData;
|
|
for (int i = 0; i < _allGridData.Length; i++)
|
|
{
|
|
gData = _allGridData[i];
|
|
if (gData.Row == row && gData.Col == col)
|
|
{
|
|
return gData;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public Vector3 GetTaskPosPositon()
|
|
{
|
|
return _taskBoxPositon;
|
|
}
|
|
|
|
public BroadData[] GetAllBroadData()
|
|
{
|
|
return _allBroadData;
|
|
}
|
|
public GridData[] GetAllGridData()
|
|
{
|
|
return _allGridData;
|
|
}
|
|
|
|
public PropData[] GetAllPropData()
|
|
{
|
|
return _allPropData;
|
|
}
|
|
|
|
public List<PropTempData> GetAllPropTempData(int index)
|
|
{
|
|
if (_allPropTempData == null || _allPropTempData.Count == 0)
|
|
{
|
|
return null;
|
|
}
|
|
if (index >= _allPropTempData.Count)
|
|
{
|
|
index = GetOnePropTempDataIndex();
|
|
}
|
|
return _allPropTempData[index];
|
|
}
|
|
public int GetOnePropTempDataIndex()
|
|
{
|
|
return UnityEngine.Random.Range(0, _allPropTempData.Count);
|
|
}
|
|
}
|
|
|
|
} |