mirror of
https://github.com/LZStealth/armor-statues.git
synced 2025-06-07 17:16:44 +01:00
1.20.5 update
Updated everything to work with the new component system. The Armor Statues book can be crafted using a book+armor stand in a crafting table. The Pointer Wand can be crafted using a stick+armor stand in a crafting table. The Adjustment Wand can be crafted using a warped fungus on a stick+armor stand in a crafting table. Renaming written books/sticks/fungus on a stick to 'statues' to give the respective items is disabled by default (you can enable these via the admin menu) since you can craft them via the crafting table. - you can re-enable via admin menu. The trigger for getting pointer wand/adjustment wand is disabled by default since you can craft them via the crafting table. - you can re-enable via admin menu. Added 1/10th pixel nudging. Added Scale to the Armor Statues book. Adjusted all other applicable functions to work with scaling. You can adjust the min and max caps for scaling via the admin menu.
This commit is contained in:
parent
8758ad4b2d
commit
d7b2cd84d9
18
1_20_5/data/armor_statues/advancements/armor_statues.json
Normal file
18
1_20_5/data/armor_statues/advancements/armor_statues.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"display": {
|
||||
"icon": {
|
||||
"id": "minecraft:armor_stand"
|
||||
},
|
||||
"title": " Armor Statues ",
|
||||
"frame": "challenge",
|
||||
"description": ["",{"text":"Adds a unique book that allows you to alter the properties of armor stands in survival. ","color":"gold"},{"text":"Datapack by: ","color":"green"},{"text":"Phssthpok, MSpaceDev, and MukiTanuki\n","color":"aqua"},{"text":"Enter","color":"green"},{"text":" ","color":"gold"},{"text":"/trigger as_help","color":"yellow"},{"text":" for details.\n","color":"gold"},{"text":"Enter","color":"green"},{"text":" ","color":"gold"},{"text":"/function armor_statues:admin","color":"yellow"},{"text":" and use auto-complete to set config options.","color":"gold"}],
|
||||
"background": "minecraft:textures/block/black_concrete.png",
|
||||
"show_toast": false,
|
||||
"announce_to_chat": false
|
||||
},
|
||||
"criteria": {
|
||||
"tick": {
|
||||
"trigger": "minecraft:tick"
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
{
|
||||
"criteria": {
|
||||
"attack": {
|
||||
"trigger": "minecraft:player_hurt_entity",
|
||||
"conditions": {
|
||||
"player": [{
|
||||
"condition": "minecraft:reference",
|
||||
"name": "armor_statues:holding_wand"
|
||||
}],
|
||||
"entity": {
|
||||
"type": "minecraft:interaction",
|
||||
"nbt": "{Tags: [ \"as_interactable\" ]}"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"attack"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"function": "armor_statues:interactions/attack"
|
||||
}
|
||||
}
|
12
1_20_5/data/armor_statues/advancements/crafting.json
Normal file
12
1_20_5/data/armor_statues/advancements/crafting.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"criteria": {
|
||||
"impossible": {
|
||||
"trigger": "minecraft:impossible"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"impossible"
|
||||
]
|
||||
]
|
||||
}
|
31
1_20_5/data/armor_statues/advancements/enable.json
Normal file
31
1_20_5/data/armor_statues/advancements/enable.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"display": {
|
||||
"icon": {
|
||||
"id": "minecraft:armor_stand"
|
||||
},
|
||||
"title": {
|
||||
"text":"enable_as_trigger"
|
||||
},
|
||||
"description": {
|
||||
"text":""
|
||||
},
|
||||
"frame": "task",
|
||||
"show_toast": false,
|
||||
"announce_to_chat": false,
|
||||
"hidden": false
|
||||
},
|
||||
"parent": "armor_statues:root",
|
||||
"criteria": {
|
||||
"tick": {
|
||||
"trigger": "minecraft:tick"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"tick"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"function": "armor_statues:enable"
|
||||
}
|
||||
}
|
12
1_20_5/data/armor_statues/advancements/root.json
Normal file
12
1_20_5/data/armor_statues/advancements/root.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"criteria": {
|
||||
"impossible": {
|
||||
"trigger": "minecraft:impossible"
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"impossible"
|
||||
]
|
||||
]
|
||||
}
|
25
1_20_5/data/armor_statues/advancements/use_interaction.json
Normal file
25
1_20_5/data/armor_statues/advancements/use_interaction.json
Normal file
@ -0,0 +1,25 @@
|
||||
{
|
||||
"criteria": {
|
||||
"interact": {
|
||||
"trigger": "minecraft:player_interacted_with_entity",
|
||||
"conditions": {
|
||||
"player": [{
|
||||
"condition": "minecraft:reference",
|
||||
"name": "armor_statues:holding_wand"
|
||||
}],
|
||||
"entity": {
|
||||
"type": "minecraft:interaction",
|
||||
"nbt": "{Tags: [ \"as_interactable\" ]}"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"interact"
|
||||
]
|
||||
],
|
||||
"rewards": {
|
||||
"function": "armor_statues:interactions/interact"
|
||||
}
|
||||
}
|
43
1_20_5/data/armor_statues/functions/3_second.mcfunction
Normal file
43
1_20_5/data/armor_statues/functions/3_second.mcfunction
Normal file
@ -0,0 +1,43 @@
|
||||
#
|
||||
# Description: Check for players with trigger score set
|
||||
# Called by: #minecraft:load
|
||||
# Entity @s: none
|
||||
#
|
||||
schedule function armor_statues:3_second 3s
|
||||
#
|
||||
# Tags item frames with a book in them
|
||||
#
|
||||
execute if score #animate_trigger as_angle matches 1.. as @e[type=#armor_statues:item_frames,tag=!as_animatable,predicate=armor_statues:item_frame_with_book] run tag @s add as_animatable
|
||||
# Untags
|
||||
execute if score #animate_trigger as_angle matches 1.. as @e[type=#armor_statues:item_frames,tag=as_animatable,predicate=!armor_statues:item_frame_with_book] run tag @s remove as_animatable
|
||||
#
|
||||
# Turns invisible armor stands visible if they don't have any items, customNameVisible, aren't locked, are markers, or invulnerable
|
||||
#
|
||||
execute as @e[type=minecraft:armor_stand, tag=as_invisible, nbt={Invisible:1b}, nbt=!{Invulnerable:1b}, nbt=!{Marker:1b}, nbt=!{HandItems:[ {count:1} ]}, nbt=!{ArmorItems:[ {count:1} ]}, nbt=!{CustomNameVisible:1b}, tag=!as_locked] run function armor_statues:set_visible
|
||||
#
|
||||
# Unlocks tool rack armor stands if the tripwire hook is broken
|
||||
#
|
||||
execute as @e[type=minecraft:armor_stand, tag=as_tool_rack, nbt=!{Small:1b}] at @s unless block ~ ~1 ~ minecraft:tripwire_hook run function armor_statues:remove_tool_rack
|
||||
execute as @e[type=minecraft:armor_stand, tag=as_tool_rack, nbt={Small:1b}] at @s anchored eyes unless block ^ ^ ^ minecraft:tripwire_hook run function armor_statues:remove_tool_rack
|
||||
#
|
||||
# Sets an armor stand to interactable if player is holding a wand
|
||||
#
|
||||
execute if score #wands_disabled as_angle matches 0 as @a[predicate=armor_statues:holding_wand] at @s positioned ^ ^ ^3 as @e[type=minecraft:armor_stand,distance=..3,tag=!as_locked,tag=!as_interactable,nbt=!{Marker:1b},nbt=!{Invulnerable:1b},nbt={Small:0b}] at @s run function armor_statues:interactions/setup
|
||||
execute if score #wands_disabled as_angle matches 0 as @a[predicate=armor_statues:holding_wand] at @s positioned ^ ^ ^3 as @e[type=minecraft:armor_stand,distance=..3,tag=!as_locked,tag=!as_interactable,nbt=!{Marker:1b},nbt=!{Invulnerable:1b},nbt={Small:1b}] at @s run function armor_statues:interactions/setup_small
|
||||
#
|
||||
# Resets interactable armor stands
|
||||
#
|
||||
execute as @e[type=minecraft:armor_stand,tag=as_interactable] at @s unless entity @p[predicate=armor_statues:holding_wand,distance=..8] run function armor_statues:interactions/reset_armor_stand
|
||||
#
|
||||
# Resets stray interactable and block entities
|
||||
#
|
||||
execute as @e[type=#armor_statues:interactable,type=!minecraft:armor_stand,tag=as_interactable] at @s unless entity @p[predicate=armor_statues:holding_wand,distance=..10] run kill @s
|
||||
#
|
||||
# turns armor stands with names visible
|
||||
#
|
||||
execute as @e[type=minecraft:armor_stand,nbt=!{CustomNameVisible:1b}, nbt=!{Marker:1b}, nbt=!{Invulnerable:1b}] if data entity @s CustomName run data merge entity @s {CustomNameVisible:1b}
|
||||
#
|
||||
# re-enables triggers
|
||||
#
|
||||
scoreboard players enable * pointer_wand
|
||||
scoreboard players enable * adjustment_wand
|
@ -0,0 +1,14 @@
|
||||
#
|
||||
# Description: adjusts wand type
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
scoreboard players set #wand_type as_angle 0
|
||||
# gets current wand type
|
||||
execute store result score #wand_type as_angle run data get entity @s SelectedItem.components.minecraft:custom_data.type
|
||||
# cycles and sets wand according to type
|
||||
execute if score #wand_type as_angle matches 0 run item modify entity @s weapon.mainhand armor_statues:adjustment_wand_1
|
||||
execute if score #wand_type as_angle matches 1 run item modify entity @s weapon.mainhand armor_statues:adjustment_wand_2
|
||||
execute if score #wand_type as_angle matches 2 run item modify entity @s weapon.mainhand armor_statues:adjustment_wand_0
|
||||
# sound
|
||||
playsound minecraft:block.note_block.hat block @a ~ ~ ~ 0.5 1.5
|
@ -0,0 +1,27 @@
|
||||
#
|
||||
# Description: trigger for crafting adjustment wand
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
# Checks if wands are disabled
|
||||
#
|
||||
execute if score #wands_disabled as_angle matches 1 run function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"Wands must be enabled",\
|
||||
"color":"dark_red"\
|
||||
}'\
|
||||
}
|
||||
execute if score #wands_disabled as_angle matches 1 run scoreboard players set @s adjustment_wand 0
|
||||
execute if score #wands_disabled as_angle matches 1 run return fail
|
||||
# Checks if player already has a wand
|
||||
execute if items entity @s container.* minecraft:warped_fungus_on_a_stick[minecraft:custom_data~{wand:1b}] run title @s actionbar [{"text":"You already have an Adjustment Wand!","color": "red"}]
|
||||
execute if items entity @s container.* minecraft:warped_fungus_on_a_stick[minecraft:custom_data~{wand:1b}] run scoreboard players set @s adjustment_wand 0
|
||||
# Checks if player has an item for wand
|
||||
execute unless items entity @s[scores={adjustment_wand=1..}] container.* minecraft:warped_fungus_on_a_stick run title @s actionbar [{"text":"Must have a ","color":"red"},{"translate":"item.minecraft.warped_fungus_on_a_stick","color":"yellow"},{"color":"red","text":" in Inventory"}]
|
||||
execute unless items entity @s[scores={adjustment_wand=1..}] container.* minecraft:warped_fungus_on_a_stick run scoreboard players set @s adjustment_wand 0
|
||||
#
|
||||
clear @s[scores={adjustment_wand=1..}] minecraft:warped_fungus_on_a_stick 1
|
||||
loot give @s[scores={adjustment_wand=1..}] loot armor_statues:adjustment_wand
|
||||
# reset trigger
|
||||
scoreboard players set @s adjustment_wand 0
|
||||
scoreboard players enable @s adjustment_wand
|
593
1_20_5/data/armor_statues/functions/admin.mcfunction
Normal file
593
1_20_5/data/armor_statues/functions/admin.mcfunction
Normal file
@ -0,0 +1,593 @@
|
||||
#
|
||||
# Description: Display admin options in chat
|
||||
# Called by: Player
|
||||
# Entity @s: Player
|
||||
#
|
||||
tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text": "Customizable Armor Stands - Admin Options",\
|
||||
"color":"yellow",\
|
||||
"bold":true\
|
||||
}\
|
||||
]
|
||||
tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Particle shrine: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Create",\
|
||||
"color":"green",\
|
||||
"clickEvent": {\
|
||||
"action":"run_command",\
|
||||
"value":"/function armor_statues:shrine/create"\
|
||||
}\
|
||||
},\
|
||||
{\
|
||||
"text":" / ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Remove",\
|
||||
"color":"green",\
|
||||
"clickEvent":{\
|
||||
"action":"run_command",\
|
||||
"value":"/function armor_statues:shrine/remove"\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #help_craftable as_angle matches 0 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Get book from help: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/book_from_help_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #help_craftable as_angle matches 1 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Get book from help: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/book_from_help_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #book_uncraftable as_angle matches 0 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Craftable book by naming \"Statues\": ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/craft_book_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #book_uncraftable as_angle matches 1 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Craftable book by naming \"Statues\": ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/craft_book_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# pointer_craftable
|
||||
#
|
||||
execute if score #pointer_craftable as_angle matches 1 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Pointer Wand by naming \"Statues\": ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/pointer_craftable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #pointer_craftable as_angle matches 0 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Pointer Wand by naming \"Statues\": ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/pointer_craftable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# adjustment_craftable
|
||||
#
|
||||
execute if score #adjustment_craftable as_angle matches 1 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Adjustment Wand by naming \"Statues\": ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/adjustment_craftable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #adjustment_craftable as_angle matches 0 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Adjustment Wand by naming \"Statues\": ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/adjustment_craftable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# pointer_triggerable
|
||||
#
|
||||
execute if score #pointer_triggerable as_angle matches 1 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Pointer Wand using trigger: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/pointer_triggerable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #pointer_triggerable as_angle matches 0 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Pointer Wand using trigger: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/pointer_triggerable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# adjustment_triggerable
|
||||
#
|
||||
execute if score #adjustment_triggerable as_angle matches 1 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Adjustment Wand using trigger: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/adjustment_triggerable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #adjustment_triggerable as_angle matches 0 run tellraw @s \
|
||||
[\
|
||||
{\
|
||||
"text":"Adjustment Wand using trigger: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/adjustment_triggerable_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# uuid_locking
|
||||
#
|
||||
execute if score #uuid_locking as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":"UUID locked Armor Stands: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/uuid_lock_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Makes locked armor stands only unlockable by the player who locked them or creative players.\\n\\nClick to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #uuid_locking as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":"UUID locked Armor Stands: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/uuid_lock_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Makes locked armor stands only unlockable by the player who locked them or creative players.\\n\\nClick to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #fixing_enabled as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":"Enable Item Frame Fixing: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/fixed_item_frame_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #fixing_enabled as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":"Enable Item Frame Fixing: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/fixed_item_frame_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #wands_disabled as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":"Enable pointer and adjustment wands: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Enabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/wands_disabled_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #wands_disabled as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":"Enable pointer and adjustment wands: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text": "Disabled",\
|
||||
"color":"green", \
|
||||
"clickEvent":{\
|
||||
"action":"run_command", \
|
||||
"value":"/function armor_statues:admin/wands_disabled_toggle"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
#
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Delete unused invisible stands",\
|
||||
"color":"green",\
|
||||
"hoverEvent":{\
|
||||
"action":"show_text",\
|
||||
"contents":[\
|
||||
{\
|
||||
"text":"Deletes any invisible armor stands in loaded chunks that are not holding or wearing any items.",\
|
||||
"color":"yellow"\
|
||||
}\
|
||||
]\
|
||||
},\
|
||||
"clickEvent":{\
|
||||
"action":"run_command",\
|
||||
"value":"/function armor_statues:admin/unused"\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Highlight all stands",\
|
||||
"color":"green",\
|
||||
"hoverEvent":{\
|
||||
"action":"show_text",\
|
||||
"contents":[\
|
||||
{\
|
||||
"text":"Gives all stands within 64 blocks the glowing effect for 15 seconds",\
|
||||
"color":"yellow"\
|
||||
}\
|
||||
]\
|
||||
},\
|
||||
"clickEvent":{\
|
||||
"action":"run_command",\
|
||||
"value":"/effect give @e[type=armor_stand,distance=..64] minecraft:glowing 15 1 true"\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
#
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Max Undo States: ",\
|
||||
"color":"aqua",\
|
||||
"hoverEvent":{\
|
||||
"action":"show_text",\
|
||||
"contents":[\
|
||||
{\
|
||||
"text":"Sets the maximum number of undo states savable to the Armor Statues book.\nSet to 0 to disable undo states.",\
|
||||
"color":"yellow"\
|
||||
}\
|
||||
]\
|
||||
},\
|
||||
"clickEvent":{\
|
||||
"action":"suggest_command",\
|
||||
"value":"/scoreboard players set #undo_states as_angle <time>"\
|
||||
}\
|
||||
},\
|
||||
{\
|
||||
"score":{\
|
||||
"name":"#undo_states",\
|
||||
"objective":"as_angle"\
|
||||
},\
|
||||
"color":"green"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Item Frame animation time: ",\
|
||||
"color":"aqua",\
|
||||
"hoverEvent":{\
|
||||
"action":"show_text",\
|
||||
"contents":[\
|
||||
{\
|
||||
"text":"Enables Armor Stand animations by placing a book with a saved pose into an item frame with redstone dust on the block. Requires an Armor Stand to be 8 blocks from the item frame. Sets the number of game ticks between animation time of the item frames.\n(16 is recommended for most mid-sized servers.)\nSet to 0 to disable animations.",\
|
||||
"color":"yellow"\
|
||||
}\
|
||||
]\
|
||||
},\
|
||||
"clickEvent":{\
|
||||
"action":"suggest_command",\
|
||||
"value":"/scoreboard players set #animate_trigger as_angle <time>"\
|
||||
}\
|
||||
},\
|
||||
{\
|
||||
"score":{\
|
||||
"name":"#animate_trigger",\
|
||||
"objective":"as_angle"\
|
||||
},\
|
||||
"color":"green"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# Scale
|
||||
#
|
||||
execute store result storage armor_statues:admin scale.scale_min float 0.001 run scoreboard players get #scale_min as_angle
|
||||
execute store result storage armor_statues:admin scale.scale_max float 0.001 run scoreboard players get #scale_max as_angle
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Scale limits- ",\
|
||||
"color":"aqua",\
|
||||
"hoverEvent":{\
|
||||
"action":"show_text",\
|
||||
"contents":[\
|
||||
{\
|
||||
"text":"Sets the min and max values to allow using Scale.\nWARNING: setting these values too low/high may result in some settings not working properly.\n(0.25 is recommended for scale_min.\n3.0 is recommended for scale_max.)\nPhysical game limits are - min: 0.063 and max: 16.",\
|
||||
"color":"yellow"\
|
||||
}\
|
||||
]\
|
||||
},\
|
||||
"clickEvent":{\
|
||||
"action":"suggest_command",\
|
||||
"value":"/function armor_statues:admin/scale { scale_min: 0.25f, scale_max: 3.0f }"\
|
||||
}\
|
||||
},\
|
||||
{\
|
||||
"text": "Min: "\
|
||||
},\
|
||||
{\
|
||||
"storage":"armor_statues:admin",\
|
||||
"nbt":"scale.scale_min",\
|
||||
"color":"green"\
|
||||
},\
|
||||
{\
|
||||
"text":" Max: "\
|
||||
},\
|
||||
{\
|
||||
"storage":"armor_statues:admin",\
|
||||
"nbt":"scale.scale_max",\
|
||||
"color":"green"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# REDO this at some point!
|
||||
#tellraw @s [{"text":"Reduce local server load","color":"green","hoverEvent":{"action":"show_text","contents":[{"text":"Sets the Marker tag on all locked armor stands within 128 blocks. This reduces the load on the server from ticking the entities but makes the stands unaffected by entity updates such as being pushed by pistons. The Marker tag can be reset for individual stands by unlocking them.","color":"yellow"}]},"clickEvent":{"action":"run_command","value":"/function armor_statues:admin/marker"}}]
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"--------------------------",\
|
||||
"color":"yellow",\
|
||||
"bold":true\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# The "Reduce local server load" option has the unfortunate side effect of moving the stands' eye line to their base.
|
||||
# If this puts it inside a block, the items held and worn by the stand turn black.
|
||||
# Commented out for the time being whilst options are investigated.
|
||||
#
|
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Description: Enable option to get the adjustment wand by crafting
|
||||
# Called by: armor_statues:admin via chat link
|
||||
# Entity @s: player
|
||||
#
|
||||
scoreboard players set #as_success as_angle 0
|
||||
scoreboard players operation #as_success as_angle = #adjustment_craftable as_angle
|
||||
execute if score #as_success as_angle matches 0 run scoreboard players set #adjustment_craftable as_angle 1
|
||||
execute if score #as_success as_angle matches 1 run scoreboard players set #adjustment_craftable as_angle 0
|
||||
#
|
||||
execute if score #adjustment_craftable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the adjustment wand via renaming has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Enabled"\
|
||||
}\
|
||||
]
|
||||
execute if score #adjustment_craftable as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the adjustment wand via renaming has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Disabled"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
function armor_statues:admin
|
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Description: Enable option to get the adjustment wand by crafting
|
||||
# Called by: armor_statues:admin via chat link
|
||||
# Entity @s: player
|
||||
#
|
||||
scoreboard players set #as_success as_angle 0
|
||||
scoreboard players operation #as_success as_angle = #adjustment_triggerable as_angle
|
||||
execute if score #as_success as_angle matches 0 run scoreboard players set #adjustment_triggerable as_angle 1
|
||||
execute if score #as_success as_angle matches 1 run scoreboard players set #adjustment_triggerable as_angle 0
|
||||
#
|
||||
execute if score #adjustment_triggerable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the adjustment wand via trigger has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Enabled"\
|
||||
}\
|
||||
]
|
||||
execute if score #adjustment_triggerable as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the adjustment wand via trigger has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Disabled"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
function armor_statues:admin
|
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Description: Enable option to get the pointer wand by crafting
|
||||
# Called by: armor_statues:admin via chat link
|
||||
# Entity @s: player
|
||||
#
|
||||
scoreboard players set #as_success as_angle 0
|
||||
scoreboard players operation #as_success as_angle = #pointer_craftable as_angle
|
||||
execute if score #as_success as_angle matches 0 run scoreboard players set #pointer_craftable as_angle 1
|
||||
execute if score #as_success as_angle matches 1 run scoreboard players set #pointer_craftable as_angle 0
|
||||
#
|
||||
execute if score #pointer_craftable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the pointer wand via renaming has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Enabled"\
|
||||
}\
|
||||
]
|
||||
execute if score #pointer_craftable as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the pointer wand via renaming has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Disabled"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
function armor_statues:admin
|
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Description: Enable option to get the pointer wand by crafting
|
||||
# Called by: armor_statues:admin via chat link
|
||||
# Entity @s: player
|
||||
#
|
||||
scoreboard players set #as_success as_angle 0
|
||||
scoreboard players operation #as_success as_angle = #pointer_triggerable as_angle
|
||||
execute if score #as_success as_angle matches 0 run scoreboard players set #pointer_triggerable as_angle 1
|
||||
execute if score #as_success as_angle matches 1 run scoreboard players set #pointer_triggerable as_angle 0
|
||||
#
|
||||
execute if score #pointer_triggerable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the pointer wand via renaming has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Enabled"\
|
||||
}\
|
||||
]
|
||||
execute if score #pointer_triggerable as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":"Getting the pointer wand via renaming has been ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Disabled"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
function armor_statues:admin
|
48
1_20_5/data/armor_statues/functions/admin/scale.mcfunction
Normal file
48
1_20_5/data/armor_statues/functions/admin/scale.mcfunction
Normal file
@ -0,0 +1,48 @@
|
||||
#
|
||||
# Description: sets min/max of scale
|
||||
# Called by: armor_statues:admin via chat link
|
||||
# Entity @s: player
|
||||
# Parameters:
|
||||
# scale_min (float): min scale to cap armor stands
|
||||
# scale_max (float): man scale to cap armor stands
|
||||
#
|
||||
$data merge storage armor_statues:admin {\
|
||||
scale: {\
|
||||
scale_min: $(scale_min),\
|
||||
scale_max: $(scale_max)\
|
||||
}\
|
||||
}
|
||||
execute store result score #scale_min as_angle run data get storage armor_statues:admin scale.scale_min 1000
|
||||
execute store result score #scale_max as_angle run data get storage armor_statues:admin scale.scale_max 1000
|
||||
#
|
||||
# limits scale to physical game caps
|
||||
#
|
||||
execute if score #scale_min as_angle matches ..62 run scoreboard players set #scale_min as_angle 63
|
||||
execute if score #scale_min as_angle matches 1001.. run scoreboard players set #scale_min as_angle 1000
|
||||
execute if score #scale_max as_angle matches ..999 run scoreboard players set #scale_max as_angle 1000
|
||||
execute if score #scale_max as_angle matches 16001.. run scoreboard players set #scale_max as_angle 16000
|
||||
#
|
||||
# stores into storage
|
||||
#
|
||||
execute store result storage armor_statues:admin scale.scale_min float 0.001 run scoreboard players get #scale_min as_angle
|
||||
execute store result storage armor_statues:admin scale.scale_max float 0.001 run scoreboard players get #scale_max as_angle
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Scale set to - Min: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"storage":"armor_statues:admin",\
|
||||
"nbt":"scale.scale_min"\
|
||||
},\
|
||||
{\
|
||||
"text":" Max: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"storage":"armor_statues:admin",\
|
||||
"nbt":"scale.scale_max"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
function armor_statues:admin
|
8
1_20_5/data/armor_statues/functions/animate.mcfunction
Normal file
8
1_20_5/data/armor_statues/functions/animate.mcfunction
Normal file
@ -0,0 +1,8 @@
|
||||
#
|
||||
# Description: Animate armor stands based off of item frames
|
||||
# Called by: armor_statues:tick
|
||||
# Entity @s: #item frames
|
||||
#
|
||||
tag @s add as_powered
|
||||
data modify entity @e[type=minecraft:armor_stand,distance=..8,tag=!as_locked,sort=nearest,limit=1,nbt=!{Marker:1b},nbt=!{Invulnerable:1b}] {} merge from entity @s Item.components.minecraft:custom_data.SavedPose
|
||||
data modify entity @e[type=minecraft:armor_stand,distance=..8,tag=!as_locked,sort=nearest,limit=1,nbt=!{Marker:1b},nbt=!{Invulnerable:1b}] Pose set from entity @s Item.components.minecraft:custom_data.SavedPose.Pose
|
@ -0,0 +1,8 @@
|
||||
#
|
||||
# Description: Animate armor stands based off of item frames
|
||||
# Called by: armor_statues:tick
|
||||
# Entity @s: None
|
||||
#
|
||||
execute as @e[type=#armor_statues:item_frames,tag=as_animatable,tag=!as_powered] at @s if entity @p[distance=..35] if block ~ ~ ~ minecraft:redstone_wire unless block ~ ~ ~ minecraft:redstone_wire[power=0] run function armor_statues:animate
|
||||
execute as @e[type=#armor_statues:item_frames,tag=as_animatable,tag=as_powered] at @s if block ~ ~ ~ minecraft:redstone_wire[power=0] run tag @s remove as_powered
|
||||
scoreboard players set #animate_time as_angle 0
|
@ -0,0 +1,9 @@
|
||||
#
|
||||
# Description: Replace titled book with proper command book
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: Player
|
||||
#
|
||||
# Replaces the written book from the players inventory
|
||||
#
|
||||
execute store result score #as_success as_help run clear @s minecraft:written_book[minecraft:written_book_content~{title:"Statues"}] 1
|
||||
execute if score #as_success as_help matches 1.. run function armor_statues:give
|
29
1_20_5/data/armor_statues/functions/give.mcfunction
Normal file
29
1_20_5/data/armor_statues/functions/give.mcfunction
Normal file
@ -0,0 +1,29 @@
|
||||
#
|
||||
# Description: Issue control book
|
||||
# Called by: command block
|
||||
# Entity @s: player
|
||||
#
|
||||
# Trigger values in use are: 1-12 Style settings
|
||||
# 20-39 Pose presets
|
||||
# 40-51 Nudge position
|
||||
# 52-57 Adjust rotation
|
||||
# 60-95 Pose adjustment
|
||||
# 101-112 Nudge position
|
||||
# 113-118 Nudge position
|
||||
# 120-123 Angle step
|
||||
# 124-125 Face towards or away
|
||||
# 131-135 Pose mirror and flip
|
||||
# 141-142 Pose presets
|
||||
# 151-155 Auto alignment
|
||||
# 161-162 Exchange Slots
|
||||
# 999 Check target
|
||||
# 1000-1003 Lock and seal
|
||||
# 1004-1005 Copy and paste
|
||||
# 1100-1129 Nudge Position
|
||||
# 1130-1139 Nudge Position
|
||||
# 1200-1205 Scale
|
||||
#
|
||||
# Give control book
|
||||
#
|
||||
loot give @s loot armor_statues:book
|
||||
|
@ -0,0 +1,7 @@
|
||||
#
|
||||
# Description: gives player pointing wand
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
clear @s minecraft:warped_fungus_on_a_stick[minecraft:custom_name='"Statues"'] 1
|
||||
loot give @s loot armor_statues:adjustment_wand
|
@ -0,0 +1,7 @@
|
||||
#
|
||||
# Description: gives player pointing wand
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
clear @s minecraft:stick[minecraft:custom_name='"Statues"'] 1
|
||||
loot give @s loot armor_statues:pointer_wand
|
14
1_20_5/data/armor_statues/functions/help.mcfunction
Normal file
14
1_20_5/data/armor_statues/functions/help.mcfunction
Normal file
@ -0,0 +1,14 @@
|
||||
#
|
||||
# Description: Display help in chat
|
||||
# Called by: armor_statues:tick
|
||||
# Entity @s: player
|
||||
#
|
||||
execute if score @s as_help matches 2 if score #help_craftable as_angle matches 1 run function armor_statues:help/get_book
|
||||
execute if score @s as_help matches 3 run function armor_statues:help/chat_actionbar_toggle
|
||||
execute if score @s as_help matches 4 run function armor_statues:help/credits
|
||||
execute if score @s as_help matches 1..3 unless score @s as_help matches 2 run function armor_statues:help/main
|
||||
#
|
||||
# Reset trigger score
|
||||
#
|
||||
scoreboard players set @s as_help 0
|
||||
scoreboard players enable @s as_help
|
206
1_20_5/data/armor_statues/functions/help/main.mcfunction
Normal file
206
1_20_5/data/armor_statues/functions/help/main.mcfunction
Normal file
@ -0,0 +1,206 @@
|
||||
#
|
||||
# Description: Display main help options
|
||||
# Called by: armor_statues:help
|
||||
# Entity @s: Player
|
||||
#
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Customizable Armor Stands - Help",\
|
||||
"color":"yellow",\
|
||||
"bold":true\
|
||||
},\
|
||||
{\
|
||||
"text":"\nGet the book by:",\
|
||||
"color":"aqua",\
|
||||
"bold":false\
|
||||
}\
|
||||
]
|
||||
execute if score #help_craftable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":" - Clicking ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"here",\
|
||||
"color":"green",\
|
||||
"clickEvent":{\
|
||||
"action":"run_command",\
|
||||
"value":"/trigger as_help set 2"\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if score #as_shrine_x as_help matches ..0 run tellraw @s [\
|
||||
{\
|
||||
"text":" - Going to the shrine at ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"score":{\
|
||||
"name":"#as_shrine_x",\
|
||||
"objective":"as_help"\
|
||||
},\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":",",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"score":{\
|
||||
"name":"#as_shrine_z",\
|
||||
"objective":"as_help"\
|
||||
},\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
execute if score #as_shrine_x as_help matches 1.. run tellraw @s [\
|
||||
{\
|
||||
"text":" - Going to the shrine at ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"score":{\
|
||||
"name":"#as_shrine_x",\
|
||||
"objective":"as_help"\
|
||||
},\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":",",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"score":{\
|
||||
"name":"#as_shrine_z",\
|
||||
"objective":"as_help"\
|
||||
},\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
execute if score #book_uncraftable as_angle matches 0 run tellraw @s [\
|
||||
{\
|
||||
"text":" - Crafting a written book titled \"Statues\"",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":" - Crafting a book with an armor stand in a crafting table",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# Pointer wand
|
||||
#
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Get the Pointer Wand by:",\
|
||||
"color":"aqua",\
|
||||
"bold":false\
|
||||
}\
|
||||
]
|
||||
execute if score #pointer_triggerable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":" - Use /trigger pointer_wand with a warped fungus on a stick",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
execute if score #pointer_craftable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":" - Rename a stick \"Statues\"",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":" - Crafting a stick with an armor stand in a crafting table",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
#
|
||||
# Adjustment wand
|
||||
#
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Get the Adjustment Wand by:",\
|
||||
"color":"aqua",\
|
||||
"bold":false\
|
||||
}\
|
||||
]
|
||||
execute if score #adjustment_triggerable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":" - Use /trigger adjustment_wand with a warped fungus on a stick",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
execute if score #adjustment_craftable as_angle matches 1 run tellraw @s [\
|
||||
{\
|
||||
"text":" - Rename a warped fungus on a stick \"Statues\"",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":" - Crafting a warped fungus on a stick with an armor stand in a crafting table",\
|
||||
"color":"aqua"\
|
||||
}\
|
||||
]
|
||||
execute if entity @s[tag=as_chat] run tellraw @s [\
|
||||
{\
|
||||
"text":"Send notifications to: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Chat",\
|
||||
"color":"green",\
|
||||
"clickEvent":{\
|
||||
"action":"run_command",\
|
||||
"value":"/trigger as_help set 3"\
|
||||
},\
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle between Chat and Actionbar", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
execute if entity @s[tag=!as_chat] run tellraw @s [\
|
||||
{\
|
||||
"text":"Send notifications to: ",\
|
||||
"color":"aqua"\
|
||||
},\
|
||||
{\
|
||||
"text":"Actionbar",\
|
||||
"color":"green",\
|
||||
"clickEvent":{\
|
||||
"action":"run_command",\
|
||||
"value":"/trigger as_help set 3"\
|
||||
}, \
|
||||
"hoverEvent":{\
|
||||
"action":"show_text", \
|
||||
"contents":{\
|
||||
"text":"Click to toggle between Chat and Actionbar", \
|
||||
"color":"yellow"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"Credits",\
|
||||
"color":"green",\
|
||||
"clickEvent":{\
|
||||
"action":"run_command",\
|
||||
"value":"/trigger as_help set 4"\
|
||||
}\
|
||||
}\
|
||||
]
|
||||
tellraw @s [\
|
||||
{\
|
||||
"text":"--------------------------",\
|
||||
"color":"yellow",\
|
||||
"bold":true\
|
||||
}\
|
||||
]
|
42
1_20_5/data/armor_statues/functions/if_trigger.mcfunction
Normal file
42
1_20_5/data/armor_statues/functions/if_trigger.mcfunction
Normal file
@ -0,0 +1,42 @@
|
||||
#
|
||||
# Description: Apply changes to nearest item frame according to the player's if_invisible score
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
# Tag the player and an item frame 1 block in front of their eyes
|
||||
#
|
||||
tag @s add as_selected
|
||||
execute anchored eyes positioned ^ ^ ^1 as @e[type=#armor_statues:item_frames,distance=..1,tag=!as_locked,sort=nearest,limit=1,nbt=!{Invulnerable:1b},nbt={Item:{count:1}}] unless entity @s[tag=!if_fixed,nbt={Fixed:1b}] run tag @s add as_selected
|
||||
#
|
||||
# Copy the trigger score to the selected item frame
|
||||
#
|
||||
scoreboard players operation @e[type=#armor_statues:item_frames,tag=as_selected] if_invisible = @s if_invisible
|
||||
#
|
||||
# Makes item frame 1 block in front of you invisible if it has an item
|
||||
#
|
||||
execute if entity @s[scores={if_invisible=1}] as @e[type=#armor_statues:item_frames,tag=as_selected,nbt=!{Invisible:1b}] run function armor_statues:item_frames/invisible
|
||||
#
|
||||
# Item frame fixing
|
||||
#
|
||||
# Creative
|
||||
execute if entity @s[scores={if_invisible=2..3},gamemode=creative] as @e[type=#armor_statues:item_frames,tag=as_selected] run function armor_statues:item_frames/fixed
|
||||
# Enabled
|
||||
execute if score #fixing_enabled as_angle matches 1 if entity @s[scores={if_invisible=2..3},gamemode=survival] as @e[type=#armor_statues:item_frames,tag=as_selected] run function armor_statues:item_frames/fixed
|
||||
# Disabled
|
||||
execute if score #fixing_enabled as_angle matches 0 if entity @s[scores={if_invisible=2..3},gamemode=survival] as @p[tag=as_selected] run function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"Must be enabled from admin menu",\
|
||||
"color":"dark_red"\
|
||||
}'\
|
||||
}
|
||||
#
|
||||
# Reset item frame's trigger score and remove selected tag from player and item frame
|
||||
#
|
||||
scoreboard players reset @e[type=#armor_statues:item_frames,tag=as_selected] if_invisible
|
||||
tag @s remove as_selected
|
||||
tag @e[type=#armor_statues:item_frames,tag=as_selected] remove as_selected
|
||||
#
|
||||
# Reset player's trigger score and re-enable
|
||||
#
|
||||
scoreboard players set @s if_invisible 0
|
||||
scoreboard players enable @s if_invisible
|
@ -0,0 +1,52 @@
|
||||
#
|
||||
# Description: adjusting pose
|
||||
# Called by: advancement: armor_statues:interactions/interact
|
||||
# Entity @s: player
|
||||
#
|
||||
scoreboard players set #wand_type as_angle 0
|
||||
# gets current wand type
|
||||
execute store result score #wand_type as_angle run data get entity @s SelectedItem.components.minecraft:custom_data.type
|
||||
#
|
||||
# sets score according to marker
|
||||
#
|
||||
# X axis
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_head_interactable] run scoreboard players set @s as_trigger 60
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_body_interactable] run scoreboard players set @s as_trigger 66
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_arm_interactable] run scoreboard players set @s as_trigger 72
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_arm_interactable] run scoreboard players set @s as_trigger 78
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_leg_interactable] run scoreboard players set @s as_trigger 84
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_leg_interactable] run scoreboard players set @s as_trigger 90
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_base_interactable] run scoreboard players set @s as_trigger 1102
|
||||
# Y axis
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_head_interactable] run scoreboard players set @s as_trigger 62
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_body_interactable] run scoreboard players set @s as_trigger 68
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_arm_interactable] run scoreboard players set @s as_trigger 74
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_arm_interactable] run scoreboard players set @s as_trigger 80
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_leg_interactable] run scoreboard players set @s as_trigger 86
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_leg_interactable] run scoreboard players set @s as_trigger 92
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_base_interactable] run scoreboard players set @s as_trigger 106
|
||||
# Z axis
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_head_interactable] run scoreboard players set @s as_trigger 64
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_body_interactable] run scoreboard players set @s as_trigger 70
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_arm_interactable] run scoreboard players set @s as_trigger 76
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_arm_interactable] run scoreboard players set @s as_trigger 82
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_leg_interactable] run scoreboard players set @s as_trigger 88
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_leg_interactable] run scoreboard players set @s as_trigger 94
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_base_interactable] run scoreboard players set @s as_trigger 1108
|
||||
#
|
||||
scoreboard players operation @e[type=minecraft:armor_stand,tag=as_selected,limit=1,sort=nearest] as_trigger = @s as_trigger
|
||||
#
|
||||
# Adjust pose function
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=60..95}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/adjust
|
||||
# nudge function
|
||||
execute if entity @s[scores={as_trigger=101..112}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/position
|
||||
execute if entity @s[scores={as_trigger=101..112}] as @e[type=armor_stand,tag=as_selected,nbt={Small:0b}] at @s run function armor_statues:interactions/readjust_interactions
|
||||
execute if entity @s[scores={as_trigger=101..112}] as @e[type=armor_stand,tag=as_selected,nbt={Small:1b}] at @s run function armor_statues:interactions/readjust_interactions_small
|
||||
execute if entity @s[scores={as_trigger=1100..1129}] as @e[type=armor_stand,tag=as_selected] at @s run function armor_statues:trigger/position_relative
|
||||
execute if entity @s[scores={as_trigger=1100..1129}] as @e[type=armor_stand,tag=as_selected,nbt={Small:0b}] at @s run function armor_statues:interactions/readjust_interactions
|
||||
execute if entity @s[scores={as_trigger=100..1129}] as @e[type=armor_stand,tag=as_selected,nbt={Small:1b}] at @s run function armor_statues:interactions/readjust_interactions_small
|
||||
# turn off gravity if adjust Y
|
||||
execute if entity @s[scores={as_trigger=106..107}] as @e[type=armor_stand,tag=as_selected] run data merge entity @s {NoGravity:1b}
|
||||
# Plays sound
|
||||
execute if entity @s[scores={as_trigger=1..}] run playsound minecraft:item.spyglass.use neutral @a ~ ~ ~ 1 1.5
|
@ -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:generic.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
|
||||
|
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Description: Sets up display and interaction for interactions
|
||||
# Called by: armor_statues:interactions/setup
|
||||
# Entity @s: interaction|block display
|
||||
# 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
|
||||
#
|
||||
#$say type: $(type) block: $(block) x: $(x) y: $(y) translation: $(translation) scale: $(scale)
|
||||
tag @s add as_interactable
|
||||
$tag @s add as_$(type)_interactable
|
||||
execute store result score @s as_uuid1 run data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1,tag=as_interactable_temp] UUID[0]
|
||||
execute store result score @s as_uuid2 run data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1,tag=as_interactable_temp] UUID[1]
|
||||
execute store result score @s as_uuid3 run data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1,tag=as_interactable_temp] UUID[2]
|
||||
execute store result score @s as_uuid4 run data get entity @e[type=minecraft:armor_stand,sort=nearest,limit=1,tag=as_interactable_temp] UUID[3]
|
||||
$data merge entity @s {width: $(scale)f, height: $(scale)f, response:1b}
|
||||
# fixes rotation and position
|
||||
teleport @s ~ ~ ~ ~ ~
|
||||
$tp ^$(x) ^$(y) ^
|
||||
# nbt for block display
|
||||
$data merge entity @s[type=minecraft:block_display] {block_state: {Name: "$(block)"}, transformation: {translation: [$(translation)f, 0.0f, $(translation)f], scale: [$(scale)f, $(scale)f, $(scale)f]}}
|
@ -0,0 +1,52 @@
|
||||
#
|
||||
# Description: Adjust armor stand pose
|
||||
# Called by: advancement: armor_statues:use_interaction
|
||||
# Entity @s: player
|
||||
#
|
||||
# tag setup
|
||||
tag @s add as_selected
|
||||
tag @e[type=minecraft:interaction, distance=..6, nbt={interaction:{}}, tag=as_interactable] add as_selected_interaction
|
||||
# Stores uuid to select entities
|
||||
scoreboard players operation #uuid_selector as_uuid1 = @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] as_uuid1
|
||||
scoreboard players operation #uuid_selector as_uuid2 = @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] as_uuid2
|
||||
scoreboard players operation #uuid_selector as_uuid3 = @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] as_uuid3
|
||||
scoreboard players operation #uuid_selector as_uuid4 = @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] as_uuid4
|
||||
# Selects entities from their stored uuid
|
||||
function armor_statues:select_by_uuid
|
||||
tag @e[type=armor_stand, tag=as_uuid_selected, sort=nearest, limit=1] add as_selected
|
||||
tag @e[tag=as_uuid_selected] remove as_uuid_selected
|
||||
#
|
||||
# Checks if used last used on same entity
|
||||
#
|
||||
execute store result score #uuid_matcher1 as_uuid1 run data get entity @s SelectedItem.components.minecraft:custom_data.LastUsed[0]
|
||||
execute store result score #uuid_matcher1 as_uuid2 run data get entity @s SelectedItem.components.minecraft:custom_data.LastUsed[1]
|
||||
execute store result score #uuid_matcher1 as_uuid3 run data get entity @s SelectedItem.components.minecraft:custom_data.LastUsed[2]
|
||||
execute store result score #uuid_matcher1 as_uuid4 run data get entity @s SelectedItem.components.minecraft:custom_data.LastUsed[3]
|
||||
execute store result score #uuid_matcher2 as_uuid1 run data get entity @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] UUID[0]
|
||||
execute store result score #uuid_matcher2 as_uuid2 run data get entity @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] UUID[1]
|
||||
execute store result score #uuid_matcher2 as_uuid3 run data get entity @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] UUID[2]
|
||||
execute store result score #uuid_matcher2 as_uuid4 run data get entity @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] UUID[3]
|
||||
execute if score #uuid_matcher1 as_uuid1 = #uuid_matcher2 as_uuid1 if score #uuid_matcher1 as_uuid2 = #uuid_matcher2 as_uuid2 if score #uuid_matcher1 as_uuid3 = #uuid_matcher2 as_uuid3 if score #uuid_matcher1 as_uuid4 = #uuid_matcher2 as_uuid4 run tag @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] add as_last_used
|
||||
#
|
||||
# Stores last interaction to wand
|
||||
#
|
||||
execute as @e[type=minecraft:interaction, tag=as_selected_interaction, sort=nearest, limit=1] run item modify entity @p[tag=as_selected] weapon.mainhand armor_statues:wand
|
||||
#
|
||||
# pointing wand interaction
|
||||
#
|
||||
execute as @s[predicate=armor_statues:holding_pointer] run function armor_statues:interactions/interact_pointer
|
||||
#
|
||||
# adjustment wand interaction
|
||||
#
|
||||
execute as @s[predicate=armor_statues:holding_adjustment] run function armor_statues:interactions/interact_adjust
|
||||
# Resets interaction
|
||||
execute as @e[type=minecraft:interaction, tag=as_selected_interaction] run function armor_statues:interactions/reset_interaction
|
||||
#execute as @e[type=minecraft:interaction, distance=..6, nbt={attack:{}}] run function armor_statues:interactions/reset_interaction
|
||||
scoreboard players set @e[tag=as_selected] as_trigger 0
|
||||
scoreboard players enable @s as_trigger
|
||||
# resets tags
|
||||
tag @e[tag=as_selected] remove as_selected
|
||||
tag @e[type=minecraft:interaction, tag=as_last_used] remove as_last_used
|
||||
tag @e[type=minecraft:interaction, tag=as_selected_interaction] remove as_selected_interaction
|
||||
# Resets advancement
|
||||
advancement revoke @s only armor_statues:use_interaction
|
@ -0,0 +1,52 @@
|
||||
#
|
||||
# Description: adjusting pose
|
||||
# Called by: advancement: armor_statues:interactions/interact
|
||||
# Entity @s: player
|
||||
#
|
||||
scoreboard players set #wand_type as_angle 0
|
||||
# gets current wand type
|
||||
execute store result score #wand_type as_angle run data get entity @s SelectedItem.components.minecraft:custom_data.type
|
||||
#
|
||||
# sets score according to marker
|
||||
#
|
||||
# X axis
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_head_interactable] run scoreboard players set @s as_trigger 61
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_body_interactable] run scoreboard players set @s as_trigger 67
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_arm_interactable] run scoreboard players set @s as_trigger 73
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_arm_interactable] run scoreboard players set @s as_trigger 79
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_leg_interactable] run scoreboard players set @s as_trigger 85
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_leg_interactable] run scoreboard players set @s as_trigger 91
|
||||
execute if score #wand_type as_angle matches 0 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_base_interactable] run scoreboard players set @s as_trigger 1103
|
||||
# Y axis
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_head_interactable] run scoreboard players set @s as_trigger 63
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_body_interactable] run scoreboard players set @s as_trigger 69
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_arm_interactable] run scoreboard players set @s as_trigger 75
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_arm_interactable] run scoreboard players set @s as_trigger 81
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_leg_interactable] run scoreboard players set @s as_trigger 87
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_leg_interactable] run scoreboard players set @s as_trigger 93
|
||||
execute if score #wand_type as_angle matches 1 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_base_interactable] run scoreboard players set @s as_trigger 107
|
||||
# Z axis
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_head_interactable] run scoreboard players set @s as_trigger 65
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_body_interactable] run scoreboard players set @s as_trigger 71
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_arm_interactable] run scoreboard players set @s as_trigger 77
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_arm_interactable] run scoreboard players set @s as_trigger 83
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_right_leg_interactable] run scoreboard players set @s as_trigger 89
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_left_leg_interactable] run scoreboard players set @s as_trigger 95
|
||||
execute if score #wand_type as_angle matches 2 if entity @e[type=minecraft:interaction,tag=as_selected_interaction,tag=as_interactable,tag=as_base_interactable] run scoreboard players set @s as_trigger 1109
|
||||
#
|
||||
scoreboard players operation @e[type=minecraft:armor_stand,tag=as_selected,limit=1,sort=nearest] as_trigger = @s as_trigger
|
||||
#
|
||||
# Adjust pose function
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=60..95}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/adjust
|
||||
# nudge function
|
||||
execute if entity @s[scores={as_trigger=101..112}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/position
|
||||
execute if entity @s[scores={as_trigger=101..112}] as @e[type=armor_stand,tag=as_selected,nbt={Small:0b}] at @s run function armor_statues:interactions/readjust_interactions
|
||||
execute if entity @s[scores={as_trigger=101..112}] as @e[type=armor_stand,tag=as_selected,nbt={Small:1b}] at @s run function armor_statues:interactions/readjust_interactions_small
|
||||
execute if entity @s[scores={as_trigger=1100..1129}] as @e[type=armor_stand,tag=as_selected] at @s run function armor_statues:trigger/position_relative
|
||||
execute if entity @s[scores={as_trigger=1100..1129}] as @e[type=armor_stand,tag=as_selected,nbt={Small:0b}] at @s run function armor_statues:interactions/readjust_interactions
|
||||
execute if entity @s[scores={as_trigger=100..1129}] as @e[type=armor_stand,tag=as_selected,nbt={Small:1b}] at @s run function armor_statues:interactions/readjust_interactions_small
|
||||
# turn off gravity if adjust Y
|
||||
execute if entity @s[scores={as_trigger=106..107}] as @e[type=armor_stand,tag=as_selected] run data merge entity @s {NoGravity:1b}
|
||||
# Plays sound
|
||||
execute if entity @s[scores={as_trigger=1..}] run playsound minecraft:item.spyglass.use neutral @a ~ ~ ~ 1 1.5
|
@ -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:generic.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]
|
@ -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:generic.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
|
@ -0,0 +1,161 @@
|
||||
#
|
||||
# Description: Sets up armor stand for interactions
|
||||
# Called by: armor_statues:3_second
|
||||
# Entity @s: armor_stand
|
||||
#
|
||||
tag @s add as_interactable
|
||||
tag @s add as_interactable_temp
|
||||
data merge entity @s {Marker:1b}
|
||||
execute store result score @s as_uuid1 run data get entity @s UUID[0]
|
||||
execute store result score @s as_uuid2 run data get entity @s UUID[1]
|
||||
execute store result score @s as_uuid3 run data get entity @s UUID[2]
|
||||
execute store result score @s as_uuid4 run data get entity @s UUID[3]
|
||||
# Head
|
||||
#execute rotated ~ 0 positioned ^ ^1.52 ^ summon minecraft:interaction run function armor_statues:interactions/head_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "head",\
|
||||
block: "minecraft:blue_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 1.52f,\
|
||||
translation: -0.19f,\
|
||||
scale: 0.38f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^ ^1.52 ^ summon minecraft:block_display run function armor_statues:interactions/head_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "head",\
|
||||
block: "minecraft:blue_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 1.52f,\
|
||||
translation: -0.19f,\
|
||||
scale: 0.38f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Body
|
||||
#execute rotated ~ 0 positioned ^ ^1.25 ^ summon minecraft:interaction run function armor_statues:interactions/body_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "body",\
|
||||
block: "minecraft:white_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 1.25f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^ ^1.25 ^ summon minecraft:block_display run function armor_statues:interactions/body_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "body",\
|
||||
block: "minecraft:white_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 1.25f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Right Arm
|
||||
#execute rotated ~ 0 positioned ^-0.34375 ^1.28125 ^ summon minecraft:interaction run function armor_statues:interactions/right_arm_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_arm",\
|
||||
block: "minecraft:red_stained_glass",\
|
||||
x: -0.34375f,\
|
||||
y: 1.28125f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^-0.34375 ^1.28125 ^ summon minecraft:block_display run function armor_statues:interactions/right_arm_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_arm",\
|
||||
block: "minecraft:red_stained_glass",\
|
||||
x: -0.34375f,\
|
||||
y: 1.28125f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Left Arm
|
||||
#execute rotated ~ 0 positioned ^0.34375 ^1.28125 ^ summon minecraft:interaction run function armor_statues:interactions/left_arm_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_arm",\
|
||||
block: "minecraft:lime_stained_glass",\
|
||||
x: 0.34375f,\
|
||||
y: 1.28125f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^0.34375 ^1.28125 ^ summon minecraft:block_display run function armor_statues:interactions/left_arm_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_arm",\
|
||||
block: "minecraft:lime_stained_glass",\
|
||||
x: 0.34375f,\
|
||||
y: 1.28125f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Right Leg
|
||||
#execute rotated ~ 0 positioned ^-0.125 ^0.65625 ^ summon minecraft:interaction run function armor_statues:interactions/right_leg_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_leg",\
|
||||
block: "minecraft:light_blue_stained_glass",\
|
||||
x: -0.125f,\
|
||||
y: 0.65625f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^-0.125 ^0.65625 ^ summon minecraft:block_display run function armor_statues:interactions/right_leg_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_leg",\
|
||||
block: "minecraft:light_blue_stained_glass",\
|
||||
x: -0.125f,\
|
||||
y: 0.65625f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Left Leg
|
||||
#execute rotated ~ 0 positioned ^0.125 ^0.65625 ^ summon minecraft:interaction run function armor_statues:interactions/left_leg_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_leg",\
|
||||
block: "minecraft:yellow_stained_glass",\
|
||||
x: 0.125f,\
|
||||
y: 0.65625f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^0.125 ^0.65625 ^ summon minecraft:block_display run function armor_statues:interactions/left_leg_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_leg",\
|
||||
block: "minecraft:yellow_stained_glass",\
|
||||
x: 0.125f,\
|
||||
y: 0.65625f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Base
|
||||
#execute rotated ~ 0 positioned ^ ^ ^ summon minecraft:interaction run function armor_statues:interactions/base_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "base",\
|
||||
block: "minecraft:black_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^ ^ ^ summon minecraft:block_display run function armor_statues:interactions/base_setup
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "base",\
|
||||
block: "minecraft:black_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0f,\
|
||||
translation: -0.125f,\
|
||||
scale: 0.25f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# resets temp tag
|
||||
tag @s remove as_interactable_temp
|
@ -0,0 +1,161 @@
|
||||
#
|
||||
# Description: Sets up armor stand for interactions
|
||||
# Called by: armor_statues:3_second
|
||||
# Entity @s: armor_stand
|
||||
#
|
||||
tag @s add as_interactable
|
||||
tag @s add as_interactable_temp
|
||||
data merge entity @s {Marker:1b}
|
||||
execute store result score @s as_uuid1 run data get entity @s UUID[0]
|
||||
execute store result score @s as_uuid2 run data get entity @s UUID[1]
|
||||
execute store result score @s as_uuid3 run data get entity @s UUID[2]
|
||||
execute store result score @s as_uuid4 run data get entity @s UUID[3]
|
||||
# Head
|
||||
#execute rotated ~ 0 positioned ^ ^0.76 ^ summon minecraft:interaction run function armor_statues:interactions/head_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "head",\
|
||||
block: "minecraft:blue_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0.76f,\
|
||||
translation: -0.095f,\
|
||||
scale: 0.19f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^ ^0.76 ^ summon minecraft:block_display run function armor_statues:interactions/head_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "head",\
|
||||
block: "minecraft:blue_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0.76f,\
|
||||
translation: -0.095f,\
|
||||
scale: 0.19f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Body
|
||||
#execute rotated ~ 0 positioned ^ ^0.625 ^ summon minecraft:interaction run function armor_statues:interactions/body_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "body",\
|
||||
block: "minecraft:white_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0.625f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^ ^0.625 ^ summon minecraft:block_display run function armor_statues:interactions/body_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "body",\
|
||||
block: "minecraft:white_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0.625f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Right Arm
|
||||
#execute rotated ~ 0 positioned ^-0.171875 ^0.640625 ^ summon minecraft:interaction run function armor_statues:interactions/right_arm_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_arm",\
|
||||
block: "minecraft:red_stained_glass",\
|
||||
x: -0.171875f,\
|
||||
y: 0.640625f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^-0.171875 ^0.640625 ^ summon minecraft:block_display run function armor_statues:interactions/right_arm_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_arm",\
|
||||
block: "minecraft:red_stained_glass",\
|
||||
x: -0.171875f,\
|
||||
y: 0.640625f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Left Arm
|
||||
#execute rotated ~ 0 positioned ^0.171875 ^0.640625 ^ summon minecraft:interaction run function armor_statues:interactions/left_arm_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_arm",\
|
||||
block: "minecraft:lime_stained_glass",\
|
||||
x: 0.171875f,\
|
||||
y: 0.640625f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^0.171875 ^0.640625 ^ summon minecraft:block_display run function armor_statues:interactions/left_arm_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_arm",\
|
||||
block: "minecraft:lime_stained_glass",\
|
||||
x: 0.171875f,\
|
||||
y: 0.640625f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Right Leg
|
||||
#execute rotated ~ 0 positioned ^-0.0625 ^0.328125 ^ summon minecraft:interaction run function armor_statues:interactions/right_leg_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_leg",\
|
||||
block: "minecraft:light_blue_stained_glass",\
|
||||
x: -0.0625f,\
|
||||
y: 0.328125f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^-0.0625 ^0.328125 ^ summon minecraft:block_display run function armor_statues:interactions/right_leg_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "right_leg",\
|
||||
block: "minecraft:light_blue_stained_glass",\
|
||||
x: -0.0625f,\
|
||||
y: 0.328125f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Left Leg
|
||||
#execute rotated ~ 0 positioned ^0.0625 ^0.328125 ^ summon minecraft:interaction run function armor_statues:interactions/left_leg_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_leg",\
|
||||
block: "minecraft:yellow_stained_glass",\
|
||||
x: 0.0625f,\
|
||||
y: 0.328125f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^0.0625 ^0.328125 ^ summon minecraft:block_display run function armor_statues:interactions/left_leg_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "left_leg",\
|
||||
block: "minecraft:yellow_stained_glass",\
|
||||
x: 0.0625f,\
|
||||
y: 0.328125f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# Base
|
||||
#execute rotated ~ 0 positioned ^ ^ ^ summon minecraft:interaction run function armor_statues:interactions/base_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "base",\
|
||||
block: "minecraft:black_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:interaction"\
|
||||
}
|
||||
#execute rotated ~ 0 positioned ^ ^ ^ summon minecraft:block_display run function armor_statues:interactions/base_setup_small
|
||||
function armor_statues:interactions/display_setup {\
|
||||
type: "base",\
|
||||
block: "minecraft:black_stained_glass",\
|
||||
x: 0f,\
|
||||
y: 0f,\
|
||||
translation: -0.0625f,\
|
||||
scale: 0.125f,\
|
||||
entity: "minecraft:block_display"\
|
||||
}
|
||||
# resets temp tag
|
||||
tag @s remove as_interactable_temp
|
@ -0,0 +1,9 @@
|
||||
#
|
||||
# Description: teleports according to inputs
|
||||
# Called by: armor_statues:interactions/readjust_interactions|armor_statues:interactions/readjust_interactions_small
|
||||
# Entity @s: interaction|block display
|
||||
# Parameters:
|
||||
# x (float): x coord
|
||||
# y (float): y coord
|
||||
#
|
||||
$tp ^$(x) ^$(y) ^
|
3276
1_20_5/data/armor_statues/functions/load.mcfunction
Normal file
3276
1_20_5/data/armor_statues/functions/load.mcfunction
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,22 @@
|
||||
#
|
||||
# Description: multiplies 2 floating point numbers
|
||||
# Called by: armor_statues:set
|
||||
# Entity @s: block display
|
||||
# Parameters:
|
||||
# var1 (float): var1
|
||||
# var2 (float): var2
|
||||
# out (str): data source to output to
|
||||
#
|
||||
$data modify storage armor_statues:temp matrix set value \
|
||||
[ 0f, 0f, 0f, $(var1)f,\
|
||||
0f, 1f, 0f, 0f,\
|
||||
0f, 0f, 1f, 0f,\
|
||||
0f, 0f, 0f, 1f ]
|
||||
$data modify entity @s transformation set value \
|
||||
[ 0f, 0f, 0f, 1f,\
|
||||
0f, 1f, 0f, 0f,\
|
||||
0f, 0f, 1f, 0f,\
|
||||
0f, 0f, 0f, $(var2)f ]
|
||||
data modify storage armor_statues:temp matrix[-1] set from entity @s transformation.translation[0]
|
||||
data modify entity @s transformation set from storage armor_statues:temp matrix
|
||||
$data modify $(out) set from entity @s transformation.translation[0]
|
@ -0,0 +1,27 @@
|
||||
#
|
||||
# Description: trigger for crafting pointer wand
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
# Checks if wands are disabled
|
||||
#
|
||||
execute if score #wands_disabled as_angle matches 1 run function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"Wands must be enabled",\
|
||||
"color":"dark_red"\
|
||||
}'\
|
||||
}
|
||||
execute if score #wands_disabled as_angle matches 1 run scoreboard players set @s pointer_wand 0
|
||||
execute if score #wands_disabled as_angle matches 1 run return fail
|
||||
# Checks if player already has a wand
|
||||
execute if items entity @s container.* minecraft:stick[minecraft:custom_data~{wand:1b}] run title @s actionbar [{"text":"You already have a Pointer Wand!","color": "red"}]
|
||||
execute if items entity @s container.* minecraft:stick[minecraft:custom_data~{wand:1b}] run scoreboard players set @s pointer_wand 0
|
||||
# Checks if player has an item for wand
|
||||
execute unless items entity @s[scores={pointer_wand=1..}] container.* minecraft:stick run title @s actionbar [{"text":"Must have a ","color":"red"},{"translate":"item.minecraft.stick","color":"yellow"},{"color":"red","text":" in Inventory"}]
|
||||
execute unless items entity @s[scores={pointer_wand=1..}] container.* minecraft:stick run scoreboard players set @s pointer_wand 0
|
||||
#
|
||||
clear @s[scores={pointer_wand=1..}] minecraft:stick 1
|
||||
loot give @s[scores={pointer_wand=1..}] loot armor_statues:pointer_wand
|
||||
# reset trigger
|
||||
scoreboard players set @s pointer_wand 0
|
||||
scoreboard players enable @s pointer_wand
|
@ -0,0 +1,23 @@
|
||||
#
|
||||
# Description: Nudge postion of armor stand relative to player and aligned to the world grid
|
||||
# Called by: armor_statues:trigger/position_relative
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
# X/Left/Right
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100}] run tp @s ^-0.5 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1101}] run tp @s ^-0.1875 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1102}] run tp @s ^-0.0625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130}] run tp @s ^-0.00625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1131}] run tp @s ^0.00625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1103}] run tp @s ^0.0625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1104}] run tp @s ^0.1875 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1105}] run tp @s ^0.5 ^ ^
|
||||
# Z/Forward/backward
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1106}] run tp @s ^ ^ ^-0.5
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1107}] run tp @s ^ ^ ^-0.1875
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1108}] run tp @s ^ ^ ^-0.0625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1132}] run tp @s ^ ^ ^-0.00625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1133}] run tp @s ^ ^ ^0.00625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1109}] run tp @s ^ ^ ^0.0625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1110}] run tp @s ^ ^ ^0.1875
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1111}] run tp @s ^ ^ ^0.5
|
@ -0,0 +1,32 @@
|
||||
#
|
||||
# Description: Nudge postion of armor stand relative to player
|
||||
# Called by: armor_statues:trigger/position_relative
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
# X/Left/Right
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1112}] run tp @s ^-0.5 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1113}] run tp @s ^-0.1875 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1114}] run tp @s ^-0.0625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1134}] run tp @s ^-0.00625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1135}] run tp @s ^0.00625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1115}] run tp @s ^0.0625 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1116}] run tp @s ^0.1875 ^ ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1117}] run tp @s ^0.5 ^ ^
|
||||
# Y/Up/Down
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1118}] run tp @s ^ ^-0.5 ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1119}] run tp @s ^ ^-0.1875 ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1120}] run tp @s ^ ^-0.0625 ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1136}] run tp @s ^ ^-0.00625 ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1137}] run tp @s ^ ^0.00625 ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1121}] run tp @s ^ ^0.0625 ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1122}] run tp @s ^ ^0.1875 ^
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1123}] run tp @s ^ ^0.5 ^
|
||||
# Z/Forward/backward
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1124}] run tp @s ^ ^ ^-0.5
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1125}] run tp @s ^ ^ ^-0.1875
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1126}] run tp @s ^ ^ ^-0.0625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1138}] run tp @s ^ ^ ^-0.00625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1139}] run tp @s ^ ^ ^0.00625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1127}] run tp @s ^ ^ ^0.0625
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1128}] run tp @s ^ ^ ^0.1875
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1129}] run tp @s ^ ^ ^0.5
|
@ -0,0 +1,9 @@
|
||||
#
|
||||
# Description: Unlocks tool rack if tripwire hook isn't present
|
||||
# Called by: armor_statues:3_second
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
# unlocks
|
||||
#
|
||||
function armor_statues:locking/unlock
|
||||
function armor_statues:set_visible
|
21
1_20_5/data/armor_statues/functions/repeat/redo.mcfunction
Normal file
21
1_20_5/data/armor_statues/functions/repeat/redo.mcfunction
Normal file
@ -0,0 +1,21 @@
|
||||
#
|
||||
# Description: Undo last armor stand action
|
||||
# Called by: as_statue:repeat/undo_redo
|
||||
# Entity @s: player
|
||||
#
|
||||
# Copies current state to undo states
|
||||
#
|
||||
function armor_statues:repeat/save_undo_state
|
||||
#
|
||||
# Copies last redo state to armor stand
|
||||
#
|
||||
data modify entity @e[type=minecraft:armor_stand,sort=nearest,limit=1] {} merge from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0]
|
||||
data modify entity @e[type=minecraft:armor_stand,sort=nearest,limit=1] Pose set from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0].Pose
|
||||
#
|
||||
# Deletes redo state
|
||||
#
|
||||
data remove storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[0]
|
||||
#
|
||||
# Modifies book data
|
||||
#
|
||||
execute as @s run function armor_statues:storage_out
|
14
1_20_5/data/armor_statues/functions/repeat/save.mcfunction
Normal file
14
1_20_5/data/armor_statues/functions/repeat/save.mcfunction
Normal file
@ -0,0 +1,14 @@
|
||||
#
|
||||
# Description: Copies last function to book
|
||||
# Called by: as_statue:trigger
|
||||
# Entity @s: player
|
||||
#
|
||||
execute as @s run function armor_statues:storage_in
|
||||
#
|
||||
execute store result storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.Repeat int 1 run scoreboard players get @p[tag=as_selected] as_trigger
|
||||
#
|
||||
# Undo states
|
||||
#
|
||||
execute unless score @s as_trigger matches 1000..1004 unless score @s as_trigger matches 161..162 unless score @s as_trigger matches 120..123 unless score @s as_trigger matches 155 if entity @e[type=armor_stand,tag=as_selected] if score #undo_states as_angle matches 1.. run function armor_statues:repeat/save_state
|
||||
#
|
||||
execute as @s run function armor_statues:storage_out
|
@ -0,0 +1,19 @@
|
||||
#
|
||||
# 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
|
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Description: Copies last state for undoing
|
||||
# Called by: as_statue:repeat/save
|
||||
# Entity @s: player
|
||||
#
|
||||
# Checks if UUID of armor stand matches that of the book
|
||||
#
|
||||
#scoreboard players set #as_success as_angle 0
|
||||
#execute store success score #as_success as_angle run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.StatesUUID set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] UUID
|
||||
#execute if score #as_success as_angle matches 1 run data remove storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates
|
||||
#data remove storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates
|
||||
|
||||
# checks if uuid matches armor stand
|
||||
scoreboard players set #as_success as_angle 0
|
||||
data remove storage armor_statues:uuid_check UUID
|
||||
data modify storage armor_statues:uuid_check UUID set from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.StatesUUID
|
||||
execute store result score #as_success as_angle \
|
||||
as @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] run \
|
||||
function armor_statues:uuid_check with storage armor_statues:uuid_check {}
|
||||
#
|
||||
execute if score #as_success as_angle matches 0 run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates set value []
|
||||
execute if score #as_success as_angle matches 0 run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.StatesUUID set from entity @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] UUID
|
||||
data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates set value []
|
||||
#
|
||||
# Counts undo states and makes sure they're less than the maximum undo states
|
||||
#
|
||||
execute store result score #as_temp as_angle run data get storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates
|
||||
execute if score #as_temp as_angle >= #undo_states as_angle run data remove storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[-1]
|
||||
#
|
||||
function armor_statues:repeat/save_undo_state
|
@ -0,0 +1,19 @@
|
||||
#
|
||||
# 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
|
21
1_20_5/data/armor_statues/functions/repeat/undo.mcfunction
Normal file
21
1_20_5/data/armor_statues/functions/repeat/undo.mcfunction
Normal file
@ -0,0 +1,21 @@
|
||||
#
|
||||
# Description: Undo last armor stand action
|
||||
# Called by: as_statue:repeat/undo_redo
|
||||
# Entity @s: player
|
||||
#
|
||||
# Copies current state to redo states
|
||||
#
|
||||
function armor_statues:repeat/save_redo_state
|
||||
#
|
||||
# Copies last undo state to armor stand
|
||||
#
|
||||
data modify entity @e[type=minecraft:armor_stand,sort=nearest,limit=1,tag=as_selected] {} merge from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0]
|
||||
data modify entity @e[type=minecraft:armor_stand,sort=nearest,limit=1,tag=as_selected] Pose set from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0].Pose
|
||||
#
|
||||
# Deletes undo state state
|
||||
#
|
||||
data remove storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[0]
|
||||
#
|
||||
# Modifies book data
|
||||
#
|
||||
execute as @s run function armor_statues:storage_out
|
@ -0,0 +1,52 @@
|
||||
#
|
||||
# Description: Checks if armor stand is undoable/redoable
|
||||
# Called by: as_statue:trigger
|
||||
# Entity @s: player
|
||||
#
|
||||
execute as @s run function armor_statues:storage_in
|
||||
#
|
||||
# Checks if UUID of armor stand matches that of the book
|
||||
#
|
||||
# checks if uuid matches armor stand
|
||||
scoreboard players set #as_success as_angle 0
|
||||
data remove storage armor_statues:uuid_check UUID
|
||||
data modify storage armor_statues:uuid_check UUID set from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.StatesUUID
|
||||
execute store result score #as_success as_angle \
|
||||
as @e[type=armor_stand,sort=nearest,limit=1,tag=as_selected] run \
|
||||
function armor_statues:uuid_check with storage armor_statues:uuid_check {}
|
||||
#
|
||||
execute if score #as_success as_angle matches 0 as @s[tag=as_selected] run function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"Can\'t undo/redo state on current Armor Stand",\
|
||||
"color":"dark_red"\
|
||||
}'\
|
||||
}
|
||||
execute if score #as_success as_angle matches 0 run return 0
|
||||
#
|
||||
# Undo
|
||||
#
|
||||
execute as @s[scores={as_trigger=1200}] \
|
||||
unless data storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[] run \
|
||||
function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"No states to undo",\
|
||||
"color":"dark_red"\
|
||||
}'\
|
||||
}
|
||||
execute as @s[scores={as_trigger=1200}] \
|
||||
if data storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.UndoStates[] run \
|
||||
function armor_statues:repeat/undo
|
||||
#
|
||||
# Redo
|
||||
#
|
||||
execute as @s[scores={as_trigger=1201}] \
|
||||
unless data storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[] run \
|
||||
function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"No states to redo",\
|
||||
"color":"dark_red"\
|
||||
}'\
|
||||
}
|
||||
execute as @s[scores={as_trigger=1201}] \
|
||||
if data storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.RedoStates[] run \
|
||||
function armor_statues:repeat/redo
|
@ -0,0 +1,15 @@
|
||||
#
|
||||
# Description: Applys the last repeated trigger score to players score
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
execute as @s run function armor_statues:storage_in
|
||||
#
|
||||
# Copies score from book to as_trigger
|
||||
#
|
||||
execute store result score @s as_trigger run data get storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.Repeat
|
||||
#
|
||||
# Reset player's trigger score and re-enable
|
||||
#
|
||||
scoreboard players set @s as_repeat 0
|
||||
scoreboard players enable @s as_repeat
|
@ -0,0 +1 @@
|
||||
# null
|
63
1_20_5/data/armor_statues/functions/second.mcfunction
Normal file
63
1_20_5/data/armor_statues/functions/second.mcfunction
Normal file
@ -0,0 +1,63 @@
|
||||
#
|
||||
# Description: Check for players with trigger score set
|
||||
# Called by: #minecraft:tick
|
||||
# Entity @s: none
|
||||
#
|
||||
schedule function armor_statues:second 1s
|
||||
#
|
||||
# Repeat trigger
|
||||
#
|
||||
execute as @a[scores={as_repeat=1..}] at @s run function armor_statues:repeat_trigger
|
||||
#
|
||||
# Help trigger
|
||||
#
|
||||
execute as @a[scores={as_help=1..}] at @s run function armor_statues:help
|
||||
#
|
||||
# Armor stand trigger
|
||||
#
|
||||
execute as @a[scores={as_trigger=1..}] at @s run function armor_statues:trigger
|
||||
#
|
||||
# Item Frame trigger
|
||||
#
|
||||
execute as @a[scores={if_invisible=1..}] at @s run function armor_statues:if_trigger
|
||||
#
|
||||
# wand triggers
|
||||
#
|
||||
execute as @a[scores={pointer_wand=1..}] at @s run function armor_statues:pointer_wand_trigger
|
||||
execute as @a[scores={adjustment_wand=1..}] at @s run function armor_statues:adjustment_wand_trigger
|
||||
#
|
||||
# Makes empty invisible item frames visible
|
||||
#
|
||||
execute as @e[type=#armor_statues:item_frames,tag=if_invisible,nbt=!{Item:{count:1}}] run function armor_statues:item_frames/visible
|
||||
#
|
||||
# Check for players at the particle shrine
|
||||
#
|
||||
execute as @e[tag=as_shrine] at @s run function armor_statues:shrine/main
|
||||
#
|
||||
# crafts book if book crafting from title is enabled
|
||||
#
|
||||
execute if score #book_uncraftable as_angle matches 0 as @a if items entity @s container.* minecraft:written_book[minecraft:written_book_content~{title:"Statues"}] run function armor_statues:craft_book
|
||||
#
|
||||
# resets interaction advancements
|
||||
#
|
||||
execute as @a[advancements={armor_statues:attack_interaction=true}] run advancement revoke @s only armor_statues:attack_interaction
|
||||
execute as @a[advancements={armor_statues:use_interaction=true}] run advancement revoke @s only armor_statues:use_interaction
|
||||
#
|
||||
# resets wand interaction
|
||||
#
|
||||
execute as @a[scores={as_wand_used=1..},predicate=armor_statues:holding_adjustment, predicate=armor_statues:is_sneaking] at @s run function armor_statues:adjustment_wand
|
||||
execute as @a[scores={as_wand_used=1..}] run scoreboard players reset @s as_wand_used
|
||||
#
|
||||
# give wands
|
||||
#
|
||||
execute if score #pointer_craftable as_angle matches 1 as @a if items entity @s container.* minecraft:stick[minecraft:custom_name='"Statues"'] run function armor_statues:give_pointer_wand
|
||||
execute if score #adjustment_craftable as_angle matches 1 as @a if items entity @s container.* minecraft:warped_fungus_on_a_stick[minecraft:custom_name='"Statues"'] run function armor_statues:give_adjustment_wand
|
||||
#
|
||||
# re-enables all triggers
|
||||
#
|
||||
scoreboard players enable @a as_trigger
|
||||
scoreboard players enable @a as_help
|
||||
scoreboard players enable @a if_invisible
|
||||
scoreboard players enable @a as_repeat
|
||||
scoreboard players enable @a pointer_wand
|
||||
scoreboard players enable @a adjustment_wand
|
8
1_20_5/data/armor_statues/functions/set_scale.mcfunction
Normal file
8
1_20_5/data/armor_statues/functions/set_scale.mcfunction
Normal file
@ -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:generic.scale base set $(Scale)
|
@ -0,0 +1,8 @@
|
||||
#
|
||||
# Description: Display shrine particles and give book
|
||||
# Called by: armor_statues:tick
|
||||
# Entity @s: Shrine marker area effect cloud
|
||||
#
|
||||
# Give book to nearby players if they do not have it already
|
||||
#
|
||||
execute as @a[distance=..1.5,nbt=!{Inventory:[{id:"minecraft:written_book",components:{"minecraft:custom_data":{datapack:"ArmorStatuesV2"}}}]}] at @s run function armor_statues:give
|
48
1_20_5/data/armor_statues/functions/storage_in.mcfunction
Normal file
48
1_20_5/data/armor_statues/functions/storage_in.mcfunction
Normal file
@ -0,0 +1,48 @@
|
||||
#
|
||||
# Description: Copies player book from mainhand or offhand into storage
|
||||
# Called by: as_statue:trigger\copy as_statue:trigger\paste
|
||||
# Entity @s: player
|
||||
#
|
||||
# Temp storage to copy
|
||||
#
|
||||
execute if entity @s[\
|
||||
nbt={\
|
||||
SelectedItem:{\
|
||||
id:"minecraft:written_book", \
|
||||
components:{\
|
||||
"minecraft:custom_data":{\
|
||||
datapack:"ArmorStatuesV2"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
] \
|
||||
run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data set from entity @s SelectedItem.components.minecraft:custom_data
|
||||
execute if entity @s[\
|
||||
nbt={\
|
||||
Inventory:[\
|
||||
{\
|
||||
id:"minecraft:written_book", \
|
||||
Slot:-106b, \
|
||||
components:{\
|
||||
"minecraft:custom_data": {\
|
||||
datapack:"ArmorStatuesV2" \
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]\
|
||||
}\
|
||||
] \
|
||||
unless entity @s[\
|
||||
nbt={\
|
||||
SelectedItem:{\
|
||||
id:"minecraft:written_book", \
|
||||
components:{\
|
||||
"minecraft:custom_data":{\
|
||||
datapack:"ArmorStatuesV2"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
} \
|
||||
] \
|
||||
run data modify storage armor_statues:book_storage SavedItem.components.minecraft:custom_data set from entity @s Inventory[{Slot:-106b}].components.minecraft:custom_data
|
48
1_20_5/data/armor_statues/functions/storage_out.mcfunction
Normal file
48
1_20_5/data/armor_statues/functions/storage_out.mcfunction
Normal file
@ -0,0 +1,48 @@
|
||||
#
|
||||
# Description: Copies stored book from storage into mainhand or offhand
|
||||
# Called by: as_statue:trigger\copy
|
||||
# Entity @s: player
|
||||
#
|
||||
# Copies data from storage to the players book
|
||||
#
|
||||
execute if entity @s[\
|
||||
nbt={\
|
||||
SelectedItem:{\
|
||||
id:"minecraft:written_book", \
|
||||
components:{\
|
||||
"minecraft:custom_data":{\
|
||||
datapack:"ArmorStatuesV2"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
] \
|
||||
run item modify entity @s weapon.mainhand armor_statues:storage_out
|
||||
execute if entity @s[\
|
||||
nbt={\
|
||||
Inventory:[\
|
||||
{\
|
||||
id:"minecraft:written_book", \
|
||||
Slot:-106b, \
|
||||
components:{\
|
||||
"minecraft:custom_data": {\
|
||||
datapack:"ArmorStatuesV2" \
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
]\
|
||||
}\
|
||||
] \
|
||||
unless entity @s[\
|
||||
nbt={\
|
||||
SelectedItem:{\
|
||||
id:"minecraft:written_book", \
|
||||
components:{\
|
||||
"minecraft:custom_data":{\
|
||||
datapack:"ArmorStatuesV2"\
|
||||
}\
|
||||
}\
|
||||
}\
|
||||
} \
|
||||
] \
|
||||
run item modify entity @s weapon.offhand armor_statues:storage_out
|
@ -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:generic.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]
|
@ -0,0 +1,12 @@
|
||||
#
|
||||
# Description: Summons a temp marker to use as a pointer
|
||||
# Called by: armor_statues:summon_temp_marker
|
||||
# Entity @s: armor stand
|
||||
# Parameters:
|
||||
# x (float): x coord
|
||||
# y (float): y coord
|
||||
#
|
||||
# summons temp marker
|
||||
#
|
||||
#$say x:$(x) y:$(y)
|
||||
$summon minecraft:marker ^$(x) ^$(y) ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
13
1_20_5/data/armor_statues/functions/tick.mcfunction
Normal file
13
1_20_5/data/armor_statues/functions/tick.mcfunction
Normal file
@ -0,0 +1,13 @@
|
||||
#
|
||||
# Description: Processing every tick
|
||||
# Called by: #main:tick
|
||||
# Entity @s: None
|
||||
#
|
||||
# Particle at shrine position
|
||||
#
|
||||
execute as @e[tag=as_shrine] at @s run particle minecraft:enchant ~ ~ ~ 0.5 0.5 0.5 0.25 5
|
||||
#
|
||||
# Item frame armor stand animation
|
||||
#
|
||||
scoreboard players add #animate_time as_angle 1
|
||||
execute unless score #animate_trigger as_angle matches 0 if score #animate_time as_angle >= #animate_trigger as_angle run function armor_statues:animate_time
|
126
1_20_5/data/armor_statues/functions/trigger.mcfunction
Normal file
126
1_20_5/data/armor_statues/functions/trigger.mcfunction
Normal file
@ -0,0 +1,126 @@
|
||||
#
|
||||
# Description: Apply changes to nearest armor stand according to the player's as_trigger score
|
||||
# Called by: armor_statues:second
|
||||
# Entity @s: player
|
||||
#
|
||||
# Tag the player and the nearest armor stand within three blocks
|
||||
#
|
||||
tag @s add as_selected
|
||||
tag @e[type=armor_stand,distance=..3,tag=!as_locked,sort=nearest,limit=1,nbt=!{Marker:1b},nbt=!{Invulnerable:1b}] add as_selected
|
||||
#
|
||||
# Copy the trigger score to the selected armor stand
|
||||
#
|
||||
scoreboard players operation @e[type=armor_stand,tag=as_selected] as_trigger = @s as_trigger
|
||||
#
|
||||
# Save for repeat
|
||||
#
|
||||
execute unless score @s as_trigger matches 999 unless score @s as_trigger matches 1200..1201 as @s[predicate=armor_statues:book] run function armor_statues:repeat/save
|
||||
#
|
||||
# Undo/redo
|
||||
#
|
||||
execute as @s[scores={as_trigger=1200..1201},predicate=armor_statues:book] if entity @e[type=armor_stand,tag=as_selected] run function armor_statues:repeat/undo_redo
|
||||
#
|
||||
# Give glowing effect for three seconds if checking target
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=999}] as @e[type=armor_stand,tag=as_selected] run effect give @s minecraft:glowing 3
|
||||
#
|
||||
# armor stand settings
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=1..14}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/settings
|
||||
#
|
||||
# Nudge position
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=40..51}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/position
|
||||
execute if entity @s[scores={as_trigger=101..118}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/position
|
||||
execute if entity @s[scores={as_trigger=1100..1139}] as @e[type=armor_stand,tag=as_selected] at @s run function armor_statues:trigger/position_relative
|
||||
#
|
||||
# Adjust rotation
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=52..57}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/rotation
|
||||
execute if entity @s[scores={as_trigger=124..125}] as @e[type=armor_stand,tag=as_selected] at @s run function armor_statues:trigger/facing
|
||||
#
|
||||
# Pointing
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=1160..1171}] as @e[type=armor_stand,tag=as_selected,nbt={Small:0b}] at @s run function armor_statues:trigger/pointing
|
||||
execute if entity @s[scores={as_trigger=1160..1171}] as @e[type=armor_stand,tag=as_selected,nbt={Small:1b}] at @s run function armor_statues:trigger/pointing_small
|
||||
#
|
||||
# Change angle step size
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=120}] run scoreboard players set @s as_angle 45
|
||||
execute if entity @s[scores={as_trigger=121}] run scoreboard players set @s as_angle 15
|
||||
execute if entity @s[scores={as_trigger=122}] run scoreboard players set @s as_angle 5
|
||||
execute if entity @s[scores={as_trigger=123}] run scoreboard players set @s as_angle 1
|
||||
execute if entity @s[scores={as_trigger=120..123}] run function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"Angle step set to ",\
|
||||
"color":"dark_green"\
|
||||
},\
|
||||
{\
|
||||
"score":{\
|
||||
"name":"@s",\
|
||||
"objective":"as_angle"\
|
||||
},\
|
||||
"color":"dark_green"\
|
||||
},\
|
||||
{\
|
||||
"text":"\\u00b0",\
|
||||
"color":"dark_green"\
|
||||
}'\
|
||||
}
|
||||
#
|
||||
# Pose presets
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=20..39}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/presets
|
||||
execute if entity @s[scores={as_trigger=141..142}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/presets
|
||||
execute if entity @s[scores={as_trigger=1150}] as @e[type=armor_stand,tag=as_selected] at @s run function armor_statues:trigger/random_pose
|
||||
#
|
||||
# Adjust pose
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=60..95}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/adjust
|
||||
#
|
||||
# Mirror and flip
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=131..134}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/mirror
|
||||
execute if entity @s[scores={as_trigger=135}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/flip
|
||||
#
|
||||
# Auto alignment
|
||||
#
|
||||
# non-small armor stands
|
||||
execute if entity @s[scores={as_trigger=151..154}] as @e[type=armor_stand,tag=as_selected,nbt={Small:0b}] run function armor_statues:trigger/align
|
||||
execute if entity @s[scores={as_trigger=155..156}] as @e[type=armor_stand,tag=as_selected,nbt={Small:0b}] run function armor_statues:trigger/rack
|
||||
# small armor stands
|
||||
execute if entity @s[scores={as_trigger=151..154}] as @e[type=armor_stand,tag=as_selected,nbt={Small:1b}] run function armor_statues:trigger/align_small
|
||||
execute if entity @s[scores={as_trigger=155..156}] as @e[type=armor_stand,tag=as_selected,nbt={Small:1b}] run function armor_statues:trigger/rack_small
|
||||
#
|
||||
# Exchange slots
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=161..162}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/slots
|
||||
#
|
||||
# Copy and paste
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=1004},predicate=armor_statues:book] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/copy
|
||||
execute if entity @s[scores={as_trigger=1005},predicate=armor_statues:savedpose] unless entity @s[predicate=armor_statues:bothhands, predicate=!armor_statues:savedpose_mainhand] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/paste
|
||||
#
|
||||
# Lock and seal
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=1000..1003}] run function armor_statues:trigger/lock
|
||||
#
|
||||
# Scale
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=1300..1305}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/scale
|
||||
#
|
||||
# Records the last editor of the armor stand
|
||||
#
|
||||
execute unless entity @s[scores={as_trigger=999}] unless entity @s[scores={as_trigger=999}] as @e[type=armor_stand,tag=as_selected] run function armor_statues:trigger/last_edit
|
||||
#
|
||||
# Reset armor stand's trigger score and remove selected tag from player and armor stand
|
||||
#
|
||||
scoreboard players reset @e[type=armor_stand,tag=as_selected] as_trigger
|
||||
tag @s remove as_selected
|
||||
tag @e[type=armor_stand,tag=as_selected] remove as_selected
|
||||
#
|
||||
# Reset player's trigger score and re-enable
|
||||
#
|
||||
scoreboard players set @s as_trigger 0
|
||||
scoreboard players enable @s as_trigger
|
||||
|
128
1_20_5/data/armor_statues/functions/trigger/align.mcfunction
Normal file
128
1_20_5/data/armor_statues/functions/trigger/align.mcfunction
Normal file
@ -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:generic.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]
|
@ -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:generic.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]
|
26
1_20_5/data/armor_statues/functions/trigger/copy.mcfunction
Normal file
26
1_20_5/data/armor_statues/functions/trigger/copy.mcfunction
Normal file
@ -0,0 +1,26 @@
|
||||
#
|
||||
# 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:generic.scale get 1000
|
||||
#
|
||||
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"\
|
||||
}'\
|
||||
}
|
21
1_20_5/data/armor_statues/functions/trigger/paste.mcfunction
Normal file
21
1_20_5/data/armor_statues/functions/trigger/paste.mcfunction
Normal file
@ -0,0 +1,21 @@
|
||||
#
|
||||
# Description: Paste armor stand settings and pose from book
|
||||
# Called by: as_statue:trigger
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
execute as @p[tag=as_selected] run function armor_statues:storage_in
|
||||
#
|
||||
data modify entity @s {} merge from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose
|
||||
data modify entity @s Pose set from storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose.Pose
|
||||
function armor_statues:set_scale with storage armor_statues:book_storage SavedItem.components.minecraft:custom_data.SavedPose
|
||||
#
|
||||
execute as @p[tag=as_selected] run function armor_statues:player_message {\
|
||||
message: '{\
|
||||
"text":"Settings and pose pasted from the book",\
|
||||
"color":"dark_green"\
|
||||
}'\
|
||||
}
|
||||
#
|
||||
# Tag the armor stand as modified
|
||||
#
|
||||
tag @s add as_modified
|
138
1_20_5/data/armor_statues/functions/trigger/pointing.mcfunction
Normal file
138
1_20_5/data/armor_statues/functions/trigger/pointing.mcfunction
Normal file
@ -0,0 +1,138 @@
|
||||
#
|
||||
# Description: Points an appendage at the player
|
||||
# Called by: armor_statues:trigger
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
# Summons temp marker
|
||||
#
|
||||
# height of player eyes = 1.625
|
||||
# Head
|
||||
#execute if score @s as_trigger matches 1160 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1160 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 1.625f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1166 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1166 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 1.625f,\
|
||||
}
|
||||
# Body
|
||||
#execute if score @s as_trigger matches 1161 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1161 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 1.625f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1167 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1167 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 1.625f,\
|
||||
}
|
||||
# Right Arm
|
||||
#execute if score @s as_trigger matches 1162 rotated ~ 0 run summon minecraft:marker ^-0.34375 ^-0.1875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1162 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.34375f,\
|
||||
y: 1.438f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1168 rotated ~ 0 run summon minecraft:marker ^-0.34375 ^-0.1875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1168 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.34375f,\
|
||||
y: 1.438f,\
|
||||
}
|
||||
# Left Arm
|
||||
#execute if score @s as_trigger matches 1163 rotated ~ 0 run summon minecraft:marker ^0.34375 ^-0.1875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1163 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.34375f,\
|
||||
y: 1.438f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1169 rotated ~ 0 run summon minecraft:marker ^0.34375 ^-0.1875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1169 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.34375f,\
|
||||
y: 1.438f,\
|
||||
}
|
||||
# Right Leg
|
||||
#execute if score @s as_trigger matches 1164 rotated ~ 0 run summon minecraft:marker ^-0.125 ^-0.875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1164 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.125f,\
|
||||
y: 0.75f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1170 rotated ~ 0 run summon minecraft:marker ^-0.125 ^-0.875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1170 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.125f,\
|
||||
y: 0.75f,\
|
||||
}
|
||||
# Left Leg
|
||||
#execute if score @s as_trigger matches 1165 rotated ~ 0 run summon minecraft:marker ^0.125 ^-0.875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1165 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.125f,\
|
||||
y: 0.75f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1171 rotated ~ 0 run summon minecraft:marker ^0.125 ^-0.875 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1171 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.125f,\
|
||||
y: 0.75f,\
|
||||
}
|
||||
#
|
||||
execute if score @s as_trigger matches 1160..1165 as @e[type=minecraft:marker,limit=1,tag=as_temp_marker] at @s positioned ~ ~ ~ run tp @s ~ ~ ~ facing entity @p[tag=as_selected] eyes
|
||||
execute if score @s as_trigger matches 1166..1171 as @e[type=minecraft:marker,limit=1,tag=as_temp_marker] at @s positioned ~ ~ ~ run tp @s ~ ~ ~ facing entity @p[tag=as_selected] feet
|
||||
#
|
||||
execute store result score #temp_as_x as_angle run data get entity @e[type=minecraft:marker,limit=1,tag=as_temp_marker] Rotation[0] 1000
|
||||
execute store result score #temp_as_z as_angle run data get entity @e[type=minecraft:marker,limit=1,tag=as_temp_marker] Rotation[1] 1000
|
||||
execute store result score #selected_as_x as_angle run data get entity @s Rotation[0] 1000
|
||||
execute store result score #selected_as_z as_angle run data get entity @s Rotation[1] 1000
|
||||
scoreboard players operation #temp_as_x as_angle -= #selected_as_x as_angle
|
||||
# Appendage offset
|
||||
execute if score @s as_trigger matches 1162..1165 run scoreboard players operation #temp_as_z as_angle -= #var90000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 run scoreboard players operation #temp_as_z as_angle -= #var90000 as_angle
|
||||
# Head rotation offset (UNUSED)
|
||||
#execute if score @s as_trigger matches 1160 run scoreboard players operation #temp_as_z as_angle += #var180000 as_angle
|
||||
#execute if score @s as_trigger matches 1166 run scoreboard players operation #temp_as_z as_angle += #var180000 as_angle
|
||||
#
|
||||
# Mirror rotation so arms and legs rotate facing the right
|
||||
#
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches 180000.. run scoreboard players operation #temp_as_x as_angle -= #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches ..-180000 run scoreboard players operation #temp_as_x as_angle += #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_x as_angle -= #var180000 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_x as_angle += #var180000 as_angle
|
||||
#
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches 180000.. run scoreboard players operation #temp_as_x as_angle -= #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches ..-180000 run scoreboard players operation #temp_as_x as_angle += #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_x as_angle -= #var180000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_x as_angle += #var180000 as_angle
|
||||
# unused
|
||||
#scoreboard players operation #temp_as_x as_angle *= #var-1 as_angle
|
||||
#scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
#
|
||||
data modify storage armor_statues:appendage appendage set value [0f,0f,0f]
|
||||
execute store result storage armor_statues:appendage appendage[1] float 0.001 run scoreboard players get #temp_as_x as_angle
|
||||
execute store result storage armor_statues:appendage appendage[0] float 0.001 run scoreboard players get #temp_as_z as_angle
|
||||
# Head
|
||||
execute if score @s as_trigger matches 1160 run data modify entity @s Pose.Head set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1166 run data modify entity @s Pose.Head set from storage armor_statues:appendage appendage
|
||||
# Body
|
||||
execute if score @s as_trigger matches 1161 run data modify entity @s Pose.Body set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1167 run data modify entity @s Pose.Body set from storage armor_statues:appendage appendage
|
||||
# Right Arm
|
||||
execute if score @s as_trigger matches 1162 run data modify entity @s Pose.RightArm set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1168 run data modify entity @s Pose.RightArm set from storage armor_statues:appendage appendage
|
||||
# Left Arm
|
||||
execute if score @s as_trigger matches 1163 run data modify entity @s Pose.LeftArm set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1169 run data modify entity @s Pose.LeftArm set from storage armor_statues:appendage appendage
|
||||
# Right Leg
|
||||
execute if score @s as_trigger matches 1164 run data modify entity @s Pose.RightLeg set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1170 run data modify entity @s Pose.RightLeg set from storage armor_statues:appendage appendage
|
||||
# Left Leg
|
||||
execute if score @s as_trigger matches 1165 run data modify entity @s Pose.LeftLeg set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1171 run data modify entity @s Pose.LeftLeg set from storage armor_statues:appendage appendage
|
||||
#
|
||||
# Kills temp marker and marker
|
||||
#
|
||||
kill @e[type=minecraft:marker,tag=as_temp_marker]
|
||||
#
|
||||
# Tag the armor stand as modified
|
||||
#
|
||||
tag @s add as_modified
|
@ -0,0 +1,138 @@
|
||||
#
|
||||
# Description: Points an appendage at the player for small armor stands
|
||||
# Called by: armor_statues:trigger
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
# Summons temp marker
|
||||
#
|
||||
# height of smallplayer eyes = 0.8125
|
||||
# Head
|
||||
#execute if score @s as_trigger matches 1160 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1160 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 0.8125f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1166 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1166 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 0.8125f,\
|
||||
}
|
||||
# Body
|
||||
#execute if score @s as_trigger matches 1161 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1161 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 0.8125f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1167 rotated ~ 0 run summon minecraft:marker ^ ^ ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1167 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0f,\
|
||||
y: 0.8125f,\
|
||||
}
|
||||
# Right Arm
|
||||
#execute if score @s as_trigger matches 1162 rotated ~ 0 run summon minecraft:marker ^-0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1162 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.171875f,\
|
||||
y: 0.719f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1168 rotated ~ 0 run summon minecraft:marker ^-0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1168 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.171875f,\
|
||||
y: 0.719f,\
|
||||
}
|
||||
# Left Arm
|
||||
#execute if score @s as_trigger matches 1163 rotated ~ 0 run summon minecraft:marker ^0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1163 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.171875f,\
|
||||
y: 0.719f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1169 rotated ~ 0 run summon minecraft:marker ^0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1169 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.171875f,\
|
||||
y: 0.719f,\
|
||||
}
|
||||
# Right Leg
|
||||
#execute if score @s as_trigger matches 1164 rotated ~ 0 run summon minecraft:marker ^-0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1164 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.0625f,\
|
||||
y: 0.375f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1170 rotated ~ 0 run summon minecraft:marker ^-0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1170 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: -0.0625f,\
|
||||
y: 0.375f,\
|
||||
}
|
||||
# Left Leg
|
||||
#execute if score @s as_trigger matches 1165 rotated ~ 0 run summon minecraft:marker ^0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1165 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.0625f,\
|
||||
y: 0.375f,\
|
||||
}
|
||||
#execute if score @s as_trigger matches 1171 rotated ~ 0 run summon minecraft:marker ^0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_marker"],DisabledSlots:4144959,Silent:1b}
|
||||
execute if score @s as_trigger matches 1171 rotated ~ 0 run function armor_statues:summon_temp_marker {\
|
||||
x: 0.0625f,\
|
||||
y: 0.375f,\
|
||||
}
|
||||
#
|
||||
execute if score @s as_trigger matches 1160..1165 as @e[type=minecraft:marker,limit=1,tag=as_temp_marker] at @s positioned ~ ~ ~ run tp @s ~ ~ ~ facing entity @p[tag=as_selected] eyes
|
||||
execute if score @s as_trigger matches 1166..1171 as @e[type=minecraft:marker,limit=1,tag=as_temp_marker] at @s positioned ~ ~ ~ run tp @s ~ ~ ~ facing entity @p[tag=as_selected] feet
|
||||
#
|
||||
execute store result score #temp_as_x as_angle run data get entity @e[type=minecraft:marker,limit=1,tag=as_temp_marker] Rotation[0] 1000
|
||||
execute store result score #temp_as_z as_angle run data get entity @e[type=minecraft:marker,limit=1,tag=as_temp_marker] Rotation[1] 1000
|
||||
execute store result score #selected_as_x as_angle run data get entity @s Rotation[0] 1000
|
||||
execute store result score #selected_as_z as_angle run data get entity @s Rotation[1] 1000
|
||||
scoreboard players operation #temp_as_x as_angle -= #selected_as_x as_angle
|
||||
# Appendage offset
|
||||
execute if score @s as_trigger matches 1162..1165 run scoreboard players operation #temp_as_z as_angle -= #var90000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 run scoreboard players operation #temp_as_z as_angle -= #var90000 as_angle
|
||||
# Head rotation offset (UNUSED)
|
||||
#execute if score @s as_trigger matches 1160 run scoreboard players operation #temp_as_z as_angle += #var180000 as_angle
|
||||
#execute if score @s as_trigger matches 1166 run scoreboard players operation #temp_as_z as_angle += #var180000 as_angle
|
||||
#
|
||||
# Mirror rotation so arms and legs rotate facing the right
|
||||
#
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches 180000.. run scoreboard players operation #temp_as_x as_angle -= #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches ..-180000 run scoreboard players operation #temp_as_x as_angle += #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_x as_angle -= #var180000 as_angle
|
||||
execute if score @s as_trigger matches 1162..1165 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_x as_angle += #var180000 as_angle
|
||||
#
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches 180000.. run scoreboard players operation #temp_as_x as_angle -= #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches ..-180000 run scoreboard players operation #temp_as_x as_angle += #var360000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_x as_angle -= #var180000 as_angle
|
||||
execute if score @s as_trigger matches 1168..1171 if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_x as_angle += #var180000 as_angle
|
||||
# unused
|
||||
#scoreboard players operation #temp_as_x as_angle *= #var-1 as_angle
|
||||
#scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
|
||||
#
|
||||
data modify storage armor_statues:appendage appendage set value [0f,0f,0f]
|
||||
execute store result storage armor_statues:appendage appendage[1] float 0.001 run scoreboard players get #temp_as_x as_angle
|
||||
execute store result storage armor_statues:appendage appendage[0] float 0.001 run scoreboard players get #temp_as_z as_angle
|
||||
# Head
|
||||
execute if score @s as_trigger matches 1160 run data modify entity @s Pose.Head set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1166 run data modify entity @s Pose.Head set from storage armor_statues:appendage appendage
|
||||
# Body
|
||||
execute if score @s as_trigger matches 1161 run data modify entity @s Pose.Body set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1167 run data modify entity @s Pose.Body set from storage armor_statues:appendage appendage
|
||||
# Right Arm
|
||||
execute if score @s as_trigger matches 1162 run data modify entity @s Pose.RightArm set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1168 run data modify entity @s Pose.RightArm set from storage armor_statues:appendage appendage
|
||||
# Left Arm
|
||||
execute if score @s as_trigger matches 1163 run data modify entity @s Pose.LeftArm set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1169 run data modify entity @s Pose.LeftArm set from storage armor_statues:appendage appendage
|
||||
# Right Leg
|
||||
execute if score @s as_trigger matches 1164 run data modify entity @s Pose.RightLeg set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1170 run data modify entity @s Pose.RightLeg set from storage armor_statues:appendage appendage
|
||||
# Left Leg
|
||||
execute if score @s as_trigger matches 1165 run data modify entity @s Pose.LeftLeg set from storage armor_statues:appendage appendage
|
||||
execute if score @s as_trigger matches 1171 run data modify entity @s Pose.LeftLeg set from storage armor_statues:appendage appendage
|
||||
#
|
||||
# Kills temp marker
|
||||
#
|
||||
kill @e[type=minecraft:marker,tag=as_temp_marker]
|
||||
#
|
||||
# Tag the armor stand as modified
|
||||
#
|
||||
tag @s add as_modified
|
@ -0,0 +1,41 @@
|
||||
#
|
||||
# Description: Nudge postion of armor stand
|
||||
# Called by: armor_statues:trigger
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
# Trigger values 41, 42, 45, 46, 49 and 50 are redundant and kept for backwards compatibility
|
||||
#
|
||||
execute if entity @s[scores={as_trigger=40}] at @s run tp @s ~-0.5 ~ ~
|
||||
execute if entity @s[scores={as_trigger=101}] at @s run tp @s ~-0.1875 ~ ~
|
||||
execute if entity @s[scores={as_trigger=41}] at @s run tp @s ~-0.1 ~ ~
|
||||
execute if entity @s[scores={as_trigger=102}] at @s run tp @s ~-0.0625 ~ ~
|
||||
execute if entity @s[scores={as_trigger=113}] at @s run tp @s ~-0.00625 ~ ~
|
||||
execute if entity @s[scores={as_trigger=114}] at @s run tp @s ~0.00625 ~ ~
|
||||
execute if entity @s[scores={as_trigger=103}] at @s run tp @s ~0.0625 ~ ~
|
||||
execute if entity @s[scores={as_trigger=42}] at @s run tp @s ~0.1 ~ ~
|
||||
execute if entity @s[scores={as_trigger=104}] at @s run tp @s ~0.1875 ~ ~
|
||||
execute if entity @s[scores={as_trigger=43}] at @s run tp @s ~0.5 ~ ~
|
||||
execute if entity @s[scores={as_trigger=44}] at @s run tp @s ~ ~-0.5 ~
|
||||
execute if entity @s[scores={as_trigger=105}] at @s run tp @s ~ ~-0.1875 ~
|
||||
execute if entity @s[scores={as_trigger=45}] at @s run tp @s ~ ~-0.1 ~
|
||||
execute if entity @s[scores={as_trigger=106}] at @s run tp @s ~ ~-0.0625 ~
|
||||
execute if entity @s[scores={as_trigger=115}] at @s run tp @s ~ ~-0.00625 ~
|
||||
execute if entity @s[scores={as_trigger=116}] at @s run tp @s ~ ~0.00625 ~
|
||||
execute if entity @s[scores={as_trigger=107}] at @s run tp @s ~ ~0.0625 ~
|
||||
execute if entity @s[scores={as_trigger=46}] at @s run tp @s ~ ~0.1 ~
|
||||
execute if entity @s[scores={as_trigger=108}] at @s run tp @s ~ ~0.1875 ~
|
||||
execute if entity @s[scores={as_trigger=47}] at @s run tp @s ~ ~0.5 ~
|
||||
execute if entity @s[scores={as_trigger=48}] at @s run tp @s ~ ~ ~-0.5
|
||||
execute if entity @s[scores={as_trigger=109}] at @s run tp @s ~ ~ ~-0.1875
|
||||
execute if entity @s[scores={as_trigger=49}] at @s run tp @s ~ ~ ~-0.1
|
||||
execute if entity @s[scores={as_trigger=110}] at @s run tp @s ~ ~ ~-0.0625
|
||||
execute if entity @s[scores={as_trigger=117}] at @s run tp @s ~ ~ ~-0.00625
|
||||
execute if entity @s[scores={as_trigger=118}] at @s run tp @s ~ ~ ~0.00625
|
||||
execute if entity @s[scores={as_trigger=111}] at @s run tp @s ~ ~ ~0.0625
|
||||
execute if entity @s[scores={as_trigger=50}] at @s run tp @s ~ ~ ~0.1
|
||||
execute if entity @s[scores={as_trigger=112}] at @s run tp @s ~ ~ ~0.1875
|
||||
execute if entity @s[scores={as_trigger=51}] at @s run tp @s ~ ~ ~0.5
|
||||
#
|
||||
# Tag the armor stand as modified
|
||||
#
|
||||
tag @s add as_modified
|
@ -0,0 +1,47 @@
|
||||
#
|
||||
# Description: Nudge postion of armor stand relative to the player
|
||||
# Called by: armor_statues:trigger
|
||||
# Entity @s: armor stand
|
||||
#
|
||||
# Summons temp armor stand
|
||||
summon minecraft:armor_stand ~ ~ ~ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
|
||||
tp @e[type=armor_stand,tag=as_temp_armor_stand] ~ ~ ~ facing entity @p[tag=as_selected]
|
||||
#
|
||||
# stores temp armor stand angle
|
||||
#
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] store result score #temp_rotation as_pose run data get entity @e[type=armor_stand,tag=as_temp_armor_stand,limit=1] Rotation[0]
|
||||
# Facing south
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches -45..45 rotated 0 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches 316..360 rotated 0 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches -360..-316 rotated 0 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches -45..45 rotated 0 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches 316..360 rotated 0 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches -360..-316 rotated 0 0 run function armor_statues:relative_position_aligned_nudge
|
||||
# Facing West
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches 46..135 rotated 90 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches -315..-226 rotated 90 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches 46..135 rotated 90 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches -315..-226 rotated 90 0 run function armor_statues:relative_position_aligned_nudge
|
||||
# Facing North
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches 136..225 rotated 180 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches -225..-136 rotated 180 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches 136..225 rotated 180 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches -225..-136 rotated 180 0 run function armor_statues:relative_position_aligned_nudge
|
||||
# Facing East
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches 226..315 rotated 270 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1100..1111}] if score #temp_rotation as_pose matches -135..-46 rotated 270 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches 226..315 rotated 270 0 run function armor_statues:relative_position_aligned_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1130..1133}] if score #temp_rotation as_pose matches -135..-46 rotated 270 0 run function armor_statues:relative_position_aligned_nudge
|
||||
#
|
||||
# Relative nudge from player function
|
||||
#
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1112..1129}] rotated as @e[type=armor_stand,tag=as_temp_armor_stand] run function armor_statues:relative_position_nudge
|
||||
execute if entity @p[tag=as_selected,scores={as_trigger=1134..1139}] rotated as @e[type=armor_stand,tag=as_temp_armor_stand] run function armor_statues:relative_position_nudge
|
||||
#
|
||||
# Kills temp armor stand
|
||||
#
|
||||
kill @e[type=armor_stand,tag=as_temp_armor_stand]
|
||||
#
|
||||
# Tag the armor stand as modified
|
||||
#
|
||||
tag @s add as_modified
|
67
1_20_5/data/armor_statues/functions/trigger/rack.mcfunction
Normal file
67
1_20_5/data/armor_statues/functions/trigger/rack.mcfunction
Normal file
@ -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:generic.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
|
@ -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:generic.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
|
31
1_20_5/data/armor_statues/functions/trigger/scale.mcfunction
Normal file
31
1_20_5/data/armor_statues/functions/trigger/scale.mcfunction
Normal file
@ -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:generic.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
|
@ -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:generic.scale base set $(scale)
|
@ -0,0 +1,10 @@
|
||||
#
|
||||
# Description: teleports according to inputs
|
||||
# Called by: armor_statues:trigger/align|armor_statues:trigger/align_small
|
||||
# Entity @s: armor stand
|
||||
# Parameters:
|
||||
# x (float): x coord
|
||||
# y (float): y coord
|
||||
# z (float): z coord
|
||||
#
|
||||
$tp ^$(x) ^$(y) ^$(z)
|
@ -0,0 +1,39 @@
|
||||
[
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag":{ "wand":1 }
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_components",
|
||||
"components": {
|
||||
"minecraft:enchantment_glint_override": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag":{ "type":0 }
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_model_data",
|
||||
"value": 10
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_name",
|
||||
"entity": "this",
|
||||
"name": {
|
||||
"text": "Adjustment Wand: X axis"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_lore",
|
||||
"entity": "this",
|
||||
"lore": [
|
||||
["",
|
||||
{"keybind":"key.sneak"},
|
||||
{"text":"+"},
|
||||
{"keybind":"key.use"},
|
||||
{"text":" to set mode"}]
|
||||
],
|
||||
"mode": "replace_all"
|
||||
}
|
||||
]
|
@ -0,0 +1,39 @@
|
||||
[
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag":{ "wand":1 }
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_components",
|
||||
"components": {
|
||||
"minecraft:enchantment_glint_override": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag":{ "type":1 }
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_model_data",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_name",
|
||||
"entity": "this",
|
||||
"name": {
|
||||
"text": "Adjustment Wand: Y axis"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_lore",
|
||||
"entity": "this",
|
||||
"lore": [
|
||||
["",
|
||||
{"keybind":"key.sneak"},
|
||||
{"text":"+"},
|
||||
{"keybind":"key.use"},
|
||||
{"text":" to set mode"}]
|
||||
],
|
||||
"mode": "replace_all"
|
||||
}
|
||||
]
|
@ -0,0 +1,39 @@
|
||||
[
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag":{ "wand":1 }
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_components",
|
||||
"components": {
|
||||
"minecraft:enchantment_glint_override": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag":{ "type":2 }
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_model_data",
|
||||
"value": 12
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_name",
|
||||
"entity": "this",
|
||||
"name": {
|
||||
"text": "Adjustment Wand: Z axis"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_lore",
|
||||
"entity": "this",
|
||||
"lore": [
|
||||
["",
|
||||
{"keybind":"key.sneak"},
|
||||
{"text":"+"},
|
||||
{"keybind":"key.use"},
|
||||
{"text":" to set mode"}]
|
||||
],
|
||||
"mode": "replace_all"
|
||||
}
|
||||
]
|
35
1_20_5/data/armor_statues/item_modifiers/pointer_wand.json
Normal file
35
1_20_5/data/armor_statues/item_modifiers/pointer_wand.json
Normal file
@ -0,0 +1,35 @@
|
||||
[
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag":{ "wand":1 }
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_components",
|
||||
"components": {
|
||||
"minecraft:enchantment_glint_override": true,
|
||||
"minecraft:max_stack_size": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_model_data",
|
||||
"value": 10
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_name",
|
||||
"entity": "this",
|
||||
"name": {
|
||||
"text": "Pointer Wand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_lore",
|
||||
"entity": "this",
|
||||
"lore": [
|
||||
["",
|
||||
{"text":"Point at "},
|
||||
{"translate":"entity.minecraft.armor_stand"},
|
||||
{"text":" to use"}]
|
||||
],
|
||||
"mode": "replace_all"
|
||||
}
|
||||
]
|
36
1_20_5/data/armor_statues/item_modifiers/storage_out.json
Normal file
36
1_20_5/data/armor_statues/item_modifiers/storage_out.json
Normal file
@ -0,0 +1,36 @@
|
||||
[
|
||||
{
|
||||
"function": "minecraft:copy_custom_data",
|
||||
"source": {
|
||||
"type": "storage",
|
||||
"source": "armor_statues:book_storage"
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"source": "SavedItem.components.minecraft:custom_data.SavedPose",
|
||||
"target": "SavedPose",
|
||||
"op": "replace"
|
||||
},
|
||||
{
|
||||
"source": "SavedItem.components.minecraft:custom_data.UndoStates",
|
||||
"target": "UndoStates",
|
||||
"op": "replace"
|
||||
},
|
||||
{
|
||||
"source": "SavedItem.components.minecraft:custom_data.RedoStates",
|
||||
"target": "RedoStates",
|
||||
"op": "replace"
|
||||
},
|
||||
{
|
||||
"source": "SavedItem.components.minecraft:custom_data.StatesUUID",
|
||||
"target": "StatesUUID",
|
||||
"op": "replace"
|
||||
},
|
||||
{
|
||||
"source": "SavedItem.components.minecraft:custom_data.Repeat",
|
||||
"target": "Repeat",
|
||||
"op": "replace"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
16
1_20_5/data/armor_statues/item_modifiers/wand.json
Normal file
16
1_20_5/data/armor_statues/item_modifiers/wand.json
Normal file
@ -0,0 +1,16 @@
|
||||
[
|
||||
{
|
||||
"function": "minecraft:copy_custom_data",
|
||||
"source": {
|
||||
"type": "context",
|
||||
"target": "this"
|
||||
},
|
||||
"ops": [
|
||||
{
|
||||
"source": "UUID",
|
||||
"target": "LastUsed",
|
||||
"op": "replace"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
21
1_20_5/data/armor_statues/loot_tables/adjustment_wand.json
Normal file
21
1_20_5/data/armor_statues/loot_tables/adjustment_wand.json
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
{
|
||||
"type": "minecraft:loot",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:warped_fungus_on_a_stick",
|
||||
"functions": [
|
||||
{
|
||||
"function": "reference",
|
||||
"name": "armor_statues:adjustment_wand_0"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
89
1_20_5/data/armor_statues/loot_tables/book.json
Normal file
89
1_20_5/data/armor_statues/loot_tables/book.json
Normal file
@ -0,0 +1,89 @@
|
||||
|
||||
{
|
||||
"type": "minecraft:loot",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:written_book",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_custom_data",
|
||||
"tag": {
|
||||
"datapack": "ArmorStatuesV2"
|
||||
}
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_custom_model_data",
|
||||
"value": 10
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_book_cover",
|
||||
"title": "Statues v2.12",
|
||||
"author": "Stick God",
|
||||
"generation": 0
|
||||
},
|
||||
{
|
||||
"function": "minecraft:set_written_book_pages",
|
||||
"mode": "replace_all",
|
||||
"pages": [
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[0]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[1]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[2]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[3]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[4]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[5]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[6]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[7]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[8]"
|
||||
},
|
||||
{
|
||||
"storage": "armor_statues:book_data",
|
||||
"interpret": true,
|
||||
"nbt": "components.minecraft:written_book_content.pages[9]"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
529
1_20_5/data/armor_statues/loot_tables/book.txt
Normal file
529
1_20_5/data/armor_statues/loot_tables/book.txt
Normal file
@ -0,0 +1,529 @@
|
||||
{
|
||||
"type": "minecraft:loot",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:written_book",
|
||||
"functions": [
|
||||
{
|
||||
"function": "minecraft:set_nbt",
|
||||
"tag": "{
|
||||
title:\"Statues V2.10\",
|
||||
author:\"Stick God\",
|
||||
datapack:\"ArmorStatuesV2\",
|
||||
CustomModelData:10,
|
||||
pages:[
|
||||
'[
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"Statues V2.10\",\"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\":\"Item Frames\",\"color\":\"dark_aqua\",\"clickEvent\":{\"action\":\"change_page\",\"value\":9}},
|
||||
|
||||
{\"text\":\"\\\\n\",\"color\":\"white\"},
|
||||
{\"text\":\"Pose Adjust\",\"color\":\"dark_aqua\",\"clickEvent\":{\"action\":\"change_page\",\"value\":6}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"Credits\",\"color\":\"dark_aqua\",\"clickEvent\":{\"action\":\"change_page\",\"value\":10}},
|
||||
{\"text\":\"\\\\n\",\"color\":\"white\"},
|
||||
{\"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\":\"\\\\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\":\"\\\\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\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 40\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 101\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 102\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 103\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 104\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 43\"}},
|
||||
{\"text\":\"\\\\nY: \",\"color\":\"black\"},
|
||||
{\"text\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 44\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 105\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 106\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 107\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 108\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 47\"}},
|
||||
{\"text\":\"\\\\nZ: \",\"color\":\"black\"},
|
||||
{\"text\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 48\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 109\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 110\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 111\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 112\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"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\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1100\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1101\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1102\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1103\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1104\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1105\"}},
|
||||
{\"text\":\"\\\\nZ: \",\"color\":\"black\"},
|
||||
{\"text\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1106\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1107\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1108\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1109\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1110\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"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\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1112\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1113\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1114\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1115\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1116\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1117\"}},
|
||||
{\"text\":\"\\\\nY: \",\"color\":\"black\"},
|
||||
{\"text\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1118\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1119\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1120\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1121\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1122\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1123\"}},
|
||||
{\"text\":\"\\\\nZ: \",\"color\":\"black\"},
|
||||
{\"text\":\"-8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1124\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1125\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"-1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1126\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+1\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1127\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+3\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1128\"}},
|
||||
{\"text\":\" \",\"color\":\"white\"},
|
||||
{\"text\":\"+8\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger as_trigger set 1129\"}},
|
||||
\"\"
|
||||
]',
|
||||
'[
|
||||
\"\",
|
||||
{\"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\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger pointer_wand\"}},
|
||||
{\"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\":\"\\\\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\":\"\\\\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\",\"color\":\"dark_green\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/trigger adjustment_wand\"}},
|
||||
{\"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\":\"\\\\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\":\"\\\\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\":\"\\\\u00ab\",\"color\":\"light_purple\",\"clickEvent\":{\"action\":\"change_page\",\"value\":1}},
|
||||
{\"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\":\"\",\"color\":\"white\"}
|
||||
]',
|
||||
'[
|
||||
\"\",
|
||||
{\"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\"}}
|
||||
]'
|
||||
]
|
||||
}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
7
1_20_5/data/armor_statues/loot_tables/book_old.json
Normal file
7
1_20_5/data/armor_statues/loot_tables/book_old.json
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
{
|
||||
"type": "minecraft:loot",
|
||||
"pools": [
|
||||
|
||||
]
|
||||
}
|
21
1_20_5/data/armor_statues/loot_tables/pointer_wand.json
Normal file
21
1_20_5/data/armor_statues/loot_tables/pointer_wand.json
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
{
|
||||
"type": "minecraft:loot",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "minecraft:stick",
|
||||
"functions": [
|
||||
{
|
||||
"function": "reference",
|
||||
"name": "armor_statues:pointer_wand"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
6
1_20_5/data/armor_statues/loot_tables/random_pose.json
Normal file
6
1_20_5/data/armor_statues/loot_tables/random_pose.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
|
||||
]
|
||||
}
|
6
1_20_5/data/armor_statues/loot_tables/replace.json
Normal file
6
1_20_5/data/armor_statues/loot_tables/replace.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
|
||||
]
|
||||
}
|
6
1_20_5/data/armor_statues/loot_tables/replace_save.json
Normal file
6
1_20_5/data/armor_statues/loot_tables/replace_save.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"type": "minecraft:entity",
|
||||
"pools": [
|
||||
|
||||
]
|
||||
}
|
37
1_20_5/data/armor_statues/predicates/book.json
Normal file
37
1_20_5/data/armor_statues/predicates/book.json
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
"condition": "minecraft:any_of",
|
||||
"terms": [
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": ["minecraft:written_book"],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"datapack": "ArmorStatuesV2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"offhand": {
|
||||
"items": ["minecraft:written_book"],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"datapack": "ArmorStatuesV2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
24
1_20_5/data/armor_statues/predicates/bothhands.json
Normal file
24
1_20_5/data/armor_statues/predicates/bothhands.json
Normal file
@ -0,0 +1,24 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": ["minecraft:written_book"],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"datapack": "ArmorStatuesV2"
|
||||
}
|
||||
}
|
||||
},
|
||||
"offhand": {
|
||||
"items": ["minecraft:written_book"],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"datapack": "ArmorStatuesV2"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
16
1_20_5/data/armor_statues/predicates/holding_adjustment.json
Normal file
16
1_20_5/data/armor_statues/predicates/holding_adjustment.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": [ "minecraft:warped_fungus_on_a_stick" ],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"wand": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
16
1_20_5/data/armor_statues/predicates/holding_pointer.json
Normal file
16
1_20_5/data/armor_statues/predicates/holding_pointer.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": [ "minecraft:stick" ],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"wand": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
18
1_20_5/data/armor_statues/predicates/holding_wand.json
Normal file
18
1_20_5/data/armor_statues/predicates/holding_wand.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": ["minecraft:stick",
|
||||
"minecraft:warped_fungus_on_a_stick"
|
||||
],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"wand": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
10
1_20_5/data/armor_statues/predicates/is_sneaking.json
Normal file
10
1_20_5/data/armor_statues/predicates/is_sneaking.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"type": "minecraft:player",
|
||||
"flags": {
|
||||
"is_sneaking": true
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
[
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"slots": {
|
||||
"container.0": {
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"datapack":"ArmorStatuesV2",
|
||||
"SavedPose":{}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"condition": "minecraft:location_check",
|
||||
"predicate": {
|
||||
"block": {
|
||||
"block": "minecraft:redstone_wire"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
34
1_20_5/data/armor_statues/predicates/mainhand_potion.json
Normal file
34
1_20_5/data/armor_statues/predicates/mainhand_potion.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"condition": "minecraft:any_of",
|
||||
"terms": [
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": "#armor_statues:potions",
|
||||
"predicates": {
|
||||
"minecraft:potion_contents": "minecraft:long_invisibility"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": "#armor_statues:potions",
|
||||
"predicates": {
|
||||
"minecraft:potion_contents": "minecraft:long_invisibility"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
}
|
34
1_20_5/data/armor_statues/predicates/offhand_potion.json
Normal file
34
1_20_5/data/armor_statues/predicates/offhand_potion.json
Normal file
@ -0,0 +1,34 @@
|
||||
{
|
||||
"condition": "minecraft:any_of",
|
||||
"terms": [
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"offhand": {
|
||||
"items": "#armor_statues:potions",
|
||||
"predicates": {
|
||||
"minecraft:potion_contents": "minecraft:invisibility"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"offhand": {
|
||||
"items": "#armor_statues:potions",
|
||||
"predicates": {
|
||||
"minecraft:potion_contents": "minecraft:long_invisibility"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
}
|
13
1_20_5/data/armor_statues/predicates/savedpose.json
Normal file
13
1_20_5/data/armor_statues/predicates/savedpose.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"condition": "minecraft:any_of",
|
||||
"terms": [
|
||||
{
|
||||
"condition": "minecraft:reference",
|
||||
"name": "armor_statues:savedpose_mainhand"
|
||||
},
|
||||
{
|
||||
"condition": "minecraft:reference",
|
||||
"name": "armor_statues:savedpose_offhand"
|
||||
}
|
||||
]
|
||||
}
|
17
1_20_5/data/armor_statues/predicates/savedpose_mainhand.json
Normal file
17
1_20_5/data/armor_statues/predicates/savedpose_mainhand.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"mainhand": {
|
||||
"items": ["minecraft:written_book"],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"datapack": "ArmorStatuesV2",
|
||||
"SavedPose": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
17
1_20_5/data/armor_statues/predicates/savedpose_offhand.json
Normal file
17
1_20_5/data/armor_statues/predicates/savedpose_offhand.json
Normal file
@ -0,0 +1,17 @@
|
||||
{
|
||||
"condition": "minecraft:entity_properties",
|
||||
"entity": "this",
|
||||
"predicate": {
|
||||
"equipment": {
|
||||
"offhand": {
|
||||
"items": ["minecraft:written_book"],
|
||||
"predicates": {
|
||||
"minecraft:custom_data": {
|
||||
"datapack": "ArmorStatuesV2",
|
||||
"SavedPose": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
29
1_20_5/data/armor_statues/recipes/adjustment_wand.json
Normal file
29
1_20_5/data/armor_statues/recipes/adjustment_wand.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"group": "armor_statues",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "minecraft:warped_fungus_on_a_stick"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:armor_stand"
|
||||
}
|
||||
],
|
||||
"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\"}]"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
40
1_20_5/data/armor_statues/recipes/book.json
Normal file
40
1_20_5/data/armor_statues/recipes/book.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"group": "armor_statues",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "minecraft:book"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:armor_stand"
|
||||
}
|
||||
],
|
||||
"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,
|
||||
"resolved": false,
|
||||
"pages": [
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[0]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[1]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[2]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[3]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[4]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[5]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[6]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[7]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[8]\" }",
|
||||
"{ \"storage\": \"armor_statues:book_data\", \"interpret\": true, \"nbt\": \"components.minecraft:written_book_content.pages[9]\" }"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
28
1_20_5/data/armor_statues/recipes/pointer_wand.json
Normal file
28
1_20_5/data/armor_statues/recipes/pointer_wand.json
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"group": "armor_statues",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "minecraft:stick"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:armor_stand"
|
||||
}
|
||||
],
|
||||
"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\"}]"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user