void ProcessReqs() { while (LSubTerrainMgr.Instance != null) { int n = CntInProcess; if (n > 0) { try{ for (int i = 0; i < n; i++) { LSubTerrain node = new LSubTerrain(); node.Index = _lstNodesIdx[i]; ReadOrgDataToBuff(node.Index); node.ApplyData(DataBuff, DataLen); _lstNodes.Add(node); } } catch {} lock (_lstNodesIdx){ _lstNodesIdx.Clear(); } } Thread.Sleep(1); } }
public bool TryFill(IntVector3 ipos, Dictionary <int, LSubTerrain> dicNodes) { int nExpand = LSubTerrainMgr.Instance.NumDataExpands; for (int x = ipos.x - nExpand; x <= ipos.x + nExpand; x++) { for (int z = ipos.z - nExpand; z <= ipos.z + nExpand; z++) { if (x < 0 || x >= LSubTerrConstant.XCount || z < 0 || z >= LSubTerrConstant.ZCount) { continue; } int idx = LSubTerrUtils.PosToIndex(x, z); if (!dicNodes.ContainsKey(idx)) { LSubTerrain node = new LSubTerrain(); node.Index = idx; ReadOrgDataToBuff(node.Index); node.ApplyData(DataBuff, DataLen); dicNodes.Add(idx, node); return(false); } } } return(true); }