Updated Save Anywhere to 1.1 and created a new helper mod called StarDustCore that includes a serializer and some message functionality

This commit is contained in:
Joshua Navarro 2016-11-03 11:25:53 -07:00
parent e4e4104305
commit 2cfea23af3
25 changed files with 1949 additions and 668 deletions

View File

@ -0,0 +1,62 @@
using StardewValley;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StarDust
{
namespace Messages
{
public static class HudWithIcon
{
public static void showStarMessage(string message)
{
Game1.addHUDMessage(new HUDMessage(message, 1));
if (!message.Contains("Inventory"))
{
Game1.playSound("cancel");
return;
}
if (!Game1.player.mailReceived.Contains("BackpackTip"))
{
Game1.player.mailReceived.Add("BackpackTip");
Game1.addMailForTomorrow("pierreBackpack", false, false);
}
}
/*
public static void showMessage2(string message)
{
Game1.addHUDMessage(new HUDMessage(message, 2));
if (!message.Contains("Inventory"))
{
Game1.playSound("cancel");
return;
}
if (!Game1.player.mailReceived.Contains("BackpackTip"))
{
Game1.player.mailReceived.Add("BackpackTip");
Game1.addMailForTomorrow("pierreBackpack", false, false);
}
}
*/
public static void showRedMessage(string message)
{
Game1.addHUDMessage(new HUDMessage(message, 3));
if (!message.Contains("Inventory"))
{
Game1.playSound("cancel");
return;
}
if (!Game1.player.mailReceived.Contains("BackpackTip"))
{
Game1.player.mailReceived.Add("BackpackTip");
Game1.addMailForTomorrow("pierreBackpack", false, false);
}
}
}
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StardewValley;
namespace StarDust.Messages
{
public class HudWithoutIcon
{
public static void showGlobalMessage(string s)
{
Game1.showGlobalMessage(s);
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("OmegasisLIB")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OmegasisLIB")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("18f4ba11-af6c-40fb-a544-ae08de61e187")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,102 @@
// Decompiled with JetBrains decompiler
// Type: SerializerUtils.SerializerUtility
// Assembly: SerializerUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 1302D1C7-A0C7-48FC-8C60-C8B9A49AF5B0
// Assembly location: C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\SerializerUtils.dll
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;
using StardewValley.Characters;
using StardewValley.Monsters;
using StardewValley.Quests;
using StardewValley.TerrainFeatures;
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
namespace SerializerUtils
{
public class SerializerUtility : Mod
{
protected static Type[] vanillaTypes = new Type[27]
{
typeof (Tool),
typeof (GameLocation),
typeof (Crow),
typeof (Duggy),
typeof (Bug),
typeof (BigSlime),
typeof (Fireball),
typeof (Ghost),
typeof (Child),
typeof (Pet),
typeof (Dog),
typeof (StardewValley.Characters.Cat),
typeof (Horse),
typeof (GreenSlime),
typeof (LavaCrab),
typeof (RockCrab),
typeof (ShadowGuy),
typeof (SkeletonMage),
typeof (SquidKid),
typeof (Grub),
typeof (Fly),
typeof (DustSpirit),
typeof (Quest),
typeof (MetalHead),
typeof (ShadowGirl),
typeof (Monster),
typeof (TerrainFeature)
};
public static Type[] vanillaFarmerTypes = new Type[1]
{
typeof (Tool)
};
public static List<Type> newTypes = new List<Type>();
public static List<Type> newFarmerTypes = new List<Type>()
{
typeof (Tool)
};
public override void Entry(params object[] objects)
{
GameEvents.GameLoaded += new EventHandler(SerializerUtility.Event_GameLoaded);
Command.RegisterCommand("include_types", "Includes types to serialize", (string[])null).CommandFired += new EventHandler<EventArgsCommand>(SerializerUtility.Command_IncludeTypes);
}
public static void Command_IncludeTypes(object sender, EventArgsCommand e)
{
}
public static void Event_GameLoaded(object sender, EventArgs e)
{
Command.CallCommand("include_types");
SerializerUtility.InvokeSerializerOverride();
}
public static void InvokeSerializerOverride()
{
List<Type> list1 = new List<Type>();
list1.AddRange((IEnumerable<Type>)SerializerUtility.vanillaTypes);
list1.AddRange((IEnumerable<Type>)SerializerUtility.newTypes);
List<Type> list2 = new List<Type>();
list2.AddRange((IEnumerable<Type>)SerializerUtility.vanillaFarmerTypes);
list2.AddRange((IEnumerable<Type>)SerializerUtility.newFarmerTypes);
SaveGame.serializer = new XmlSerializer(typeof(SaveGame), list1.ToArray());
SaveGame.farmerSerializer = new XmlSerializer(typeof(Farmer), list2.ToArray());
}
public static void AddType(Type t)
{
SerializerUtility.newTypes.Add(t);
}
public static void AddFarmerType(Type t)
{
SerializerUtility.newFarmerTypes.Add(t);
}
}
}

View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StardewModdingAPI;
using StardewValley;
using SerializerUtils;
using StardewModdingAPI.Events;
namespace StarDust
{
public class Core : Mod
{
public override void Entry(params object[] objects)
{
//GameEvents.GameLoaded += new EventHandler(SerializerUtility.Event_GameLoaded);
//Command.RegisterCommand("include_types", "Includes types to serialize", (string[])null).CommandFired += new EventHandler<EventArgsCommand>(SerializerUtility.Command_IncludeTypes);
}
}
}

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{18F4BA11-AF6C-40FB-A544-AE08DE61E187}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>StarDustCore</RootNamespace>
<AssemblyName>StarDustCore</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553" />
<Reference Include="Stardew Valley">
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe</HintPath>
</Reference>
<Reference Include="StardewModdingAPI">
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\StardewModdingAPI.exe</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Messages\HudWithIcon.cs" />
<Compile Include="Messages\HudWithoutIcon.cs" />
<Compile Include="StarDust.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SerializerUtility.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,22 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Express 14 for Windows Desktop
VisualStudioVersion = 14.0.24720.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StarDust", "OmegasisLIB\StarDust.csproj", "{18F4BA11-AF6C-40FB-A544-AE08DE61E187}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{18F4BA11-AF6C-40FB-A544-AE08DE61E187}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{18F4BA11-AF6C-40FB-A544-AE08DE61E187}.Debug|Any CPU.Build.0 = Debug|Any CPU
{18F4BA11-AF6C-40FB-A544-AE08DE61E187}.Release|Any CPU.ActiveCfg = Release|Any CPU
{18F4BA11-AF6C-40FB-A544-AE08DE61E187}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -1,20 +0,0 @@
Config: Save_Anywhere Info. Feel free to mess with these settings.
====================================================================================
Key binding for saving anywhere. Press this key to save anywhere!
K

View File

@ -1,203 +1,203 @@
using Microsoft.Xna.Framework;
using StardewModdingAPI;
using StardewValley;
using StardewValley.Buildings;
using StardewValley.Locations;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Save_Anywhere_V2.Save_Utilities
{
class NPC_Utilities
{
public static string npc_name;
public static int npc_tile_x;
public static int npc_tile_y;
public static string npc_current_map_name;
public static System.Collections.Generic.List<List<string>> routesFromLocationToLocation = new List<List<string>>();
public static Microsoft.Xna.Framework.Point npc_point;
public static void Save_NPC_Info()
{
Save_Anywhere_V2.Mod_Core.npc_path = Path.Combine(Save_Anywhere_V2.Mod_Core.player_path, "NPC_Save_Info");
if (!Directory.Exists(Save_Anywhere_V2.Mod_Core.npc_path))
{
Directory.CreateDirectory(Save_Anywhere_V2.Mod_Core.npc_path);
}
foreach (var location in Game1.locations)
{
foreach (var npc in location.characters)
{
if (npc.IsMonster == true) continue;
if (npc is StardewValley.Monsters.Bat || npc is StardewValley.Monsters.BigSlime || npc is StardewValley.Monsters.Bug || npc is StardewValley.Monsters.Cat || npc is StardewValley.Monsters.Crow || npc is StardewValley.Monsters.Duggy || npc is StardewValley.Monsters.DustSpirit || npc is StardewValley.Monsters.Fireball || npc is StardewValley.Monsters.Fly || npc is StardewValley.Monsters.Ghost || npc is StardewValley.Monsters.GoblinPeasant || npc is StardewValley.Monsters.GoblinWizard || npc is StardewValley.Monsters.GreenSlime || npc is StardewValley.Monsters.Grub || npc is StardewValley.Monsters.LavaCrab || npc is StardewValley.Monsters.MetalHead || npc is StardewValley.Monsters.Monster || npc is StardewValley.Monsters.Mummy || npc is StardewValley.Monsters.RockCrab || npc is StardewValley.Monsters.RockGolem || npc is StardewValley.Monsters.Serpent || npc is StardewValley.Monsters.ShadowBrute || npc is StardewValley.Monsters.ShadowGirl || npc is StardewValley.Monsters.ShadowGuy || npc is StardewValley.Monsters.ShadowShaman || npc is StardewValley.Monsters.Skeleton || npc is StardewValley.Monsters.SkeletonMage || npc is StardewValley.Monsters.SkeletonWarrior || npc is StardewValley.Monsters.Spiker || npc is StardewValley.Monsters.SquidKid) continue;
npc_name = npc.name;
npc_current_map_name = location.name;
npc_tile_x = npc.getTileX();
npc_tile_y = npc.getTileY();
string mylocation = Path.Combine(Save_Anywhere_V2.Mod_Core.npc_path, npc.name);
string mylocation2 = mylocation;
string mylocation3 = mylocation2 + ".txt";
string[] mystring3 = new string[20];
if (!File.Exists(mylocation3))
{
Log.Info("Save Anywhere: The NPC save info for " + npc_name + " doesn't exist. It will be created when the custom saving method is run. Which is now.");
//write out the info to a text file at the end of a day. This will run if it doesnt exist.
mystring3[0] = "NPC: Save_Anywhere Info. Editing this might break some things.";
mystring3[1] = "====================================================================================";
mystring3[2] = "NPC Name";
mystring3[3] = npc_name.ToString();
mystring3[4] = "NPC Current Map Name";
mystring3[5] = npc_current_map_name.ToString();
mystring3[6] = "NPC X Position";
mystring3[7] = npc_tile_x.ToString();
mystring3[8] = "NPC Y Position";
mystring3[9] = npc_tile_y.ToString();
File.WriteAllLines(mylocation3, mystring3);
}
else
{
// Console.WriteLine("The custom character save info doesn't exist. It will be created when the custom saving method is run. Which is now.");
//write out the info to a text file at the end of a day. This will run if it doesnt exist.
mystring3[0] = "NPC: Save_Anywhere Info. Editing this might break some things.";
mystring3[1] = "====================================================================================";
mystring3[2] = "NPC Current Map Name";
mystring3[3] = npc_name.ToString();
mystring3[4] = "NPC Current Map Name";
mystring3[5] = npc_current_map_name.ToString();
mystring3[6] = "NPC X Position";
mystring3[7] = npc_tile_x.ToString();
mystring3[8] = "NPC Y Position";
mystring3[9] = npc_tile_y.ToString();
File.WriteAllLines(mylocation3, mystring3);
}
}
}
}
public static void Load_NPC_Info()
{
List<NPC> npc_list = new List<NPC>();
foreach (var location in Game1.locations)
{
foreach (var npc in location.characters)
{
if (npc.IsMonster == true) continue;
if (npc is StardewValley.Monsters.Bat || npc is StardewValley.Monsters.BigSlime || npc is StardewValley.Monsters.Bug || npc is StardewValley.Monsters.Cat || npc is StardewValley.Monsters.Crow || npc is StardewValley.Monsters.Duggy || npc is StardewValley.Monsters.DustSpirit || npc is StardewValley.Monsters.Fireball || npc is StardewValley.Monsters.Fly || npc is StardewValley.Monsters.Ghost || npc is StardewValley.Monsters.GoblinPeasant || npc is StardewValley.Monsters.GoblinWizard || npc is StardewValley.Monsters.GreenSlime || npc is StardewValley.Monsters.Grub || npc is StardewValley.Monsters.LavaCrab || npc is StardewValley.Monsters.MetalHead || npc is StardewValley.Monsters.Monster || npc is StardewValley.Monsters.Mummy || npc is StardewValley.Monsters.RockCrab || npc is StardewValley.Monsters.RockGolem || npc is StardewValley.Monsters.Serpent || npc is StardewValley.Monsters.ShadowBrute || npc is StardewValley.Monsters.ShadowGirl || npc is StardewValley.Monsters.ShadowGuy || npc is StardewValley.Monsters.ShadowShaman || npc is StardewValley.Monsters.Skeleton || npc is StardewValley.Monsters.SkeletonMage || npc is StardewValley.Monsters.SkeletonWarrior || npc is StardewValley.Monsters.Spiker || npc is StardewValley.Monsters.SquidKid) continue;
if (npc is StardewValley.NPC || npc is StardewValley.Characters.Cat || npc is StardewValley.Characters.Dog) npc_list.Add(npc);
}
}
foreach(var npc in npc_list) {
if (npc.IsMonster == true) continue;
if (npc is StardewValley.Monsters.Bat || npc is StardewValley.Monsters.BigSlime || npc is StardewValley.Monsters.Bug || npc is StardewValley.Monsters.Cat || npc is StardewValley.Monsters.Crow || npc is StardewValley.Monsters.Duggy || npc is StardewValley.Monsters.DustSpirit || npc is StardewValley.Monsters.Fireball || npc is StardewValley.Monsters.Fly || npc is StardewValley.Monsters.Ghost || npc is StardewValley.Monsters.GoblinPeasant || npc is StardewValley.Monsters.GoblinWizard || npc is StardewValley.Monsters.GreenSlime || npc is StardewValley.Monsters.Grub || npc is StardewValley.Monsters.LavaCrab || npc is StardewValley.Monsters.MetalHead || npc is StardewValley.Monsters.Monster || npc is StardewValley.Monsters.Mummy || npc is StardewValley.Monsters.RockCrab || npc is StardewValley.Monsters.RockGolem || npc is StardewValley.Monsters.Serpent || npc is StardewValley.Monsters.ShadowBrute || npc is StardewValley.Monsters.ShadowGirl || npc is StardewValley.Monsters.ShadowGuy || npc is StardewValley.Monsters.ShadowShaman || npc is StardewValley.Monsters.Skeleton || npc is StardewValley.Monsters.SkeletonMage || npc is StardewValley.Monsters.SkeletonWarrior || npc is StardewValley.Monsters.Spiker || npc is StardewValley.Monsters.SquidKid) continue;
Save_Anywhere_V2.Mod_Core.npc_path = Path.Combine(Save_Anywhere_V2.Mod_Core.player_path, "NPC_Save_Info");
if (!Directory.Exists(Save_Anywhere_V2.Mod_Core.npc_path))
{
Directory.CreateDirectory(Save_Anywhere_V2.Mod_Core.npc_path);
}
string mylocation = Path.Combine(Save_Anywhere_V2.Mod_Core.npc_path, npc.name);
string mylocation2 = mylocation;
string mylocation3 = mylocation2 + ".txt";
string[] mystring3 = new string[20];
if (!File.Exists(mylocation3))
{
Log.Info("Missing character file?!?");
continue;
}
else
{
string[] readtext = File.ReadAllLines(mylocation3);
npc_name = Convert.ToString(readtext[3]);
npc_current_map_name = Convert.ToString(readtext[5]);
npc_tile_x = Convert.ToInt32(readtext[7]);
npc_tile_y = Convert.ToInt32(readtext[9]);
npc_point = new Microsoft.Xna.Framework.Point();
npc_point.X = npc_tile_x;
npc_point.Y = npc_tile_y;
if (npc_current_map_name == "" || npc_current_map_name == null) continue;
Log.Info("Warped NPC" +npc_name);
Game1.warpCharacter((StardewValley.NPC)npc, npc_current_map_name, npc_point, false, true);
// npc.updateMovement(Game1.getLocationFromName(npc_current_map_name), Game1.currentGameTime);
//npc.moveCharacterOnSchedulePath();
// npc.dayUpdate(Game1.dayOfMonth);
//npc_update(npc, Game1.dayOfMonth);
// npc.DirectionsToNewLocation = pathfindToNextScheduleLocation(npc, npc.currentLocation.name, npc.getTileX(), npc.getTileY(), npc.currentLocation.name, 52, 99, 3, "", "");
// npc.updateMovement(npc.currentLocation,Game1.currentGameTime);
//npc.Schedule = npc.getSchedule(Game1.dayOfMonth);
//npc.moveCharacterOnSchedulePath();
}
}
Save_Anywhere_V2.Mod_Core.npc_warp = true;
}
private static Stack<Point> addToStackForSchedule(Stack<Point> original, Stack<Point> toAdd)
{
if (toAdd == null)
return original;
original = new Stack<Point>((IEnumerable<Point>)original);
while (original.Count > 0)
toAdd.Push(original.Pop());
return toAdd;
}
private static List<string> getLocationRoute(NPC npc, string startingLocation, string endingLocation)
{
foreach (List<string> list in routesFromLocationToLocation)
{
if (Enumerable.First<string>((IEnumerable<string>)list).Equals(startingLocation) && Enumerable.Last<string>((IEnumerable<string>)list).Equals(endingLocation) && (npc.gender == 0 || !list.Contains("BathHouse_MensLocker")) && (npc.gender != 0 || !list.Contains("BathHouse_WomensLocker")))
return list;
}
return (List<string>)null;
}
private static SchedulePathDescription pathfindToNextScheduleLocation(NPC npc,string startingLocation, int startingX, int startingY, string endingLocation, int endingX, int endingY, int finalFacingDirection, string endBehavior, string endMessage)
{
Stack<Point> stack = new Stack<Point>();
Point startPoint = new Point(startingX, startingY);
List<string> list = startingLocation.Equals(endingLocation) ? (List<string>)null : getLocationRoute(npc,startingLocation, endingLocation);
if (list != null)
{
for (int index = 0; index < Enumerable.Count<string>((IEnumerable<string>)list); ++index)
{
GameLocation locationFromName = Game1.getLocationFromName(list[index]);
if (index < Enumerable.Count<string>((IEnumerable<string>)list) - 1)
{
Point warpPointTo = locationFromName.getWarpPointTo(list[index + 1]);
if (warpPointTo.Equals(Point.Zero) || startPoint.Equals(Point.Zero))
throw new Exception("schedule pathing tried to find a warp point that doesn't exist.");
stack = addToStackForSchedule(stack, PathFindController.findPathForNPCSchedules(startPoint, warpPointTo, locationFromName, 30000));
startPoint = locationFromName.getWarpPointTarget(warpPointTo);
}
else
stack = addToStackForSchedule(stack, PathFindController.findPathForNPCSchedules(startPoint, new Point(endingX, endingY), locationFromName, 30000));
}
}
else if (startingLocation.Equals(endingLocation))
stack = PathFindController.findPathForNPCSchedules(startPoint, new Point(endingX, endingY), Game1.getLocationFromName(startingLocation), 30000);
return new SchedulePathDescription(stack, finalFacingDirection, endBehavior, endMessage);
}
}
}
using Microsoft.Xna.Framework;
using StardewModdingAPI;
using StardewValley;
using StardewValley.Buildings;
using StardewValley.Locations;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Save_Anywhere_V2.Save_Utilities
{
class NPC_Utilities
{
public static string npc_name;
public static int npc_tile_x;
public static int npc_tile_y;
public static string npc_current_map_name;
public static System.Collections.Generic.List<List<string>> routesFromLocationToLocation = new List<List<string>>();
public static Microsoft.Xna.Framework.Point npc_point;
public static void Save_NPC_Info()
{
Save_Anywhere_V2.Mod_Core.npc_path = Path.Combine(Save_Anywhere_V2.Mod_Core.player_path, "NPC_Save_Info");
if (!Directory.Exists(Save_Anywhere_V2.Mod_Core.npc_path))
{
Directory.CreateDirectory(Save_Anywhere_V2.Mod_Core.npc_path);
}
foreach (var location in Game1.locations)
{
foreach (var npc in location.characters)
{
if (npc.IsMonster == true) continue;
if (npc is StardewValley.Monsters.Bat || npc is StardewValley.Monsters.BigSlime || npc is StardewValley.Monsters.Bug || npc is StardewValley.Monsters.Cat || npc is StardewValley.Monsters.Crow || npc is StardewValley.Monsters.Duggy || npc is StardewValley.Monsters.DustSpirit || npc is StardewValley.Monsters.Fireball || npc is StardewValley.Monsters.Fly || npc is StardewValley.Monsters.Ghost || npc is StardewValley.Monsters.GoblinPeasant || npc is StardewValley.Monsters.GoblinWizard || npc is StardewValley.Monsters.GreenSlime || npc is StardewValley.Monsters.Grub || npc is StardewValley.Monsters.LavaCrab || npc is StardewValley.Monsters.MetalHead || npc is StardewValley.Monsters.Monster || npc is StardewValley.Monsters.Mummy || npc is StardewValley.Monsters.RockCrab || npc is StardewValley.Monsters.RockGolem || npc is StardewValley.Monsters.Serpent || npc is StardewValley.Monsters.ShadowBrute || npc is StardewValley.Monsters.ShadowGirl || npc is StardewValley.Monsters.ShadowGuy || npc is StardewValley.Monsters.ShadowShaman || npc is StardewValley.Monsters.Skeleton || npc is StardewValley.Monsters.SkeletonMage || npc is StardewValley.Monsters.SkeletonWarrior || npc is StardewValley.Monsters.Spiker || npc is StardewValley.Monsters.SquidKid) continue;
npc_name = npc.name;
npc_current_map_name = location.name;
npc_tile_x = npc.getTileX();
npc_tile_y = npc.getTileY();
string mylocation = Path.Combine(Save_Anywhere_V2.Mod_Core.npc_path, npc.name);
string mylocation2 = mylocation;
string mylocation3 = mylocation2 + ".txt";
string[] mystring3 = new string[20];
if (!File.Exists(mylocation3))
{
Log.Info("Save Anywhere: The NPC save info for " + npc_name + " doesn't exist. It will be created when the custom saving method is run. Which is now.");
//write out the info to a text file at the end of a day. This will run if it doesnt exist.
mystring3[0] = "NPC: Save_Anywhere Info. Editing this might break some things.";
mystring3[1] = "====================================================================================";
mystring3[2] = "NPC Name";
mystring3[3] = npc_name.ToString();
mystring3[4] = "NPC Current Map Name";
mystring3[5] = npc_current_map_name.ToString();
mystring3[6] = "NPC X Position";
mystring3[7] = npc_tile_x.ToString();
mystring3[8] = "NPC Y Position";
mystring3[9] = npc_tile_y.ToString();
File.WriteAllLines(mylocation3, mystring3);
}
else
{
// Console.WriteLine("The custom character save info doesn't exist. It will be created when the custom saving method is run. Which is now.");
//write out the info to a text file at the end of a day. This will run if it doesnt exist.
mystring3[0] = "NPC: Save_Anywhere Info. Editing this might break some things.";
mystring3[1] = "====================================================================================";
mystring3[2] = "NPC Current Map Name";
mystring3[3] = npc_name.ToString();
mystring3[4] = "NPC Current Map Name";
mystring3[5] = npc_current_map_name.ToString();
mystring3[6] = "NPC X Position";
mystring3[7] = npc_tile_x.ToString();
mystring3[8] = "NPC Y Position";
mystring3[9] = npc_tile_y.ToString();
File.WriteAllLines(mylocation3, mystring3);
}
}
}
}
public static void Load_NPC_Info()
{
List<NPC> npc_list = new List<NPC>();
foreach (var location in Game1.locations)
{
foreach (var npc in location.characters)
{
if (npc.IsMonster == true) continue;
if (npc is StardewValley.Monsters.Bat || npc is StardewValley.Monsters.BigSlime || npc is StardewValley.Monsters.Bug || npc is StardewValley.Monsters.Cat || npc is StardewValley.Monsters.Crow || npc is StardewValley.Monsters.Duggy || npc is StardewValley.Monsters.DustSpirit || npc is StardewValley.Monsters.Fireball || npc is StardewValley.Monsters.Fly || npc is StardewValley.Monsters.Ghost || npc is StardewValley.Monsters.GoblinPeasant || npc is StardewValley.Monsters.GoblinWizard || npc is StardewValley.Monsters.GreenSlime || npc is StardewValley.Monsters.Grub || npc is StardewValley.Monsters.LavaCrab || npc is StardewValley.Monsters.MetalHead || npc is StardewValley.Monsters.Monster || npc is StardewValley.Monsters.Mummy || npc is StardewValley.Monsters.RockCrab || npc is StardewValley.Monsters.RockGolem || npc is StardewValley.Monsters.Serpent || npc is StardewValley.Monsters.ShadowBrute || npc is StardewValley.Monsters.ShadowGirl || npc is StardewValley.Monsters.ShadowGuy || npc is StardewValley.Monsters.ShadowShaman || npc is StardewValley.Monsters.Skeleton || npc is StardewValley.Monsters.SkeletonMage || npc is StardewValley.Monsters.SkeletonWarrior || npc is StardewValley.Monsters.Spiker || npc is StardewValley.Monsters.SquidKid) continue;
if (npc is StardewValley.NPC || npc is StardewValley.Characters.Cat || npc is StardewValley.Characters.Dog) npc_list.Add(npc);
}
}
foreach(var npc in npc_list) {
if (npc.IsMonster == true) continue;
if (npc is StardewValley.Monsters.Bat || npc is StardewValley.Monsters.BigSlime || npc is StardewValley.Monsters.Bug || npc is StardewValley.Monsters.Cat || npc is StardewValley.Monsters.Crow || npc is StardewValley.Monsters.Duggy || npc is StardewValley.Monsters.DustSpirit || npc is StardewValley.Monsters.Fireball || npc is StardewValley.Monsters.Fly || npc is StardewValley.Monsters.Ghost || npc is StardewValley.Monsters.GoblinPeasant || npc is StardewValley.Monsters.GoblinWizard || npc is StardewValley.Monsters.GreenSlime || npc is StardewValley.Monsters.Grub || npc is StardewValley.Monsters.LavaCrab || npc is StardewValley.Monsters.MetalHead || npc is StardewValley.Monsters.Monster || npc is StardewValley.Monsters.Mummy || npc is StardewValley.Monsters.RockCrab || npc is StardewValley.Monsters.RockGolem || npc is StardewValley.Monsters.Serpent || npc is StardewValley.Monsters.ShadowBrute || npc is StardewValley.Monsters.ShadowGirl || npc is StardewValley.Monsters.ShadowGuy || npc is StardewValley.Monsters.ShadowShaman || npc is StardewValley.Monsters.Skeleton || npc is StardewValley.Monsters.SkeletonMage || npc is StardewValley.Monsters.SkeletonWarrior || npc is StardewValley.Monsters.Spiker || npc is StardewValley.Monsters.SquidKid) continue;
Save_Anywhere_V2.Mod_Core.npc_path = Path.Combine(Save_Anywhere_V2.Mod_Core.player_path, "NPC_Save_Info");
if (!Directory.Exists(Save_Anywhere_V2.Mod_Core.npc_path))
{
Directory.CreateDirectory(Save_Anywhere_V2.Mod_Core.npc_path);
}
string mylocation = Path.Combine(Save_Anywhere_V2.Mod_Core.npc_path, npc.name);
string mylocation2 = mylocation;
string mylocation3 = mylocation2 + ".txt";
string[] mystring3 = new string[20];
if (!File.Exists(mylocation3))
{
Log.Info("Missing character file?!?");
continue;
}
else
{
string[] readtext = File.ReadAllLines(mylocation3);
npc_name = Convert.ToString(readtext[3]);
npc_current_map_name = Convert.ToString(readtext[5]);
npc_tile_x = Convert.ToInt32(readtext[7]);
npc_tile_y = Convert.ToInt32(readtext[9]);
npc_point = new Microsoft.Xna.Framework.Point();
npc_point.X = npc_tile_x;
npc_point.Y = npc_tile_y;
if (npc_current_map_name == "" || npc_current_map_name == null) continue;
//Log.Info("Warped NPC" +npc_name);
Game1.warpCharacter((StardewValley.NPC)npc, npc_current_map_name, npc_point, false, true);
// npc.updateMovement(Game1.getLocationFromName(npc_current_map_name), Game1.currentGameTime);
//npc.moveCharacterOnSchedulePath();
// npc.dayUpdate(Game1.dayOfMonth);
//npc_update(npc, Game1.dayOfMonth);
// npc.DirectionsToNewLocation = pathfindToNextScheduleLocation(npc, npc.currentLocation.name, npc.getTileX(), npc.getTileY(), npc.currentLocation.name, 52, 99, 3, "", "");
// npc.updateMovement(npc.currentLocation,Game1.currentGameTime);
//npc.Schedule = npc.getSchedule(Game1.dayOfMonth);
//npc.moveCharacterOnSchedulePath();
}
}
Save_Anywhere_V2.Mod_Core.npc_warp = true;
}
private static Stack<Point> addToStackForSchedule(Stack<Point> original, Stack<Point> toAdd)
{
if (toAdd == null)
return original;
original = new Stack<Point>((IEnumerable<Point>)original);
while (original.Count > 0)
toAdd.Push(original.Pop());
return toAdd;
}
private static List<string> getLocationRoute(NPC npc, string startingLocation, string endingLocation)
{
foreach (List<string> list in routesFromLocationToLocation)
{
if (Enumerable.First<string>((IEnumerable<string>)list).Equals(startingLocation) && Enumerable.Last<string>((IEnumerable<string>)list).Equals(endingLocation) && (npc.gender == 0 || !list.Contains("BathHouse_MensLocker")) && (npc.gender != 0 || !list.Contains("BathHouse_WomensLocker")))
return list;
}
return (List<string>)null;
}
private static SchedulePathDescription pathfindToNextScheduleLocation(NPC npc,string startingLocation, int startingX, int startingY, string endingLocation, int endingX, int endingY, int finalFacingDirection, string endBehavior, string endMessage)
{
Stack<Point> stack = new Stack<Point>();
Point startPoint = new Point(startingX, startingY);
List<string> list = startingLocation.Equals(endingLocation) ? (List<string>)null : getLocationRoute(npc,startingLocation, endingLocation);
if (list != null)
{
for (int index = 0; index < Enumerable.Count<string>((IEnumerable<string>)list); ++index)
{
GameLocation locationFromName = Game1.getLocationFromName(list[index]);
if (index < Enumerable.Count<string>((IEnumerable<string>)list) - 1)
{
Point warpPointTo = locationFromName.getWarpPointTo(list[index + 1]);
if (warpPointTo.Equals(Point.Zero) || startPoint.Equals(Point.Zero))
throw new Exception("schedule pathing tried to find a warp point that doesn't exist.");
stack = addToStackForSchedule(stack, PathFindController.findPathForNPCSchedules(startPoint, warpPointTo, locationFromName, 30000));
startPoint = locationFromName.getWarpPointTarget(warpPointTo);
}
else
stack = addToStackForSchedule(stack, PathFindController.findPathForNPCSchedules(startPoint, new Point(endingX, endingY), locationFromName, 30000));
}
}
else if (startingLocation.Equals(endingLocation))
stack = PathFindController.findPathForNPCSchedules(startPoint, new Point(endingX, endingY), Game1.getLocationFromName(startingLocation), 30000);
return new SchedulePathDescription(stack, finalFacingDirection, endBehavior, endMessage);
}
}
}

View File

@ -1,80 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E17855AD-DBAF-49BD-B3E2-9899403252F6}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Save_Anywhere_V2</RootNamespace>
<AssemblyName>Save_Anywhere_V2</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553" />
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553" />
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Graphics.dll</HintPath>
</Reference>
<Reference Include="SerializerUtils">
<HintPath>..\..\..\..\..\Downloads\SerializerUtils\SerializerUtils.dll</HintPath>
</Reference>
<Reference Include="Stardew Valley">
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe</HintPath>
</Reference>
<Reference Include="StardewModdingAPI, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\Downloads\SMAPI-0.40.1.1-3\StardewModdingAPI.exe</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="xTile, Version=2.0.4.0, Culture=neutral, PublicKeyToken=null" />
</ItemGroup>
<ItemGroup>
<Compile Include="Animal_Utilities.cs" />
<Compile Include="Config_Utilities.cs" />
<Compile Include="Horse_Utility.cs" />
<Compile Include="Mod_Core.cs" />
<Compile Include="GameUtilities.cs" />
<Compile Include="New_Shipping_Menu.cs" />
<Compile Include="NPC_Utilities.cs" />
<Compile Include="Pet_Utilities.cs" />
<Compile Include="Player_Utilities.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E17855AD-DBAF-49BD-B3E2-9899403252F6}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Save_Anywhere_V2</RootNamespace>
<AssemblyName>Save_Anywhere_V2</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553" />
<Reference Include="Microsoft.Xna.Framework.Game, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553" />
<Reference Include="Microsoft.Xna.Framework.Graphics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.Graphics.dll</HintPath>
</Reference>
<Reference Include="Stardew Valley, Version=1.0.6124.25603, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\SerializerUtilRedux\SerializerUtils\bin\Debug\Stardew Valley.exe</HintPath>
</Reference>
<Reference Include="StardewModdingAPI, Version=0.40.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\SerializerUtilRedux\SerializerUtils\bin\Debug\StardewModdingAPI.exe</HintPath>
</Reference>
<Reference Include="StarDustCore">
<HintPath>..\..\OmegasisLIB\OmegasisLIB\bin\Debug\StarDustCore.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="xTile, Version=2.0.4.0, Culture=neutral, PublicKeyToken=null" />
</ItemGroup>
<ItemGroup>
<Compile Include="Animal_Utilities.cs" />
<Compile Include="Config_Utilities.cs" />
<Compile Include="Horse_Utility.cs" />
<Compile Include="Mod_Core.cs" />
<Compile Include="GameUtilities.cs" />
<Compile Include="New_Shipping_Menu.cs" />
<Compile Include="NPC_Utilities.cs" />
<Compile Include="Pet_Utilities.cs" />
<Compile Include="Player_Utilities.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -1,43 +1,45 @@
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Stardew Valley.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StardewModdingAPI.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Lidgren.Network.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Steamworks.NET.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.csprojResolveAssemblyReference.cache
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Stardew Valley.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StardewModdingAPI.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Lidgren.Network.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Steamworks.NET.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StardewModdingAPI.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.csprojResolveAssemblyReference.cache
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Stardew Valley.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StardewModdingAPI.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Lidgren.Network.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Steamworks.NET.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.csprojResolveAssemblyReference.cache
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Stardew Valley.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StardewModdingAPI.exe
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Lidgren.Network.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Steamworks.NET.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Game.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Graphics.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StardewModdingAPI.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.GamerServices.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Input.Touch.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\Microsoft.Xna.Framework.Xact.xml
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.csprojResolveAssemblyReference.cache
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\obj\Debug\Save_Anywhere_V2.pdb
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StarDustCore.dll
C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\StarDustCore.pdb

View File

@ -1,14 +0,0 @@
{
"Name": "Save Anywhere",
"Authour": "Alpha_Omegasis",
"Version": {
"MajorVersion": 2,
"MinorVersion": 0,
"PatchVersion": 0,
"Build": ""
},
"Description": "Allows the farmer to save almost anywhere.",
"UniqueID": "SaveAnywhere",
"PerSaveConfigs": false,
"EntryDll": "Save_Anywhere_V2.dll"
}

View File

@ -0,0 +1,14 @@
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("SerializerUtils")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SerializerUtils")]
[assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("f693749e-c232-4e6c-8857-884aea1e3fa9")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.0.0")]

View File

@ -0,0 +1,100 @@
// Decompiled with JetBrains decompiler
// Type: SerializerUtils.SerializerUtility
// Assembly: SerializerUtils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// MVID: 1302D1C7-A0C7-48FC-8C60-C8B9A49AF5B0
// Assembly location: C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\SerializerUtils.dll
using StardewModdingAPI;
using StardewModdingAPI.Events;
using StardewValley;
using StardewValley.Characters;
using StardewValley.Monsters;
using StardewValley.Quests;
using StardewValley.TerrainFeatures;
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
namespace SerializerUtils
{
public class SerializerUtility : Mod
{
protected static Type[] vanillaTypes = new Type[27]
{
typeof (Tool),
typeof (GameLocation),
typeof (Crow),
typeof (Duggy),
typeof (Bug),
typeof (BigSlime),
typeof (Fireball),
typeof (Ghost),
typeof (Child),
typeof (Pet),
typeof (Dog),
typeof (StardewValley.Characters.Cat),
typeof (Horse),
typeof (GreenSlime),
typeof (LavaCrab),
typeof (RockCrab),
typeof (ShadowGuy),
typeof (SkeletonMage),
typeof (SquidKid),
typeof (Grub),
typeof (Fly),
typeof (DustSpirit),
typeof (Quest),
typeof (MetalHead),
typeof (ShadowGirl),
typeof (Monster),
typeof (TerrainFeature)
};
public static Type[] vanillaFarmerTypes = new Type[1]
{
typeof (Tool)
};
public static List<Type> newTypes = new List<Type>();
public static List<Type> newFarmerTypes = new List<Type>()
{
typeof (Tool)
};
public override void Entry(params object[] objects)
{
GameEvents.GameLoaded += new EventHandler(SerializerUtility.Event_GameLoaded);
Command.RegisterCommand("include_types", "Includes types to serialize", (string[]) null).CommandFired += new EventHandler<EventArgsCommand>(SerializerUtility.Command_IncludeTypes);
}
public static void Command_IncludeTypes(object sender, EventArgsCommand e)
{
}
public static void Event_GameLoaded(object sender, EventArgs e)
{
Command.CallCommand("include_types");
SerializerUtility.InvokeSerializerOverride();
}
public static void InvokeSerializerOverride()
{
List<Type> list1 = new List<Type>();
list1.AddRange((IEnumerable<Type>) SerializerUtility.vanillaTypes);
list1.AddRange((IEnumerable<Type>) SerializerUtility.newTypes);
List<Type> list2 = new List<Type>();
list2.AddRange((IEnumerable<Type>) SerializerUtility.vanillaFarmerTypes);
list2.AddRange((IEnumerable<Type>) SerializerUtility.newFarmerTypes);
SaveGame.serializer = new XmlSerializer(typeof (SaveGame), list1.ToArray());
SaveGame.farmerSerializer = new XmlSerializer(typeof (Farmer), list2.ToArray());
}
public static void AddType(Type t)
{
SerializerUtility.newTypes.Add(t);
}
public static void AddFarmerType(Type t)
{
SerializerUtility.newFarmerTypes.Add(t);
}
}
}

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--Project was exported from assembly: C:\Users\owner\Documents\Visual Studio 2015\Projects\github\Stardew_Valley_Mods\Stardew_Valley_Mods\Save_Anywhere_V2\Save_Anywhere_V2\bin\Debug\SerializerUtils.dll-->
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{46953B23-37FC-4EC0-8A4A-B8B134B41105}</ProjectGuid>
<OutputType>Library</OutputType>
<AssemblyName>SerializerUtils</AssemblyName>
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
<ApplicationVersion>1.0.0.0</ApplicationVersion>
<FileAlignment>512</FileAlignment>
<RootNamespace>SerializerUtils</RootNamespace>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Stardew Valley">
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Stardew Valley.exe</HintPath>
</Reference>
<Reference Include="StardewModdingAPI">
<HintPath>..\..\..\..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\Stardew Valley\StardewModdingAPI.exe</HintPath>
</Reference>
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="SerializerUtility.cs" />
<Compile Include="AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,20 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SerializerUtils", "SerializerUtils.csproj", "{46953B23-37FC-4EC0-8A4A-B8B134B41105}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{46953B23-37FC-4EC0-8A4A-B8B134B41105}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{46953B23-37FC-4EC0-8A4A-B8B134B41105}.Debug|Any CPU.Build.0 = Debug|Any CPU
{46953B23-37FC-4EC0-8A4A-B8B134B41105}.Release|Any CPU.ActiveCfg = Release|Any CPU
{46953B23-37FC-4EC0-8A4A-B8B134B41105}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal