Beispiel #1
0
 public PropertyOperationEvent(EntityMod source, ContentImportLog log, EntityData target, string[] prop)
 {
     Source    = source;
     Target    = target;
     Log       = log;
     Property  = prop[0];
     Operation = prop[1];
 }
Beispiel #2
0
        public override bool TryImportProperty <T>(T entity, CachedFucineProperty <T> prop, EntityData entityData,
                                                   ContentImportLog log)
        {
            var name = entityData.ValuesTable[prop.LowerCaseName];

            if (name == null)
            {
                return(false);
            }
            var sprite = ResourcesManager.GetSprite(_folder, name.ToString(), false);

            prop.SetViaFastInvoke(entity, sprite);
            return(true);
        }
        public override bool TryImportProperty <T>(
            T entity,
            CachedFucineProperty <T> prop,
            EntityData entityData,
            ContentImportLog log)
        {
            var propertyType = prop.ThisPropInfo.PropertyType;

            if (!(entityData.ValuesTable[prop.LowerCaseName] is EntityData subEntityData))
            {
                prop.SetViaFastInvoke(entity, FactoryInstantiator.CreateObjectWithDefaultConstructor(propertyType));
                return(false);
            }

            var entityType = propertyType.GetGenericArguments()[1];

            if (!(FactoryInstantiator.CreateObjectWithDefaultConstructor(propertyType) is IDictionary target))
            {
                return(false);
            }
            foreach (var k in subEntityData.ValuesTable.Keys)
            {
                var kk   = k.ToString().ToLower();
                var data = subEntityData.ValuesTable[kk];
                if (entityType.GetInterfaces().Contains(typeof(IQuickSpecEntity)) &&
                    data is string qs)
                {
                    if (!(FactoryInstantiator.CreateObjectWithDefaultConstructor(entityType) is IQuickSpecEntity
                          defaultConstructor))
                    {
                        return(false);
                    }
                    defaultConstructor.QuickSpec(qs);
                    target[kk] = defaultConstructor;
                }
                else
                {
                    var ent = FactoryInstantiator.CreateEntity(entityType, data as EntityData, log);
                    target[kk] = ent;
                }
            }

            prop.SetViaFastInvoke(entity, target);
            return(true);
        }
 public TypeRegistry(ICompendium compendium, string culture, ContentImportLog log,
                     Dictionary <string, EntityTypeDataLoader> loaders, List <Type> types) : base(compendium, culture, log)
 {
     Loaders = loaders;
     Types   = types;
 }
 public Post(ICompendium compendium, string culture, ContentImportLog log, List <DataFileLoader> content,
             List <DataFileLoader> loc) : base(compendium, culture, log, content, loc)
 {
 }
 public ModIndexing(ICompendium compendium, string culture, ContentImportLog log,
                    List <DataFileLoader> content, List <DataFileLoader> loc) : base(compendium, culture, log)
 {
     Content = content;
     Loc     = loc;
 }
 public Begin(ICompendium compendium, string culture, ContentImportLog log) : base(compendium, culture, log)
 {
 }
 public CompendiumEvent(ICompendium compendium, string culture, ContentImportLog log)
 {
     Compendium = compendium;
     Culture    = culture;
     Log        = log;
 }
 public Post(ICompendium compendium, string culture, ContentImportLog log,
             Dictionary <string, EntityTypeDataLoader> loaders, List <Type> types) : base(compendium, culture, log,
                                                                                          loaders, types)
 {
 }
Beispiel #10
0
 protected override void OnPostImportForSpecificEntity(ContentImportLog log, ICompendium populatedCompendium)
 {
 }
Beispiel #11
0
 public Location(EntityData importDataForEntity, ContentImportLog log)
     : base(importDataForEntity, log)
 {
 }
Beispiel #12
0
 private static void Postfix(ICompendium compendiumToPopulate, string forCultureId, ContentImportLog ____log)
 {
     GreatWorkAPI.Events.FireEvent(new CompendiumEvent.End(compendiumToPopulate, forCultureId, ____log));
 }
Beispiel #13
0
 private static bool Prefix(ICompendium compendiumToPopulate, string forCultureId, ContentImportLog ____log)
 {
     GreatWorkAPI.Events.FireEvent(new CompendiumEvent.Begin(compendiumToPopulate, forCultureId, ____log));
     return(true);
 }
Beispiel #14
0
 public Door(EntityData importDataForEntity, ContentImportLog log)
     : base(importDataForEntity, log)
 {
 }