fix(monster): 맵 인스턴스 origin.entry_id를 modelId와 일치시켜 MissingModel 해소
메이커가 엔티티의 원본 모델을 origin.entry_id로 해석하는데, entry_id를
enemyId("junior_bugi")로 넣어 model://monster-junior_bugi(실제 EntryKey)와
불일치 → [LEA-3028] MissingModel로 전 몬스터 미표시. entry_id를
modelEntryId(=modelId="monster-<id>")로 수정. 메이커 인게임 검증: 전투에서
전 종 정상 렌더(stump=1110101도 나무토막 확인).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011xhLoQbJvQYL65kBtDNDTy
This commit is contained in:
@@ -69,7 +69,7 @@ export function buildMonsterInstance({ enemyId, enemy, name, guid, mapTag, x, gr
|
||||
jsonString: {
|
||||
name, path, nameEditable: true, enable: true, visible: true, localize: false,
|
||||
displayOrder: 4, pathConstraints: '///', revision: 2,
|
||||
origin: { type: 'Model', entry_id: enemyId, sub_entity_id: null, root_entity_id: guid, replaced_model_id: null },
|
||||
origin: { type: 'Model', entry_id: modelEntryId(enemyId), sub_entity_id: null, root_entity_id: guid, replaced_model_id: null },
|
||||
modelId: modelEntryId(enemyId),
|
||||
'@components': components,
|
||||
'@version': 1,
|
||||
|
||||
@@ -42,7 +42,7 @@ test('buildMonsterModel: 원본 skeleton 비변형(순수 함수)', () => {
|
||||
test('buildMonsterInstance: 모델 연결·컴포넌트 값', () => {
|
||||
const e = buildMonsterInstance({ enemyId: 'slime', enemy, name: 'slime', guid: '00000bb9-0000-4000-8000-000000000bb9', mapTag: '03', x: 3.4, group: 'elite' });
|
||||
assert.equal(e.jsonString.modelId, 'monster-slime');
|
||||
assert.equal(e.jsonString.origin.entry_id, 'slime');
|
||||
assert.equal(e.jsonString.origin.entry_id, 'monster-slime');
|
||||
assert.equal(e.jsonString.origin.root_entity_id, e.id);
|
||||
assert.equal(e.path, '/maps/map03/slime');
|
||||
const comp = (t) => e.jsonString['@components'].find((c) => c['@type'] === t);
|
||||
|
||||
Reference in New Issue
Block a user