From 47e46d3dd14ec2bff36ea2531113c8027ea66b82 Mon Sep 17 00:00:00 2001 From: Frost-ZX Date: Wed, 4 Jan 2023 23:41:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=8F=91=E5=85=89?= =?UTF-8?q?=E7=BA=AF=E8=89=B2=E6=96=B9=E5=9D=97=E3=80=81=E5=B9=BF=E5=B7=9E?= =?UTF-8?q?=E5=9C=B0=E9=93=81=E7=BA=BF=E8=B7=AF=E8=89=B2=E7=BA=AF=E8=89=B2?= =?UTF-8?q?=E6=96=B9=E5=9D=97=E3=80=81=E7=A0=96=E5=9D=97=E3=80=81=E6=9D=BF?= =?UTF-8?q?=E6=9D=A1=E7=AE=B1=E6=96=B9=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kubejs/startup_scripts/wheat_plus.js | 199 ++++++++++++++++-- .../textures/block/brick/brick_a.png | Bin 0 -> 2161 bytes .../textures/block/brick/brick_b.png | Bin 0 -> 2194 bytes .../textures/block/brick/brick_c.png | Bin 0 -> 875 bytes .../textures/block/brick/brick_d.png | Bin 0 -> 2168 bytes .../common/{color_base.png => color_grow.png} | Bin .../{color_base_l.png => color_grow_l.png} | Bin .../textures/block/common/color_normal.png | Bin 0 -> 2790 bytes .../textures/block/common/crate_a.png | Bin 0 -> 2455 bytes 9 files changed, 177 insertions(+), 22 deletions(-) create mode 100644 resourcepack/assets/wheat_plus/textures/block/brick/brick_a.png create mode 100644 resourcepack/assets/wheat_plus/textures/block/brick/brick_b.png create mode 100644 resourcepack/assets/wheat_plus/textures/block/brick/brick_c.png create mode 100644 resourcepack/assets/wheat_plus/textures/block/brick/brick_d.png rename resourcepack/assets/wheat_plus/textures/block/common/{color_base.png => color_grow.png} (100%) rename resourcepack/assets/wheat_plus/textures/block/common/{color_base_l.png => color_grow_l.png} (100%) create mode 100644 resourcepack/assets/wheat_plus/textures/block/common/color_normal.png create mode 100644 resourcepack/assets/wheat_plus/textures/block/common/crate_a.png diff --git a/kubejs/startup_scripts/wheat_plus.js b/kubejs/startup_scripts/wheat_plus.js index 74a7d47..7d32189 100644 --- a/kubejs/startup_scripts/wheat_plus.js +++ b/kubejs/startup_scripts/wheat_plus.js @@ -31,64 +31,155 @@ onEvent('block.registry', function (event) { console.info(`${LOG_PREFIX} 注册方块 - 纯色方块 - 开始`); const blocks = [ + { + name: 'color_white_grow', + label: '纯色方块(白色,发光)', + color: [255, 255, 255, 1], + grow: true, + }, + { + name: 'color_blue_grow', + label: '纯色方块(蓝色,发光)', + color: [0, 0, 255, 1], + grow: true, + }, + { + name: 'color_green_grow', + label: '纯色方块(绿色,发光)', + color: [0, 255, 0, 1], + grow: true, + }, + { + name: 'color_red_grow', + label: '纯色方块(红色)', + color: [255, 0, 0, 1], + grow: true, + }, { name: 'color_black', label: '纯色方块(黑色)', color: [0, 0, 0, 1], + grow: false, }, { name: 'color_white', label: '纯色方块(白色)', color: [255, 255, 255, 1], + grow: false, }, { name: 'color_blue', label: '纯色方块(蓝色)', color: [0, 0, 255, 1], + grow: false, }, { name: 'color_green', label: '纯色方块(绿色)', color: [0, 255, 0, 1], + grow: false, }, { name: 'color_red', label: '纯色方块(红色)', color: [255, 0, 0, 1], + grow: false, }, { name: 'color_yellow', label: '纯色方块(黄色)', color: [255, 255, 0, 1], + grow: false, }, { name: 'color_39c5bb', label: '纯色方块(#39C5BB)', color: [57, 197, 187, 1], + grow: false, }, { name: 'color_66ccff', label: '纯色方块(#66CCFF)', color: [102, 204, 255, 1], + grow: false, + }, + { + name: 'color_gz_line_one', + label: '纯色方块(广州地铁一号线,#F3D03E)', + color: [243, 208, 62, 1], + grow: false, + }, + { + name: 'color_gz_line_two', + label: '纯色方块(广州地铁二号线,#00629B)', + color: [0, 98, 155, 1], + grow: false, + }, + { + name: 'color_gz_line_three', + label: '纯色方块(广州地铁三号线,#ECA154)', + color: [236, 161, 84, 1], + grow: false, + }, + { + name: 'color_gz_line_four', + label: '纯色方块(广州地铁四号线,#00843D)', + color: [0, 132, 61, 1], + grow: false, + }, + { + name: 'color_gz_line_five', + label: '纯色方块(广州地铁五号线,#C5003E)', + color: [197, 0, 62, 1], + grow: false, + }, + { + name: 'color_gz_line_six', + label: '纯色方块(广州地铁六号线,#80225F)', + color: [128, 34, 95, 1], + grow: false, + }, + { + name: 'color_gz_line_seven', + label: '纯色方块(广州地铁七号线,#97D700)', + color: [151, 215, 0, 1], + grow: false, + }, + { + name: 'color_gz_line_eight', + label: '纯色方块(广州地铁八号线,#008C95)', + color: [0, 140, 149, 1], + grow: false, + }, + { + name: 'color_gz_line_nine', + label: '纯色方块(广州地铁九号线,#71CC98)', + color: [113, 204, 152, 1], + grow: false, }, ]; - const texture = `${P_BLOCK}/common/color_base`; + + const tGrow = `${P_BLOCK}/common/color_grow`; + const tNormal = `${P_BLOCK}/common/color_normal`; blocks.forEach((config) => { const id = `${MOD_ID}:${config.name}`; const block = event.create(id, 'basic'); + const colorCfg = config.color; + const isGrow = config.grow; setBlockProps(block, { displayName: config.label, isSolid: false, + lightLevel: (isGrow ? 1 : 0), material: 'stone', }); - block.textureAll(texture); - block.color(0, Color.rgba.apply(Color, config.color)); + block.textureAll(isGrow ? tGrow : tNormal); + block.color(0, Color.rgba.apply(Color, colorCfg)); block.item((item) => { - item.color(0, Color.rgba.apply(Color, config.color)); + item.color(0, Color.rgba.apply(Color, colorCfg)); }); }); @@ -570,31 +661,64 @@ onEvent('block.registry', function (event) { }); +// 注册方块 - 砖块 +onEvent('block.registry', function (event) { + + console.info(`${LOG_PREFIX} 注册方块 - 砖块 - 开始`); + + const blocks = [ + { name: 'brick_a', texture: 'brick/brick_a' }, + { name: 'brick_b', texture: 'brick/brick_b' }, + { name: 'brick_c', texture: 'brick/brick_c' }, + { name: 'brick_d', texture: 'brick/brick_d' }, + ]; + + blocks.forEach((config) => { + + const id = `${MOD_ID}:${config.name}`; + const block = event.create(id, 'basic'); + + setBlockProps(block, { + displayName: '砖块', + material: 'stone', + }); + + block.textureAll(`${P_BLOCK}/${config.texture}`); + + }); + + console.info(`${LOG_PREFIX} 注册方块 - 砖块 - 完成`); + +}); + // 注册方块 - 其它 onEvent('block.registry', function (event) { console.info(`${LOG_PREFIX} 注册方块 - 其它 - 开始`); const blocks = [ + { + name: 'crate_a', + box: null, + label: '板条箱', + model: '', + texture: 'common/crate_a', + orientable: false, + }, { name: 'isolation_pile_a', box: [5, 0, 5, 11, 16, 11, true], label: '隔离桩', model: 'common/isolation_pile_a', + texture: '', orientable: false, }, - { - name: 'ticket_machine_a', - box: [6, 0, 6, 10, 16, 10, true], - label: '售票机', - model: 'common/ticket_machine_a', - orientable: true, - }, { name: 'statue_player_alex', box: [4, 0, 6, 12, 31, 10, true], label: '模型(Alex)', model: 'statue/player_alex', + texture: '', orientable: true, }, { @@ -602,6 +726,15 @@ onEvent('block.registry', function (event) { box: [4, 0, 6, 12, 31, 10, true], label: '模型(Steve)', model: 'statue/player_steve', + texture: '', + orientable: true, + }, + { + name: 'ticket_machine_a', + box: [6, 0, 6, 10, 16, 10, true], + label: '售票机', + model: 'common/ticket_machine_a', + texture: '', orientable: true, }, ]; @@ -610,20 +743,42 @@ onEvent('block.registry', function (event) { const id = `${MOD_ID}:${config.name}`; const block = event.create(id, 'basic'); - const model = `${P_BLOCK}/${config.model}`; + const box = config.box; + const label = config.label; + const mPath = config.model; + const tPath = config.texture; - setBlockProps(block, { - boxConfig: config.box, - boxType: 'custom', - displayName: config.label, - isSolid: false, - material: 'stone', - modelPath: model, - renderType: 'cutout', - }); + // 设置基础属性 + if (box) { + setBlockProps(block, { + boxConfig: box, + boxType: 'custom', + displayName: label, + isSolid: false, + material: 'stone', + renderType: 'cutout', + }); + } else { + setBlockProps(block, { + boxConfig: null, + boxType: 'full', + displayName: label, + isSolid: true, + material: 'stone', + renderType: 'solid', + }); + } + // 设置模型或纹理文件路径 + if (mPath) { + block.model(`${P_BLOCK}/${mPath}`); + } else if (tPath) { + block.textureAll(`${P_BLOCK}/${tPath}`); + } + + // 设置方块旋转 if (config.orientable) { - setHorizontalFacing(block, 'revert', model); + setHorizontalFacing(block, 'revert', `${P_BLOCK}/${mPath}`); } }); diff --git a/resourcepack/assets/wheat_plus/textures/block/brick/brick_a.png b/resourcepack/assets/wheat_plus/textures/block/brick/brick_a.png new file mode 100644 index 0000000000000000000000000000000000000000..0264da1c7f1adab11eae7d1eda094bd9b92efd1a GIT binary patch literal 2161 zcmV-%2#)uOP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^M&_en%SRCwA%N>!Dq$cX z>_lr60+m#Pn9_QOf~tfnMht2MRN*9_T%WkbcM>Msr0)P!Y_Hh-8dFsu*JwJ1C%r zj3CEAF+$sXqzb2X!&Tt&cw~rDB&LPt0CiM~+5*YMs;F(FWl~ivt}LPe9G3-I99qLv z5EaA}MCQm$NL5mVOrb(JEDMKj_>*(-e^<}B9UE2qYqDlHq^K;SK!A}+6;O##{Pi^0 z)cN4i6+vO$Cteavjpm9}a2f?wRL)UGByP%|KY5D3aqohw5>h*rNkmczx+Q^fS_k8F zix>z(M4+OG2xiKqB=7&_F_}qaQ9xB;s+>~5jaR$j%>iXZV5%fVB>0cM@&>IL0z?EO zlN^Do@Q15sJQ^$Ce05>DbHuze#)hDXD(3TCR!xwtD;a?ZNG8Ae$1SJseE+pqu**x_ zJDCGS5Rq9xyK|RAcXAATY}g2@B`(5lP${K+Sfh9;KgF+QD5;vo}b8zRPFQ^KlV6M2pql{?5LOSFos+u)ky*AE}F%6ybELEf5iy9V+4%29 zqS~3X$-O^-xbJ8wBYgW z#!bP8S5F9Kf=m>uP*s}AK9(XWa#zBs8^V)yApiaD*Q>j-t^?IMGi0isn6WGi_nS?9 z7Xb=ao3gzBZ^U3kz5G3MBK{P`&3Qv}kTq?6WMLwR6zeGbyKmm(*lfz=woz3eLI*zh z`*Vf~|Ml&+k?v%{IInnXlnCYyz!(F78XFNsR&wl}U;Y2b{OZwPdH4Q-eptvX))6!} zP&g08-+1#a4yF_k+eXD8t7v0md3wW|$%p~NFz?vGDR#HBhA1@OO~xBC0;!y8m_ak+ z!JPvacV7i}*kv0vHo$vpxC)s;woa(e0HH!}9Zf+Iutqh<%uw?gK6bmU-Ks4eY)l~{ za8pJkTftgW=1d#CDb0-92EMqkm=Xg-65B)6A`RPxV>v9?We07j3962|QX;d6D$0ah zS3>9cgEqQ5Leb5*=#6s6)##>}DOrmD_R$rUgBY`A(~_qY|LJ;VnDNVx{<3SnzRY>z z(<@wst!C_sn4_pFnhFm;eZg%hAAWkG-~5dd#ha12M@v9{`rbF{*c;tu>BU5I?vmQg zSjS+DMCD%xRh0oeUxN#+`I|syA^I;Wx*L_nHpWYUS4}2755d2v!Fz9iiQ_AGkb?19 z-~il&%pze@D1ywQ3NE|z{vSW)4^OW7$yZ;)mp(Or1Zs+X#*+QHqHx|4_N=*>@{5O8 z_|3M>bb4_IH$_}gRm2qYjslf~%AAQflBnVw!L!o|q%c>+7n&Q32x5Y%p{>uLGXkl= zBFGUWg3BN>a1*5+4)mqtGWFV8164!~RLN~4cdiS9lXQ1_Ysh(^-Z1x>0Znmlu%A^k z%r?fRXcg#WL-&S=;uNemw>%|Ll;%oSVrqckE+9r#kui;^Vld2zEP89?wlU&4!}gRE zfj6JB4lgA*GUqra6i@{D-|xIrO()$DLD=K@{@KhBg^cOvS%pmJ=UhUmv5a*GtpY+- zVx|)ds>GND>^_aoi+CD>fB&5?)7|F_w{4H$MK|Z8C)Ygu9=-h;Nx2q~{ nwggq~HGSEw9qy=1%=~izoBQRvKuUjv00000NkvXXu0mjflCt?J literal 0 HcmV?d00001 diff --git a/resourcepack/assets/wheat_plus/textures/block/brick/brick_b.png b/resourcepack/assets/wheat_plus/textures/block/brick/brick_b.png new file mode 100644 index 0000000000000000000000000000000000000000..693112af7455ec21fef6f468eeb208379ab29efa GIT binary patch literal 2194 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