FlameSystem · Spreading

Flame Spread

응용 코드와 완전히 분리된 백그라운드 확산 시스템입니다. 임의의 틱을 기준으로 자율적으로 동작하며, 모든 제어는 엔티티를 통해서만 가능합니다.

5Entity Types
2Signals
ZeroApp Coupling
scroll
01 — 시스템 동작

두 가지 신호

화염 확산 시스템은 점화 시도확산 판정, 두 가지 신호를 기반으로 동작합니다. 모든 엔티티는 이 신호들에 반응하는 방식으로 정의됩니다.

Signal A · 점화 시도
Ignition Attempt
월드 공간의 특정 위치에 "불을 붙이려 한다"는 신호입니다. 해당 위치를 점유한 엔티티가 반응 여부를 결정합니다. 직접 불을 만들지 않으며, 반응 결과로 확산 판정이 발생할 수 있습니다.
Signal B · 확산 판정
Spread State
특정 영역이 "불이 붙은 상태"임을 나타내는 신호입니다. 임의의 틱이 지나면 자동으로 소화 판정되어 제거됩니다. 지속되는 동안 매 틱 주변으로 점화 시도를 발생시킬 수 있습니다.
← 확산 중   소화 →
응용 코드 비간섭  화염 확산 시스템은 백그라운드에서 임의의 틱을 기준으로 자율 동작합니다. 모든 제약, 이벤트 캐치, 트리거는 반드시 엔티티를 통해서만 가능합니다.
02 — 상호작용

엔티티 반응 매트릭스

각 엔티티가 두 신호에 어떻게 반응하는지를 정리합니다.

Entity
점화 시도 수신 시
확산 판정 수신 시
Source
자체적으로 매 틱 발생시킴
자체적으로 매 틱 발생시킴
Flammable
점유 shape 전체에 확산 판정 발생
반응 없음
Combustible
점유 shape 전체에 점화 시도 발생
반응 없음
Alarm
반응 없음
이벤트 전달
Fuse
start/end 수신 시 반대편으로 확산 판정 전달
start/end 수신 시 반대편으로 확산 판정 전달
03 — 엔티티 종류

엔티티

화염 확산 시스템에 참여하는 다섯 가지 엔티티입니다. 각 엔티티는 자신이 점유한 shape 영역을 기준으로 신호에 반응합니다.

Source 화염 원천
점유 shape에 틱마다 점화 시도 + 확산 판정 자율 발생.
자율 동작 점화 시도 확산 판정
  • 매 틱마다 점유한 shape 영역에 점화 시도확산 판정을 자율적으로 발생시킵니다.
  • 지속적으로 신호를 발생시키는 확산의 근원입니다. Source가 없으면 화염은 틱이 지남에 따라 자연 소화됩니다.
  • 외부 신호를 수신하여 반응하지 않습니다. 오직 발신 전용입니다.
Flammable 가연성
점화 시도 수신 시 shape 전체에 확산 판정 발생.
점화 시도 반응 → 확산 판정
점화 시도 수신
점유한 shape 전체 영역확산 판정을 발생시킵니다.
확산 판정 수신
반응 없음
  • 불에 "잘 붙는" 소재. 점화가 시도되면 shape 전체가 한 번에 불이 붙습니다.
  • 발생된 확산 판정은 임의의 틱 후 자동 소화됩니다. 지속 Source가 없으면 꺼집니다.
Combustible 연쇄 점화
점화 시도 수신 시 shape 전체에 점화 시도 재발생 — 연쇄 반응.
점화 시도 반응 → 점화 시도
점화 시도 수신
점유한 shape 전체 영역에 다시 점화 시도를 발생시킵니다.
확산 판정 수신
반응 없음
  • Flammable과 달리 확산 판정이 아닌 점화 시도를 증폭시킵니다. shape 내부의 다른 엔티티들이 추가로 반응하게 됩니다.
  • Flammable과 함께 배치되면 연쇄 점화로 넓은 영역에 확산 판정이 발생할 수 있습니다.
Alarm 감지 알람
확산 판정 수신 시 이벤트 전달 — 유일한 외부 통신 수단.
확산 판정 반응 → 이벤트
점화 시도 수신
반응 없음
확산 판정 수신
등록된 이벤트를 전달합니다. 응용 코드에서 구독 가능한 유일한 출구입니다.
  • 화염 확산 시스템과 응용 코드 사이의 유일한 인터페이스입니다. 시스템 내부에서 일어나는 일을 외부에서 알 수 있는 수단입니다.
  • 점화 시도에는 반응하지 않습니다. 실제로 불이 붙었을 때(확산 판정)만 이벤트를 발생시킵니다.
Fuse 도화선
start/end 수신 시 일정 속도로 반대편까지 확산 판정 전달.
점화 시도 반응 확산 판정 반응 → 확산 판정 전달
점화 시도 수신 (start 또는 end)
수신된 끝점에서 반대편 끝점까지 확산 판정을 일정 속도로 전달합니다.
확산 판정 수신 (start 또는 end)
동일하게 반대편 끝점까지 확산 판정을 일정 속도로 전달합니다.
  • Shape가 아닌 Segment(선분)를 기반으로 합니다. start / end 두 끝점이 신호 수신 지점입니다.
  • 두 신호 모두에 동일하게 반응합니다. 점화 시도와 확산 판정을 구분하지 않고 반대편으로 확산 판정을 전달합니다.
  • Alarm과 결합하면 원거리 트리거를 구성할 수 있습니다. Fuse 끝에 Alarm을 배치하면 불이 도달했을 때 이벤트가 발생합니다.