Subsistemas y mecanica de eventos de @infernus/core

Subsistemas y mecanica de eventos de @infernus/core An architecture diagram generated by Archify. gamemode · hooks de ciclo · components: entidades gamemode hooks de ciclo filterscript · cargador scripts · components: entidades filterscript cargador scripts command · despacho comandos · components: entidades command despacho comandos entities · instancias entidad · components: entidades entities instancias entidad utils/bus.ts · motor de eventos · utils: eventos y pools utils/bus.ts motor de eventos utils/hook.ts · intercepcion metodo · utils: eventos y pools utils/hook.ts intercepcion metodo utils/pools.ts · registro entidades · utils: eventos y pools utils/pools.ts registro entidades internalProps · estado privado · utils: eventos y pools internalProps estado privado wrapper/native · enlaces nativos · wrapper: enlaces nativos wrapper/native enlaces nativos __inject__ · impl sustituible · wrapper: enlaces nativos __inject__ impl sustituible wrapper streamer · nativos del plugin · wrapper: enlaces nativos wrapper streamer nativos del plugin samp global · registro eventos · Host: open.mp samp global registro eventos nativos open.mp · origen callbacks · Host: open.mp nativos open.mp origen callbacks plugin streamer · plugin streaming · Host: open.mp plugin streamer plugin streaming despacha samp.on(name, trigger) instancia al pool callNative llamadas Streamer registra callback components: entidades utils: eventos y pools wrapper: enlaces nativos Host: open.mp Legend Frontend Backend Cloud Message bus

Capa de eventos: utils/bus.ts

  • • eventBus es un Map<name, listeners[]> donde el orden de registro es el de ejecucion; triggerBus guarda trigger para useTrigger
  • • defineEvent devuelve [pusher, trigger]: pusher suscribe y devuelve off, trigger ejecuta toda la cadena de middleware
  • • Con isNative true, registerEvent y samp.on ocurren al importar; con false es un evento solo en proceso

Entidades y estado: utils/pools.ts

  • • Un pool Map por tipo de entidad; Player entra en onConnect y sale en onDisconnect, Vehicle en create/destroy
  • • internalPlayerProps es una clave Symbol para que los plugins no sobrescriban campos privados de core
  • • El callback nativo resuelve el id a la instancia del pool antes de pasarla a los listeners como objeto

Carga y ciclo de vida

  • • GameMode.use(script) solo encola; el listener onInit carga en orden de registro y onExit descarga
  • • IFilterScript.load() debe devolver funciones de baja, llamadas una a una al descargar
  • • Durante la descarga y salida se activa INTERNAL_FLAGS.skip, omitiendo llamadas nativas al juego ya cerrado