/// <summary> /// Deserializes all chair files for the mod. /// </summary> private static void DeserializeChairs() { if (!Directory.Exists(Path.Combine(ModCore.ModHelper.DirectoryPath, "Content", ChairFolder))) { Directory.CreateDirectory(Path.Combine(ModCore.ModHelper.DirectoryPath, "Content", ChairFolder)); } string[] directories = Directory.GetDirectories(Path.Combine(ModCore.ModHelper.DirectoryPath, "Content", ChairFolder)); foreach (string directory in directories) { string[] files = Directory.GetFiles(directory); Dictionary <string, ChairMultiTiledObject> chairObjects = new Dictionary <string, ChairMultiTiledObject>(); //Deserialize container. foreach (string file in files) { if ((Path.GetFileName(file)).Contains("_") == true) { continue; } else { ChairFactoryInfo factoryInfo = ModCore.Serializer.DeserializeContentFile <ChairFactoryInfo>(file); chairObjects.Add(Path.GetFileNameWithoutExtension(file), new ChairMultiTiledObject(factoryInfo.PyTkData, factoryInfo.info)); } } //Deseralize components foreach (string file in files) { if ((Path.GetFileName(file)).Contains("_") == false) { continue; } else { string[] splits = Path.GetFileNameWithoutExtension(file).Split('_'); string name = splits[0]; Vector2 offset = new Vector2(Convert.ToInt32(splits[1]), Convert.ToInt32(splits[2])); ChairFactoryInfo info = ModCore.Serializer.DeserializeContentFile <ChairFactoryInfo>(file); chairObjects[name].addComponent(offset, new ChairTileComponent(info.PyTkData, info.info, info.chairInfo)); } } foreach (var v in chairObjects) { ModCore.ObjectManager.chairs.Add(v.Value.info.id, v.Value); ModCore.ObjectManager.AddItem(v.Value.info.name, v.Value); } } }
/// <summary> /// Serialize all chair basic information to a file to have as a reference for making other like objects. /// </summary> private static void SerializeChairs() { Framework.Objects.Furniture.ChairTileComponent chairTop = new ChairTileComponent(PyTKHelper.CreateOBJData("Omegasis.Revitalize.Furniture.Chairs.OakChair", TextureManager.GetTexture(ModCore.Manifest, "Furniture", "Oak Chair"), typeof(ChairTileComponent), Color.White), new BasicItemInformation("Oak Chair", "Omegasis.Revitalize.Furniture.Chairs.OakChair", "A basic wooden chair made out of oak.", "Chairs", Color.Brown, -300, 0, false, 250, true, true, TextureManager.GetTexture(ModCore.Manifest, "Furniture", "Oak Chair"), new AnimationManager(TextureManager.GetExtendedTexture(ModCore.Manifest, "Furniture", "Oak Chair"), new Animation(new Rectangle(0, 0, 16, 16)), new Dictionary <string, List <Animation> >() { { "Default_" + (int)Framework.Enums.Direction.Down, new List <Animation>() { new Animation(new Rectangle(0, 0, 16, 16)) } }, { "Sitting_" + (int)Framework.Enums.Direction.Down, new List <Animation>() { new Animation(new Rectangle(0, 0, 16, 16)) } }, { "Default_" + (int)Framework.Enums.Direction.Right, new List <Animation>() { new Animation(new Rectangle(16, 0, 16, 16)) } }, { "Sitting_" + (int)Framework.Enums.Direction.Right, new List <Animation>() { new Animation(new Rectangle(16, 0, 16, 16)) } }, { "Default_" + (int)Framework.Enums.Direction.Up, new List <Animation>() { new Animation(new Rectangle(32, 0, 16, 16)) } }, { "Sitting_" + (int)Framework.Enums.Direction.Up, new List <Animation>() { new Animation(new Rectangle(32, 32, 16, 32)) } }, { "Default_" + (int)Framework.Enums.Direction.Left, new List <Animation>() { new Animation(new Rectangle(48, 0, 16, 16)) } }, { "Sitting_" + (int)Framework.Enums.Direction.Left, new List <Animation>() { new Animation(new Rectangle(48, 0, 16, 16)) } } }, "Default_" + (int)Framework.Enums.Direction.Down), Color.White, true, null, null), new ChairInformation(false)); Framework.Objects.Furniture.ChairTileComponent chairBottom = new ChairTileComponent(PyTKHelper.CreateOBJData("Omegasis.Revitalize.Furniture.Chairs.OakChair", TextureManager.GetTexture(ModCore.Manifest, "Furniture", "Oak Chair"), typeof(ChairTileComponent), Color.White), new BasicItemInformation("Oak Chair", "Omegasis.Revitalize.Furniture.Chairs.OakChair", "A basic wooden chair.", "Chairs", Color.Brown, -300, 0, false, 250, true, true, TextureManager.GetTexture(ModCore.Manifest, "Furniture", "Oak Chair"), new AnimationManager(TextureManager.TextureManagers[ModCore.Manifest.UniqueID]["Furniture"].getTexture("Oak Chair"), new Animation(new Rectangle(0, 16, 16, 16)), new Dictionary <string, List <Animation> >() { { "Default_" + (int)Framework.Enums.Direction.Down, new List <Animation>() { new Animation(new Rectangle(0, 16, 16, 16)) } }, { "Sitting_" + (int)Framework.Enums.Direction.Down, new List <Animation>() { new Animation(new Rectangle(0, 16, 16, 16)) } }, { "Default_" + (int)Framework.Enums.Direction.Right, new List <Animation>() { new Animation(new Rectangle(16, 16, 16, 16)) } }, { "Sitting_" + (int)Framework.Enums.Direction.Right, new List <Animation>() { new Animation(new Rectangle(16, 16, 16, 16)) } }, { "Default_" + (int)Framework.Enums.Direction.Up, new List <Animation>() { new Animation(new Rectangle(32, 16, 16, 16)) } }, { "Sitting_" + (int)Framework.Enums.Direction.Up, new List <Animation>() { new Animation(new Rectangle(48, 32, 16, 32)) } }, { "Default_" + (int)Framework.Enums.Direction.Left, new List <Animation>() { new Animation(new Rectangle(48, 16, 16, 16)) } }, { "Sitting" + (int)Framework.Enums.Direction.Left, new List <Animation>() { new Animation(new Rectangle(48, 16, 16, 16)) } } }, "Default_" + (int)Framework.Enums.Direction.Down), Color.White, false, null, null), new ChairInformation(true)); Framework.Objects.Furniture.ChairMultiTiledObject oakChair = new ChairMultiTiledObject(PyTKHelper.CreateOBJData("Omegasis.Revitalize.Furniture.Chairs.OakChair", TextureManager.GetTexture(ModCore.Manifest, "Furniture", "Oak Chair"), typeof(ChairMultiTiledObject), Color.White), new BasicItemInformation("Oak Chair", "Omegasis.Revitalize.Furniture.Chairs.OakChair", "A basic wooden chair.", "Chairs", Color.White, -300, 0, false, 250, true, true, TextureManager.GetTexture(ModCore.Manifest, "Furniture", "Oak Chair"), new AnimationManager(), Color.White, false, null, null)); ChairFactoryInfo top = new ChairFactoryInfo(chairTop); ChairFactoryInfo bottom = new ChairFactoryInfo(chairBottom); ChairFactoryInfo obj = new ChairFactoryInfo(oakChair); ModCore.Serializer.SerializeContentFile("OakChair_0_-1", top, Path.Combine(ChairFolder, "OakChair")); ModCore.Serializer.SerializeContentFile("OakChair_0_0", bottom, Path.Combine(ChairFolder, "OakChair")); ModCore.Serializer.SerializeContentFile("OakChair", obj, Path.Combine(ChairFolder, "OakChair")); }