Historie penetrací
Záznamy skutečných vstupů jsou uložené na cílovém tělese a nemění fyziku.
target_body.set_penetration_history_capacity(32);
var records = target_body.get_penetration_records();
var count = target_body.get_penetration_record_count();Kapacita je celé číslo 0–4096; default 0 historii vypíná. Limit se týká dokončených záznamů, aktivní jsou chráněné a mohou zvýšit celkový počet nad kapacitu. Zmenšení ponechá nejnovější dokončené záznamy. Zapnutí nedoplňuje libovolnou minulost.
Záznam#
| Pole | Význam |
|---|---|
| id, active | ID záznamu a stav probíhající penetrace. |
| entry_step, end_step, end_reason | Fyzikální kroky a číselný důvod ukončení. |
| source_body, source_tip | Identifikátory původu; nejsou zárukou stále platných wrapperů. |
| local_position, local_axis, local_normal, local_rotation | V lokálním prostoru cíle; rotace XYZW. |
| max_depth_reached, current_depth, final_depth | Hloubky v metrech; final_depth je u aktivního záznamu null. |
get_penetration_record(index) je od nuly; mimo rozsah vrací undefined. get_penetration_records() vrací kopii snapshotu. clear_penetration_history() smaže pouze dokončené záznamy; aktivní vztahy zůstanou. Kapacita 0 odstraní i aktivní záznamy historie, nikoli fyzikální vztahy.
Debug#
jolt_debug_enable(true);
jolt_debug_set(JOLT_DEBUG_PENETRATION, true);
jolt_debug_set_penetration_history(true);Debug zobrazuje nejvýše pět nejnovějších uložených záznamů na cíl. Historie není damage, díra do meshe ani permanentní deformace.
Ověřené kontrakty operací#
Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.
| Symbol / vlastník | Signatura | Kontrakt operace |
|---|---|---|
| JoltBody.get_penetration_history_capacity | JoltBody.get_penetration_history_capacity() | Číselná kapacita / počet aktuálních záznamů; při chybě 0. Počet může přesáhnout kapacitu hotových záznamů díky chráněným aktivním záznamům. |
| JoltBody.get_penetration_record_count | JoltBody.get_penetration_record_count() | Číselná kapacita / počet aktuálních záznamů; při chybě 0. Počet může přesáhnout kapacitu hotových záznamů díky chráněným aktivním záznamům. |
| JoltBody.get_penetration_records | JoltBody.get_penetration_records() | Nezávislé snapshoty, od nejstaršího entry ID; chyba vrací []. Nejde o reference živých relationships. |
Úplný seznam deklarací API#
Deklarace odpovídají produkčním GML zdrojům. Hodnota za = označuje volitelný argument. Toto je seznam signatur; význam, jednotky a omezení popisují příslušné části návodu. Název typu před tečkou označuje vlastníka metody, nikoli globální funkci.
| Symbol / vlastník | Signatura / hodnota |
|---|---|
| JoltBody.clear_penetration_history | JoltBody.clear_penetration_history() |
| JoltBody.get_penetration_record | JoltBody.get_penetration_record(index) |
| JoltBody.set_penetration_history_capacity | JoltBody.set_penetration_history_capacity(capacity) |