public DataService(IModelSerializer serializer, FSO.Content.Content content) { this.Serializer = serializer; this.DataDefinition = content.DataDefinition; //Build Struct => Field[] maps for quicker serialization foreach (var derived in DataDefinition.DerivedStructs) { var type = MaskedStructUtils.FromID(derived.ID); List <StructField> fields = new List <StructField>(); var parent = DataDefinition.Structs.First(x => x.ID == derived.Parent); foreach (var field in parent.Fields) { var mask = derived.FieldMasks.FirstOrDefault(x => x.ID == field.ID); if (mask == null) { continue; } /* * var action = DerivedStructFieldMaskType.KEEP; * if (mask != null){ * action = mask.Type; * } * if (action == DerivedStructFieldMaskType.REMOVE){ * //These seems wrong, ServerMyAvatar and MyAvatar both exclude bookmarks by this logic * //continue; * } */ fields.Add(field); } MaskedStructToActualFields.Add(type, fields.ToArray()); } foreach (var _struct in DataDefinition.Structs) { StructToActualFields.Add(_struct.ID, _struct.Fields.ToArray()); } var assembly = Assembly.GetAssembly(typeof(DataService)); foreach (Type type in assembly.GetTypes()) { System.Attribute[] attributes = System.Attribute.GetCustomAttributes(type); foreach (Attribute attribute in attributes) { if (attribute is DataServiceModel) { var _struct = DataDefinition.GetStruct(type.Name); if (_struct != null) { ModelTypeById.Add(_struct.ID, type); ModelIdByType.Add(type, _struct.ID); } } } } }
public RealestateDomain(IShardsDomain shards, FSO.Content.Content content) { _Shards = shards; _Content = content; _ByShard = new Dictionary <int, ShardRealestateDomain>(); foreach (var item in shards.All) { GetByShard(item.Id); } }
public ServerDataService(IModelSerializer serializer, FSO.Content.Content content, IKernel kernel) : base(serializer, content) { AddProvider(kernel.Get <ServerAvatarProvider>()); var lots = kernel.Get <ServerLotProvider>(); AddProvider(lots); var city = kernel.Get <ServerCityProvider>(); AddProvider(city); city.BindLots(lots); }
public ClientDataService(IModelSerializer serializer, FSO.Content.Content content, IKernel kernel) : base(serializer, content) { AddProvider(kernel.Get <ClientAvatarProvider>()); AddProvider(kernel.Get <ClientLotProvider>()); AddProvider(kernel.Get <ClientCityProvider>()); CityClient = kernel.Get <AriesClient>("City"); CityClient.AddSubscriber(this); //When a new object is made, this data will be requested automatically SetDefaultDataStruct(typeof(Avatar), MaskedStruct.SimPage_Main); PollInterval = GameThread.SetInterval(PollTopics, 5000); }
public ServerDataService(IModelSerializer serializer, FSO.Content.Content content, IKernel kernel) : base(serializer, content) { AddProvider(kernel.Get <ServerAvatarProvider>()); var lots = kernel.Get <ServerLotProvider>(); AddProvider(lots); var city = kernel.Get <ServerCityProvider>(); AddProvider(city); var nhood = kernel.Get <ServerNeighborhoodProvider>(); nhood.BindCityRep(lots); AddProvider(nhood); var ratings = kernel.Get <ServerMayorRatingProvider>(); AddProvider(ratings); city.BindLots(lots); }
public NullDataService(IModelSerializer serializer, FSO.Content.Content content, IKernel kernel) : base(serializer, content) { }