1
0
mirror of https://github.com/LZStealth/armor-statues.git synced 2025-06-07 17:16:44 +01:00

Added support for Glow Item Frames

This commit is contained in:
MukiTanuki 2021-06-01 20:32:01 -06:00
parent 2a8de521b3
commit 54ac24c104
8 changed files with 28 additions and 15 deletions

View File

@ -7,6 +7,6 @@ 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=item_frame,tag=!as_animatable,predicate=armor_statues:item_frame_with_book] run tag @s add as_animatable
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=item_frame,tag=as_animatable,predicate=!armor_statues:item_frame_with_book] run tag @s remove as_animatable
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

View File

@ -1,7 +1,7 @@
#
# Description: Animate armor stands based off of item frames
# Called by: armor_statues:tick
# Entity @s: None
# 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.tag.SavedPose

View File

@ -3,6 +3,6 @@
# Called by: armor_statues:tick
# Entity @s: None
#
execute as @e[type=minecraft:item_frame,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=minecraft:item_frame,tag=as_animatable,tag=as_powered] at @s if block ~ ~ ~ minecraft:redstone_wire[power=0] run tag @s remove as_powered
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

View File

@ -6,31 +6,31 @@
# 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=item_frame,distance=..1,tag=!as_locked,sort=nearest,limit=1,nbt=!{Invulnerable:1b},nbt={Item:{Count:1b}}] unless entity @s[tag=!if_fixed,nbt={Fixed:1b}] run 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:1b}}] 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=item_frame,tag=as_selected] if_invisible = @s if_invisible
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=item_frame,tag=as_selected,nbt=!{Invisible:1b}] run function armor_statues:item_frames/invisible
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=item_frame,tag=as_selected] run function armor_statues:item_frames/fixed
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 data storage customizable_armor_stands:settings as_admin{fixed_item_frame:"Enabled"} if entity @s[scores={if_invisible=2..3},gamemode=survival] as @e[type=item_frame,tag=as_selected] run function armor_statues:item_frames/fixed
execute if data storage customizable_armor_stands:settings as_admin{fixed_item_frame:"Enabled"} 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 data storage customizable_armor_stands:settings as_admin{fixed_item_frame:"Disabled"} if entity @s[scores={if_invisible=2..3},gamemode=survival] if entity @p[tag=as_selected,predicate=!armor_statues:mainhand_potion,predicate=!armor_statues:offhand_potion] run title @a[tag=as_selected,tag=!as_chat] actionbar [{"text":"Must be enabled from admin menu","color":"dark_red"}]
execute if data storage customizable_armor_stands:settings as_admin{fixed_item_frame:"Disabled"} if entity @s[scores={if_invisible=2..3},gamemode=survival] if entity @p[tag=as_selected,predicate=!armor_statues:mainhand_potion,predicate=!armor_statues:offhand_potion] run tellraw @a[tag=as_selected,tag=as_chat] [{"text":"<Stick_God> ","color":"dark_green"},{"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=item_frame,tag=as_selected] if_invisible
scoreboard players reset @e[type=#armor_statues:item_frames,tag=as_selected] if_invisible
tag @s remove as_selected
tag @e[type=item_frame,tag=as_selected] remove as_selected
tag @e[type=#armor_statues:item_frames,tag=as_selected] remove as_selected
#
# Reset player's trigger score and re-enable
#

View File

@ -1,7 +1,7 @@
#
# Description: turns item frame invisible
# Called by: armor_statues:if_trigger
# Entity @s: item frame
# Entity @s: #item frame
#
# Makes item frame fixed
#

View File

@ -1,7 +1,7 @@
#
# Description: turns item frame invisible if successful
# Called by: armor_statues:if_trigger
# Entity @s: item frame
# Entity @s: #item frame
#
# Makes item frame invisible
#

View File

@ -19,7 +19,7 @@ execute as @a[scores={if_invisible=1..}] at @s run function armor_statues:if_tri
#
# Makes empty invisible item frames visible
#
execute as @e[type=item_frame,tag=if_invisible,nbt=!{Item:{Count:1b}}] run function armor_statues:item_frames/visible
execute as @e[type=#armor_statues:item_frames,tag=if_invisible,nbt=!{Item:{Count:1b}}] run function armor_statues:item_frames/visible
#
# Check for players at the particle shrine
#

View File

@ -0,0 +1,13 @@
{
"replace": "false",
"values": [
{
"id": "minecraft:item_frame",
"required": "true"
},
{
"id": "minecraft:glow_item_frame",
"required": "true"
}
]
}