From 349869bb49a27755b54cdabb32d7a90cc6f92277 Mon Sep 17 00:00:00 2001 From: Frost-ZX Date: Sun, 13 Apr 2025 23:19:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=88=9B=E9=80=A0?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E6=A0=87=E7=AD=BE=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kubejs/startup_scripts/wheat_plus.js | 119 ++++++++++++++++++++++----- 1 file changed, 99 insertions(+), 20 deletions(-) diff --git a/kubejs/startup_scripts/wheat_plus.js b/kubejs/startup_scripts/wheat_plus.js index 0511aee..3f11784 100644 --- a/kubejs/startup_scripts/wheat_plus.js +++ b/kubejs/startup_scripts/wheat_plus.js @@ -25,6 +25,15 @@ const P_ITEM = `${MOD_ID}:item`; /** 物品模型文件基础长路径 */ const P_ITEM_MODEL = `${MOD_ID}:models/item`; +/** 属于创造模式标签页 wheat_plus:blocks 的方块 ID 列表 */ +const TAB_BLOCKS_ITEMS = []; + +/** 属于创造模式标签页 wheat_plus:minecart 的方块 ID 列表 */ +const TAB_MINECART_ITEMS = []; + +/** 属于创造模式标签页 wheat_plus:roads 的方块 ID 列表 */ +const TAB_ROADS_ITEMS = []; + console.info(`${LOG_PREFIX} 处理 ${MOD_ID} 相关内容`); /** @@ -47,6 +56,8 @@ function regBlockBrick(event) { const id = `${MOD_ID}:${config.name}`; const block = event.create(id); + TAB_BLOCKS_ITEMS.push(id); + setBlockProps(block, { displayName: '砖块', textureAll: `${P_BLOCK}/${config.texture}`, @@ -558,6 +569,8 @@ function regBlockBuildingAndFurniture(event) { const texturePath0 = config.texture; const texturePath1 = texturePath0 ? `${P_BLOCK}/${texturePath0}` : ''; + TAB_BLOCKS_ITEMS.push(blockId); + // 设置基础属性 if (blockBox) { setBlockProps(block, { @@ -742,6 +755,8 @@ function regBlockColor(event) { const colorCfg = config.color; const isGrow = config.grow; + TAB_BLOCKS_ITEMS.push(id); + setBlockProps(block, { displayName: config.label, isSolid: false, @@ -785,15 +800,6 @@ function regBlockLampModern(event) { // wheat_plus:block/lamp_modern/color_ const textureBase = `${P_BLOCK}/lamp_modern/${color.CODE}`; - setBlockProps(block, { - boxType: 'full', - displayName: `现代${color.LABEL_CN}灯`, - isSolid: false, - lightLevel: 1, - renderType: 'translucent', - soundType: 'glass', - }); - JSON_ASSETS.push({ path: `${P_BLOCK_MODEL}/${blockName}`, data: { @@ -806,6 +812,17 @@ function regBlockLampModern(event) { }, }); + TAB_BLOCKS_ITEMS.push(blockId); + + setBlockProps(block, { + boxType: 'full', + displayName: `现代${color.LABEL_CN}灯`, + isSolid: false, + lightLevel: 1, + renderType: 'translucent', + soundType: 'glass', + }); + }); console.info(`${LOG_PREFIX} 注册方块 - 现代灯 - 完成`); @@ -852,13 +869,6 @@ function regBlockLampSimple(event) { // 用于替换默认模型 const modelJSON = { parent: `${P_BLOCK}/${config.model}` }; - setBlockProps(block, { - displayName: config.label, - lightLevel: 0.8, - renderType: 'translucent', - soundType: 'glass', - }); - // 按钮方块默认状态 JSON_ASSETS.push({ path: `${P_BLOCK_MODEL}/${blockName}`, @@ -877,6 +887,15 @@ function regBlockLampSimple(event) { data: modelJSON, }); + TAB_BLOCKS_ITEMS.push(blockId); + + setBlockProps(block, { + displayName: config.label, + lightLevel: 0.8, + renderType: 'translucent', + soundType: 'glass', + }); + }); console.info(`${LOG_PREFIX} 注册方块 - 简约灯 - 完成`); @@ -956,12 +975,9 @@ function regBlockMinecart(event) { const blockId = `${MOD_ID}:minecart_${blockName}`; const block = event.create(blockId, 'cardinal'); - const modelPathL = `${P_BLOCK_MODEL}/minecart_${blockName}`; - const modelPathS = `${P_BLOCK}/minecart_${blockName}`; - // 生成模型 JSON 文件 JSON_ASSETS.push({ - path: modelPathL, + path: `${P_BLOCK_MODEL}/minecart_${blockName}`, data: { parent: modelParent, textures: { @@ -970,6 +986,8 @@ function regBlockMinecart(event) { }, }); + TAB_MINECART_ITEMS.push(blockId); + // 设置基础属性 setBlockProps(block, { boxConfig: [-3, 0, -6, 19, 16, 22, true], @@ -1004,6 +1022,8 @@ function regBlockReinforcedConcrete(event) { const block = event.create(id); const texture = `${P_BLOCK}/reinforced_concrete/${color.CODE}`; + TAB_BLOCKS_ITEMS.push(id); + setBlockProps(block, { boxType: 'full', displayName: `${color.LABEL_CN}强化混凝土`, @@ -1143,6 +1163,8 @@ function regBlockRoad(event) { }, }); + TAB_ROADS_ITEMS.push(fullId); + setBlockProps(block, { boxType: 'full', displayName: `${label},完整${suffix}`, @@ -1170,6 +1192,8 @@ function regBlockRoad(event) { }, }); + TAB_ROADS_ITEMS.push(fullId); + setBlockProps(block, { boxType: 'full', displayName: `${label},完整${suffix}`, @@ -1197,6 +1221,8 @@ function regBlockRoad(event) { }, }); + TAB_ROADS_ITEMS.push(fullId); + setBlockProps(block, { boxType: 'half', displayName: `${label},一半${suffix}`, @@ -1224,6 +1250,8 @@ function regBlockRoad(event) { }, }); + TAB_ROADS_ITEMS.push(fullId); + setBlockProps(block, { boxType: 'half', displayName: `${label},一半${suffix}`, @@ -1312,6 +1340,8 @@ function regBlockOtherBasic(event) { const texturePath0 = config.texture; const texturePath1 = texturePath0 ? `${P_BLOCK}/${texturePath0}` : ''; + TAB_BLOCKS_ITEMS.push(blockId); + // 设置基础属性 if (blockBox) { setBlockProps(block, { @@ -1383,6 +1413,8 @@ function regBlockOtherShaped(event) { const id = `${MOD_ID}:${config.name}`; const block = event.create(id, config.type); + TAB_BLOCKS_ITEMS.push(id); + // 设置基础属性 setBlockProps(block, { displayName: config.label, @@ -1408,6 +1440,53 @@ StartupEvents.registry('block', regBlockReinforcedConcrete); StartupEvents.registry('block', regBlockOtherBasic); StartupEvents.registry('block', regBlockOtherShaped); +// 注册创造模式标签页 +StartupEvents.registry('creative_mode_tab', (event) => { + + // 创建标签页 + const tabBlocks = event.create('wheat_plus:blocks'); + const tabMinecart = event.create('wheat_plus:minecart'); + const tabRoads = event.create('wheat_plus:roads'); + + // 设置名称 + tabBlocks.displayName('Wheat Plus | 方块'); + tabMinecart.displayName('Wheat Plus | 矿车'); + tabRoads.displayName('Wheat Plus | 路'); + + // 设置图标 + tabBlocks.icon(() => { + return 'minecraft:hay_block'; + }); + tabMinecart.icon(() => { + return 'minecraft:minecart'; + }); + tabRoads.icon(() => { + return 'minecraft:gray_concrete'; + }); + + // 设置内容 + // 注:若通过该方式添加,顺序会乱 + tabBlocks.content(() => { + return ['minecraft:paper']; + }); + tabMinecart.content(() => { + return ['minecraft:paper']; + }); + tabRoads.content(() => { + return ['minecraft:paper']; + }); + +}); +StartupEvents.modifyCreativeTab('wheat_plus:blocks', (event) => { + event.add(TAB_BLOCKS_ITEMS); +}); +StartupEvents.modifyCreativeTab('wheat_plus:minecart', (event) => { + event.add(TAB_MINECART_ITEMS); +}); +StartupEvents.modifyCreativeTab('wheat_plus:roads', (event) => { + event.add(TAB_ROADS_ITEMS); +}); + // 注册物品 // onEvent('item.registry', function (event) { // console.info(`${LOG_PREFIX} 注册物品 - 开始`);