Skip to content

Godot: arquitectura de señales y EventBus #37

Description

@leocagli

Objetivo

Definir un bus de eventos central (EventBus) con todas las señales del juego para desacoplar los sistemas entre sí.

Alcance

  • Autoload EventBus.gd como única fuente de verdad de señales
  • Señales de unidades: unit_moved, unit_attacked, unit_died, unit_promoted
  • Señales de ciudad: city_built, city_captured, production_complete
  • Señales de turno: turn_started, turn_phase_changed, turn_ended
  • Señales Web3: wallet_connected, proof_generated, tx_confirmed, web3_error
  • Señales de UI: hex_hovered, unit_selected, city_selected, panel_opened

Skill de referencia

/godot-signal-architecture

Tareas

  • Crear autoloads/EventBus.gd con todos los signal declarados y tipados
  • Añadir EventBus a la lista de autoloads en project.godot
  • Documentar cada señal con un comentario de una línea y sus parámetros
  • Crear scripts/EventBusTypes.gd con enums compartidos (Phase, TerrainType, UnitType)
  • Validar que ningún nodo se suscriba directamente a señales de otro nodo (todo pasa por EventBus)

Aceptación

Todos los sistemas se comunican exclusivamente a través de EventBus; no hay llamadas directas entre escenas no relacionadas y el bus imprime en _DEBUG cada señal emitida si OS.is_debug_build().

🎁 Evidencia = reward mayor

  • Acá no hay mucho visual que mostrar, así que la evidencia es la salida: tests, logs o respuestas, pegados como bloque de código. Con eso entrás a reward de GrantFox.
  • Si además grabás un video corto de los tests corriendo o del flujo reproducido, califica para reward mayor.
  • No es obligatorio, pero pesa mucho en la evaluación.

Qué conviene mostrar en esta issue:

  • Salida de _DEBUG del EventBus pegada como bloque de código, mostrando la traza de señales de un turno completo con turn_started, unit_moved, unit_attacked y turn_ended.
  • Captura del listado de autoloads en project.godot o en la pestaña Autoload del editor con EventBus registrado.
  • Salida de una búsqueda sobre scripts/ y scenes/ que muestre que no quedan connect directos entre nodos no relacionados, todo pasa por EventBus.

Pegá las capturas directo en la descripción del PR, arrastrándolas al cuadro de texto de GitHub.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSPart of the GrantFox OSS campaignMaybe RewardedMay be eligible for GrantFox rewardThird CampaignCampaign: Third CampaigngodotPort a Godot 4

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions