public void NG_GenerateButton() { selectedGameMode = GameMode.Survival; chunkPrepareAction = ChunkPreparingAction.Generate; chunkGenerationMode = availableGenerationModes[generationTypeDropdown.value]; terrainPresetsPanel.SetActive(false); terrainSavenames = null; usePresetsButtonImage.overrideSprite = null; generationPanel.SetActive(true); generateButtonImage.overrideSprite = overridingSprite; gameStartButton.interactable = true; terrainGenerationEnabled = true; }
public void NG_SelectTerrain(int index) { if (terrainSavenames == null || terrainSavenames.Length <= index) { selectedSaveName = string.Empty; gameStartButton.interactable = false; } else { selectedSaveName = terrainSavenames[index]; chunkPrepareAction = ChunkPreparingAction.Load; gameStartButton.interactable = true; Transform buttonsHolder = terrainPresetsPanel.transform.GetChild(0).GetChild(0); for (int i = 0; i < buttonsHolder.childCount; i++) { buttonsHolder.GetChild(i).GetComponent <Image>().overrideSprite = ((i == index) ? overridingSprite : null); } } }
public void NG_UsePresetButton() { selectedSaveName = string.Empty; selectedGameMode = GameMode.Survival; chunkPrepareAction = ChunkPreparingAction.Load; generationPanel.SetActive(false); generateButtonImage.overrideSprite = null; gameStartButton.interactable = false; //preparing terrains list string directoryPath = SaveSystemUI.GetTerrainsPath(); Transform contentHolder = terrainPresetsPanel.transform.GetChild(0).GetChild(0); RectTransform zeroButton = contentHolder.GetChild(0).GetComponent <RectTransform>(); bool no_saves_found = true; if (Directory.Exists(directoryPath)) { terrainSavenames = Directory.GetFiles(directoryPath, "*." + SaveSystemUI.TERRAIN_FNAME_EXTENSION); if (terrainSavenames.Length != 0) { no_saves_found = false; int c = contentHolder.childCount; int i = 0; zeroButton.GetComponent <Button>().interactable = true; for (; i < terrainSavenames.Length; i++) { string s = terrainSavenames[i]; int lastSlashPos = s.LastIndexOf('\\'); // в редакторе так if (lastSlashPos == -1) { lastSlashPos = s.LastIndexOf('/'); } terrainSavenames[i] = s.Substring(lastSlashPos + 1, s.Length - lastSlashPos - 5); // от последнего слеша до ".sav" Transform t; if (i < c) { t = contentHolder.GetChild(i); // 0 - example } else { t = Instantiate(zeroButton, contentHolder).transform; t.transform.localPosition = zeroButton.localPosition + Vector3.down * (zeroButton.rect.height * i + 16); } t.gameObject.SetActive(true); t.GetComponent <Button>().onClick.RemoveAllListeners(); // т.к. на example тоже может висеть listener t.GetChild(0).GetComponent <Text>().text = terrainSavenames[i]; int index = i; t.GetComponent <Button>().onClick.AddListener(() => { this.NG_SelectTerrain(index); }); t.GetComponent <Image>().overrideSprite = null; } if (i < c) { i++; for (; i < c; i++) { contentHolder.GetChild(i).gameObject.SetActive(false); } } } } if (no_saves_found) { terrainSavenames = null; zeroButton.GetChild(0).GetComponent <Text>().text = Localization.GetPhrase(LocalizedPhrase.NoSavesFound); zeroButton.GetComponent <Button>().interactable = false; zeroButton.GetComponent <Image>().overrideSprite = null; zeroButton.gameObject.SetActive(true); if (contentHolder.childCount > 1) { while (contentHolder.childCount > 1) { Destroy(contentHolder.GetChild(1)); } } } terrainPresetsPanel.SetActive(true); usePresetsButtonImage.overrideSprite = overridingSprite; terrainGenerationEnabled = false; }