Add technical documentation structure

This commit is contained in:
sokol
2026-02-21 10:26:23 +03:00
parent ec3da03bba
commit c80afaaeaa
5 changed files with 862 additions and 0 deletions

165
docs/tech/core.md Normal file
View File

@@ -0,0 +1,165 @@
# Ядро игры (Core)
Базовые классы и структуры данных, используемые во всём проекте.
## Обзор
Модуль `MyBiz.Core` содержит фундаментальные классы для представления игровых сущностей.
📂 **Код:** [`backend/src/MyBiz.Core/`](../../backend/src/MyBiz.Core/)
---
## Классы
### ProductType
Конфигурация типа продукта. Используется для моддинга.
- **Назначение:** Определение свойств типа продукта (цена, спрос, категория)
- **Ключевые свойства:** `Id`, `Name`, `Category`, `BasePrice`, `ShelfLife`
- **Особенности:** Поддержка исторической доступности (год появления)
📂 **Исходный код:** [`ProductType.cs`](../../backend/src/MyBiz.Core/ProductType.cs)
---
### Product
Экземпляр продукта в игре.
- **Назначение:** Представление конкретного количества товара
- **Ключевые свойства:** `Type`, `Quantity`, `CurrentPrice`, `Quality`
- **Методы:** `Add()`, `Remove()`, `Update()` (проверка срока годности)
📂 **Исходный код:** [`Product.cs`](../../backend/src/MyBiz.Core/Product.cs)
---
### ProductRegistry
Централизованный реестр типов продуктов.
- **Назначение:** Хранение и управление конфигурациями продуктов
- **Возможности:** Регистрация, поиск, фильтрация по категории и году
- **События:** `ProductTypeAdded`, `ProductTypeModified` (для моддинга)
📂 **Исходный код:** [`ProductRegistry.cs`](../../backend/src/MyBiz.Core/ProductRegistry.cs)
---
### Building
Здание предприятия в игре.
- **Назначение:** Представление фабрик, магазинов, складов
- **Ключевые свойства:** `TypeConfig`, `Level`, `Workers`, `Efficiency`
- **Методы:** `CalculateEfficiency()`, `Update()`
📂 **Исходный код:** [`Building.cs`](../../backend/src/MyBiz.Core/Building.cs)
---
### BuildingTypeConfig
Конфигурация типа здания.
- **Назначение:** Определение свойств типа здания для моддинга
- **Ключевые свойства:** `Id`, `Name`, `Category`, `BuildCost`, `WorkerSlots`
- **Категории:** RawMaterial, Production, Trade, Research, Storage, Office
📂 **Исходный код:** [`Building.cs`](../../backend/src/MyBiz.Core/Building.cs#L10-L75)
---
### City
Город с рынком.
- **Назначение:** Представление локации с экономикой
- **Ключевые свойства:** `Name`, `Population`, `MarketDemand`, `MarketSupply`, `Prices`
- **Словари:** Спрос/предложение по типам продуктов, цены
📂 **Исходный код:** [`City.cs`](../../backend/src/MyBiz.Core/City.cs)
---
### Company
Компания игрока.
- **Назначение:** Состояние бизнеса игрока
- **Ключевые свойства:** `Cash`, `Assets`, `Liabilities`, `Buildings`, `Inventory`
- **Вычисляемое:** `NetWorth` (чистая стоимость)
📂 **Исходный код:** [`Company.cs`](../../backend/src/MyBiz.Core/Company.cs)
---
### ProductionChainConfig
Конфигурация производственной цепочки.
- **Назначение:** Определение рецепта производства
- **Ключевые свойства:** `OutputProductId`, `RequiredBuildingId`, `Steps`
- **Шаги:** Список `ProductionStep` с входными продуктами и временем
📂 **Исходный код:** [`ProductionChain.cs`](../../backend/src/MyBiz.Core/ProductionChain.cs#L25-L68)
---
### ActiveProductionChain
Активный процесс производства на здании.
- **Назначение:** Отслеживание прогресса производства
- **Ключевые свойства:** `Config`, `Building`, `CurrentStep`, `Progress`
- **Методы:** `Tick()` (продвижение на 1 тик)
📂 **Исходный код:** [`ProductionChain.cs`](../../backend/src/MyBiz.Core/ProductionChain.cs#L73-L125)
---
## Перечисления
### ProductCategory
Категории продуктов:
| Значение | Описание |
|----------|----------|
| `RawMaterial` | Сырьё (хлопок, сталь) |
| `Component` | Компоненты (ткань, детали) |
| `ConsumerGoods` | Товары народного потребления |
| `Luxury` | Предметы роскоши (будущее) |
📂 **Исходный код:** [`ProductType.cs`](../../backend/src/MyBiz.Core/ProductType.cs#L5-L11)
---
### BuildingCategory
Категории зданий:
| Значение | Описание |
|----------|----------|
| `RawMaterial` | Добыча сырья |
| `Production` | Производство |
| `Trade` | Торговля |
| `Research` | Исследования |
| `Storage` | Склад |
| `Office` | Офис |
📂 **Исходный код:** [`Building.cs`](../../backend/src/MyBiz.Core/Building.cs#L78-L86)
---
## Связанные документы
- [Продукты](products.md) — детальное описание системы продуктов
- [Здания](buildings.md) — типы предприятий
- [Производство](production.md) — цепочки производства
---
**Последнее обновление:** 20.02.2026