void MuszakBeallitas(Vector2Int poz, muszakok muszak) { dolgozok[poz.x].beosztas[poz.y] = muszak; //Debug.Log("Canvas" + "/" + dolgozok[poz.x] + "/" + dolgozok[poz.x] + poz.y); //Debug.Log(GameObject.Find("Canvas" + "/" + dolgozok[poz.x].nev + "/" + dolgozok[poz.x].nev + poz.y)); GameObject.Find("Canvas" + "/" + dolgozok[poz.x].nev + "/" + dolgozok[poz.x].nev + poz.y).GetComponent <Dropdown>().value = (int)muszak; }
public bool Validator(Vector2Int poz, muszakok muszak) { if (poz.y > 0) { //Éjszakás után nem mehet nappalra if (dolgozok[poz.x].beosztas[poz.y - 1] == muszakok.Éjszaka && muszak == muszakok.Nappal) { Debug.Log(dolgozok[poz.x].nev + " éjszakás után nincs nappal " + poz.y.ToString()); return(false); } } //Ne menjen 2 napot dolgozni egymás után if (poz.y > 2) { int count = 0; for (int i = 0; i <= 2; i++) { if (dolgozok[poz.x].beosztas[poz.y - 1 - i] == muszakok.Nappal || dolgozok[poz.x].beosztas[poz.y - 1 - i] == muszakok.Éjszaka) { count++; } } if (count > 2) { return(false); } } //Nappalos után éjszakás vagy pihenőnap jöhet if (poz.x == dolgozok.Count - 1) { int count = 0; //Legalább 1 ember legyen bent éjszaka for (int i = 0; i < dolgozok.Count; i++) { if (dolgozok[i].beosztas[poz.y] == muszakok.Éjszaka) { count++; } } if (count < 1) { return(false); } } //Legalább 2 ember legyen bent nappal //Legalább 160 óra legyen mindenkinek return(true); }
void UresBeosztas() { dolgozok = new List <Dolgozo>(); //A dolgozók nevei alapján létrehozza a havi beosztást foreach (string nev in nevek) { Dolgozo d = new Dolgozo(); d.nev = nev; List <muszakok> m = new List <muszakok>(); for (int i = 0; i < honapNapjai; i++) { m.Add(muszakok.Ures); } d.beosztas = m; dolgozok.Add(d); } //Megcsinálja a grafikát hozzájuk for (int i = 0; i < dolgozok.Count; i++) { GameObject panel = Instantiate(dolgozoPanel); panel.transform.SetParent(honapValaszto.transform.parent); panel.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, 250 - i * 50); panel.GetComponent <RectTransform>().localScale = Vector2.one; panel.name = dolgozok[i].nev; GameObject nev = Instantiate(nevPanel); nev.transform.SetParent(panel.transform); nev.GetComponent <RectTransform>().anchoredPosition = new Vector2(0, 0); nev.GetComponent <RectTransform>().localScale = Vector2.one; nev.GetComponentInChildren <Text>().text = dolgozok[i].nev; for (int j = 0; j < dolgozok[i].beosztas.Count; j++) { GameObject m = Instantiate(muszakPanel); m.transform.SetParent(panel.transform); m.GetComponent <RectTransform>().anchoredPosition = new Vector2(250 + j * 60, 0); m.GetComponent <RectTransform>().localScale = Vector2.one; int d = i; int y = j; Dropdown dp = m.GetComponent <Dropdown>(); dp.ClearOptions(); dp.AddOptions(mList); dp.onValueChanged.AddListener(x => { //Debug.Log("működik" + d + ":" + y); muszakok musz = (muszakok)dp.value; dolgozok[d].beosztas[y] = musz; }); dp.value = (int)dolgozok[i].beosztas[j]; m.name = dolgozok[i].nev + j; } } }