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 | ||||
|             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="AinaVT-LethalConfig" Version="1.4.6" PrivateAssets="all" Private="false" /> | ||||
|  |  | |||
|  | @ -1,7 +1,5 @@ | |||
| using BepInEx; | ||||
| using BepInEx.Configuration; | ||||
| using CSync.Extensions; | ||||
| using CSync.Lib; | ||||
| using HarmonyLib; | ||||
| using LethalConfig; | ||||
| using LethalConfig.ConfigItems; | ||||
|  | @ -21,10 +19,17 @@ using Unity.Netcode; | |||
| using UnityEngine; | ||||
| using UnityEngine.Networking; | ||||
| 
 | ||||
| #if DEBUG | ||||
| using CSync.Extensions; | ||||
| using CSync.Lib; | ||||
| #endif | ||||
| 
 | ||||
| namespace MuzikaGromche | ||||
| { | ||||
|     [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)] | ||||
| #if DEBUG | ||||
|     [BepInDependency("com.sigurd.csync", "5.0.1")] | ||||
| #endif | ||||
|     [BepInDependency("ainavt.lc.lethalconfig", "1.4.6")] | ||||
|     [BepInDependency("watergun.v72lightfix", BepInDependency.DependencyFlags.SoftDependency)] | ||||
|     [BepInDependency("BMX.LobbyCompatibility", BepInDependency.DependencyFlags.HardDependency)] | ||||
|  | @ -1433,6 +1438,7 @@ namespace MuzikaGromche | |||
|         readonly public int TotalWeights { get; } | ||||
|     } | ||||
| 
 | ||||
| #if DEBUG | ||||
|     static class SyncedEntryExtensions | ||||
|     { | ||||
|         // 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!; | ||||
| 
 | ||||
|  | @ -1469,7 +1479,10 @@ namespace MuzikaGromche | |||
|         public static float? ColorTransitionOutOverride { 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, | ||||
|                 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()))); | ||||
|             } | ||||
| 
 | ||||
| #if DEBUG | ||||
|             ConfigManager.Register(this); | ||||
| #endif | ||||
|         } | ||||
| 
 | ||||
| #if DEBUG | ||||
|         // HACK because CSync doesn't provide an API to register a list of config entries | ||||
|         // See https://github.com/lc-sigurd/CSync/issues/11 | ||||
|         private void CSyncHackAddSyncedEntry(SyncedEntryBase entryBase) | ||||
|  | @ -1547,6 +1563,7 @@ namespace MuzikaGromche | |||
|             // This is basically what ConfigFile.PopulateEntryContainer does | ||||
|             EntryContainer.Add(entryBase.BoxedEntry.ToSyncedEntryIdentifier(), entryBase); | ||||
|         } | ||||
| #endif | ||||
| 
 | ||||
|         public static CanModifyResult CanModifyIfHost() | ||||
|         { | ||||
|  | @ -1582,6 +1599,7 @@ namespace MuzikaGromche | |||
|             return CanModifyResult.True(); | ||||
|         } | ||||
| 
 | ||||
| #if DEBUG | ||||
|         private void SetupEntriesToSkipWinding(ConfigFile configFile) | ||||
|         { | ||||
|             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 | ||||
|         { | ||||
|  |  | |||
|  | @ -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 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. | ||||
| 
 | ||||
|  | @ -38,4 +38,5 @@ Any player can change their personal preferences locally. | |||
| 
 | ||||
| [`CSync`]: https://thunderstore.io/c/lethal-company/p/Sigurd/CSync/ | ||||
| [`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/ | ||||
|  |  | |||
|  | @ -6,7 +6,6 @@ | |||
|     "website_url": "https://git.vilunov.me/ratijas/muzika-gromche", | ||||
|     "dependencies": [ | ||||
|         "BepInEx-BepInExPack-5.4.2100", | ||||
|         "Sigurd-CSync-5.0.1", | ||||
|         "AinaVT-LethalConfig-1.4.6", | ||||
|         "WaterGun-V70PoweredLights_Fix-1.0.0", | ||||
|         "BMX-LobbyCompatibility-1.5.1" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue