From e9018ae2ad60afd030158c67a2a6e492fcdf9ef3 Mon Sep 17 00:00:00 2001 From: HypoxiE Date: Tue, 15 Jul 2025 01:39:58 +0300 Subject: [PATCH] Getting back to basics --- .gitignore | 7 +-- About/PublishedFileId.txt | 1 - Assemblies/AddMyMusicMod.dll | Bin 8704 -> 0 bytes DLLSourceCode/AddMyMusicMod.csproj | 24 -------- DLLSourceCode/test.cs | 88 ----------------------------- add_my_music.bat | 59 +++++++++---------- 6 files changed, 30 insertions(+), 149 deletions(-) delete mode 100644 About/PublishedFileId.txt delete mode 100644 Assemblies/AddMyMusicMod.dll delete mode 100644 DLLSourceCode/AddMyMusicMod.csproj delete mode 100644 DLLSourceCode/test.cs diff --git a/.gitignore b/.gitignore index e02fc88..e1d9979 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,2 @@ -.vdf -DLLSourceCode/**/*.dll -DLLSourceCode/bin/* -DLLSourceCode/obj/* -DLLSourceCode/References/* +Defs/ +Sounds/ \ No newline at end of file diff --git a/About/PublishedFileId.txt b/About/PublishedFileId.txt deleted file mode 100644 index d7c8706..0000000 --- a/About/PublishedFileId.txt +++ /dev/null @@ -1 +0,0 @@ -3523549667 \ No newline at end of file diff --git a/Assemblies/AddMyMusicMod.dll b/Assemblies/AddMyMusicMod.dll deleted file mode 100644 index 196d26b09c978794d5016ee739194bc0b0923724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8704 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 - - netstandard2.1 - - - - - References/0Harmony.dll - - - References/Assembly-CSharp.dll - - - References/UnityEngine.dll - - - References/UnityEngine.CoreModule.dll - - - - - - - \ No newline at end of file diff --git a/DLLSourceCode/test.cs b/DLLSourceCode/test.cs deleted file mode 100644 index e084ba9..0000000 --- a/DLLSourceCode/test.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.IO; -using System.Diagnostics; -using Verse; - -[StaticConstructorOnStartup] -public static class CopyDefsAtStartup -{ - static CopyDefsAtStartup() - { - try - { - - string localPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); - string localLowPath = Path.Combine(Path.GetDirectoryName(localPath), "LocalLow"); - - string songsGameplayXMLSourcePath = Path.Combine(localLowPath, @"Ludeon Studios\RimWorld by Ludeon Studios\AddMyMusic_data\Songs_Gameplay.xml"); - string songsDBSourcePath = Path.Combine(localLowPath, @"Ludeon Studios\RimWorld by Ludeon Studios\AddMyMusic_data\music_is_here"); - - string modDefsDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Mods", "custom_music", "Defs", "SongDefs"); - string modSoundsDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Mods", "custom_music", "Sounds", "Gameplay"); - - if (!Directory.Exists(modDefsDir)) - Directory.CreateDirectory(modDefsDir); - - string modDefsPath = Path.Combine(modDefsDir, "Songs_Gameplay.xml"); - - - if (File.Exists(songsGameplayXMLSourcePath)) - { - bool symlinkCreated = SymlinkHelper.CreateDirectorySymlink(modSoundsDir, songsDBSourcePath); - File.Copy(songsGameplayXMLSourcePath, modDefsPath, true); - Log.Message("[MyMod] Songs_Gameplay.xml скопирован в папку мода."); - } - else - { - Log.Warning("[MyMod] Исходный файл Songs_Gameplay.xml не найден."); - } - - } - catch (Exception e) - { - Log.Error("[MyMod] Ошибка при копировании Songs_Gameplay.xml: " + e); - } - } -} - -public static class SymlinkHelper -{ - public static bool CreateDirectorySymlink(string linkPath, string targetPath) - { - try - { - var psi = new ProcessStartInfo("cmd.exe", $"mklink /D \"{linkPath}\" \"{targetPath}\"") - { - FileName = "cmd.exe", - Arguments = $"/c mklink /D \"{linkPath}\" \"{targetPath}\"", - RedirectStandardOutput = true, - RedirectStandardError = true, - UseShellExecute = false, - CreateNoWindow = true, - Verb = "runas" - }; - - using var process = Process.Start(psi); - process.WaitForExit(); - - string output = process.StandardOutput.ReadToEnd(); - string error = process.StandardError.ReadToEnd(); - - if (process.ExitCode == 0) - { - Log.Message($"Symlink создан: {output}"); - return true; - } - else - { - Log.Error($"Ошибка создания symlink: {error}"); - return false; - } - } - catch (Exception e) - { - Log.Error($"Exception: {e}"); - return false; - } - } -} diff --git a/add_my_music.bat b/add_my_music.bat index 5fb7cca..fca4634 100644 --- a/add_my_music.bat +++ b/add_my_music.bat @@ -3,47 +3,44 @@ echo This command will completely overwrite the Songs_Gameplay.xml file of this pause setlocal enabledelayedexpansion +set "Songs_Gameplay_XML_path=Defs\SongDefs" -set "localappdata=%USERPROFILE%\AppData\LocalLow" -set "mod_user_dir=%localappdata%\Ludeon Studios\RimWorld by Ludeon Studios\AddMyMusic_data" -if not exist "%mod_user_dir%" mkdir "%mod_user_dir%" - -set "music_database=%mod_user_dir%\music_is_here" -if not exist "%music_database%" mkdir "%music_database%" +set "music_path=Sounds\Gameplay" chcp 65001 -echo ^ > "%mod_user_dir%\Songs_Gameplay.xml" -echo ^ >> "%mod_user_dir%\Songs_Gameplay.xml" +echo ^ > "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" +echo ^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" -for %%f in ("%music_database%\*") do ( +for %%f in ("%music_path%\*") do ( set sound_name=%%~nf - echo ^ >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^!sound_name!^ >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^Gameplay/!sound_name!^ >> "%mod_user_dir%\Songs_Gameplay.xml" - echo. >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^<^^!--The probability of music appearing in the game--^> >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^1.0^ >> "%mod_user_dir%\Songs_Gameplay.xml" - echo. >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^<^^!--Music volume--^> >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^1.0^ >> "%mod_user_dir%\Songs_Gameplay.xml" - echo. >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^<^^!--If true, it only plays in a combat situation--^> >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^false^ >> "%mod_user_dir%\Songs_Gameplay.xml" - echo. >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^<^^!--If you want to limit the time of day, delete '^<^^!- -' and '- -^>' of the desired option--^> >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^<^^!--^Day^--^> >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^<^^!--^Night^--^> >> "%mod_user_dir%\Songs_Gameplay.xml" - echo. >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^<^^!--Listing the seasons in which this song is played--^> >> "%mod_user_dir%\Songs_Gameplay.xml" - echo ^ ^Winter^^Spring^^Summer^^Fall^ ^ >> "%mod_user_dir%\Songs_Gameplay.xml" + echo ^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^!sound_name!^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^Gameplay/!sound_name!^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo. >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^<^^!--The probability of music appearing in the game--^> >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^1.0^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo. >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^<^^!--Music volume--^> >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^1.0^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo. >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^<^^!--If true, it only plays in a combat situation--^> >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^false^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo. >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^<^^!--If you want to limit the time of day, delete '^<^^!- -' and '- -^>' of the desired option--^> >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^<^^!--^Day^--^> >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^<^^!--^Night^--^> >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo. >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^<^^!--Listing the seasons in which this song is played--^> >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo ^ ^Winter^^Spring^^Summer^^Fall^ ^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" - echo ^ >> "%mod_user_dir%\Songs_Gameplay.xml" - echo. >> "%mod_user_dir%\Songs_Gameplay.xml" + echo ^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo. >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" + echo Added !sound_name! ) -echo ^ >> "%mod_user_dir%\Songs_Gameplay.xml" +echo ^ >> "%Songs_Gameplay_XML_path%\Songs_Gameplay.xml" echo Songs_Gameplay.xml overwritten. After restarting the game, music will be added. pause \ No newline at end of file