コード例 #1
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            this.MetaStructure.name              = this.Name;
            this.MetaStructure.offsetPosition    = this.OffsetPosition;
            this.MetaStructure.offsetRotation    = this.OffsetRotation;
            this.MetaStructure.spawnType         = this.SpawnType;
            this.MetaStructure.pedType           = this.PedType;
            this.MetaStructure.group             = this.Group;
            this.MetaStructure.interior          = this.Interior;
            this.MetaStructure.requiredImap      = this.RequiredImap;
            this.MetaStructure.availableInMpSp   = this.AvailableInMpSp;
            this.MetaStructure.probability       = this.Probability;
            this.MetaStructure.timeTillPedLeaves = this.TimeTillPedLeaves;
            this.MetaStructure.radius            = this.Radius;
            this.MetaStructure.start             = this.Start;
            this.MetaStructure.end           = this.End;
            this.MetaStructure.flags         = this.Flags;
            this.MetaStructure.highPri       = this.HighPri;
            this.MetaStructure.extendedRange = this.ExtendedRange;
            this.MetaStructure.shortRange    = this.ShortRange;

            MCExtensionDefSpawnPoint.AddEnumAndStructureInfo(mb);

            if (isRoot)
            {
                mb.AddItem(this.MetaName, this.MetaStructure);

                this.Meta = mb.GetMeta();
            }
        }
コード例 #2
0
        public override void Parse(MetaFile meta, CScenarioPointContainer CScenarioPointContainer)
        {
            this.Meta          = meta;
            this.MetaStructure = CScenarioPointContainer;

            var LoadSavePoints = MetaUtils.ConvertDataArray <CExtensionDefSpawnPoint>(meta, CScenarioPointContainer.LoadSavePoints);

            this.LoadSavePoints = LoadSavePoints?.Select(e => { var msw = new MCExtensionDefSpawnPoint(); msw.Parse(meta, e); return(msw); }).ToList();

            var MyPoints = MetaUtils.ConvertDataArray <CScenarioPoint>(meta, CScenarioPointContainer.MyPoints);

            this.MyPoints = MyPoints?.Select(e => { var msw = new MCScenarioPoint(); msw.Parse(meta, e); return(msw); }).ToList();
        }
コード例 #3
0
        public override void Parse(MetaFile meta, CScenarioEntityOverride CScenarioEntityOverride)
        {
            this.Meta          = meta;
            this.MetaStructure = CScenarioEntityOverride;

            this.EntityPosition = CScenarioEntityOverride.EntityPosition;
            this.EntityType     = CScenarioEntityOverride.EntityType;
            var ScenarioPoints = MetaUtils.ConvertDataArray <CExtensionDefSpawnPoint>(meta, CScenarioEntityOverride.ScenarioPoints);

            this.ScenarioPoints = ScenarioPoints?.Select(e => { var msw = new MCExtensionDefSpawnPoint(); msw.Parse(meta, e); return(msw); }).ToList();

            this.Unk_538733109  = CScenarioEntityOverride.Unk_538733109;
            this.Unk_1035513142 = CScenarioEntityOverride.Unk_1035513142;
        }
コード例 #4
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            this.MetaStructure.EntityPosition = this.EntityPosition;
            this.MetaStructure.EntityType     = this.EntityType;
            if (this.ScenarioPoints != null)
            {
                this.MetaStructure.ScenarioPoints = mb.AddItemArrayPtr(MetaName.CExtensionDefSpawnPoint, this.ScenarioPoints.Select(e => { e.Build(mb); return(e.MetaStructure); }).ToArray());
            }
            MCExtensionDefSpawnPoint.AddEnumAndStructureInfo(mb);

            this.MetaStructure.Unk_538733109  = this.Unk_538733109;
            this.MetaStructure.Unk_1035513142 = this.Unk_1035513142;

            MCScenarioEntityOverride.AddEnumAndStructureInfo(mb);

            if (isRoot)
            {
                mb.AddItem(this.MetaName, this.MetaStructure);

                this.Meta = mb.GetMeta();
            }
        }
コード例 #5
0
        public override void Build(MetaBuilder mb, bool isRoot = false)
        {
            if (this.LoadSavePoints != null)
            {
                this.MetaStructure.LoadSavePoints = mb.AddItemArrayPtr(MetaName.CExtensionDefSpawnPoint, this.LoadSavePoints.Select(e => { e.Build(mb); return(e.MetaStructure); }).ToArray());
            }
            MCExtensionDefSpawnPoint.AddEnumAndStructureInfo(mb);

            if (this.MyPoints != null)
            {
                this.MetaStructure.MyPoints = mb.AddItemArrayPtr(MetaName.CScenarioPoint, this.MyPoints.Select(e => { e.Build(mb); return(e.MetaStructure); }).ToArray());
            }
            MCScenarioPoint.AddEnumAndStructureInfo(mb);


            MCScenarioPointContainer.AddEnumAndStructureInfo(mb);

            if (isRoot)
            {
                mb.AddItem(this.MetaName, this.MetaStructure);

                this.Meta = mb.GetMeta();
            }
        }
コード例 #6
0
        public override void Parse(MetaFile meta, CMloArchetypeDef CMloArchetypeDef)
        {
            this.Meta          = meta;
            this.MetaStructure = CMloArchetypeDef;

            this.LodDist            = CMloArchetypeDef.lodDist;
            this.Flags              = CMloArchetypeDef.flags;
            this.SpecialAttribute   = CMloArchetypeDef.specialAttribute;
            this.BbMin              = CMloArchetypeDef.bbMin;
            this.BbMax              = CMloArchetypeDef.bbMax;
            this.BsCentre           = CMloArchetypeDef.bsCentre;
            this.BsRadius           = CMloArchetypeDef.bsRadius;
            this.HdTextureDist      = CMloArchetypeDef.hdTextureDist;
            this.Name               = CMloArchetypeDef.name;
            this.TextureDictionary  = CMloArchetypeDef.textureDictionary;
            this.ClipDictionary     = CMloArchetypeDef.clipDictionary;
            this.DrawableDictionary = CMloArchetypeDef.drawableDictionary;
            this.PhysicsDictionary  = CMloArchetypeDef.physicsDictionary;
            this.AssetType          = CMloArchetypeDef.assetType;
            this.AssetName          = CMloArchetypeDef.assetName;

            // Extensions
            var extptrs = MetaUtils.GetPointerArray(meta, CMloArchetypeDef.extensions);

            if (extptrs != null)
            {
                for (int i = 0; i < extptrs.Length; i++)
                {
                    var extptr = extptrs[i];
                    var block  = meta.GetBlock(extptr.BlockID);

                    switch (block.StructureNameHash)
                    {
                    case MetaName.CExtensionDefAudioCollisionSettings:
                    {
                        var data = MetaUtils.GetData <CExtensionDefAudioCollisionSettings>(meta, extptr);
                        var obj  = new MCExtensionDefAudioCollisionSettings();
                        obj.Parse(meta, data);
                        ExtensionDefAudioCollisionSettings.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefAudioEmitter:
                    {
                        var data = MetaUtils.GetData <CExtensionDefAudioEmitter>(meta, extptr);
                        var obj  = new MCExtensionDefAudioEmitter();
                        obj.Parse(meta, data);
                        ExtensionDefAudioEmitters.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefBuoyancy:
                    {
                        var data = MetaUtils.GetData <CExtensionDefBuoyancy>(meta, extptr);
                        var obj  = new MCExtensionDefBuoyancy();
                        obj.Parse(meta, data);
                        ExtensionDefBuoyancies.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefExplosionEffect:
                    {
                        var data = MetaUtils.GetData <CExtensionDefExplosionEffect>(meta, extptr);
                        var obj  = new MCExtensionDefExplosionEffect();
                        obj.Parse(meta, data);
                        ExtensionDefExplosionEffects.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefExpression:
                    {
                        var data = MetaUtils.GetData <CExtensionDefExpression>(meta, extptr);
                        var obj  = new MCExtensionDefExpression();
                        obj.Parse(meta, data);
                        ExtensionDefExpressions.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefLadder:
                    {
                        var data = MetaUtils.GetData <CExtensionDefLadder>(meta, extptr);
                        var obj  = new MCExtensionDefLadder();
                        obj.Parse(meta, data);
                        ExtensionDefLadders.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefLightShaft:
                    {
                        var data = MetaUtils.GetData <CExtensionDefLightShaft>(meta, extptr);
                        var obj  = new MCExtensionDefLightShaft();
                        obj.Parse(meta, data);
                        ExtensionDefLightShafts.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefParticleEffect:
                    {
                        var data = MetaUtils.GetData <CExtensionDefParticleEffect>(meta, extptr);
                        var obj  = new MCExtensionDefParticleEffect();
                        obj.Parse(meta, data);
                        ExtensionDefParticleEffects.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefProcObject:
                    {
                        var data = MetaUtils.GetData <CExtensionDefProcObject>(meta, extptr);
                        var obj  = new MCExtensionDefProcObject();
                        obj.Parse(meta, data);
                        ExtensionDefProcObjects.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefSpawnPoint:
                    {
                        var data = MetaUtils.GetData <CExtensionDefSpawnPoint>(meta, extptr);
                        var obj  = new MCExtensionDefSpawnPoint();
                        obj.Parse(meta, data);
                        ExtensionDefSpawnPoints.Add(obj);
                        break;
                    }

                    case MetaName.CExtensionDefWindDisturbance:
                    {
                        var data = MetaUtils.GetData <CExtensionDefWindDisturbance>(meta, extptr);
                        var obj  = new MCExtensionDefWindDisturbance();
                        obj.Parse(meta, data);
                        ExtensionDefWindDisturbances.Add(obj);
                        break;
                    }

                    default: break;
                    }
                }
            }

            this.MloFlags = CMloArchetypeDef.mloFlags;

            this.Entities = MetaUtils.ConvertDataArray <CEntityDef>(this.Meta, CMloArchetypeDef.entities)?.Select(e => { var obj = new MCEntityDef(); obj.Parse(meta, e); return(obj); }).ToList() ?? new List <MCEntityDef>();

            var rooms = MetaUtils.ConvertDataArray <CMloRoomDef>(meta, CMloArchetypeDef.rooms);

            this.Rooms = rooms?.Select(e => { var msw = new MCMloRoomDef(this); msw.Parse(meta, e); return(msw); }).ToList();

            var portals = MetaUtils.ConvertDataArray <CMloPortalDef>(meta, CMloArchetypeDef.portals);

            this.Portals = portals?.Select(e => { var msw = new MCMloPortalDef(); msw.Parse(meta, e); return(msw); }).ToList();

            var entitySets = MetaUtils.ConvertDataArray <CMloEntitySet>(meta, CMloArchetypeDef.entitySets);

            this.EntitySets = entitySets?.Select(e => { var msw = new MCMloEntitySet(); msw.Parse(meta, e); return(msw); }).ToList();

            var timeCycleModifiers = MetaUtils.ConvertDataArray <CMloTimeCycleModifier>(meta, CMloArchetypeDef.timeCycleModifiers);

            this.TimeCycleModifiers = timeCycleModifiers?.Select(e => { var msw = new MCMloTimeCycleModifier(); msw.Parse(meta, e); return(msw); }).ToList();
        }