From 2db8929feb51231ce09c18a69188e2c13cef90e9 Mon Sep 17 00:00:00 2001 From: ItsKestrel <36137577+ItsKestrel@users.noreply.github.com> Date: Sat, 14 Dec 2024 15:25:57 -0600 Subject: [PATCH] init first commit, messy code --- .../advancement/interact_with_customer.json | 16 ++ .../advancement/interact_with_gui.json | 16 ++ .../advancement/menu_add_player.json | 16 ++ .../advancement/menu_start_day.json | 16 ++ .../advancement/place_crafter.json | 22 ++ .../function/check_item.mcfunction | 44 +++ .../function/correct_order.mcfunction | 9 + .../day_manager/day_manager.mcfunction | 15 ++ .../day_manager/failed_day.mcfunction | 8 + .../function/day_manager/start_day.mcfunction | 8 + .../function/day_manager/stop_day.mcfunction | 1 + .../day_manager/succeed_day.mcfunction | 6 + .../events/customer_at_counter.mcfunction | 9 + .../events/customer_at_rally.mcfunction | 4 + .../function/events/event_manager.mcfunction | 1 + .../activate_crafter.mcfunction | 5 + .../break_crafter.mcfunction | 8 + .../crafter_lvl_1.mcfunction | 5 + .../functional_blocks/give_crafter.mcfunction | 1 + .../place_crafter.mcfunction | 18 ++ .../place_crafter_lvl1.mcfunction | 3 + .../rm_marker_progress_bar.mcfunction | 2 + .../sync_crafter_marker.mcfunction | 1 + .../interact_with_customer.mcfunction | 11 + .../function/kill_customer.mcfunction | 1 + .../chaotic_crafting/function/load.mcfunction | 6 + .../function/loop/diamond_spread.mcfunction | 2 + .../function/loop/gold_spread.mcfunction | 2 + .../function/loop/iron_spread.mcfunction | 2 + .../loop/loop_spawn_customer.mcfunction | 6 + .../function/loop/oak_pile_spawn.mcfunction | 3 + .../loop/start_customer_spawning.mcfunction | 2 + .../function/loop/stone_pile_spawn.mcfunction | 3 + .../function/menus/menu_misc.mcfunction | 22 ++ .../function/open_seat.mcfunction | 9 + .../function/order_delivered.mcfunction | 4 + .../ore_spread/diamond_spread.mcfunction | 21 ++ .../ore_spread/gold_spread.mcfunction | 21 ++ .../ore_spread/iron_spread.mcfunction | 22 ++ .../ore_spread/mined_diamond_ore.mcfunction | 3 + .../ore_spread/mined_gold_ore.mcfunction | 3 + .../ore_spread/mined_iron_ore.mcfunction | 3 + .../patience/patience_manager.mcfunction | 1 + .../function/patience_expired.mcfunction | 6 + .../function/players/new_player.mcfunction | 7 + .../pre_day/merchant/add_trade.mcfunction | 1 + .../merchant/debug_loot_item.mcfunction | 1 + .../pre_day/pre_day_manager.mcfunction | 5 + .../pre_day/spawn_merchant.mcfunction | 13 + .../function/recieved_item.mcfunction | 3 + .../register_correct_order.mcfunction | 4 + .../function/reset.mcfunction | 25 ++ .../function/scoring.mcfunction | 0 .../function/seats/seat_1.mcfunction | 10 + .../function/seats/seat_manager.mcfunction | 3 + .../function/setup/set_anchor.mcfunction | 7 + .../setup/set_customer_order_pos.mcfunction | 12 + .../setup/set_customer_rally_point.mcfunction | 2 + .../setup/set_customer_spawn_pos.mcfunction | 2 + .../setup/set_merchant_spawn.mcfunction | 1 + .../setup/set_stone_pile_pos.mcfunction | 2 + .../setup/set_trade_data_marker.mcfunction | 1 + .../setup/set_upgrade_data_marker.mcfunction | 1 + .../setup/set_wood_pile_pos.mcfunction | 2 + .../setup/setup_scoreboards.mcfunction | 135 ++++++++++ .../setup/spawn_workshop_stage1.mcfunction | 1 + .../function/spawn_animals.mcfunction | 4 + .../function/spawn_customer.mcfunction | 10 + .../spawn_customer/add_trade.mcfunction | 1 + .../spawn_customer/spawn_customer.mcfunction | 11 + .../spawn_customer_manager.mcfunction | 34 +++ .../spawn_customer_new.mcfunction | 16 ++ .../spawn_customer/spawn_seat_1.mcfunction | 12 + .../spawn_customer/spawn_seat_2.mcfunction | 2 + .../spawn_customer/spawn_seat_3.mcfunction | 2 + .../spawn_customer/spawn_seat_4.mcfunction | 2 + .../spawn_customer/spawn_seat_5.mcfunction | 2 + .../spawn_customer/spawn_seat_6.mcfunction | 2 + .../function/spawn_customer/tick.mcfunction | 1 + .../function/start_game.mcfunction | 2 + .../function/take_order.mcfunction | 9 + .../chaotic_crafting/function/tick.mcfunction | 25 ++ .../function/tick/spawn_crafter.mcfunction | 1 + .../function/util/block_tracker.mcfunction | 4 + .../function/util/center_entity.mcfunction | 20 ++ .../function/util/debug/debug_tick.mcfunction | 6 + .../function/util/debug/ray.mcfunction | 5 + .../util/debug/test_spawn_customer.mcfunction | 3 + .../util/find_crafter/crafter_ray.mcfunction | 8 + .../util/find_crafter/hit_crafter.mcfunction | 6 + .../find_crafter/start_crafter_ray.mcfunction | 9 + .../function/util/find_customer.mcfunction | 17 ++ .../util/find_looking_armor_stand.mcfunction | 9 + .../util/find_looking_clear.mcfunction | 1 + .../function/util/find_looking_int.mcfunction | 7 + .../util/find_looking_marker.mcfunction | 9 + .../find_looking_wandering_trader.mcfunction | 9 + .../function/util/give_config_book.mcfunction | 1 + .../util/gui/animations/bob.mcfunction | 0 .../util/gui/animations/bob/a/play.mcfunction | 5 + .../gui/animations/bob/a/play_loop.mcfunction | 5 + .../bob/a/play_loop_single.mcfunction | 5 + .../animations/bob/k/check_loop.mcfunction | 3 + .../animations/bob/k/check_pause_0.mcfunction | 3 + .../animations/bob/k/check_pause_1.mcfunction | 3 + .../bob/k/check_pause_10.mcfunction | 3 + .../bob/k/check_pause_11.mcfunction | 3 + .../bob/k/check_pause_12.mcfunction | 3 + .../bob/k/check_pause_13.mcfunction | 3 + .../bob/k/check_pause_14.mcfunction | 3 + .../bob/k/check_pause_15.mcfunction | 3 + .../bob/k/check_pause_16.mcfunction | 3 + .../bob/k/check_pause_17.mcfunction | 3 + .../bob/k/check_pause_18.mcfunction | 3 + .../bob/k/check_pause_19.mcfunction | 3 + .../animations/bob/k/check_pause_2.mcfunction | 3 + .../animations/bob/k/check_pause_3.mcfunction | 3 + .../animations/bob/k/check_pause_4.mcfunction | 3 + .../animations/bob/k/check_pause_5.mcfunction | 3 + .../animations/bob/k/check_pause_6.mcfunction | 3 + .../animations/bob/k/check_pause_7.mcfunction | 3 + .../animations/bob/k/check_pause_8.mcfunction | 3 + .../animations/bob/k/check_pause_9.mcfunction | 3 + .../animations/bob/k/keyframe_0.mcfunction | 4 + .../animations/bob/k/keyframe_1.mcfunction | 4 + .../animations/bob/k/keyframe_10.mcfunction | 4 + .../animations/bob/k/keyframe_11.mcfunction | 4 + .../animations/bob/k/keyframe_12.mcfunction | 4 + .../animations/bob/k/keyframe_13.mcfunction | 4 + .../animations/bob/k/keyframe_14.mcfunction | 4 + .../animations/bob/k/keyframe_15.mcfunction | 4 + .../animations/bob/k/keyframe_16.mcfunction | 4 + .../animations/bob/k/keyframe_17.mcfunction | 4 + .../animations/bob/k/keyframe_18.mcfunction | 4 + .../animations/bob/k/keyframe_19.mcfunction | 4 + .../animations/bob/k/keyframe_2.mcfunction | 4 + .../animations/bob/k/keyframe_20.mcfunction | 4 + .../animations/bob/k/keyframe_3.mcfunction | 4 + .../animations/bob/k/keyframe_4.mcfunction | 4 + .../animations/bob/k/keyframe_5.mcfunction | 4 + .../animations/bob/k/keyframe_6.mcfunction | 4 + .../animations/bob/k/keyframe_7.mcfunction | 4 + .../animations/bob/k/keyframe_8.mcfunction | 4 + .../animations/bob/k/keyframe_9.mcfunction | 4 + .../function/util/gui/close_gui.mcfunction | 1 + .../util/gui/functions/add_player.mcfunction | 2 + .../util/gui/functions/start_day.mcfunction | 2 + .../gui/interaction/add_player.mcfunction | 2 + .../player_menu_item_click.mcfunction | 2 + .../util/gui/interaction/start_day.mcfunction | 2 + .../util/gui/menu_item_new_player.mcfunction | 2 + .../gui/menu_item_new_player_alt.mcfunction | 8 + .../util/gui/menu_item_start_day.mcfunction | 2 + .../gui/menu_item_start_day_alt.mcfunction | 10 + .../util/kill_all_customers.mcfunction | 2 + .../ore_spread/create_diamond_node.mcfunction | 4 + .../ore_spread/create_gold_node.mcfunction | 4 + .../ore_spread/create_iron_node.mcfunction | 4 + .../give_progress_bar.mcfunction | 7 + .../patience_bars/update_patience.mcfunction | 46 ++++ .../give_progress_bar.mcfunction | 7 + .../update_progress_bar.mcfunction | 46 ++++ .../rm_marker/check_hit_entity.mcfunction | 3 + .../util/rm_marker/hit_entity.mcfunction | 7 + .../function/util/rm_marker/ray.mcfunction | 9 + .../util/rm_marker/start_ray.mcfunction | 13 + .../util/spawn_merchant_deprecated.mcfunction | 6 + .../util/uninstall/uninstall.mcfunction | 11 + .../function/wrong_order.mcfunction | 8 + .../loot_table/menu_day_1.json | 253 ++++++++++++++++++ .../loot_table/merchant_day_1.json | 33 +++ .../chaotic_crafting/predicate/10_chance.json | 4 + .../chaotic_crafting/predicate/20_chance.json | 4 + .../chaotic_crafting/predicate/25_chance.json | 4 + .../chaotic_crafting/predicate/33_chance.json | 4 + .../chaotic_crafting/predicate/50_chance.json | 4 + .../chaotic_crafting/predicate/66_chance.json | 4 + .../predicate/near_iron_ore.json | 13 + .../predicate/patience_expired.json | 10 + .../predicate/progress_bar_expired.json | 10 + .../predicate/random_new_marker.json | 4 + .../predicate/random_spread.json | 4 + .../structure/acacia_log_pile.nbt | Bin 0 -> 331 bytes .../structure/birch_log_pile.nbt | Bin 0 -> 330 bytes .../structure/cherry_log_pile.nbt | Bin 0 -> 282 bytes .../structure/mangrove_log_pile.nbt | Bin 0 -> 283 bytes .../structure/oak_log_pile.nbt | Bin 0 -> 339 bytes .../structure/oak_log_pile_alt.nbt | Bin 0 -> 328 bytes data/chaotic_crafting/structure/stage1_v1.nbt | Bin 0 -> 313118 bytes .../structure/stage_1_iron_only.nbt | Bin 0 -> 259554 bytes .../structure/stage_1_iron_only2.nbt | Bin 0 -> 259554 bytes .../chaotic_crafting/structure/stone_pile.nbt | Bin 0 -> 359 bytes data/chaotic_crafting/tags/block/blocks.json | 6 + data/chaotic_crafting/tags/block/crafter.json | 6 + .../tags/entity_type/armor_stand.json | 6 + .../tags/entity_type/cow.json | 6 + data/minecraft/loot_table/blocks/crafter.json | 27 ++ data/minecraft/tags/function/load.json | 6 + data/minecraft/tags/function/tick.json | 5 + pack.mcmeta | 6 + spyglass.json | 5 + 201 files changed, 1671 insertions(+) create mode 100644 data/chaotic_crafting/advancement/interact_with_customer.json create mode 100644 data/chaotic_crafting/advancement/interact_with_gui.json create mode 100644 data/chaotic_crafting/advancement/menu_add_player.json create mode 100644 data/chaotic_crafting/advancement/menu_start_day.json create mode 100644 data/chaotic_crafting/advancement/place_crafter.json create mode 100644 data/chaotic_crafting/function/check_item.mcfunction create mode 100644 data/chaotic_crafting/function/correct_order.mcfunction create mode 100644 data/chaotic_crafting/function/day_manager/day_manager.mcfunction create mode 100644 data/chaotic_crafting/function/day_manager/failed_day.mcfunction create mode 100644 data/chaotic_crafting/function/day_manager/start_day.mcfunction create mode 100644 data/chaotic_crafting/function/day_manager/stop_day.mcfunction create mode 100644 data/chaotic_crafting/function/day_manager/succeed_day.mcfunction create mode 100644 data/chaotic_crafting/function/events/customer_at_counter.mcfunction create mode 100644 data/chaotic_crafting/function/events/customer_at_rally.mcfunction create mode 100644 data/chaotic_crafting/function/events/event_manager.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/activate_crafter.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/break_crafter.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/crafter_lvl_1.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/give_crafter.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/place_crafter.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/place_crafter_lvl1.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/rm_marker_progress_bar.mcfunction create mode 100644 data/chaotic_crafting/function/functional_blocks/sync_crafter_marker.mcfunction create mode 100644 data/chaotic_crafting/function/interactions/interact_with_customer.mcfunction create mode 100644 data/chaotic_crafting/function/kill_customer.mcfunction create mode 100644 data/chaotic_crafting/function/load.mcfunction create mode 100644 data/chaotic_crafting/function/loop/diamond_spread.mcfunction create mode 100644 data/chaotic_crafting/function/loop/gold_spread.mcfunction create mode 100644 data/chaotic_crafting/function/loop/iron_spread.mcfunction create mode 100644 data/chaotic_crafting/function/loop/loop_spawn_customer.mcfunction create mode 100644 data/chaotic_crafting/function/loop/oak_pile_spawn.mcfunction create mode 100644 data/chaotic_crafting/function/loop/start_customer_spawning.mcfunction create mode 100644 data/chaotic_crafting/function/loop/stone_pile_spawn.mcfunction create mode 100644 data/chaotic_crafting/function/menus/menu_misc.mcfunction create mode 100644 data/chaotic_crafting/function/open_seat.mcfunction create mode 100644 data/chaotic_crafting/function/order_delivered.mcfunction create mode 100644 data/chaotic_crafting/function/ore_spread/diamond_spread.mcfunction create mode 100644 data/chaotic_crafting/function/ore_spread/gold_spread.mcfunction create mode 100644 data/chaotic_crafting/function/ore_spread/iron_spread.mcfunction create mode 100644 data/chaotic_crafting/function/ore_spread/mined_diamond_ore.mcfunction create mode 100644 data/chaotic_crafting/function/ore_spread/mined_gold_ore.mcfunction create mode 100644 data/chaotic_crafting/function/ore_spread/mined_iron_ore.mcfunction create mode 100644 data/chaotic_crafting/function/patience/patience_manager.mcfunction create mode 100644 data/chaotic_crafting/function/patience_expired.mcfunction create mode 100644 data/chaotic_crafting/function/players/new_player.mcfunction create mode 100644 data/chaotic_crafting/function/pre_day/merchant/add_trade.mcfunction create mode 100644 data/chaotic_crafting/function/pre_day/merchant/debug_loot_item.mcfunction create mode 100644 data/chaotic_crafting/function/pre_day/pre_day_manager.mcfunction create mode 100644 data/chaotic_crafting/function/pre_day/spawn_merchant.mcfunction create mode 100644 data/chaotic_crafting/function/recieved_item.mcfunction create mode 100644 data/chaotic_crafting/function/register_correct_order.mcfunction create mode 100644 data/chaotic_crafting/function/reset.mcfunction create mode 100644 data/chaotic_crafting/function/scoring.mcfunction create mode 100644 data/chaotic_crafting/function/seats/seat_1.mcfunction create mode 100644 data/chaotic_crafting/function/seats/seat_manager.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_anchor.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_customer_order_pos.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_customer_rally_point.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_customer_spawn_pos.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_merchant_spawn.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_stone_pile_pos.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_trade_data_marker.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_upgrade_data_marker.mcfunction create mode 100644 data/chaotic_crafting/function/setup/set_wood_pile_pos.mcfunction create mode 100644 data/chaotic_crafting/function/setup/setup_scoreboards.mcfunction create mode 100644 data/chaotic_crafting/function/setup/spawn_workshop_stage1.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_animals.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/add_trade.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_customer.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_customer_manager.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_customer_new.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_seat_1.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_seat_2.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_seat_3.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_seat_4.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_seat_5.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/spawn_seat_6.mcfunction create mode 100644 data/chaotic_crafting/function/spawn_customer/tick.mcfunction create mode 100644 data/chaotic_crafting/function/start_game.mcfunction create mode 100644 data/chaotic_crafting/function/take_order.mcfunction create mode 100644 data/chaotic_crafting/function/tick.mcfunction create mode 100644 data/chaotic_crafting/function/tick/spawn_crafter.mcfunction create mode 100644 data/chaotic_crafting/function/util/block_tracker.mcfunction create mode 100644 data/chaotic_crafting/function/util/center_entity.mcfunction create mode 100644 data/chaotic_crafting/function/util/debug/debug_tick.mcfunction create mode 100644 data/chaotic_crafting/function/util/debug/ray.mcfunction create mode 100644 data/chaotic_crafting/function/util/debug/test_spawn_customer.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_crafter/crafter_ray.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_crafter/hit_crafter.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_crafter/start_crafter_ray.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_customer.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_looking_armor_stand.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_looking_clear.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_looking_int.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_looking_marker.mcfunction create mode 100644 data/chaotic_crafting/function/util/find_looking_wandering_trader.mcfunction create mode 100644 data/chaotic_crafting/function/util/give_config_book.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/a/play.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop_single.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_loop.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_0.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_1.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_10.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_11.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_12.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_13.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_14.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_15.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_16.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_17.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_18.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_19.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_2.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_3.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_4.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_5.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_6.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_7.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_8.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_9.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_0.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_1.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_10.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_11.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_12.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_13.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_14.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_15.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_16.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_17.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_18.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_19.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_2.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_20.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_3.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_4.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_5.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_6.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_7.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_8.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_9.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/close_gui.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/functions/add_player.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/functions/start_day.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/interaction/add_player.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/interaction/player_menu_item_click.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/interaction/start_day.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/menu_item_new_player.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/menu_item_new_player_alt.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/menu_item_start_day.mcfunction create mode 100644 data/chaotic_crafting/function/util/gui/menu_item_start_day_alt.mcfunction create mode 100644 data/chaotic_crafting/function/util/kill_all_customers.mcfunction create mode 100644 data/chaotic_crafting/function/util/ore_spread/create_diamond_node.mcfunction create mode 100644 data/chaotic_crafting/function/util/ore_spread/create_gold_node.mcfunction create mode 100644 data/chaotic_crafting/function/util/ore_spread/create_iron_node.mcfunction create mode 100644 data/chaotic_crafting/function/util/patience_bars/give_progress_bar.mcfunction create mode 100644 data/chaotic_crafting/function/util/patience_bars/update_patience.mcfunction create mode 100644 data/chaotic_crafting/function/util/progress_bars/give_progress_bar.mcfunction create mode 100644 data/chaotic_crafting/function/util/progress_bars/update_progress_bar.mcfunction create mode 100644 data/chaotic_crafting/function/util/rm_marker/check_hit_entity.mcfunction create mode 100644 data/chaotic_crafting/function/util/rm_marker/hit_entity.mcfunction create mode 100644 data/chaotic_crafting/function/util/rm_marker/ray.mcfunction create mode 100644 data/chaotic_crafting/function/util/rm_marker/start_ray.mcfunction create mode 100644 data/chaotic_crafting/function/util/spawn_merchant_deprecated.mcfunction create mode 100644 data/chaotic_crafting/function/util/uninstall/uninstall.mcfunction create mode 100644 data/chaotic_crafting/function/wrong_order.mcfunction create mode 100644 data/chaotic_crafting/loot_table/menu_day_1.json create mode 100644 data/chaotic_crafting/loot_table/merchant_day_1.json create mode 100644 data/chaotic_crafting/predicate/10_chance.json create mode 100644 data/chaotic_crafting/predicate/20_chance.json create mode 100644 data/chaotic_crafting/predicate/25_chance.json create mode 100644 data/chaotic_crafting/predicate/33_chance.json create mode 100644 data/chaotic_crafting/predicate/50_chance.json create mode 100644 data/chaotic_crafting/predicate/66_chance.json create mode 100644 data/chaotic_crafting/predicate/near_iron_ore.json create mode 100644 data/chaotic_crafting/predicate/patience_expired.json create mode 100644 data/chaotic_crafting/predicate/progress_bar_expired.json create mode 100644 data/chaotic_crafting/predicate/random_new_marker.json create mode 100644 data/chaotic_crafting/predicate/random_spread.json create mode 100644 data/chaotic_crafting/structure/acacia_log_pile.nbt create mode 100644 data/chaotic_crafting/structure/birch_log_pile.nbt create mode 100644 data/chaotic_crafting/structure/cherry_log_pile.nbt create mode 100644 data/chaotic_crafting/structure/mangrove_log_pile.nbt create mode 100644 data/chaotic_crafting/structure/oak_log_pile.nbt create mode 100644 data/chaotic_crafting/structure/oak_log_pile_alt.nbt create mode 100644 data/chaotic_crafting/structure/stage1_v1.nbt create mode 100644 data/chaotic_crafting/structure/stage_1_iron_only.nbt create mode 100644 data/chaotic_crafting/structure/stage_1_iron_only2.nbt create mode 100644 data/chaotic_crafting/structure/stone_pile.nbt create mode 100644 data/chaotic_crafting/tags/block/blocks.json create mode 100644 data/chaotic_crafting/tags/block/crafter.json create mode 100644 data/chaotic_crafting/tags/entity_type/armor_stand.json create mode 100644 data/chaotic_crafting/tags/entity_type/cow.json create mode 100644 data/minecraft/loot_table/blocks/crafter.json create mode 100644 data/minecraft/tags/function/load.json create mode 100644 data/minecraft/tags/function/tick.json create mode 100644 pack.mcmeta create mode 100644 spyglass.json diff --git a/data/chaotic_crafting/advancement/interact_with_customer.json b/data/chaotic_crafting/advancement/interact_with_customer.json new file mode 100644 index 0000000..dbbb50f --- /dev/null +++ b/data/chaotic_crafting/advancement/interact_with_customer.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "example": { + "trigger": "minecraft:player_interacted_with_entity", + "conditions": { + "entity": { + "type": "minecraft:wandering_trader", + "nbt": "{Tags:[\"customer\"]}" + } + } + } + }, + "rewards": { + "function": "chaotic_crafting:interactions/interact_with_customer" + } + } \ No newline at end of file diff --git a/data/chaotic_crafting/advancement/interact_with_gui.json b/data/chaotic_crafting/advancement/interact_with_gui.json new file mode 100644 index 0000000..b60c9e1 --- /dev/null +++ b/data/chaotic_crafting/advancement/interact_with_gui.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "requirement": { + "trigger": "player_interacted_with_entity", + "conditions": { + "entity": { + "type": "interaction", + "nbt": "{Tags:[menu_item]}" + } + } + } + }, + "rewards": { + "function": "chaotic_crafting:util/gui/interaction/player_menu_item_click" + } +} \ No newline at end of file diff --git a/data/chaotic_crafting/advancement/menu_add_player.json b/data/chaotic_crafting/advancement/menu_add_player.json new file mode 100644 index 0000000..8951401 --- /dev/null +++ b/data/chaotic_crafting/advancement/menu_add_player.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "requirement": { + "trigger": "player_interacted_with_entity", + "conditions": { + "entity": { + "type": "interaction", + "nbt": "{Tags:[menu_add_player]}" + } + } + } + }, + "rewards": { + "function": "chaotic_crafting:util/gui/interaction/add_player" + } +} \ No newline at end of file diff --git a/data/chaotic_crafting/advancement/menu_start_day.json b/data/chaotic_crafting/advancement/menu_start_day.json new file mode 100644 index 0000000..8038b63 --- /dev/null +++ b/data/chaotic_crafting/advancement/menu_start_day.json @@ -0,0 +1,16 @@ +{ + "criteria": { + "requirement": { + "trigger": "player_interacted_with_entity", + "conditions": { + "entity": { + "type": "interaction", + "nbt": "{Tags:[menu_start_day]}" + } + } + } + }, + "rewards": { + "function": "chaotic_crafting:util/gui/interaction/start_day" + } +} \ No newline at end of file diff --git a/data/chaotic_crafting/advancement/place_crafter.json b/data/chaotic_crafting/advancement/place_crafter.json new file mode 100644 index 0000000..e4249d0 --- /dev/null +++ b/data/chaotic_crafting/advancement/place_crafter.json @@ -0,0 +1,22 @@ +{ + "criteria": { + "example": { + "trigger": "minecraft:placed_block", + "conditions": { + "location": [ + { + "condition": "location_check", + "predicate": { + "block": { + "blocks": "crafter" + } + } + } + ] + } + } + }, + "rewards": { + "function": "chaotic_crafting:functional_blocks/place_crafter" + } + } \ No newline at end of file diff --git a/data/chaotic_crafting/function/check_item.mcfunction b/data/chaotic_crafting/function/check_item.mcfunction new file mode 100644 index 0000000..a252075 --- /dev/null +++ b/data/chaotic_crafting/function/check_item.mcfunction @@ -0,0 +1,44 @@ +tag @s add delivering_item +tag @s add incorrect_item + +#tag @e[distance=..1,type=minecraft:wandering_trader,tag=customer] add recieved_item +execute as @s at @s run tag @e[type=wandering_trader,distance=..3] add find_looking.candidate + +execute as @s at @s run function chaotic_crafting:util/find_customer + +tag @e remove find_looking.candidate + +execute unless entity @s[nbt=!{SelectedItem:{}}] run execute as @e[distance=..3,type=minecraft:wandering_trader,tag=customer,tag=find_looking.customer,limit=1] run tag @s add recieved_item + +execute if entity @s[nbt=!{SelectedItem:{}}] run tag @s remove delivering_item +execute if entity @s[nbt=!{SelectedItem:{}}] run tag @s remove incorrect_item + + +execute if entity @s[nbt={SelectedItem:{id:"minecraft:wooden_pickaxe"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:wooden_pickaxe"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:wooden_shovel"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:wooden_shovel"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:wooden_axe"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:wooden_axe"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:wooden_hoe"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:wooden_hoe"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:wooden_sword"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:wooden_sword"},{}]}] run function chaotic_crafting:register_correct_order + +execute if entity @s[nbt={SelectedItem:{id:"minecraft:stone_pickaxe"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:stone_pickaxe"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:stone_shovel"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:stone_shovel"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:stone_axe"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:stone_axe"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:stone_hoe"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:stone_hoe"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:stone_sword"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:stone_sword"},{}]}] run function chaotic_crafting:register_correct_order + +execute if entity @s[nbt={SelectedItem:{id:"minecraft:oak_boat"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:oak_boat"},{}]}] run function chaotic_crafting:register_correct_order +execute if entity @s[nbt={SelectedItem:{id:"minecraft:ladder"}}] run execute as @e[tag=recieved_item,nbt={HandItems:[{id:"minecraft:ladder"},{}]}] run function chaotic_crafting:register_correct_order + + +execute if entity @s[tag=incorrect_item] run execute as @e[tag=recieved_item] run function chaotic_crafting:wrong_order + +execute if entity @s[tag=delivering_item] run item replace entity @s[tag=delivering_item] weapon.mainhand with minecraft:air + +execute as @e[tag=recieved_item] run function chaotic_crafting:recieved_item + +advancement revoke @s only chaotic_crafting:interact_with_customer + +tag @s remove correct_item +tag @s remove incorrect_item +tag @s remove delivering_item + diff --git a/data/chaotic_crafting/function/correct_order.mcfunction b/data/chaotic_crafting/function/correct_order.mcfunction new file mode 100644 index 0000000..b585f6a --- /dev/null +++ b/data/chaotic_crafting/function/correct_order.mcfunction @@ -0,0 +1,9 @@ +tellraw @a {"text": "Order Delivered","color": "green"} +playsound minecraft:entity.wandering_trader.trade player @p +scoreboard players add $correct_orders cc_points 1 +execute if block 22 67 6 minecraft:jukebox{IsPlaying:1b} run scoreboard players add $music_bonus cc_points 1 + +execute as @s run function chaotic_crafting:open_seat +scoreboard players add $customers_served cc_customers 1 + +execute on passengers run kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/day_manager/day_manager.mcfunction b/data/chaotic_crafting/function/day_manager/day_manager.mcfunction new file mode 100644 index 0000000..4041c07 --- /dev/null +++ b/data/chaotic_crafting/function/day_manager/day_manager.mcfunction @@ -0,0 +1,15 @@ +execute if score $day_timer cc_timer < $day_length cc_settings run scoreboard players add $day_timer cc_timer 1 + +#execute if score $day_timer cc_timer = $day_length cc_settings run scoreboard players set $day_active cc_settings 0 +#execute if score $day_timer cc_timer = $day_length cc_settings run scoreboard players set $day_timer cc_timer 0 + +#Update Scoreboard +scoreboard players operation FailedOrders cc_game = $incorrect_orders cc_points +scoreboard players operation Points cc_game = $correct_orders cc_points + + +## Check for end of day +execute if score $customers_served cc_customers = $customer_count cc_settings run function chaotic_crafting:day_manager/succeed_day + +execute if score $patience_expired cc_customers matches 1 run function chaotic_crafting:day_manager/failed_day +execute if score $incorrect_orders cc_points matches 3 run function chaotic_crafting:day_manager/failed_day \ No newline at end of file diff --git a/data/chaotic_crafting/function/day_manager/failed_day.mcfunction b/data/chaotic_crafting/function/day_manager/failed_day.mcfunction new file mode 100644 index 0000000..70061b6 --- /dev/null +++ b/data/chaotic_crafting/function/day_manager/failed_day.mcfunction @@ -0,0 +1,8 @@ +title @a title {"text": "Day Failed","color": "red"} + +scoreboard players set $day_active cc_settings 0 +scoreboard players set $day_timer cc_timer 0 + +function chaotic_crafting:util/kill_all_customers + +function chaotic_crafting:reset \ No newline at end of file diff --git a/data/chaotic_crafting/function/day_manager/start_day.mcfunction b/data/chaotic_crafting/function/day_manager/start_day.mcfunction new file mode 100644 index 0000000..f804936 --- /dev/null +++ b/data/chaotic_crafting/function/day_manager/start_day.mcfunction @@ -0,0 +1,8 @@ +function chaotic_crafting:util/gui/close_gui + +scoreboard players set $day_active cc_settings 1 + +function chaotic_crafting:loop/start_customer_spawning + +execute if score $oak_wood_pile_spawn cc_settings matches 1 run function chaotic_crafting:loop/oak_pile_spawn +execute if score $stone_pile_spawn cc_settings matches 1 run function chaotic_crafting:loop/stone_pile_spawn \ No newline at end of file diff --git a/data/chaotic_crafting/function/day_manager/stop_day.mcfunction b/data/chaotic_crafting/function/day_manager/stop_day.mcfunction new file mode 100644 index 0000000..74e1e27 --- /dev/null +++ b/data/chaotic_crafting/function/day_manager/stop_day.mcfunction @@ -0,0 +1 @@ +scoreboard players set $day_active cc_settings 0 \ No newline at end of file diff --git a/data/chaotic_crafting/function/day_manager/succeed_day.mcfunction b/data/chaotic_crafting/function/day_manager/succeed_day.mcfunction new file mode 100644 index 0000000..bd38063 --- /dev/null +++ b/data/chaotic_crafting/function/day_manager/succeed_day.mcfunction @@ -0,0 +1,6 @@ +title @a title {"text": "Day Completed","color": "green"} + +scoreboard players set $day_active cc_settings 0 +scoreboard players set $day_timer cc_timer 0 + +scoreboard players add $day cc_settings 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/events/customer_at_counter.mcfunction b/data/chaotic_crafting/function/events/customer_at_counter.mcfunction new file mode 100644 index 0000000..935b9e2 --- /dev/null +++ b/data/chaotic_crafting/function/events/customer_at_counter.mcfunction @@ -0,0 +1,9 @@ +execute as @e[type=marker,tag=cc_seat_1] at @s run execute as @e[type=wandering_trader,tag=customer,tag=seat_1,tag=!at_counter,tag=rally_patience,distance=..3] run execute on passengers run scoreboard players operation @s cc_patience = $ordering_patience cc_settings +execute as @e[type=marker,tag=cc_seat_1] at @s run tag @e[type=wandering_trader,tag=customer,tag=seat_1,tag=!at_counter,distance=..3] add at_counter +execute as @e[type=wandering_trader,tag=at_counter] run tag @s remove at_rally + +execute if score $bell_rang cc_customers matches 0 run playsound block.bell.use player @a +scoreboard players set $bell_rang cc_customers 1 + +tag @e[type=wandering_trader,tag=customer,tag=at_counter,tag=!ordering_patience] add ordering_patience +tag @e[type=wandering_trader,tag=customer,tag=at_counter,tag=ordering_patience] remove rally_patience \ No newline at end of file diff --git a/data/chaotic_crafting/function/events/customer_at_rally.mcfunction b/data/chaotic_crafting/function/events/customer_at_rally.mcfunction new file mode 100644 index 0000000..53443e5 --- /dev/null +++ b/data/chaotic_crafting/function/events/customer_at_rally.mcfunction @@ -0,0 +1,4 @@ +execute as @e[type=marker,tag=cc_customer_rally] at @s run execute as @e[type=wandering_trader,tag=customer,tag=!at_rally,tag=!waiting_patience,distance=..3] run execute on passengers run scoreboard players operation @s cc_patience = $rally_patience cc_settings +execute as @e[type=marker,tag=cc_customer_rally] at @s run tag @e[type=wandering_trader,tag=customer,tag=!at_rally,distance=..3] add at_rally + +tag @e[type=wandering_trader,tag=customer,tag=at_rally,tag=!ordering_patience,tag=!waiting_patience] add rally_patience \ No newline at end of file diff --git a/data/chaotic_crafting/function/events/event_manager.mcfunction b/data/chaotic_crafting/function/events/event_manager.mcfunction new file mode 100644 index 0000000..cc90029 --- /dev/null +++ b/data/chaotic_crafting/function/events/event_manager.mcfunction @@ -0,0 +1 @@ +function chaotic_crafting:events/customer_at_rally \ No newline at end of file diff --git a/data/chaotic_crafting/function/functional_blocks/activate_crafter.mcfunction b/data/chaotic_crafting/function/functional_blocks/activate_crafter.mcfunction new file mode 100644 index 0000000..89d20c1 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/activate_crafter.mcfunction @@ -0,0 +1,5 @@ +tellraw @a {"text": "Triggering Crafters"} +clone ~ ~-1 ~ ~ ~-1 ~ ~ -64 ~ replace +setblock ~ ~-1 ~ redstone_block +clone ~ -64 ~ ~ -64 ~ ~ ~-1 ~ replace +setblock ~ -64 ~ bedrock \ No newline at end of file diff --git a/data/chaotic_crafting/function/functional_blocks/break_crafter.mcfunction b/data/chaotic_crafting/function/functional_blocks/break_crafter.mcfunction new file mode 100644 index 0000000..f9cdc26 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/break_crafter.mcfunction @@ -0,0 +1,8 @@ +tellraw @s {"text": "Crafter Broken."} +scoreboard players set @s cc_crafter_broken 0 + +#Marker +execute as @e[type=marker,tag=crafter_marker] run execute at @s run execute unless block ~ ~ ~ crafter run function chaotic_crafting:functional_blocks/rm_marker_progress_bar + +#Armor Stand +execute as @e[type=armor_stand,tag=crafter_marker] run execute at @s run execute unless block ~ ~ ~ crafter run function chaotic_crafting:functional_blocks/rm_marker_progress_bar \ No newline at end of file diff --git a/data/chaotic_crafting/function/functional_blocks/crafter_lvl_1.mcfunction b/data/chaotic_crafting/function/functional_blocks/crafter_lvl_1.mcfunction new file mode 100644 index 0000000..89d20c1 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/crafter_lvl_1.mcfunction @@ -0,0 +1,5 @@ +tellraw @a {"text": "Triggering Crafters"} +clone ~ ~-1 ~ ~ ~-1 ~ ~ -64 ~ replace +setblock ~ ~-1 ~ redstone_block +clone ~ -64 ~ ~ -64 ~ ~ ~-1 ~ replace +setblock ~ -64 ~ bedrock \ No newline at end of file diff --git a/data/chaotic_crafting/function/functional_blocks/give_crafter.mcfunction b/data/chaotic_crafting/function/functional_blocks/give_crafter.mcfunction new file mode 100644 index 0000000..6740bf6 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/give_crafter.mcfunction @@ -0,0 +1 @@ +give @s armor_stand[custom_name='{"text": "Crafter: Level 1"}',custom_data={place_crafter:true},entity_data={id:"minecraft:armor_stand",Tags:["crafter_lvl1"],Invisible:1b,Invulnerable:1b,NoGravity:1b,Marker:1b},custom_model_data=1] \ No newline at end of file diff --git a/data/chaotic_crafting/function/functional_blocks/place_crafter.mcfunction b/data/chaotic_crafting/function/functional_blocks/place_crafter.mcfunction new file mode 100644 index 0000000..f9ed790 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/place_crafter.mcfunction @@ -0,0 +1,18 @@ +tellraw @s {"text": "Placed Crafter."} +function chaotic_crafting:util/find_crafter/start_crafter_ray + +#Marker +#execute as @e[type=marker,tag=new_crafter] run function chaotic_crafting:functional_blocks/sync_crafter_marker +execute as @e[type=marker,tag=new_crafter] run function chaotic_crafting:util/center_entity +#execute as @e[type=marker,tag=new_crafter] at @s run function chaotic_crafting:util/progress_bars/give_progress_bar + + +#Armor Stand +execute as @e[type=armor_stand,tag=new_crafter] run function chaotic_crafting:util/center_entity +execute as @e[type=armor_stand,tag=new_crafter] run function chaotic_crafting:functional_blocks/sync_crafter_marker +execute as @e[type=armor_stand,tag=new_crafter] at @s run function chaotic_crafting:util/progress_bars/give_progress_bar + + +execute as @e[type=marker,tag=new_crafter] run tag @s remove new_crafter +execute as @e[type=armor_stand,tag=new_crafter] run tag @s remove new_crafter +advancement revoke @s only chaotic_crafting:place_crafter \ No newline at end of file diff --git a/data/chaotic_crafting/function/functional_blocks/place_crafter_lvl1.mcfunction b/data/chaotic_crafting/function/functional_blocks/place_crafter_lvl1.mcfunction new file mode 100644 index 0000000..03757f8 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/place_crafter_lvl1.mcfunction @@ -0,0 +1,3 @@ +#execute if entity @s facing +execute anchored eyes run execute unless block ~ ~ ~ crafter run setblock ~ ~ ~ crafter +data modify block ~ ~ ~ components set value {"custom_data": {level: 1}} diff --git a/data/chaotic_crafting/function/functional_blocks/rm_marker_progress_bar.mcfunction b/data/chaotic_crafting/function/functional_blocks/rm_marker_progress_bar.mcfunction new file mode 100644 index 0000000..c7207d1 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/rm_marker_progress_bar.mcfunction @@ -0,0 +1,2 @@ +execute on passengers run kill @s +kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/functional_blocks/sync_crafter_marker.mcfunction b/data/chaotic_crafting/function/functional_blocks/sync_crafter_marker.mcfunction new file mode 100644 index 0000000..33ea447 --- /dev/null +++ b/data/chaotic_crafting/function/functional_blocks/sync_crafter_marker.mcfunction @@ -0,0 +1 @@ +execute at @s run execute if data block ~ ~ ~ components."minecraft:custom_data".level1 run tag @s add crafter_lvl1 diff --git a/data/chaotic_crafting/function/interactions/interact_with_customer.mcfunction b/data/chaotic_crafting/function/interactions/interact_with_customer.mcfunction new file mode 100644 index 0000000..12be612 --- /dev/null +++ b/data/chaotic_crafting/function/interactions/interact_with_customer.mcfunction @@ -0,0 +1,11 @@ +#Determine which customer is interacted with +execute as @s at @s run tag @e[type=wandering_trader,distance=..3] add find_looking.candidate + +execute as @s at @s run function chaotic_crafting:util/find_customer + +tag @e remove find_looking.candidate + +execute if entity @e[tag=customer,tag=find_looking.customer,tag=has_ordered] run execute unless entity @s[nbt=!{SelectedItem:{}}] run function chaotic_crafting:check_item +execute if entity @e[tag=customer,tag=find_looking.customer,tag=not_ordered] run execute as @e[tag=customer,tag=find_looking.customer,tag=not_ordered] run function chaotic_crafting:take_order + +advancement revoke @s only chaotic_crafting:interact_with_customer \ No newline at end of file diff --git a/data/chaotic_crafting/function/kill_customer.mcfunction b/data/chaotic_crafting/function/kill_customer.mcfunction new file mode 100644 index 0000000..18bc2e5 --- /dev/null +++ b/data/chaotic_crafting/function/kill_customer.mcfunction @@ -0,0 +1 @@ +#kill @e[type=minecraft:villager,nbt={Pos:[0.0d,0.0d,0.0d]}] \ No newline at end of file diff --git a/data/chaotic_crafting/function/load.mcfunction b/data/chaotic_crafting/function/load.mcfunction new file mode 100644 index 0000000..b418bdd --- /dev/null +++ b/data/chaotic_crafting/function/load.mcfunction @@ -0,0 +1,6 @@ +function chaotic_crafting:setup/setup_scoreboards +function chaotic_crafting:setup/set_anchor + +function chaotic_crafting:loop/iron_spread +function chaotic_crafting:loop/gold_spread +function chaotic_crafting:loop/diamond_spread \ No newline at end of file diff --git a/data/chaotic_crafting/function/loop/diamond_spread.mcfunction b/data/chaotic_crafting/function/loop/diamond_spread.mcfunction new file mode 100644 index 0000000..bc5c64f --- /dev/null +++ b/data/chaotic_crafting/function/loop/diamond_spread.mcfunction @@ -0,0 +1,2 @@ +execute if score $diamond_ore_spread cc_settings matches 1 run execute as @e[type=marker,tag=diamond_ore_spreader] run function chaotic_crafting:ore_spread/diamond_spread +schedule function chaotic_crafting:loop/diamond_spread 5s \ No newline at end of file diff --git a/data/chaotic_crafting/function/loop/gold_spread.mcfunction b/data/chaotic_crafting/function/loop/gold_spread.mcfunction new file mode 100644 index 0000000..5cf46cd --- /dev/null +++ b/data/chaotic_crafting/function/loop/gold_spread.mcfunction @@ -0,0 +1,2 @@ +execute if score $gold_ore_spread cc_settings matches 1 run execute as @e[type=marker,tag=gold_ore_spreader] run function chaotic_crafting:ore_spread/gold_spread +schedule function chaotic_crafting:loop/gold_spread 5s \ No newline at end of file diff --git a/data/chaotic_crafting/function/loop/iron_spread.mcfunction b/data/chaotic_crafting/function/loop/iron_spread.mcfunction new file mode 100644 index 0000000..3158a0e --- /dev/null +++ b/data/chaotic_crafting/function/loop/iron_spread.mcfunction @@ -0,0 +1,2 @@ +execute if score $iron_ore_spread cc_settings matches 1 run execute as @e[type=marker,tag=iron_ore_spreader] run function chaotic_crafting:ore_spread/iron_spread +schedule function chaotic_crafting:loop/iron_spread 5s \ No newline at end of file diff --git a/data/chaotic_crafting/function/loop/loop_spawn_customer.mcfunction b/data/chaotic_crafting/function/loop/loop_spawn_customer.mcfunction new file mode 100644 index 0000000..b9cb9cb --- /dev/null +++ b/data/chaotic_crafting/function/loop/loop_spawn_customer.mcfunction @@ -0,0 +1,6 @@ +execute if score $spawn_loop cc_customers > #0 cc_consts run execute if score $customers_spawned cc_customers < $customer_count cc_settings run function chaotic_crafting:spawn_customer/spawn_customer +#execute as @e[tag=new_customer] at @s run function chaotic_crafting:util/patience_bars/give_progress_bar +scoreboard players remove $spawn_loop cc_customers 1 +scoreboard players add $customers_spawned cc_customers 1 + +execute if score $spawn_loop cc_customers > #0 cc_consts run function chaotic_crafting:loop/loop_spawn_customer \ No newline at end of file diff --git a/data/chaotic_crafting/function/loop/oak_pile_spawn.mcfunction b/data/chaotic_crafting/function/loop/oak_pile_spawn.mcfunction new file mode 100644 index 0000000..7bef24d --- /dev/null +++ b/data/chaotic_crafting/function/loop/oak_pile_spawn.mcfunction @@ -0,0 +1,3 @@ +execute if score $day_active cc_settings matches 1 run execute if score $oak_wood_pile_spawn cc_settings matches 1 run execute as @e[type=marker,tag=cc_oak_log_pile] at @s run place template chaotic_crafting:oak_log_pile_alt ~ ~ ~ +tellraw @a {"text": "A log delivery has arrived.", "color": "white"} +execute if score $day_active cc_settings matches 1 run execute if score $oak_wood_pile_spawn cc_settings matches 1 run schedule function chaotic_crafting:loop/oak_pile_spawn 120s \ No newline at end of file diff --git a/data/chaotic_crafting/function/loop/start_customer_spawning.mcfunction b/data/chaotic_crafting/function/loop/start_customer_spawning.mcfunction new file mode 100644 index 0000000..437780a --- /dev/null +++ b/data/chaotic_crafting/function/loop/start_customer_spawning.mcfunction @@ -0,0 +1,2 @@ +execute if score $day_active cc_settings matches 1 run function chaotic_crafting:spawn_customer/spawn_customer_manager +execute if score $day_active cc_settings matches 1 run schedule function chaotic_crafting:loop/start_customer_spawning 1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/loop/stone_pile_spawn.mcfunction b/data/chaotic_crafting/function/loop/stone_pile_spawn.mcfunction new file mode 100644 index 0000000..eecc488 --- /dev/null +++ b/data/chaotic_crafting/function/loop/stone_pile_spawn.mcfunction @@ -0,0 +1,3 @@ +execute if score $day_active cc_settings matches 1 run execute if score $stone_pile_spawn cc_settings matches 1 run execute as @e[type=marker,tag=cc_stone_pile] at @s run place template chaotic_crafting:stone_pile ~ ~ ~ +tellraw @a {"text": "A stone delivery has arrived.", "color": "white"} +execute if score $day_active cc_settings matches 1 run execute if score $stone_pile_spawn cc_settings matches 1 run schedule function chaotic_crafting:loop/stone_pile_spawn 180s \ No newline at end of file diff --git a/data/chaotic_crafting/function/menus/menu_misc.mcfunction b/data/chaotic_crafting/function/menus/menu_misc.mcfunction new file mode 100644 index 0000000..e369ce5 --- /dev/null +++ b/data/chaotic_crafting/function/menus/menu_misc.mcfunction @@ -0,0 +1,22 @@ + +scoreboard players set $random cc_item 0 +scoreboard players set $min random 0 +scoreboard players set $max random 11 +execute run function random:uniform +execute store result score $random cc_item run scoreboard players get $out random + +execute if score $random cc_item matches 0 run data modify entity @s HandItems set value [{id:"wooden_pickaxe",Count:1b}, {}] +execute if score $random cc_item matches 1 run data modify entity @s HandItems set value [{id:"wooden_shovel",Count:1b}, {}] +execute if score $random cc_item matches 2 run data modify entity @s HandItems set value [{id:"wooden_axe",Count:1b}, {}] +execute if score $random cc_item matches 3 run data modify entity @s HandItems set value [{id:"wooden_hoe",Count:1b}, {}] +execute if score $random cc_item matches 4 run data modify entity @s HandItems set value [{id:"wooden_sword",Count:1b}, {}] +execute if score $random cc_item matches 5 run data modify entity @s HandItems set value [{id:"stone_pickaxe",Count:1b}, {}] +execute if score $random cc_item matches 6 run data modify entity @s HandItems set value [{id:"stone_shovel",Count:1b}, {}] +execute if score $random cc_item matches 7 run data modify entity @s HandItems set value [{id:"stone_axe",Count:1b}, {}] +execute if score $random cc_item matches 8 run data modify entity @s HandItems set value [{id:"stone_hoe",Count:1b}, {}] +execute if score $random cc_item matches 9 run data modify entity @s HandItems set value [{id:"stone_sword",Count:1b}, {}] +execute if score $random cc_item matches 10 run data modify entity @s HandItems set value [{id:"oak_boat",Count:1b}, {}] +execute if score $random cc_item matches 11 run data modify entity @s HandItems set value [{id:"ladder",Count:1b}, {}] + +tag @s remove not_ordered +tag @s add has_ordered \ No newline at end of file diff --git a/data/chaotic_crafting/function/open_seat.mcfunction b/data/chaotic_crafting/function/open_seat.mcfunction new file mode 100644 index 0000000..4bf4924 --- /dev/null +++ b/data/chaotic_crafting/function/open_seat.mcfunction @@ -0,0 +1,9 @@ +#tellraw @a {"text": "Opening Seats"} +execute as @s[tag=seat_1] run scoreboard players set $seat_1 cc_seats 0 +execute as @s[tag=seat_2] run scoreboard players set $seat_2 cc_seats 0 +execute as @s[tag=seat_3] run scoreboard players set $seat_3 cc_seats 0 +execute as @s[tag=seat_4] run scoreboard players set $seat_4 cc_seats 0 +execute as @s[tag=seat_5] run scoreboard players set $seat_5 cc_seats 0 +execute as @s[tag=seat_6] run scoreboard players set $seat_6 cc_seats 0 + +scoreboard players set $bell_rang cc_customers 0 \ No newline at end of file diff --git a/data/chaotic_crafting/function/order_delivered.mcfunction b/data/chaotic_crafting/function/order_delivered.mcfunction new file mode 100644 index 0000000..c2d5c81 --- /dev/null +++ b/data/chaotic_crafting/function/order_delivered.mcfunction @@ -0,0 +1,4 @@ +tag @p remove incorrect_item +tag @p add correct_item + +kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/ore_spread/diamond_spread.mcfunction b/data/chaotic_crafting/function/ore_spread/diamond_spread.mcfunction new file mode 100644 index 0000000..f8e0d8e --- /dev/null +++ b/data/chaotic_crafting/function/ore_spread/diamond_spread.mcfunction @@ -0,0 +1,21 @@ +tellraw @a {"text": "Spreading Diamond Ore"} + +#randomly choose which side to spread +scoreboard players set $random cc_temp 0 +scoreboard players set $min random 0 +scoreboard players set $max random 5 +execute run function random:uniform +execute store result score $random cc_temp run scoreboard players get $out random + + +execute if score $random cc_temp matches 0 run execute at @s run execute positioned ~1 ~ ~ if predicate chaotic_crafting:20_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[diamond_ore_spreader],data:{name:"Diamond Ore"}} +execute if score $random cc_temp matches 1 run execute at @s run execute positioned ~-1 ~ ~ if predicate chaotic_crafting:20_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[diamond_ore_spreader],data:{name:"Diamond Ore"}} +execute if score $random cc_temp matches 2 run execute at @s run execute positioned ~ ~1 ~ if predicate chaotic_crafting:20_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[diamond_ore_spreader],data:{name:"Diamond Ore"}} +execute if score $random cc_temp matches 3 run execute at @s run execute positioned ~ ~-1 ~ if predicate chaotic_crafting:20_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[diamond_ore_spreader],data:{name:"Diamond Ore"}} +execute if score $random cc_temp matches 4 run execute at @s run execute positioned ~ ~ ~1 if predicate chaotic_crafting:20_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[diamond_ore_spreader],data:{name:"Diamond Ore"}} +execute if score $random cc_temp matches 5 run execute at @s run execute positioned ~ ~ ~-1 if predicate chaotic_crafting:20_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[diamond_ore_spreader],data:{name:"Diamond Ore"}} + +execute as @e[type=marker,tag=diamond_ore_spreader,tag=!diamond_node] at @s run execute if predicate chaotic_crafting:66_chance run setblock ~ ~ ~ diamond_ore +execute as @e[type=marker,tag=diamond_ore_spreader,tag=!diamond_node] at @s run execute if block ~ ~ ~ air run setblock ~ ~ ~ deepslate +execute as @e[type=marker,tag=diamond_ore_spreader,tag=!diamond_node] run execute at @s run execute unless block ~ ~ ~ diamond_ore run kill @s + diff --git a/data/chaotic_crafting/function/ore_spread/gold_spread.mcfunction b/data/chaotic_crafting/function/ore_spread/gold_spread.mcfunction new file mode 100644 index 0000000..d0f2e6e --- /dev/null +++ b/data/chaotic_crafting/function/ore_spread/gold_spread.mcfunction @@ -0,0 +1,21 @@ +tellraw @a {"text": "Spreading Gold Ore"} + +#randomly choose which side to spread +scoreboard players set $random cc_temp 0 +scoreboard players set $min random 0 +scoreboard players set $max random 5 +execute run function random:uniform +execute store result score $random cc_temp run scoreboard players get $out random + + +execute if score $random cc_temp matches 0 run execute at @s run execute positioned ~1 ~ ~ if predicate chaotic_crafting:25_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[gold_ore_spreader],data:{name:"Gold Ore"}} +execute if score $random cc_temp matches 1 run execute at @s run execute positioned ~-1 ~ ~ if predicate chaotic_crafting:25_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[gold_ore_spreader],data:{name:"Gold Ore"}} +execute if score $random cc_temp matches 2 run execute at @s run execute positioned ~ ~1 ~ if predicate chaotic_crafting:25_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[gold_ore_spreader],data:{name:"Gold Ore"}} +execute if score $random cc_temp matches 3 run execute at @s run execute positioned ~ ~-1 ~ if predicate chaotic_crafting:25_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[gold_ore_spreader],data:{name:"Gold Ore"}} +execute if score $random cc_temp matches 4 run execute at @s run execute positioned ~ ~ ~1 if predicate chaotic_crafting:25_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[gold_ore_spreader],data:{name:"Gold Ore"}} +execute if score $random cc_temp matches 5 run execute at @s run execute positioned ~ ~ ~-1 if predicate chaotic_crafting:25_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[gold_ore_spreader],data:{name:"Gold Ore"}} + +execute as @e[type=marker,tag=gold_ore_spreader,tag=!gold_node] at @s run execute if predicate chaotic_crafting:66_chance run setblock ~ ~ ~ gold_ore +execute as @e[type=marker,tag=gold_ore_spreader,tag=!gold_node] at @s run execute if block ~ ~ ~ air run setblock ~ ~ ~ deepslate +execute as @e[type=marker,tag=gold_ore_spreader,tag=!gold_node] run execute at @s run execute unless block ~ ~ ~ gold_ore run kill @s + diff --git a/data/chaotic_crafting/function/ore_spread/iron_spread.mcfunction b/data/chaotic_crafting/function/ore_spread/iron_spread.mcfunction new file mode 100644 index 0000000..67d64db --- /dev/null +++ b/data/chaotic_crafting/function/ore_spread/iron_spread.mcfunction @@ -0,0 +1,22 @@ +tellraw @a {"text": "Spreading Iron Ore"} +#execute at @s unless block ~ ~ ~ iron_ore run kill @s + +#randomly choose which side to spread +scoreboard players set $random cc_temp 0 +scoreboard players set $min random 0 +scoreboard players set $max random 5 +execute run function random:uniform +execute store result score $random cc_temp run scoreboard players get $out random + + +execute if score $random cc_temp matches 0 run execute at @s run execute positioned ~1 ~ ~ if predicate chaotic_crafting:33_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[iron_ore_spreader],data:{name:"Iron Ore"}} +execute if score $random cc_temp matches 1 run execute at @s run execute positioned ~-1 ~ ~ if predicate chaotic_crafting:33_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[iron_ore_spreader],data:{name:"Iron Ore"}} +execute if score $random cc_temp matches 2 run execute at @s run execute positioned ~ ~1 ~ if predicate chaotic_crafting:33_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[iron_ore_spreader],data:{name:"Iron Ore"}} +execute if score $random cc_temp matches 3 run execute at @s run execute positioned ~ ~-1 ~ if predicate chaotic_crafting:33_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[iron_ore_spreader],data:{name:"Iron Ore"}} +execute if score $random cc_temp matches 4 run execute at @s run execute positioned ~ ~ ~1 if predicate chaotic_crafting:33_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[iron_ore_spreader],data:{name:"Iron Ore"}} +execute if score $random cc_temp matches 5 run execute at @s run execute positioned ~ ~ ~-1 if predicate chaotic_crafting:33_chance run execute if block ~ ~ ~ air run summon marker ~ ~ ~ {Tags:[iron_ore_spreader],data:{name:"Iron Ore"}} + +execute as @e[type=marker,tag=iron_ore_spreader,tag=!iron_node] at @s run execute if predicate chaotic_crafting:66_chance run setblock ~ ~ ~ iron_ore +execute as @e[type=marker,tag=iron_ore_spreader,tag=!iron_node] at @s run execute if block ~ ~ ~ air run setblock ~ ~ ~ deepslate +execute as @e[type=marker,tag=iron_ore_spreader,tag=!iron_node] run execute at @s run execute unless block ~ ~ ~ iron_ore run kill @s + diff --git a/data/chaotic_crafting/function/ore_spread/mined_diamond_ore.mcfunction b/data/chaotic_crafting/function/ore_spread/mined_diamond_ore.mcfunction new file mode 100644 index 0000000..973e868 --- /dev/null +++ b/data/chaotic_crafting/function/ore_spread/mined_diamond_ore.mcfunction @@ -0,0 +1,3 @@ +scoreboard players set @s cc_diamond_ore_mined 0 + +execute as @e[type=marker,tag=diamond_ore_spreader,tag=!diamond_node] run execute at @s run execute unless block ~ ~ ~ diamond_ore run kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/ore_spread/mined_gold_ore.mcfunction b/data/chaotic_crafting/function/ore_spread/mined_gold_ore.mcfunction new file mode 100644 index 0000000..bfdbd57 --- /dev/null +++ b/data/chaotic_crafting/function/ore_spread/mined_gold_ore.mcfunction @@ -0,0 +1,3 @@ +scoreboard players set @s cc_gold_ore_mined 0 + +execute as @e[type=marker,tag=gold_ore_spreader,tag=!gold_node] run execute at @s run execute unless block ~ ~ ~ gold_ore run kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/ore_spread/mined_iron_ore.mcfunction b/data/chaotic_crafting/function/ore_spread/mined_iron_ore.mcfunction new file mode 100644 index 0000000..ca3abd9 --- /dev/null +++ b/data/chaotic_crafting/function/ore_spread/mined_iron_ore.mcfunction @@ -0,0 +1,3 @@ +scoreboard players set @s cc_iron_ore_mined 0 + +execute as @e[type=marker,tag=iron_ore_spreader,tag=!iron_node] run execute at @s run execute unless block ~ ~ ~ iron_ore run kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/patience/patience_manager.mcfunction b/data/chaotic_crafting/function/patience/patience_manager.mcfunction new file mode 100644 index 0000000..09a8f7a --- /dev/null +++ b/data/chaotic_crafting/function/patience/patience_manager.mcfunction @@ -0,0 +1 @@ +execute as @e[tag=has_patience] on passengers if entity @s[tag=patienceBar] run function chaotic_crafting:util/patience_bars/update_patience \ No newline at end of file diff --git a/data/chaotic_crafting/function/patience_expired.mcfunction b/data/chaotic_crafting/function/patience_expired.mcfunction new file mode 100644 index 0000000..abfb2df --- /dev/null +++ b/data/chaotic_crafting/function/patience_expired.mcfunction @@ -0,0 +1,6 @@ +execute as @s run function chaotic_crafting:open_seat + +kill @s + +scoreboard players add $current_customer cc_customers 1 +scoreboard players add $patience_expired cc_customers 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/players/new_player.mcfunction b/data/chaotic_crafting/function/players/new_player.mcfunction new file mode 100644 index 0000000..5187ee3 --- /dev/null +++ b/data/chaotic_crafting/function/players/new_player.mcfunction @@ -0,0 +1,7 @@ +#tellraw @a {"text": "ADDING PLAYER!"} +tag @s add cc_player +scoreboard players operation $customer_count cc_settings += $xtra_player_modifier cc_settings +scoreboard players operation $xtra_player_modifier cc_settings += #5 cc_consts + +effect give @s saturation infinite 255 true +#gamemode adventure @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/pre_day/merchant/add_trade.mcfunction b/data/chaotic_crafting/function/pre_day/merchant/add_trade.mcfunction new file mode 100644 index 0000000..b88481d --- /dev/null +++ b/data/chaotic_crafting/function/pre_day/merchant/add_trade.mcfunction @@ -0,0 +1 @@ +$data modify entity @e[type=wandering_trader,tag=cc_merchant,limit=1] Offers.Recipes append value {buy: $(cost), sell: $(item), priceMultiplier: 0.05f, maxUses: 2} \ No newline at end of file diff --git a/data/chaotic_crafting/function/pre_day/merchant/debug_loot_item.mcfunction b/data/chaotic_crafting/function/pre_day/merchant/debug_loot_item.mcfunction new file mode 100644 index 0000000..51a7046 --- /dev/null +++ b/data/chaotic_crafting/function/pre_day/merchant/debug_loot_item.mcfunction @@ -0,0 +1 @@ +$say Item: $(item), Cost: $(cost) \ No newline at end of file diff --git a/data/chaotic_crafting/function/pre_day/pre_day_manager.mcfunction b/data/chaotic_crafting/function/pre_day/pre_day_manager.mcfunction new file mode 100644 index 0000000..bbfb2ab --- /dev/null +++ b/data/chaotic_crafting/function/pre_day/pre_day_manager.mcfunction @@ -0,0 +1,5 @@ +#Day 1 +execute as @e[type=marker,tag=cc_merchant_spawn] at @s run function chaotic_crafting:pre_day/spawn_merchant +#Day 2 + +#Day 3 diff --git a/data/chaotic_crafting/function/pre_day/spawn_merchant.mcfunction b/data/chaotic_crafting/function/pre_day/spawn_merchant.mcfunction new file mode 100644 index 0000000..84fb0b9 --- /dev/null +++ b/data/chaotic_crafting/function/pre_day/spawn_merchant.mcfunction @@ -0,0 +1,13 @@ +summon wandering_trader ~ ~ ~ {wander_target:[I;0,0,0],HandItems:[{},{}],Invulnerable:1b,NoAI:1b,Tags:["cc_merchant"],Offers:{Recipes:[{buy: {id: "minecraft:emerald", count: 1}, sell: {id: "minecraft:white_dye", count: 3}, priceMultiplier: 0.05f, maxUses: 12}]}} +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[0] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[0] +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[1] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[1] +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[2] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[2] + +#/data modify entity [wandering trader] Offers.Recipes append value {buy: {id: "minecraft:emerald", count: 1}, sell: {id: "minecraft:white_dye", count: 3}, priceMultiplier: 0.05f, maxUses: 12} +loot spawn ~ ~ ~ loot chaotic_crafting:merchant_day_1 +#execute as @e[type=item,limit=5,sort=nearest] run data modify entity @e[type=wandering_trader,tag=cc_merchant,sort=nearest,limit=1] Offers.Recipes append from entity @s Item.id +#execute as @e[type=item,limit=5,sort=nearest] run data modify entity @e[type=wandering_trader,tag=cc_merchant,sort=nearest,limit=1] Offers.Recipes append value {buy: {$(Item.id)}} +#execute store result storage cc:trades merchantItem byte 1 run data get entity @e[type=item,distance=..2,limit=1] Item.id +#execute store result storage cc:trades merchantItem byte 1 run data get entity @e[type=item,distance=..2,limit=1] Item.components +function chaotic_crafting:pre_day/merchant/add_trade with entity @e[type=item,distance=..2,limit=1] Item.components."minecraft:custom_data" +#kill @e[type=item,limit=5,sort=nearest] \ No newline at end of file diff --git a/data/chaotic_crafting/function/recieved_item.mcfunction b/data/chaotic_crafting/function/recieved_item.mcfunction new file mode 100644 index 0000000..27c3912 --- /dev/null +++ b/data/chaotic_crafting/function/recieved_item.mcfunction @@ -0,0 +1,3 @@ +kill @s +scoreboard players add $slots cc_customers 1 +scoreboard players add $current_customer cc_customers 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/register_correct_order.mcfunction b/data/chaotic_crafting/function/register_correct_order.mcfunction new file mode 100644 index 0000000..568592a --- /dev/null +++ b/data/chaotic_crafting/function/register_correct_order.mcfunction @@ -0,0 +1,4 @@ +tag @p remove incorrect_item +tag @p add correct_item + +execute as @s run function chaotic_crafting:correct_order diff --git a/data/chaotic_crafting/function/reset.mcfunction b/data/chaotic_crafting/function/reset.mcfunction new file mode 100644 index 0000000..470764d --- /dev/null +++ b/data/chaotic_crafting/function/reset.mcfunction @@ -0,0 +1,25 @@ +scoreboard objectives remove cc_item +scoreboard objectives remove cc_timer +scoreboard objectives remove cc_customers +scoreboard objectives remove cc_settings +scoreboard objectives remove util +scoreboard objectives remove cc_points +scoreboard objectives remove cc_seats +scoreboard objectives remove cc_patience +scoreboard objectives remove cc_progress_bars +scoreboard objectives remove cc_consts + +scoreboard objectives remove cc_temp + +scoreboard objectives remove cc_crafter_broken +scoreboard objectives remove cc_iron_ore_mined +scoreboard objectives remove cc_gold_ore_mined +scoreboard objectives remove cc_diamond_ore_mined + +scoreboard objectives remove cc_crafter_ray +scoreboard objectives remove rm_marker_ray + + + + +function chaotic_crafting:setup/setup_scoreboards \ No newline at end of file diff --git a/data/chaotic_crafting/function/scoring.mcfunction b/data/chaotic_crafting/function/scoring.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/chaotic_crafting/function/seats/seat_1.mcfunction b/data/chaotic_crafting/function/seats/seat_1.mcfunction new file mode 100644 index 0000000..581d0f4 --- /dev/null +++ b/data/chaotic_crafting/function/seats/seat_1.mcfunction @@ -0,0 +1,10 @@ +execute if score @s cc_customers = $current_customer cc_customers run tag @s add seat_1 + +data modify entity @e[type=wandering_trader,tag=seat_1,limit=1] wander_target set value [I;0,0,0] + +data modify entity @e[type=wandering_trader,tag=seat_1,limit=1] wander_target[0] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[0] +data modify entity @e[type=wandering_trader,tag=seat_1,limit=1] wander_target[1] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[1] +data modify entity @e[type=wandering_trader,tag=seat_1,limit=1] wander_target[2] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[2] + + +execute as @e[tag=seat_1] run scoreboard players set $seat_1 cc_seats 1 diff --git a/data/chaotic_crafting/function/seats/seat_manager.mcfunction b/data/chaotic_crafting/function/seats/seat_manager.mcfunction new file mode 100644 index 0000000..c7e2e47 --- /dev/null +++ b/data/chaotic_crafting/function/seats/seat_manager.mcfunction @@ -0,0 +1,3 @@ +execute if score $seat_1 cc_seats matches 0 run execute as @e[type=wandering_trader,tag=customer] run function chaotic_crafting:seats/seat_1 + +function chaotic_crafting:events/customer_at_counter \ No newline at end of file diff --git a/data/chaotic_crafting/function/setup/set_anchor.mcfunction b/data/chaotic_crafting/function/setup/set_anchor.mcfunction new file mode 100644 index 0000000..347d753 --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_anchor.mcfunction @@ -0,0 +1,7 @@ +summon marker ~ ~ ~ {Tags:["cc_anchor"],data:{name:"cc_anchor"}} +execute as @e[type=marker,tag=cc_anchor] at @s run function chaotic_crafting:util/center_entity + +#Stores location in scoreboard +execute store result score $anchor_X util run data get entity @s Pos[0] 1 +execute store result score $anchor_Y util run data get entity @s Pos[1] 1 +execute store result score $anchor_Z util run data get entity @s Pos[2] 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/setup/set_customer_order_pos.mcfunction b/data/chaotic_crafting/function/setup/set_customer_order_pos.mcfunction new file mode 100644 index 0000000..85b42fe --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_customer_order_pos.mcfunction @@ -0,0 +1,12 @@ +#set location as offset from anchor (-16X 13Z) +#execute store result score $anchor_X util run data get entity @s Pos[0] 1 +#scoreboard players operation $seat_1_X cc_seats = $anchor_X util +#scoreboard players operation $seat_1_X cc_seats -= + + +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-16 ~ ~13 {Tags:["cc_seat_1"],data:{name:"Seat 1"}} + +#Stores location in scoreboard +execute store result score $seat_1_X cc_seats run data get entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[0] 1 +execute store result score $seat_1_Y cc_seats run data get entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[1] 1 +execute store result score $seat_1_Z cc_seats run data get entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[2] 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/setup/set_customer_rally_point.mcfunction b/data/chaotic_crafting/function/setup/set_customer_rally_point.mcfunction new file mode 100644 index 0000000..81f6c01 --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_customer_rally_point.mcfunction @@ -0,0 +1,2 @@ +#set location as offset from anchor (-24X 9Z) +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-24 ~ ~9 {Tags:["cc_customer_rally"],data:{name:"Customer Rally Point"}} diff --git a/data/chaotic_crafting/function/setup/set_customer_spawn_pos.mcfunction b/data/chaotic_crafting/function/setup/set_customer_spawn_pos.mcfunction new file mode 100644 index 0000000..7ef1403 --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_customer_spawn_pos.mcfunction @@ -0,0 +1,2 @@ +#set location as offset from anchor (-6X) +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-6 ~ ~1 {Tags:["cc_customer_spawn"],data:{name:"Customer Spawnpoint"}} diff --git a/data/chaotic_crafting/function/setup/set_merchant_spawn.mcfunction b/data/chaotic_crafting/function/setup/set_merchant_spawn.mcfunction new file mode 100644 index 0000000..b59a1a4 --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_merchant_spawn.mcfunction @@ -0,0 +1 @@ +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-18 ~ ~13 {Tags:["cc_merchant_spawn"],data:{name:"Merchant Spawn"}} diff --git a/data/chaotic_crafting/function/setup/set_stone_pile_pos.mcfunction b/data/chaotic_crafting/function/setup/set_stone_pile_pos.mcfunction new file mode 100644 index 0000000..1b41db9 --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_stone_pile_pos.mcfunction @@ -0,0 +1,2 @@ +#(Oak: -8X 27Z) (-32 -127) (-40, -100) +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-8 ~ ~27 {Tags:["cc_stone_pile"],data:{name:"Stone Pile"}} \ No newline at end of file diff --git a/data/chaotic_crafting/function/setup/set_trade_data_marker.mcfunction b/data/chaotic_crafting/function/setup/set_trade_data_marker.mcfunction new file mode 100644 index 0000000..450ab4d --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_trade_data_marker.mcfunction @@ -0,0 +1 @@ +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-3 ~ ~15 {Tags:["cc_trade_data"],data:{name:"Trade Data"}} diff --git a/data/chaotic_crafting/function/setup/set_upgrade_data_marker.mcfunction b/data/chaotic_crafting/function/setup/set_upgrade_data_marker.mcfunction new file mode 100644 index 0000000..15828ba --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_upgrade_data_marker.mcfunction @@ -0,0 +1 @@ +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-3 ~ ~14 {Tags:["cc_upgrade_data"],data:{name:"Upgrade Data"}} diff --git a/data/chaotic_crafting/function/setup/set_wood_pile_pos.mcfunction b/data/chaotic_crafting/function/setup/set_wood_pile_pos.mcfunction new file mode 100644 index 0000000..555fce7 --- /dev/null +++ b/data/chaotic_crafting/function/setup/set_wood_pile_pos.mcfunction @@ -0,0 +1,2 @@ +#(Oak: -9X 32Z) +execute as @e[type=marker,tag=cc_anchor] at @s run summon marker ~-9 ~ ~32 {Tags:["cc_oak_log_pile"],data:{name:"Oak Logs"}} \ No newline at end of file diff --git a/data/chaotic_crafting/function/setup/setup_scoreboards.mcfunction b/data/chaotic_crafting/function/setup/setup_scoreboards.mcfunction new file mode 100644 index 0000000..0384ee7 --- /dev/null +++ b/data/chaotic_crafting/function/setup/setup_scoreboards.mcfunction @@ -0,0 +1,135 @@ +scoreboard objectives add cc_item dummy + +scoreboard objectives add cc_timer dummy +scoreboard players set $timer cc_timer 0 +scoreboard players set $day_timer cc_timer 0 + +scoreboard objectives add cc_customers dummy +scoreboard players set $slots cc_customers 5 +scoreboard players set $customers_spawned cc_customers 0 +scoreboard players set $current_customer cc_customers 0 +scoreboard players set $customers_served cc_customers 0 +scoreboard players set $patience_expired cc_customers 0 +scoreboard players set $bell_rang cc_customers 0 + +scoreboard objectives add cc_game dummy +scoreboard players add Day cc_game 1 +scoreboard players add Customers cc_game 10 +scoreboard players add FailedOrders cc_game 0 +scoreboard players add Points cc_game 0 +scoreboard players add Players cc_game 0 + +scoreboard objectives add cc_settings dummy +#game settings +scoreboard players set $menu cc_settings 0 +scoreboard players set $game_active cc_settings 0 +scoreboard players set $rally_patience cc_settings 3000 +scoreboard players set $ordering_patience cc_settings 1200 +scoreboard players set $waiting_patience cc_settings 2400 +scoreboard players set $spawn_cows cc_settings 0 +scoreboard players set $spawn_pigs cc_settings 0 +scoreboard players set $spawn_chickens cc_settings 0 +scoreboard players set $show_seats cc_settings 1 +#Day settings +scoreboard players set $day_length cc_settings 6000 +scoreboard players set $day cc_settings 1 +scoreboard players set $day_active cc_settings 0 +scoreboard players set $customer_count cc_settings 10 +scoreboard players set $customer_min cc_settings 1 +scoreboard players set $customer_max cc_settings 2 +scoreboard players set $xtra_player_modifier cc_settings 0 +#phase settings +scoreboard players set $phase_prep cc_settings 1 +scoreboard players set $phase_day cc_settings 0 +#crafter settings +scoreboard players set $level_1_speed cc_settings 400 +scoreboard players set $level_2_speed cc_settings 200 +scoreboard players set $level_3_speed cc_settings 100 +#ore_spread settings +scoreboard players set $iron_ore_spread cc_settings 0 +scoreboard players set $gold_ore_spread cc_settings 0 +scoreboard players set $diamond_ore_spread cc_settings 0 +#resource spawning +scoreboard players set $oak_wood_pile_spawn cc_settings 1 +scoreboard players set $stone_pile_spawn cc_settings 1 + +scoreboard objectives add util dummy +scoreboard players set $0 util 0 +scoreboard players set $1 util 1 +scoreboard players set $tempValue util 0 +scoreboard players set $anchor_X util 0 +scoreboard players set $anchor_Y util 0 +scoreboard players set $anchor_Z util 0 +scoreboard players set $day_passed_ratio util 0 +scoreboard players set $customer_ratio util 0 + +scoreboard objectives add cc_points dummy +scoreboard players set $correct_orders cc_points 0 +scoreboard players set $incorrect_orders cc_points 0 +scoreboard players set $music_bonus cc_points 0 +scoreboard players set $money cc_points 0 + +scoreboard objectives add cc_seats dummy +scoreboard players set $seat_1 cc_seats 0 +scoreboard players set $seat_2 cc_seats 0 +scoreboard players set $seat_3 cc_seats 0 +scoreboard players set $seat_4 cc_seats 0 +scoreboard players set $seat_5 cc_seats 0 +scoreboard players set $seat_6 cc_seats 0 + +scoreboard objectives add cc_patience dummy +scoreboard objectives add cc_progress_bars dummy + +scoreboard objectives add cc_consts dummy +scoreboard players set #100 cc_consts 100 +scoreboard players set #99 cc_consts 99 +scoreboard players set #97 cc_consts 97 +scoreboard players set #94 cc_consts 94 +scoreboard players set #91 cc_consts 91 +scoreboard players set #88 cc_consts 88 +scoreboard players set #84 cc_consts 84 +scoreboard players set #81 cc_consts 81 +scoreboard players set #78 cc_consts 78 +scoreboard players set #75 cc_consts 75 +scoreboard players set #72 cc_consts 72 +scoreboard players set #69 cc_consts 69 +scoreboard players set #66 cc_consts 66 +scoreboard players set #62 cc_consts 62 +scoreboard players set #59 cc_consts 59 +scoreboard players set #56 cc_consts 56 +scoreboard players set #53 cc_consts 53 +scoreboard players set #50 cc_consts 50 +scoreboard players set #47 cc_consts 47 +scoreboard players set #44 cc_consts 44 +scoreboard players set #41 cc_consts 41 +scoreboard players set #38 cc_consts 38 +scoreboard players set #34 cc_consts 34 +scoreboard players set #31 cc_consts 31 +scoreboard players set #28 cc_consts 28 +scoreboard players set #25 cc_consts 25 +scoreboard players set #22 cc_consts 22 +scoreboard players set #19 cc_consts 19 +scoreboard players set #16 cc_consts 16 +scoreboard players set #12 cc_consts 12 +scoreboard players set #9 cc_consts 9 +scoreboard players set #6 cc_consts 6 +scoreboard players set #5 cc_consts 5 +scoreboard players set #3 cc_consts 3 +scoreboard players set #1 cc_consts 1 +scoreboard players set #0 cc_consts 0 + +#temp storage +scoreboard objectives add cc_temp dummy +scoreboard players set $5 cc_temp 5 +scoreboard players set $10 cc_temp 10 + + +# block tracking +scoreboard objectives add cc_crafter_broken minecraft.mined:minecraft.crafter +scoreboard objectives add cc_iron_ore_mined minecraft.mined:minecraft.iron_ore +scoreboard objectives add cc_gold_ore_mined minecraft.mined:minecraft.gold_ore +scoreboard objectives add cc_diamond_ore_mined minecraft.mined:minecraft.diamond_ore + +#Find Crafter Ray +scoreboard objectives add cc_crafter_ray dummy +scoreboard objectives add rm_marker_ray dummy \ No newline at end of file diff --git a/data/chaotic_crafting/function/setup/spawn_workshop_stage1.mcfunction b/data/chaotic_crafting/function/setup/spawn_workshop_stage1.mcfunction new file mode 100644 index 0000000..44cee22 --- /dev/null +++ b/data/chaotic_crafting/function/setup/spawn_workshop_stage1.mcfunction @@ -0,0 +1 @@ +place template chaotic_crafting:stage1_v1 ~-48 ~-39 ~ none none \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_animals.mcfunction b/data/chaotic_crafting/function/spawn_animals.mcfunction new file mode 100644 index 0000000..f533ad3 --- /dev/null +++ b/data/chaotic_crafting/function/spawn_animals.mcfunction @@ -0,0 +1,4 @@ +#4 67 3 , 5 67 7 , 2 67 7 +execute if score $spawn_cows cc_settings matches 1 run summon cow 4 67 3 +execute if score $spawn_chickens cc_settings matches 1 run summon chicken 5 67 7 +execute if score $spawn_pigs cc_settings matches 1 run summon pig 2 67 7 \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer.mcfunction b/data/chaotic_crafting/function/spawn_customer.mcfunction new file mode 100644 index 0000000..9ca9d6a --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer.mcfunction @@ -0,0 +1,10 @@ +scoreboard players set $timer cc_timer 0 + +execute if score $seat_1 cc_seats matches 0 run function chaotic_crafting:spawn_customer/spawn_seat_1 +execute if score $seat_2 cc_seats matches 0 run function chaotic_crafting:spawn_customer/spawn_seat_2 +execute if score $seat_3 cc_seats matches 0 run function chaotic_crafting:spawn_customer/spawn_seat_3 +execute if score $seat_4 cc_seats matches 0 run function chaotic_crafting:spawn_customer/spawn_seat_4 +execute if score $seat_5 cc_seats matches 0 run function chaotic_crafting:spawn_customer/spawn_seat_5 +execute if score $seat_6 cc_seats matches 0 run function chaotic_crafting:spawn_customer/spawn_seat_6 + +execute as @e[tag=new_customer] at @s run function chaotic_crafting:util/patience_bars/give_progress_bar \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/add_trade.mcfunction b/data/chaotic_crafting/function/spawn_customer/add_trade.mcfunction new file mode 100644 index 0000000..588df87 --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/add_trade.mcfunction @@ -0,0 +1 @@ +$data modify entity @e[type=wandering_trader,tag=customer,tag=new_customer,limit=1] Offers.Recipes append value {buy: $(cost), sell: $(item), priceMultiplier: 0.05f, maxUses: 1} \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_customer.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_customer.mcfunction new file mode 100644 index 0000000..ed48082 --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_customer.mcfunction @@ -0,0 +1,11 @@ +#seat based spawning +#function chaotic_crafting:spawn_customer/spawn_seat_1 + +execute as @e[type=marker,tag=cc_customer_spawn] at @s run summon wandering_trader ~ ~ ~ {wander_target:[I;0,0,0],HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered"],Offers:{Recipes:[]}} +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[0] set from entity @e[type=marker,tag=cc_customer_rally,limit=1] Pos[0] +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[1] set from entity @e[type=marker,tag=cc_customer_rally,limit=1] Pos[1] +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[2] set from entity @e[type=marker,tag=cc_customer_rally,limit=1] Pos[2] + +scoreboard players operation @e[tag=new_customer] cc_customers = $customers_spawned cc_customers + +execute as @e[tag=new_customer] at @s run function chaotic_crafting:util/patience_bars/give_progress_bar diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_customer_manager.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_customer_manager.mcfunction new file mode 100644 index 0000000..75c90e6 --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_customer_manager.mcfunction @@ -0,0 +1,34 @@ +#scoreboard players operation $tempValue_dayTime util = $day_timer cc_timer +execute store result storage cc:temp dayTime double 100 run scoreboard players get $day_timer cc_timer +execute store result storage cc:temp dayLength double 1 run scoreboard players get $day_length cc_settings +execute store result score $tempValue_dayTime util run data get storage cc:temp dayTime +execute store result score $tempValue_dayLength util run data get storage cc:temp dayLength +scoreboard players operation $day_passed_ratio util = $tempValue_dayTime util +scoreboard players operation $day_passed_ratio util /= $tempValue_dayLength util +#execute store result storage cc:temp dayRatio double 100 run scoreboard players operation $tempValue_dayTime util /= $day_length cc_settings +#execute store result score $day_passed_ratio util run data get storage cc:temp dayRatio +#execute store result score $day_passed_ratio util run scoreboard players operation $tempValue_dayTime util /= $tempValue_dayLength util + +execute store result storage cc:temp custCount double 100 run scoreboard players get $customers_spawned cc_customers +execute store result storage cc:temp maxCust double 1 run scoreboard players get $customer_count cc_settings +execute store result score $tempValue_custCount util run data get storage cc:temp custCount +execute store result score $tempValue_maxCust util run data get storage cc:temp maxCust +scoreboard players operation $customer_ratio util = $tempValue_custCount util +scoreboard players operation $customer_ratio util /= $tempValue_maxCust util + +#scoreboard players operation $tempValue_custCount util = $customers_spawned cc_customers +#execute store result storage cc:temp custRatio double 100 run scoreboard players operation $tempValue_custCount util /= $customer_count cc_settings +#execute store result score $customer_ratio util run data get storage cc:temp custRatio +#execute store result score $customer_ratio util run scoreboard players operation $customers_spawned cc_customers /= $customer_count cc_settings + +#get number of customers to spawn +execute if score $customer_ratio util <= $day_passed_ratio util run scoreboard players set $spawn_loop cc_customers 0 +execute if score $customer_ratio util <= $day_passed_ratio util run scoreboard players operation $min random = $customer_min cc_settings +execute if score $customer_ratio util <= $day_passed_ratio util run scoreboard players operation $max random = $customer_max cc_settings +execute if score $customer_ratio util <= $day_passed_ratio util run execute run function random:uniform +execute if score $customer_ratio util <= $day_passed_ratio util run execute store result score $spawn_loop cc_customers run scoreboard players get $out random + +#start spawn loop +execute if score $customer_ratio util <= $day_passed_ratio util run function chaotic_crafting:loop/loop_spawn_customer + + diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_customer_new.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_customer_new.mcfunction new file mode 100644 index 0000000..a1dba25 --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_customer_new.mcfunction @@ -0,0 +1,16 @@ +#seat based spawning +#function chaotic_crafting:spawn_customer/spawn_seat_1 + +execute as @e[type=marker,tag=cc_customer_spawn] at @s run summon wandering_trader ~ ~ ~ {wander_target:[I;0,0,0],HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered"],Offers:{Recipes:[]}} + +execute as @e[type=marker,tag=cc_customer_spawn] at @s run loot spawn ~ ~ ~ loot chaotic_crafting:menu_day_1 +execute as @e[type=marker,tag=cc_customer_spawn] at @s run function chaotic_crafting:spawn_customer/add_trade with entity @e[type=item,distance=..2,limit=1] Item.components."minecraft:custom_data" +execute as @e[type=marker,tag=cc_customer_spawn] at @s run kill @e[type=item,sort=nearest] + +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[0] set from entity @e[type=marker,tag=cc_customer_rally,limit=1] Pos[0] +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[1] set from entity @e[type=marker,tag=cc_customer_rally,limit=1] Pos[1] +data modify entity @e[type=wandering_trader,tag=new_customer,limit=1] wander_target[2] set from entity @e[type=marker,tag=cc_customer_rally,limit=1] Pos[2] + +scoreboard players operation @e[tag=new_customer] cc_customers = $customers_spawned cc_customers + +execute as @e[tag=new_customer] at @s run function chaotic_crafting:util/patience_bars/give_progress_bar diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_seat_1.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_seat_1.mcfunction new file mode 100644 index 0000000..5006f34 --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_seat_1.mcfunction @@ -0,0 +1,12 @@ +#execute if score $seat_1 cc_seats matches 0 run summon wandering_trader 2 66 -3 {WanderTarget:{X:10, Y:67, Z:7},HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered", "seat_1"],Offers:{Recipes:[]}} +#scoreboard players set $seat_1 cc_seats 1 + +# summon minecraft:wandering_trader ~ ~ ~ {wander_target:[I;0,62,55]} + + +execute as @e[type=marker,tag=cc_customer_spawn] at @s run summon wandering_trader ~ ~ ~ {wander_target:[I;0,0,0],HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered", "seat_1"],Offers:{Recipes:[]}} +data modify entity @e[type=wandering_trader,tag=new_customer,tag=seat_1,limit=1] wander_target[0] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[0] +data modify entity @e[type=wandering_trader,tag=new_customer,tag=seat_1,limit=1] wander_target[1] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[1] +data modify entity @e[type=wandering_trader,tag=new_customer,tag=seat_1,limit=1] wander_target[2] set from entity @e[type=marker,tag=cc_seat_1,limit=1] Pos[2] + +scoreboard players set $seat_1 cc_seats 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_seat_2.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_seat_2.mcfunction new file mode 100644 index 0000000..77a7daf --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_seat_2.mcfunction @@ -0,0 +1,2 @@ +execute if score $seat_2 cc_seats matches 0 run summon wandering_trader 2 66 -3 {WanderTarget:{X:12, Y:67, Z:7},HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered", "seat_2"],Offers:{Recipes:[]}} +scoreboard players set $seat_2 cc_seats 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_seat_3.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_seat_3.mcfunction new file mode 100644 index 0000000..7d00eaf --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_seat_3.mcfunction @@ -0,0 +1,2 @@ +execute if score $seat_3 cc_seats matches 0 run summon wandering_trader 2 66 -3 {WanderTarget:{X:14, Y:67, Z:7},HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered", "seat_3"],Offers:{Recipes:[]}} +scoreboard players set $seat_3 cc_seats 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_seat_4.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_seat_4.mcfunction new file mode 100644 index 0000000..a781b1b --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_seat_4.mcfunction @@ -0,0 +1,2 @@ +execute if score $seat_4 cc_seats matches 0 run summon wandering_trader 2 66 -3 {WanderTarget:{X:16, Y:67, Z:7},HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered", "seat_4"],Offers:{Recipes:[]}} +scoreboard players set $seat_4 cc_seats 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_seat_5.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_seat_5.mcfunction new file mode 100644 index 0000000..69f458f --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_seat_5.mcfunction @@ -0,0 +1,2 @@ +execute if score $seat_5 cc_seats matches 0 run summon wandering_trader 2 66 -3 {WanderTarget:{X:18, Y:67, Z:7},HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered", "seat_5"],Offers:{Recipes:[]}} +scoreboard players set $seat_5 cc_seats 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/spawn_seat_6.mcfunction b/data/chaotic_crafting/function/spawn_customer/spawn_seat_6.mcfunction new file mode 100644 index 0000000..455a55b --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/spawn_seat_6.mcfunction @@ -0,0 +1,2 @@ +execute if score $seat_6 cc_seats matches 0 run summon wandering_trader 2 66 -3 {WanderTarget:{X:20, Y:67, Z:7},HandItems:[{},{}],Invulnerable:1b,Silent:1b,Tags:["new_customer","customer", "not_ordered", "seat_6"],Offers:{Recipes:[]}} +scoreboard players set $seat_6 cc_seats 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/spawn_customer/tick.mcfunction b/data/chaotic_crafting/function/spawn_customer/tick.mcfunction new file mode 100644 index 0000000..1514e1b --- /dev/null +++ b/data/chaotic_crafting/function/spawn_customer/tick.mcfunction @@ -0,0 +1 @@ +execute as @e[type=marker,tag=cc_seat_1] at @s run execute positioned ~ ~ ~ as @e[type=minecraft:wandering_trader,tag=customer,limit=1,distance=..2] at @s run data modify entity @s NoAI set value 1b \ No newline at end of file diff --git a/data/chaotic_crafting/function/start_game.mcfunction b/data/chaotic_crafting/function/start_game.mcfunction new file mode 100644 index 0000000..97314cb --- /dev/null +++ b/data/chaotic_crafting/function/start_game.mcfunction @@ -0,0 +1,2 @@ +gamerule doDaylightCycle false +scoreboard players set $game_active cc_settings 1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/take_order.mcfunction b/data/chaotic_crafting/function/take_order.mcfunction new file mode 100644 index 0000000..f9f12a2 --- /dev/null +++ b/data/chaotic_crafting/function/take_order.mcfunction @@ -0,0 +1,9 @@ +tellraw @a {"text": "Taking Order","color": "white"} + +function chaotic_crafting:menus/menu_misc + +tag @s remove at_rally +tag @s remove rally_patience +tag @s remove ordering_patience +tag @s add waiting_patience +execute on passengers run scoreboard players operation @s cc_patience = $waiting_patience cc_settings \ No newline at end of file diff --git a/data/chaotic_crafting/function/tick.mcfunction b/data/chaotic_crafting/function/tick.mcfunction new file mode 100644 index 0000000..04bd703 --- /dev/null +++ b/data/chaotic_crafting/function/tick.mcfunction @@ -0,0 +1,25 @@ + +#execute if score $game_active cc_settings matches 1 run scoreboard players add $timer cc_timer 1 +#execute if score $game_active cc_settings matches 1 run execute if score $timer cc_timer matches 600.. run execute if score $slots cc_customers matches 1.. run function chaotic_crafting:spawn_customer +#execute if score $game_active cc_settings matches 1 run execute if score $timer cc_timer matches 1 run function chaotic_crafting:spawn_animals + +#execute if score $day_active cc_settings matches 1 run function chaotic_crafting:spawn_customer/spawn_customer_manager +execute if score $day_active cc_settings matches 1 run function chaotic_crafting:day_manager/day_manager +execute if score $day_active cc_settings matches 1 run function chaotic_crafting:seats/seat_manager +execute if score $day_active cc_settings matches 1 run function chaotic_crafting:patience/patience_manager +execute if score $day_active cc_settings matches 1 run function chaotic_crafting:events/event_manager + + +function chaotic_crafting:util/find_looking_wandering_trader + + +execute as @a at @s run execute as @e[type=minecraft:wandering_trader,distance=..3] at @s run tp @s ~ ~ ~ facing entity @p feet + +#execute as @e[tag=has_patience] on passengers if entity @s[tag=patienceBar] run function chaotic_crafting:util/patience_bars/update_patience +execute as @e[tag=has_progress_bar] on passengers if entity @s[tag=progressBar] run function chaotic_crafting:util/progress_bars/update_progress_bar + +function chaotic_crafting:util/debug/debug_tick + +function chaotic_crafting:util/block_tracker + +#function chaotic_crafting:tick/spawn_crafter \ No newline at end of file diff --git a/data/chaotic_crafting/function/tick/spawn_crafter.mcfunction b/data/chaotic_crafting/function/tick/spawn_crafter.mcfunction new file mode 100644 index 0000000..c38a1b1 --- /dev/null +++ b/data/chaotic_crafting/function/tick/spawn_crafter.mcfunction @@ -0,0 +1 @@ +execute as @e[type=armor_stand,tag=crafter_lvl1] at @s run function chaotic_crafting:functional_blocks/place_crafter_lvl1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/block_tracker.mcfunction b/data/chaotic_crafting/function/util/block_tracker.mcfunction new file mode 100644 index 0000000..161208b --- /dev/null +++ b/data/chaotic_crafting/function/util/block_tracker.mcfunction @@ -0,0 +1,4 @@ +execute as @a[scores={cc_crafter_broken=1}] run function chaotic_crafting:functional_blocks/break_crafter +execute as @a[scores={cc_iron_ore_mined=1}] run function chaotic_crafting:ore_spread/mined_iron_ore +execute as @a[scores={cc_gold_ore_mined=1}] run function chaotic_crafting:ore_spread/mined_gold_ore +execute as @a[scores={cc_diamond_ore_mined=1}] run function chaotic_crafting:ore_spread/mined_diamond_ore \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/center_entity.mcfunction b/data/chaotic_crafting/function/util/center_entity.mcfunction new file mode 100644 index 0000000..4f52096 --- /dev/null +++ b/data/chaotic_crafting/function/util/center_entity.mcfunction @@ -0,0 +1,20 @@ +tellraw @a {"text": "Centering Entity"} +# Center an entity on its current block (x and z coordinates) +execute store result score $x cc_temp run data get entity @s Pos[0] 1 +execute store result score $y cc_temp run data get entity @s Pos[1] 1 +execute store result score $z cc_temp run data get entity @s Pos[2] 1 + +scoreboard players operation $x cc_temp *= $10 cc_temp +scoreboard players operation $y cc_temp *= $10 cc_temp +scoreboard players operation $z cc_temp *= $10 cc_temp + +scoreboard players operation $x cc_temp += $5 cc_temp +scoreboard players operation $z cc_temp += $5 cc_temp + +execute store result storage cc:temp tempX double 0.1 run scoreboard players get $x cc_temp +execute store result storage cc:temp tempY double 0.1 run scoreboard players get $y cc_temp +execute store result storage cc:temp tempZ double 0.1 run scoreboard players get $z cc_temp + +data modify entity @s Pos[0] set from storage cc:temp tempX +data modify entity @s Pos[1] set from storage cc:temp tempY +data modify entity @s Pos[2] set from storage cc:temp tempZ \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/debug/debug_tick.mcfunction b/data/chaotic_crafting/function/util/debug/debug_tick.mcfunction new file mode 100644 index 0000000..744137d --- /dev/null +++ b/data/chaotic_crafting/function/util/debug/debug_tick.mcfunction @@ -0,0 +1,6 @@ +#execute if score $show_seats cc_settings matches 1 run particle dust{color:[1.000,0.000,0.000],scale:1} 0 62 10 0 1 0 1 10 normal +#execute if score $timer cc_timer matches 100 run execute as @e[type=marker,tag=crafter_lvl1] at @s run function chaotic_crafting:functional_blocks/crafter_lvl_1 + +execute at @e[type=marker,tag=debug_marker] run particle dust{color:[1.000,0.000,0.000],scale:1} ~ ~ ~ 0 1 0 1 10 normal + +#execute at @e[type=marker,tag=iron_ore_spreader] run particle dust{color:[0.000,1.000,0.000],scale:1} ~ ~ ~ 0 1 0 1 10 normal diff --git a/data/chaotic_crafting/function/util/debug/ray.mcfunction b/data/chaotic_crafting/function/util/debug/ray.mcfunction new file mode 100644 index 0000000..43bea4c --- /dev/null +++ b/data/chaotic_crafting/function/util/debug/ray.mcfunction @@ -0,0 +1,5 @@ +particle crit ~ ~ ~ 0 0 0 0 1 + +execute as @e[type=!player,dx=0] positioned ~-0.99 ~-0.99 ~-0.99 if entity @s[dx=0] run effect give @s glowing 1 1 true + +execute positioned ^ ^ ^1 run function chaotic_crafting:util/debug/ray \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/debug/test_spawn_customer.mcfunction b/data/chaotic_crafting/function/util/debug/test_spawn_customer.mcfunction new file mode 100644 index 0000000..79d5b0f --- /dev/null +++ b/data/chaotic_crafting/function/util/debug/test_spawn_customer.mcfunction @@ -0,0 +1,3 @@ +execute if score $seat_1 cc_seats matches 0 run function chaotic_crafting:spawn_customer/spawn_seat_1 + +execute as @e[tag=new_customer] at @s run function chaotic_crafting:util/patience_bars/give_progress_bar \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_crafter/crafter_ray.mcfunction b/data/chaotic_crafting/function/util/find_crafter/crafter_ray.mcfunction new file mode 100644 index 0000000..4a70915 --- /dev/null +++ b/data/chaotic_crafting/function/util/find_crafter/crafter_ray.mcfunction @@ -0,0 +1,8 @@ +#tellraw @a {"text": "Stepping Ray"} +execute if block ~ ~ ~ #chaotic_crafting:crafter run function chaotic_crafting:util/find_crafter/hit_crafter +scoreboard players add #distance cc_crafter_ray 1 + +#debug see ray +#particle dust{color:[1.000,0.000,0.000],scale:1} ~ ~ ~ + +execute if score #hit cc_crafter_ray matches 0 if score #distance cc_crafter_ray matches ..50 positioned ^ ^ ^0.1 run function chaotic_crafting:util/find_crafter/crafter_ray \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_crafter/hit_crafter.mcfunction b/data/chaotic_crafting/function/util/find_crafter/hit_crafter.mcfunction new file mode 100644 index 0000000..6b5d99f --- /dev/null +++ b/data/chaotic_crafting/function/util/find_crafter/hit_crafter.mcfunction @@ -0,0 +1,6 @@ +scoreboard players set #hit cc_crafter_ray 1 + +tellraw @a {"text": "Crafter Found"} +summon armor_stand ~ ~ ~ {Tags:[crafter_marker,new_crafter],attributes:[{id:"generic.scale",base:0.8}],Invisible:1b,Invulnerable:1b,NoGravity:1b,Small:1b} +#execute as @e[type=armor_stand,limit=1,sort=nearest] at @s facing entity @p eyes run tp @s ~ ~ ~ ~ ~ +summon marker ~ ~ ~ {Tags:[debug_marker,crafter_marker,new_crafter]} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_crafter/start_crafter_ray.mcfunction b/data/chaotic_crafting/function/util/find_crafter/start_crafter_ray.mcfunction new file mode 100644 index 0000000..11f4677 --- /dev/null +++ b/data/chaotic_crafting/function/util/find_crafter/start_crafter_ray.mcfunction @@ -0,0 +1,9 @@ +tellraw @a {"text": "Searching for Crafter."} +tag @s add find_crafter +scoreboard players set #hit cc_crafter_ray 0 +scoreboard players set #distance cc_crafter_ray 0 + +#execute anchored eyes run function chaotic_crafting:util/find_crafter/crafter_ray +execute as @s at @s anchored eyes positioned ^ ^ ^ anchored feet run function chaotic_crafting:util/find_crafter/crafter_ray + +tag @s remove find_crafter \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_customer.mcfunction b/data/chaotic_crafting/function/util/find_customer.mcfunction new file mode 100644 index 0000000..832ac8b --- /dev/null +++ b/data/chaotic_crafting/function/util/find_customer.mcfunction @@ -0,0 +1,17 @@ +#declare score_holder $max The highest entity score +scoreboard players set $max find_look.temp 0 +#declare tag find_looking.candidate +#declare tag find_looking.result +tag @e remove find_looking.customer +tag @e[tag=find_looking.candidate] add find_looking.customer +# Assign unique score to each entity +execute as @e[tag=find_looking.customer] store result score @s find_look.temp run scoreboard players add $max find_look.temp 1 + +#declare score_holder $filter The rule by which to filter entities +scoreboard players set $filter find_look.temp 0 + +#declare tag find_looking.in_filter +tag @e remove find_looking.in_filter +function find_looking:internal/filter/iteration + +#execute as @e[tag=find_looking.customer] run tag @s add recieved_item \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_looking_armor_stand.mcfunction b/data/chaotic_crafting/function/util/find_looking_armor_stand.mcfunction new file mode 100644 index 0000000..c5a27e5 --- /dev/null +++ b/data/chaotic_crafting/function/util/find_looking_armor_stand.mcfunction @@ -0,0 +1,9 @@ +effect clear @e glowing + +execute as @a at @s run tag @e[type=armor_stand,distance=..3] add find_looking.candidate + +execute as @a at @s run function find_looking:find +#execute as @e[tag=find_looking.result] run effect give @s glowing 1 1 true +schedule function chaotic_crafting:util/find_looking_clear 1s + +tag @e remove find_looking.candidate \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_looking_clear.mcfunction b/data/chaotic_crafting/function/util/find_looking_clear.mcfunction new file mode 100644 index 0000000..fa86711 --- /dev/null +++ b/data/chaotic_crafting/function/util/find_looking_clear.mcfunction @@ -0,0 +1 @@ +execute if entity @e[tag=find_looking.result] run tag @e remove find_looking.result \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_looking_int.mcfunction b/data/chaotic_crafting/function/util/find_looking_int.mcfunction new file mode 100644 index 0000000..0e1237f --- /dev/null +++ b/data/chaotic_crafting/function/util/find_looking_int.mcfunction @@ -0,0 +1,7 @@ +effect clear @e glowing + +execute as @a at @s run tag @e[type=wandering_trader,distance=..3] add find_looking.candidate + +execute as @a at @s run function find_looking:find + +tag @e remove find_looking.candidate \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_looking_marker.mcfunction b/data/chaotic_crafting/function/util/find_looking_marker.mcfunction new file mode 100644 index 0000000..e325b7c --- /dev/null +++ b/data/chaotic_crafting/function/util/find_looking_marker.mcfunction @@ -0,0 +1,9 @@ +effect clear @e glowing + +execute as @a at @s run tag @e[type=marker,tag=debug_marker,distance=..3] add find_looking.candidate + +execute as @a at @s run function find_looking:find +#execute as @e[tag=find_looking.result] run effect give @s glowing 1 1 true +schedule function chaotic_crafting:util/find_looking_clear 1s + +tag @e remove find_looking.candidate \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/find_looking_wandering_trader.mcfunction b/data/chaotic_crafting/function/util/find_looking_wandering_trader.mcfunction new file mode 100644 index 0000000..4a62969 --- /dev/null +++ b/data/chaotic_crafting/function/util/find_looking_wandering_trader.mcfunction @@ -0,0 +1,9 @@ +effect clear @e glowing + +execute as @a at @s run tag @e[type=wandering_trader,distance=..3] add find_looking.candidate + +execute as @a at @s run function find_looking:find +execute as @e[tag=find_looking.result] run effect give @s glowing 1 1 true +schedule function chaotic_crafting:util/find_looking_clear 1s + +tag @e remove find_looking.candidate \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/give_config_book.mcfunction b/data/chaotic_crafting/function/util/give_config_book.mcfunction new file mode 100644 index 0000000..65c266b --- /dev/null +++ b/data/chaotic_crafting/function/util/give_config_book.mcfunction @@ -0,0 +1 @@ +give @p written_book{pages:['["",{"text":"Config\\n\\n"},{"text":"Start Game","bold":true,"color":"dark_green","clickEvent":{"action":"run_command","value":"/scoreboard players set $game_active cc_settings 1"}},{"text":"\\n\\n\\n","color":"reset"},{"text":"Reset","bold":true,"color":"dark_red","clickEvent":{"action":"run_command","value":"/scoreboard players set $game_active cc_settings 0"}}]'],title:"Config Book",author:Kestrel} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob.mcfunction new file mode 100644 index 0000000..e69de29 diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/a/play.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/a/play.mcfunction new file mode 100644 index 0000000..15f89ad --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/a/play.mcfunction @@ -0,0 +1,5 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] at @s run tag @s remove animation_pause +execute as @e[tag=bobanimation_root,type=block_display] at @s run tag @s remove animation_loop +execute as @e[tag=bobanimation_root,type=block_display] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_0 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop.mcfunction new file mode 100644 index 0000000..c36980b --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop.mcfunction @@ -0,0 +1,5 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] at @s run tag @s remove animation_pause +execute as @e[tag=bobanimation_root,type=block_display] at @s run tag @s add animation_loop +execute as @e[tag=bobanimation_root,type=block_display] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_0 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop_single.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop_single.mcfunction new file mode 100644 index 0000000..3289a8f --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/a/play_loop_single.mcfunction @@ -0,0 +1,5 @@ +# bob_animation created via BDEngine + +execute as @s[tag=bobanimation_root,type=block_display] at @s run tag @s remove animation_pause +execute as @s[tag=bobanimation_root,type=block_display] at @s run tag @s add animation_loop +execute as @s[tag=bobanimation_root,type=block_display] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_0 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_loop.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_loop.mcfunction new file mode 100644 index 0000000..270a026 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_loop.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] if entity @s[tag=animation_loop] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_0 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_0.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_0.mcfunction new file mode 100644 index 0000000..8804db6 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_0.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_1 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_1.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_1.mcfunction new file mode 100644 index 0000000..0d82265 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_1.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_2 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_10.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_10.mcfunction new file mode 100644 index 0000000..425321e --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_10.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_11 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_11.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_11.mcfunction new file mode 100644 index 0000000..878d711 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_11.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_12 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_12.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_12.mcfunction new file mode 100644 index 0000000..7691879 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_12.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_13 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_13.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_13.mcfunction new file mode 100644 index 0000000..10657f9 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_13.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_14 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_14.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_14.mcfunction new file mode 100644 index 0000000..b895b24 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_14.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_15 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_15.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_15.mcfunction new file mode 100644 index 0000000..7ee34a2 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_15.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_16 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_16.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_16.mcfunction new file mode 100644 index 0000000..31c4b1b --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_16.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_17 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_17.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_17.mcfunction new file mode 100644 index 0000000..13737d9 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_17.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_18 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_18.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_18.mcfunction new file mode 100644 index 0000000..a007b80 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_18.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_19 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_19.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_19.mcfunction new file mode 100644 index 0000000..418c7e2 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_19.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_20 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_2.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_2.mcfunction new file mode 100644 index 0000000..aec1ccd --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_2.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_3 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_3.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_3.mcfunction new file mode 100644 index 0000000..f55b6a1 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_3.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_4 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_4.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_4.mcfunction new file mode 100644 index 0000000..375fc29 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_4.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_5 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_5.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_5.mcfunction new file mode 100644 index 0000000..0e24daf --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_5.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_6 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_6.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_6.mcfunction new file mode 100644 index 0000000..7f1ff68 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_6.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_7 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_7.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_7.mcfunction new file mode 100644 index 0000000..b1e3def --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_7.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_8 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_8.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_8.mcfunction new file mode 100644 index 0000000..1b91fbe --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_8.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_9 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_9.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_9.mcfunction new file mode 100644 index 0000000..0544c3b --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/check_pause_9.mcfunction @@ -0,0 +1,3 @@ +# bob_animation created via BDEngine + +execute as @e[tag=bobanimation_root,type=block_display] unless entity @s[tag=animation_pause] at @s run function chaotic_crafting:util/gui/animations/bob/k/keyframe_10 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_0.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_0.mcfunction new file mode 100644 index 0000000..f976598 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_0.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_0 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_1.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_1.mcfunction new file mode 100644 index 0000000..baea4e5 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_1.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0022f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0022f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0022f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_1 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_10.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_10.mcfunction new file mode 100644 index 0000000..103285b --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_10.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0625f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0625f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0625f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_10 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_11.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_11.mcfunction new file mode 100644 index 0000000..c01ddb3 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_11.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0603f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0603f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0603f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_11 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_12.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_12.mcfunction new file mode 100644 index 0000000..269cb49 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_12.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0581f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0581f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0581f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_12 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_13.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_13.mcfunction new file mode 100644 index 0000000..5ebb629 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_13.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0525f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0525f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0525f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_13 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_14.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_14.mcfunction new file mode 100644 index 0000000..618e8f5 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_14.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0419f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0419f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0419f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_14 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_15.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_15.mcfunction new file mode 100644 index 0000000..f110276 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_15.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0313f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0313f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0313f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_15 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_16.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_16.mcfunction new file mode 100644 index 0000000..26b8d63 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_16.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0206f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0206f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0206f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_16 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_17.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_17.mcfunction new file mode 100644 index 0000000..f802d62 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_17.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.01f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.01f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.01f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_17 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_18.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_18.mcfunction new file mode 100644 index 0000000..0c19ce9 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_18.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0044f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0044f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0044f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_18 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_19.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_19.mcfunction new file mode 100644 index 0000000..0258070 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_19.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0022f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0022f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0022f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_19 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_2.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_2.mcfunction new file mode 100644 index 0000000..fc00798 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_2.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0044f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0044f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0044f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_2 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_20.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_20.mcfunction new file mode 100644 index 0000000..07d8387 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_20.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0f,0f]},interpolation_duration:2,start_interpolation:0} +function chaotic_crafting:util/gui/animations/bob/k/check_loop \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_3.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_3.mcfunction new file mode 100644 index 0000000..86d5e4d --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_3.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0094f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0094f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0094f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_3 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_4.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_4.mcfunction new file mode 100644 index 0000000..e7fd225 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_4.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0203f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0203f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0203f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_4 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_5.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_5.mcfunction new file mode 100644 index 0000000..1f6b3f7 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_5.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0313f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0313f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0313f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_5 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_6.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_6.mcfunction new file mode 100644 index 0000000..81bfdc3 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_6.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0422f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0422f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0422f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_6 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_7.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_7.mcfunction new file mode 100644 index 0000000..fce14ad --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_7.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0531f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0531f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0531f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_7 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_8.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_8.mcfunction new file mode 100644 index 0000000..038c4af --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_8.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0581f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0581f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0581f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_8 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_9.mcfunction b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_9.mcfunction new file mode 100644 index 0000000..f783760 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/animations/bob/k/keyframe_9.mcfunction @@ -0,0 +1,4 @@ +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0.0603f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f],interpolation_duration:2,start_interpolation:0} +#data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0603f,0f],left_rotation:[-0.707f,0f,0f,0.707f],scale:[0.4f,0.4f,0.4f],right_rotation:[0f,0f,0f,1f]},interpolation_duration:2,start_interpolation:0} +data merge entity @e[type=item_display,tag=bobanimation_0,distance=..1,limit=1,sort=nearest] {transformation:{translation:[0f,0.0603f,0f]},interpolation_duration:2,start_interpolation:0} +schedule function chaotic_crafting:util/gui/animations/bob/k/check_pause_9 0.1s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/close_gui.mcfunction b/data/chaotic_crafting/function/util/gui/close_gui.mcfunction new file mode 100644 index 0000000..9f9c992 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/close_gui.mcfunction @@ -0,0 +1 @@ +kill @e[tag=cc_menu_item] \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/functions/add_player.mcfunction b/data/chaotic_crafting/function/util/gui/functions/add_player.mcfunction new file mode 100644 index 0000000..a4a30db --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/functions/add_player.mcfunction @@ -0,0 +1,2 @@ +#tellraw @a {"text": "ADDING PLAYER!"} +execute on target run execute if entity @s[tag=!cc_player] run function chaotic_crafting:players/new_player \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/functions/start_day.mcfunction b/data/chaotic_crafting/function/util/gui/functions/start_day.mcfunction new file mode 100644 index 0000000..2630700 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/functions/start_day.mcfunction @@ -0,0 +1,2 @@ +tellraw @a {"text": "Starting Day..."} +function chaotic_crafting:day_manager/start_day \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/interaction/add_player.mcfunction b/data/chaotic_crafting/function/util/gui/interaction/add_player.mcfunction new file mode 100644 index 0000000..8557adb --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/interaction/add_player.mcfunction @@ -0,0 +1,2 @@ +advancement revoke @s only chaotic_crafting:menu_add_player +execute as @e[type=interaction,tag=menu_add_player] run function chaotic_crafting:util/gui/functions/add_player \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/interaction/player_menu_item_click.mcfunction b/data/chaotic_crafting/function/util/gui/interaction/player_menu_item_click.mcfunction new file mode 100644 index 0000000..a519ce1 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/interaction/player_menu_item_click.mcfunction @@ -0,0 +1,2 @@ +advancement revoke @s only chaotic_crafting:interact_with_gui +execute as @e[type=interaction,tag=cc_menu_item,distance=..3] run function chaotic_crafting:util/gui/interaction/detect \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/interaction/start_day.mcfunction b/data/chaotic_crafting/function/util/gui/interaction/start_day.mcfunction new file mode 100644 index 0000000..027c902 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/interaction/start_day.mcfunction @@ -0,0 +1,2 @@ +advancement revoke @s only chaotic_crafting:menu_start_day +execute as @e[type=interaction,tag=menu_start_day] run function chaotic_crafting:util/gui/functions/start_day \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/menu_item_new_player.mcfunction b/data/chaotic_crafting/function/util/gui/menu_item_new_player.mcfunction new file mode 100644 index 0000000..3fd4e68 --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/menu_item_new_player.mcfunction @@ -0,0 +1,2 @@ +summon item_display ~ ~ ~ {item:{id:"minecraft:player_head"},transformation:{translation:[0f,.4f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,-1f,0f,1f],scale:[.8f,.8f,.8f]},Tags:[cc_menu_item,cc_menu_item_1]} +summon minecraft:text_display ~ ~ ~ {alignment: "center", background: 1073741824, default_background: 0b, line_width: 200, see_through: 0b, shadow: 0b, text: '"Add Player"', text_opacity: 255, billboard: "vertical", transformation: {left_rotation: [0.0f, 0f, 0.0f, 0.7071068f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [0.7f, 0.7f, 0.7f], translation: [0.0f, 0.5f, 0.0f]},Tags:[cc_menu_item,cc_menu_item_1]} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/menu_item_new_player_alt.mcfunction b/data/chaotic_crafting/function/util/gui/menu_item_new_player_alt.mcfunction new file mode 100644 index 0000000..7c6ca7e --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/menu_item_new_player_alt.mcfunction @@ -0,0 +1,8 @@ +#summon item_display ~ ~ ~ {item:{id:"minecraft:player_head"},transformation:{translation:[0f,.4f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,-1f,0f,1f],scale:[.8f,.8f,.8f]},Tags:[cc_menu_item,cc_menu_item_1]} +summon minecraft:text_display ~ ~ ~ {alignment: "center", background: 1073741824, default_background: 0b, line_width: 200, see_through: 0b, shadow: 0b, text: '"Add Player"', text_opacity: 255, billboard: "vertical", transformation: {left_rotation: [0.0f, 0f, 0.0f, 0.7071068f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [0.7f, 0.7f, 0.7f], translation: [0.0f, 0.3f, 0.0f]},Tags:[cc_menu_item,cc_menu_item_1]} + + +summon block_display ~ ~ ~ {Tags:["bobanimation","bobanimation_root","cc_menu_item","cc_menu_item_1"]} +execute as @e[tag=bobanimation_root,tag=cc_menu_item_1,type=block_display,distance=..1,limit=1,sort=nearest] at @s run summon block_display ~ ~ ~ {Passengers:[{id:"minecraft:item_display",item:{id:"minecraft:copper_bulb",Count:1},transformation:{translation:[0f,0f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,-1f,0f,1f],scale:[.4f,.4f,.4f]},Tags:["bobanimation_0","cc_menu_item","cc_menu_item_1"]}],Tags:["bobanimation","cc_menu_item","cc_menu_item_1"]} + +summon interaction ~ ~ ~ {Tags:["cc_menu_item","cc_menu_item_1","menu_add_player"],response:true,width:0.4f,height:0.4f} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/menu_item_start_day.mcfunction b/data/chaotic_crafting/function/util/gui/menu_item_start_day.mcfunction new file mode 100644 index 0000000..e675d2c --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/menu_item_start_day.mcfunction @@ -0,0 +1,2 @@ +summon item_display ~ ~ ~ {item:{id:"magenta_glazed_terracotta"},transformation:{translation:[0f,.2f,0f],left_rotation:[1f,0f,0f,0f],right_rotation:[0f,-1f,0f,1f],scale:[.4f,.4f,.4f]},Tags:[cc_menu_item,cc_menu_item_3]} +summon minecraft:text_display ~ ~ ~ {alignment: "center", background: 1073741824, default_background: 0b, line_width: 200, see_through: 0b, shadow: 0b, text: '"Start Day"', text_opacity: 255, billboard: "vertical", transformation: {left_rotation: [0.0f, 0f, 0.0f, 0.7071068f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [0.7f, 0.7f, 0.7f], translation: [0.0f, 0.5f, 0.0f]},Tags:[cc_menu_item,cc_menu_item_3]} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/gui/menu_item_start_day_alt.mcfunction b/data/chaotic_crafting/function/util/gui/menu_item_start_day_alt.mcfunction new file mode 100644 index 0000000..ebc70fe --- /dev/null +++ b/data/chaotic_crafting/function/util/gui/menu_item_start_day_alt.mcfunction @@ -0,0 +1,10 @@ +#summon item_display ~ ~ ~ {item:{id:"magenta_glazed_terracotta"},transformation:{translation:[0f,.2f,0f],left_rotation:[1f,0f,0f,0f],right_rotation:[0f,-1f,0f,1f],scale:[.4f,.4f,.4f]},Tags:[cc_menu_item,cc_menu_item_3]} +summon minecraft:text_display ~ ~ ~ {alignment: "center", background: 1073741824, default_background: 0b, line_width: 200, see_through: 0b, shadow: 0b, text: '"Start Day"', text_opacity: 255, billboard: "vertical", transformation: {left_rotation: [0.0f, 0f, 0.0f, 0.7071068f], right_rotation: [0.0f, 0.0f, 0.0f, 1.0f], scale: [0.7f, 0.7f, 0.7f], translation: [0.0f, 0.3f, 0.0f]},Tags:[cc_menu_item,cc_menu_item_3]} + + +summon block_display ~ ~ ~ {Tags:["bobanimation","bobanimation_root","cc_menu_item","cc_menu_item_3"]} + +#[0.4f,0f,0f,-0.2125f,0f,0.4f,0f,0f,0f,0f,0.4f,-0.2125f,0f,0f,0f,1f] +execute as @e[tag=bobanimation_root,tag=cc_menu_item_3,type=block_display,distance=..1,limit=1,sort=nearest] at @s run summon block_display ~ ~ ~ {Passengers:[{id:"minecraft:item_display",item:{id:"minecraft:magenta_glazed_terracotta",Count:1},transformation:[0.4f,0f,0f,0f,0f,0f,0.4f,0f,0f,-0.4f,0f,0f,0f,0f,0f,1f],Tags:["bobanimation_0","cc_menu_item","cc_menu_item_3"]}],Tags:["bobanimation","cc_menu_item","cc_menu_item_3"]} + +summon interaction ~ ~ ~ {Tags:["cc_menu_item","cc_menu_item_3","menu_start_day"],response:true,width:0.4f,height:0.4f} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/kill_all_customers.mcfunction b/data/chaotic_crafting/function/util/kill_all_customers.mcfunction new file mode 100644 index 0000000..aab3962 --- /dev/null +++ b/data/chaotic_crafting/function/util/kill_all_customers.mcfunction @@ -0,0 +1,2 @@ +execute as @e[type=wandering_trader,tag=customer] run execute on passengers run kill @s +execute as @e[type=wandering_trader,tag=customer] run kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/ore_spread/create_diamond_node.mcfunction b/data/chaotic_crafting/function/util/ore_spread/create_diamond_node.mcfunction new file mode 100644 index 0000000..41fbf14 --- /dev/null +++ b/data/chaotic_crafting/function/util/ore_spread/create_diamond_node.mcfunction @@ -0,0 +1,4 @@ + +setblock ~ ~ ~ bedrock destroy +summon item_display ~ ~1 ~ {item:{id:bedrock,components:{custom_model_data:1003}},transformation:{translation:[0f,-0.5f,0f],left_rotation:[0f,0f,0f,1f],scale:[1.0004f,1.0004f,1.0004f],right_rotation:[0f,0f,0f,1f]}} +summon marker ~ ~ ~ {Tags:["diamond_ore_spreader","diamond_node"],data:{name:"Diamond Node"}} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/ore_spread/create_gold_node.mcfunction b/data/chaotic_crafting/function/util/ore_spread/create_gold_node.mcfunction new file mode 100644 index 0000000..ca0a59f --- /dev/null +++ b/data/chaotic_crafting/function/util/ore_spread/create_gold_node.mcfunction @@ -0,0 +1,4 @@ + +setblock ~ ~ ~ bedrock destroy +summon item_display ~ ~1 ~ {item:{id:bedrock,components:{custom_model_data:1002}},transformation:{translation:[0f,-0.5f,0f],left_rotation:[0f,0f,0f,1f],scale:[1.0004f,1.0004f,1.0004f],right_rotation:[0f,0f,0f,1f]}} +summon marker ~ ~ ~ {Tags:["gold_ore_spreader","gold_node"],data:{name:"Gold Node"}} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/ore_spread/create_iron_node.mcfunction b/data/chaotic_crafting/function/util/ore_spread/create_iron_node.mcfunction new file mode 100644 index 0000000..382a7e9 --- /dev/null +++ b/data/chaotic_crafting/function/util/ore_spread/create_iron_node.mcfunction @@ -0,0 +1,4 @@ + +setblock ~ ~ ~ bedrock destroy +summon item_display ~ ~1 ~ {item:{id:bedrock,components:{custom_model_data:1001}},transformation:{translation:[0f,-0.5f,0f],left_rotation:[0f,0f,0f,1f],scale:[1.0004f,1.0004f,1.0004f],right_rotation:[0f,0f,0f,1f]}} +summon marker ~ ~ ~ {Tags:["iron_ore_spreader","iron_node"],data:{name:"Iron Node"}} \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/patience_bars/give_progress_bar.mcfunction b/data/chaotic_crafting/function/util/patience_bars/give_progress_bar.mcfunction new file mode 100644 index 0000000..d6ff119 --- /dev/null +++ b/data/chaotic_crafting/function/util/patience_bars/give_progress_bar.mcfunction @@ -0,0 +1,7 @@ +summon item_display ~ ~ ~ {item:{id:"minecraft:emerald",Count:1b,components:{"minecraft:custom_model_data":8100}},billboard:center,transformation:{translation:[0f,.5f,0f],left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],scale:[1f,1f,0f]},Tags:["patienceBar","newPatienceBar"]} +ride @e[tag=patienceBar,tag=newPatienceBar,limit=1] mount @s + +execute on passengers if entity @s[tag=patienceBar,tag=newPatienceBar] run scoreboard players operation @s cc_patience = $rally_patience cc_settings +execute on passengers if entity @s[tag=patienceBar,tag=newPatienceBar] run tag @s remove newPatienceBar +tag @s add has_patience +tag @s remove new_customer \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/patience_bars/update_patience.mcfunction b/data/chaotic_crafting/function/util/patience_bars/update_patience.mcfunction new file mode 100644 index 0000000..0f4e5bd --- /dev/null +++ b/data/chaotic_crafting/function/util/patience_bars/update_patience.mcfunction @@ -0,0 +1,46 @@ +scoreboard players remove @s cc_patience 1 + +scoreboard players operation $tempValue util = @s cc_patience +scoreboard players operation $tempValue util *= #100 cc_consts +execute on vehicle if entity @s[tag=has_patience,tag=rally_patience] run scoreboard players operation $tempValue util /= $rally_patience cc_settings +execute on vehicle if entity @s[tag=has_patience,tag=not_ordered,tag=ordering_patience] run scoreboard players operation $tempValue util /= $ordering_patience cc_settings +execute on vehicle if entity @s[tag=has_patience,tag=has_ordered,tag=waiting_patience] run scoreboard players operation $tempValue util /= $waiting_patience cc_settings + +execute if score $tempValue util matches 100 run data modify entity @s item.components.minecraft:custom_model_data set value 8100 +execute if score $tempValue util <= #99 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8097 +execute if score $tempValue util <= #97 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8094 +execute if score $tempValue util <= #94 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8091 +execute if score $tempValue util <= #91 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8088 +execute if score $tempValue util <= #88 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8084 +execute if score $tempValue util <= #84 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8081 +execute if score $tempValue util <= #81 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8078 +execute if score $tempValue util <= #78 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8075 +execute if score $tempValue util <= #75 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8072 +execute if score $tempValue util <= #72 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8069 +execute if score $tempValue util <= #69 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8066 +execute if score $tempValue util <= #66 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8062 +execute if score $tempValue util <= #62 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8059 +execute if score $tempValue util <= #59 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8056 +execute if score $tempValue util <= #56 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8053 +execute if score $tempValue util <= #53 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8050 +execute if score $tempValue util <= #50 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8047 +execute if score $tempValue util <= #47 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8044 +execute if score $tempValue util <= #44 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8041 +execute if score $tempValue util <= #41 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8038 +execute if score $tempValue util <= #38 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8034 +execute if score $tempValue util <= #34 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8031 +execute if score $tempValue util <= #31 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8028 +execute if score $tempValue util <= #28 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8025 +execute if score $tempValue util <= #25 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8022 +execute if score $tempValue util <= #22 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8019 +execute if score $tempValue util <= #19 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8016 +execute if score $tempValue util <= #16 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8012 +execute if score $tempValue util <= #12 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8009 +execute if score $tempValue util <= #9 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8006 +execute if score $tempValue util <= #6 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8003 +execute if score $tempValue util <= #3 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8000 + +execute if score $tempValue util = #25 cc_consts run tellraw @a {"text": "A customer is getting impatient...", "color": "yellow"} + +execute as @e[tag=patienceBar,predicate=chaotic_crafting:patience_expired] on vehicle run function chaotic_crafting:patience_expired +kill @e[tag=patienceBar,predicate=chaotic_crafting:patience_expired] \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/progress_bars/give_progress_bar.mcfunction b/data/chaotic_crafting/function/util/progress_bars/give_progress_bar.mcfunction new file mode 100644 index 0000000..e74cdb1 --- /dev/null +++ b/data/chaotic_crafting/function/util/progress_bars/give_progress_bar.mcfunction @@ -0,0 +1,7 @@ +tellraw @a {"text": "Giving Progress Bar"} +summon item_display ~ ~ ~ {item:{id:"minecraft:emerald",Count:1b,components:{"minecraft:custom_model_data":8000}},billboard:"vertical",brightness:{block:15,sky:0},transformation:{translation:[0f,0f,.6f],left_rotation:[0f,0f,1f,1f],right_rotation:[0f,0f,1f,1f],scale:[1f,1f,0f]},Tags:["progressBar","newProgressBar"]} +ride @e[tag=progressBar,tag=newProgressBar,limit=1] mount @s + +execute on passengers if entity @s[tag=progressBar,tag=newProgressBar] run tag @s remove newProgressBar + +tag @s add has_progress_bar \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/progress_bars/update_progress_bar.mcfunction b/data/chaotic_crafting/function/util/progress_bars/update_progress_bar.mcfunction new file mode 100644 index 0000000..9b9de8a --- /dev/null +++ b/data/chaotic_crafting/function/util/progress_bars/update_progress_bar.mcfunction @@ -0,0 +1,46 @@ +scoreboard players add @s cc_progress_bars 1 + +scoreboard players operation $tempValue util = @s cc_progress_bars +scoreboard players operation $tempValue util *= #100 cc_consts +execute on vehicle if entity @s[tag=has_progress_bar,tag=crafter_lvl1] run scoreboard players operation $tempValue util /= $level_1_speed cc_settings +execute on vehicle if entity @s[tag=has_progress_bar,tag=crafter_lvl2] run scoreboard players operation $tempValue util /= $level_2_speed cc_settings +execute on vehicle if entity @s[tag=has_progress_bar,tag=crafter_lvl3] run scoreboard players operation $tempValue util /= $level_3_speed cc_settings + +execute if score $tempValue util matches 100 run data modify entity @s item.components.minecraft:custom_model_data set value 8100 +execute if score $tempValue util <= #99 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8097 +execute if score $tempValue util <= #97 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8094 +execute if score $tempValue util <= #94 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8091 +execute if score $tempValue util <= #91 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8088 +execute if score $tempValue util <= #88 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8084 +execute if score $tempValue util <= #84 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8081 +execute if score $tempValue util <= #81 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8078 +execute if score $tempValue util <= #78 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8075 +execute if score $tempValue util <= #75 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8072 +execute if score $tempValue util <= #72 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8069 +execute if score $tempValue util <= #69 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8066 +execute if score $tempValue util <= #66 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8062 +execute if score $tempValue util <= #62 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8059 +execute if score $tempValue util <= #59 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8056 +execute if score $tempValue util <= #56 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8053 +execute if score $tempValue util <= #53 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8050 +execute if score $tempValue util <= #50 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8047 +execute if score $tempValue util <= #47 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8044 +execute if score $tempValue util <= #44 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8041 +execute if score $tempValue util <= #41 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8038 +execute if score $tempValue util <= #38 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8034 +execute if score $tempValue util <= #34 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8031 +execute if score $tempValue util <= #31 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8028 +execute if score $tempValue util <= #28 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8025 +execute if score $tempValue util <= #25 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8022 +execute if score $tempValue util <= #22 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8019 +execute if score $tempValue util <= #19 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8016 +execute if score $tempValue util <= #16 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8012 +execute if score $tempValue util <= #12 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8009 +execute if score $tempValue util <= #9 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8006 +execute if score $tempValue util <= #6 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8003 +execute if score $tempValue util <= #3 cc_consts run data modify entity @s item.components.minecraft:custom_model_data set value 8000 + + +execute if score $tempValue util matches 100 run execute if score $day_active cc_settings matches 1 run execute on vehicle at @s run function chaotic_crafting:functional_blocks/activate_crafter + +execute if score $tempValue util matches 100 run scoreboard players set @s cc_progress_bars 0 \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/rm_marker/check_hit_entity.mcfunction b/data/chaotic_crafting/function/util/rm_marker/check_hit_entity.mcfunction new file mode 100644 index 0000000..eaf282f --- /dev/null +++ b/data/chaotic_crafting/function/util/rm_marker/check_hit_entity.mcfunction @@ -0,0 +1,3 @@ +#Checks if an entity is found, and if so, runs the corresponding function. + +execute if score #hit rm_marker_ray matches 0 positioned ~-0.9 ~-0.9 ~-0.9 if entity @s[dx=0] positioned ~0.95 ~0.95 ~0.95 run function cc_remove_marker:hit_entity \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/rm_marker/hit_entity.mcfunction b/data/chaotic_crafting/function/util/rm_marker/hit_entity.mcfunction new file mode 100644 index 0000000..08dce67 --- /dev/null +++ b/data/chaotic_crafting/function/util/rm_marker/hit_entity.mcfunction @@ -0,0 +1,7 @@ +#Mark the ray has having found an entity. + +scoreboard players set #hit rm_marker_ray 1 + +#Running custom commands since the entity was found. +tellraw @a {"text": "Armor Stand Found"} +kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/rm_marker/ray.mcfunction b/data/chaotic_crafting/function/util/rm_marker/ray.mcfunction new file mode 100644 index 0000000..9261582 --- /dev/null +++ b/data/chaotic_crafting/function/util/rm_marker/ray.mcfunction @@ -0,0 +1,9 @@ +tellraw @a {"text": "Stepping Ray"} + +execute if score #hit rm_marker_ray matches 0 positioned ~-0.05 ~-0.05 ~-0.05 as @e[type=#chaotic_crafting:cow,tag=!rm_ray,dx=0,sort=nearest] run function chaotic_crafting:util/rm_marker/check_hit_entity +scoreboard players add #distance rm_marker_ray 1 + +#debug see ray +particle dust{color:[1.000,0.000,0.000],scale:1} ~ ~ ~ + +execute if score #hit rm_marker_ray matches 0 if score #distance rm_marker_ray matches ..50 positioned ^ ^ ^0.1 run function chaotic_crafting:util/rm_marker/ray \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/rm_marker/start_ray.mcfunction b/data/chaotic_crafting/function/util/rm_marker/start_ray.mcfunction new file mode 100644 index 0000000..8b76a0f --- /dev/null +++ b/data/chaotic_crafting/function/util/rm_marker/start_ray.mcfunction @@ -0,0 +1,13 @@ +#Setting up the raycasting data. + +tag @s add rm_ray +scoreboard players set #hit rm_marker_ray 0 +scoreboard players set #distance rm_marker_ray 0 + +#Activating the raycast. This function will call itself until it is done. + +function chaotic_crafting:util/rm_marker/ray + +#Raycasting finished, removing tag from the raycaster. + +tag @s remove rm_ray \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/spawn_merchant_deprecated.mcfunction b/data/chaotic_crafting/function/util/spawn_merchant_deprecated.mcfunction new file mode 100644 index 0000000..4e8b1c0 --- /dev/null +++ b/data/chaotic_crafting/function/util/spawn_merchant_deprecated.mcfunction @@ -0,0 +1,6 @@ +summon minecraft:wandering_trader 19 67 17 {NoAI:1b,Offers:{Recipes:[{maxUses:2,buy:{id:"minecraft:emerald",Count:1},sell:{id:"minecraft:wheat_seeds",Count:1b}},{maxUses:2,buy:{id:"minecraft:emerald",Count:1},sell:{id:"minecraft:crafter",Count:1b}},{maxUses:1,buy:{id:"minecraft:emerald",Count:6},sell:{id:"minecraft:blast_furnace",Count:1b}}]},Tags:["cc_merchant"]} + +#{maxUses:2,buy:{id:"minecraft:emerald",Count:1},sell:{id:"minecraft:wheat_seeds",Count:1b}} +#{maxUses:2,buy:{id:"minecraft:emerald",Count:1},sell:{id:"farmersdelight:cabbage_seeds",Count:1b}} +#{maxUses:1,buy:{id:"minecraft:emerald",Count:6},sell:{id:"farmersdelight:stove",Count:1b}} +# \ No newline at end of file diff --git a/data/chaotic_crafting/function/util/uninstall/uninstall.mcfunction b/data/chaotic_crafting/function/util/uninstall/uninstall.mcfunction new file mode 100644 index 0000000..6ddd25a --- /dev/null +++ b/data/chaotic_crafting/function/util/uninstall/uninstall.mcfunction @@ -0,0 +1,11 @@ +#cc_anchor +#cc_customer_spawnpoint +#rally_point +#logs +#iron_node +#seat 1 +#item_displays + + + +kill @e[type=marker,tag=cc_anchor] \ No newline at end of file diff --git a/data/chaotic_crafting/function/wrong_order.mcfunction b/data/chaotic_crafting/function/wrong_order.mcfunction new file mode 100644 index 0000000..f88b2c5 --- /dev/null +++ b/data/chaotic_crafting/function/wrong_order.mcfunction @@ -0,0 +1,8 @@ +tellraw @a {"text": "Wrong Order","color": "red"} +playsound minecraft:entity.wandering_trader.no player @p + +scoreboard players add $incorrect_orders cc_points 1 + +execute as @s run function chaotic_crafting:open_seat + +execute on passengers run kill @s \ No newline at end of file diff --git a/data/chaotic_crafting/loot_table/menu_day_1.json b/data/chaotic_crafting/loot_table/menu_day_1.json new file mode 100644 index 0000000..fa76fca --- /dev/null +++ b/data/chaotic_crafting/loot_table/menu_day_1.json @@ -0,0 +1,253 @@ +{ + "type": "minecraft:barter", + "pools": [ + { + "bonus_rolls": 0, + "conditions": [], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:wooden_pickaxe", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:wooden_pickaxe", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_shovel", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:wooden_shovel", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_axe", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:wooden_axe", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_hoe", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:wooden_hoe", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:wooden_sword", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:wooden_sword", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_pickaxe", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:stone_pickaxe", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_shovel", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:stone_shovel", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_axe", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:stone_axe", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_hoe", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:stone_hoe", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:stone_sword", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:stone_sword", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:oak_boat", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:oak_boat", + "count": 1 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + }, + { + "type": "minecraft:item", + "name": "minecraft:ladder", + "weight": 1, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "cost": { + "id": "minecraft:ladder", + "count": 3 + }, + "item": { + "id": "minecraft:emerald", + "count": 1 + } + } + } + ] + } + ], + "rolls": 1 + } + ], + "functions": [] +} \ No newline at end of file diff --git a/data/chaotic_crafting/loot_table/merchant_day_1.json b/data/chaotic_crafting/loot_table/merchant_day_1.json new file mode 100644 index 0000000..f18d16a --- /dev/null +++ b/data/chaotic_crafting/loot_table/merchant_day_1.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:barter", + "pools": [ + { + "bonus_rolls": 0, + "conditions": [], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:crafter", + "weight": 10, + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": { + "item": { + "id": "minecraft:crafter", + "count": 1 + }, + "cost": { + "id": "minecraft:emerald", + "count": 10 + } + } + } + ] + } + ], + "rolls": 1 + } + ], + "functions": [] +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/10_chance.json b/data/chaotic_crafting/predicate/10_chance.json new file mode 100644 index 0000000..2854f97 --- /dev/null +++ b/data/chaotic_crafting/predicate/10_chance.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.1 +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/20_chance.json b/data/chaotic_crafting/predicate/20_chance.json new file mode 100644 index 0000000..0095eb5 --- /dev/null +++ b/data/chaotic_crafting/predicate/20_chance.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.2 +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/25_chance.json b/data/chaotic_crafting/predicate/25_chance.json new file mode 100644 index 0000000..2f6ecbc --- /dev/null +++ b/data/chaotic_crafting/predicate/25_chance.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.25 +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/33_chance.json b/data/chaotic_crafting/predicate/33_chance.json new file mode 100644 index 0000000..55f4b7e --- /dev/null +++ b/data/chaotic_crafting/predicate/33_chance.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.33 +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/50_chance.json b/data/chaotic_crafting/predicate/50_chance.json new file mode 100644 index 0000000..c3dc1c8 --- /dev/null +++ b/data/chaotic_crafting/predicate/50_chance.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.5 +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/66_chance.json b/data/chaotic_crafting/predicate/66_chance.json new file mode 100644 index 0000000..9c363fa --- /dev/null +++ b/data/chaotic_crafting/predicate/66_chance.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.66 +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/near_iron_ore.json b/data/chaotic_crafting/predicate/near_iron_ore.json new file mode 100644 index 0000000..85ea93c --- /dev/null +++ b/data/chaotic_crafting/predicate/near_iron_ore.json @@ -0,0 +1,13 @@ +{ + "condition": "minecraft:alternative", + "terms": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": ["iron_ore", "deepslate_iron_ore"] + } + } + } + ] +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/patience_expired.json b/data/chaotic_crafting/predicate/patience_expired.json new file mode 100644 index 0000000..ea4f1f0 --- /dev/null +++ b/data/chaotic_crafting/predicate/patience_expired.json @@ -0,0 +1,10 @@ +{ + "condition": "any_of", + "terms": [{ + "condition": "entity_scores", + "entity": "this", + "scores": { + "cc_patience": 0 + } + }] +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/progress_bar_expired.json b/data/chaotic_crafting/predicate/progress_bar_expired.json new file mode 100644 index 0000000..f248948 --- /dev/null +++ b/data/chaotic_crafting/predicate/progress_bar_expired.json @@ -0,0 +1,10 @@ +{ + "condition": "any_of", + "terms": [{ + "condition": "entity_scores", + "entity": "this", + "scores": { + "cc_progress_bars": 0 + } + }] +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/random_new_marker.json b/data/chaotic_crafting/predicate/random_new_marker.json new file mode 100644 index 0000000..14cbe23 --- /dev/null +++ b/data/chaotic_crafting/predicate/random_new_marker.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.05 +} \ No newline at end of file diff --git a/data/chaotic_crafting/predicate/random_spread.json b/data/chaotic_crafting/predicate/random_spread.json new file mode 100644 index 0000000..0095eb5 --- /dev/null +++ b/data/chaotic_crafting/predicate/random_spread.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.2 +} \ No newline at end of file diff --git a/data/chaotic_crafting/structure/acacia_log_pile.nbt b/data/chaotic_crafting/structure/acacia_log_pile.nbt new file mode 100644 index 0000000000000000000000000000000000000000..fa35955a6d99f01978dd394d87528241fc275cdd GIT binary patch literal 331 zcmV-R0kr-fiwFP!00000|E-iwPQx$|M#r(8=0~C%j=(8cvqr4gRzo^%EmAwOji@+1 z4ow6~LolX&rmG%Bc}g!rk|x8J(nXdUD@;u z#9DPh%NOEFS^J*ooKGad=hIcf z)!lEEN7GLD`ZM+7Q_h~Ypm*2?DpH3B>$sg?>fXU6-!94T>{yL>$RTDh>Vm z%8gBnFY^=3QW=NbMoe4ddvaugv)5pu>eWDEVU=|7$6XDLU`<%nw+pPr$( z&bcrJtUBFdjM!g~G6(spPY91EW3l#nAD_3z*N08(ni9%4?>h9+U`U`on*i+GU$vK_ zhu($}_(W#PCo*$BYQgMk!R+e#EHz}}8uTPXCjF05 z^V9f6p7_)9r5_KIH}f{P11HE)n@$qMJea7SH8l2qJmOjEC!#NW8`z_+O^dbe|1 gft(v}`q25RtzOB~2Rkus13U_T0c#vky)gs;0Kln-ga7~l literal 0 HcmV?d00001 diff --git a/data/chaotic_crafting/structure/mangrove_log_pile.nbt b/data/chaotic_crafting/structure/mangrove_log_pile.nbt new file mode 100644 index 0000000000000000000000000000000000000000..63cbe0fc33528c06177063a771c2f57d31391202 GIT binary patch literal 283 zcmV+$0p$K4iwFP!00000|E-cyYlAQpg-?ubYGHdA?8oeR&t*@0EqC_Tg=!*6Xh(nj zB5gXXLw#ropCWBa9#rQ zOtOHH6HEeJsX1oKCo)q$$@QdpCY@m90-wlC`9x;UM=Y3KESO!~o+XA%T!Wru$fW-< zV*KAnKFN6Y5hKUW=Uw2jqlUfb{_3VV(lxb=*H&q+EbaVTOS-n^z?;U@CCU$LI<{W1 z3oQL82XO*o?&&XQNi{e8>KJTn=&5;&Y)6gbJUD(+7n0;E)?20P4U_YCt~~O6DvRFj h(pDg6?NuMTT(;FadHQ7Ql+nPm!!M)4*!VL9001ZZj>7-| literal 0 HcmV?d00001 diff --git a/data/chaotic_crafting/structure/oak_log_pile.nbt b/data/chaotic_crafting/structure/oak_log_pile.nbt new file mode 100644 index 0000000000000000000000000000000000000000..92ed15c08e6511c1d6bea3a6a205e3ac068c37db GIT binary patch literal 339 zcmb2|=3oGW|7)il%xgB_X`9=!#bK#$b-V4+bJqUWZ=))&qy}m_dM@#+{ngr=)8u$! z;WPoqUw>}z?+s!SnGjj3%E<6nxxGB@z_Yy?7N%<)TaoH#KmC$Ej$XN|n!^34Z&N{;-O{Iv2M zlk(p`+hxt3$b7w?Jk9xAQ+iYT=B$-Q6(#;s{=eO>t4>+(R-Q6P>9ygX5V0Fq<2N{; zx*Ol+c-7~}-J|A7d;EOaC%EV6Jl(gK|4ohBt*%?mS+8vumYPr7b0Jryd*61)wGDHk imj7Dv{=f5qcapOECT{fF&hTAqAH!|2?KYFx7#ILL%B2DT literal 0 HcmV?d00001 diff --git a/data/chaotic_crafting/structure/oak_log_pile_alt.nbt b/data/chaotic_crafting/structure/oak_log_pile_alt.nbt new file mode 100644 index 0000000000000000000000000000000000000000..a539abeb94d56cc2c6aa582afd2b63bb4faa4356 GIT binary patch literal 328 zcmV-O0k{4iiwFP!00000|E-kEYQr!PMMp2k4`}E=XOIV#00qckzEA)_zw+U&3dr7DS06)}zBU3>h&p20rwY-zFcypt zhyNKiFpR)Za>NaW6I`6&;sloQkTaekTj+;P|LIIWOF3#TM_jx3^bEyy z&V?yp)#(;v#Qu7eImj1%LU=qGi?!GL_~i6)+q$NN^3}TzeKZ&nrq3n-JNFmurR3qa z#B0+|`06t?;!{q8J5YPw2Fz1?2i+m8b*RzqjBU2TeZ<3^Gp+OY$*g{o#vTjE(MHpk a4O3J->!{z*2jeWjI>0yJ(r^2g1^@sL7o0)> literal 0 HcmV?d00001 diff --git a/data/chaotic_crafting/structure/stage1_v1.nbt b/data/chaotic_crafting/structure/stage1_v1.nbt new file mode 100644 index 0000000000000000000000000000000000000000..2589692b835a8af1f5433fec35480f93731a586b GIT binary patch literal 313118 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