All files are available on Google Drive: https://drive.google.com/drive/folders/1Yq4bv84eriuOVBz0VNELZOzjzjmFsHTu
Formatted files are valid formatting for functions in a datapack.
Flattened commands are required for input into a command block.
Chained command blocks are designed to function in the order provided.
#:Five Block Friday by DqwertyC
#:Season:2
#:Episode:1
#:Title:Midair Block Placer
#:Type_1:Repeat
#:Desc_1:Summon snowball in center of target block
execute \
as @a \
if predicate {\
condition:entity_properties,\
entity:this,\
predicate:{\
equipment:{offhand:{\
items:oxidized_copper_golem_statue,\
components:{block_state:{copper_golem_pose:"star"}}\
}},\
"type_specific/player":{input:{sneak:true}}\
}\
} \
at @s rotated as @s anchored eyes \
positioned ^ ^ ^2.5 \
align xyz \
run summon snowball ~0.5 ~0.625 ~0.5 {\
Tags:[fbf.scaffold],\
Item:{\
id:oxidized_copper_golem_statue,\
components:{block_state:{copper_golem_pose:"star"}}\
},\
NoGravity:1b,\
PortalCooldown:2\
}
#:Type_2:Chain
#:Desc_2:Replace air with structure void
execute \
as @e[type=snowball,tag=fbf.scaffold,nbt={PortalCooldown:2}] \
at @s \
if block ~ ~ ~ #air \
run setblock ~ ~ ~ structure_void
#:Type_3:Chain
#:Desc_3:Replace structure void with air
execute \
as @e[\
type=snowball,\
tag=fbf.scaffold,\
nbt={PortalCooldown:0}\
] \
at @s \
unless entity @e[\
type=snowball,\
tag=fbf.scaffold,\
nbt=!{PortalCooldown:0},\
distance=..0.1] \
if block ~ ~ ~ structure_void \
run setblock ~ ~ ~ air
#:Type_4:Chain
#:Desc_4:Kill snowballs not in structure void
execute \
as @e[type=snowball,tag=fbf.scaffold] \
at @s \
unless block ~ ~ ~ structure_void \
run kill @s
#:Type_5:Repeat
#:Desc_5:Update the item model of item in offhand
execute \
as @a \
if predicate {\
condition:entity_properties,\
entity:this,\
predicate:{\
equipment:{\
offhand:{\
items:oxidized_copper_golem_statue,\
components:{block_state:{copper_golem_pose:"star"}}\
}\
}\
}\
} \
run item modify entity @s weapon.offhand [\
{\
conditions:[{\
condition:entity_properties,\
entity:this,\
predicate:{"type_specific/player":{input:{sneak:true}}}\
}],\
function:set_components,\
components:{item_model:air}\
},{\
conditions:[{\
condition:entity_properties,\
entity:this,\
predicate:{"type_specific/player":{input:{sneak:false}}}\
}],\
function:set_components,\
components:{item_model:oxidized_copper_golem_statue}\
}\
]
#:Five Block Friday by DqwertyC
#:Season:2
#:Episode:1
#:Title:Midair Block Placer
#:Type_1:Repeat
#:Desc_1:Summon snowball in center of target block
execute as @a if predicate {condition:entity_properties,entity:this,predicate:{equipment:{offhand:{items:oxidized_copper_golem_statue,components:{block_state:{copper_golem_pose:"star"}}}},"type_specific/player":{input:{sneak:true}}}} at @s rotated as @s anchored eyes positioned ^ ^ ^2.5 align xyz run summon snowball ~0.5 ~0.625 ~0.5 {Tags:[fbf.scaffold],Item:{id:oxidized_copper_golem_statue,components:{block_state:{copper_golem_pose:"star"}}},NoGravity:1b,PortalCooldown:2}
#:Type_2:Chain
#:Desc_2:Replace air with structure void
execute as @e[type=snowball,tag=fbf.scaffold,nbt={PortalCooldown:2}] at @s if block ~ ~ ~ #air run setblock ~ ~ ~ structure_void
#:Type_3:Chain
#:Desc_3:Replace structure void with air
execute as @e[type=snowball,tag=fbf.scaffold,nbt={PortalCooldown:0}] at @s unless entity @e[type=snowball,tag=fbf.scaffold,nbt=!{PortalCooldown:0},distance=..0.1] if block ~ ~ ~ structure_void run setblock ~ ~ ~ air
#:Type_4:Chain
#:Desc_4:Kill snowballs not in structure void
execute as @e[type=snowball,tag=fbf.scaffold] at @s unless block ~ ~ ~ structure_void run kill @s
#:Type_5:Repeat
#:Desc_5:Update the item model of item in offhand
execute as @a if predicate {condition:entity_properties,entity:this,predicate:{equipment:{offhand:{items:oxidized_copper_golem_statue,components:{block_state:{copper_golem_pose:"star"}}}}}} run item modify entity @s weapon.offhand [{conditions:[{condition:entity_properties,entity:this,predicate:{"type_specific/player":{input:{sneak:true}}}}],function:set_components,components:{item_model:air}},{conditions:[{condition:entity_properties,entity:this,predicate:{"type_specific/player":{input:{sneak:false}}}}],function:set_components,components:{item_model:oxidized_copper_golem_statue}}]
#:Five Block Friday by DqwertyC
#:Season:2
#:Episode:2
#:Title:Hitomezashi Pattern Generator
#:Type_1:Repeat
#:Desc_1:Summon helpers to either side of main stitcher; Move stitcher forward
execute \
as @e[name=Hitomezashi] \
at @s \
rotated as @s \
if block ~ ~-1 ~ white_concrete \
positioned ^-2 ^ ^ \
summon area_effect_cloud \
store success entity @s data.fbf.hito_new byte 1 \
store success entity @s data.fbf.hito_helper byte 1 \
store success entity @s Radius float 1 \
store success entity @s Duration int 1 \
store success entity @s Age int -1 \
store success entity @s WaitTime int 0 \
positioned ^4 ^ ^ \
summon area_effect_cloud \
store success entity @s data.fbf.hito_new byte 1 \
store success entity @s data.fbf.hito_helper byte 1 \
store success entity @s Radius float 1 \
store success entity @s Duration int 1 \
store success entity @s Age int -1 \
store success entity @s WaitTime int 0 \
positioned ^-2 ^ ^ \
as @n[name=Hitomezashi] \
rotated as @s \
run tp @s ^ ^ ^2
#:Type_2:Chain
#:Desc_2:Rotate helpers to face away from main stitcher
execute \
as @e[name=Hitomezashi] \
at @s \
rotated as @s \
positioned ^ ^ ^-2 \
as @n[nbt={data:{fbf:{hito_new:1b}}},distance=..2.5,limit=2] \
run rotate @s facing ~ ~ ~
#:Type_3:Chain
#:Desc_3:If 50% chance passes, or block is white wool, move new helper forward
execute \
as @e[nbt={data:{fbf:{hito_new:1b}}}] \
at @s \
rotated as @s \
if predicate {\
condition:any_of,\
terms:[\
{\
condition:all_of,\
terms:[\
{\
condition:location_check,\
offsetY:-1,\
predicate:{block:{blocks:[white_concrete,black_concrete]}}\
},\
{\
condition:random_chance,\
chance:0.5\
}\
]\
},\
{\
condition:location_check,\
offsetY:-1,\
predicate:{block:{blocks:white_wool}}\
}\
]\
} \
run tp @s ^ ^ ^-2
#:Type_4:Chain
#:Desc_4:Draw tiles in front of helper; Remove new helper tag; Reset age
execute \
as @e[nbt={data:{fbf:{hito_helper:1b}}}] \
at @s \
rotated as @s \
positioned ~ ~-1 ~ \
store success entity @s data.fbf.hito_new byte 0 \
store result entity @s Age int -1 \
run fill ^ ^ ^ ^ ^ ^-2 black_concrete replace white_concrete
#:Type_5:Chain
#:Desc_5:Move helper forward
execute \
as @e[nbt={data:{fbf:{hito_helper:1b}}}] \
at @s \
rotated as @s \
run tp @s ^ ^ ^-4
#:Five Block Friday by DqwertyC
#:Season:2
#:Episode:2
#:Title:Hitomezashi Pattern Generator
#:Type_1:Repeat
#:Desc_1:Summon helpers to either side of main stitcher; Move stitcher forward
execute as @e[name=Hitomezashi] at @s rotated as @s if block ~ ~-1 ~ white_concrete positioned ^-2 ^ ^ summon area_effect_cloud store success entity @s data.fbf.hito_new byte 1 store success entity @s data.fbf.hito_helper byte 1 store success entity @s Radius float 1 store success entity @s Duration int 1 store success entity @s Age int -1 store success entity @s WaitTime int 0 positioned ^4 ^ ^ summon area_effect_cloud store success entity @s data.fbf.hito_new byte 1 store success entity @s data.fbf.hito_helper byte 1 store success entity @s Radius float 1 store success entity @s Duration int 1 store success entity @s Age int -1 store success entity @s WaitTime int 0 positioned ^-2 ^ ^ as @n[name=Hitomezashi] rotated as @s run tp @s ^ ^ ^2
#:Type_2:Chain
#:Desc_2:Rotate helpers to face away from main stitcher
execute as @e[name=Hitomezashi] at @s rotated as @s positioned ^ ^ ^-2 as @n[nbt={data:{fbf:{hito_new:1b}}},distance=..2.5,limit=2] run rotate @s facing ~ ~ ~
#:Type_3:Chain
#:Desc_3:If 50% chance passes, or block is white wool, move new helper forward
execute as @e[nbt={data:{fbf:{hito_new:1b}}}] at @s rotated as @s if predicate {condition:any_of,terms:[{condition:all_of,terms:[{condition:location_check,offsetY:-1,predicate:{block:{blocks:[white_concrete,black_concrete]}}},{condition:random_chance,chance:0.5}]},{condition:location_check,offsetY:-1,predicate:{block:{blocks:white_wool}}}]} run tp @s ^ ^ ^-2
#:Type_4:Chain
#:Desc_4:Draw tiles in front of helper; Remove new helper tag; Reset age
execute as @e[nbt={data:{fbf:{hito_helper:1b}}}] at @s rotated as @s positioned ~ ~-1 ~ store success entity @s data.fbf.hito_new byte 0 store result entity @s Age int -1 run fill ^ ^ ^ ^ ^ ^-2 black_concrete replace white_concrete
#:Type_5:Chain
#:Desc_5:Move helper forward
execute as @e[nbt={data:{fbf:{hito_helper:1b}}}] at @s rotated as @s run tp @s ^ ^ ^-4