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]; } }
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]; } }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }