public void Dispose() { data = null; rss.SetActive(false); flag.SetActive(false); Position = Vector3Int.one * -1; gameObject.SetActive(false); }
private void ReleaseQuadNode(QuadNode quadNode) { ReadOnlyCollection <Vector3Int> rssClientPosition = quadNode.Points; //Debugger.Log("release count " + rssClientPosition.Count); for (int i = 0; i < rssClientPosition.Count; i++) { try { //rssClientPosition.Log(" - "); RSS_PositionRow rss = RSSPositionTable.GetRssAt(rssClientPosition[i].ToSerPosition()); int id = rss != null ? rss.ID : -1; ReturnRSS(id); } catch (Exception e) { Debugger.Log(e.ToString()); } } }
public void SetResourceData(RSS_PositionRow _data, Flag group, Vector3 worldPosition) { data = _data; if (Data != null) { rss = transform.GetChild(Data.RssType - 1).gameObject; rss?.SetActive(true); if (group != Flag.None) { flag = transform.GetChild((int)group).gameObject; } flag?.SetActive(true); // parse position Position = Data.Position.Parse3Int().ToClientPosition(); transform.position = worldPosition; LookAtCamera(); } }
private IEnumerator StartCreateRssWaiting() { AJPHelper.Operation oper = RSSPositionTable.Operation; while (!oper.IsDone) { yield return(null); } //if (!treeInited) //{ // int rssCount = RSSPositionTable.Count; // for (int iter = 0; iter < rssCount; iter++) // { // rssPositionTree.Insert // (RSSPositionTable.ReadOnlyRows[iter].Position.Parse3Int().ToClientPosition()); // } // treeInited = true; //} if (!treeInited) { rssPositionTree.AsyncCreateTree(GetRssPositionEnumerable()); while (!rssPositionTree.IsAsyncCreateComplete) { yield return(null); } treeInited = true; Debugger.Log("quad tree inited"); } isCreateComplete = false; int count = WaitForCreate.Count; //int i = count - 1; while (WaitForCreate.Count > 0 && !isCreateComplete) { Vector3Int pos = WaitForCreate[WaitForCreate.Count - 1].ToSerPosition(); RSS_PositionRow rssData = RSSPositionTable.GetRssAt(pos); if (rssData != null && !Resources.ContainsKey(rssData.ID)) { /// Using pool object for natural resource NaturalResource rs = RssPooling.GetItem(); rs.gameObject.name = "Resource" + rssData.RssType.ToString() + rssData.ID; Vector3 worldPos = MapIns.CellToWorld(rssData.Position.Parse3Int().ToClientPosition()); rs.SetResourceData(rssData, Flag.Owner, worldPos); Resources[rssData.ID] = rs; rs.gameObject.SetActive(true); //Debugger.Log("Created " + rssData.ID); } WaitForCreate.RemoveAt(WaitForCreate.Count - 1); //i--; yield return(null); } isCreateComplete = true; yield break; }