Skip to content

Commit

Permalink
Merge pull request #968 from MrCat15352/refactoring_moular
Browse files Browse the repository at this point in the history
REFACTORING: Изменена логика дефайнов
  • Loading branch information
MysticalFaceLesS authored Sep 20, 2024
2 parents 4e4d9a9 + 81a98f1 commit 9e1ddd5
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 71 deletions.
57 changes: 30 additions & 27 deletions mod_celadon/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,37 @@

# Модуляризация

### Если вы не будете следовать этому руководству, то с большой вероятностью ваш PR будет отклонён (или нет).
### Если вы не будете следовать этому руководству, то с большой вероятностью ваш PR будет отклонён.

<details>
<summary><b>Содержание документа</b></summary>

- [Модуляризация](#модуляризация)
- [Введение](#введение)
- [Тестите PRы!](#тестите-prы)
- [Природа конфликтов](#природа-конфликтов)
- [Решение](#Решение)
- [Введение](#введение)
- [Тестите PRы!](#тестите-prы)
- [Природа конфликтов](#природа-конфликтов)
- [Решение](#решение)
- [Руководство по модуляризации](#руководство-по-модуляризации)
- [Модпаки](#модпаки)
- [Создание модпака](#создание-модпака)
- [Структура модпака](#структура-модпака)
- [Быстрое создание основы мода](#быстрое-создание-основы-мода)
- [Назначение каждого из файлов](#назначение-каждого-из-файлов)
- [Папки `code/`, `icons/`, `sounds/`, `maps/`](#папки-code-icons-sounds-maps)
- [Комментирование кода мода - Не делай этого!](#комментирование-кода-мода---не-делай-этого)
- [Папка `_master_files`](#папка-_master_files)
- [Оверрайды](#оверрайды)
- [Ассеты: Изображения, иконки, звуки и другие бинарные файлы](#ассеты-изображения-иконки-звуки-и-другие-бинарные-файлы)
- [Код: Модульные изменения](#код-модульные-изменения)
- [Код: Немодульные изменения](#код-немодульные-изменения)
- [NanoUI](#nanoui)
- [Исключительные случаи](#исключительные-случаи)
- [Дефайны (`#define`)](#дефайны-define)
- [Модпаки](#модпаки)
- [Создание модпака](#создание-модпака)
- [Структура модпака](#структура-модпака)
- [Быстрое создание основы мода](#быстрое-создание-основы-мода)
- [Автоматически](#автоматически)
- [Вручную](#вручную)
- [Включение модпака в билд](#включение-модпака-в-билд)
- [Назначение каждого из файлов](#назначение-каждого-из-файлов)
- [Файл `README.md`](#файл-readmemd)
- [Файл `_hello_world.dm`](#файл-_hello_worlddm)
- [Файл `_hello_world.dme`](#файл-_hello_worlddme)
- [Папки `code/`, `icons/`, `sounds/`, `maps/`](#папки-code-icons-sounds-maps)
- [Комментирование кода мода - Не делай этого!](#комментирование-кода-мода---не-делай-этого)
- [Папка `_master_files`](#папка-_master_files)
- [Оверрайды](#оверрайды)
- [Ассеты: Изображения, иконки, звуки и другие бинарные файлы](#ассеты-изображения-иконки-звуки-и-другие-бинарные-файлы)
- [Код: Модульные изменения](#код-модульные-изменения)
- [Код: Немодульные изменения](#код-немодульные-изменения)
- [Исключительные случаи](#исключительные-случаи)
- [Дефайны (`#define`)](#дефайны-define)

</details>

Expand Down Expand Up @@ -171,6 +176,9 @@ mod_celadon/_storge_sounds
- Скопировать в папку `mod_celadon/hello_world/` все файлы из [`/mod_celadon/_example/`](/mod_celadon/_example/).
- Переименовать `example.dme` и `example.dm` в `_hello_world.dme` и `_hello_world.dm`.

### Включение модпака в билд
После того как модпак будет создан или сделан, его необходимо включить в главном файле `mod_celadon.dme` модульной папки! Именно в ней прописываются все пути до всех файлов с расширением `.dme`.

### Назначение каждого из файлов
#### Файл `README.md`
В нём содержатся:
Expand Down Expand Up @@ -326,19 +334,14 @@ mod_celadon/_storge_sounds
return 1
```

## NanoUI
Новый интерфейс необходимо создавать в папке `nano/templates/mod_celadon`. Для редактирования существующего - создать там его копию и включить в игру с помощью мода/модулярного изменения.

Для подключения интерфейса из этой папки, нужно к названию файла добавить префикс `mod_celadon-`.

То есть для файла `nano/templates/mod_celadon/jukebox.tmpl` при открытии интерфейса нужно использовать название `"mod_celadon-jukebox.tmpl"` вместо обычного `"jukebox.tmpl"`.

## Исключительные случаи
Из каждого правила есть исключения, обусловленные многими обстоятельствами. Не задумывайся об этом сильно.

## Дефайны (`#define`)
Из-за того, как BYOND загружает файлы, есть необходимость существования отдельной папки для хранения дефайнов модов. Эта папка - `code/__defines/~mod_celadon/`, в которой ты можешь создать новый файл, либо дописать код в существующий.

Все пути до дефайнов должны быть прописаны в файле `mod_defines.dme`!

Если у тебя есть `#define`, который используется более чем в одном файле, он должен быть объявлен именно здесь.

Если `#define` используется только в одном файле и больше нигде не будет использоваться, объяви его вверху, а в самом низу файла допиши `#undef MY_DEFINE`. Это делается для того, чтобы контекстные меню при разработке оставались чистыми, а также для предотвращения путаницы у тех, кто использует IDE с автозаполнением.
63 changes: 32 additions & 31 deletions mod_celadon/mod_celadon.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2,73 +2,74 @@
#include "_modpacks.dm"


// #include "example/_example.dme"
// Соблюдаем алфавитный порядок при добавлении путей!
// Пример пути: #include "example/_example.dme"

// --- MAINTENANCE --- //
#include "_components/__components.dme"
#include "_storge_sounds/_storge_sounds.dme"
#include "_storge_icons/_storge_icons.dme"
#include "accents_add/_accents_add.dme"
#include "access/_access.dme"
#include "achievements/_achievements.dme"
#include "areas/_areas.dme"
#include "faction/_faction.dme"
#include "fov/_fov.dme"
#include "subtler/_subtler.dme"
#include "radio_syndicate/_radio_syndicate.dme"
#include "ghost_roles/_ghost_roles.dme"
#include "ipc_chassis/_ipc_chassis.dme"
#include "qol/_qol.dme"
#include "loadout/_loadout.dme"
#include "accents_add/_accents_add.dme"
#include "areas/_areas.dme"
#include "map_expansion/_map_expansion.dme"
#include "faction/_faction.dme"
#include "qol/_qol.dme"
#include "radio_syndicate/_radio_syndicate.dme"
#include "repairs_other/_repairs_other.dme"
#include "achievements/_achievements.dme"
#include "access/_access.dme"
#include "ghost_roles/_ghost_roles.dme"
#include "subtler/_subtler.dme"

// --- ICONS --- //
#include "species_changes/_species_changes.dme"
#include "resprite/_resprite.dme"
#include "parallax/_parallax.dme"
#include "resprite/_resprite.dme"
#include "species_changes/_species_changes.dme"
#include "stuff_solfed/_solfed_stuff.dme"

// --- SOUNDS --- //
#include "lobby_celadon/_lobby_celadon.dme"

// --- OBJECTS --- //
#include "barsigns/_barsigns.dme"
#include "boarding/_boarding.dme"
#include "bongs/_bongs.dme"
#include "cargo_items/_cargo_items.dme"
#include "stuff_elysium/_stuff_elysium.dme"
#include "celadon_old_syndicate_rigs/_celadon_old_syndicate_rigs.dme"
#include "structures/_structures.dme"
#include "stuff_inteq/_stuff_inteq.dme"
#include "tajara/_tajara.dme"
#include "weapons/_weapons.dme"
#include "bongs/_bongs.dme"
#include "research/_research.dme"
#include "mechas/_mechas.dme"
#include "items/_items.dme"
#include "effects/_effects.dme"
#include "elysiumpod/_elysiumpod.dme"
#include "flora/_flora.dme"
#include "musician/_musician.dme"
#include "food_and_drinks/_food_and_drinks.dme"
#include "items/_items.dme"
#include "mechas/_mechas.dme"
#include "moniq/_moniq.dme"
#include "musician/_musician.dme"
#include "pizzamat/_pizzamat.dme"
#include "barsigns/_barsigns.dme"
#include "repair_weebstick/_repair_weebstick.dme"
#include "research/_research.dme"
#include "sauna/_sauna.dme"
#include "stamps/_stamps.dme"
#include "structures/_structures.dme"
#include "stuff_elysium/_stuff_elysium.dme"
#include "stuff_gamma/_stuff_gamma.dme"
#include "stuff_inteq/_stuff_inteq.dme"
#include "tajara/_tajara.dme"
#include "turrets/_turrets.dme"
#include "sauna/_sauna.dme"
#include "effects/_effects.dme"
#include "repair_weebstick/_repair_weebstick.dme"
#include "elysiumpod/_elysiumpod.dme"
#include "boarding/_boarding.dme"
#include "moniq/_moniq.dme"
#include "weapons/_weapons.dme"

// --- MOBS --- //
#include "mobs/_mobs.dme"
#include "drakeborgs/_drakeborgs.dme"
#include "mobs/_mobs.dme"

// --- MISC --- //
#include "ai_laws/_ai_laws.dme"
#include "balance/_balance.dme"
#include "fixes/_fixes.dme"
#include "ipc_surgery/_ipc_surgery.dme"
#include "robotic_honk/_robotic_honk.dme"
#include "ai_laws/_ai_laws.dme"
#include "wideband/_wideband.dme"

// --- RETURNS --- //
Expand Down
19 changes: 19 additions & 0 deletions mod_celadon/mod_defines.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Включает пути до наших дефайнов

// ..\ - указывает на уровень выше каталога
// Все дефайны файлы помещаем по пути code\__DEFINES\~mod_celadon
// Тут указываем путь до нашего файла с дефайном!

#include "..\code\__DEFINES\~mod_celadon\access.dm"
#include "..\code\__DEFINES\~mod_celadon\map.dm"
#include "..\code\__DEFINES\~mod_celadon\achievements.dm"
#include "..\code\__DEFINES\~mod_celadon\fov.dm"
#include "..\code\__DEFINES\~mod_celadon\game.dm"
#include "..\code\__DEFINES\~mod_celadon\helpers.dm"
#include "..\code\__DEFINES\~mod_celadon\names.dm"
#include "..\code\__DEFINES\~mod_celadon\roaches.dm"
#include "..\code\__DEFINES\~mod_celadon\sarathi.dm"
#include "..\code\__DEFINES\~mod_celadon\structures.dm"
#include "..\code\__DEFINES\~mod_celadon\tajara.dm"
#include "..\code\__DEFINES\~mod_celadon\time.dm"
#include "..\code\__DEFINES\~mod_celadon\traits.dm"
14 changes: 1 addition & 13 deletions shiptest.dme
Original file line number Diff line number Diff line change
Expand Up @@ -161,19 +161,6 @@
#include "code\__DEFINES\wires.dm"
#include "code\__DEFINES\dcs\flags.dm"
#include "code\__DEFINES\dcs\helpers.dm"
#include "code\__DEFINES\~mod_celadon\access.dm"
#include "code\__DEFINES\~mod_celadon\map.dm"
#include "code\__DEFINES\~mod_celadon\achievements.dm"
#include "code\__DEFINES\~mod_celadon\fov.dm"
#include "code\__DEFINES\~mod_celadon\game.dm"
#include "code\__DEFINES\~mod_celadon\helpers.dm"
#include "code\__DEFINES\~mod_celadon\names.dm"
#include "code\__DEFINES\~mod_celadon\roaches.dm"
#include "code\__DEFINES\~mod_celadon\sarathi.dm"
#include "code\__DEFINES\~mod_celadon\structures.dm"
#include "code\__DEFINES\~mod_celadon\tajara.dm"
#include "code\__DEFINES\~mod_celadon\time.dm"
#include "code\__DEFINES\~mod_celadon\traits.dm"
#include "code\__DEFINES\dcs\signals\signals_mod.dm"
#include "code\__DEFINES\dcs\signals\signals_storage.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_carbon.dm"
Expand All @@ -188,6 +175,7 @@
#include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_aquarium.dm"
#include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_machinery.dm"
#include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_supermatter.dm"
#include "mod_celadon\mod_defines.dme"
#include "code\__HELPERS\_auxtools_api.dm"
#include "code\__HELPERS\_lists.dm"
#include "code\__HELPERS\_logging.dm"
Expand Down

0 comments on commit 9e1ddd5

Please sign in to comment.