54dcd2078a6e8b5eb4dd12fba1e8cb3ad69db674
Первый этап из одиннадцати: дыры, парность, таймер, погружение, телепорт, визуал и разбор координат. Мир пустоты ещё не трогаем — этого этапа ничего не ломает в существующей игре. Поток ровно как задумано: ПКМ -> входная дыра, состояние WAITING_COORDS, таймера нет ввод "x, y, z" -> ответная дыра, PAIRED, -100% TP, кулдаун 30с, таймер 5с истёк 5с -> обе дыры исчезают Ключевые решения, которые стоит знать при доработке: 1. Повторный ввод координат в состоянии PAIRED ЗАБЛОКИРОВЕН. Иначе можно было бы переставлять ответную дыру и продлевать себе окно, то есть 5 секунд перестали бы быть 5 секундами. В WAITING_COORDS повторять можно сколько угодно: ошибся — передвинул. 2. TP и кулдаун списываются в момент создания ПАРЫ, а не прыжка. Значит пару можно создать и уйти не воспользовавшись — потрачено. 3. Порядок действий фиксированный: ПКМ, потом координаты. Раньше в описании было «порядок не важен», но раз координаты вводятся только после ПКМ, обратный порядок физически невозможен. 4. Парсер координат: три числа это x,y,z, два числа это x,z и Y берётся верхним блоком колонки. Формата «x, y» без Z не существует: двусмысленно, и читать его как две координаты безопаснее. Разбор ведётся только в WAITING_COORDS; всё остальное уходит в чат нетронутым — перехватчик не имеет права глотать переписку. 5. Проверка места дыры: блок точки обязан быть воздухом, над ним свободно, под ним опора. Иначе в дыру невозможно встать, а висящая в воздухе дыра бессмысленна. 6. Визуал идёт под одной задачей, как StarFx. Дыр может быть много одновременно у разных игроков, и задача на каждую сущность дала бы десятки записей в планировщике. Осколки: чёрное стекло, чёрный бетон и чёрный бетонный порошок, поднимаются и одновременно уменьшаются. 7. Погружение телепортацией на доли блока, а не скоростью. Скорость смешалась бы с сущностями в дыре, телепорт даёт ровное smoothstep-движение. По достижении -0.5 телепорт в ответную дыру с тем же смещением по Y. Задел на будущее: Session уже несёт флаги fromVoid и owner под правило «дыра из пустоты — только для открывшего», и поля entranceTo/exitTo под механику острого предмета. Логика их пока не читает.
Description
BlackKnife plugin - DeltaMine
Languages
Java
100%