refactor(cb): lib/codeblock.mjs로 헬퍼·상수 추출 (codeblock 바이트 동일)
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import { readFileSync, writeFileSync } from 'node:fs';
|
import { readFileSync, writeFileSync } from 'node:fs';
|
||||||
|
|
||||||
import { CARDS, ENEMIES, CLASSES, JOBS, SOUL_UNLOCKS, luaSoulShopTable, CARDFRAMES, RARITIES, frameRuid, luaFramesTable, luaNodeIconsTable, MAP_ROWS, MAP_COLS, CHEST_CLOSED_RUID, CHEST_OPEN_RUID, NODEICONS, CHARS, CAM, RELICS, luaRelicsTable, POTIONS, luaPotionsTable, luaIntentsArray, luaEnemiesTable, luaStr, luaJobsTable, luaCardsTable, luaDeckTable } from './lib/data.mjs';
|
import { CARDS, ENEMIES, CLASSES, JOBS, SOUL_UNLOCKS, luaSoulShopTable, CARDFRAMES, RARITIES, frameRuid, luaFramesTable, luaNodeIconsTable, MAP_ROWS, MAP_COLS, CHEST_CLOSED_RUID, CHEST_OPEN_RUID, NODEICONS, CHARS, CAM, RELICS, luaRelicsTable, POTIONS, luaPotionsTable, luaIntentsArray, luaEnemiesTable, luaStr, luaJobsTable, luaCardsTable, luaDeckTable } from './lib/data.mjs';
|
||||||
|
import { prop, method, codeblock, RUN_LENGTH, GOLD_PER_WIN, CARD_PRICE, REST_HEAL, RELIC_PRICE, ACT_COUNT, ACT_MAPS, LOBBY_MAP, LOBBY_SPAWN } from './lib/codeblock.mjs';
|
||||||
import { UI_FILE, COMMON_FILE, UI_ROOT, GENERATED_UI_SECTIONS, UI_APPEND_ORDER, DISABLED_STOCK_CONTROLS, TRANSPARENT, DARK, GOLD, ATTACK, DEFEND, SKILL, DAMAGE_DIGIT_RUIDS, DAMAGE_POP_MAX_DIGITS, DAMAGE_POP_DIGIT_W, DAMAGE_POP_DIGIT_H, DAMAGE_POP_DIGIT_SPACING, MAX_MONSTERS, HEAD_OFFSET_Y, HP_BAR_W, WHITE, CARD_NAME_TEXT, CARD_DESC_TEXT, cardFaceLayout, CARD_W, CARD_H, CARD_SPACING, CARD_XS, ALIGN_CENTER, ALIGN_BOTTOM_CENTER, guid, transform, sprite, button, text, scrollLayoutGroup, popupLayerFor, uiOrderFor, displayOrderFor, applySortingOverride, entity, uiPath, sectionRoot, isGeneratedUiEntity, appendUiSection } from './lib/ui-helpers.mjs';
|
import { UI_FILE, COMMON_FILE, UI_ROOT, GENERATED_UI_SECTIONS, UI_APPEND_ORDER, DISABLED_STOCK_CONTROLS, TRANSPARENT, DARK, GOLD, ATTACK, DEFEND, SKILL, DAMAGE_DIGIT_RUIDS, DAMAGE_POP_MAX_DIGITS, DAMAGE_POP_DIGIT_W, DAMAGE_POP_DIGIT_H, DAMAGE_POP_DIGIT_SPACING, MAX_MONSTERS, HEAD_OFFSET_Y, HP_BAR_W, WHITE, CARD_NAME_TEXT, CARD_DESC_TEXT, cardFaceLayout, CARD_W, CARD_H, CARD_SPACING, CARD_XS, ALIGN_CENTER, ALIGN_BOTTOM_CENTER, guid, transform, sprite, button, text, scrollLayoutGroup, popupLayerFor, uiOrderFor, displayOrderFor, applySortingOverride, entity, uiPath, sectionRoot, isGeneratedUiEntity, appendUiSection } from './lib/ui-helpers.mjs';
|
||||||
import { buildDeckHud } from './hud/deckhud.mjs';
|
import { buildDeckHud } from './hud/deckhud.mjs';
|
||||||
import { buildDeckInspect } from './hud/deckinspect.mjs';
|
import { buildDeckInspect } from './hud/deckinspect.mjs';
|
||||||
@@ -239,65 +240,7 @@ function upsertUi() {
|
|||||||
writeFileSync(UI_FILE, JSON.stringify(ui, null, 2), 'utf8');
|
writeFileSync(UI_FILE, JSON.stringify(ui, null, 2), 'utf8');
|
||||||
}
|
}
|
||||||
|
|
||||||
function prop(Type, Name, DefaultValue = 'nil') {
|
|
||||||
return { Type, DefaultValue, SyncDirection: 0, Attributes: [], Name };
|
|
||||||
}
|
|
||||||
|
|
||||||
function method(Name, Code, Arguments = [], ExecSpace = 0, ReturnType = 'void') {
|
|
||||||
return {
|
|
||||||
Return: { Type: ReturnType, DefaultValue: null, SyncDirection: 0, Attributes: [], Name: null },
|
|
||||||
Arguments,
|
|
||||||
Code,
|
|
||||||
Scope: 2,
|
|
||||||
ExecSpace,
|
|
||||||
Attributes: [],
|
|
||||||
Name,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function codeblock(id, name, properties, methods) {
|
|
||||||
return {
|
|
||||||
Id: '',
|
|
||||||
GameId: '',
|
|
||||||
EntryKey: `codeblock://${id}`,
|
|
||||||
ContentType: 'x-mod/codeblock',
|
|
||||||
Content: '',
|
|
||||||
Usage: 0,
|
|
||||||
UsePublish: 1,
|
|
||||||
UseService: 0,
|
|
||||||
CoreVersion: '26.5.0.0',
|
|
||||||
StudioVersion: '',
|
|
||||||
DynamicLoading: 0,
|
|
||||||
ContentProto: {
|
|
||||||
Use: 'Json',
|
|
||||||
Json: {
|
|
||||||
CoreVersion: { Major: 0, Minor: 2 },
|
|
||||||
ScriptVersion: { Major: 1, Minor: 0 },
|
|
||||||
Description: '',
|
|
||||||
Id: id,
|
|
||||||
Language: 1,
|
|
||||||
Name: name,
|
|
||||||
Type: 1,
|
|
||||||
Source: 0,
|
|
||||||
Target: null,
|
|
||||||
Properties: properties,
|
|
||||||
Methods: methods,
|
|
||||||
EntityEventHandlers: [],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function writeCodeblocks() {
|
function writeCodeblocks() {
|
||||||
const RUN_LENGTH = 5;
|
|
||||||
const GOLD_PER_WIN = 25;
|
|
||||||
const CARD_PRICE = 30;
|
|
||||||
const REST_HEAL = 30;
|
|
||||||
const RELIC_PRICE = 60;
|
|
||||||
const ACT_COUNT = 5;
|
|
||||||
const ACT_MAPS = ['map01', 'map02', 'map03', 'map04', 'map05'];
|
|
||||||
const LOBBY_MAP = 'lobby';
|
|
||||||
const LOBBY_SPAWN = 'Vector3(-5, 0.03, 0)'; // 정찰: map01 지면 좌측
|
|
||||||
const combat = codeblock('SlayDeckController', 'SlayDeckController', [
|
const combat = codeblock('SlayDeckController', 'SlayDeckController', [
|
||||||
prop('any', 'DrawPile'),
|
prop('any', 'DrawPile'),
|
||||||
prop('any', 'DiscardPile'),
|
prop('any', 'DiscardPile'),
|
||||||
|
|||||||
60
tools/deck/lib/codeblock.mjs
Normal file
60
tools/deck/lib/codeblock.mjs
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
function prop(Type, Name, DefaultValue = 'nil') {
|
||||||
|
return { Type, DefaultValue, SyncDirection: 0, Attributes: [], Name };
|
||||||
|
}
|
||||||
|
|
||||||
|
function method(Name, Code, Arguments = [], ExecSpace = 0, ReturnType = 'void') {
|
||||||
|
return {
|
||||||
|
Return: { Type: ReturnType, DefaultValue: null, SyncDirection: 0, Attributes: [], Name: null },
|
||||||
|
Arguments,
|
||||||
|
Code,
|
||||||
|
Scope: 2,
|
||||||
|
ExecSpace,
|
||||||
|
Attributes: [],
|
||||||
|
Name,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function codeblock(id, name, properties, methods) {
|
||||||
|
return {
|
||||||
|
Id: '',
|
||||||
|
GameId: '',
|
||||||
|
EntryKey: `codeblock://${id}`,
|
||||||
|
ContentType: 'x-mod/codeblock',
|
||||||
|
Content: '',
|
||||||
|
Usage: 0,
|
||||||
|
UsePublish: 1,
|
||||||
|
UseService: 0,
|
||||||
|
CoreVersion: '26.5.0.0',
|
||||||
|
StudioVersion: '',
|
||||||
|
DynamicLoading: 0,
|
||||||
|
ContentProto: {
|
||||||
|
Use: 'Json',
|
||||||
|
Json: {
|
||||||
|
CoreVersion: { Major: 0, Minor: 2 },
|
||||||
|
ScriptVersion: { Major: 1, Minor: 0 },
|
||||||
|
Description: '',
|
||||||
|
Id: id,
|
||||||
|
Language: 1,
|
||||||
|
Name: name,
|
||||||
|
Type: 1,
|
||||||
|
Source: 0,
|
||||||
|
Target: null,
|
||||||
|
Properties: properties,
|
||||||
|
Methods: methods,
|
||||||
|
EntityEventHandlers: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
const RUN_LENGTH = 5;
|
||||||
|
const GOLD_PER_WIN = 25;
|
||||||
|
const CARD_PRICE = 30;
|
||||||
|
const REST_HEAL = 30;
|
||||||
|
const RELIC_PRICE = 60;
|
||||||
|
const ACT_COUNT = 5;
|
||||||
|
const ACT_MAPS = ['map01', 'map02', 'map03', 'map04', 'map05'];
|
||||||
|
const LOBBY_MAP = 'lobby';
|
||||||
|
const LOBBY_SPAWN = 'Vector3(-5, 0.03, 0)'; // 정찰: map01 지면 좌측
|
||||||
|
|
||||||
|
export { prop, method, codeblock, RUN_LENGTH, GOLD_PER_WIN, CARD_PRICE, REST_HEAL, RELIC_PRICE, ACT_COUNT, ACT_MAPS, LOBBY_MAP, LOBBY_SPAWN };
|
||||||
Reference in New Issue
Block a user