first commit

This commit is contained in:
2026-02-09 22:03:11 +03:00
commit 2e463a4923
5 changed files with 220 additions and 0 deletions

22
README.md Normal file
View File

@@ -0,0 +1,22 @@
# tx-teleport-example
Пример вынесенного кода по безопасной работе с транзакциями мира и телепортами.
## Что внутри
- `txflow/interfaces.go`: минимальные интерфейсы (`World`, `Tx`, `Entity`, `Handle`), чтобы код не зависел от конкретного движка.
- `txflow/adapter.go`: адаптер игрока с:
- `WithPlayerTx(...)` (предпочитает текущий `Tx`, fallback через `ExecWorld`),
- очередью телепортов (`queue + process`),
- безопасным разделением same-world и cross-world телепорта.
## Зачем
Ключевая цель: не блокировать world transaction loop повторным `ExecWorld` изнутри уже выполняющейся транзакции.
## Интеграция
1. Подключить свои реализации интерфейсов из проекта.
2. Создавать `txflow.Adapter` на игрока.
3. Все операции игрока (сообщения, инвентарь, телепорт) запускать через `WithPlayerTx` или `Teleport`.