Update development environment for Mod Manager

This commit is contained in:
Ricardo Lopes 2020-05-20 22:52:27 +02:00
parent 37244f27ed
commit 41141948a8
3 changed files with 73 additions and 60 deletions

View File

@ -35,7 +35,7 @@
<HintPath>..\packages\Lib.Harmony.1.2.0.1\lib\net35\0Harmony.dll</HintPath>
</Reference>
<Reference Include="Assembly-CSharp">
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\Assembly-CSharp.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\Assembly-CSharp.dll</HintPath>
</Reference>
<Reference Include="NAudio-Unity, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\OWML.0.3.40\lib\net35\NAudio-Unity.dll</HintPath>
@ -68,36 +68,36 @@
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="UnityEngine">
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.AnimationModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.AnimationModule.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.AnimationModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.IMGUIModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.Networking">
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.Networking.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.Networking.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.PhysicsModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.PhysicsModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UI, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.UI.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.UI.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UIModule, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.UIModule.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.UIModule.dll</HintPath>
</Reference>
<Reference Include="UnityEngine.UNETModule">
<HintPath>$(StartWorkingDirectory)\..\OuterWilds_Data\Managed\UnityEngine.UNETModule.dll</HintPath>
<HintPath>$(GameDir)\OuterWilds_Data\Managed\UnityEngine.UNETModule.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
@ -143,16 +143,16 @@
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>md "$(StartWorkingDirectory)\Mods\$(ProjectName)"
md "$(StartWorkingDirectory)\Mods\$(ProjectName)\assets"
del "$(StartWorkingDirectory)\Mods\$(ProjectName)\config.json"
<PostBuildEvent>md "$(OwmlDir)\Mods\$(ProjectName)"
md "$(OwmlDir)\Mods\$(ProjectName)\assets"
del "$(OwmlDir)\Mods\$(ProjectName)\config.json"
copy /y "$(TargetPath)" "$(StartWorkingDirectory)\Mods\$(ProjectName)"
copy /y "$(TargetPath)" "$(OwmlDir)\Mods\$(ProjectName)"
copy /y "$(ProjectDir)\default-config.json" "$(StartWorkingDirectory)\Mods\$(ProjectName)"
copy /y "$(ProjectDir)\default-config.json" "$(OwmlDir)\Mods\$(ProjectName)"
copy /y "$(ProjectDir)\manifest.json" "$(StartWorkingDirectory)\Mods\$(ProjectName)"
copy /y "$(ProjectDir)\manifest.json" "$(OwmlDir)\Mods\$(ProjectName)"
copy /y "$(SolutionDir)\AssetBundles" "$(StartWorkingDirectory)\Mods\$(ProjectName)\assets"</PostBuildEvent>
copy /y "$(SolutionDir)\AssetBundles" "$(OwmlDir)\Mods\$(ProjectName)\assets"</PostBuildEvent>
</PropertyGroup>
</Project>
</Project>

View File

@ -1,12 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<StartWorkingDirectory>C:\Program Files\Epic Games\OuterWilds\OWML</StartWorkingDirectory>
</PropertyGroup>
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
<GameDir>C:\Program Files\Epic Games\OuterWilds</GameDir>
<OwmlDir>C:\Users\ricar\Repos\mod-installer\out\Outer Wilds Mod Manager-win32-x64\OWML</OwmlDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
<StartWorkingDirectory>C:\Program Files\Epic Games\OuterWilds\OWML</StartWorkingDirectory>
</PropertyGroup>
</Project>
</Project>

View File

@ -1,60 +1,78 @@
# Quantum Space Buddies - Outer Wilds Online Multiplayer Mod
<!-- TOC -->
- [Installation](#installation)
- [Easy installation (recommended)](#easy-installation-recommended)
- [Manual installation](#manual-installation)
- [Playing as a client](#playing-as-a-client)
- [Playing as a host](#playing-as-a-host)
- [Development Setup](#development-setup)
- [Authors](#authors)
- [Special thanks](#special-thanks)
- [Help / Discuss development / Whatever](#help--discuss-development--whatever)
<!-- /TOC -->
## Installation
* [Download OWML](https://github.com/amazingalek/owml/releases);
* [Follow OWML's instalation instructions](https://github.com/amazingalek/owml#installation);
* [Download the latest QSB release](https://github.com/Raicuparta/quantum-space-buddies/releases/latest);
* Extract the `QSB` directory to the `OWML/Mods` directory;
* Run `OWML.Launcher.exe` to start the game.
### Easy installation (recommended)
- [Install the Outer Wilds Mod Manager](https://github.com/Raicuparta/ow-mod-manager#how-do-i-use-this);
- Install Quantum Space Buddies from the mod list displayed in the application;
- If you can't get the mod manager to work, follow the instructions for manual installation.
### Manual installation
- [Install OWML](https://github.com/amazingalek/owml#installation);
- [Download the latest Quantum Space Buddies release](https://github.com/Raicuparta/quantum-space-buddies/releases/latest);
- Extract the `QSB` directory to the `OWML/Mods` directory;
- Run `OWML.Launcher.exe` to start the game.
## Playing as a client
* Run `OWML.Launcher.exe` to start the game;
* You'll see some new buttons on the top left;
* Replace `localhost` with the server's IP address;
* Press "LAN Client(C)";
* If you see "Stop (X)", you are connected.
- Run `OWML.Launcher.exe` to start the game;
- You'll see some new buttons on the top left;
- Replace `localhost` with the server's IP address;
- Press "LAN Client(C)";
- If you see "Stop (X)", you are connected.
## Playing as a host
* Open port `7777` on your router;
* Run `OWML.Launcher.exe` to start the game;
* You'll see some new buttons on the top left;
* Don't start the game (expedition) before starting the server;
* Press "LAN Host(H)";
* If you now see the "Stop (X)" button, you are serving;
* Give your external IPv4 address to your clients ([like what you see here](http://whatismyip.host/)).
- Open port `7777` on your router;
- Run `OWML.Launcher.exe` to start the game;
- You'll see some new buttons on the top left;
- Don't start the game (expedition) before starting the server;
- Press "LAN Host(H)";
- If you now see the "Stop (X)" button, you are serving;
- Give your external IPv4 address to your clients ([like what you see here](http://whatismyip.host/)).
## Development Setup
To get the project to run on Visual Studio and build correctly, you need to set this all up so the project can find its dependencies:
- [Download the Outer Wilds Mod Manager](https://github.com/Raicuparta/ow*mod*manager) and install it anywhere you like;
- Install OWML using the Mod Manager;
- Clone QSB's source;
- Open the file `QSB/QSB.csproj.user` in your favorite text editor;
- Edit the entry `<GameDir>` to point to the directory where Outer Wilds is installed;
- Edit the entry `<OwmlDir>` to point to your OWML directory (it is installed inside the Mod Manager directory);
- Open the project solution file `QSB.sln` in Visual Studio;
- If needed, right click `References` in the Solution Explorer > Manage NuGet Packages > Update OWML to fix missing references;
* [Install OWML](https://github.com/amazingalek/owml#installation) in the game's directory (should be something like `C:\Program Files\Epic Games\OuterWilds\OWML`);
* If you already have QSB installed, remove it from the `OWML/Mods` directory;
* Clone QSB's source;
* Open the project solution file `QSB.sln` in Visual Studio;
* On the Solution Explorer (usually the right side panel), under the project-name (NomaiVR), double click "Properties";
* Go to "Debug" and change "Working Directory" to **OWML's directory**;
* Do the same thing for all the other projects in the QSB solution;
* If needed, right click `References` in the Solution Explorer > Manage NuGet Packages > Update OWML to fix missing references;
* In the top menu go to "Project" > "Unload Project", and then "Project" > "Reload Project".
After doing this, the project references should be working. When you build the solution, the dll and json files will be copied to `OWML/Mods/QSB`, so you can start the game through OWML and test right away.
After doing this, the project references should be working. When you build the solution, the dll and json files will be copied to `[Mod Manager directory]/OWML/QSB`. If this process is successful, you should see the mod show up in the Mod Manager.
If for some reason none of this is working, you might have to set everything manually:
* To fix the build paths and automatically copy the files to OWML, edit the "Build Events" in the properties menu.
* To fix the references, right-click "References" in the Solution Explorer > "Add Reference", and add all the missing DLLs (references with yellow warning icon). You can find these DLLs in the game's directory (`OuterWilds\OuterWilds_Data\Managed`).
- To fix the references, right*click "References" in the Solution Explorer > "Add Reference", and add all the missing DLLs (references with yellow warning icon). You can find these DLLs in the game's directory (`OuterWilds\OuterWilds_Data\Managed`);
- If Visual Studio isn't able to automatically copy the files, you'll have to copy the built dlls manually to OWML.
## Authors
* [AmazingAlek](https://github.com/amazingalek)
* [Raicuparta](https://github.com/Raicuparta)
- [AmazingAlek](https://github.com/amazingalek)
- [Raicuparta](https://github.com/Raicuparta)
## Special thanks
* [Mister_Nebula](https://github.com/misternebula), for research
- [Mister_Nebula](https://github.com/misternebula), for research
## Help / Discuss development / Whatever