forked from nikita/muzika-gromche
Drop CSync as a dependency from Release builds
Since the rewrite of track selection to a custom netcode, CSync is only needed for debug/development builds now.
This commit is contained in:
parent
4abd0fb612
commit
3d0795f04d
|
@ -41,6 +41,7 @@
|
||||||
<!--
|
<!--
|
||||||
Publicize internal methods, so we could generate config entries for tracks at runtime instead
|
Publicize internal methods, so we could generate config entries for tracks at runtime instead
|
||||||
of generating code at compile time. See https://github.com/lc-sigurd/CSync/issues/11
|
of generating code at compile time. See https://github.com/lc-sigurd/CSync/issues/11
|
||||||
|
It is an optional dependency now, but there is no sane way to mark it as such.
|
||||||
-->
|
-->
|
||||||
<PackageReference Include="Sigurd.BepInEx.CSync" Version="5.0.1" Publicize="true" PrivateAssets="all" Private="false" />
|
<PackageReference Include="Sigurd.BepInEx.CSync" Version="5.0.1" Publicize="true" PrivateAssets="all" Private="false" />
|
||||||
<PackageReference Include="AinaVT-LethalConfig" Version="1.4.6" PrivateAssets="all" Private="false" />
|
<PackageReference Include="AinaVT-LethalConfig" Version="1.4.6" PrivateAssets="all" Private="false" />
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
using BepInEx;
|
using BepInEx;
|
||||||
using BepInEx.Configuration;
|
using BepInEx.Configuration;
|
||||||
using CSync.Extensions;
|
|
||||||
using CSync.Lib;
|
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using LethalConfig;
|
using LethalConfig;
|
||||||
using LethalConfig.ConfigItems;
|
using LethalConfig.ConfigItems;
|
||||||
|
@ -21,10 +19,17 @@ using Unity.Netcode;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Networking;
|
using UnityEngine.Networking;
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
|
using CSync.Extensions;
|
||||||
|
using CSync.Lib;
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace MuzikaGromche
|
namespace MuzikaGromche
|
||||||
{
|
{
|
||||||
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
|
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
|
||||||
|
#if DEBUG
|
||||||
[BepInDependency("com.sigurd.csync", "5.0.1")]
|
[BepInDependency("com.sigurd.csync", "5.0.1")]
|
||||||
|
#endif
|
||||||
[BepInDependency("ainavt.lc.lethalconfig", "1.4.6")]
|
[BepInDependency("ainavt.lc.lethalconfig", "1.4.6")]
|
||||||
[BepInDependency("watergun.v72lightfix", BepInDependency.DependencyFlags.SoftDependency)]
|
[BepInDependency("watergun.v72lightfix", BepInDependency.DependencyFlags.SoftDependency)]
|
||||||
[BepInDependency("BMX.LobbyCompatibility", BepInDependency.DependencyFlags.HardDependency)]
|
[BepInDependency("BMX.LobbyCompatibility", BepInDependency.DependencyFlags.HardDependency)]
|
||||||
|
@ -1433,6 +1438,7 @@ namespace MuzikaGromche
|
||||||
readonly public int TotalWeights { get; }
|
readonly public int TotalWeights { get; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
static class SyncedEntryExtensions
|
static class SyncedEntryExtensions
|
||||||
{
|
{
|
||||||
// Update local values on clients. Even though the clients couldn't
|
// Update local values on clients. Even though the clients couldn't
|
||||||
|
@ -1445,8 +1451,12 @@ namespace MuzikaGromche
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
class Config : SyncedConfig2<Config>
|
class Config
|
||||||
|
#if DEBUG
|
||||||
|
: SyncedConfig2<Config>
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
public static ConfigEntry<bool> DisplayLyrics { get; private set; } = null!;
|
public static ConfigEntry<bool> DisplayLyrics { get; private set; } = null!;
|
||||||
|
|
||||||
|
@ -1469,7 +1479,10 @@ namespace MuzikaGromche
|
||||||
public static float? ColorTransitionOutOverride { get; private set; } = null;
|
public static float? ColorTransitionOutOverride { get; private set; } = null;
|
||||||
public static string? ColorTransitionEasingOverride { get; private set; } = null;
|
public static string? ColorTransitionEasingOverride { get; private set; } = null;
|
||||||
|
|
||||||
internal Config(ConfigFile configFile) : base(PluginInfo.PLUGIN_GUID)
|
internal Config(ConfigFile configFile)
|
||||||
|
#if DEBUG
|
||||||
|
: base(PluginInfo.PLUGIN_GUID)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
DisplayLyrics = configFile.Bind("General", "Display Lyrics", true,
|
DisplayLyrics = configFile.Bind("General", "Display Lyrics", true,
|
||||||
new ConfigDescription("Display lyrics in the HUD tooltip when you hear the music."));
|
new ConfigDescription("Display lyrics in the HUD tooltip when you hear the music."));
|
||||||
|
@ -1537,9 +1550,12 @@ namespace MuzikaGromche
|
||||||
LethalConfigManager.AddConfigItem(new IntSliderConfigItem(track.Weight, Default(new IntSliderOptions())));
|
LethalConfigManager.AddConfigItem(new IntSliderConfigItem(track.Weight, Default(new IntSliderOptions())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
ConfigManager.Register(this);
|
ConfigManager.Register(this);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
// HACK because CSync doesn't provide an API to register a list of config entries
|
// HACK because CSync doesn't provide an API to register a list of config entries
|
||||||
// See https://github.com/lc-sigurd/CSync/issues/11
|
// See https://github.com/lc-sigurd/CSync/issues/11
|
||||||
private void CSyncHackAddSyncedEntry(SyncedEntryBase entryBase)
|
private void CSyncHackAddSyncedEntry(SyncedEntryBase entryBase)
|
||||||
|
@ -1547,6 +1563,7 @@ namespace MuzikaGromche
|
||||||
// This is basically what ConfigFile.PopulateEntryContainer does
|
// This is basically what ConfigFile.PopulateEntryContainer does
|
||||||
EntryContainer.Add(entryBase.BoxedEntry.ToSyncedEntryIdentifier(), entryBase);
|
EntryContainer.Add(entryBase.BoxedEntry.ToSyncedEntryIdentifier(), entryBase);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
public static CanModifyResult CanModifyIfHost()
|
public static CanModifyResult CanModifyIfHost()
|
||||||
{
|
{
|
||||||
|
@ -1582,6 +1599,7 @@ namespace MuzikaGromche
|
||||||
return CanModifyResult.True();
|
return CanModifyResult.True();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if DEBUG
|
||||||
private void SetupEntriesToSkipWinding(ConfigFile configFile)
|
private void SetupEntriesToSkipWinding(ConfigFile configFile)
|
||||||
{
|
{
|
||||||
var syncedEntry = configFile.BindSyncedEntry("General", "Skip Winding Phase", false,
|
var syncedEntry = configFile.BindSyncedEntry("General", "Skip Winding Phase", false,
|
||||||
|
@ -1789,6 +1807,7 @@ namespace MuzikaGromche
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
private T Default<T>(T options) where T : BaseOptions
|
private T Default<T>(T options) where T : BaseOptions
|
||||||
{
|
{
|
||||||
|
|
|
@ -9,7 +9,7 @@ To keep it a surprise, it is adviced that you do not read the detailed descripti
|
||||||
|
|
||||||
Muzika Gromche is compatible with *Almost Vanilla™* gameplay and [*High Quota Mindset*](https://youtu.be/18RUCgQldGg?t=2553). It slightly changes certain timers, so won't be compatible with leaderboards. If you are a streamer™, be aware that it does play *copyrighted content.*
|
Muzika Gromche is compatible with *Almost Vanilla™* gameplay and [*High Quota Mindset*](https://youtu.be/18RUCgQldGg?t=2553). It slightly changes certain timers, so won't be compatible with leaderboards. If you are a streamer™, be aware that it does play *copyrighted content.*
|
||||||
|
|
||||||
Muzika Gromche works with all Lethal Company versions from v72 all the way back to v40, and is likely to work on all future versions as long as dependencies ([`CSync`] and [`LethalConfig`]) are working.
|
Muzika Gromche works with all Lethal Company versions from v72 all the way back to v40, and is likely to work on all future versions as long as dependencies ([`LethalConfig`] and [`LobbyCompatibility`]) are working.
|
||||||
|
|
||||||
Speaking of dependencies, [`V70PoweredLights_Fix`] is not strictly required, but it doesn't hurt to have it installed on any version, and it makes this mod more enjoyable on new Mansion tiles.
|
Speaking of dependencies, [`V70PoweredLights_Fix`] is not strictly required, but it doesn't hurt to have it installed on any version, and it makes this mod more enjoyable on new Mansion tiles.
|
||||||
|
|
||||||
|
@ -38,4 +38,5 @@ Any player can change their personal preferences locally.
|
||||||
|
|
||||||
[`CSync`]: https://thunderstore.io/c/lethal-company/p/Sigurd/CSync/
|
[`CSync`]: https://thunderstore.io/c/lethal-company/p/Sigurd/CSync/
|
||||||
[`LethalConfig`]: https://thunderstore.io/c/lethal-company/p/AinaVT/LethalConfig/
|
[`LethalConfig`]: https://thunderstore.io/c/lethal-company/p/AinaVT/LethalConfig/
|
||||||
|
[`LobbyCompatibility`]: https://thunderstore.io/c/lethal-company/p/BMX/LobbyCompatibility/
|
||||||
[`V70PoweredLights_Fix`]: https://thunderstore.io/c/lethal-company/p/WaterGun/V70PoweredLights_Fix/
|
[`V70PoweredLights_Fix`]: https://thunderstore.io/c/lethal-company/p/WaterGun/V70PoweredLights_Fix/
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
"website_url": "https://git.vilunov.me/ratijas/muzika-gromche",
|
"website_url": "https://git.vilunov.me/ratijas/muzika-gromche",
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
"BepInEx-BepInExPack-5.4.2100",
|
"BepInEx-BepInExPack-5.4.2100",
|
||||||
"Sigurd-CSync-5.0.1",
|
|
||||||
"AinaVT-LethalConfig-1.4.6",
|
"AinaVT-LethalConfig-1.4.6",
|
||||||
"WaterGun-V70PoweredLights_Fix-1.0.0",
|
"WaterGun-V70PoweredLights_Fix-1.0.0",
|
||||||
"BMX-LobbyCompatibility-1.5.1"
|
"BMX-LobbyCompatibility-1.5.1"
|
||||||
|
|
Loading…
Reference in New Issue