Ejemplo n.º 1
0
        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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
 public NullDataService(IModelSerializer serializer,
                        FSO.Content.Content content,
                        IKernel kernel) : base(serializer, content)
 {
 }