Example #1
0
        public IEnumerable <KeyValuePair <ChunkPlaybackInfo, IChunk> > GetChunks()
        {
            PMCEInfo lastComponent = null;
            IChunk   lastChunk     = null;

            // TCFE effect = Chunk.GetAllOfType<TCFE>().First().Value;
            for (int i = 0; i < Chunk.Chunks.Count; i++)
            {
                if (Chunk?.Chunks[i]?.GetType() == typeof(EffectChunkComponent))
                {
                    EffectChunkComponent pmce = Chunk.Chunks[i] as EffectChunkComponent;
                    if (pmce == null)
                    {
                        continue;
                    }
                    lastComponent = new PMCEInfo {
                        Hardpoint = pmce.Data.Hardpoint, StartTime = pmce.StartTime, EndTime = pmce.EndTime
                    };
                    // if (effect.Hardpoints == null) continue;
                    // if (effect.Hardpoints.Length <= pmce.Data.Index) continue;
                    continue;
                }

                ChunkPlaybackInfo playbackInfo = new ChunkPlaybackInfo(lastComponent, lastChunk);

                yield return(new KeyValuePair <ChunkPlaybackInfo, IChunk>(playbackInfo, Chunk.Chunks[i]));

                lastComponent = null;
                lastChunk     = Chunk.Chunks[i];
            }
        }
Example #2
0
        public IEnumerable <KeyValuePair <ChunkPlaybackInfo, IChunk> > GetChunks()
        {
            PMCEInfo lastComponent = null;
            IChunk   lastChunk     = null;

            for (int i = 0; i < ChunkedData.Chunks?.Length; i++)
            {
                if (ChunkedData?.Chunks[i]?.GetType() == typeof(teEffectChunkComponent))
                {
                    if (!(ChunkedData.Chunks[i] is teEffectChunkComponent component))
                    {
                        continue;
                    }
                    lastComponent = new PMCEInfo {
                        Hardpoint = component.Header.Hardpoint, StartTime = component.StartTime, EndTime = component.Duration
                    };
                    // if (effect.Hardpoints == null) continue;
                    // if (effect.Hardpoints.Length <= pmce.Data.Index) continue;
                    continue;
                }

                ChunkPlaybackInfo playbackInfo = new ChunkPlaybackInfo(lastComponent, lastChunk);

                yield return(new KeyValuePair <ChunkPlaybackInfo, IChunk>(playbackInfo, ChunkedData.Chunks[i]));

                lastComponent = null;
                lastChunk     = ChunkedData.Chunks[i];
            }
        }
Example #3
0
        public static void AddOSCE(EffectInfo effect, teEffectComponentSound osce, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            OSCEInfo newInfo = new OSCEInfo {
                PlaybackInfo = playbackInfo, Sound = osce.Header.Sound
            };

            if (replacements.ContainsKey(newInfo.Sound))
            {
                newInfo.Sound = replacements[newInfo.Sound];
            }
            effect.OSCEs.Add(newInfo);
        }
Example #4
0
        public static void AddSVCE(EffectInfo effect, SVCE svce, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            SVCEInfo newInfo = new SVCEInfo {
                PlaybackInfo = playbackInfo, VoiceStimulus = svce.Data.VoiceStimulus
            };

            if (replacements.ContainsKey(newInfo.VoiceStimulus))
            {
                newInfo.VoiceStimulus = replacements[newInfo.VoiceStimulus];
            }
            effect.SVCEs.Add(newInfo);
        }
Example #5
0
        public static void AddRPCE(EffectInfo effect, RPCE rpce, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            RPCEInfo newInfo = new RPCEInfo {
                PlaybackInfo = playbackInfo, Model = rpce.Data.Model
            };

            if (replacements.ContainsKey(newInfo.Model))
            {
                newInfo.Model = replacements[newInfo.Model];
            }
            effect.RPCEs.Add(newInfo);
        }
Example #6
0
        public static void AddNECE(EffectInfo effect, teEffectComponentEntity nece, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            NECEInfo newInfo = new NECEInfo {
                PlaybackInfo = playbackInfo, GUID = nece.Header.Entity, Identifier = nece.Header.Identifier
            };

            if (replacements.ContainsKey(newInfo.GUID))
            {
                newInfo.GUID = replacements[newInfo.GUID];
            }
            if (replacements.ContainsKey(newInfo.Identifier))
            {
                newInfo.Identifier = replacements[newInfo.Identifier];
            }
            effect.NECEs.Add(newInfo);
        }
Example #7
0
        public static void AddNECE(EffectInfo effect, NECE nece, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            NECEInfo newInfo = new NECEInfo {
                PlaybackInfo = playbackInfo, GUID = nece.Data.Entity, Variable = nece.Data.EntityVariable
            };

            if (replacements.ContainsKey(newInfo.GUID))
            {
                newInfo.GUID = replacements[newInfo.GUID];
            }
            if (replacements.ContainsKey(newInfo.Variable))
            {
                newInfo.Variable = replacements[newInfo.Variable];
            }
            effect.NECEs.Add(newInfo);
        }
Example #8
0
        public static void AddCECE(EffectInfo effect, CECE cece, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            CECEInfo newInfo = new CECEInfo {
                Animation      = cece.Data.Animation,
                PlaybackInfo   = playbackInfo,
                Action         = cece.Data.Action,
                EntityVariable = cece.Data.EntityVariable
            };

            if (replacements.ContainsKey(newInfo.Animation))
            {
                newInfo.Animation = replacements[newInfo.Animation];
            }
            if (replacements.ContainsKey(newInfo.EntityVariable))
            {
                newInfo.EntityVariable = replacements[newInfo.EntityVariable];
            }
            effect.CECEs.Add(newInfo);
        }
Example #9
0
        public static void AddDMCE(EffectInfo effect, teEffectComponentModel model, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            DMCEInfo newInfo = new DMCEInfo {
                Model        = model.Header.Model,
                Material     = model.Header.ModelLook,
                Animation    = model.Header.Animation,
                PlaybackInfo = playbackInfo
            };

            if (replacements.ContainsKey(newInfo.Model))
            {
                newInfo.Model = replacements[newInfo.Model];
            }
            if (replacements.ContainsKey(newInfo.Material))
            {
                newInfo.Material = replacements[newInfo.Material];
            }
            if (replacements.ContainsKey(newInfo.Animation))
            {
                newInfo.Animation = replacements[newInfo.Animation];
            }
            effect.DMCEs.Add(newInfo);
        }
Example #10
0
        public static void AddDMCE(EffectInfo effect, DMCE dmce, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            DMCEInfo newInfo = new DMCEInfo {
                Model        = dmce.Data.Model,
                Material     = dmce.Data.Look,
                Animation    = dmce.Data.Animation,
                PlaybackInfo = playbackInfo
            };

            if (replacements.ContainsKey(newInfo.Model))
            {
                newInfo.Model = replacements[newInfo.Model];
            }
            if (replacements.ContainsKey(newInfo.Material))
            {
                newInfo.Material = replacements[newInfo.Material];
            }
            if (replacements.ContainsKey(newInfo.Animation))
            {
                newInfo.Animation = replacements[newInfo.Animation];
            }
            effect.DMCEs.Add(newInfo);
        }
Example #11
0
        public static void AddFECE(EffectInfo effect, ulong guid, EffectInfo subEffect, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            FECEInfo newInfo = new FECEInfo {
                PlaybackInfo = playbackInfo, Effect = subEffect, GUID = guid
            };

            if (replacements.ContainsKey(newInfo.GUID))
            {
                newInfo.GUID = replacements[newInfo.GUID];
            }
            effect.FECEs.Add(newInfo);
        }
Example #12
0
        public static void AddCECE(EffectInfo effect, teEffectComponentEntityControl control, ChunkPlaybackInfo playbackInfo, Dictionary <ulong, ulong> replacements)
        {
            CECEInfo newInfo = new CECEInfo {
                Animation    = control.Header.Animation,
                PlaybackInfo = playbackInfo,
                Action       = control.Header.Action,
                Identifier   = control.Header.Identifier
            };

            if (replacements.ContainsKey(newInfo.Animation))
            {
                newInfo.Animation = replacements[newInfo.Animation];
            }
            if (replacements.ContainsKey(newInfo.Identifier))
            {
                newInfo.Identifier = replacements[newInfo.Identifier];
            }
            effect.CECEs.Add(newInfo);
        }