77 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			MCFunction
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			MCFunction
		
	
	
	
	
	
# 
 | 
						|
# Description:	Points an appendage at the player for small armor stands
 | 
						|
# Called by:	as:trigger
 | 
						|
# Entity @s:	armor stand
 | 
						|
#
 | 
						|
# Summons temp armor stand
 | 
						|
#
 | 
						|
# Head
 | 
						|
execute if score @s as_trigger matches 1160 rotated ~ 0 run summon minecraft:armor_stand ^ ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
execute if score @s as_trigger matches 1166 rotated ~ 0 run summon minecraft:armor_stand ^ ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
# Body
 | 
						|
execute if score @s as_trigger matches 1161 rotated ~ 0 run summon minecraft:armor_stand ^ ^-0.25 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
execute if score @s as_trigger matches 1167 rotated ~ 0 run summon minecraft:armor_stand ^ ^-0.25 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
# Right Arm
 | 
						|
execute if score @s as_trigger matches 1162 rotated ~ 0 run summon minecraft:armor_stand ^-0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
execute if score @s as_trigger matches 1168 rotated ~ 0 run summon minecraft:armor_stand ^-0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
# Left Arm
 | 
						|
execute if score @s as_trigger matches 1163 rotated ~ 0 run summon minecraft:armor_stand ^0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
execute if score @s as_trigger matches 1169 rotated ~ 0 run summon minecraft:armor_stand ^0.171875 ^-0.28125 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
# Right Leg
 | 
						|
execute if score @s as_trigger matches 1164 rotated ~ 0 run summon minecraft:armor_stand ^-0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
execute if score @s as_trigger matches 1170 rotated ~ 0 run summon minecraft:armor_stand ^-0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
# Left Leg
 | 
						|
execute if score @s as_trigger matches 1165 rotated ~ 0 run summon minecraft:armor_stand ^0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
execute if score @s as_trigger matches 1171 rotated ~ 0 run summon minecraft:armor_stand ^0.0625 ^-0.625 ^ {NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["as_temp_armor_stand"],DisabledSlots:4144959,Silent:1b}
 | 
						|
#
 | 
						|
execute if score @s as_trigger matches 1160..1165 as @e[type=minecraft:armor_stand,limit=1,tag=as_temp_armor_stand] at @s positioned ~ ~1 ~ run tp @s ~ ~ ~ facing entity @p[tag=as_selected] eyes
 | 
						|
execute if score @s as_trigger matches 1166..1171 as @e[type=minecraft:armor_stand,limit=1,tag=as_temp_armor_stand] at @s positioned ~ ~1 ~ 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:armor_stand,limit=1,tag=as_temp_armor_stand] Rotation[0] 1000
 | 
						|
execute store result score #temp_as_z as_angle run data get entity @e[type=minecraft:armor_stand,limit=1,tag=as_temp_armor_stand] 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
 | 
						|
scoreboard players operation #temp_as_z as_angle -= #var90000 as_angle
 | 
						|
# Head rotation offset
 | 
						|
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
 | 
						|
#
 | 
						|
execute if score #temp_as_x as_angle matches 180000.. run scoreboard players operation #temp_as_x as_angle -= #var360000 as_angle
 | 
						|
execute if score #temp_as_x as_angle matches ..-180000 run scoreboard players operation #temp_as_x as_angle += #var360000 as_angle
 | 
						|
execute 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 #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_z as_angle *= #var-1 as_angle
 | 
						|
execute if score #temp_as_x as_angle matches 90000.. run scoreboard players operation #temp_as_x as_angle -= #var180000 as_angle
 | 
						|
execute if score #temp_as_x as_angle matches ..-90000 run scoreboard players operation #temp_as_x as_angle += #var180000 as_angle
 | 
						|
#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 customizable_armor_stands:appendage appendage set value [0f,0f,0f]
 | 
						|
execute store result storage customizable_armor_stands:appendage appendage[1] float 0.001 run scoreboard players get #temp_as_x as_angle
 | 
						|
execute store result storage customizable_armor_stands: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 customizable_armor_stands:appendage appendage
 | 
						|
execute if score @s as_trigger matches 1166 run data modify entity @s Pose.Head set from storage customizable_armor_stands:appendage appendage
 | 
						|
# Body
 | 
						|
execute if score @s as_trigger matches 1161 run data modify entity @s Pose.Body set from storage customizable_armor_stands:appendage appendage
 | 
						|
execute if score @s as_trigger matches 1167 run data modify entity @s Pose.Body set from storage customizable_armor_stands:appendage appendage
 | 
						|
# Right Arm
 | 
						|
execute if score @s as_trigger matches 1162 run data modify entity @s Pose.RightArm set from storage customizable_armor_stands:appendage appendage
 | 
						|
execute if score @s as_trigger matches 1168 run data modify entity @s Pose.RightArm set from storage customizable_armor_stands:appendage appendage
 | 
						|
# Left Arm
 | 
						|
execute if score @s as_trigger matches 1163 run data modify entity @s Pose.LeftArm set from storage customizable_armor_stands:appendage appendage
 | 
						|
execute if score @s as_trigger matches 1169 run data modify entity @s Pose.LeftArm set from storage customizable_armor_stands:appendage appendage
 | 
						|
# Right Leg
 | 
						|
execute if score @s as_trigger matches 1164 run data modify entity @s Pose.RightLeg set from storage customizable_armor_stands:appendage appendage
 | 
						|
execute if score @s as_trigger matches 1170 run data modify entity @s Pose.RightLeg set from storage customizable_armor_stands:appendage appendage
 | 
						|
# Left Leg
 | 
						|
execute if score @s as_trigger matches 1165 run data modify entity @s Pose.LeftLeg set from storage customizable_armor_stands:appendage appendage
 | 
						|
execute if score @s as_trigger matches 1171 run data modify entity @s Pose.LeftLeg set from storage customizable_armor_stands:appendage appendage
 | 
						|
#
 | 
						|
# 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 |