コード例 #1
0
 public AdsInfo(string name, ulong size, ResidentData residentData, NonResidentData nonResidentData)
 {
     Name            = name;
     Size            = size;
     ResidentData    = residentData;
     NonResidentData = nonResidentData;
 }
コード例 #2
0
ファイル: AdsInfo.cs プロジェクト: muyen2/MFT-1
 public AdsInfo(string name, ulong size, ResidentData residentData, NonResidentData nonResidentData, int attributeId)
 {
     Name            = name;
     Size            = size;
     ResidentData    = residentData;
     NonResidentData = nonResidentData;
     AttributeId     = attributeId;
 }
コード例 #3
0
        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);
        }
コード例 #4
0
    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);
    }