public void Deserialize(byte[] bytes, ref int offset) { this.action = (actionType)ByteSerializer.DeserializeInt(bytes, ref offset); this.content = ByteSerializer.DeserializeByteArray(bytes, ref offset); this.username = ByteSerializer.DeserializeString(bytes, ref offset); this.metadata = ByteSerializer.DeserializeString(bytes, ref offset); this.playSound = ByteSerializer.DeserializeBool(bytes, ref offset); }
public void ImportCampaignCommand() { if (!instance.CheckForCheating()) { uConsole.Log("Campaign Mod is not enabled!"); return; } int Args = uConsole.GetNumParameters(); if (Args != 1) { uConsole.Log("Usage: import_campaign <campaign>"); } else { string Name = uConsole.GetString(); string cPath = MainPath + "Campaigns/" + Name; if (!File.Exists(MainPath + "Exports/" + Name + ".campaign")) { uConsole.Log("That campaign doesn't exist!"); return; } byte[] cBytes = Utils.UnZipPayload(File.ReadAllBytes(MainPath + "Exports/" + Name + ".campaign")); int offset = 0; string cDataJson = ByteSerializer.DeserializeString(cBytes, ref offset); CampaignLayoutData cData = JsonUtility.FromJson <CampaignLayoutData>(cDataJson); List <KeyValuePair <string, byte[]> > LevelBytes = new List <KeyValuePair <string, byte[]> >(); for (int i = 0; i < cData.m_ItemIds.Count; i++) { string lName = ByteSerializer.DeserializeString(cBytes, ref offset); byte[] lData = ByteSerializer.DeserializeByteArray(cBytes, ref offset); LevelBytes.Add(new KeyValuePair <string, byte[]>(lName, lData)); } if (Directory.Exists(cPath)) { PopUpMessage.Display("Campaign already exists!\nOverwite it?", delegate { Directory.Delete(cPath, true); ImportCampaign(cPath, cDataJson, LevelBytes); }); } else { ImportCampaign(cPath, cDataJson, LevelBytes); } } }
public static LevelData Deserialize(byte[] bytes, ref int offset) { LevelData levelData = new LevelData(); levelData.LayoutBytes = ByteSerializer.DeserializeByteArray(bytes, ref offset); levelData.PreviewData = ByteSerializer.DeserializeByteArray(bytes, ref offset); levelData.PreviewTexture = new Texture2D(WorkshopPreview.PREVIEW_IMAGE_WIDTH, WorkshopPreview.PREVIEW_IMAGE_HEIGHT, TextureFormat.RGBA32, false); levelData.PreviewTexture.LoadImage(levelData.PreviewData); levelData.Name = ByteSerializer.DeserializeString(bytes, ref offset); int num = 0; levelData.LayoutData = DeserializeLayoutBytes(levelData.LayoutBytes, ref num); return(levelData); }
public static void patchDeserializerPostfix(SandboxLayoutData __instance, byte[] bytes, ref int offset, bool __state) { //ptfInstance.ptfLogger.LogMessage($"Layout version pre-load: {__instance.m_Version}"); if (!__state) { return; } string[] strings = ByteSerializer.DeserializeStrings(bytes, ref offset); ptfInstance.ptfLogger.LogInfo($"Layout created with mod{(strings.Length > 1 ? "s" : "")}: "); foreach (string str in strings) { string[] partsOfMod = str.Split('\u058D'); string name = partsOfMod.Length >= 1 ? partsOfMod[0] : null; string version = partsOfMod.Length >= 2 ? partsOfMod[1] : null; string settings = partsOfMod.Length >= 3 ? partsOfMod[2] : null; ptfInstance.ptfLogger.LogInfo($" -- {str.Replace("\u058D", " - v")}"); var currMod = cheatMods.Where(p => p.Info.Metadata.Name == name).FirstOrDefault(); if (currMod == null) { currMod = noncheatMods.Where(p => p.Info.Metadata.Name == name).FirstOrDefault(); } ptfInstance.checkMods(0, name, version, settings, currMod); } if (offset == bytes.Length) { return; } int extraSaveDataCount = ByteSerializer.DeserializeInt(bytes, ref offset); if (extraSaveDataCount == 0) { return; } ptfInstance.Logger.LogInfo($"Layout created with custom data from mods: "); for (int i = 0; i < extraSaveDataCount; i++) { string modIdentifier = ByteSerializer.DeserializeString(bytes, ref offset); byte[] customModSaveData = ByteSerializer.DeserializeByteArray(bytes, ref offset); string[] partsOfMod = modIdentifier.Split('\u058D'); string name = partsOfMod.Length >= 1 ? partsOfMod[0] : null; string version = partsOfMod.Length >= 2 ? partsOfMod[1] : null; ptfInstance.Logger.LogInfo($" -- {name} - v{version}"); var currMod = cheatMods.Where(p => p.Info.Metadata.Name == name).FirstOrDefault(); if (currMod == null) { currMod = noncheatMods.Where(p => p.Info.Metadata.Name == name).FirstOrDefault(); } if (currMod == null) { return; } if (currMod.Info.Metadata.Version.ToString() != version) { return; } currMod.loadData(customModSaveData); } }
public void Deserialize(byte[] bytes, ref int offset) { this.type = ByteSerializer.DeserializeString(bytes, ref offset); this.content = ByteSerializer.DeserializeByteArray(bytes, ref offset); this.metadata = ByteSerializer.DeserializeString(bytes, ref offset); }