Compare commits
49 Commits
Author | SHA1 | Date |
---|---|---|
|
1cdbdf2f09 | |
|
45a73793fb | |
|
581d9701bd | |
|
49ac86e6f9 | |
|
0f8ab1a75b | |
|
dda00ce228 | |
|
39a8255532 | |
|
b7eb4ce60b | |
|
d6a2bf21b1 | |
|
730f125d62 | |
|
8e065d3e51 | |
|
2a33457661 | |
|
0fbf0b04f4 | |
|
0c5d4f7158 | |
|
9e066372c5 | |
|
ca977625db | |
|
7d1cac6e2e | |
|
2229fa3545 | |
|
118eecbb59 | |
|
b8824dbbfb | |
|
3e751c0d8d | |
|
601ecf8887 | |
|
d13c617895 | |
|
e1f19b3919 | |
|
ba0162b3e1 | |
|
ed8804b7a7 | |
|
9be9eaaf80 | |
|
0683a18491 | |
|
6204888453 | |
|
c15637b347 | |
|
42c1f29a16 | |
|
8a193fa408 | |
|
4ee20adea7 | |
|
2df7d28d43 | |
|
43d1565dbe | |
|
f5dab20d67 | |
|
38cfb5f5e7 | |
|
b86c50a848 | |
|
694bc61dae | |
|
909efa720f | |
|
a8761bf679 | |
|
ad77530b6d | |
|
34d8da1562 | |
|
b73c7ee3cb | |
|
0d4f180a37 | |
|
829c44e347 | |
|
b15e93ac34 | |
|
f158e7728c | |
|
2b42899779 |
Binary file not shown.
Binary file not shown.
BIN
Assets/DeployDestroyLoop.mp3 (Stored with Git LFS)
BIN
Assets/DeployDestroyLoop.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/DeployDestroyStart.mp3 (Stored with Git LFS)
BIN
Assets/DeployDestroyStart.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/DurochkaLoop.mp3 (Stored with Git LFS)
BIN
Assets/DurochkaLoop.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/DurochkaStart.mp3 (Stored with Git LFS)
BIN
Assets/DurochkaStart.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Assets/GorgorodLoop.mp3 (Stored with Git LFS)
BIN
Assets/GorgorodLoop.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/GorgorodStart.mp3 (Stored with Git LFS)
BIN
Assets/GorgorodStart.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Assets/MoyaZhittyaLoop.mp3 (Stored with Git LFS)
BIN
Assets/MoyaZhittyaLoop.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/MoyaZhittyaStart.mp3 (Stored with Git LFS)
BIN
Assets/MoyaZhittyaStart.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/MuzikaGromcheLoop.mp3 (Stored with Git LFS)
BIN
Assets/MuzikaGromcheLoop.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/MuzikaGromcheStart.mp3 (Stored with Git LFS)
BIN
Assets/MuzikaGromcheStart.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Assets/VseVZaleLoop.mp3 (Stored with Git LFS)
BIN
Assets/VseVZaleLoop.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
BIN
Assets/VseVZaleStart.mp3 (Stored with Git LFS)
BIN
Assets/VseVZaleStart.mp3 (Stored with Git LFS)
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,23 @@
|
|||
# Changelog
|
||||
|
||||
## MuzikaGromche 13.37.911 - Sri Lanka Bus hotfix
|
||||
|
||||
- Fixed certain event sometimes not working due to wrong method call.
|
||||
- Added support for pre-v70 Mansion Main tile.
|
||||
|
||||
## MuzikaGromche 13.37.420 - Sri Lanka Bus Edition
|
||||
|
||||
Completely rewritten by Ratijas, with tons of new content.
|
||||
|
||||
- Added lots of new tracks.
|
||||
- Fixed gaps in old tracks.
|
||||
- New code synchronizes light show to the beat.
|
||||
- Timings, animation curves, color palettes and events fine-tuned for each track by visual artist [Just Nothing](https://t.me/REALJUSTNOTHING).
|
||||
- Configurable Audio Delay for those with Bluetooth headset.
|
||||
- Configurable chance of randomly choosing each tracks.
|
||||
- Added lyrics to *some* of the tracks, and a configuration toggle.
|
||||
- Certain tiles are patched by [WaterGun](https://www.youtube.com/channel/UCCxCFfmrnqkFZ8i9FsXBJVA) to add some visual flare.
|
||||
|
||||
## MuzikaGromche 13.37.6 - Christmas Special
|
||||
|
||||
Last known version released by Oflor. Added special timed content for New Year and Christmas.
|
|
@ -2,9 +2,13 @@
|
|||
<Project>
|
||||
<PropertyGroup>
|
||||
<!-- Copy this file to MuzikaGromche.props.user and uncomment one of two paths below: -->
|
||||
|
||||
<!-- On Linux: -->
|
||||
<!-- <LethalCompanyDir>$(HOME)/.local/share/Steam/steamapps/common/Lethal Company/</LethalCompanyDir> -->
|
||||
<!-- <WavExportDir>\home\ratijas\Music\SFX\Export</WavExportDir> -->
|
||||
|
||||
<!-- On Windows: -->
|
||||
<!-- <LethalCompanyDir>C:/Program Files (x86)/Steam/steamapps/common/Lethal Company/</LethalCompanyDir> -->
|
||||
<!-- <WavExportDir>D:\Code\MuzikaGromcheAudio\Export</WavExportDir> -->
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
using DunGen;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using UnityEngine;
|
||||
|
||||
namespace MuzikaGromche
|
||||
{
|
||||
public class DiscoBallManager : MonoBehaviour
|
||||
{
|
||||
// A struct holding a disco ball container object and the name of a tile for which it was designed.
|
||||
public readonly record struct Data(string TileName, GameObject DiscoBallContainer)
|
||||
{
|
||||
// We are specifically looking for cloned tiles, not the original prototypes.
|
||||
public readonly string TileCloneName = $"{TileName}(Clone)";
|
||||
}
|
||||
|
||||
public static readonly List<Data> Containers = [];
|
||||
private static readonly List<GameObject> InstantiatedContainers = [];
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
string assetdir = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "muzikagromche");
|
||||
var bundle = AssetBundle.LoadFromFile(assetdir);
|
||||
|
||||
foreach ((string prefabPath, string tileName) in new[] {
|
||||
("Assets/LethalCompany/Mods/MuzikaGromche/DiscoBallContainerManor.prefab", "ManorStartRoomSmall"),
|
||||
("Assets/LethalCompany/Mods/MuzikaGromche/DiscoBallContainerManorOLD.prefab", "ManorStartRoom"),
|
||||
("Assets/LethalCompany/Mods/MuzikaGromche/DiscoBallContainerFactory.prefab", "StartRoom"),
|
||||
("Assets/LethalCompany/Mods/MuzikaGromche/DiscoBallContainerMineShaft.prefab", "MineshaftStartTile"),
|
||||
("Assets/LethalCompany/Mods/MuzikaGromche/DiscoBallContainerLargeForkTileB.prefab", "LargeForkTileB"),
|
||||
("Assets/LethalCompany/Mods/MuzikaGromche/DiscoBallContainerBirthdayRoomTile.prefab", "BirthdayRoomTile"),
|
||||
})
|
||||
{
|
||||
var container = bundle.LoadAsset<GameObject>(prefabPath);
|
||||
Containers.Add(new(tileName, container));
|
||||
}
|
||||
}
|
||||
|
||||
public static void Enable()
|
||||
{
|
||||
// Just in case
|
||||
Disable();
|
||||
|
||||
var query = from tile in Resources.FindObjectsOfTypeAll<Tile>()
|
||||
join container in Containers
|
||||
on tile.gameObject.name equals container.TileCloneName
|
||||
select (tile, container);
|
||||
|
||||
foreach (var (tile, container) in query)
|
||||
{
|
||||
Enable(tile, container);
|
||||
}
|
||||
}
|
||||
|
||||
private static readonly string[] animatorNames = [
|
||||
"DiscoBallProp/AnimContainer",
|
||||
"DiscoBallProp1/AnimContainer",
|
||||
"DiscoBallProp2/AnimContainer",
|
||||
"DiscoBallProp3/AnimContainer",
|
||||
"DiscoBallProp4/AnimContainer",
|
||||
"DiscoBallProp5/AnimContainer",
|
||||
];
|
||||
|
||||
private static void Enable(Tile tile, Data container)
|
||||
{
|
||||
Debug.Log($"{nameof(MuzikaGromche)} {nameof(DiscoBallManager)} Enabling at '{tile.gameObject.name}'");
|
||||
var discoBall = Instantiate(container.DiscoBallContainer, tile.transform);
|
||||
InstantiatedContainers.Add(discoBall);
|
||||
|
||||
foreach (var animatorName in animatorNames)
|
||||
{
|
||||
if (discoBall.transform.Find(animatorName)?.gameObject is GameObject animator)
|
||||
{
|
||||
animator.GetComponent<Animator>().SetBool("on", true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void Disable()
|
||||
{
|
||||
foreach (var discoBall in InstantiatedContainers)
|
||||
{
|
||||
Debug.Log($"{nameof(MuzikaGromche)} {nameof(DiscoBallManager)}: Disabling {discoBall.name}");
|
||||
Destroy(discoBall);
|
||||
}
|
||||
InstantiatedContainers.Clear();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,7 +4,7 @@
|
|||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
<AssemblyName>MuzikaGromche</AssemblyName>
|
||||
<Description>Opa che tut u nas</Description>
|
||||
<Version>13.37.6</Version>
|
||||
<Version>13.37.911</Version>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<LangVersion>latest</LangVersion>
|
||||
</PropertyGroup>
|
||||
|
@ -49,6 +49,7 @@
|
|||
<PackagedResources Include="$(SolutionDir)README.md" />
|
||||
<PackagedResources Include="$(SolutionDir)icon.png" />
|
||||
<PackagedResources Include="$(SolutionDir)manifest.json" />
|
||||
<PackagedResources Include="$(ProjectDir)UnityAssets\muzikagromche" />
|
||||
<PackagedResources Include="$(TargetDir)MuzikaGromche.dll" />
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -73,4 +74,18 @@
|
|||
DestinationFolder="$(SolutionDir)dist\"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Usage:
|
||||
Set WavExportDir in props.user file.
|
||||
Run
|
||||
> dotnet msbuild /t:wav2ogg /p:TrackName=GodMode
|
||||
-->
|
||||
<Target Name="wav2ogg">
|
||||
<ItemGroup>
|
||||
<TrackNames Include="$(TrackName)Start" />
|
||||
<TrackNames Include="$(TrackName)Loop" />
|
||||
</ItemGroup>
|
||||
<Exec Command="ffmpeg -bitexact -y -i $(WavExportDir)%(TrackNames.Identity).wav $(SolutionDir)Assets\%(TrackNames.Identity).ogg"/>
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
37
README.md
37
README.md
|
@ -1 +1,36 @@
|
|||
Adds some content to your reverse teleports on Titan
|
||||
# Muzika Gromche!
|
||||
|
||||
Add some content to your reverse teleport experience on Titan!
|
||||
This mod's name literally means "cranck music louder".
|
||||
To keep it a surprise, it is adviced that you do not read the detailed description below.
|
||||
|
||||
## Compatibility
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
## Configuration
|
||||
|
||||
Configuration integrates with [`LethalConfig`] mod.
|
||||
|
||||
Track selection options are only configurable by host player and only while orbiting.
|
||||
|
||||
Any player can change their personal preferences locally.
|
||||
- If you experience severe lags, try disabling color animations in config.
|
||||
- If you are playing with a Bluetooth headset, adjust Audio Offset to -0.2 seconds.
|
||||
- Display Lyrics toggle: show lyrics in a popup whenever player hears music.
|
||||
|
||||
## Authors & Special Thanks
|
||||
|
||||
- Oflor: Original author, wrote the code and sliced the first tracks.
|
||||
- [Ratijas](https://t.me/ratijas): Rewrote the code to sync the lights to the beat, added configuration options and many features, fixed gaps in existing tracks and sliced many new ones.
|
||||
- [Just Nothing](https://t.me/REALJUSTNOTHING): Visual artist; contributed palettes, timings and animation curves.
|
||||
- [WaterGun](https://www.youtube.com/channel/UCCxCFfmrnqkFZ8i9FsXBJVA): Created [`V70PoweredLights_Fix`] mod, patched certain tiles with amazing lightshow.
|
||||
|
||||
|
||||
[`CSync`]: https://thunderstore.io/c/lethal-company/p/Sigurd/CSync/
|
||||
[`LethalConfig`]: https://thunderstore.io/c/lethal-company/p/AinaVT/LethalConfig/
|
||||
[`V70PoweredLights_Fix`]: https://thunderstore.io/c/lethal-company/p/WaterGun/V70PoweredLights_Fix/
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
{
|
||||
"name": "MuzikaGromche",
|
||||
"version_number": "13.37.6",
|
||||
"version_number": "13.37.911",
|
||||
"author": "Oflor",
|
||||
"description": "Glaza zakryvaj",
|
||||
"website_url": "https://git.vilunov.me/nikita/muzika-gromche",
|
||||
"dependencies": [
|
||||
"BepInEx-BepInExPack-5.4.2100",
|
||||
"Sigurd-CSync-5.0.1",
|
||||
"ainavt.lc.lethalconfig-1.4.6"
|
||||
"AinaVT-LethalConfig-1.4.6",
|
||||
"WaterGun-V70PoweredLights_Fix-1.0.0"
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue