diff --git a/1_21_0/data/armor_statues/function/admin.mcfunction b/1_21_0/data/armor_statues/function/admin.mcfunction index e28830b..5b6ad5a 100644 --- a/1_21_0/data/armor_statues/function/admin.mcfunction +++ b/1_21_0/data/armor_statues/function/admin.mcfunction @@ -534,7 +534,7 @@ execute if score #name_enabled as_angle matches 1 run tellraw @s [\ # Disable auto visible name execute if score #auto_name_visible as_angle matches 0 run tellraw @s [\ {\ - "text":"Disable auto visible name: ",\ + "text":"Auto name visibility: ",\ "color":"aqua"\ },\ {\ @@ -555,7 +555,7 @@ execute if score #auto_name_visible as_angle matches 0 run tellraw @s [\ ] execute if score #auto_name_visible as_angle matches 1 run tellraw @s [\ {\ - "text":"Disable auto visible name: ",\ + "text":"Auto name visibility: ",\ "color":"aqua"\ },\ {\ diff --git a/1_21_2/data/armor_statues/function/interactions/display_setup.mcfunction b/1_21_2/data/armor_statues/function/interactions/display_setup.mcfunction new file mode 100644 index 0000000..7b6a6ec --- /dev/null +++ b/1_21_2/data/armor_statues/function/interactions/display_setup.mcfunction @@ -0,0 +1,61 @@ +# +# Description: Sets up display and interaction for interactions +# Called by: armor_statues:interactions/setup +# Entity @s: armor_stand +# Parameters: +# type (str): appendage to assign to +# block (str): block for display entity +# x (float): x coord +# y (float): y coord +# translation (float): translation of block display +# scale (float): scale of display entity +# entity (str): entity type to summon +# +# summons temp block display for multiplication +# +summon minecraft:block_display ^ ^ ^ {Tags:["as_temp_block_display"]} +execute store result storage armor_statues:temp multiply.var2 float 0.0001 run attribute @s minecraft:scale get 10000 +$data merge storage armor_statues:temp {\ + display_setup: {\ + type: "$(type)",\ + block: "$(block)"\ + }\ + } +$data merge storage armor_statues:temp {\ + multiply: {\ + var1: $(x),\ + out: 'storage armor_statues:temp display_setup.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +$data merge storage armor_statues:temp {\ + multiply: {\ + var1: $(y),\ + out: 'storage armor_statues:temp display_setup.y'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +$data merge storage armor_statues:temp {\ + multiply: {\ + var1: $(translation),\ + out: 'storage armor_statues:temp display_setup.translation'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +$data merge storage armor_statues:temp {\ + multiply: {\ + var1: $(scale),\ + out: 'storage armor_statues:temp display_setup.scale'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +# +# kill temp block display +# +kill @e[type=minecraft:block_display,tag=as_temp_block_display] + +# +# Summons display +# +$execute rotated ~ 0 positioned ^ ^ ^ summon $(entity) run function armor_statues:interactions/display_setup_helper with storage armor_statues:temp display_setup + diff --git a/1_21_2/data/armor_statues/function/interactions/readjust_interactions.mcfunction b/1_21_2/data/armor_statues/function/interactions/readjust_interactions.mcfunction new file mode 100644 index 0000000..3263b8f --- /dev/null +++ b/1_21_2/data/armor_statues/function/interactions/readjust_interactions.mcfunction @@ -0,0 +1,105 @@ +# +# Description: teleports interactions to correct positions +# Called by: armor_statues:interactions/interact_pointer +# Entity @s: armor_stand +# +# summons temp block display for multiplication +# +summon minecraft:block_display ^ ^ ^ {Tags:["as_temp_block_display"]} +execute store result storage armor_statues:temp multiply.var2 float 0.0001 run attribute @s minecraft:scale get 10000 +# Stores uuid to select entities +scoreboard players operation #uuid_selector as_uuid1 = @s as_uuid1 +scoreboard players operation #uuid_selector as_uuid2 = @s as_uuid2 +scoreboard players operation #uuid_selector as_uuid3 = @s as_uuid3 +scoreboard players operation #uuid_selector as_uuid4 = @s as_uuid4 +# Selects entities from their stored uuid +function armor_statues:select_by_uuid +# head +data merge storage armor_statues:temp {\ + tp: {\ + x: 0f\ + }\ + } +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 1.52f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } + +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_head_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# body +data merge storage armor_statues:temp {\ + tp: {\ + x: 0f\ + }\ + } +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 1.25f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } + +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_body_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# right arm +data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.34375f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + data merge storage armor_statues:temp {\ + multiply: {\ + var1: 1.28125f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_right_arm_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# left arm +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.34375f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_left_arm_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# right leg +data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.125f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.65625f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_right_leg_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# left leg +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.125f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_left_leg_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# base +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_base_interactable] rotated ~ 0 run tp ^ ^ ^ +# +tag @e[tag=as_uuid_selected] remove as_uuid_selected + +# +# kill temp block display +# +kill @e[type=minecraft:block_display,tag=as_temp_block_display] \ No newline at end of file diff --git a/1_21_2/data/armor_statues/function/interactions/readjust_interactions_small.mcfunction b/1_21_2/data/armor_statues/function/interactions/readjust_interactions_small.mcfunction new file mode 100644 index 0000000..f6ee03b --- /dev/null +++ b/1_21_2/data/armor_statues/function/interactions/readjust_interactions_small.mcfunction @@ -0,0 +1,94 @@ +# +# Description: teleports interactions to correct positions +# Called by: armor_statues:interactions/interact_pointer +# Entity @s: armor_stand +# +# summons temp block display for multiplication +# +summon minecraft:block_display ^ ^ ^ {Tags:["as_temp_block_display"]} +execute store result storage armor_statues:temp multiply.var2 float 0.0001 run attribute @s minecraft:scale get 10000 +# Stores uuid to select entities +scoreboard players operation #uuid_selector as_uuid1 = @s as_uuid1 +scoreboard players operation #uuid_selector as_uuid2 = @s as_uuid2 +scoreboard players operation #uuid_selector as_uuid3 = @s as_uuid3 +scoreboard players operation #uuid_selector as_uuid4 = @s as_uuid4 +# Selects entities from their stored uuid +function armor_statues:select_by_uuid +# head +data merge storage armor_statues:temp {\ + tp: {\ + x: 0f\ + }\ + } +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.76f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } + +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_head_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# body +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.625f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } + +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_body_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# right arm +data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.171875f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.640625f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_right_arm_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# left arm +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.171875f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_left_arm_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# right leg +data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.0625f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.328125f,\ + out: 'storage armor_statues:temp tp.y'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_right_leg_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# left leg +data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.0625f,\ + out: 'storage armor_statues:temp tp.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_left_leg_interactable] rotated ~ 0 run function armor_statues:interactions/tp_helper with storage armor_statues:temp tp +# base +execute as @e[type=#armor_statues:selectable,tag=as_uuid_selected,tag=as_base_interactable] rotated ~ 0 run tp ^ ^ ^ +tag @e[tag=as_uuid_selected] remove as_uuid_selected \ No newline at end of file diff --git a/1_21_2/data/armor_statues/function/repeat/save_redo_state.mcfunction b/1_21_2/data/armor_statues/function/repeat/save_redo_state.mcfunction new file mode 100644 index 0000000..98f6071 --- /dev/null +++ b/1_21_2/data/armor_statues/function/repeat/save_redo_state.mcfunction @@ -0,0 +1,20 @@ +# +# Description: Copies last state for redoing +# Called by: as_statue:repeat/undo +# Entity @s: player +# +# Copies data to redo +# +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates prepend value {HasVisualFire:0b} +# +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].Pose set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Pose +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].NoBasePlate set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] NoBasePlate +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].ShowArms set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] ShowArms +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].Small set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Small +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].Invisible set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Invisible +#data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].CustomNameVisible set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] CustomNameVisible +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].NoGravity set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] NoGravity +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].Pos set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Pos +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].Rotation set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Rotation +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].HasVisualFire set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] HasVisualFire +execute store result storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].Scale double 0.001 run attribute @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] minecraft:scale get 1000 diff --git a/1_21_2/data/armor_statues/function/repeat/save_undo_state.mcfunction b/1_21_2/data/armor_statues/function/repeat/save_undo_state.mcfunction new file mode 100644 index 0000000..fa23dd7 --- /dev/null +++ b/1_21_2/data/armor_statues/function/repeat/save_undo_state.mcfunction @@ -0,0 +1,20 @@ +# +# Description: Copies last state for undoing +# Called by: as_statue:repeat/save +# Entity @s: player +# +# Saves state for undoing +# +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates prepend value {HasVisualFire:0b} +# +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].Pose set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Pose +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].NoBasePlate set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] NoBasePlate +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].ShowArms set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] ShowArms +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].Small set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Small +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].Invisible set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Invisible +#data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].CustomNameVisible set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] CustomNameVisible +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].NoGravity set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] NoGravity +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].Pos set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Pos +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].Rotation set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] Rotation +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].HasVisualFire set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] HasVisualFire +execute store result storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].Scale double 0.001 run attribute @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] minecraft:scale get 1000 diff --git a/1_21_2/data/armor_statues/function/set_scale.mcfunction b/1_21_2/data/armor_statues/function/set_scale.mcfunction new file mode 100644 index 0000000..7ed5bc2 --- /dev/null +++ b/1_21_2/data/armor_statues/function/set_scale.mcfunction @@ -0,0 +1,8 @@ +# +# Description: sets scale attribute +# Called by: as_statue:trigger/paste +# Entity @s: armor stand +# Parameters: +# Scale (double): scale attribute to set +# +$attribute @s minecraft:scale base set $(Scale) \ No newline at end of file diff --git a/1_21_2/data/armor_statues/function/summon_temp_marker.mcfunction b/1_21_2/data/armor_statues/function/summon_temp_marker.mcfunction new file mode 100644 index 0000000..8b520a6 --- /dev/null +++ b/1_21_2/data/armor_statues/function/summon_temp_marker.mcfunction @@ -0,0 +1,35 @@ +# +# Description: Summons a temp marker to use as a pointer +# Called by: armor_statues:trigger/pointing|armor_statues:trigger/pointing_small +# Entity @s: armor stand +# Parameters: +# x (float): x coord +# y (float): y coord +# +# summons temp block display for multiplication +# +summon minecraft:block_display ^ ^ ^ {Tags:["as_temp_block_display"]} +execute store result storage armor_statues:temp multiply.var2 float 0.0001 run attribute @s minecraft:scale get 10000 +$data merge storage armor_statues:temp {\ + multiply: {\ + var1: $(x),\ + out: 'storage armor_statues:temp coord.x'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +$data merge storage armor_statues:temp {\ + multiply: {\ + var1: $(y),\ + out: 'storage armor_statues:temp coord.y'\ + }\ + } +execute as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +# +# Summons temp marker +# +function armor_statues:summon_temp_marker_helper with storage armor_statues:temp coord +# +# kill temp block display +# +kill @e[type=minecraft:block_display,tag=as_temp_block_display] \ No newline at end of file diff --git a/1_21_2/data/armor_statues/function/trigger/align.mcfunction b/1_21_2/data/armor_statues/function/trigger/align.mcfunction new file mode 100644 index 0000000..44c9b64 --- /dev/null +++ b/1_21_2/data/armor_statues/function/trigger/align.mcfunction @@ -0,0 +1,128 @@ +# +# Description: Align held block or item with supporting surface +# Called by: armor_statues:trigger +# Entity @s: armor stand +# +# +# summons temp block display for multiplication +# +summon minecraft:block_display ^ ^ ^ {Tags:["as_temp_block_display"]} +execute store result storage armor_statues:temp multiply.var2 float 0.0001 run attribute @s minecraft:scale get 10000 +# +# Align block to surface +# +execute if entity @s[scores={as_trigger=151}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.5725f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=151}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=151}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.655f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=151}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=151}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.352,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=151}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=151}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-15.0f,135.0f,0.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]}} +execute if entity @s[scores={as_trigger=151}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# Align item to surface (upright) +# +execute if entity @s[scores={as_trigger=152}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.36f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=152}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=152}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -1.41f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=152}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=152}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.5625,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=152}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=152}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-90.0f,0.0f,0.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]}} +execute if entity @s[scores={as_trigger=152}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# Align item to surface (flat) +# +execute if entity @s[scores={as_trigger=153}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.385f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=153}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=153}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.78f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=153}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=153}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.295,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=153}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=153}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[0.0f,0.001f,0.0f],LeftArm:[0.0f,0.001f,0.0f],RightLeg:[0.0f,0.001f,0.0f],LeftLeg:[0.0f,0.001f,0.0f]}} +execute if entity @s[scores={as_trigger=153}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# Align tool to surface (flat) +# +execute if entity @s[scores={as_trigger=154}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.17f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=154}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=154}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -1.285f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=154}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=154}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.44,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=154}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=154}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-10.0f,0.0f,-90.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]}} +execute if entity @s[scores={as_trigger=154}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# Tag the armor stand as modified and invisible +# +tag @s add as_invisible +tag @s add as_modified + +# +# kill temp block display +# +kill @e[type=minecraft:block_display,tag=as_temp_block_display] diff --git a/1_21_2/data/armor_statues/function/trigger/align_small.mcfunction b/1_21_2/data/armor_statues/function/trigger/align_small.mcfunction new file mode 100644 index 0000000..1d10579 --- /dev/null +++ b/1_21_2/data/armor_statues/function/trigger/align_small.mcfunction @@ -0,0 +1,128 @@ +# +# Description: Align held block or item with supporting surface for small armor stands +# Called by: armor_statues:trigger +# Entity @s: armor stand +# +# summons temp block display for multiplication +# +summon minecraft:block_display ^ ^ ^ {Tags:["as_temp_block_display"]} +execute store result storage armor_statues:temp multiply.var2 float 0.0001 run attribute @s minecraft:scale get 10000 +# +# Align block to surface +# +execute if entity @s[scores={as_trigger=151}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.28625f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=151}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=151}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.3275f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=151}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=151}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.176,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=151}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=151}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-15.0f,135.0f,0.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]}} +execute if entity @s[scores={as_trigger=151}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# Align item to surface (upright) +# +execute if entity @s[scores={as_trigger=152}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.18f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=152}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=152}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.705f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=152}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=152}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.28125,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=152}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=152}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-90.0f,0.0f,0.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]}} +execute if entity @s[scores={as_trigger=152}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# Align item to surface (flat) +# +execute if entity @s[scores={as_trigger=153}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: 0.1925f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=153}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=153}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.39f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=153}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=153}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.1475,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=153}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=153}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[0.0f,0.0f,0.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]}} +execute if entity @s[scores={as_trigger=153}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# Align tool to surface (flat) +# +execute if entity @s[scores={as_trigger=154}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.085f,\ + out: 'storage armor_statues:temp align.x'\ + }\ + } +execute if entity @s[scores={as_trigger=154}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=154}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.6425f,\ + out: 'storage armor_statues:temp align.y'\ + }\ + } +execute if entity @s[scores={as_trigger=154}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply +execute if entity @s[scores={as_trigger=154}] run data merge storage armor_statues:temp {\ + multiply: {\ + var1: -0.22,\ + out: 'storage armor_statues:temp align.z'\ + }\ + } +execute if entity @s[scores={as_trigger=154}] as @e[type=minecraft:block_display,sort=nearest,limit=1,tag=as_temp_block_display] at @s run function armor_statues:multiply_float with storage armor_statues:temp multiply + +execute if entity @s[scores={as_trigger=154}] run data merge entity @s {ShowArms:1b,NoGravity:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-10.0f,0.0f,-90.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]}} +execute if entity @s[scores={as_trigger=154}] at @s run function armor_statues:trigger/tp_helper with storage armor_statues:temp align +# +# +# Tag the armor stand as modified and invisible +# +tag @s add as_invisible +tag @s add as_modified + +# +# kill temp block display +# +kill @e[type=minecraft:block_display,tag=as_temp_block_display] \ No newline at end of file diff --git a/1_21_2/data/armor_statues/function/trigger/copy.mcfunction b/1_21_2/data/armor_statues/function/trigger/copy.mcfunction new file mode 100644 index 0000000..426896d --- /dev/null +++ b/1_21_2/data/armor_statues/function/trigger/copy.mcfunction @@ -0,0 +1,29 @@ +# +# Description: Copies selected armor stand settings and pose to the book +# Called by: as_statue:trigger +# Entity @s: armor stand +# +execute as @p[tag=as_selected] run function armor_statues:storage_in +# +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose set value {Pose: {RightArm: [0f, 0f, 0f], LeftLeg: [0f, 0f, 0f], Head: [0f, 0f, 0f], LeftArm: [0f, 0f, 0f], RightLeg: [0f, 0f, 0f], Body: [0f, 0f, 0f]}, NoBasePlate:0b, ShowArms:0b, Small:0b, Invisible:0b, HasVisualFire:0b} +# +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.Pose merge from entity @s Pose +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.NoBasePlate set from entity @s NoBasePlate +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.ShowArms set from entity @s ShowArms +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.Small set from entity @s Small +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.Invisible set from entity @s Invisible +data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.HasVisualFire set from entity @s HasVisualFire +execute store result storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.Scale double 0.001 run attribute @s minecraft:scale get 1000 +execute if score #cnv_enabled as_angle matches 1.. run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.CustomNameVisible set value 0 +execute if score #cnv_enabled as_angle matches 1.. run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.CustomNameVisible set from entity @s CustomNameVisible +execute if score #name_enabled as_angle matches 1.. run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.CustomName set from entity @s CustomName +# +execute as @p[tag=as_selected] run function armor_statues:storage_out +# +effect give @s minecraft:glowing 1 +execute as @p[tag=as_selected] run function armor_statues:player_message {\ + message: '{\ + "text":"Pose and settings copied to the book",\ + "color":"dark_green"\ + }'\ +} diff --git a/1_21_2/data/armor_statues/function/trigger/rack.mcfunction b/1_21_2/data/armor_statues/function/trigger/rack.mcfunction new file mode 100644 index 0000000..1038401 --- /dev/null +++ b/1_21_2/data/armor_statues/function/trigger/rack.mcfunction @@ -0,0 +1,67 @@ +# +# Description: Align stand with tripwire hook to make a tool rack +# Called by: armor_statues:trigger +# Entity @s: armor stand +# +# Turn off gravity for armor stand +# +data merge entity @s {NoGravity:1b} +# +# Check for an tripwire hook in the blocks above the stand and, if found, move the stand into position below the hook and tag it +# +execute at @s align xyz positioned ~0.5 ~ ~0.5 if block ~ ~1 ~ minecraft:tripwire_hook run tp @s ~ ~ ~ +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook run tag @s add as_rack +execute if entity @s[tag=!as_rack] at @s align xyz positioned ~0.5 ~1 ~0.5 if block ~ ~1 ~ minecraft:tripwire_hook run tp @s ~ ~ ~ +execute if entity @s[tag=!as_rack] at @s if block ~ ~1 ~ minecraft:tripwire_hook run tag @s add as_rack +execute if entity @s[tag=!as_rack] at @s align xyz positioned ~0.5 ~2 ~0.5 if block ~ ~1 ~ minecraft:tripwire_hook run tp @s ~ ~ ~ +execute if entity @s[tag=!as_rack] at @s if block ~ ~1 ~ minecraft:tripwire_hook run tag @s add as_rack +# +# Change scale +# +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook run attribute @s minecraft:scale base set 1 +# +# If there is a tripwire hook above the armor stand, rotate the stand to match it's orientation +# +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=north] run data merge entity @s {Rotation:[180.0f,0.0f]} +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=east] run data merge entity @s {Rotation:[-90.0f,0.0f]} +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=south] run data merge entity @s {Rotation:[0.0f,0.0f]} +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=west] run data merge entity @s {Rotation:[90.0f,0.0f]} +# +# If armor stand is not tagged, display failure message +# +execute if entity @s[tag=!as_rack] as @p[tag=as_selected] run function armor_statues:player_message {\ + message: '{\ + "text":"Tripwire hook not found",\ + "color":"dark_red"\ + }'\ +} +# +# Otherwise, adjust the armor stand pose and settings, disabling all slots but the main hand, and move it into place +# +execute if entity @s[tag=as_rack,scores={as_trigger=155}] run data merge entity @s {ShowArms:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-100.0f,90.0f,180.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]},DisabledSlots:4079166} +execute if entity @s[tag=as_rack,scores={as_trigger=155}] at @s run tp @s ^-0.17 ^0.24 ^-0.05 +# +# Tag the armor stand as modified +# +execute if entity @s[tag=as_rack] run tag @s add as_modified +# +# Also, mark as locked +# +execute if entity @s[tag=as_rack] run tag @s add as_locked +# +# add Player UUID lock +# +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid1 run data get entity @p[tag=as_selected] UUID[0] +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid2 run data get entity @p[tag=as_selected] UUID[1] +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid3 run data get entity @p[tag=as_selected] UUID[2] +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid4 run data get entity @p[tag=as_selected] UUID[3] +execute if entity @s[tag=as_rack] run tag @s add as_uuid_locked +# +# add tool rack tag +# +execute if entity @s[tag=as_rack] run tag @s add as_tool_rack +execute if entity @s[tag=as_rack] run tag @s add as_invisible +# +# Finally, remove the as_rack tag +# +execute if entity @s[tag=as_rack] run tag @s remove as_rack diff --git a/1_21_2/data/armor_statues/function/trigger/rack_small.mcfunction b/1_21_2/data/armor_statues/function/trigger/rack_small.mcfunction new file mode 100644 index 0000000..9874cd8 --- /dev/null +++ b/1_21_2/data/armor_statues/function/trigger/rack_small.mcfunction @@ -0,0 +1,67 @@ +# +# Description: Align stand with tripwire hook to make a tool rack for small armor stands +# Called by: armor_statues:trigger +# Entity @s: armor stand +# +# Turn off gravity for armor stand +# +data merge entity @s {NoGravity:1b} +# +# Check for an tripwire hook in the blocks above the stand and, if found, move the stand into position below the hook and tag it +# +execute at @s align xyz positioned ~0.5 ~ ~0.5 if block ~ ~1 ~ minecraft:tripwire_hook run tp @s ~ ~ ~ +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook run tag @s add as_rack +execute if entity @s[tag=!as_rack] at @s align xyz positioned ~0.5 ~1 ~0.5 if block ~ ~1 ~ minecraft:tripwire_hook run tp @s ~ ~ ~ +execute if entity @s[tag=!as_rack] at @s if block ~ ~1 ~ minecraft:tripwire_hook run tag @s add as_rack +execute if entity @s[tag=!as_rack] at @s align xyz positioned ~0.5 ~2 ~0.5 if block ~ ~1 ~ minecraft:tripwire_hook run tp @s ~ ~ ~ +execute if entity @s[tag=!as_rack] at @s if block ~ ~1 ~ minecraft:tripwire_hook run tag @s add as_rack +# +# Change scale +# +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook run attribute @s minecraft:scale base set 1 +# +# If there is a tripwire hook above the armor stand, rotate the stand to match it's orientation +# +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=north] run data merge entity @s {Rotation:[180.0f,0.0f]} +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=east] run data merge entity @s {Rotation:[-90.0f,0.0f]} +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=south] run data merge entity @s {Rotation:[0.0f,0.0f]} +execute at @s if block ~ ~1 ~ minecraft:tripwire_hook[facing=west] run data merge entity @s {Rotation:[90.0f,0.0f]} +# +# If armor stand is not tagged, display failure message +# +execute if entity @s[tag=!as_rack] as @p[tag=as_selected] run function armor_statues:player_message {\ + message: '{\ + "text":"Tripwire hook not found",\ + "color":"dark_red"\ + }'\ +} +# +# Otherwise, adjust the armor stand pose and settings, disabling all slots but the main hand, and move it into place +# +execute if entity @s[tag=as_rack,scores={as_trigger=155}] run data merge entity @s {ShowArms:1b,Invisible:1b,Pose:{Head:[0.0f,0.001f,0.0f],Body:[0.0f,0.001f,0.0f],RightArm:[-100.0f,90.0f,180.0f],LeftArm:[0.0f,0.0f,0.0f],RightLeg:[0.0f,0.0f,0.0f],LeftLeg:[0.0f,0.0f,0.0f]},DisabledSlots:4079166} +execute if entity @s[tag=as_rack,scores={as_trigger=155}] at @s run tp @s ^-0.085 ^0.87 ^-0.05 +# +# Tag the armor stand as modified +# +execute if entity @s[tag=as_rack] run tag @s add as_modified +# +# Also, mark as locked +# +execute if entity @s[tag=as_rack] run tag @s add as_locked +# +# add Player UUID lock +# +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid1 run data get entity @p[tag=as_selected] UUID[0] +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid2 run data get entity @p[tag=as_selected] UUID[1] +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid3 run data get entity @p[tag=as_selected] UUID[2] +execute if entity @s[tag=as_rack] run execute store result score @s as_lock_uuid4 run data get entity @p[tag=as_selected] UUID[3] +execute if entity @s[tag=as_rack] run tag @s add as_uuid_locked +# +# add tool rack tag +# +execute if entity @s[tag=as_rack] run tag @s add as_tool_rack +execute if entity @s[tag=as_rack] run tag @s add as_invisible +# +# Finally, remove the as_rack tag +# +execute if entity @s[tag=as_rack] run tag @s remove as_rack diff --git a/1_21_2/data/armor_statues/function/trigger/scale.mcfunction b/1_21_2/data/armor_statues/function/trigger/scale.mcfunction new file mode 100644 index 0000000..09302fc --- /dev/null +++ b/1_21_2/data/armor_statues/function/trigger/scale.mcfunction @@ -0,0 +1,31 @@ +# +# Description: Adds scale to armor stand +# Called by: armor_statues:trigger +# Entity @s: armor stand +# +# gets armor stand scale +# +execute store result score #scale as_angle run attribute @s minecraft:scale base get 1000 +# +# adds scale to value +# +execute if entity @s[scores={as_trigger=1300}] run scoreboard players remove #scale as_angle 500 +execute if entity @s[scores={as_trigger=1301}] run scoreboard players remove #scale as_angle 100 +execute if entity @s[scores={as_trigger=1302}] run scoreboard players remove #scale as_angle 10 +execute if entity @s[scores={as_trigger=1303}] run scoreboard players add #scale as_angle 10 +execute if entity @s[scores={as_trigger=1304}] run scoreboard players add #scale as_angle 100 +execute if entity @s[scores={as_trigger=1305}] run scoreboard players add #scale as_angle 500 +# +# make sure scale is within limits +# +execute if score #scale as_angle < #scale_min as_angle run scoreboard players operation #scale as_angle = #scale_min as_angle +execute if score #scale as_angle > #scale_max as_angle run scoreboard players operation #scale as_angle = #scale_max as_angle +# +# Sets back to scale +# +execute store result storage armor_statues:temp scale.scale float 0.001 run scoreboard players get #scale as_angle +function armor_statues:trigger/scale_helper with storage armor_statues:temp scale +# +# Tag the armor stand as modified +# +tag @s add as_modified diff --git a/1_21_2/data/armor_statues/function/trigger/scale_helper.mcfunction b/1_21_2/data/armor_statues/function/trigger/scale_helper.mcfunction new file mode 100644 index 0000000..fed624e --- /dev/null +++ b/1_21_2/data/armor_statues/function/trigger/scale_helper.mcfunction @@ -0,0 +1,8 @@ +# +# Description: Adds scale to armor stand +# Called by: armor_statues:scale +# Entity @s: armor stand +# Parameters: +# scale (float): scale to set to armor stand +# +$attribute @s minecraft:scale base set $(scale) diff --git a/1_21_2/data/armor_statues/loot_table/random_pose.json b/1_21_2/data/armor_statues/loot_table/random_pose.json new file mode 100644 index 0000000..bf8e8c8 --- /dev/null +++ b/1_21_2/data/armor_statues/loot_table/random_pose.json @@ -0,0 +1,201 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:stone_button", + "functions": [ + { + "function": "minecraft:set_attributes", + "modifiers": [ + { + "name": "head_x", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "head_y", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "head_z", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "body_x", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "body_y", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "body_z", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "left_arm_x", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "left_arm_y", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "left_arm_z", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "right_arm_x", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "right_arm_y", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "right_arm_z", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "left_leg_x", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "left_leg_y", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "left_leg_z", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "right_leg_x", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "right_leg_y", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + }, + { + "name": "right_leg_z", + "attribute": "attack_damage", + "amount": { + "min": -180, + "max": 180 + }, + "slot": "mainhand", + "operation": "addition" + } + ] + } + ] + } + ] + } + ] + } \ No newline at end of file diff --git a/1_21_2/data/armor_statues/recipe/adjustment_wand.json b/1_21_2/data/armor_statues/recipe/adjustment_wand.json new file mode 100644 index 0000000..844b1a6 --- /dev/null +++ b/1_21_2/data/armor_statues/recipe/adjustment_wand.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "armor_statues", + "ingredients": [ + "minecraft:armor_stand", + "minecraft:warped_fungus_on_a_stick" + ], + "result": { + "count": 1, + "id": "minecraft:warped_fungus_on_a_stick", + "components": { + "minecraft:custom_data": { + "wand":1, + "type":0 + }, + "minecraft:enchantment_glint_override": true, + "minecraft:max_stack_size": 1, + "minecraft:custom_model_data": 10, + "minecraft:custom_name": "\"Adjustment Wand: X axis\"", + "minecraft:lore": [ + "[\"\", {\"keybind\":\"key.sneak\"}, {\"text\":\"+\"}, {\"keybind\":\"key.use\"}, {\"text\":\" to set mode\"}]" + ] + } + } +} \ No newline at end of file diff --git a/1_21_2/data/armor_statues/recipe/book.json b/1_21_2/data/armor_statues/recipe/book.json new file mode 100644 index 0000000..91bc245 --- /dev/null +++ b/1_21_2/data/armor_statues/recipe/book.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "armor_statues", + "ingredients": [ + "minecraft:armor_stand", + "minecraft:book" + ], + "result": { + "count": 1, + "id": "minecraft:written_book", + "components": { + "minecraft:custom_model_data": 10, + "minecraft:custom_data": { + "datapack": "ArmorStatuesV2" + }, + "minecraft:written_book_content": { + "title": "Statues v2.12", + "author": "Stick God", + "generation": 0, + "pages": [ + "[{\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Statues v2.12\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"This book allows you to apply basic settings to an armor stand. Clicking the coloured links will adjust the closest armor stand within three blocks.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"\\u293a\", \"bold\": true, \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1200\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": {\"text\": \"Undo\", \"color\": \"yellow\"}}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u27f2\", \"bold\": true, \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_repeat set 1\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": {\"text\": \"Repeat\", \"color\": \"yellow\"}}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u293b\", \"bold\": true, \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1201\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": {\"text\": \"Redo\", \"color\": \"yellow\"}}}, {\"text\": \"\\n Table of Contents\", \"color\": \"black\"}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"\\nStyles\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"2\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Auto Align\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"7\"}}, {\"text\": \"\\nNudge\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"3\"}}, {\"text\": \" ..\", \"color\": \"white\"}, {\"text\": \"Swap Slots\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"7\"}}, {\"text\": \"\\nRotation\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"4\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Mirror/Flip\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"8\"}}, {\"text\": \"\\nPointing\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"4\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Utilities\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"8\"}}, {\"text\": \"\\nPresets\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"5\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Scale\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"9\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"Adjust\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"6\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Item Frames\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"9\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Credits\", \"color\": \"dark_aqua\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"10\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Check Target\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 999\"}}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Style Settings\", \"color\": \"dark_blue\"}, {\"text\": \"\\n\\nShow Base Plate:\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Yes\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"No\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 2\"}}, {\"text\": \"\\nShow Arms:\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Yes\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 3\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"No\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 4\"}}, {\"text\": \"\\nSmall Stand:\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Yes\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 5\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"No\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 6\"}}, {\"text\": \"\\nApply Gravity:\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Yes\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 7\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"No\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 8\"}}, {\"text\": \"\\nStand Visible:\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Yes\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 9\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"No\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 10\"}}, {\"text\": \"\\nHas Visual Fire:\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Yes\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 13\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"No\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 14\"}}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Nudge Position\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Turn gravity off before nudging the Y-position.\\n\\nRelative Aligned nudging moves the armor stand relative to the player's position and aligned to the block grid. (X=Left/Right, Z=Away/Towards)\\n\\nRelative Aligned nudging moves the armor stand relative to the player's exact position. (X=Left/Right, Y=Above/Below, Z=Away/Towards)\\n\\nNudges are in 16ths of a block to align with the pixels of the block textures.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\nX:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 40\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 101\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 102\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 113\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 114\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 103\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 104\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 43\"}}, {\"text\": \"\\nY:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 44\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 105\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 106\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 115\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 116\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 107\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 108\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 47\"}}, {\"text\": \"\\nZ:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 48\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 109\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 110\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 117\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 118\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 111\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 112\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 51\"}}, {\"text\": \"\\n\\n Relative Aligned \", \"color\": \"black\"}, {\"text\": \"\\nX:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1100\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1101\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1102\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1130\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1131\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1103\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1104\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1105\"}}, {\"text\": \"\\nZ:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1106\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1107\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1108\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1132\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1133\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1109\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1110\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1111\"}}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"\\n Relative Exact \", \"color\": \"black\"}, {\"text\": \"\\nX:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1112\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1113\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1114\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1134\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1135\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1115\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1116\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1117\"}}, {\"text\": \"\\nY:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1118\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1119\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1120\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1136\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1137\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1121\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1122\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1123\"}}, {\"text\": \"\\nZ:\", \"color\": \"black\"}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1124\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1125\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1126\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1138\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1139\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1127\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a3\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1128\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a8\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1129\"}}, {\"text\": \"\"}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Adjust Rotation\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"The angle step (default 15\\u00b0) is used for both the stand rotation and the pose adjustments.\\n\\nToward and Away turn the armor stand to face toward or away from you.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"<<\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 56\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"45\\u00b0\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 120\"}}, {\"text\": \" \", \"color\": \"black\"}, {\"text\": \"15\\u00b0\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 121\"}}, {\"text\": \" \", \"color\": \"black\"}, {\"text\": \"5\\u00b0\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 122\"}}, {\"text\": \" \", \"color\": \"black\"}, {\"text\": \"1\\u00b0\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 123\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \">>\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 57\"}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Toward\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 124\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Away\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 125\"}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Pointing\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Points selected appendage at head or feet.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\nGet Pointer Wand\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger pointer_wand\"}, \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Use an Armor Stand and a Stick in a crafting table to craft a Pointer Wand.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"Head:\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Head\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1160\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Feet\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1166\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"Body:\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Head\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1161\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Feet\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1167\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"R.Arm:\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Head\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1162\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Feet\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1168\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"L.Arm:\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Head\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1163\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Feet\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1169\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"R.Leg:\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Head\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1164\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Feet\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1170\"}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"L.Leg:\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Head\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1165\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Feet\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1171\"}}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Pose Presets\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"The Death pose is for a figure lying down and requires a separate armor stand for the legs.\\n\\nRandomized creates a completely unique randomized custom pose.\\n\\nThe Block and Item presets are designed to hold blocks and items in line with the world grid.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\nAttention\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 20\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Confident\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 30\"}}, {\"text\": \"\\nWalking\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 21\"}}, {\"text\": \" ..\", \"color\": \"white\"}, {\"text\": \"Salute\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 31\"}}, {\"text\": \"\\nRunning\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 22\"}}, {\"text\": \" ..\", \"color\": \"white\"}, {\"text\": \"Death\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 32\"}}, {\"text\": \"\\nPointing\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 23\"}}, {\"text\": \" ..\", \"color\": \"white\"}, {\"text\": \"Facepalm\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 33\"}}, {\"text\": \"\\nBlocking\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 24\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Lazing\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 34\"}}, {\"text\": \"\\nLungeing\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 25\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Confused\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 35\"}}, {\"text\": \"\\nWinning\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 26\"}}, {\"text\": \" ..\", \"color\": \"white\"}, {\"text\": \"Formal\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 36\"}}, {\"text\": \"\\nSitting\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 27\"}}, {\"text\": \" ..\", \"color\": \"white\"}, {\"text\": \"Sad\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 37\"}}, {\"text\": \"\\nArabesque\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 28\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Joyous\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 38\"}}, {\"text\": \"\\nCupid\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 29\"}, \"underlined\": true}, {\"text\": \" \", \"color\": \"dark_green\", \"underlined\": true}, {\"text\": \"Stargazing\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 39\"}, \"underlined\": true}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"Randomized\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1150\"}}, {\"text\": \"\\nBlock\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 141\"}}, {\"text\": \" ..\", \"color\": \"white\"}, {\"text\": \"Item\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 142\"}}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Pose Adjustment\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"The angle step set for adjusting the stand rotation is also used for the pose adjustments.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\nGet Adjustment Wand\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger adjustment_wand\"}, \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Use an Armor Stand and a Warped Fungus On a Stick in a crafting table to craft an Adjustment Wand.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n .\", \"color\": \"white\"}, {\"text\": \"X\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Y\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Z\", \"color\": \"black\"}, {\"text\": \"\\nHead\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 60\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 61\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 62\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 63\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 64\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 65\"}}, {\"text\": \"\\n\\nBody\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 67\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 66\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 68\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 69\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 70\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 71\"}}, {\"text\": \"\\n\\nR.Arm\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 72\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 73\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 74\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 75\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 77\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 76\"}}, {\"text\": \"\\n\\nL.Arm\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 78\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 79\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 81\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 80\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 82\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 83\"}}, {\"text\": \"\\n\\nR.Leg\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 84\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 85\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 87\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 86\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 89\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 88\"}}, {\"text\": \"\\n\\nL.Leg\", \"color\": \"black\"}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 90\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 91\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 92\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 93\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"-\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 94\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"+\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 95\"}}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Auto Alignment\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Pose and position an armor stand to align a held block or item with an adjacent block.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n\", \"color\": \"white\"}, {\"text\": \"Block on surface\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 151\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Align an armor stand placed on a surface so that a block held by it appears on the surface.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n\", \"color\": \"white\"}, {\"text\": \"Item on surface\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 152\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Align an armor stand placed on a surface so that an item held by it appears upright on the surface.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"Item flat on surface\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 153\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Align an armor stand placed on a surface so that a non-tool item held by it appears flat on the surface.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\", \"color\": \"white\"}, {\"text\": \"Tool flat on surface\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 154\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Align an armor stand placed on a surface so that a tool held by it appears flat on the surface.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n\", \"color\": \"white\"}, {\"text\": \"Tool rack\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 155\"}, \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Align an armor stand with a tripwire hook on the wall above it so that a tool held by it appears to be hanging up.\\n\\nAlso locks the armor stand and disables all slots except the mainhand.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Swap Slots\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Swap items between equipment slots\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n.\", \"color\": \"white\"}, {\"text\": \"Mainhand \", \"color\": \"black\"}, {\"text\": \"<->\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 161\"}}, {\"text\": \" Offhand\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Mainhand \", \"color\": \"black\"}, {\"text\": \"<->\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 162\"}}, {\"text\": \" Head\", \"color\": \"black\"}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"Pose Mirror & Flip\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Mirroring copies the arm or leg pose from left to right or vice versa. Flipping reverses the armor stand's pose entirely.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Mirror Arms\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"L>R\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 131\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"R>L\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 132\"}}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Legs\", \"color\": \"black\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"L>R\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 133\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"R>L\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 134\"}}, {\"text\": \"\\n\\n .\", \"color\": \"white\"}, {\"text\": \"<-Flip->\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 135\"}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Utilities\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Copying an armor stand stores it's settings and pose in the book and these can then be pasted into another armor stand. The book must be the selected item in your mainhand or offhand for this to work.\\n\\nLocking an armor stand prevents it from being changed using the book and disables interaction with the equipment slots.\\n\\nSealing an armor stand, which is only available in creative mode, does the same and in addition makes it invulnerable\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n .\", \"color\": \"white\"}, {\"text\": \"Copy\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1004\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"Paste\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1005\"}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Lock\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1000\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"Unlock\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1001\"}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Seal\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/function armor_statues:sealing/seal\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"Unseal\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/function armor_statues:sealing/unseal\"}}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" .\", \"color\": \"white\"}, {\"text\": \"Scale\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Scale changes the size of the Armor Stand (this is seperate from the Small attribute).\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"\\u207b.5\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1300\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1301\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207b.01\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1302\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.01\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1303\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.1\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1304\"}}, {\"text\": \".\", \"color\": \"white\"}, {\"text\": \"\\u207a.5\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger as_trigger set 1305\"}}, {\"text\": \"\\n\\n\", \"color\": \"white\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Item Frames\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"To make an item frame invisible it must be one block in front of the players eyes and have an item in the frame.\\nAlternatively you can also enter:\\n/trigger if_invisible\\nTo make the item frame visible remove its item.\\n\\nMust be in creative to make item frame Fixed, or have it enabled from the admin menu.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n\", \"color\": \"white\"}, {\"text\": \"Invisible item frame\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger if_invisible set 1\"}}, {\"text\": \"\\n\\n\", \"color\": \"white\"}, {\"text\": \"Fixed Item Frame:\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Yes\", \"color\": \"dark_green\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger if_invisible set 2\"}}, {\"text\": \" / \", \"color\": \"black\"}, {\"text\": \"No\", \"color\": \"red\", \"clickEvent\": {\"action\": \"run_command\", \"value\": \"/trigger if_invisible set 3\"}}, {\"text\": \"\\n\\n\", \"color\": \"white\"}]", + "[{\"text\": \"\"}, {\"text\": \"\\u00ab\", \"color\": \"light_purple\", \"clickEvent\": {\"action\": \"change_page\", \"value\": \"1\"}}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"Credits\", \"color\": \"dark_blue\"}, {\"text\": \" \", \"color\": \"white\"}, {\"text\": \"\\u24be\", \"color\": \"dark_purple\", \"hoverEvent\": {\"action\": \"show_text\", \"contents\": [{\"text\": \"Click on names for links.\", \"color\": \"yellow\"}]}}, {\"text\": \"\\n\\n Original concept by\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"Phssthpok\", \"color\": \"#87325d\", \"bold\": true, \"clickEvent\": {\"action\": \"open_url\", \"value\": \"https://twitter.com/MCPhssthpok\"}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Additional\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"improvements by\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"MSpaceDev\", \"color\": \"#e30000\", \"bold\": true, \"clickEvent\": {\"action\": \"open_url\", \"value\": \"https://www.youtube.com/c/MinecraftSpace\"}}, {\"text\": \"\\n\\n \", \"color\": \"white\"}, {\"text\": \"Development and\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"improvements by\", \"color\": \"black\"}, {\"text\": \"\\n \", \"color\": \"white\"}, {\"text\": \"MukiTanuki\", \"color\": \"#0072e5\", \"bold\": true, \"clickEvent\": {\"action\": \"open_url\", \"value\": \"https://twitter.com/MukiTanuki\"}}]" + ] + } + } + } +} \ No newline at end of file diff --git a/1_21_2/data/armor_statues/recipe/pointer_wand.json b/1_21_2/data/armor_statues/recipe/pointer_wand.json new file mode 100644 index 0000000..6b12bea --- /dev/null +++ b/1_21_2/data/armor_statues/recipe/pointer_wand.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shapeless", + "group": "armor_statues", + "ingredients": [ + "minecraft:armor_stand", + "minecraft:stick" + ], + "result": { + "count": 1, + "id": "minecraft:stick", + "components": { + "minecraft:custom_data": { + "wand":1 + }, + "minecraft:enchantment_glint_override": true, + "minecraft:max_stack_size": 1, + "minecraft:custom_model_data": 10, + "minecraft:custom_name": "\"Pointer Wand\"", + "minecraft:lore": [ + "[\"\", {\"text\":\"Point at \"}, {\"translate\":\"entity.minecraft.armor_stand\"}, {\"text\":\" to use\"}]" + ] + } + } +} \ No newline at end of file diff --git a/pack.mcmeta b/pack.mcmeta index bf319f5..dbb8a5d 100644 --- a/pack.mcmeta +++ b/pack.mcmeta @@ -3,7 +3,7 @@ "pack_format": 18, "supported_formats": { "min_inclusive": 18, - "max_inclusive": 48 + "max_inclusive": 57 }, "description": [{"text":"Armor Statues","color":"gold"},{"text":"\n","color":"yellow"}] }, @@ -29,6 +29,13 @@ "min_inclusive": 48, "max_inclusive": 9999999 } + }, + { + "directory": "1_21_2", + "formats": { + "min_inclusive": 57, + "max_inclusive": 9999999 + } } ] }