材质绘制这部分是最容易的部分所以我们简单得概述一下就行了

这里我们需要用到BlockBench建模工具
方块规格为16x16x16
然后我们切换到
在
中奖参数调整为
那么你的模型最后将是这样的
现在可以保存它为[silver_block.json]了

新建一个[bat_spawn_egg.json]文件
利用谓词(断言)在其中构建该方块模型的custommodeldata
- {
- "parent": "minecraft:item/template_spawn_egg",
- "textures": {
- "layer0": "minecraft:item/spawn_egg"
- },
- "overrides" :[
- {"predicate":{"custom_model_data":1},"model":"item/blocks/silver_block"}
- ]
- }
复制代码 然后我们将其保存即可
并在游戏中使用F3+T来刷新你的资源包

回到数据包的命名空间内我们新建一个[custom_block_silverblock.mcfunction文件
在其中键入以下指令集#初始化 execute as @e[tag=custom_block_silverblock] at @s align xyz run setblock ~0.5 ~ ~0.5 minecraft:iron_block execute as @e[tag=custom_block_silverblock] at @s align xyz run summon minecraft:item_frame ~0.5 ~ ~0.5 {Facing:1b,Invisible:1b,Fixed:1b,Tags:["custom_block_frame_silverblock"],Item:{id:"bat_spawn_egg",Count:1b,tag:{CustomModelData:2}}} execute as @e[tag=custom_block_silverblock] at @s run playsound minecraft:block.nether_bricks.place block @a ~ ~ ~ 1.2 0.8 execute as @e[tag=custom_block_silverblock] at @s run kill @s #相框环境变量监听 execute as @e[tag=custom_block_frame_silverblock] at @s unless block ~ ~ ~ minecraft:iron_block run kill @s #禁止旋转 execute as @e[tag=custom_block_frame_silverblock,nbt={ItemRotation:1b}] run data modify entity @s ItemRotation set value 0b 不知道为什么用<添加代码>显示不出来
回到 minecraft的命名空间内在 tag的 tick.json中添加本文件的循环执行
随后在游戏中使用 /reload来重加载本数据包 [注意20w22a的新特性]

现在使用指令
- summon minecraft:item ~ ~ ~ {Item:{id:"minecraft:bat_spawn_egg",Count:1b,tag:{display:{Name:'{"text":"\\u00a77银块"}'},CustomModelData:1,EntityTag:{Tags:["custom_block_silverblock"],NoGravity:1b,Invisible:1b,id:"minecraft:armor_stand"}}}}
复制代码来获得一个可放置的方块,若你在放置的时候出现了你的自定义方块
则说明你成功了,反之,你可以放弃尝试了。
可能存在的问题:
1.实体相框的数量过大使你那[1C1G]的服务器抗不住
2.方块会被活塞推动致使玩家无限刷方块[我自己已经解决了你可以考虑自行解决]
3.无法在1.15及其以下的服务端上运行[不要问为什么问就是不知道]
4.为什么我的方块不显示?[因为你把它画的太丑了它不想见你]
维护与拓展
有了这个神奇的功能我们可以干什么呢?
1.你可以参考我的《UnderMoon》系列数据包: 传送门
2.你可以用来自定义功能类方块
3.或者自定义工具的功能(新的耕地之类的)
4.等...
|