Files
my-biz/docs/tech/core.md
2026-02-21 10:26:23 +03:00

166 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ядро игры (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