ESC 즉시 리방 병합
==================

① 이번 예제에서 할 작업

ESC를 누르면 일반 일시정지 메뉴를 열지 않고 바로 저장 및 종료 후 재입장하도록 만듭니다.
이 예제는 블루문시아님의 ESC 즉시 리방 구조와 같은 방식으로 quickcreategame 패널을 사용합니다.
기본 data/는 D2RMM 기본값과 맞춰 ESC 즉시 리방이 OFF이며, 자동 인스톨러에서 ON을 선택하면 이 구조를 스마트 적용합니다.


② 수정할 파일

[수정할 기존 파일]
data/global/ui/layouts/pauselayouthd.json
data/global/ui/layouts/pauselayoutgardenhd.json

[새로 복사할 파일]
data/global/ui/layouts/quickcreategamehd.json


③ 찾아야 할 위치

pauselayouthd.json과 pauselayoutgardenhd.json의 최상위 구조에서
"fields"와 "children"을 찾습니다.

예:

{
    "type": "PausePanel",
    "name": "PauseLayout",
    "fields": {
        ...
    },
    "children": [
        ...
    ]
}


④ 실제로 수정할 코드

기존 파일의 다른 최상위 속성이 있다면 유지하고,
"fields"와 "children"만 아래 구조로 바꿉니다.

"fields": {
    "anchor": { "x": 0.0 }
},
"children": [
    {
        "type": "TimerWidget",
        "name": "gotomain",
        "fields": {
            "time": 0.1,
            "message": "PanelManager:OpenPanel:quickcreategame"
        }
    }
]

Garden 파일도 같은 구조를 사용합니다.

그리고 아래 신규 파일을 사용합니다. 자동 인스톨러는 재시작 버튼 사용 여부와 ESC 옵션을 함께 보고 필요한 경우에만 유지합니다.

data/global/ui/layouts/quickcreategamehd.json

핵심 children은 다음과 같습니다.

"children": [
    {
        "type": "TimerWidget",
        "name": "exitgame",
        "fields": {
            "time": 0,
            "message": "PausePanelMessage:ExitGame"
        }
    },
    {
        "type": "TimerWidget",
        "name": "creategame",
        "fields": {
            "time": 0,
            "message": "CharacterSelect:LoadCharacter:2"
        }
    },
    {
        "type": "TimerWidget",
        "name": "closepanel",
        "fields": {
            "time": 0,
            "message": "PanelManager:ClosePanel:quickcreategame"
        }
    }
]


⑤ 삽입 후 형태

PausePanel은 ESC 입력 후 표시할 일반 버튼 목록 대신
quickcreategame을 여는 TimerWidget 하나만 갖게 됩니다.

{
    "type": "PausePanel",
    "name": "PauseLayout",
    "fields": {
        "anchor": { "x": 0.0 }
    },
    "children": [
        {
            "type": "TimerWidget",
            "name": "gotomain",
            "fields": {
                "time": 0.1,
                "message": "PanelManager:OpenPanel:quickcreategame"
            }
        }
    ]
}


⑥ 적용 원리

ESC가 PausePanel을 열면 0.1초 뒤 quickcreategame을 엽니다.
quickcreategame은 저장 및 종료와 CharacterSelect:LoadCharacter:2를 연속 실행합니다.
이 기능은 일반 ESC 메뉴를 의도적으로 없애므로 PausePanel의 children에 다른 기능을 함께 남기는 방식과는 목적이 충돌할 수 있습니다.
