public AdsInfo(string name, ulong size, ResidentData residentData, NonResidentData nonResidentData) { Name = name; Size = size; ResidentData = residentData; NonResidentData = nonResidentData; }
public AdsInfo(string name, ulong size, ResidentData residentData, NonResidentData nonResidentData, int attributeId) { Name = name; Size = size; ResidentData = residentData; NonResidentData = nonResidentData; AttributeId = attributeId; }
public Resident(ResidentData resData) { FirstName = resData.FirstName; SecondName = resData.SecondName; Happiness = new Happiness(this); sess = Game.CurrentSession; _timeOffset = (float)(new System.Random().NextDouble() * 10 - 5); }
private ResidentData CopyResidentWithReflection(Resident residentToCopy) { ResidentData info = new ResidentData(); Type residentType = typeof(Resident); PropertyInfo[] residentProperties = residentType.GetProperties(BindingFlags.Public | BindingFlags.Instance); FieldInfo[] residentFields = residentType.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (PropertyInfo property in residentProperties) { object value = property.GetValue(residentToCopy); if (property.PropertyType.IsEquivalentTo(typeof(Happiness))) { continue; } else if (property.PropertyType.IsEquivalentTo(typeof(Job))) { //Handle the job property saving Job j = (Job)value; if (j != null) { info.JobPosition = j.Origin.ParentTile.Position; info.JobGridID = j.Origin.ParentTile.ParentGridSystem.Id; } } else { PropertyInfo prop2 = info.GetType().GetProperty(property.Name); if (prop2 != null) { prop2.SetValue(info, value); } } } foreach (FieldInfo field in residentFields) { object value = field.GetValue(residentToCopy); if (field.FieldType.IsEquivalentTo(typeof(Residential))) { info.HomePosition = ((Residential)value).ParentTile.Position; info.HomeGridID = ((Residential)value).ParentTile.ParentGridSystem.Id; } else { FieldInfo field2 = info.GetType().GetField(field.Name); if (field2 != null) { field2.SetValue(info, value); } } } return(info); }