
# -> If block is simply not a signal fire, then return and set block
execute if block ~ ~ ~ #campfires[signal_fire=false] run \
    return run \
        setblock ~ ~ ~ campfire[lit=true,signal_fire=true]

# -> If block is simply unlit, then return and extinguish
execute if block ~ ~ ~ #campfires[lit=false] run \
    return run \
        function overly_realistic:general/campfires/campfire_extinguish

# -> Set ShouldReturn
scoreboard players set #or.campfire_operation_should_return OverlyRealistic.General.ArbitraryData 1

# -> Remove charcoal clumps if there are any
execute align xyz \
    as @n[type=interaction,tag=OverlyRealistic.Block.CharcoalClump,dx=0,dy=0,dz=0] \
    positioned ~0.5 ~0.5 ~0.5 run \
        function overly_realistic:general/custom_blocks/charcoal_clump/charcoal_clump_break

# -> Remove fire starters if there are any
execute align xyz \
    as @n[type=interaction,tag=OverlyRealistic.Block.FireStarter,dx=0,dy=0,dz=0] \
    positioned ~0.5 ~0.5 ~0.5 run \
        function overly_realistic:general/custom_blocks/fire_starter/fire_starter_break

# -> Remove self
kill @s
