public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock, VoiceSet voiceSet) { if (voiceSet == null) { return; } if (!(unlock.STU is STUUnlock_VoiceLine vl)) { return; } HashSet <ulong> voiceLines = new HashSet <ulong>(); using (Stream vlStream = IO.OpenFile(vl.m_F57B051E)) { teChunkedData chunkedData = new teChunkedData(vlStream); foreach (teEffectComponentVoiceStimulus voiceStimulus in chunkedData.GetChunks <teEffectComponentVoiceStimulus>()) { if (voiceSet.Stimuli.TryGetValue(voiceStimulus.Header.VoiceStimulus, out var stimuliLines)) { foreach (var voiceLine in stimuliLines) { voiceLines.Add(voiceLine); } } } } SaveVoiceLines(flags, voiceLines, voiceSet, directory); }
public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock) { FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo(); FindLogic.Combo.Find(info, unlock.GUID); bool saveAllTextures = false; try { info.m_textures.First(x => x.Value.m_loose).Value.m_name = unlock.Name; directory = Path.GetFullPath(Path.Combine(directory, "..")); } catch { // animated spray - no main image saveAllTextures = true; } var context = new Combo.SaveContext(info); Combo.SaveLooseTextures(flags, directory, context); if (!saveAllTextures) { context.Wait(); return; } Combo.SaveAllMaterials(flags, directory, context); Combo.Save(flags, directory, context); context.Wait(); }
public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock) { STUUnlock_PortraitFrame portraitFrame = (STUUnlock_PortraitFrame)unlock.STU; string tier = portraitFrame.m_rank.ToString(); FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo(); if (portraitFrame.m_rankTexture != null) { FindLogic.Combo.Find(info, portraitFrame.m_rankTexture); info.SetTextureName(portraitFrame.m_rankTexture, $"Star - {portraitFrame.m_stars}"); } if (portraitFrame.m_949D9C2A != null) { FindLogic.Combo.Find(info, portraitFrame.m_949D9C2A); int borderNum = portraitFrame.m_level - portraitFrame.m_stars * 10 - (int)portraitFrame.m_rank * 10; if ((int)portraitFrame.m_rank > 1) { borderNum -= 50 * ((int)portraitFrame.m_rank - 1); } borderNum -= 1; info.SetTextureName(portraitFrame.m_949D9C2A, $"Border - {borderNum}"); } Combo.SaveLooseTextures(flags, Path.Combine(directory, tier), info); }
public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock) { FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo(); FindLogic.Combo.Find(info, unlock.GUID); // hmm, resaving the default spray over and over again (ref'd by SSCE) is kinda bad. try { info.Textures.First(x => x.Value.Loose).Value.Name = unlock.Name; } catch { // what } ExtractFlags extractFlags = flags as ExtractFlags; if (extractFlags?.SprayOnlyImage == true) { directory = Path.GetFullPath(Path.Combine(directory, "..")); } Combo.SaveLooseTextures(flags, directory, info); if (extractFlags?.SprayOnlyImage == true) { return; } Combo.SaveAllMaterials(flags, directory, info); Combo.Save(flags, directory, info); }
public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock) { FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo(); FindLogic.Combo.Find(info, unlock.GUID); info.SaveConfig.SaveAnimationEffects = false; // todo: unsupported here due to relative paths used by OWEffect Combo.Save(flags, directory, info); Combo.SaveAllAnimations(flags, directory, info); }
public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock) { FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo(); FindLogic.Combo.Find(info, unlock.GUID); // hmm, resaving the default spray over and over again (ref'd by SSCE) is kinda bad. Combo.SaveLooseTextures(flags, directory, info); Combo.SaveAllMaterials(flags, directory, info); Combo.Save(flags, directory, info); }
public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock) { FindLogic.Combo.ComboInfo info = new FindLogic.Combo.ComboInfo(); FindLogic.Combo.Find(info, unlock.GUID); var context = new Combo.SaveContext(info) { m_saveAnimationEffects = false // todo: unsupported here due to relative paths used by OWEffect }; Combo.Save(flags, directory, context); Combo.SaveAllAnimations(flags, directory, context); context.Wait(); }
public static void Save(ICLIFlags flags, string directory, DataModels.Unlock unlock, STUHero hero) { if (!(unlock.STU is STUUnlock_SkinTheme unlockSkinTheme)) { return; } STUSkinTheme skinTheme = GetInstance <STUSkinTheme>(unlockSkinTheme.m_skinTheme); if (skinTheme == null) { return; } LoudLog($"\tExtracting skin {unlock.Name}"); Save(flags, directory, skinTheme, hero); }