Пример #1
0
    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);
        }