Added Hammer
Added Unbreaking tag Renamed rayloop to loop
This commit is contained in:
parent
d97807baf3
commit
c6a7150041
6
assets/lzstools/models/items/hammer/hammer.json
Normal file
6
assets/lzstools/models/items/hammer/hammer.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:item/handheld",
|
||||
"textures": {
|
||||
"layer0": "lzstools:item/hammer/hammer"
|
||||
}
|
||||
}
|
BIN
assets/lzstools/textures/item/hammer/hammer.png
Normal file
BIN
assets/lzstools/textures/item/hammer/hammer.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 449 B |
13
assets/minecraft/items/iron_pickaxe.json
Normal file
13
assets/minecraft/items/iron_pickaxe.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"model": {
|
||||
"type": "select",
|
||||
"property": "custom_model_data",
|
||||
"fallback": {
|
||||
"type": "minecraft:model",
|
||||
"model": "minecraft:item/iron_pickaxe"
|
||||
},
|
||||
"cases": [
|
||||
{ "when": "lzstools:hammer", "model": { "type": "model", "model": "lzstools:items/hammer/hammer" } }
|
||||
]
|
||||
}
|
||||
}
|
32
data/lzstools/advancement/visible/hammer.json
Normal file
32
data/lzstools/advancement/visible/hammer.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"display": {
|
||||
"icon": {
|
||||
"id": "minecraft:iron_pickaxe",
|
||||
"components": {
|
||||
"minecraft:custom_model_data": {
|
||||
"strings": [
|
||||
"lzstools:hammer"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"text": "Hammering out the details"
|
||||
},
|
||||
"description": {
|
||||
"text": "Craft a Hammer"
|
||||
},
|
||||
"show_toast": true,
|
||||
"announce_to_chat": false,
|
||||
"hidden": false
|
||||
},
|
||||
"parent": "lzstools:visible/root",
|
||||
"criteria": {
|
||||
"": {
|
||||
"trigger": "minecraft:recipe_crafted",
|
||||
"conditions": {
|
||||
"recipe_id": "lzstools_hammer:hammer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
scoreboard players set @s lzt_click_check 0
|
||||
|
||||
|
||||
# Wrench
|
||||
execute if predicate lzstools:wrench/mainhand run function lzstools_wrench:wrench/rotate
|
||||
execute if predicate lzstools:wrench/offhand run function lzstools_wrench:wrench/offhand
|
4
data/lzstools/function/check_hammer.mcfunction
Normal file
4
data/lzstools/function/check_hammer.mcfunction
Normal file
@ -0,0 +1,4 @@
|
||||
scoreboard players set @s lzt_hammer_check 0
|
||||
|
||||
# Hammer
|
||||
execute if predicate lzstools:hammer/mainhand run function lzstools_hammer:mainhand
|
1
data/lzstools/function/give/hammer.mcfunction
Normal file
1
data/lzstools/function/give/hammer.mcfunction
Normal file
@ -0,0 +1 @@
|
||||
give @s minecraft:iron_pickaxe[minecraft:custom_name={"text":"Hammer","color":"aqua"},minecraft:custom_model_data={strings:["lzstools:hammer"]},minecraft:custom_data={"lzstools":["hammer"]},minecraft:max_damage=1800]
|
@ -9,9 +9,21 @@ scoreboard objectives add lzt_wrench_raycast dummy
|
||||
scoreboard objectives add lzt_trowel_success dummy
|
||||
scoreboard objectives add lzt_trowel_raycast dummy
|
||||
scoreboard objectives add lzt_trowel_raycast_hit dummy
|
||||
scoreboard objectives add lzt_trowel_block_check dummy
|
||||
scoreboard objectives add lzt_trowel_block_length dummy
|
||||
scoreboard objectives add lzt_chosen_block_check dummy
|
||||
scoreboard objectives add lzt_trowel_unbreaking_check dummy
|
||||
scoreboard objectives add lzt_trowel_unbreaking_chance dummy
|
||||
scoreboard objectives add lzt_trowel_damage dummy
|
||||
scoreboard objectives add lzt_trowel_max_damage dummy
|
||||
scoreboard objectives add lzt_trowel_max_damage dummy
|
||||
|
||||
# Hammer
|
||||
scoreboard objectives add lzt_hammer_check minecraft.used:minecraft.iron_pickaxe
|
||||
scoreboard objectives add lzt_hammer_success dummy
|
||||
scoreboard objectives add lzt_hammer_raycast dummy
|
||||
scoreboard objectives add lzt_hammer_raycast_hit dummy
|
||||
scoreboard objectives add lzt_hammer_side_raycast dummy
|
||||
scoreboard objectives add lzt_hammer_side_raycast_hit dummy
|
||||
scoreboard objectives add lzt_hammer_unbreaking_check dummy
|
||||
scoreboard objectives add lzt_hammer_unbreaking_chance dummy
|
||||
scoreboard objectives add lzt_hammer_damage dummy
|
||||
scoreboard objectives add lzt_hammer_max_damage dummy
|
@ -1,3 +1,4 @@
|
||||
recipe give @s lzstools_wrench:wrench
|
||||
recipe give @s lzstools_trowel:iron
|
||||
recipe give @s lzstools_trowel:diamond
|
||||
recipe give @s lzstools_trowel:diamond
|
||||
recipe give @s lzstools_hammer:hammer
|
@ -1,2 +1,5 @@
|
||||
# Click Check
|
||||
execute as @a if score @s lzt_click_check matches 1.. run function lzstools:player
|
||||
execute as @a if score @s lzt_click_check matches 1.. run function lzstools:check_click
|
||||
|
||||
# Hammer Click Check
|
||||
execute as @a if score @s lzt_hammer_check matches 1.. run function lzstools:check_hammer
|
17
data/lzstools/predicate/hammer/mainhand.json
Normal file
17
data/lzstools/predicate/hammer/mainhand.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"lzstools": [
|
||||
"hammer"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
18
data/lzstools/tags/block/unbreakable.json
Normal file
18
data/lzstools/tags/block/unbreakable.json
Normal file
@ -0,0 +1,18 @@
|
||||
{"replace":false,"values":[
|
||||
"minecraft:bedrock",
|
||||
"minecraft:structure_block",
|
||||
"minecraft:structure_void",
|
||||
"minecraft:jigsaw",
|
||||
"minecraft:command_block",
|
||||
"minecraft:chain_command_block",
|
||||
"minecraft:repeating_command_block",
|
||||
"minecraft:test_instance_block",
|
||||
"minecraft:test_block",
|
||||
"minecraft:light",
|
||||
"minecraft:end_portal",
|
||||
"minecraft:end_portal_frame",
|
||||
"minecraft:nether_portal",
|
||||
"minecraft:reinforced_deepslate",
|
||||
"minecraft:water",
|
||||
"minecraft:lava"
|
||||
]}
|
22
data/lzstools_hammer/function/break/break.mcfunction
Normal file
22
data/lzstools_hammer/function/break/break.mcfunction
Normal file
@ -0,0 +1,22 @@
|
||||
execute if block ~ ~ ~ #lzstools:unbreakable run return fail
|
||||
execute if block ~ ~ ~ #minecraft:air run return fail
|
||||
execute if score @s lzt_hammer_damage >= @s lzt_hammer_max_damage run return fail
|
||||
|
||||
|
||||
# Spawn item
|
||||
loot spawn ~ ~ ~ mine ~ ~ ~ mainhand
|
||||
|
||||
|
||||
# Break to update neighbors
|
||||
clone ~ ~ ~ ~ ~ ~ ~ -64 ~ replace
|
||||
setblock ~ ~ ~ minecraft:air replace
|
||||
|
||||
# Break
|
||||
gamerule doTileDrops false
|
||||
clone ~ -64 ~ ~ -64 ~ ~ ~ ~ replace
|
||||
setblock ~ -64 ~ minecraft:bedrock replace
|
||||
setblock ~ ~ ~ minecraft:air destroy
|
||||
gamerule doTileDrops true
|
||||
|
||||
# Durability
|
||||
function lzstools_hammer:durability/handle
|
8
data/lzstools_hammer/function/break/eastwest.mcfunction
Normal file
8
data/lzstools_hammer/function/break/eastwest.mcfunction
Normal file
@ -0,0 +1,8 @@
|
||||
execute positioned ~ ~1 ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~1 ~1 run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~1 ~-1 run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~ ~1 run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~ ~-1 run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~-1 ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~-1 ~1 run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~-1 ~-1 run function lzstools_hammer:break/break
|
@ -0,0 +1,8 @@
|
||||
execute positioned ~ ~1 ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~1 ~1 ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~-1 ~1 ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~1 ~ ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~-1 ~ ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~-1 ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~1 ~-1 ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~-1 ~-1 ~ run function lzstools_hammer:break/break
|
8
data/lzstools_hammer/function/break/updown.mcfunction
Normal file
8
data/lzstools_hammer/function/break/updown.mcfunction
Normal file
@ -0,0 +1,8 @@
|
||||
execute positioned ~1 ~ ~1 run function lzstools_hammer:break/break
|
||||
execute positioned ~1 ~ ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~1 ~ ~-1 run function lzstools_hammer:break/break
|
||||
execute positioned ~-1 ~ ~1 run function lzstools_hammer:break/break
|
||||
execute positioned ~-1 ~ ~ run function lzstools_hammer:break/break
|
||||
execute positioned ~-1 ~ ~-1 run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~ ~1 run function lzstools_hammer:break/break
|
||||
execute positioned ~ ~ ~-1 run function lzstools_hammer:break/break
|
@ -0,0 +1 @@
|
||||
$item modify entity @s weapon.mainhand {"function":"minecraft:set_components","components":{"minecraft:damage":$(damage)}}
|
@ -0,0 +1,3 @@
|
||||
execute if entity @s[predicate=lzstools_hammer:hammer] at @s anchored eyes run particle minecraft:item{item:"minecraft:iron_pickaxe"} ^ ^-0.35 ^0.65 0.1 0.1 0.1 0.06 10 force
|
||||
item replace entity @s weapon.mainhand with minecraft:air
|
||||
playsound minecraft:entity.item.break master @a ~ ~ ~ 1 1
|
13
data/lzstools_hammer/function/durability/handle.mcfunction
Normal file
13
data/lzstools_hammer/function/durability/handle.mcfunction
Normal file
@ -0,0 +1,13 @@
|
||||
scoreboard players reset @s lzt_hammer_unbreaking_check
|
||||
execute if entity @s[predicate=lzstools:unbreaking/all] run function lzstools_hammer:durability/unbreaking
|
||||
execute if score @s lzt_hammer_unbreaking_check matches 1 run return fail
|
||||
|
||||
# Handle Damage
|
||||
data modify storage lzstools:hammer components set from entity @s SelectedItem.components
|
||||
execute store result score @s lzt_hammer_damage run data get storage lzstools:hammer components."minecraft:damage"
|
||||
execute store result score @s lzt_hammer_max_damage run data get storage lzstools:hammer components."minecraft:max_damage"
|
||||
scoreboard players add @s lzt_hammer_damage 1
|
||||
execute store result storage lzstools:hammer damage int 1 run scoreboard players get @s lzt_hammer_damage
|
||||
|
||||
function lzstools_hammer:durability/apply with storage lzstools:hammer
|
||||
execute if score @s lzt_hammer_damage >= @s lzt_hammer_max_damage run function lzstools_hammer:durability/break
|
@ -0,0 +1,4 @@
|
||||
execute store result score @s lzt_hammer_unbreaking_chance run random value 1..100
|
||||
execute if entity @s[predicate=lzstools:unbreaking/mainhand/3] if score @s lzt_hammer_unbreaking_chance matches ..75 run return run scoreboard players set @s lzt_hammer_unbreaking_check 1
|
||||
execute if entity @s[predicate=lzstools:unbreaking/mainhand/2] if score @s lzt_hammer_unbreaking_chance matches ..66 run return run scoreboard players set @s lzt_hammer_unbreaking_check 1
|
||||
execute if entity @s[predicate=lzstools:unbreaking/mainhand/1] if score @s lzt_hammer_unbreaking_chance matches ..50 run return run scoreboard players set @s lzt_hammer_unbreaking_check 1
|
2
data/lzstools_hammer/function/mainhand.mcfunction
Normal file
2
data/lzstools_hammer/function/mainhand.mcfunction
Normal file
@ -0,0 +1,2 @@
|
||||
scoreboard players set @s lzt_hammer_check 0
|
||||
function lzstools_hammer:raycast/start
|
15
data/lzstools_hammer/function/raycast/hit.mcfunction
Normal file
15
data/lzstools_hammer/function/raycast/hit.mcfunction
Normal file
@ -0,0 +1,15 @@
|
||||
## Raycast Hit
|
||||
|
||||
scoreboard players set @s lzt_hammer_raycast_hit 1
|
||||
|
||||
setblock ~ ~ ~ minecraft:barrier replace
|
||||
# Get Raycast Target Coords
|
||||
function lzstools_hammer:raycast_side/start
|
||||
setblock ~ ~ ~ minecraft:air replace
|
||||
|
||||
execute if score px lzt_hammer_side_raycast matches 0 run return run function lzstools_hammer:break/eastwest
|
||||
execute if score px lzt_hammer_side_raycast matches 15 run return run function lzstools_hammer:break/eastwest
|
||||
execute if score pz lzt_hammer_side_raycast matches 0 run return run function lzstools_hammer:break/northsouth
|
||||
execute if score pz lzt_hammer_side_raycast matches 15 run return run function lzstools_hammer:break/northsouth
|
||||
execute if score py lzt_hammer_side_raycast matches 0 run return run function lzstools_hammer:break/updown
|
||||
execute if score py lzt_hammer_side_raycast matches 15 run return run function lzstools_hammer:break/updown
|
7
data/lzstools_hammer/function/raycast/loop.mcfunction
Normal file
7
data/lzstools_hammer/function/raycast/loop.mcfunction
Normal file
@ -0,0 +1,7 @@
|
||||
## Raycast Loop
|
||||
|
||||
execute as @s at @n[type=item,nbt={Age:0s},distance=..0.8] run function lzstools_hammer:raycast/hit
|
||||
|
||||
# Advance forward and if nothing found
|
||||
scoreboard players add #distance lzt_hammer_raycast 1
|
||||
execute if score @s lzt_hammer_raycast_hit matches 0 if score #distance lzt_hammer_raycast matches ..451 positioned ^ ^ ^0.01 run function lzstools_hammer:raycast/loop
|
12
data/lzstools_hammer/function/raycast/start.mcfunction
Normal file
12
data/lzstools_hammer/function/raycast/start.mcfunction
Normal file
@ -0,0 +1,12 @@
|
||||
## Raycast Start
|
||||
scoreboard players set #distance lzt_hammer_raycast 0
|
||||
scoreboard players set @s lzt_hammer_raycast_hit 0
|
||||
|
||||
|
||||
# Raycast
|
||||
execute as @s at @s anchored eyes positioned ^ ^ ^ anchored feet run function lzstools_hammer:raycast/loop
|
||||
|
||||
# Clean Data
|
||||
data remove storage lzstools:hammer damage
|
||||
scoreboard players set @s lzt_hammer_damage 0
|
||||
scoreboard players set @s lzt_hammer_max_damage 1
|
@ -0,0 +1,9 @@
|
||||
## Raycast Loop
|
||||
|
||||
execute if block ~ ~ ~ minecraft:barrier run scoreboard players set @s lzt_hammer_side_raycast_hit 1
|
||||
|
||||
execute if score @s lzt_hammer_side_raycast_hit matches 1 run function lzstools_hammer:raycast_side/target_coords
|
||||
|
||||
# Advance forward and if nothing found
|
||||
scoreboard players add #distance lzt_hammer_side_raycast 1
|
||||
execute if score @s lzt_hammer_side_raycast_hit matches 0 if score #distance lzt_hammer_side_raycast matches ..451 positioned ^ ^ ^0.01 run function lzstools_hammer:raycast_side/loop
|
@ -0,0 +1,8 @@
|
||||
## Raycast Start
|
||||
scoreboard players set #distance lzt_hammer_side_raycast 0
|
||||
scoreboard players set @s lzt_hammer_side_raycast_hit 0
|
||||
|
||||
# Raycast
|
||||
execute as @s at @s anchored eyes positioned ^ ^ ^ anchored feet run function lzstools_hammer:raycast_side/loop
|
||||
|
||||
# Clean Data
|
@ -0,0 +1,22 @@
|
||||
## Get Raycast Target Coords
|
||||
|
||||
# Stored Value for Calc
|
||||
scoreboard players set c16 lzt_hammer_side_raycast 16
|
||||
# Summon Invisible Entity
|
||||
summon area_effect_cloud ~ ~ ~ {Radius:0.01,Duration:1,Tags:["RaycastMark"]}
|
||||
|
||||
# Pixel Calculations
|
||||
execute store result score px lzt_hammer_side_raycast run data get entity @e[tag=RaycastMark,sort=nearest,limit=1] Pos[0] 16
|
||||
scoreboard players operation px lzt_hammer_side_raycast %= c16 lzt_hammer_side_raycast
|
||||
execute if score px lzt_hammer_side_raycast matches ..-1 run scoreboard players add px lzt_hammer_side_raycast 16
|
||||
|
||||
execute store result score py lzt_hammer_side_raycast run data get entity @e[tag=RaycastMark,sort=nearest,limit=1] Pos[1] 16
|
||||
scoreboard players operation py lzt_hammer_side_raycast %= c16 lzt_hammer_side_raycast
|
||||
execute if score py lzt_hammer_side_raycast matches ..-1 run scoreboard players add py lzt_hammer_side_raycast 16
|
||||
|
||||
execute store result score pz lzt_hammer_side_raycast run data get entity @e[tag=RaycastMark,sort=nearest,limit=1] Pos[2] 16
|
||||
scoreboard players operation pz lzt_hammer_side_raycast %= c16 lzt_hammer_side_raycast
|
||||
execute if score pz lzt_hammer_side_raycast matches ..-1 run scoreboard players add pz lzt_hammer_side_raycast 16
|
||||
|
||||
# Remove Entity
|
||||
kill @e[tag=RaycastMark,sort=nearest,limit=1]
|
17
data/lzstools_hammer/predicate/hammer.json
Normal file
17
data/lzstools_hammer/predicate/hammer.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"lzstools": [
|
||||
"hammer"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
36
data/lzstools_hammer/recipe/hammer.json
Normal file
36
data/lzstools_hammer/recipe/hammer.json
Normal file
@ -0,0 +1,36 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"category": "equipment",
|
||||
"pattern": [
|
||||
"h ",
|
||||
"s ",
|
||||
"l "
|
||||
],
|
||||
"key": {
|
||||
"h": "minecraft:heavy_core",
|
||||
"s": "minecraft:stick",
|
||||
"l": "minecraft:lightning_rod"
|
||||
},
|
||||
"result": {
|
||||
"id": "minecraft:iron_pickaxe",
|
||||
"count": 1,
|
||||
"components": {
|
||||
"minecraft:max_damage": 1800,
|
||||
"minecraft:custom_name": {
|
||||
"text": "Hammer",
|
||||
"color": "aqua",
|
||||
"italic": false
|
||||
},
|
||||
"minecraft:custom_model_data": {
|
||||
"strings": [
|
||||
"lzstools:hammer"
|
||||
]
|
||||
},
|
||||
"minecraft:custom_data": {
|
||||
"lzstools": [
|
||||
"hammer"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,8 +5,8 @@ execute if entity @n[distance=..1] run return fail
|
||||
function lzstools_trowel:random/start
|
||||
|
||||
# No block, don't place and end
|
||||
execute store result score @s lzt_chosen_block_check run data get storage lzstools:trowel chosen_block
|
||||
execute if score @s lzt_chosen_block_check matches 0 run return fail
|
||||
execute store result score @s lzt_trowel_block_check run data get storage lzstools:trowel chosen_block
|
||||
execute if score @s lzt_trowel_block_check matches 0 run return fail
|
||||
|
||||
execute at @s run playsound minecraft:block.stone.place master @a ~ ~ ~ 1 1.2
|
||||
execute at @s run playsound minecraft:block.azalea_leaves.place master @a ~ ~ ~ 0.3 1
|
||||
|
@ -11,4 +11,4 @@ execute if score @s lzt_trowel_raycast_hit matches 1 run tag @s remove lzstools_
|
||||
|
||||
# Advance forward and if nothing found
|
||||
scoreboard players add #distance lzt_trowel_raycast 1
|
||||
execute if score @s lzt_trowel_raycast_hit matches 0 if score #distance lzt_trowel_raycast matches ..451 positioned ^ ^ ^0.01 run function lzstools_trowel:raycast/rayloop
|
||||
execute if score @s lzt_trowel_raycast_hit matches 0 if score #distance lzt_trowel_raycast matches ..451 positioned ^ ^ ^0.01 run function lzstools_trowel:raycast/loop
|
@ -2,7 +2,7 @@
|
||||
scoreboard players set #distance lzt_trowel_raycast 0
|
||||
|
||||
#Activating the raycast. This function will call itself until it is done.
|
||||
execute as @s at @s anchored eyes positioned ^ ^ ^ anchored feet run function lzstools_trowel:raycast/rayloop
|
||||
execute as @s at @s anchored eyes positioned ^ ^ ^ anchored feet run function lzstools_trowel:raycast/loop
|
||||
|
||||
# Clean Data
|
||||
data remove storage lzstools:trowel inventory
|
||||
|
@ -23,4 +23,4 @@ execute as @s[scores={lzt_wrench_success=1..}] run playsound minecraft:entity.it
|
||||
|
||||
# Advance forward and if nothing found
|
||||
scoreboard players add #distance lzt_wrench_raycast 1
|
||||
execute if score @s lzt_wrench_success matches 0 if score #distance lzt_wrench_raycast matches ..451 positioned ^ ^ ^0.01 run function lzstools_wrench:raycast/rayloop
|
||||
execute if score @s lzt_wrench_success matches 0 if score #distance lzt_wrench_raycast matches ..451 positioned ^ ^ ^0.01 run function lzstools_wrench:raycast/loop
|
@ -2,7 +2,7 @@
|
||||
scoreboard players set #distance lzt_wrench_raycast 0
|
||||
|
||||
#Activating the raycast. This function will call itself until it is done.
|
||||
execute as @s at @s anchored eyes positioned ^ ^ ^ anchored feet run function lzstools_wrench:raycast/rayloop
|
||||
execute as @s at @s anchored eyes positioned ^ ^ ^ anchored feet run function lzstools_wrench:raycast/loop
|
||||
|
||||
# Clean Data
|
||||
data remove storage lzstools:wrench block
|
Loading…
x
Reference in New Issue
Block a user