first commit
This commit is contained in:
22
README.md
Normal file
22
README.md
Normal 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`.
|
||||
|
||||
Reference in New Issue
Block a user