Add technical documentation structure
This commit is contained in:
165
docs/tech/core.md
Normal file
165
docs/tech/core.md
Normal 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
|
||||
Reference in New Issue
Block a user