public static void PresetSave(Maid f_maid, CharacterMgr.PresetType f_type, CharacterMgr.Preset __result) { if (configEntryUtill["PresetSave", false]) { MyLog.LogMessage("CharacterMgr.PresetSavePost0: " + MyUtill.GetMaidFullName(f_maid) + " , " + __result.strFileName + " , " + __result.ePreType); } }
static bool PluginsSave(ref Maid __0, ref string __1, ref CharacterMgr.PresetType __2) { if (__2 == CharacterMgr.PresetType.Wear) { return(false); } var xml = new XmlDocument(); bool nodeExist = false; var rootNode = xml.AppendChild(xml.CreateElement("plugins")); var exsaveNodeNameMap = AccessTools.Field(typeof(ExPreset), "exsaveNodeNameMap").GetValue(null) as HashSet <string>; foreach (string pluginName in exsaveNodeNameMap) { var node = xml.CreateElement("plugin"); if (ExSaveData.TryGetXml(__0, pluginName, node)) { rootNode.AppendChild(node); nodeExist = true; } } if (!nodeExist) { return(false); } xml.Save(Main.this4.PresetDirectory + "\\" + __1 + ".expreset.xml"); return(false); }
public static bool PresetSaveHook(CharacterMgr mgr, out CharacterMgr.Preset preset, Maid maid, CharacterMgr.PresetType presetType) { if (!Input.GetKey(KeyCode.LeftControl) && !Input.GetKey(KeyCode.LeftControl)) { preset = null; return(false); } preset = new CharacterMgr.Preset { ePreType = presetType, texThum = ThumShot.ShotThumPreset(maid) }; var bigThumTex = ThumUtil.MakeMaidThumbnail(maid); if (!Directory.Exists(PresetPath)) { Directory.CreateDirectory(PresetPath); } using (var bw = new BinaryWriter(File.Create(Path.Combine(PresetPath, $"pre_{maid.status.lastName}{maid.status.firstName}_{DateTime.Now:yyyyMMddHHmmss}.png")))) { // Load our layers and combine them // Janky AF, but it works, so /shrug Texture2D composedImagePreset; var backgroundLayer = LoadPNG(Path.Combine(LayerPath, "background.png")); composedImagePreset = CombineTextures(backgroundLayer, bigThumTex); var foregroundLayer = LoadPNG(Path.Combine(LayerPath, "foreground.png")); composedImagePreset = CombineTextures(composedImagePreset, foregroundLayer); bw.Write(composedImagePreset.EncodeToPNG()); bw.Write(mgr.PresetSaveNotWriteFile(maid, presetType)); var exData = ExtPresetSupport.SaveExPresetData(maid); if (exData != null) { bw.Write(EXT_DATA_BEGIN_MAGIC); bw.Write(exData); bw.Write(EXT_DATA_END_MAGIC); } } GameMain.Instance.SysDlg.Show( "Saved image as a preset card\n(If you want to save a normal preset, don't hold [CTRL] while saving)", SystemDialog.TYPE.OK); return(true); }
// Token: 0x06000067 RID: 103 RVA: 0x000082D4 File Offset: 0x000064D4 public CharacterMgr.Preset PresetSave(Maid f_maid, CharacterMgr.PresetType f_type) { CharacterMgr.Preset preset = new CharacterMgr.Preset(); Texture2D texture2D = this.ThumShot(GameMain.Instance.MainCamera.camera, f_maid); MemoryStream memoryStream = new MemoryStream(); BinaryWriter binaryWriter = new BinaryWriter(memoryStream); binaryWriter.Write("CM3D2_PRESET"); binaryWriter.Write(1160); binaryWriter.Write((int)f_type); if (texture2D != null) { byte[] array = texture2D.EncodeToPNG(); binaryWriter.Write(array.Length); binaryWriter.Write(array); } else { binaryWriter.Write(0); } f_maid.SerializeProp(binaryWriter); f_maid.SerializeMultiColor(binaryWriter); f_maid.SerializeBody(binaryWriter); string text = string.Concat(new string[] { "pre_", f_maid.status.lastName, f_maid.status.firstName, "_", DateTime.Now.ToString("yyyyMMddHHmmss") }); text = UTY.FileNameEscape(text); text += ".preset"; string text2 = Path.GetFullPath(".\\") + "Preset"; if (!Directory.Exists(text2)) { Directory.CreateDirectory(text2); } File.WriteAllBytes(text2 + "\\" + text, memoryStream.ToArray()); memoryStream.Dispose(); preset.texThum = texture2D; preset.strFileName = text; preset.ePreType = f_type; return(preset); }
public static void PresetSavePostCallRet(CharacterMgr that, Maid f_maid, CharacterMgr.PresetType f_type, CharacterMgr.Preset preset) // 후킹시 원본 클래스도 같이 받도록 돼있음 // public Preset PresetSave(Maid f_maid, PresetType f_type) { Lilly.Log(name + ".PresetSavePostCallRet:" + preset.strFileName); }