166 lines
5.9 KiB
Markdown
166 lines
5.9 KiB
Markdown
# Ядро игры (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
|