Files
2026-08-14 15:03:43 +03:00

51 lines
4.2 KiB
Markdown
Raw Permalink 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.
# Day 9-10: рефактор і чистка (2026-08-13)
Бриф прямо просив "думай як розробник, що передає код іншому" — без
зміни логіки/поведінки гри, лише структура/дублювання/коментарі.
Погоджений план (`EnterPlanMode`/`ExitPlanMode`) виконаний фазами, кожна
верифікована окремим `npx vite build`:
- **Мертвий код прибрано**: `PayZoneC.getTargetWorldPosition()` (0
викликів), увесь `PhysicsC.PhysicsObjPair`/`pair`-поле/
`disablePhysicsPair()` (клас був повністю нежиттєздатним — єдине
місце, що присвоювало `pair`, саме закомічене); 2 прототипні
`console.log` (`PayZoneC`, `ResourceC`). `SparkleFxC`'s `console.debug`
на виснаження пулу — свідомо залишений (реальна діагностика
деградованого режиму, не сміттєвий лог).
- **4 нові утиліти в `src/utils/`** — прибрали дублювання, знайдене між
файлами (не новий functionality, лише перенесення існуючої формули
без зміни):
- `perspectiveScale.ts` — camera-distance-ratio компенсація, була
незалежно написана і в `ResourceC` (`toTarget`), і в `PayZoneC`
(`playDepositFlight`).
- `screenWorldProjection.ts` — world<->screen NDC-математика, була в
`HudC` (screen->world, unproject) і `HealthBarC` (world->screen,
project) — обидва незалежно читали `canvasRect`.
- `tweenChain.ts` — той самий "TweenC.add() обидві ланки окремо"
гочтя й бойлерплейт, дослівно повторений у `BreakablePropC` і
`SparkleFxC`.
- `flashOverlayMaterial.ts` — адитивний флеш-матеріал (клон + white
additive overlay), дослівно повторений у `BreakablePropC` і
`ResourceC`, разом з дубльованою константою `FLASH_COLOR`.
- **Коментарі підчищені** у всіх 16 контролерах, `beforeResourcesLoadedCb.ts`
і всіх 3 CSS-файлах — прибрана вся хронологія/цитати чату/"Day N"
посилання, лишились тільки короткі WHY-нотатки на дійсно неочевидні
речі (усі гочті з цього файлу — TweenC-чейн, glTF dot-stripping,
nipplejs force-переповнення, atan2/conic-gradient зсув, MeshBasicMaterial
білий-тінт-no-op — лишились, просто по одному разу в коді, не по
два-три). Додана одна нова коротка нота в `ui.css` — `.bannerButton`
реально мертвий у білді (purgecss-квірк), раніше це знав тільки цей
файл.
- **Свідомо НЕ зроблено**: домен-розбиття `src/controllers/` на
підпапки (gameplay/vfx/ui/core) — розглянуто і відхилено: жодної
зовнішньої конвенції під це нема (SDK сам плаский), `resources/` —
єдиний прецедент підпапок в проєкті, і той групує по типу ассету, не
по домену. Переїзд 16 файлів заради нуля функціональної вигоди —
саме "overengineering", проти якого прямо просив бриф.
- Два CSS-пункти з попереднього Day 8 аудиту (rem/% замість vh,
відсутній landscape-медіазапит у `health-bar.css`) — **свідомо не
торкались**, за проханням користувача відкласти.
Перевірено виключно `npx vite build` після кожної фази (усі 883 модулі,
без помилок) — жодного self-testing у браузері, як завжди в цьому проєкті.