From 47e4f357bfdcdb1a257fbe3ec1d5756fd5ca4728 Mon Sep 17 00:00:00 2001 From: Aylong <69762909+AyIong@users.noreply.github.com> Date: Sun, 19 Jan 2025 20:06:49 +0200 Subject: [PATCH] Simplify module creation (#1019) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Что этот PR делает Упрощение создания модуля. По сути то что делал фуриор на пару, но с некоторыми улучшениями (Спасибо чатгпт xdd) - Модуль автоматом инклюдится в корневой `.dme`, при этом все инклюды модулей сортируются в алфавитном порядке - В папке модуля создаётся папка icons - В датуме модуля, фуриор заменяется на имя папки юзера ## Тестирование Я заебался удалять тестовые папки ## Summary by Sourcery New Features: - Add a script to simplify the creation of new modules for the project. --- modular_bandastation/create_modpack.bat | 29 +++++++++++++++++++ modular_bandastation/modular_bandastation.dme | 24 ++++++++------- 2 files changed, 42 insertions(+), 11 deletions(-) create mode 100644 modular_bandastation/create_modpack.bat diff --git a/modular_bandastation/create_modpack.bat b/modular_bandastation/create_modpack.bat new file mode 100644 index 0000000000000..432d7fff35f99 --- /dev/null +++ b/modular_bandastation/create_modpack.bat @@ -0,0 +1,29 @@ +@echo off +set /p moduleName="Enter module name: " +set "moduleName=%moduleName: =_%" + +xcopy "example" "%moduleName%" /s /i + +ren "%moduleName%\_example.dm" "_%moduleName%.dm" +ren "%moduleName%\_example.dme" "_%moduleName%.dme" +ren "%moduleName%\code\example.dm" "%moduleName%.dm" + +mkdir "%moduleName%\icons" + +Powershell -Command "(Get-Content '%moduleName%\_%moduleName%.dm') -replace 'Example modpack', '%moduleName%' | Set-Content '%moduleName%\_%moduleName%.dm'" +Powershell -Command "(Get-Content '%moduleName%\_%moduleName%.dm') -replace 'example', '%moduleName%' | Set-Content '%moduleName%\_%moduleName%.dm'" +Powershell -Command "(Get-Content '%moduleName%\_%moduleName%.dme') -replace 'Example modpack', '%moduleName%' | Set-Content '%moduleName%\_%moduleName%.dme'" +Powershell -Command "(Get-Content '%moduleName%\_%moduleName%.dme') -replace 'example', '%moduleName%' | Set-Content '%moduleName%\_%moduleName%.dme'" +Powershell -Command "(Get-Content '%moduleName%\_%moduleName%.dm') -replace 'furior', '%USERNAME%' | Set-Content '%moduleName%\_%moduleName%.dm'" + +Powershell -Command ^ + "$dmeFile = 'modular_bandastation.dme';" ^ + "$newInclude = '#include \"%moduleName%/_%moduleName%.dme\"';" ^ + "$lines = Get-Content $dmeFile;" ^ + "$startIndex = $lines.IndexOf('// --- MODULES START --- //') + 1;" ^ + "$endIndex = $lines.IndexOf('// --- MODULES END --- //');" ^ + "if ($startIndex -eq -1 -or $endIndex -eq -1) { Write-Host 'Error: Comments not found'; exit 1 }" ^ + "$before = $lines[0..($startIndex - 1)];" ^ + "$moduleLines = $lines[$startIndex..($endIndex - 1)] + $newInclude | Sort-Object;" ^ + "$after = $lines[($endIndex)..($lines.Length - 1)];" ^ + "Set-Content $dmeFile -Value ($before + $moduleLines + $after)" diff --git a/modular_bandastation/modular_bandastation.dme b/modular_bandastation/modular_bandastation.dme index f171704432e88..877348e573e6c 100644 --- a/modular_bandastation/modular_bandastation.dme +++ b/modular_bandastation/modular_bandastation.dme @@ -1,24 +1,26 @@ #include "_modpack.dm" #include "_modpacks.dm" +// --- MODULES START --- // #include "_defines220/_defines220.dme" #include "_helpers220/_helpers220.dme" #include "_rust_utils/_rust_utils.dme" #include "_signals220/_signals220.dme" #include "_singletons/_singletons.dme" -#include "title_screen/_title_screen.dme" #include "admin/_admin.dme" #include "aesthetics/_aesthetics.dme" #include "aesthetics_sounds/_aesthetics_sounds.dme" -#include "automapper/_automapper.dme" #include "ai_laws/_ai_laws.dme" #include "announcers/_announcers.dme" #include "autohiss/_autohiss.dme" +#include "automapper/_automapper.dme" +#include "automatic_crew_transfer/_automatic_crew_transfer.dme" #include "balance/_balance.dme" #include "barsigns/_barsigns.dme" #include "changelog/_changelog.dme" #include "chat_badges/_chat_badges.dme" #include "communication/_communication.dme" +#include "cryosleep/_cryosleep.dme" #include "customization/_customization.dme" #include "cyrillic_fixes/_cyrillic_fixes.dme" #include "database220/_database220.dme" @@ -26,31 +28,31 @@ #include "emote_panel/_emote_panel.dme" #include "examine_panel/_examine_panel.dme" #include "gunhud/_gunhud.dme" +#include "hydroponics/_hydroponics.dme" #include "jobs/_jobs.dme" +#include "jukebox/_jukebox.dme" #include "keybinding/_keybinding.dme" #include "loadout/_loadout.dme" #include "mapping/_mapping.dme" #include "medical/_medical.dme" #include "mobs/_mobs.dme" #include "nanomap/_nanomap.dme" +#include "objects/_objects.dme" +#include "orderables/_orderables.dme" +#include "outfits/_outfits.dme" +#include "overrides/_overrides.dme" #include "pixel_shift/_pixel_shift.dme" +#include "preferences/_preferences.dme" #include "ru_jobs/_ru_jobs.dme" #include "security_levels/_security_levels.dme" #include "species/_species.dme" +#include "title_screen/_title_screen.dme" #include "translations/_translations.dme" #include "tts/_tts.dme" #include "turfs/_turfs.dme" #include "whitelist220/_whitelist220.dme" #include "world_topics/_world_topics.dme" -#include "preferences/_preferences.dme" -#include "jukebox/_jukebox.dme" -#include "cryosleep/_cryosleep.dme" -#include "objects/_objects.dme" -#include "orderables/_orderables.dme" -#include "automatic_crew_transfer/_automatic_crew_transfer.dme" -#include "outfits/_outfits.dme" -#include "overrides/_overrides.dme" -#include "hydroponics/_hydroponics.dme" +// --- MODULES END --- // // --- PRIME --- //