Pomocné skripty · Sockets
Kolize, disconnect a cooldown
Connection může dočasně potlačit kolizi pouze svého body páru a při každém ukončení ji bezpečně obnoví.
collision je součást receptu male socketu a má backward-compatible default true. Nemění collision layer ani chování vůči světu a ostatním bodies.
Pair collision#
| Nastavení | Výsledek |
|---|---|
| collision: true | Obě spojená bodies se dál navzájem srážejí. |
| collision: false | Pouze tento konkrétní pár se ignoruje, dokud connection existuje. |
Pro Hinge, Point a SwingTwist bývá collision:false často nutné, pokud se collidery v okolí anchoru překrývají. Jinak contact solver může fyzicky blokovat pohyb, který constraint dovoluje.
Bezpečné rozpojení#
// Libovolný endpoint:
male_socket.disconnect();
// Nebo vlastník connection:
var old_connection = male_socket.connection;
old_connection.destroy();- destroy() nejprve bezpečně odstraní skutečný constraint a obnoví pair collision spravovanou jeho wrapperem.
- Oba endpointy se uvolní, candidate se vymaže a connection se nastaví na undefined.
- Na oba sockety se aplikuje delší z jejich cooldown hodnot, takže se okamžitě znovu nespojí.
- Po vypršení cooldownu mohou stejné sockety znovu projít běžným matching procesem.
Příklady herního řízení#
if (keyboard_check_pressed(ord("E"))) {
if (is_struct(tool_socket.connection)) {
tool_socket.disconnect();
} else {
tool_socket.set_enabled(true);
}
}
// Vypnutí hledání nerozpojí hotové spojení:
tool_socket.set_enabled(false);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 |
|---|---|---|
| JoltSocketConnection.destroy | JoltSocketConnection.destroy() | Boolean idempotentně zničí constraint, vymaže vazby a nastaví všem socketům nejdelší cooldown z členů. Tělesa nezničí. |