@the-inclusionist/engine 8.0.0 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -78
- package/app/css/style.css +584 -374
- package/app/public/vendor/fonts/bitter-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/bitter-var.woff2 +0 -0
- package/app/public/vendor/fonts/bodonimoda-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/bodonimoda-var.woff2 +0 -0
- package/app/public/vendor/fonts/cat-abril_fatface-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-abril_fatface-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-adlam_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-adlam_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-agu_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-agu_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-alfa_slab_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-alfa_slab_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-are_you_serious-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-are_you_serious-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-asimovian-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-asimovian-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-atkinson_hyperlegible_next-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bakbak_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bakbak_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bangers-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bangers-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-barriecito-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-barriecito-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-berkshire_swash-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-berkshire_swash-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bevan-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bevan-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bitcount-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bitcount-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bowlby_one_sc-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bowlby_one_sc-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bungee_shade-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-bungee_shade-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-charm-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-cherry_bomb_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-cherry_bomb_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chokokutai-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chokokutai-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chonburi-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-chonburi-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-climate_crisis-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-climate_crisis-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-cookie-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-dela_gothic_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-dela_gothic_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-fascinate_inline-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-fascinate_inline-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ga_maamli-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ga_maamli-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-itim-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-itim-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-jacquard_24-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-jacquard_24-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kablammo-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kablammo-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-kalam-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-katibeh-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-katibeh-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lemonada-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lemonada-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lilita_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lilita_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lobster-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-lobster-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-luckiest_guy-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-luckiest_guy-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-marhey-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-marhey-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-modak-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-modak-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-momo_signature-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-momo_signature-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monofett-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monofett-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monomakh-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monomakh-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monoton-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-monoton-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-nerko_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-nerko_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_adlam-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_adlam-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_arabic-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_arabic-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_devanagari-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_devanagari-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_hebrew-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_hebrew-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_jp-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_jp-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_khmer-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_khmer-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_kr-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_kr-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_sc-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_sc-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_thai-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-noto_sans_thai-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ole-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ole-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pacifico-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pacifico-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-patrick_hand-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-patrick_hand-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-petit_formal_script-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-petit_formal_script-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pixelify_sans-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-pixelify_sans-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-plaster-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-plaster-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ar_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_at-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_at_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_nsw-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_nsw_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_qld-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_qld_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_sa-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_sa_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_tas-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_tas_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_vic-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_au_vic_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_vlg-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_vlg_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_wal-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_be_wal_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_br_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ca_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cl_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_co_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cu_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cz-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_cz_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_grund-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_grund_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_la-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_la_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_sas-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_sas_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_va-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_de_va_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_loopet-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_loopet_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_uloopet-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_dk_uloopet_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_es_deco_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_es_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_moderne-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_moderne_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_trad-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_fr_trad_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_gb_j_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_gb_s_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr_lijeva-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hr_lijeva_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hu-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_hu_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_id-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_id_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ie-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ie_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_in-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_in_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_is-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_is_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_moderna-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_moderna_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_trad-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_it_trad_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_mx_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ng_modern-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ng_modern_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nl-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nl_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_no-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_no_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz_basic-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz_basic_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_nz_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pe_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pl-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pl_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_pt_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ro-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_ro_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_sk-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_sk_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_tz-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_tz_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_us_modern_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_us_trad_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_vn-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_vn_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_za-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-playwrite_za_guides-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-potta_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-potta_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranchers-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranchers-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ranga-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-risque-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-risque-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-rowdies-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruge_boogie-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruge_boogie-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruslan_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-ruslan_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sacramento-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sacramento-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sancreek-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sancreek-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sankofa_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sankofa_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sedgwick_ave_display-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sedgwick_ave_display-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-shantell_sans-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-shantell_sans-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-smokum-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-smokum-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-solitreo-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-solitreo-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-spicy_rice-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-spicy_rice-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sriracha-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-sriracha-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-srisakdi-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-stix_two_math-400-0.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-tillana-700.woff2 +0 -0
- package/app/public/vendor/fonts/cat-titan_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-titan_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yatra_one-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yatra_one-400.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yomogi-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/cat-yomogi-400.woff2 +0 -0
- package/app/public/vendor/fonts/dmserifdisplay-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/dmserifdisplay-400.woff2 +0 -0
- package/app/public/vendor/fonts/domine-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/domine-var.woff2 +0 -0
- package/app/public/vendor/fonts/fraunces-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/fraunces-var.woff2 +0 -0
- package/app/public/vendor/fonts/fredoka-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/fredoka-var.woff2 +0 -0
- package/app/public/vendor/fonts/jakarta-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/jakarta-var.woff2 +0 -0
- package/app/public/vendor/fonts/lora-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/lora-var.woff2 +0 -0
- package/app/public/vendor/fonts/merriweather-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/merriweather-var.woff2 +0 -0
- package/app/public/vendor/fonts/notosans-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/notosans-var.woff2 +0 -0
- package/app/public/vendor/fonts/nunito-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/nunito-var.woff2 +0 -0
- package/app/public/vendor/fonts/playfair-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/playfair-var.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-cu.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-es-deco.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-es.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-gb-j.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-gb-s.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-pe.woff2 +0 -0
- package/app/public/vendor/fonts/playwrite-pt.woff2 +0 -0
- package/app/public/vendor/fonts/quicksand-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/quicksand-var.woff2 +0 -0
- package/app/public/vendor/fonts/robotoflex-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/robotoflex-var.woff2 +0 -0
- package/app/public/vendor/fonts/sora-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/sora-var.woff2 +0 -0
- package/app/public/vendor/fonts/spacegrotesk-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/spacegrotesk-var.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-400.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/spectral-700.woff2 +0 -0
- package/app/public/vendor/fonts/teachers-var-ext.woff2 +0 -0
- package/app/public/vendor/fonts/teachers-var.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-400-ext.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-400.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-700-ext.woff2 +0 -0
- package/app/public/vendor/fonts/ubuntu-700.woff2 +0 -0
- package/app/public/vendor/fonts.css +1167 -51
- package/dist-pkg/boot/create-game.d.ts +467 -162
- package/dist-pkg/boot/create-game.js +3563 -426
- package/dist-pkg/core/a11y-sr.d.ts +25 -3
- package/dist-pkg/core/a11y-sr.js +40 -19
- package/dist-pkg/core/accessible-label.d.ts +17 -0
- package/dist-pkg/core/accessible-label.js +37 -0
- package/dist-pkg/core/accommodation-subjects.d.ts +26 -0
- package/dist-pkg/core/accommodation-subjects.js +32 -0
- package/dist-pkg/core/accommodations.d.ts +107 -0
- package/dist-pkg/core/accommodations.js +178 -0
- package/dist-pkg/core/actions.d.ts +75 -51
- package/dist-pkg/core/actions.js +98 -69
- package/dist-pkg/core/calm-mode.d.ts +31 -0
- package/dist-pkg/core/calm-mode.js +47 -0
- package/dist-pkg/core/camera-cycle.d.ts +15 -0
- package/dist-pkg/core/camera-cycle.js +7 -0
- package/dist-pkg/core/caption-duration.d.ts +15 -0
- package/dist-pkg/core/caption-duration.js +19 -0
- package/dist-pkg/core/cartridge-problems.d.ts +34 -0
- package/dist-pkg/core/cartridge-problems.js +53 -0
- package/dist-pkg/core/constants.d.ts +0 -54
- package/dist-pkg/core/constants.js +9 -76
- package/dist-pkg/core/contract.d.ts +143 -163
- package/dist-pkg/core/contract.js +223 -207
- package/dist-pkg/core/dom-query.d.ts +4 -4
- package/dist-pkg/core/dom-query.js +12 -20
- package/dist-pkg/core/entity.d.ts +62 -77
- package/dist-pkg/core/entity.js +18 -32
- package/dist-pkg/core/escape-html.d.ts +9 -10
- package/dist-pkg/core/escape-html.js +16 -20
- package/dist-pkg/core/flash-threshold.d.ts +17 -0
- package/dist-pkg/core/flash-threshold.js +113 -0
- package/dist-pkg/core/game-speed.d.ts +11 -0
- package/dist-pkg/core/game-speed.js +16 -0
- package/dist-pkg/core/genres.d.ts +20 -0
- package/dist-pkg/core/genres.js +44 -0
- package/dist-pkg/core/i18n.d.ts +87 -41
- package/dist-pkg/core/i18n.js +206 -153
- package/dist-pkg/core/loop.d.ts +17 -6
- package/dist-pkg/core/loop.js +26 -26
- package/dist-pkg/core/pause-icon-catalogue.d.ts +15 -0
- package/dist-pkg/core/pause-icon-catalogue.js +54 -0
- package/dist-pkg/core/ring.d.ts +17 -0
- package/dist-pkg/core/ring.js +29 -0
- package/dist-pkg/core/rng.d.ts +7 -12
- package/dist-pkg/core/rng.js +23 -53
- package/dist-pkg/core/route.d.ts +26 -26
- package/dist-pkg/core/route.js +126 -121
- package/dist-pkg/core/scenes.d.ts +37 -40
- package/dist-pkg/core/scenes.js +41 -43
- package/dist-pkg/core/screens.d.ts +4 -4
- package/dist-pkg/core/screens.js +11 -16
- package/dist-pkg/core/setting-defaults.d.ts +61 -0
- package/dist-pkg/core/setting-defaults.js +66 -0
- package/dist-pkg/core/speech-rate.d.ts +29 -0
- package/dist-pkg/core/speech-rate.js +47 -0
- package/dist-pkg/core/state.d.ts +118 -118
- package/dist-pkg/core/state.js +322 -297
- package/dist-pkg/core/visual-cycles.d.ts +30 -0
- package/dist-pkg/core/visual-cycles.js +52 -0
- package/dist-pkg/core/visual-state.d.ts +13 -0
- package/dist-pkg/core/visual-state.js +6 -0
- package/dist-pkg/educational/activities-registry.d.ts +1 -1
- package/dist-pkg/educational/activities-registry.js +9 -8
- package/dist-pkg/educational/adaptive-engine.d.ts +11 -11
- package/dist-pkg/educational/adaptive-engine.js +17 -17
- package/dist-pkg/educational/segment-bar.d.ts +12 -12
- package/dist-pkg/educational/segment-bar.js +9 -9
- package/dist-pkg/i18n/en.js +321 -215
- package/dist-pkg/i18n/es.js +320 -215
- package/dist-pkg/i18n/pt.js +342 -215
- package/dist-pkg/input/default-bindings.d.ts +37 -38
- package/dist-pkg/input/default-bindings.js +127 -144
- package/dist-pkg/input/devices.d.ts +7 -7
- package/dist-pkg/input/devices.js +17 -16
- package/dist-pkg/input/edges.d.ts +23 -32
- package/dist-pkg/input/edges.js +23 -28
- package/dist-pkg/input/empathy-filter.d.ts +22 -0
- package/dist-pkg/input/empathy-filter.js +34 -0
- package/dist-pkg/input/face-map.d.ts +96 -0
- package/dist-pkg/input/face-map.js +255 -0
- package/dist-pkg/input/face-signals.d.ts +40 -0
- package/dist-pkg/input/face-signals.js +48 -0
- package/dist-pkg/input/gamepad.d.ts +164 -145
- package/dist-pkg/input/gamepad.js +351 -559
- package/dist-pkg/input/gaze-cycle.d.ts +64 -0
- package/dist-pkg/input/gaze-cycle.js +133 -0
- package/dist-pkg/input/gaze-relative.d.ts +68 -0
- package/dist-pkg/input/gaze-relative.js +142 -0
- package/dist-pkg/input/hand-map.d.ts +28 -0
- package/dist-pkg/input/hand-map.js +142 -0
- package/dist-pkg/input/input-cooldown.d.ts +17 -0
- package/dist-pkg/input/input-cooldown.js +39 -0
- package/dist-pkg/input/keyboard-runtime.d.ts +18 -20
- package/dist-pkg/input/keyboard-runtime.js +23 -27
- package/dist-pkg/input/keyboard.d.ts +68 -62
- package/dist-pkg/input/keyboard.js +83 -105
- package/dist-pkg/input/keydown.d.ts +124 -132
- package/dist-pkg/input/keydown.js +283 -288
- package/dist-pkg/input/latch-edge.d.ts +25 -21
- package/dist-pkg/input/latch-edge.js +33 -35
- package/dist-pkg/input/latch-scope.d.ts +43 -47
- package/dist-pkg/input/latch-scope.js +66 -75
- package/dist-pkg/input/latch-store.d.ts +28 -29
- package/dist-pkg/input/latch-store.js +44 -47
- package/dist-pkg/input/latch-sync.d.ts +28 -29
- package/dist-pkg/input/latch-sync.js +25 -25
- package/dist-pkg/input/latch.d.ts +14 -17
- package/dist-pkg/input/latch.js +29 -37
- package/dist-pkg/input/pad-defaults.d.ts +13 -16
- package/dist-pkg/input/pad-defaults.js +21 -28
- package/dist-pkg/input/pad-reading.d.ts +76 -0
- package/dist-pkg/input/pad-reading.js +164 -0
- package/dist-pkg/input/pad-wizard.d.ts +96 -0
- package/dist-pkg/input/pad-wizard.js +205 -0
- package/dist-pkg/input/pointer-space.d.ts +19 -20
- package/dist-pkg/input/pointer-space.js +27 -32
- package/dist-pkg/input/pointer.d.ts +39 -40
- package/dist-pkg/input/pointer.js +42 -45
- package/dist-pkg/input/state.d.ts +101 -89
- package/dist-pkg/input/state.js +54 -134
- package/dist-pkg/input/switch-scan.d.ts +42 -0
- package/dist-pkg/input/switch-scan.js +54 -0
- package/dist-pkg/input/synthetic-source.d.ts +42 -0
- package/dist-pkg/input/synthetic-source.js +57 -0
- package/dist-pkg/input/touch-bindings.d.ts +127 -113
- package/dist-pkg/input/touch-bindings.js +158 -173
- package/dist-pkg/input/touch.d.ts +130 -70
- package/dist-pkg/input/touch.js +321 -123
- package/dist-pkg/input/transport-in-use.d.ts +107 -0
- package/dist-pkg/input/transport-in-use.js +130 -0
- package/dist-pkg/input/transports.d.ts +96 -114
- package/dist-pkg/input/transports.js +104 -106
- package/dist-pkg/input/virtual-controller.d.ts +46 -0
- package/dist-pkg/input/virtual-controller.js +41 -0
- package/dist-pkg/input/vocabulary-migration.d.ts +50 -49
- package/dist-pkg/input/vocabulary-migration.js +80 -79
- package/dist-pkg/input/voice-map.d.ts +43 -0
- package/dist-pkg/input/voice-map.js +125 -0
- package/dist-pkg/platform/audio-ambient.d.ts +13 -1
- package/dist-pkg/platform/audio-ambient.js +11 -13
- package/dist-pkg/platform/audio-earcons.d.ts +20 -19
- package/dist-pkg/platform/audio-earcons.js +51 -42
- package/dist-pkg/platform/audio-jingles.js +9 -10
- package/dist-pkg/platform/audio-mixer.d.ts +14 -2
- package/dist-pkg/platform/audio-mixer.js +36 -39
- package/dist-pkg/platform/audio-sonar.d.ts +96 -113
- package/dist-pkg/platform/audio-sonar.js +245 -238
- package/dist-pkg/platform/audio.d.ts +53 -19
- package/dist-pkg/platform/audio.js +161 -169
- package/dist-pkg/platform/flash-sampler.d.ts +19 -0
- package/dist-pkg/platform/flash-sampler.js +79 -0
- package/dist-pkg/platform/guide-intensity.d.ts +26 -27
- package/dist-pkg/platform/guide-intensity.js +50 -52
- package/dist-pkg/platform/heavy-catalogue.d.ts +31 -0
- package/dist-pkg/platform/heavy-catalogue.js +223 -0
- package/dist-pkg/platform/heavy-mirror.d.ts +26 -0
- package/dist-pkg/platform/heavy-mirror.js +76 -0
- package/dist-pkg/platform/heavy.d.ts +104 -0
- package/dist-pkg/platform/heavy.js +169 -0
- package/dist-pkg/platform/interruptible-speech.d.ts +16 -16
- package/dist-pkg/platform/interruptible-speech.js +50 -51
- package/dist-pkg/platform/kokoro-port.d.ts +27 -0
- package/dist-pkg/platform/kokoro-port.js +50 -0
- package/dist-pkg/platform/kokoro-runtime.d.ts +20 -0
- package/dist-pkg/platform/kokoro-runtime.js +52 -0
- package/dist-pkg/platform/kokoro.d.ts +70 -0
- package/dist-pkg/platform/kokoro.js +133 -0
- package/dist-pkg/platform/listener-scope.d.ts +12 -0
- package/dist-pkg/platform/listener-scope.js +81 -0
- package/dist-pkg/platform/locale-host.d.ts +10 -0
- package/dist-pkg/platform/locale-host.js +34 -0
- package/dist-pkg/platform/microphone.d.ts +51 -0
- package/dist-pkg/platform/microphone.js +118 -0
- package/dist-pkg/platform/onnx-runtime.d.ts +34 -0
- package/dist-pkg/platform/onnx-runtime.js +42 -0
- package/dist-pkg/platform/reading-in-worker.d.ts +40 -0
- package/dist-pkg/platform/reading-in-worker.js +87 -0
- package/dist-pkg/platform/reading-model.d.ts +73 -0
- package/dist-pkg/platform/reading-model.js +247 -0
- package/dist-pkg/platform/reading-runtime.d.ts +24 -0
- package/dist-pkg/platform/reading-runtime.js +159 -0
- package/dist-pkg/platform/reading-worker.d.ts +41 -0
- package/dist-pkg/platform/reading-worker.js +58 -0
- package/dist-pkg/platform/reading.d.ts +69 -0
- package/dist-pkg/platform/reading.js +128 -0
- package/dist-pkg/platform/speech-recognition.d.ts +51 -0
- package/dist-pkg/platform/speech-recognition.js +84 -0
- package/dist-pkg/platform/speech.d.ts +14 -1
- package/dist-pkg/platform/speech.js +13 -13
- package/dist-pkg/platform/storage-keys.d.ts +96 -0
- package/dist-pkg/platform/storage-keys.js +106 -0
- package/dist-pkg/platform/storage.d.ts +46 -111
- package/dist-pkg/platform/storage.js +104 -169
- package/dist-pkg/platform/tts.d.ts +51 -38
- package/dist-pkg/platform/tts.js +217 -119
- package/dist-pkg/platform/vision-loop.d.ts +23 -0
- package/dist-pkg/platform/vision-loop.js +56 -0
- package/dist-pkg/platform/vision.d.ts +132 -0
- package/dist-pkg/platform/vision.js +117 -0
- package/dist-pkg/platform/voice-listener.d.ts +36 -0
- package/dist-pkg/platform/voice-listener.js +88 -0
- package/dist-pkg/platform/voice-plan.d.ts +6 -102
- package/dist-pkg/platform/voice-plan.js +9 -151
- package/dist-pkg/platform/vosk-runtime.d.ts +71 -0
- package/dist-pkg/platform/vosk-runtime.js +93 -0
- package/dist-pkg/render/canvas.d.ts +13 -7
- package/dist-pkg/render/canvas.js +13 -13
- package/dist-pkg/render/crt.d.ts +46 -12
- package/dist-pkg/render/crt.js +82 -80
- package/dist-pkg/render/cvd-matrices.d.ts +18 -18
- package/dist-pkg/render/cvd-matrices.js +33 -38
- package/dist-pkg/render/hc-role-data.d.ts +7 -7
- package/dist-pkg/render/hc-role-data.js +14 -14
- package/dist-pkg/render/high-contrast.d.ts +66 -54
- package/dist-pkg/render/high-contrast.js +221 -216
- package/dist-pkg/render/low-vision-drawing.d.ts +5 -0
- package/dist-pkg/render/low-vision-drawing.js +46 -0
- package/dist-pkg/render/lq-filter.d.ts +32 -20
- package/dist-pkg/render/lq-filter.js +59 -65
- package/dist-pkg/render/port.d.ts +86 -88
- package/dist-pkg/render/port.js +17 -23
- package/dist-pkg/render/screen-pipeline.d.ts +42 -42
- package/dist-pkg/render/screen-pipeline.js +80 -87
- package/dist-pkg/render/sprite-fx.d.ts +2 -1
- package/dist-pkg/render/sprite-fx.js +16 -14
- package/dist-pkg/render/viewports.d.ts +20 -15
- package/dist-pkg/render/viewports.js +83 -114
- package/dist-pkg/render/viz-axes-labels.d.ts +47 -0
- package/dist-pkg/render/viz-axes-labels.js +88 -0
- package/dist-pkg/render/viz-axes.d.ts +80 -86
- package/dist-pkg/render/viz-axes.js +115 -116
- package/dist-pkg/render/viz-modes.d.ts +28 -29
- package/dist-pkg/render/viz-modes.js +40 -45
- package/dist-pkg/render/viz-refusal.d.ts +32 -0
- package/dist-pkg/render/viz-refusal.js +57 -0
- package/dist-pkg/render/viz-setters.d.ts +104 -66
- package/dist-pkg/render/viz-setters.js +182 -191
- package/dist-pkg/ui/aac-sets.d.ts +40 -0
- package/dist-pkg/ui/aac-sets.js +49 -0
- package/dist-pkg/ui/audio-choices.d.ts +63 -0
- package/dist-pkg/ui/audio-choices.js +94 -0
- package/dist-pkg/ui/audio-rows-that-apply.d.ts +12 -0
- package/dist-pkg/ui/audio-rows-that-apply.js +43 -0
- package/dist-pkg/ui/camera-control.d.ts +6 -0
- package/dist-pkg/ui/camera-control.js +14 -0
- package/dist-pkg/ui/changed-mark.d.ts +9 -8
- package/dist-pkg/ui/changed-mark.js +22 -53
- package/dist-pkg/ui/control-choices.d.ts +37 -0
- package/dist-pkg/ui/control-choices.js +84 -0
- package/dist-pkg/ui/debug-panel.d.ts +59 -43
- package/dist-pkg/ui/debug-panel.js +68 -69
- package/dist-pkg/ui/dom.d.ts +10 -14
- package/dist-pkg/ui/dom.js +10 -47
- package/dist-pkg/ui/drawing-problems.d.ts +25 -0
- package/dist-pkg/ui/drawing-problems.js +93 -0
- package/dist-pkg/ui/eye-control.d.ts +36 -0
- package/dist-pkg/ui/eye-control.js +178 -0
- package/dist-pkg/ui/face-control.d.ts +25 -0
- package/dist-pkg/ui/face-control.js +183 -0
- package/dist-pkg/ui/focus-trap.d.ts +39 -49
- package/dist-pkg/ui/focus-trap.js +56 -65
- package/dist-pkg/ui/fonts.d.ts +118 -63
- package/dist-pkg/ui/fonts.js +267 -111
- package/dist-pkg/ui/game-options.d.ts +42 -0
- package/dist-pkg/ui/game-options.js +138 -0
- package/dist-pkg/ui/gaze-overlay.d.ts +64 -0
- package/dist-pkg/ui/gaze-overlay.js +165 -0
- package/dist-pkg/ui/hand-control.d.ts +25 -0
- package/dist-pkg/ui/hand-control.js +143 -0
- package/dist-pkg/ui/help-panel.d.ts +76 -0
- package/dist-pkg/ui/help-panel.js +232 -0
- package/dist-pkg/ui/hud-bands.d.ts +45 -0
- package/dist-pkg/ui/hud-bands.js +108 -0
- package/dist-pkg/ui/hud.d.ts +73 -70
- package/dist-pkg/ui/hud.js +94 -98
- package/dist-pkg/ui/item-announcement.d.ts +13 -12
- package/dist-pkg/ui/item-announcement.js +25 -26
- package/dist-pkg/ui/latch-refusal.d.ts +22 -21
- package/dist-pkg/ui/latch-refusal.js +37 -37
- package/dist-pkg/ui/layout.d.ts +103 -28
- package/dist-pkg/ui/layout.js +114 -99
- package/dist-pkg/ui/locale-flags.d.ts +16 -0
- package/dist-pkg/ui/locale-flags.js +30 -0
- package/dist-pkg/ui/loop-crash.d.ts +17 -17
- package/dist-pkg/ui/loop-crash.js +33 -62
- package/dist-pkg/ui/menu-intent.d.ts +32 -0
- package/dist-pkg/ui/menu-intent.js +54 -0
- package/dist-pkg/ui/menu-items.d.ts +10 -0
- package/dist-pkg/ui/menu-items.js +22 -0
- package/dist-pkg/ui/menu-nav.d.ts +60 -90
- package/dist-pkg/ui/menu-nav.js +301 -274
- package/dist-pkg/ui/mobility-choices.d.ts +26 -0
- package/dist-pkg/ui/mobility-choices.js +41 -0
- package/dist-pkg/ui/motion-choices.d.ts +31 -0
- package/dist-pkg/ui/motion-choices.js +68 -0
- package/dist-pkg/ui/motion-scene.d.ts +24 -19
- package/dist-pkg/ui/motion-scene.js +29 -61
- package/dist-pkg/ui/mount-panel.d.ts +81 -0
- package/dist-pkg/ui/mount-panel.js +61 -0
- package/dist-pkg/ui/panel-shell.d.ts +65 -31
- package/dist-pkg/ui/panel-shell.js +92 -66
- package/dist-pkg/ui/panel-widgets.d.ts +116 -0
- package/dist-pkg/ui/panel-widgets.js +208 -0
- package/dist-pkg/ui/pause-buttons.d.ts +35 -0
- package/dist-pkg/ui/pause-buttons.js +66 -0
- package/dist-pkg/ui/pause-icons.d.ts +250 -343
- package/dist-pkg/ui/pause-icons.js +614 -605
- package/dist-pkg/ui/pause-markup.d.ts +86 -0
- package/dist-pkg/ui/pause-markup.js +125 -0
- package/dist-pkg/ui/reach-notice.d.ts +22 -23
- package/dist-pkg/ui/reach-notice.js +55 -58
- package/dist-pkg/ui/scan-overlay.d.ts +23 -0
- package/dist-pkg/ui/scan-overlay.js +42 -0
- package/dist-pkg/ui/settings-aac.d.ts +68 -0
- package/dist-pkg/ui/settings-aac.js +189 -0
- package/dist-pkg/ui/settings-audio.d.ts +91 -113
- package/dist-pkg/ui/settings-audio.js +407 -405
- package/dist-pkg/ui/settings-controls.d.ts +53 -92
- package/dist-pkg/ui/settings-controls.js +143 -215
- package/dist-pkg/ui/settings-empathy.d.ts +39 -30
- package/dist-pkg/ui/settings-empathy.js +53 -60
- package/dist-pkg/ui/settings-mobility.d.ts +195 -0
- package/dist-pkg/ui/settings-mobility.js +374 -0
- package/dist-pkg/ui/settings-motion.d.ts +91 -70
- package/dist-pkg/ui/settings-motion.js +287 -198
- package/dist-pkg/ui/settings-panel.d.ts +48 -45
- package/dist-pkg/ui/settings-panel.js +164 -93
- package/dist-pkg/ui/settings-typo.d.ts +28 -76
- package/dist-pkg/ui/settings-typo.js +145 -125
- package/dist-pkg/ui/settings-visual.d.ts +29 -87
- package/dist-pkg/ui/settings-visual.js +240 -193
- package/dist-pkg/ui/shell.d.ts +113 -134
- package/dist-pkg/ui/shell.js +143 -216
- package/dist-pkg/ui/simulation-list.d.ts +27 -0
- package/dist-pkg/ui/simulation-list.js +76 -0
- package/dist-pkg/ui/simulation-over-the-world.d.ts +23 -0
- package/dist-pkg/ui/simulation-over-the-world.js +131 -0
- package/dist-pkg/ui/simulation-refusal.d.ts +5 -31
- package/dist-pkg/ui/simulation-refusal.js +8 -56
- package/dist-pkg/ui/switchable-control.d.ts +11 -0
- package/dist-pkg/ui/switchable-control.js +19 -0
- package/dist-pkg/ui/title.d.ts +4 -4
- package/dist-pkg/ui/title.js +11 -13
- package/dist-pkg/ui/top-band.d.ts +24 -0
- package/dist-pkg/ui/top-band.js +100 -0
- package/dist-pkg/ui/typo-choices.d.ts +71 -0
- package/dist-pkg/ui/typo-choices.js +84 -0
- package/dist-pkg/ui/visual-axes-panel.d.ts +11 -47
- package/dist-pkg/ui/visual-axes-panel.js +12 -94
- package/dist-pkg/ui/visual-choices.d.ts +77 -0
- package/dist-pkg/ui/visual-choices.js +107 -0
- package/dist-pkg/ui/vlibras.d.ts +33 -10
- package/dist-pkg/ui/vlibras.js +58 -81
- package/dist-pkg/ui/voice-control.d.ts +46 -0
- package/dist-pkg/ui/voice-control.js +143 -0
- package/dist-pkg/ui/voice-settings.d.ts +96 -0
- package/dist-pkg/ui/voice-settings.js +302 -0
- package/dist-pkg/ui/where-the-child-is.d.ts +31 -0
- package/dist-pkg/ui/where-the-child-is.js +70 -0
- package/docs/CREDITS.md +198 -54
- package/docs/LICENSES.md +160 -145
- package/package.json +24 -25
- package/scripts/heavy-into-the-delivery.mjs +144 -0
- package/scripts/licences/Apache-2.0.txt +176 -0
- package/scripts/licences/GPL-3.0.txt +674 -0
- package/scripts/licences/MIT.txt +17 -0
- package/scripts/licences/third-party.mjs +287 -0
- package/scripts/licences/vosk-browser.NOTICE.txt +268 -0
- package/app/public/vendor/fonts/comicneue-400.woff2 +0 -0
- package/app/public/vendor/fonts/comicneue-700.woff2 +0 -0
- package/dist-pkg/core/anel.d.ts +0 -17
- package/dist-pkg/core/anel.js +0 -31
- package/dist-pkg/core/collision.d.ts +0 -21
- package/dist-pkg/core/collision.js +0 -62
- package/dist-pkg/core/layers.d.ts +0 -63
- package/dist-pkg/core/layers.js +0 -95
- package/dist-pkg/core/letter-grid.d.ts +0 -55
- package/dist-pkg/core/letter-grid.js +0 -116
- package/dist-pkg/core/password.d.ts +0 -34
- package/dist-pkg/core/password.js +0 -205
- package/dist-pkg/core/rotulo-acessivel.d.ts +0 -17
- package/dist-pkg/core/rotulo-acessivel.js +0 -41
- package/dist-pkg/core/run-state.d.ts +0 -115
- package/dist-pkg/core/run-state.js +0 -40
- package/dist-pkg/core/tiles.d.ts +0 -12
- package/dist-pkg/core/tiles.js +0 -61
- package/dist-pkg/core/world.d.ts +0 -4
- package/dist-pkg/core/world.js +0 -58
- package/dist-pkg/input/origem-sintetica.d.ts +0 -44
- package/dist-pkg/input/origem-sintetica.js +0 -60
- package/dist-pkg/input/transporte-em-uso.d.ts +0 -101
- package/dist-pkg/input/transporte-em-uso.js +0 -130
- package/dist-pkg/platform/audio-nav.d.ts +0 -51
- package/dist-pkg/platform/audio-nav.js +0 -99
- package/dist-pkg/platform/pesados-catalogo.d.ts +0 -14
- package/dist-pkg/platform/pesados-catalogo.js +0 -177
- package/dist-pkg/platform/pesados.d.ts +0 -31
- package/dist-pkg/platform/pesados.js +0 -75
- package/dist-pkg/platform/vozes-prontas.d.ts +0 -28
- package/dist-pkg/platform/vozes-prontas.js +0 -61
- package/dist-pkg/render/camera.d.ts +0 -58
- package/dist-pkg/render/camera.js +0 -105
- package/dist-pkg/render/cenario-data.d.ts +0 -127
- package/dist-pkg/render/cenario-data.js +0 -145
- package/dist-pkg/render/city-tex.d.ts +0 -63
- package/dist-pkg/render/city-tex.js +0 -228
- package/dist-pkg/render/city-tiles.d.ts +0 -11
- package/dist-pkg/render/city-tiles.js +0 -140
- package/dist-pkg/render/draw.d.ts +0 -149
- package/dist-pkg/render/draw.js +0 -231
- package/dist-pkg/render/fx.d.ts +0 -63
- package/dist-pkg/render/fx.js +0 -123
- package/dist-pkg/render/minimap.d.ts +0 -11
- package/dist-pkg/render/minimap.js +0 -94
- package/dist-pkg/render/parallax.d.ts +0 -85
- package/dist-pkg/render/parallax.js +0 -158
- package/dist-pkg/render/player-anim.d.ts +0 -71
- package/dist-pkg/render/player-anim.js +0 -152
- package/dist-pkg/render/recycling-tex.d.ts +0 -48
- package/dist-pkg/render/recycling-tex.js +0 -164
- package/dist-pkg/render/scene-city.d.ts +0 -77
- package/dist-pkg/render/scene-city.js +0 -181
- package/dist-pkg/render/scene-parallax.d.ts +0 -72
- package/dist-pkg/render/scene-parallax.js +0 -426
- package/dist-pkg/render/scene-sky.d.ts +0 -126
- package/dist-pkg/render/scene-sky.js +0 -295
- package/dist-pkg/render/set-cenario.d.ts +0 -54
- package/dist-pkg/render/set-cenario.js +0 -103
- package/dist-pkg/render/textures.d.ts +0 -75
- package/dist-pkg/render/textures.js +0 -240
- package/dist-pkg/render/title-scene.d.ts +0 -46
- package/dist-pkg/render/title-scene.js +0 -75
- package/dist-pkg/render/weather.d.ts +0 -96
- package/dist-pkg/render/weather.js +0 -171
- package/dist-pkg/render/wheelchair-sprites.d.ts +0 -32
- package/dist-pkg/render/wheelchair-sprites.js +0 -69
- package/dist-pkg/render/world-tex.d.ts +0 -18
- package/dist-pkg/render/world-tex.js +0 -87
- package/dist-pkg/ui/activities-menu.d.ts +0 -258
- package/dist-pkg/ui/activities-menu.js +0 -648
- package/dist-pkg/ui/caa-sets.d.ts +0 -39
- package/dist-pkg/ui/caa-sets.js +0 -65
- package/dist-pkg/ui/map-hub.d.ts +0 -56
- package/dist-pkg/ui/map-hub.js +0 -138
- package/dist-pkg/ui/settings-caa.d.ts +0 -45
- package/dist-pkg/ui/settings-caa.js +0 -137
- package/dist-pkg/ui/settings-motor.d.ts +0 -175
- package/dist-pkg/ui/settings-motor.js +0 -342
- package/dist-pkg/ui/webcam.d.ts +0 -7
- package/dist-pkg/ui/webcam.js +0 -93
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
// render/scene-sky — céu de tela: deriva de nuvens (math pura + bug #21) + trilha viva da v3 (nuvens/pássaros do mundo,
|
|
3
|
-
// estrelas/névoa, grama/minhocas/vagalumes/borboletas). Extraído do game.js (#43). As 6 CAMADAS (skyLayer/starsG/
|
|
4
|
-
// skyDecoG/fogG/grassG/themeFxG) continuam sendo CRIADAS no game.js — a ordem-z delas está soldada na montagem do
|
|
5
|
-
// render-graph (parallax/worldSprite/lifeLayer/carLayer) — e são INJETADAS aqui; movemos só a LÓGICA. Fórmulas copiadas
|
|
6
|
-
// verbatim da v3.1.100. Injeção por closure. Ver docs/5-Refactoring/plano-modularizacao-mapa.md (#43).
|
|
7
|
-
/**
|
|
8
|
-
* Posição horizontal de uma nuvem à deriva, com wrap SUB-PIXEL e pelo CORPO INTEIRO. Corrige #21:
|
|
9
|
-
* (a) NÃO arredonda → deriva suave mesmo a <1px/frame; (b) só reentra quando a nuvem inteira saiu.
|
|
10
|
-
* @param phase distância de deriva acumulada (float; cresce → direita, decresce → esquerda)
|
|
11
|
-
* @param enterAt x de (re)entrada — passe `-larguraDaNuvem` p/ reentrar TOTALMENTE fora da tela
|
|
12
|
-
* @param span período do wrap — passe `larguraDaTela + larguraDaNuvem` p/ só reentrar depois de sair inteira
|
|
13
|
-
*/
|
|
14
|
-
export function cloudWrapX(phase, enterAt, span) {
|
|
15
|
-
return ((phase % span) + span) % span + enterAt;
|
|
16
|
-
}
|
|
17
|
-
/** Largura e altura do cúmulo base, antes de `esc`. Quem mede cobertura precisa das duas. */
|
|
18
|
-
export const NUVEM_W = 26, NUVEM_H = 13;
|
|
19
|
-
/** Quantas fileiras a manta fechada tem. É o que a faz cobrir do topo ao horizonte em vez de só o topo. */
|
|
20
|
-
const FILEIRAS = 3;
|
|
21
|
-
/**
|
|
22
|
-
* Onde estão as `n` nuvens de tela neste instante.
|
|
23
|
-
*
|
|
24
|
-
* Os fatores 37, 13, 7 e 5 são PRIMOS COM 3 de propósito: a fileira é `i % 3`, e qualquer variação tirada de
|
|
25
|
-
* `i` com um fator múltiplo de 3 sairia CONSTANTE dentro de uma fileira — a fileira 0, que é a que se vê no
|
|
26
|
-
* tempo bom, teria todas as nuvens do mesmo tamanho, à mesma velocidade e na mesma altura. Já aconteceu.
|
|
27
|
-
*
|
|
28
|
-
* @param t relógio de efeitos (0 congela a deriva — movimento reduzido)
|
|
29
|
-
* @param vw largura do viewport
|
|
30
|
-
* @param n quantas nuvens no total (a fileira 0, ~n/3, é a que aparece no tempo bom)
|
|
31
|
-
* @param junta 0 = poucas e altas (o pôr do sol aparece) · 1 = as três fileiras cobrindo o céu inteiro
|
|
32
|
-
*/
|
|
33
|
-
export function nuvensDeTela(t, vw, n, junta) {
|
|
34
|
-
const j = Math.max(0, Math.min(1, junta)), nuvens = [];
|
|
35
|
-
for (let i = 0; i < n; i++) {
|
|
36
|
-
const sp = 0.05 + ((i * 7) % 4) * 0.021; // velocidades diferentes: elas se alcançam e se abrem
|
|
37
|
-
const esc = (1.15 + ((i * 37) % 5) * 0.18) * (1 + 0.6 * j); // crescem ao fechar até uma encostar na outra
|
|
38
|
-
const larg = NUVEM_W * esc;
|
|
39
|
-
const x = cloudWrapX(t * sp + (i * (vw + larg)) / Math.max(1, n), -larg, vw + larg);
|
|
40
|
-
const aberto = 4 + ((i * 37) % 26); // altura de repouso: a faixa alta do céu
|
|
41
|
-
const fechado = (i % FILEIRAS) * 27 + ((i * 13) % 7); // altura de manta: a fileira desta nuvem
|
|
42
|
-
// A fileira 0 é permanente; as outras entram entre 0,15 e 0,65 de aglomeração — antes da chuva, portanto.
|
|
43
|
-
const surge = i % FILEIRAS === 0 ? 1 : Math.max(0, Math.min(1, (j - 0.15) / 0.5));
|
|
44
|
-
nuvens.push({ x, y: (1 - j) * aberto + j * fechado, esc, alpha: (0.72 + 0.28 * j) * surge });
|
|
45
|
-
}
|
|
46
|
-
return nuvens;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Um cúmulo em retângulos: laje de base e três lóbulos de alturas diferentes. Retângulos e não arcos porque é
|
|
50
|
-
* o que o `Gfx` do PIXI oferece aqui e porque é o que combina com o resto — a nuvem é pixel art, não um
|
|
51
|
-
* desenho vetorial reduzido. `[x, y, w, h]` no espaço da nuvem base (NUVEM_W×NUVEM_H), multiplicado por `esc`.
|
|
52
|
-
*/
|
|
53
|
-
const CUMULO = [
|
|
54
|
-
[0, 8, 26, 4], [2, 5, 9, 3], [3, 3, 6, 2], [4, 2, 4, 1],
|
|
55
|
-
[9, 4, 9, 4], [11, 2, 6, 2], [12, 1, 4, 1],
|
|
56
|
-
[17, 5, 7, 3], [18, 3, 4, 2],
|
|
57
|
-
];
|
|
58
|
-
/** A sombra sob a base — uma linha só. Na Floresta ela é alaranjada: a luz baixa bate por baixo. */
|
|
59
|
-
const CUMULO_SOMBRA = [1, 12, 24, 1];
|
|
60
|
-
export function createSceneSky(ctx) {
|
|
61
|
-
const clouds = [];
|
|
62
|
-
let birds = [];
|
|
63
|
-
let _birdT = 500;
|
|
64
|
-
// seedClouds v3: 7 nuvens à deriva no céu do MUNDO (skyLayer)
|
|
65
|
-
for (let i = 0; i < 7; i++) {
|
|
66
|
-
const s = ctx.criarSprite(ctx.CLOUD_TEX[i % 2]);
|
|
67
|
-
s.alpha = 0.5 + ((i * 37) % 30) / 100;
|
|
68
|
-
s.x = (i * 173) % ctx.WORLD_PX_W;
|
|
69
|
-
s.y = 8 + ((i * 61) % Math.floor(ctx.WORLD_PX_H * 0.30));
|
|
70
|
-
s._v = 0.02 + ((i * 13) % 10) / 300;
|
|
71
|
-
ctx.skyLayer.addChild(s);
|
|
72
|
-
clouds.push(s);
|
|
73
|
-
}
|
|
74
|
-
function stepSky(dt) {
|
|
75
|
-
if (ctx.getRm().decor) {
|
|
76
|
-
if (birds.length) {
|
|
77
|
-
birds.forEach((b) => { ctx.skyLayer.removeChild(b.s); b.s.destroy(); });
|
|
78
|
-
birds = [];
|
|
79
|
-
}
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
for (const c of clouds) {
|
|
83
|
-
c.x += (c._v || 0) * dt;
|
|
84
|
-
if (c.x > ctx.WORLD_PX_W + 50)
|
|
85
|
-
c.x = -50;
|
|
86
|
-
}
|
|
87
|
-
if (birds.length < 3 && ++_birdT >= 520) {
|
|
88
|
-
_birdT = ctx.randInt(0, 300);
|
|
89
|
-
const dir = ctx.rnd() < 0.5 ? 1 : -1;
|
|
90
|
-
const s = ctx.criarSprite(ctx.BIRD_TEX[0]);
|
|
91
|
-
s.scale.x = dir;
|
|
92
|
-
s.x = dir > 0 ? -10 : ctx.WORLD_PX_W + 10;
|
|
93
|
-
s.y = 12 + ctx.rnd() * ctx.WORLD_PX_H * 0.25;
|
|
94
|
-
ctx.skyLayer.addChild(s);
|
|
95
|
-
birds.push({ s, dir, f: 0, t: 0 });
|
|
96
|
-
}
|
|
97
|
-
for (let i = birds.length - 1; i >= 0; i--) {
|
|
98
|
-
const b = birds[i];
|
|
99
|
-
b.s.x += b.dir * 0.7 * dt;
|
|
100
|
-
b.t += dt;
|
|
101
|
-
if (b.t >= 8) {
|
|
102
|
-
b.t = 0;
|
|
103
|
-
b.f = 1 - b.f;
|
|
104
|
-
b.s.texture = ctx.BIRD_TEX[b.f];
|
|
105
|
-
}
|
|
106
|
-
if (b.s.x < -16 || b.s.x > ctx.WORLD_PX_W + 16) {
|
|
107
|
-
ctx.skyLayer.removeChild(b.s);
|
|
108
|
-
b.s.destroy();
|
|
109
|
-
birds.splice(i, 1);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
function drawV3Cloud(g, x, y, col) {
|
|
114
|
-
g.beginFill(ctx.hexN(col[0])).drawRect(x, y + 6, 24, 6).drawRect(x + 2, y + 4, 8, 4).drawRect(x + 3, y + 2, 6, 2)
|
|
115
|
-
.drawRect(x + 8, y + 2, 12, 6).drawRect(x + 10, y, 8, 2).drawRect(x + 16, y + 4, 8, 4).endFill();
|
|
116
|
-
g.beginFill(ctx.hexN(col[1])).drawRect(x + 1, y + 11, 22, 1).endFill();
|
|
117
|
-
}
|
|
118
|
-
function drawCumulo(g, nv, col) {
|
|
119
|
-
const e = nv.esc, R = (r) => {
|
|
120
|
-
g.drawRect(Math.round(nv.x + r[0] * e), Math.round(nv.y + r[1] * e), Math.round(r[2] * e), Math.round(r[3] * e));
|
|
121
|
-
};
|
|
122
|
-
g.beginFill(ctx.hexN(col[0]), nv.alpha);
|
|
123
|
-
for (const r of CUMULO)
|
|
124
|
-
R(r);
|
|
125
|
-
g.endFill();
|
|
126
|
-
g.beginFill(ctx.hexN(col[1]), nv.alpha);
|
|
127
|
-
R(CUMULO_SOMBRA);
|
|
128
|
-
g.endFill();
|
|
129
|
-
}
|
|
130
|
-
function drawV3Grass(g, tx, ty, fl, t) {
|
|
131
|
-
const TILE = ctx.TILE, x = tx * TILE, y = ty * TILE, wind = ctx.getRm().decor ? 0 : Math.sin(t * 0.045 + tx * 0.6);
|
|
132
|
-
g.beginFill(ctx.hexN(fl.base)).drawRect(x, y, TILE, 2).endFill();
|
|
133
|
-
g.beginFill(ctx.hexN(fl.top)).drawRect(x, y, TILE, 1).endFill();
|
|
134
|
-
const seed = (tx * 1103515245 + 12345) >>> 0;
|
|
135
|
-
for (let i = 0; i < 6; i++) {
|
|
136
|
-
const bx = (seed >> (i * 4)) & 15, bh = 2 + ((seed >> (i * 4 + 4)) & 1);
|
|
137
|
-
g.beginFill(ctx.hexN((i & 1) ? fl.bDk : fl.bLt));
|
|
138
|
-
for (let h = 0; h < bh; h++) {
|
|
139
|
-
const dx = Math.round(wind * (h / Math.max(1, bh - 1)) * 1.5);
|
|
140
|
-
g.drawRect(x + bx + dx, y - 1 - h, 1, 1);
|
|
141
|
-
}
|
|
142
|
-
g.endFill();
|
|
143
|
-
}
|
|
144
|
-
if ((seed >> 9) % 7 === 0) {
|
|
145
|
-
const fx = x + 4 + (seed % 7), sh = 4, cy = y - sh - 2;
|
|
146
|
-
g.beginFill(ctx.hexN(fl.bDk));
|
|
147
|
-
let topDx = 0;
|
|
148
|
-
for (let h = 0; h < sh; h++) {
|
|
149
|
-
topDx = Math.round(wind * (h / sh) * 2.4);
|
|
150
|
-
g.drawRect(fx + topDx, y - 1 - h, 1, 1);
|
|
151
|
-
}
|
|
152
|
-
g.endFill();
|
|
153
|
-
const bxC = fx + topDx;
|
|
154
|
-
g.beginFill(ctx.hexN(fl.petals[(seed >>> 17) % fl.petals.length])).drawRect(bxC - 1, cy + 1, 3, 1).drawRect(bxC, cy, 1, 3).endFill(); // >>> (v3 usava >> e o canvas engolia o índice; PIXI lança)
|
|
155
|
-
g.beginFill(ctx.hexN(fl.center)).drawRect(bxC, cy + 1, 1, 1).endFill();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
function stepV3Decor() {
|
|
159
|
-
const T = ctx.CENARIOS[ctx.getCenario()] || {};
|
|
160
|
-
ctx.starsG.clear();
|
|
161
|
-
ctx.skyDecoG.clear();
|
|
162
|
-
ctx.nuvemG.clear();
|
|
163
|
-
ctx.fogG.clear();
|
|
164
|
-
ctx.grassG.clear();
|
|
165
|
-
ctx.themeFxG.clear();
|
|
166
|
-
ctx.themeFxBackG.clear();
|
|
167
|
-
// A pergunta é "este tema tem decoração viva?", e ela se responde OLHANDO A DECORAÇÃO. Antes era
|
|
168
|
-
// `!T.v3`, que respondia "este tema não é a Cidade" — o mesmo resultado por acidente, enquanto a Cidade
|
|
169
|
-
// era o único tema sem céu vivo. Um tema de fundo raster COM borboletas quebrava aquilo; este não.
|
|
170
|
-
if (!T.decor?.length || ctx.DIRECT_CFG[ctx.getVizMode()])
|
|
171
|
-
return; // alto contraste dispensa decor
|
|
172
|
-
const t = ctx.getFxClock(), d = T.decor || [], vw = ctx.LOGICAL_W, vh = ctx.LOGICAL_H, reduzido = !!ctx.getRm().decor;
|
|
173
|
-
// TELA: estrelas (sparkles v3) — cintilam a ~0,3Hz
|
|
174
|
-
if (!reduzido && d.includes('sparkles')) {
|
|
175
|
-
const top = Math.max(1, Math.floor(vh * 0.7));
|
|
176
|
-
for (let i = 0; i < 22; i++) {
|
|
177
|
-
const a = 0.3 + 0.35 * Math.sin(t * 0.03 + i * 1.3);
|
|
178
|
-
if (a <= 0.05)
|
|
179
|
-
continue;
|
|
180
|
-
ctx.starsG.beginFill(0xffffff, a).drawRect((i * 73) % vw, (i * 49) % top, 1, 1).endFill();
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
// TELA: nuvens. Dois caminhos, e a diferença é DADO, não gosto:
|
|
184
|
-
// · tema com `nuvens: N` (hoje só a Floresta) — manta viva de N cúmulos que fecha e abre com a chuva;
|
|
185
|
-
// · os outros três — as 3 lajes da v3, derivas 0.08/0.05/0.11, VERBATIM. Não passaram por aqui de graça:
|
|
186
|
-
// o Dev pediu o céu novo para a Floresta, e mudar a aparência dos outros três de carona seria alargar
|
|
187
|
-
// o pedido por conta própria. Quando ele quiser, é trocar um número na tabela de cenários.
|
|
188
|
-
if (d.includes('nuvens') && T.cloud && T.nuvens) {
|
|
189
|
-
const col = T.cloud, junta = reduzido ? 0 : ctx.getAglomeracao();
|
|
190
|
-
// `nuvemG` e não `skyDecoG`: a manta fica ATRÁS das bandas de morro (ver a nota no ctx).
|
|
191
|
-
for (const nv of nuvensDeTela(reduzido ? 0 : t, vw, T.nuvens, junta))
|
|
192
|
-
drawCumulo(ctx.nuvemG, nv, col);
|
|
193
|
-
}
|
|
194
|
-
else if (d.includes('nuvens') && T.cloud) {
|
|
195
|
-
const col = T.cloud, defs = [{ y: 6, sp: 0.08, off: 0 }, { y: 20, sp: 0.05, off: 130 }, { y: 12, sp: 0.11, off: 250 }];
|
|
196
|
-
for (const c0 of defs) {
|
|
197
|
-
const x = cloudWrapX((reduzido ? 0 : t) * c0.sp + c0.off, -44, vw + 64);
|
|
198
|
-
drawV3Cloud(ctx.skyDecoG, x, c0.y, col);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (!reduzido && d.includes('passaros')) {
|
|
202
|
-
ctx.skyDecoG.beginFill(0x282837, 0.7);
|
|
203
|
-
for (let i = 0; i < 3; i++) {
|
|
204
|
-
const bx = ((t * (0.25 + i * 0.07) + i * 90) % (vw + 20)) - 10, by = 14 + i * 9 + Math.sin(t * 0.04 + i) * 2, f = Math.sin(t * 0.2 + i) > 0 ? 1 : 2;
|
|
205
|
-
const X = Math.round(bx), Y = Math.round(by);
|
|
206
|
-
ctx.skyDecoG.drawRect(X - 2, Y + f, 2, 1).drawRect(X + 1, Y + f, 2, 1).drawRect(X, Y, 1, 1);
|
|
207
|
-
}
|
|
208
|
-
ctx.skyDecoG.endFill();
|
|
209
|
-
}
|
|
210
|
-
// TELA: névoa do amanhecer (3 camadas onduladas) — v3 exato, na FRENTE
|
|
211
|
-
if (d.includes('nevoa')) {
|
|
212
|
-
const base = Math.floor(vh * 0.72);
|
|
213
|
-
const Ls = [{ y: base, drift: 0.30, amp: 3, op: 0.06, freq: 0.080 }, { y: base + 6, drift: 0.55, amp: 4, op: 0.08, freq: 0.060 }, { y: base + 13, drift: 0.85, amp: 5, op: 0.10, freq: 0.050 }];
|
|
214
|
-
for (const L of Ls) {
|
|
215
|
-
ctx.fogG.beginFill(0xdee2ec, L.op);
|
|
216
|
-
for (let x = 0; x < vw; x += 2) {
|
|
217
|
-
const top = L.y + Math.round(L.amp * Math.sin((x + (reduzido ? 0 : t) * L.drift) * L.freq));
|
|
218
|
-
ctx.fogG.drawRect(x, top, 2, vh - top);
|
|
219
|
-
}
|
|
220
|
-
ctx.fogG.endFill();
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
// MUNDO (culled por jogador, dedupe): grama em TODA superfície + minhocas/vagalumes/borboletas
|
|
224
|
-
const fl = ctx.THEME_FLORA[ctx.getCenario()], seen = new Set();
|
|
225
|
-
for (const pl of ctx.getPlayers()) {
|
|
226
|
-
if (pl.quit)
|
|
227
|
-
continue;
|
|
228
|
-
const camX = Math.max(0, Math.min(pl.x - vw / 2, ctx.WORLD_PX_W - vw)), camY = Math.max(0, Math.min((pl.y - ctx.BOX.h / 2) - vh / 2, ctx.WORLD_PX_H - vh));
|
|
229
|
-
// Margem de recorte = 3 tiles em TODAS as direções: cobre a flutuação da fauna (borboleta sobe ~34px ≈ 2 tiles,
|
|
230
|
-
// deriva ~19px) E reduz pop-in do decor na beirada ao mover a câmera → mais fluido (José). (#69)
|
|
231
|
-
const tx0 = Math.max(0, Math.floor(camX / ctx.TILE) - 3), tx1 = Math.min(ctx.WORLD_W - 1, Math.floor((camX + vw) / ctx.TILE) + 3);
|
|
232
|
-
const ty0 = Math.max(0, Math.floor(camY / ctx.TILE) - 3), ty1 = Math.min(ctx.WORLD_H - 1, Math.floor((camY + vh) / ctx.TILE) + 3);
|
|
233
|
-
for (let tx = tx0; tx <= tx1; tx++) {
|
|
234
|
-
for (let ty = ty0; ty <= ty1; ty++) {
|
|
235
|
-
const st = ctx.tileAt(tx, ty); // flora/fauna SÓ em PEDRA(2)/parede(6) — nunca em trampolim(5), lava(9) ou escada(4). #69
|
|
236
|
-
if (!((st === 2 || st === 6) && !ctx.solidAt(tx, ty - 1) && ctx.tileAt(tx, ty - 1) !== 3 && ctx.tileAt(tx, ty - 1) !== 9))
|
|
237
|
-
continue;
|
|
238
|
-
const k = tx + ',' + ty;
|
|
239
|
-
if (seen.has('g' + k))
|
|
240
|
-
continue;
|
|
241
|
-
seen.add('g' + k);
|
|
242
|
-
// densidade: só uma FRAÇÃO das superfícies recebe flora (getGrassDensity), escolhidas por hash+semente da fase.
|
|
243
|
-
if (fl && ((tx * 668265263 ^ ty * 2246822519 ^ ctx.getDecorSeed()) >>> 0) % 1000 < ctx.getGrassDensity() * 1000)
|
|
244
|
-
drawV3Grass(ctx.grassG, tx, ty, fl, t);
|
|
245
|
-
// #69: fauna distribuída POR SUPERFÍCIE (hash de tx,ty), não "1 por coluna no topo" — aparece em todas as
|
|
246
|
-
// alturas, inclusive perto do player em corredores baixos / junto à lava (antes ancorava só na superfície + alta).
|
|
247
|
-
if (d.includes('minhocas') && ((tx * 668265263 ^ ty * 374761393) >>> 0) % 6 === 0 && !seen.has('w' + k)) {
|
|
248
|
-
seen.add('w' + k); // ~1/6 das superfícies
|
|
249
|
-
ctx.themeFxG.beginFill(0xc47b8a);
|
|
250
|
-
const bx = tx * ctx.TILE + 5, by = ty * ctx.TILE + 4;
|
|
251
|
-
for (let s2 = 0; s2 < 5; s2++)
|
|
252
|
-
ctx.themeFxG.drawRect(bx + s2, by + Math.round(reduzido ? 0 : Math.sin(t * 0.15 + tx * 0.7 + s2 * 0.8)), 1, 1);
|
|
253
|
-
ctx.themeFxG.endFill();
|
|
254
|
-
}
|
|
255
|
-
const bh = (tx * 374761393 ^ ty * 668265263) >>> 0; // hash por superfície (cor + lado + gate)
|
|
256
|
-
if (!reduzido && d.includes('borboletas') && bh % 7 === 0 && !seen.has('b' + k)) {
|
|
257
|
-
seen.add('b' + k); // ~1/7 das superfícies
|
|
258
|
-
const cols = [0xff8c42, 0xffd166, 0xef476f, 0xfca5d4, 0xf4a261, 0xe9c46a];
|
|
259
|
-
const groundY = ty * ctx.TILE, wx = tx * ctx.TILE + 8 + 14 * Math.sin(t * 0.015 + tx + ty) + 5 * Math.cos(t * 0.04 + tx);
|
|
260
|
-
const rise = 8 + 26 * (0.5 + 0.5 * Math.sin(t * 0.012 + tx * 1.3 + ty)), wy = groundY - rise + 4 * Math.sin(t * 0.05 + tx);
|
|
261
|
-
const flap = Math.abs(Math.sin(t * 0.4 + tx * 0.7 + ty)), w = 1 + Math.round(flap * 2), X = Math.round(wx), Y = Math.round(wy);
|
|
262
|
-
const bfg = (bh & 1) ? ctx.themeFxG : ctx.themeFxBackG; // metade ATRÁS / metade À FRENTE do player — #69
|
|
263
|
-
bfg.beginFill(cols[bh % cols.length]).drawRect(X - w, Y, w, 2).drawRect(X + 2, Y, w, 2).endFill();
|
|
264
|
-
bfg.beginFill(0x3a2a1a).drawRect(X, Y, 2, 2).endFill();
|
|
265
|
-
}
|
|
266
|
-
// (sem break: grama em TODAS as superfícies expostas da coluna, não só a mais alta — senão some perto do player. #69)
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
if (!reduzido && d.includes('vagalumes')) {
|
|
270
|
-
const cell = 64; // drawFireflies v3: grade hash fixa no mundo, só no ar
|
|
271
|
-
const cx0 = Math.floor(camX / cell) - 1, cx1 = Math.floor((camX + vw) / cell) + 1, cy0 = Math.floor(camY / cell) - 1, cy1 = Math.floor((camY + vh) / cell) + 1;
|
|
272
|
-
for (let cyi = cy0; cyi <= cy1; cyi++)
|
|
273
|
-
for (let cxi = cx0; cxi <= cx1; cxi++) {
|
|
274
|
-
const h = ((cxi * 73856093) ^ (cyi * 19349663)) >>> 0;
|
|
275
|
-
if (h % 3 !== 0)
|
|
276
|
-
continue;
|
|
277
|
-
const k = 'f' + cxi + ',' + cyi;
|
|
278
|
-
if (seen.has(k))
|
|
279
|
-
continue;
|
|
280
|
-
seen.add(k);
|
|
281
|
-
const ph = ((h >> 4) % 628) / 100;
|
|
282
|
-
const wx = cxi * cell + 8 + (h % (cell - 16)) + 8 * Math.sin(t * 0.013 + ph), wy = cyi * cell + 8 + ((h >> 9) % (cell - 16)) + 6 * Math.cos(t * 0.017 + ph * 1.3);
|
|
283
|
-
const a = 0.45 + 0.45 * Math.sin(t * 0.05 + ph);
|
|
284
|
-
if (a <= 0.06)
|
|
285
|
-
continue;
|
|
286
|
-
if (ctx.solidAt(Math.floor(wx / ctx.TILE), Math.floor(wy / ctx.TILE)))
|
|
287
|
-
continue;
|
|
288
|
-
ctx.themeFxBackG.beginFill(0xfff096, a * 0.35).drawRect(wx - 1, wy - 1, 3, 3).endFill(); // vaga-lumes ao FUNDO (atrás do player) — #69
|
|
289
|
-
ctx.themeFxBackG.beginFill(0xffffbe, a).drawRect(wx, wy, 1, 1).endFill();
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
return { stepSky, stepV3Decor, getClouds: () => clouds, getBirds: () => birds };
|
|
295
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
import { type CenarioTema } from './cenario-data.js';
|
|
3
|
-
import type { Tileset } from './world-tex.js';
|
|
4
|
-
/** `HTMLImageElement`, reduzido ao que o carregamento usa. */
|
|
5
|
-
/** O tileset de um tema: interior + topo. Corresponde ao `Tileset` de render/world-tex. */
|
|
6
|
-
/**
|
|
7
|
-
* Os dois tiles do tema. `Tileset` vem de `render/world-tex`, que é o dono — ele os desenha, e por isso
|
|
8
|
-
* sabe que são `CanvasImageSource`. A versão que estava aqui dizia `unknown` nos dois campos: uma
|
|
9
|
-
* descrição que apenas SE PARECE com a real, que é o que o ADR-0039 proíbe. O `unknown` não protegia
|
|
10
|
-
* nada — só empurrava a conversão para quem recebesse.
|
|
11
|
-
*/
|
|
12
|
-
export type TilesDoTema = Tileset;
|
|
13
|
-
/** `worldSprite` — só a troca de textura. */
|
|
14
|
-
interface SpriteComTextura {
|
|
15
|
-
texture: unknown;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Baixa `tile_fill.png` + `tile_surface.png` do tema. Resolve com os dois, ou com `null` se QUALQUER um falhar.
|
|
19
|
-
*
|
|
20
|
-
* Verbatim do `loadTileImages` do monólito, `fail` inclusive: quando uma das imagens erra, o `res(null)` sai na
|
|
21
|
-
* hora e a outra, ao chegar, encontra `fail` ligado e não resolve por cima. A promessa nunca REJEITA — tema sem
|
|
22
|
-
* arte é um caminho normal (a Cidade não tem tileset próprio), não um erro, e uma rejeição aqui derrubaria a
|
|
23
|
-
* troca de cenário inteira. Nunca pendura: os dois lados de cada imagem estão cobertos.
|
|
24
|
-
*/
|
|
25
|
-
export interface SetCenarioCtx {
|
|
26
|
-
setCenarioValue: (theme: string) => void;
|
|
27
|
-
getCenario: () => string;
|
|
28
|
-
aplicarTemaParallax: (theme: string, T: CenarioTema) => void;
|
|
29
|
-
/**
|
|
30
|
-
* Os tiles do tema, SÍNCRONOS. Eram dois PNG baixados por `carregarTilesDoTema`; hoje a Cidade os desenha
|
|
31
|
-
* (render/city-tiles) e os outros temas devolvem `null`, que é o caminho dos blocos v3 — o mesmo `null` de
|
|
32
|
-
* antes, agora imediato em vez de prometido.
|
|
33
|
-
*/
|
|
34
|
-
getTiles: (tema: string) => TilesDoTema | null;
|
|
35
|
-
/** Builder da canvas do nível. `HTMLCanvasElement` e não `unknown`: é o que o `render/world-tex`
|
|
36
|
-
* devolve, e o `unknown` só adiava a conversão até o `main.ts`, onde ela virava erro (ADR-0039). */
|
|
37
|
-
worldCanvas: (tiles: TilesDoTema | null) => HTMLCanvasElement;
|
|
38
|
-
tex: (canvas: HTMLCanvasElement) => unknown;
|
|
39
|
-
clearWorldTexCache: () => void;
|
|
40
|
-
/** Escreve `worldCanvasNormal`/`worldTexNormal` (os dois `let` do composition root), sempre em par. A
|
|
41
|
-
* TEXTURA segue `unknown` de propósito — é objeto do PixiJS, e este módulo roda no project `node`. */
|
|
42
|
-
setWorldTextures: (canvas: HTMLCanvasElement, textura: unknown) => void;
|
|
43
|
-
isVizReady: () => boolean;
|
|
44
|
-
reapplyVizAll: () => void;
|
|
45
|
-
getWorldSprite: () => SpriteComTextura | null | undefined;
|
|
46
|
-
isVidaReady: () => boolean;
|
|
47
|
-
applyCenarioVida: () => void;
|
|
48
|
-
}
|
|
49
|
-
export interface SetCenarioApi {
|
|
50
|
-
/** Troca o cenário. Valida, persiste, repinta o fundo, refaz o mundo e avisa quem depende. */
|
|
51
|
-
setCenario(theme: string): void;
|
|
52
|
-
}
|
|
53
|
-
export declare function createSetCenario(ctx: SetCenarioCtx): SetCenarioApi;
|
|
54
|
-
export {};
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
// render/set-cenario — TROCAR DE CENÁRIO: a única porta por onde o jogo muda de mundo visual.
|
|
3
|
-
//
|
|
4
|
-
// `setCenario(tema)` é chamado de quatro lugares muito diferentes — o splash (a criança escolhe antes de
|
|
5
|
-
// começar), a demonstração automática (game/attract.ts sorteia), o console de testes (`window.__incl`) e o
|
|
6
|
-
// BOOT (restauração do tema salvo em `incl_cenario`) — e sempre faz a mesma sequência de cinco passos. Esta
|
|
7
|
-
// função é ORQUESTRAÇÃO: ela não desenha nada, não gera textura nenhuma e não sabe fórmula alguma. Ela decide
|
|
8
|
-
// QUEM é avisado, EM QUE ORDEM, e o que fazer quando a resposta demora.
|
|
9
|
-
//
|
|
10
|
-
// ======================= POR QUE ISTO É UM MÓDULO, E NÃO FIAÇÃO NO game.js =======================
|
|
11
|
-
// A tentação era deixá-la no monólito como cola: quase toda linha dela chama alguém de fora, e o contexto
|
|
12
|
-
// injetado aqui é largo. Três coisas decidiram o contrário, e nenhuma delas é estética:
|
|
13
|
-
//
|
|
14
|
-
// 1. A GUARDA DE CORRIDA. Os tiles do tema (`tile_fill.png`/`tile_surface.png`) chegam quando chegarem, e
|
|
15
|
-
// entre o pedido e a chegada a pessoa pode ter trocado de cenário de novo — no splash isso é UM segundo
|
|
16
|
-
// de distância, e na demonstração automática o troca-troca é o comportamento normal. Por isso o `.then`
|
|
17
|
-
// abre com `if (getCenario() !== theme) return`: um tileset atrasado do Campo não pode repintar o chão da
|
|
18
|
-
// Floresta. É a espécie de defeito que aparece uma vez a cada cem trocas, some quando alguém vai olhar, e
|
|
19
|
-
// não tem como ser reproduzido de mão com confiança. Fora de um módulo, ele não tem como ter teste.
|
|
20
|
-
// 2. A ORDEM DOS AVISOS. `setCenarioValue` (core/state.js — valor, persistência e evento) vem ANTES de
|
|
21
|
-
// qualquer trabalho de textura, e é isso que faz a guarda de corrida do item 1 funcionar: quem compara
|
|
22
|
-
// `getCenario() !== theme` está comparando com o valor que ESTA chamada gravou. Inverter as duas linhas
|
|
23
|
-
// não quebra nada visível e desarma a guarda inteira, silenciosamente.
|
|
24
|
-
// 3. A VALIDAÇÃO. "Tema desconhecido → 'cidade'" é a rede que segura um `incl_cenario` de uma versão antiga
|
|
25
|
-
// (e o boot ainda migra a chave 'noite' → 'espaco', do lado do game.js). Ela virou
|
|
26
|
-
// `normalizarCenario` em render/cenario-data.ts, com o comportamento atual PREGADO por teste, defeito de
|
|
27
|
-
// herança de protótipo incluído — ver o cabeçalho de lá.
|
|
28
|
-
//
|
|
29
|
-
// ======================= OS CINCO PASSOS, E POR QUE NESTA ORDEM =======================
|
|
30
|
-
// 1. valida o tema → `normalizarCenario`
|
|
31
|
-
// 2. grava e persiste → `setCenarioValue` (core/state.js). ANTES do resto: arma as guardas de corrida.
|
|
32
|
-
// 3. veste o FUNDO → `aplicarTemaParallax` (render/parallax.ts) — síncrono nos temas v3, PNG na Cidade
|
|
33
|
-
// 4. pede os TILES do tema → assíncrono; ao chegar, refaz a textura do MUNDO e reaplica os modos de visão
|
|
34
|
-
// 5. avisa quem depende → vida ambiente da Cidade (síncrono) e alto contraste (síncrono)
|
|
35
|
-
// O passo 5 roda ANTES de o passo 4 terminar, e isso é de propósito: a vida ambiente e o recolor não esperam
|
|
36
|
-
// download nenhum. O passo 4 reaplica o recolor DE NOVO quando os tiles chegam, porque aí a textura do mundo
|
|
37
|
-
// mudou — os dois `reapplyVizAll` não são duplicação, são dois momentos.
|
|
38
|
-
//
|
|
39
|
-
// ======================= O QUE FICOU DE FORA, E POR QUÊ =======================
|
|
40
|
-
// · O DADO dos temas → render/cenario-data.ts (folha, sem dependência). Importado aqui, não injetado: é um
|
|
41
|
-
// módulo sem efeito nenhum, então importá-lo não cria risco de ordem de boot.
|
|
42
|
-
// · A geometria e a pintura das 3 camadas de fundo → render/parallax.ts. Este módulo só chama
|
|
43
|
-
// `aplicarTemaParallax` e não sabe o que é `tilePosition`.
|
|
44
|
-
// · As FÓRMULAS de céu/morros/placeholder → render/scene-parallax.ts (desde o Estágio 4).
|
|
45
|
-
// · O BUILDER da textura do mundo (`worldCanvas`) → render/world-tex.ts. Aqui só entra o resultado.
|
|
46
|
-
// · A migração da chave antiga ('noite' → 'espaco') e o `try/catch` do boot FICAM no game.js: são política de
|
|
47
|
-
// persistência e rede de segurança do arranque, não regra de cenário.
|
|
48
|
-
// · `worldCanvasNormal`/`worldTexNormal` continuam sendo `let` do game.js — são lidos por
|
|
49
|
-
// render/high-contrast (por getter) e pelo render estático. Este módulo os ESCREVE por um único
|
|
50
|
-
// `setWorldTextures(canvas, textura)`, para que a dupla nunca fique meio trocada.
|
|
51
|
-
//
|
|
52
|
-
// ======================= ⚠️ A ARMADILHA DE BOOT DESTA REGIÃO =======================
|
|
53
|
-
// O `setCenario` do boot é chamado MUITO cedo — logo depois de `initViewports`, e antes de metade do jogo
|
|
54
|
-
// existir. O monólito o embrulha num `try/catch` que cai para 'cidade' EM SILÊNCIO, e é por isso que uma
|
|
55
|
-
// dependência ausente aqui não vira erro: vira "o tema que a criança escolheu não voltou, e ninguém sabe por
|
|
56
|
-
// quê". Todas as dependências que ainda não existem naquele instante entram por GETTER ou por CALLBACK, nunca
|
|
57
|
-
// por valor, exatamente para que a montagem do ctx não toque em `const` em TDZ:
|
|
58
|
-
// · `isVizReady`/`reapplyVizAll` — `vizReady` só vira `true` lá no fim do boot; no arranque as duas voltas
|
|
59
|
-
// de `reapplyVizAll` são puladas, e quem pinta é o `else if (worldSprite)` do passo 4.
|
|
60
|
-
// · `getWorldSprite` — o sprite do mundo nasce DEPOIS deste ponto no game.js. Só é tocado dentro do `.then`,
|
|
61
|
-
// que é assíncrono, mas o getter garante que a montagem do ctx não o dereferencie.
|
|
62
|
-
// · `isVidaReady`/`applyCenarioVida` — `sceneCity` nasce centenas de linhas depois; `_vidaReady` é `false`
|
|
63
|
-
// no boot justamente para que esta chamada seja pulada, e o game.js chama `applyCenarioVida()` uma vez, à
|
|
64
|
-
// mão, quando a cena da cidade fica pronta.
|
|
65
|
-
// · `clearWorldTexCache` vem de render/high-contrast, que é um módulo de verdade e já existe no import.
|
|
66
|
-
//
|
|
67
|
-
// SEM I/O NO IMPORT, e agora sem I/O NENHUM: `carregarTilesDoTema` (a carga assíncrona dos PNG de tile, com a
|
|
68
|
-
// guarda de corrida que ela exigia) foi APAGADA no item 17 — os tiles da Cidade viraram dados em
|
|
69
|
-
// `render/city-tiles`. O corpo do módulo não pede nada, e a troca de cenário virou síncrona.
|
|
70
|
-
// Ver docs/5-Refactoring/plano-modularizacao-mapa.md (D2-b).
|
|
71
|
-
import { CENARIOS, normalizarCenario } from './cenario-data.js';
|
|
72
|
-
export function createSetCenario(ctx) {
|
|
73
|
-
function setCenario(theme) {
|
|
74
|
-
const tema = normalizarCenario(theme);
|
|
75
|
-
ctx.setCenarioValue(tema); // ANTES do trabalho de textura: é o valor com que as guardas de corrida comparam
|
|
76
|
-
const T = CENARIOS[tema];
|
|
77
|
-
ctx.aplicarTemaParallax(tema, T); // as 3 camadas de fundo (render/parallax.ts)
|
|
78
|
-
// TILES do tema: SÍNCRONOS. v3: blocos Clarity SEM recolor (o `worldCanvas` cai no desenho da v3 com null).
|
|
79
|
-
//
|
|
80
|
-
// A GUARDA DE CORRIDA MORREU JUNTO COM A CORRIDA. Havia um `if (getCenario() !== tema) return` aqui, e ele
|
|
81
|
-
// estava certo enquanto os tiles chegavam por `Promise`: trocar de cenário durante o download deixava a
|
|
82
|
-
// resposta antiga pintar por cima da nova. Sem download não há "durante", e guarda contra corrida que não
|
|
83
|
-
// existe mais é código que só pode confundir quem o ler depois.
|
|
84
|
-
const tiles = ctx.getTiles(tema);
|
|
85
|
-
const cv = ctx.worldCanvas(tiles), t = ctx.tex(cv);
|
|
86
|
-
ctx.setWorldTextures(cv, t);
|
|
87
|
-
ctx.clearWorldTexCache();
|
|
88
|
-
if (ctx.isVizReady())
|
|
89
|
-
ctx.reapplyVizAll();
|
|
90
|
-
else {
|
|
91
|
-
const sprite = ctx.getWorldSprite(); // no boot o recolor ainda não existe: pinta o sprite direto
|
|
92
|
-
if (sprite)
|
|
93
|
-
sprite.texture = t;
|
|
94
|
-
}
|
|
95
|
-
// (o Cenário saiu do menu de pausa — a escolha é do J1 no splash, antes de começar)
|
|
96
|
-
if (ctx.isVidaReady())
|
|
97
|
-
ctx.applyCenarioVida(); // liga/desliga carros/deco da cidade e semeia o tema
|
|
98
|
-
if (ctx.isVizReady())
|
|
99
|
-
ctx.reapplyVizAll(); // reaplica o cenário recolorido (só após o init montar tudo)
|
|
100
|
-
// incl_cenario é persistido por setCenarioValue (core/state.js)
|
|
101
|
-
}
|
|
102
|
-
return { setCenario };
|
|
103
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
-
import { tex } from './canvas.js';
|
|
3
|
-
type Tex = ReturnType<typeof tex>;
|
|
4
|
-
/** Alto-contraste plumbing this module needs but does not own — game.js keeps the mutable source of truth
|
|
5
|
-
* (world/coin/tree/parallax texture pipelines share the same DIRECT_CFG/directSpriteCanvas; `disp` also
|
|
6
|
-
* serves quiz rendering outside textures). Call once at boot, before the first letterTexture/pupTexFor. */
|
|
7
|
-
export interface TexturesCtx {
|
|
8
|
-
/**
|
|
9
|
-
* IDS DAS FORMAS a pré-desenhar. Eram importados de `game/activity-content` (as dez formas da atividade de
|
|
10
|
-
* soma e subtração) — uma aresta de importação da ENGINE para o JOGO por causa de UMA linha do `initTextures`.
|
|
11
|
-
*
|
|
12
|
-
* O ADR-0027 conta essas arestas porque elas decidem o que um pacote arrasta: um módulo de render que importa
|
|
13
|
-
* conteúdo de matemática não se empacota sem levar o currículo junto. E o custo escondido era maior que a
|
|
14
|
-
* aresta — esta era também a única razão de `render/viz-setters` arrastar `game/`, por transitividade.
|
|
15
|
-
*
|
|
16
|
-
* Só os IDS, e não a lista de formas: este módulo desenha por id (`shapeTexture(id)`) e nunca leu o nome em
|
|
17
|
-
* português. Pedir a estrutura inteira seria pedir mais do que se usa, que é como uma aresta volta.
|
|
18
|
-
*/
|
|
19
|
-
shapes: readonly string[];
|
|
20
|
-
/**
|
|
21
|
-
* OS PODERES a pré-desenhar, com a arte pronta. Mesma razão de `shapes`, um passo adiante: além da lista,
|
|
22
|
-
* entra o CANVAS de cada um — porque o ícone de voo, o de ventosa e o da bengala de corrida são arte deste
|
|
23
|
-
* jogo, e não geometria que a engine saiba desenhar sozinha.
|
|
24
|
-
*
|
|
25
|
-
* Era `PUP_KINDS` cravado aqui + `import { powerupCanvas } from './props.js'`. A arte mudou de camada no
|
|
26
|
-
* item 19 (`game/props`), e esta era a única aresta que a mudança criaria — some por injeção, e não por
|
|
27
|
-
* mudança de endereço.
|
|
28
|
-
*/
|
|
29
|
-
powerups: readonly {
|
|
30
|
-
readonly kind: string;
|
|
31
|
-
readonly canvas: HTMLCanvasElement;
|
|
32
|
-
}[];
|
|
33
|
-
disp: (s: string) => string;
|
|
34
|
-
directCfg: Record<string, {
|
|
35
|
-
off: number;
|
|
36
|
-
mul: number;
|
|
37
|
-
bgMul: number;
|
|
38
|
-
}>;
|
|
39
|
-
directSpriteCanvas: (src: HTMLCanvasElement, mode: string) => HTMLCanvasElement;
|
|
40
|
-
}
|
|
41
|
-
/** Vertex list for the polygon shapes (PURE — no canvas). null = drawn via an arc/ellipse/rect primitive instead. */
|
|
42
|
-
export declare function shapePoints(id: string, cx: number, cy: number, r: number): [number, number][] | null;
|
|
43
|
-
/** 16×16 icon for a soma/subtração shape id (cyan fill + dark outline). */
|
|
44
|
-
export declare function shapeTexture(id: string): Tex;
|
|
45
|
-
/** Cache keyed by shape id — filled by initTextures (the injected id list never changes at runtime). */
|
|
46
|
-
export declare const SHAPE_TEX: Record<string, Tex>;
|
|
47
|
-
/** 16×16 rounded-square tile with a single letter (uses the injected `disp`, which honors letterCase). */
|
|
48
|
-
export declare function letterTexture(ch: string): Tex;
|
|
49
|
-
/** Normal-mode cache — filled by initTextures. */
|
|
50
|
-
export declare const PUP_TEX: Record<string, Tex>;
|
|
51
|
-
/** Power-up texture for `mode` (normal or alto-contraste-direto). Cached per mode×kind. */
|
|
52
|
-
export declare function pupTexFor(kind: string, mode: string): Tex;
|
|
53
|
-
/** Drops the alto-contraste power-up cache — game.js's _rebakeDirect clears world/coin/pup/player caches
|
|
54
|
-
* together whenever outline thickness or role colors change. Call it from there instead of touching a private. */
|
|
55
|
-
export declare function resetPupTexCache(): void;
|
|
56
|
-
/** Fills SHAPE_TEX/PUP_TEX (+ wires the alto-contraste deps). Call ONCE at boot, before the first rebuildCoins/
|
|
57
|
-
* rebuildExtras — mirrors game.js's old eager `const SHAPE_TEX=...; SOMASUB_SHAPES.forEach(...)` / PUP_CANVAS
|
|
58
|
-
* forEach, just deferred past import time so this module stays side-effect-free to import (node tests included). */
|
|
59
|
-
export declare function initTextures(ctx: TexturesCtx): void;
|
|
60
|
-
export declare const PIP_W = 24, PIP_H = 32;
|
|
61
|
-
export declare const PIP_PAL: string[];
|
|
62
|
-
export declare const PIP_IDLE: string[];
|
|
63
|
-
export declare const PIP_WALK: string[][];
|
|
64
|
-
/** Valid palette digit (7 = transparent background, skipped); robust to short/ragged rows. */
|
|
65
|
-
export declare const isPix: (ch: string) => boolean;
|
|
66
|
-
export declare function indexedToCanvas(rows: string[]): HTMLCanvasElement;
|
|
67
|
-
export declare function silhouetteCanvasIdx(rows: string[]): HTMLCanvasElement;
|
|
68
|
-
export declare const PLAYER_IDLE: string[];
|
|
69
|
-
export declare const PLAYER_WALK: string[];
|
|
70
|
-
export declare const PLAYER_CLIMB: string[];
|
|
71
|
-
export declare const PLAYER_HURT: string[];
|
|
72
|
-
/** Verbatim reproduction of game.js's old eager `const TEX={idle:tex(spriteToCanvas(PLAYER_IDLE)),...}` — never
|
|
73
|
-
* auto-run (see header note above). Unused today; kept callable in case a future caller resurfaces. */
|
|
74
|
-
export declare function buildLegacyPlayerTex(): Record<string, Tex>;
|
|
75
|
-
export {};
|