Custom Block Porting - Timber Forge Tutorial 1.16 porting to 1.21.4
Veil Hunters\Datapacks\veilitems\data\minecraft\tags\function
load.json
Continue to help post{ "values": [ "veilitem:void_forge/load" ] }
tick.json
{ "values": [ "veilitem:void_forge/main" ] }
Veil Hunters\Datapacks\veilitems\data\veilitem\function\void_forge
load.mcfunction
give @p item_frame[item_model="veilhunter:void_forge/void_forge",entity_data={id:"minecraft:item_frame",Item:{id:"minecraft:glow_item_frame",count:1},Fixed:1b,Invisible:1b,Silent:1b,Invulnerable:1b,Tags:["void_forge"]}] 1
main.mcfunction
execute as @e[type=minecraft:glow_item_frame,tag=void_forge,tag=!placed] at @s run function veilitem:void_forge/mechanics/place execute as @e[type=minecraft:glow_item_frame,tag=void_forge,tag=placed] at @s unless block ~ ~ ~ minecraft:dropper run function veilitem:void_forge/mechanics/remove
Veil Hunters\Datapacks\veilitems\data\veilitem\function\veil_forge\mechanics
place.mcfunction setblock ~ ~ ~ minecraft:dropper playsound veilhunter:block.void_forge.place block @a[distance=0..3] ~ ~ ~ particle minecraft:soul_fire_flame ~ ~ ~ 0 0 0 1 10 tag @s add placed
remove.mcfunction
summon item ~ ~0.5 ~ {CustomNameVisible:1b,CustomName:'"Void Forge"',Item:{id:"minecraft:glow_item_frame",count:1,components:{"minecraft:entity_data":{id:"minecraft:glow_item_frame",Fixed:1b,Invisible:1b,Silent:1b,Invulnerable:1b,Tags:["void_forge"]},"minecraft:item_model":"veilhunter:void_forge/void_forge"}}} kill @e[type=item,nbt={Item:{id:"minecraft:dropper"}},distance=0..2,sort=nearest,limit=1] kill @s