Add project files.
This commit is contained in:
25
BoneSync.sln
Normal file
25
BoneSync.sln
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.9.34616.47
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BoneSync", "BoneSync\BoneSync.csproj", "{C33921DC-5778-4EEC-A2D0-E0AE522CC701}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{C33921DC-5778-4EEC-A2D0-E0AE522CC701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C33921DC-5778-4EEC-A2D0-E0AE522CC701}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C33921DC-5778-4EEC-A2D0-E0AE522CC701}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C33921DC-5778-4EEC-A2D0-E0AE522CC701}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {1DEC2C55-48C4-4AD3-A203-AE46BDB62FF3}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
61
BoneSync/BoneSync.csproj
Normal file
61
BoneSync/BoneSync.csproj
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" 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>{C33921DC-5778-4EEC-A2D0-E0AE522CC701}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>BoneSync</RootNamespace>
|
||||||
|
<AssemblyName>BoneSync</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<Deterministic>true</Deterministic>
|
||||||
|
<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>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</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>
|
||||||
|
<Prefer32Bit>false</Prefer32Bit>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="MelonLoader">
|
||||||
|
<HintPath>..\..\..\..\AppData\Roaming\r2modmanPlus-local\BONEWORKS\profiles\aaaa\MelonLoader\MelonLoader.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.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="MelonLoaderMod.cs" />
|
||||||
|
<Compile Include="Networking\PacketBase.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Networking\ByteEncoder.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Networking\Packets\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<PostBuildEvent>COPY "$(TargetPath)" "C:\Program Files (x86)\Steam\steamapps\common\BONEWORKS\BONEWORKS\Mods"</PostBuildEvent>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
66
BoneSync/MelonLoaderMod.cs
Normal file
66
BoneSync/MelonLoaderMod.cs
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
using MelonLoader;
|
||||||
|
|
||||||
|
namespace BoneSync
|
||||||
|
{
|
||||||
|
public static class BuildInfo
|
||||||
|
{
|
||||||
|
public const string Name = "BoneSync"; // Name of the Mod. (MUST BE SET)
|
||||||
|
public const string Author = null; // Author of the Mod. (Set as null if none)
|
||||||
|
public const string Company = null; // Company that made the Mod. (Set as null if none)
|
||||||
|
public const string Version = "1.0.0"; // Version of the Mod. (MUST BE SET)
|
||||||
|
public const string DownloadLink = null; // Download Link for the Mod. (Set as null if none)
|
||||||
|
}
|
||||||
|
|
||||||
|
public class BoneSync : MelonMod
|
||||||
|
{
|
||||||
|
public override void OnApplicationStart()
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnApplicationStart");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnLevelWasLoaded: " + sceneName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnSceneWasInitialized(int buildIndex, string sceneName)
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnLevelWasInitialized: " + sceneName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnSceneWasUnloaded(int buildIndex, string sceneName)
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnLevelWasLoaded: " + sceneName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnUpdate()
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnUpdate");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnFixedUpdate()
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnFixedUpdate");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnLateUpdate()
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnLateUpdate");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnGUI()
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnGUI");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnApplicationQuit()
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnApplicationQuit");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnPreferencesLoaded()
|
||||||
|
{
|
||||||
|
MelonLogger.Msg("OnPreferencesLoaded");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
104
BoneSync/Networking/ByteEncoder.cs
Normal file
104
BoneSync/Networking/ByteEncoder.cs
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BoneSync.Networking
|
||||||
|
{
|
||||||
|
internal class ByteEncoder
|
||||||
|
{
|
||||||
|
public List<byte> Data;
|
||||||
|
public ByteEncoder()
|
||||||
|
{
|
||||||
|
Data = new List<byte>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ByteEncoder(byte[] data)
|
||||||
|
{
|
||||||
|
Data = data.ToList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] ToArray()
|
||||||
|
{
|
||||||
|
return Data.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteByte(byte value)
|
||||||
|
{
|
||||||
|
Data.Add(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteBytes(byte[] value)
|
||||||
|
{
|
||||||
|
Data.AddRange(value);
|
||||||
|
}
|
||||||
|
public byte[] ReadBytes(int count)
|
||||||
|
{
|
||||||
|
byte[] value = Data.GetRange(0, count).ToArray();
|
||||||
|
Data.RemoveRange(0, count);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte ReadByte()
|
||||||
|
{
|
||||||
|
byte value = Data[0];
|
||||||
|
Data.RemoveAt(0);
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteInt(int value)
|
||||||
|
{
|
||||||
|
WriteBytes(BitConverter.GetBytes(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
public int ReadInt()
|
||||||
|
{
|
||||||
|
return BitConverter.ToInt32(ReadBytes(sizeof(int)), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteLong(long value)
|
||||||
|
{
|
||||||
|
WriteBytes(BitConverter.GetBytes(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
public long ReadLong()
|
||||||
|
{
|
||||||
|
return BitConverter.ToInt64(ReadBytes(sizeof(long)), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteFloat(float value)
|
||||||
|
{
|
||||||
|
WriteBytes(BitConverter.GetBytes(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
public float ReadFloat()
|
||||||
|
{
|
||||||
|
return BitConverter.ToSingle(ReadBytes(sizeof(float)), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteDouble(double value)
|
||||||
|
{
|
||||||
|
WriteBytes(BitConverter.GetBytes(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
public double ReadDouble()
|
||||||
|
{
|
||||||
|
return BitConverter.ToDouble(ReadBytes(sizeof(double)), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WriteString(string value)
|
||||||
|
{
|
||||||
|
byte[] bytes = Encoding.UTF8.GetBytes(value);
|
||||||
|
WriteInt(bytes.Length);
|
||||||
|
WriteBytes(bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ReadString()
|
||||||
|
{
|
||||||
|
int length = ReadInt();
|
||||||
|
return Encoding.UTF8.GetString(ReadBytes(length));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
60
BoneSync/Networking/PacketBase.cs
Normal file
60
BoneSync/Networking/PacketBase.cs
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace BoneSync.Networking
|
||||||
|
{
|
||||||
|
public enum PacketType
|
||||||
|
{
|
||||||
|
LobbyInfo = 0,
|
||||||
|
}
|
||||||
|
internal struct PacketInfo
|
||||||
|
{
|
||||||
|
public int id;
|
||||||
|
public int senderId;
|
||||||
|
public int receiverId;
|
||||||
|
public PacketType packetType;
|
||||||
|
|
||||||
|
public PacketInfo(int id, int senderId, int receiverId, PacketType packetType)
|
||||||
|
{
|
||||||
|
this.id = id;
|
||||||
|
this.senderId = senderId;
|
||||||
|
this.receiverId = receiverId;
|
||||||
|
this.packetType = packetType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
internal abstract class PacketBase
|
||||||
|
{
|
||||||
|
|
||||||
|
public PacketInfo Info;
|
||||||
|
public ByteEncoder Encoder;
|
||||||
|
|
||||||
|
public void OnReceive(byte[] bytes)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void ParseInfo()
|
||||||
|
{
|
||||||
|
Info = new PacketInfo();
|
||||||
|
Info.id = Encoder.ReadInt();
|
||||||
|
Info.senderId = Encoder.ReadInt();
|
||||||
|
Info.receiverId = Encoder.ReadInt();
|
||||||
|
Info.packetType = (PacketType)Encoder.ReadInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WriteInfo()
|
||||||
|
{
|
||||||
|
Encoder.WriteInt(Info.id);
|
||||||
|
Encoder.WriteInt(Info.senderId);
|
||||||
|
Encoder.WriteInt(Info.receiverId);
|
||||||
|
Encoder.WriteInt((int)Info.packetType);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal abstract void ParseData();
|
||||||
|
internal abstract void WriteData();
|
||||||
|
}
|
||||||
|
}
|
||||||
25
BoneSync/Properties/AssemblyInfo.cs
Normal file
25
BoneSync/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Resources;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using MelonLoader;
|
||||||
|
|
||||||
|
[assembly: AssemblyTitle(BoneSync.BuildInfo.Name)]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany(BoneSync.BuildInfo.Company)]
|
||||||
|
[assembly: AssemblyProduct(BoneSync.BuildInfo.Name)]
|
||||||
|
[assembly: AssemblyCopyright("Created by " + BoneSync.BuildInfo.Author)]
|
||||||
|
[assembly: AssemblyTrademark(BoneSync.BuildInfo.Company)]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
//[assembly: Guid("")]
|
||||||
|
[assembly: AssemblyVersion(BoneSync.BuildInfo.Version)]
|
||||||
|
[assembly: AssemblyFileVersion(BoneSync.BuildInfo.Version)]
|
||||||
|
[assembly: NeutralResourcesLanguage("en")]
|
||||||
|
[assembly: MelonInfo(typeof(BoneSync.BoneSync), BoneSync.BuildInfo.Name, BoneSync.BuildInfo.Version, BoneSync.BuildInfo.Author, BoneSync.BuildInfo.DownloadLink)]
|
||||||
|
|
||||||
|
|
||||||
|
// Create and Setup a MelonModGame to mark a Mod as Universal or Compatible with specific Games.
|
||||||
|
// If no MelonModGameAttribute is found or any of the Values for any MelonModGame on the Mod is null or empty it will be assumed the Mod is Universal.
|
||||||
|
// Values for MelonModGame can be found in the Game's app.info file or printed at the top of every log directly beneath the Unity version.
|
||||||
|
[assembly: MelonGame(null, null)]
|
||||||
Reference in New Issue
Block a user