public void RemovePage(int id) { for (int i = 1; i < GameManager.Instance.currentCampaign.GetPageById(GameManager.Instance.mainPanel.currentPageId).texts.Count; i++) { if (MapItemDataConverter.GetId(GameManager.Instance.currentCampaign.GetPageById(GameManager.Instance.mainPanel.currentPageId).texts[i]) == id) { GameManager.Instance.currentCampaign.GetPageById(GameManager.Instance.mainPanel.currentPageId).texts.RemoveAt(i); break; } } for (int i = 0; i < items.Count; i++) { if (items[i].page.id == id) { if (items[i].page.pageType == PageTypes.Map) { for (int j = 1; j < items[i].page.texts.Count; j++) { if (MapItemDataConverter.GetId(items[i].page.texts[j]) == GameManager.Instance.mainPanel.currentPageId) { items[i].page.texts.RemoveAt(j); } } } else { items[i].page.links.Remove(GameManager.Instance.mainPanel.currentPageId); } Destroy(items[i].gameObject); items.RemoveAt(i); } } }
public MapItem SpawnItem(string text) { if (GameManager.CurrentCampaign.GetPageById(MapItemDataConverter.GetId(text)) == null) { return(null); } items.Add(Instantiate(mapItemPrefab, mapItemsParent).GetComponent <MapItem>()); int newItemId = items.Count - 1; items[newItemId].SetPage(GameManager.Instance.currentCampaign.GetPageById(MapItemDataConverter.GetId(text))); items[newItemId].onEndMove = new UnityEngine.Events.UnityEvent(); items[newItemId].onEndMove.AddListener(delegate { TextChanged(MapItemDataConverter.GetTextFromItem(items[currentHoverItem].page.id, items[currentHoverItem].rectTransform.anchorMin), currentHoverItem + 1); }); items[newItemId].rectTransform.anchorMin = MapItemDataConverter.GetPosition(text); items[newItemId].rectTransform.anchorMax = MapItemDataConverter.GetPosition(text); items[newItemId].rectTransform.offsetMin = Vector2.zero; items[newItemId].rectTransform.offsetMax = Vector2.zero; items[newItemId].rectTransform.sizeDelta = GetCurrentObjectSize(); items[newItemId].rectTransform.position = Vector3.right * items[newItemId].rectTransform.position.x + Vector3.up * items[newItemId].rectTransform.position.y + Vector3.forward * 50; for (int i = 0; i < items.Count - 1; i++) { if (items[newItemId].page.links.Contains(items[i].page.id)) { int foundItem = i; linkItems.Add(Instantiate(mapLinkPrefab).GetComponent <MapItemLink>().SetTransforms(items[newItemId].gameObject.transform, items[foundItem].gameObject.transform, sizeSlider)); } } return(items[newItemId]); }
public void CreateLinkedItems() { if (items[currentHoverItem].page.pageType == PageTypes.Map) { for (int i = 1; i < items[currentHoverItem].page.texts.Count; i++) { SpawnItem(MapItemDataConverter.GetId(items[currentHoverItem].page.texts[i]), items[currentHoverItem].rectTransform.anchorMin, (float)i / (float)items[currentHoverItem].page.texts.Count); } } else { for (int i = 0; i < items[currentHoverItem].page.links.Count; i++) { SpawnItem(items[currentHoverItem].page.links[i], items[currentHoverItem].rectTransform.anchorMin, (float)i / (float)items[currentHoverItem].page.links.Count); } } }
private void RemoveItem(PagePanelItem newItem) { if (newItem.page.pageType == PageTypes.Map) { for (int i = 1; i < newItem.page.texts.Count; i++) { if (MapItemDataConverter.GetId(newItem.page.texts[i]) == GameManager.Instance.mainPanel.currentPageId) { newItem.page.texts.RemoveAt(i); break; } } } else { GameManager.Instance.currentCampaign.GetPageById(newItem.page.id).links.Remove(GameManager.Instance.mainPanel.currentPageId); } GameManager.CurrentCampaign.GetPageById(GameManager.Instance.mainPanel.currentPageId).links.Remove(newItem.page.id); items.Remove(newItem); Destroy(newItem.gameObject); }