private void SpawnNewCitizen(CitizenSave optionalSave = default) { GameObject newCitizen = Instantiate(citizen, transform.position + new Vector3(Random.Range(-2, 2), 0, Random.Range(-2, 2)), transform.rotation); newCitizen.transform.SetParent(citizenParent); allCitizens.Add(newCitizen.GetComponent <Citizen>()); if (optionalSave == null) { CitizenSave newSave = new CitizenSave(); newSave.CitizenPosition = newCitizen.transform.position; newSave.CitizenRotation = newCitizen.transform.rotation; newSave.CurrentJobID = 0; newSave.isHappy = true; newSave.CitizenID = GetRandomID(); newCitizen.GetComponent <ObjectID>().SetID(newSave.CitizenID); currentSave.AllCitizens.Add(newSave); SaveTheGame(currentSave); return; } newCitizen.transform.position = optionalSave.CitizenPosition; newCitizen.transform.rotation = optionalSave.CitizenRotation; newCitizen.GetComponent <ObjectID>().SetID(optionalSave.CitizenID); newCitizen.GetComponent <Citizen>().ToggleHappy(optionalSave.isHappy); if (optionalSave.CurrentJobID != 0) { newCitizen.GetComponent <Citizen>().GiveNewJob(GetBuildingByID(optionalSave.CurrentJobID).GetComponent <JobActivator>()); } citizensText.text = (currentEmployedAmount + allCitizens.Count).ToString(); }
protected override object ReadObject <T>(ES3Reader reader) { var instance = new CitizenSave(); ReadObject <T>(reader, instance); return(instance); }