From b1f29e0f7227cd4daec2a39cffcc2805991509e8 Mon Sep 17 00:00:00 2001 From: MukiTanuki Date: Fri, 7 Jun 2024 23:18:29 -0600 Subject: [PATCH] 1.21.0 update --- .../advancement/armor_statues.json | 18 + .../advancement/attack_interaction.json | 25 + .../armor_statues/advancement/crafting.json | 12 + .../armor_statues/advancement/enable.json | 31 + .../data/armor_statues/advancement/root.json | 12 + .../advancement/use_interaction.json | 25 + .../function/3_second.mcfunction | 43 + .../function/adjustment_wand.mcfunction | 14 + .../adjustment_wand_trigger.mcfunction | 27 + .../armor_statues/function/admin.mcfunction | 593 +++ .../adjustment_craftable_toggle.mcfunction | 30 + .../adjustment_triggerable_toggle.mcfunction | 30 + .../admin/book_from_help_toggle.mcfunction | 30 + .../admin/craft_book_toggle.mcfunction | 30 + .../admin/fixed_item_frame_toggle.mcfunction | 30 + .../function/admin/marker.mcfunction | 24 + .../admin/pointer_craftable_toggle.mcfunction | 30 + .../pointer_triggerable_toggle.mcfunction | 30 + .../function/admin/scale.mcfunction | 48 + .../function/admin/unused.mcfunction | 20 + .../admin/uuid_lock_toggle.mcfunction | 30 + .../admin/wands_disabled_toggle.mcfunction | 30 + .../armor_statues/function/animate.mcfunction | 8 + .../function/animate_time.mcfunction | 8 + .../function/book_data.mcfunction | 6 + .../armor_statues/function/bugfix.mcfunction | 16 + .../function/craft_book.mcfunction | 9 + .../armor_statues/function/enable.mcfunction | 39 + .../armor_statues/function/give.mcfunction | 29 + .../function/give_adjustment_wand.mcfunction | 7 + .../function/give_pointer_wand.mcfunction | 7 + .../armor_statues/function/help.mcfunction | 14 + .../help/chat_actionbar_toggle.mcfunction | 11 + .../function/help/credits.mcfunction | 71 + .../function/help/get_book.mcfunction | 6 + .../function/help/main.mcfunction | 206 ++ .../function/if_trigger.mcfunction | 42 + .../function/interactions/attack.mcfunction | 35 + .../interactions/attack_adjust.mcfunction | 52 + .../interactions/attack_pointer.mcfunction | 55 + .../interactions/base_setup.mcfunction | 16 + .../interactions/base_setup_small.mcfunction | 16 + .../interactions/body_setup.mcfunction | 16 + .../interactions/body_setup_small.mcfunction | 16 + .../interactions/display_setup.mcfunction | 61 + .../display_setup_helper.mcfunction | 25 + .../interactions/head_setup.mcfunction | 16 + .../interactions/head_setup_small.mcfunction | 16 + .../function/interactions/interact.mcfunction | 52 + .../interactions/interact_adjust.mcfunction | 52 + .../interactions/interact_pointer.mcfunction | 38 + .../interactions/left_arm_setup.mcfunction | 16 + .../left_arm_setup_small.mcfunction | 16 + .../interactions/left_leg_setup.mcfunction | 16 + .../left_leg_setup_small.mcfunction | 16 + .../readjust_interactions.mcfunction | 105 + .../readjust_interactions_small.mcfunction | 94 + .../interactions/reset_armor_stand.mcfunction | 18 + .../interactions/reset_interaction.mcfunction | 7 + .../interactions/right_arm_setup.mcfunction | 16 + .../right_arm_setup_small.mcfunction | 16 + .../interactions/right_leg_setup.mcfunction | 16 + .../right_leg_setup_small.mcfunction | 16 + .../function/interactions/setup.mcfunction | 161 + .../interactions/setup_small.mcfunction | 161 + .../interactions/tp_helper.mcfunction | 9 + .../function/item_frames/fixed.mcfunction | 28 + .../function/item_frames/invisible.mcfunction | 9 + .../item_frames/invisible_old.mcfunction | 14 + .../function/item_frames/visible.mcfunction | 7 + .../armor_statues/function/load.mcfunction | 98 + .../function/locking/lock.mcfunction | 22 + .../function/locking/lock_check.mcfunction | 7 + .../function/locking/unlock.mcfunction | 24 + .../function/locking/uuid_check.mcfunction | 19 + .../function/multiply_float.mcfunction | 22 + .../function/player_message.mcfunction | 17 + .../function/pointer_wand_trigger.mcfunction | 27 + .../function/randomizer/body.mcfunction | 21 + .../function/randomizer/body_angle.mcfunction | 31 + .../function/randomizer/head.mcfunction | 21 + .../function/randomizer/head_angle.mcfunction | 31 + .../function/randomizer/left_arm.mcfunction | 8 + .../function/randomizer/left_leg.mcfunction | 45 + .../randomizer/left_leg_angle.mcfunction | 37 + .../function/randomizer/right_arm.mcfunction | 8 + .../function/randomizer/right_leg.mcfunction | 45 + .../randomizer/right_leg_angle.mcfunction | 37 + ...relative_position_aligned_nudge.mcfunction | 23 + .../relative_position_nudge.mcfunction | 32 + .../function/remove_tool_rack.mcfunction | 9 + .../function/repeat/redo.mcfunction | 22 + .../function/repeat/save.mcfunction | 14 + .../repeat/save_redo_state.mcfunction | 20 + .../function/repeat/save_state.mcfunction | 30 + .../repeat/save_undo_state.mcfunction | 20 + .../function/repeat/undo.mcfunction | 22 + .../function/repeat/undo_redo.mcfunction | 52 + .../function/repeat_trigger.mcfunction | 15 + .../function/replace_book.mcfunction | 1 + .../function/sealing/seal.mcfunction | 15 + .../function/sealing/unseal.mcfunction | 15 + .../armor_statues/function/second.mcfunction | 63 + .../function/select_by_uuid.mcfunction | 6 + .../function/set_scale.mcfunction | 8 + .../function/set_visible.mcfunction | 7 + .../function/shrine/create.mcfunction | 13 + .../function/shrine/main.mcfunction | 8 + .../function/shrine/remove.mcfunction | 13 + .../function/storage_in.mcfunction | 48 + .../function/storage_out.mcfunction | 48 + .../function/storage_out_copy.mcfunction | 22 + .../function/summon_temp_marker.mcfunction | 35 + .../summon_temp_marker_helper.mcfunction | 12 + .../armor_statues/function/tick.mcfunction | 13 + .../armor_statues/function/trigger.mcfunction | 126 + .../function/trigger/adjust.mcfunction | 121 + .../function/trigger/align.mcfunction | 128 + .../function/trigger/align_small.mcfunction | 128 + .../function/trigger/copy.mcfunction | 26 + .../function/trigger/facing.mcfunction | 20 + .../function/trigger/flip.mcfunction | 64 + .../function/trigger/last_edit.mcfunction | 9 + .../function/trigger/lock.mcfunction | 23 + .../function/trigger/mirror.mcfunction | 48 + .../function/trigger/paste.mcfunction | 21 + .../function/trigger/pointing.mcfunction | 138 + .../trigger/pointing_small.mcfunction | 138 + .../function/trigger/position.mcfunction | 41 + .../trigger/position_relative.mcfunction | 47 + .../function/trigger/presets.mcfunction | 32 + .../function/trigger/rack.mcfunction | 67 + .../function/trigger/rack_small.mcfunction | 67 + .../function/trigger/random_pose.mcfunction | 28 + .../function/trigger/rotation.mcfunction | 21 + .../function/trigger/scale.mcfunction | 31 + .../function/trigger/scale_helper.mcfunction | 8 + .../function/trigger/settings.mcfunction | 40 + .../function/trigger/slots.mcfunction | 22 + .../function/trigger/tp_helper.mcfunction | 10 + .../function/uninstall.mcfunction | 14 + .../function/uuid_check.mcfunction | 9 + .../item_modifier/adjustment_wand_0.json | 39 + .../item_modifier/adjustment_wand_1.json | 39 + .../item_modifier/adjustment_wand_2.json | 39 + .../item_modifier/pointer_wand.json | 35 + .../item_modifier/storage_out.json | 36 + .../armor_statues/item_modifier/wand.json | 16 + .../loot_table/adjustment_wand.json | 21 + .../data/armor_statues/loot_table/book.json | 3226 +++++++++++++++++ .../loot_table/pointer_wand.json | 21 + 1_21_0/data/armor_statues/predicate/book.json | 37 + .../armor_statues/predicate/bothhands.json | 24 + .../predicate/holding_adjustment.json | 16 + .../predicate/holding_pointer.json | 16 + .../armor_statues/predicate/holding_wand.json | 18 + .../armor_statues/predicate/is_sneaking.json | 10 + .../predicate/item_frame_with_book.json | 26 + .../predicate/mainhand_potion.json | 34 + .../predicate/offhand_potion.json | 34 + .../predicate/random_chance_10.json | 4 + .../predicate/random_chance_15.json | 4 + .../predicate/random_chance_20.json | 4 + .../predicate/random_chance_30.json | 4 + .../predicate/random_chance_40.json | 4 + .../predicate/random_chance_50.json | 4 + .../predicate/random_chance_70.json | 4 + .../predicate/random_chance_85.json | 4 + .../armor_statues/predicate/savedpose.json | 13 + .../predicate/savedpose_mainhand.json | 17 + .../predicate/savedpose_offhand.json | 17 + .../armor_statues/recipe/adjustment_wand.json | 29 + 1_21_0/data/armor_statues/recipe/book.json | 39 + .../armor_statues/recipe/pointer_wand.json | 28 + .../tags/entity_type/item_frames.json | 13 + .../tags/entity_type/selectable.json | 17 + .../data/armor_statues/tags/item/potions.json | 7 + 1_21_0/data/minecraft/tags/function/load.json | 7 + 1_21_0/data/minecraft/tags/function/tick.json | 5 + pack.mcmeta | 9 +- 180 files changed, 9300 insertions(+), 1 deletion(-) create mode 100644 1_21_0/data/armor_statues/advancement/armor_statues.json create mode 100644 1_21_0/data/armor_statues/advancement/attack_interaction.json create mode 100644 1_21_0/data/armor_statues/advancement/crafting.json create mode 100644 1_21_0/data/armor_statues/advancement/enable.json create mode 100644 1_21_0/data/armor_statues/advancement/root.json create mode 100644 1_21_0/data/armor_statues/advancement/use_interaction.json create mode 100644 1_21_0/data/armor_statues/function/3_second.mcfunction create mode 100644 1_21_0/data/armor_statues/function/adjustment_wand.mcfunction create mode 100644 1_21_0/data/armor_statues/function/adjustment_wand_trigger.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/adjustment_craftable_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/adjustment_triggerable_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/book_from_help_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/craft_book_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/fixed_item_frame_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/marker.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/pointer_craftable_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/pointer_triggerable_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/scale.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/unused.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/uuid_lock_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/admin/wands_disabled_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/animate.mcfunction create mode 100644 1_21_0/data/armor_statues/function/animate_time.mcfunction create mode 100644 1_21_0/data/armor_statues/function/book_data.mcfunction create mode 100644 1_21_0/data/armor_statues/function/bugfix.mcfunction create mode 100644 1_21_0/data/armor_statues/function/craft_book.mcfunction create mode 100644 1_21_0/data/armor_statues/function/enable.mcfunction create mode 100644 1_21_0/data/armor_statues/function/give.mcfunction create mode 100644 1_21_0/data/armor_statues/function/give_adjustment_wand.mcfunction create mode 100644 1_21_0/data/armor_statues/function/give_pointer_wand.mcfunction create mode 100644 1_21_0/data/armor_statues/function/help.mcfunction create mode 100644 1_21_0/data/armor_statues/function/help/chat_actionbar_toggle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/help/credits.mcfunction create mode 100644 1_21_0/data/armor_statues/function/help/get_book.mcfunction create mode 100644 1_21_0/data/armor_statues/function/help/main.mcfunction create mode 100644 1_21_0/data/armor_statues/function/if_trigger.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/attack.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/attack_adjust.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/attack_pointer.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/base_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/base_setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/body_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/body_setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/display_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/display_setup_helper.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/head_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/head_setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/interact.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/interact_adjust.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/interact_pointer.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/left_arm_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/left_arm_setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/left_leg_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/left_leg_setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/readjust_interactions.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/readjust_interactions_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/reset_armor_stand.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/reset_interaction.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/right_arm_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/right_arm_setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/right_leg_setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/right_leg_setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/setup.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/setup_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/interactions/tp_helper.mcfunction create mode 100644 1_21_0/data/armor_statues/function/item_frames/fixed.mcfunction create mode 100644 1_21_0/data/armor_statues/function/item_frames/invisible.mcfunction create mode 100644 1_21_0/data/armor_statues/function/item_frames/invisible_old.mcfunction create mode 100644 1_21_0/data/armor_statues/function/item_frames/visible.mcfunction create mode 100644 1_21_0/data/armor_statues/function/load.mcfunction create mode 100644 1_21_0/data/armor_statues/function/locking/lock.mcfunction create mode 100644 1_21_0/data/armor_statues/function/locking/lock_check.mcfunction create mode 100644 1_21_0/data/armor_statues/function/locking/unlock.mcfunction create mode 100644 1_21_0/data/armor_statues/function/locking/uuid_check.mcfunction create mode 100644 1_21_0/data/armor_statues/function/multiply_float.mcfunction create mode 100644 1_21_0/data/armor_statues/function/player_message.mcfunction create mode 100644 1_21_0/data/armor_statues/function/pointer_wand_trigger.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/body.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/body_angle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/head.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/head_angle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/left_arm.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/left_leg.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/left_leg_angle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/right_arm.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/right_leg.mcfunction create mode 100644 1_21_0/data/armor_statues/function/randomizer/right_leg_angle.mcfunction create mode 100644 1_21_0/data/armor_statues/function/relative_position_aligned_nudge.mcfunction create mode 100644 1_21_0/data/armor_statues/function/relative_position_nudge.mcfunction create mode 100644 1_21_0/data/armor_statues/function/remove_tool_rack.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat/redo.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat/save.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat/save_redo_state.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat/save_state.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat/save_undo_state.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat/undo.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat/undo_redo.mcfunction create mode 100644 1_21_0/data/armor_statues/function/repeat_trigger.mcfunction create mode 100644 1_21_0/data/armor_statues/function/replace_book.mcfunction create mode 100644 1_21_0/data/armor_statues/function/sealing/seal.mcfunction create mode 100644 1_21_0/data/armor_statues/function/sealing/unseal.mcfunction create mode 100644 1_21_0/data/armor_statues/function/second.mcfunction create mode 100644 1_21_0/data/armor_statues/function/select_by_uuid.mcfunction create mode 100644 1_21_0/data/armor_statues/function/set_scale.mcfunction create mode 100644 1_21_0/data/armor_statues/function/set_visible.mcfunction create mode 100644 1_21_0/data/armor_statues/function/shrine/create.mcfunction create mode 100644 1_21_0/data/armor_statues/function/shrine/main.mcfunction create mode 100644 1_21_0/data/armor_statues/function/shrine/remove.mcfunction create mode 100644 1_21_0/data/armor_statues/function/storage_in.mcfunction create mode 100644 1_21_0/data/armor_statues/function/storage_out.mcfunction create mode 100644 1_21_0/data/armor_statues/function/storage_out_copy.mcfunction create mode 100644 1_21_0/data/armor_statues/function/summon_temp_marker.mcfunction create mode 100644 1_21_0/data/armor_statues/function/summon_temp_marker_helper.mcfunction create mode 100644 1_21_0/data/armor_statues/function/tick.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/adjust.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/align.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/align_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/copy.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/facing.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/flip.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/last_edit.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/lock.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/mirror.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/paste.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/pointing.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/pointing_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/position.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/position_relative.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/presets.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/rack.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/rack_small.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/random_pose.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/rotation.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/scale.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/scale_helper.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/settings.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/slots.mcfunction create mode 100644 1_21_0/data/armor_statues/function/trigger/tp_helper.mcfunction create mode 100644 1_21_0/data/armor_statues/function/uninstall.mcfunction create mode 100644 1_21_0/data/armor_statues/function/uuid_check.mcfunction create mode 100644 1_21_0/data/armor_statues/item_modifier/adjustment_wand_0.json create mode 100644 1_21_0/data/armor_statues/item_modifier/adjustment_wand_1.json create mode 100644 1_21_0/data/armor_statues/item_modifier/adjustment_wand_2.json create mode 100644 1_21_0/data/armor_statues/item_modifier/pointer_wand.json create mode 100644 1_21_0/data/armor_statues/item_modifier/storage_out.json create mode 100644 1_21_0/data/armor_statues/item_modifier/wand.json create mode 100644 1_21_0/data/armor_statues/loot_table/adjustment_wand.json create mode 100644 1_21_0/data/armor_statues/loot_table/book.json create mode 100644 1_21_0/data/armor_statues/loot_table/pointer_wand.json create mode 100644 1_21_0/data/armor_statues/predicate/book.json create mode 100644 1_21_0/data/armor_statues/predicate/bothhands.json create mode 100644 1_21_0/data/armor_statues/predicate/holding_adjustment.json create mode 100644 1_21_0/data/armor_statues/predicate/holding_pointer.json create mode 100644 1_21_0/data/armor_statues/predicate/holding_wand.json create mode 100644 1_21_0/data/armor_statues/predicate/is_sneaking.json create mode 100644 1_21_0/data/armor_statues/predicate/item_frame_with_book.json create mode 100644 1_21_0/data/armor_statues/predicate/mainhand_potion.json create mode 100644 1_21_0/data/armor_statues/predicate/offhand_potion.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_10.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_15.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_20.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_30.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_40.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_50.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_70.json create mode 100644 1_21_0/data/armor_statues/predicate/random_chance_85.json create mode 100644 1_21_0/data/armor_statues/predicate/savedpose.json create mode 100644 1_21_0/data/armor_statues/predicate/savedpose_mainhand.json create mode 100644 1_21_0/data/armor_statues/predicate/savedpose_offhand.json create mode 100644 1_21_0/data/armor_statues/recipe/adjustment_wand.json create mode 100644 1_21_0/data/armor_statues/recipe/book.json create mode 100644 1_21_0/data/armor_statues/recipe/pointer_wand.json create mode 100644 1_21_0/data/armor_statues/tags/entity_type/item_frames.json create mode 100644 1_21_0/data/armor_statues/tags/entity_type/selectable.json create mode 100644 1_21_0/data/armor_statues/tags/item/potions.json create mode 100644 1_21_0/data/minecraft/tags/function/load.json create mode 100644 1_21_0/data/minecraft/tags/function/tick.json diff --git a/1_21_0/data/armor_statues/advancement/armor_statues.json b/1_21_0/data/armor_statues/advancement/armor_statues.json new file mode 100644 index 0000000..e67732b --- /dev/null +++ b/1_21_0/data/armor_statues/advancement/armor_statues.json @@ -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" + } + } +} diff --git a/1_21_0/data/armor_statues/advancement/attack_interaction.json b/1_21_0/data/armor_statues/advancement/attack_interaction.json new file mode 100644 index 0000000..043a50e --- /dev/null +++ b/1_21_0/data/armor_statues/advancement/attack_interaction.json @@ -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" + } +} \ No newline at end of file diff --git a/1_21_0/data/armor_statues/advancement/crafting.json b/1_21_0/data/armor_statues/advancement/crafting.json new file mode 100644 index 0000000..78142c5 --- /dev/null +++ b/1_21_0/data/armor_statues/advancement/crafting.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "requirements": [ + [ + "impossible" + ] + ] +} \ No newline at end of file diff --git a/1_21_0/data/armor_statues/advancement/enable.json b/1_21_0/data/armor_statues/advancement/enable.json new file mode 100644 index 0000000..9d834a0 --- /dev/null +++ b/1_21_0/data/armor_statues/advancement/enable.json @@ -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" + } +} \ No newline at end of file diff --git a/1_21_0/data/armor_statues/advancement/root.json b/1_21_0/data/armor_statues/advancement/root.json new file mode 100644 index 0000000..78142c5 --- /dev/null +++ b/1_21_0/data/armor_statues/advancement/root.json @@ -0,0 +1,12 @@ +{ + "criteria": { + "impossible": { + "trigger": "minecraft:impossible" + } + }, + "requirements": [ + [ + "impossible" + ] + ] +} \ No newline at end of file diff --git a/1_21_0/data/armor_statues/advancement/use_interaction.json b/1_21_0/data/armor_statues/advancement/use_interaction.json new file mode 100644 index 0000000..22253bd --- /dev/null +++ b/1_21_0/data/armor_statues/advancement/use_interaction.json @@ -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" + } +} \ No newline at end of file diff --git a/1_21_0/data/armor_statues/function/3_second.mcfunction b/1_21_0/data/armor_statues/function/3_second.mcfunction new file mode 100644 index 0000000..e5389db --- /dev/null +++ b/1_21_0/data/armor_statues/function/3_second.mcfunction @@ -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 \ No newline at end of file diff --git a/1_21_0/data/armor_statues/function/adjustment_wand.mcfunction b/1_21_0/data/armor_statues/function/adjustment_wand.mcfunction new file mode 100644 index 0000000..97659a0 --- /dev/null +++ b/1_21_0/data/armor_statues/function/adjustment_wand.mcfunction @@ -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 \ No newline at end of file diff --git a/1_21_0/data/armor_statues/function/adjustment_wand_trigger.mcfunction b/1_21_0/data/armor_statues/function/adjustment_wand_trigger.mcfunction new file mode 100644 index 0000000..3345ea5 --- /dev/null +++ b/1_21_0/data/armor_statues/function/adjustment_wand_trigger.mcfunction @@ -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 \ No newline at end of file diff --git a/1_21_0/data/armor_statues/function/admin.mcfunction b/1_21_0/data/armor_statues/function/admin.mcfunction new file mode 100644 index 0000000..896f224 --- /dev/null +++ b/1_21_0/data/armor_statues/function/admin.mcfunction @@ -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