예제 #1
0
        public override async Task Load(XElement node, bool requireName = true)
        {
            await base.Load(node, requireName);

            LoquiType  = this.ObjectGen.ProtoGen.Gen.GetTypeGeneration <MutagenLoquiType>();
            _rawFormID = this.ObjectGen.ProtoGen.Gen.GetTypeGeneration <FormIDType>();
            LoquiType.SetObjectGeneration(this.ObjectGen, setDefaults: true);
            LoquiType.RequireInterfaceObject = false;
            await LoquiType.Load(node, requireName : false);

            LoquiType.Name = this.Name;
            LoquiType.GetterInterfaceType = LoquiInterfaceType.IGetter;
            _rawFormID.Name = this.Name;
            _rawFormID.SetObjectGeneration(this.ObjectGen, false);
            this.NotifyingProperty.Subscribe(i => LoquiType.NotifyingProperty.OnNext(i));
            this.NotifyingProperty.Subscribe(i => _rawFormID.NotifyingProperty.OnNext(i));
            this.HasBeenSetProperty.Subscribe(i => LoquiType.HasBeenSetProperty.OnNext(i));
            this.HasBeenSetProperty.Subscribe(i => _rawFormID.HasBeenSetProperty.OnNext(i));
            this.FormIDType    = node.GetAttribute <FormIDTypeEnum>("type", defaultVal: FormIDTypeEnum.Normal);
            this.Singleton     = true;
            this.SetPermission = PermissionLevel.@private;
        }