From dd1ddc7e672c649d2fc97d60ad5a4ea5b3f356d7 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 7 Sep 2023 17:33:24 -0400 Subject: [PATCH] Player head management plugin (#888) * Merge branch 'ver/1.16' of https://github.com/Bloo-dev/lib_player_heads into ver/1.16 * Merge pull request #1 from Luexa/enhance-code-and-examples Enhance code and examples (version 1.1) * Recursive json-dict key retrieval * Dirty existing skin data gathering This is a very very gross and terribly code implementation to extract existing skin data into a cache file. This code was half to learn how to interact with mecha AST rules. Most of this commit's changes *will* be reverted or overwritten in a later commit * Dirty skin download to source A quick-and-dirty utility script to process the texture url data from the previous commit and interactively download and name each skin file. This script will be deleted in a future commit but is included here so it can be retrieved by git at a future date if needed * Custom container for skin textures Creates and registers a custom container on the datapack object for skin textures, allowing them to be auto-mounted to the pack object upon load * Use bind() to process Skin objects - adds PIL (pillow) as dependancy - serializes skin images immediately on load to prepare for hash comparison * Bind the Skin container to a custom mecha rule processor * Structural pattern matching on AST First attempt to match the ast structure of the SkullOwner nbt compound. Ran into issues where the ast stores ordered entries, but we want to match unordered. * Evaluate ast to libnbt dict for robust syntax matching Matches the following cases of SkullOwner: ```SkullOwner:$texture SkullOwner:{Value:"$texture"} SkullOwner:{Value:"$texture",Name:"foo",Signature:"bar"} SkullOwner:{Name:"foo",Properties:{textures:[{Value:"$texture",Signature:"bar"}]}}```, with each additional field functioning as optional if needed * mineskin_upload function for api calls * trims unneeded data from skin texture url * Use provided random uuid from mineskin Apparently, the uuid no longer *must* be unique for the skin to work, but for safety we'll keep using a unique uuid since one is already provided by mineskin. * Save skin cache out when finished * Prompt the user for an API token if needed for submitting new skin textures * cached uuid is list of ints * Output uuid is array, not string * Untested ratelimited request resubmit * Use traceback diagnostics to report invalid textures and unhandled cases * Log unused cache entries * Store NbtTransformer in `ctx.inject` so it can be used on loot_tables * Apply ast rule to snbt within advancements and loot tables * [WIP] Usable Diagnostics on LootTables * Cleanup diagnostic printing. * Fix diagnostics on json files with multiple lines needing subs Since we're faking database entries, the lookup key for loottables needs to be unique, which it cant be when one file has two strings needing parsing. Instead we use an enumerated resource location * Spring cleaning * Update heart-canisters to new shortcuts * Fix typos * substitutions in lib_player_heads registry Also updates mecha to fix a bug with raising diagnostics within subcommands * Missing skin texture for compilation errors uses mecha's `yield Diagnostic` magic syntax to both raise errors and return a valid ast, which gets a magenta/black missing-texture * Pass proper location for lib_player_heads invalid skin names * Remove unused name field in skin_cache * Fix skin value subs for other structural cases * Error if GH Action needs to upload skin * REVERTABLE: GH Action Test Case * REVERTABLE: Enale GH Action on test branch * Allow processing of list-root item modifiers * REVERTABLE: Fix gh action skin test typo * Escape newlines in nbt from loot-tables, so mecha parses them right * Try raising exception to quit gh action * Try systemexit exception for gh action * Try sys.exit for gh action * Comment * Revert "REVERTABLE: GH Action Test Case" This reverts commit 11a74ba7e310cb4d37fa53038b3f3e7741958794. Revert "REVERTABLE: Fix gh action skin test typo" This reverts commit 3a25f69c5b25c738b526a4c2541696ad0771c7d9. Revert "REVERTABLE: Enale GH Action on test branch" This reverts commit fdf3ad0033fd88fada008be4e4f6942a6649687b. * Eliminate many #type:ignore with better type annotations * Support un-prefixed item modifier functions * small typo * Apply substitutions to all modules - first pass * Delete skin_downloader.py * Record parent_module on new skins * Cache record of any skins from other modules * Increment patch on non-native skin reference diff * Output wraps the build pipeline Moves gm4.output to use its exit phase instead, this allows all other plugins to process their exit phases first, doing things like cleaning up extra file containers or saving important data * Configure mecha to keep comments * Sub-modules properly record nonnative references * Clarify metallurgy mould naming * Initial commit * Metallurgy skins cleanup * Disable unused thoriub_brass substitution * Experimental lib_player_heads versioning warnings * Revert "Experimental lib_player_heads versioning warnings" This reverts commit ac60b4de4d07d3489de0090dceb406bd97d99ed7. This functionality would be better served in some hypothetical linting checker rather than here; additionally, this should ideally belong to the library files itself, not the player head management tool. For now, the maintainers will need to keep in mind that skin file changes should accompany lib_player_heads registry edits * Baryte lump typo * Update init.mcfunction * Cleanup unused OLD textures and correct some typos * Update mecha version to add 1.20 command tree support * Legacy loot_table * Update skin_cache.json --------- Co-authored-by: Bloo-dev --- beet-release.yaml | 9 +- beet.yaml | 9 +- gm4/commands.py | 21 +- gm4/plugins/manifest.py | 14 +- gm4/plugins/output.py | 11 +- gm4/plugins/player_heads.py | 266 +++++ gm4/plugins/versioning.py | 2 +- gm4/skin_cache.json | 1016 +++++++++++++++++ gm4/utils.py | 18 +- .../functions/init.mcfunction | 2 +- .../functions/init.mcfunction | 2 +- .../loot_tables/items/auto_crafter.json | 2 +- .../gm4_auto_crafting/skins/auto_crafter.png | Bin 0 -> 452 bytes .../loot_tables/items/block_compressor.json | 2 +- .../skins/block_compressor.png | Bin 0 -> 479 bytes .../functions/init.mcfunction | 2 +- .../loot_tables/items/disassembler.json | 2 +- .../gm4_disassemblers/skins/disassembler.png | Bin 0 -> 465 bytes .../items/enchantment_extractor.json | 2 +- .../skins/enchantment_extractor.png | Bin 0 -> 462 bytes .../loot_tables/items/enderpuff.json | 2 +- .../data/gm4_end_fishing/skins/enderpuff.png | Bin 0 -> 1916 bytes .../functions/machine/create_cart.mcfunction | 2 +- .../functions/machine/rotate/down.mcfunction | 2 +- .../functions/machine/rotate/east.mcfunction | 2 +- .../functions/machine/rotate/north.mcfunction | 2 +- .../functions/machine/rotate/south.mcfunction | 2 +- .../functions/machine/rotate/west.mcfunction | 2 +- .../functions/relocate/place_down.mcfunction | 2 +- .../relocate/summon_block_markers.mcfunction | 2 +- .../upgrade_machine_cart_stand.mcfunction | 2 +- .../upgrade_machine_stand.mcfunction | 10 +- .../loot_tables/items/ender_hopper.json | 2 +- .../gm4_ender_hoppers/skins/ender_hopper.png | Bin 0 -> 597 bytes .../skins/ender_hopper_display.png | Bin 0 -> 458 bytes .../skins/ender_hopper_display_2.png | Bin 0 -> 467 bytes .../loot_tables/items/forming_press.json | 2 +- .../gm4_forming_press/skins/forming_press.png | Bin 0 -> 518 bytes .../functions/init.mcfunction | 2 +- .../gm4/advancements/heart_canisters_max.json | 2 +- .../advancements/heart_canisters_tier_1.json | 2 +- .../advancements/heart_canisters_tier_2.json | 2 +- .../advancements/heart_canisters/page_1.json | 2 +- .../advancements/heart_canisters/page_2.json | 2 +- .../functions/init.mcfunction | 4 +- .../items/tier_1_heart_canister.json | 2 +- .../items/tier_2_heart_canister.json | 2 +- .../skins/heart_canister_tier_1.png | Bin 0 -> 980 bytes .../skins/heart_canister_tier_2.png | Bin 0 -> 1023 bytes .../functions/init.mcfunction | 2 +- .../check_structure.mcfunction | 2 +- .../liquid_init/lightning.mcfunction | 2 +- .../functions/upgrade_paths/1.4.mcfunction | 2 +- .../skins/lightning_liquid.png | Bin 0 -> 960 bytes .../skins/texture_connector.png | Bin 0 -> 273 bytes .../functions/liquid_value_update.mcfunction | 8 +- .../skins/liquid_minecart_display/empty.png | Bin 0 -> 405 bytes .../skins/liquid_minecart_display/full.png | Bin 0 -> 382 bytes .../skins/liquid_minecart_display/high.png | Bin 0 -> 392 bytes .../skins/liquid_minecart_display/low.png | Bin 0 -> 407 bytes .../loot_tables/items/liquid_tank.json | 2 +- .../gm4_liquid_tanks/skins/liquid_tank.png | Bin 0 -> 547 bytes .../liquid_init/beetroot_soup.mcfunction | 2 +- .../liquid_init/experience.mcfunction | 2 +- .../functions/liquid_init/glow_ink.mcfunction | 2 +- .../functions/liquid_init/honey.mcfunction | 2 +- .../functions/liquid_init/ink.mcfunction | 2 +- .../functions/liquid_init/lava.mcfunction | 2 +- .../functions/liquid_init/milk.mcfunction | 2 +- .../liquid_init/mushroom_stew.mcfunction | 2 +- .../liquid_init/powder_snow.mcfunction | 2 +- .../liquid_init/rabbit_stew.mcfunction | 2 +- .../functions/liquid_init/water.mcfunction | 2 +- .../skins/liquids/beetroot_soup.png | Bin 0 -> 899 bytes .../skins/liquids/experience.png | Bin 0 -> 578 bytes .../skins/liquids/glow_ink.png | Bin 0 -> 688 bytes .../skins/liquids/honey.png | Bin 0 -> 1061 bytes .../skins/liquids/ink.png | Bin 0 -> 704 bytes .../skins/liquids/lava.png | Bin 0 -> 1431 bytes .../skins/liquids/milk.png | Bin 0 -> 308 bytes .../skins/liquids/mushroom_stew.png | Bin 0 -> 815 bytes .../skins/liquids/powder_snow.png | Bin 0 -> 326 bytes .../skins/liquids/rabbit_stew.png | Bin 0 -> 933 bytes .../skins/liquids/water.png | Bin 0 -> 447 bytes .../functions/init.mcfunction | 2 +- .../advancements/metallurgy_blast_ore.json | 2 +- .../gm4/advancements/metallurgy_cast.json | 2 +- .../add_metal/add_aluminium.mcfunction | 2 +- .../casting/add_metal/add_barimium.mcfunction | 2 +- .../casting/add_metal/add_barium.mcfunction | 2 +- .../casting/add_metal/add_bismuth.mcfunction | 2 +- .../casting/add_metal/add_copper.mcfunction | 2 +- .../add_metal/add_curies_bismium.mcfunction | 2 +- .../casting/add_metal/add_thorium.mcfunction | 2 +- .../add_metal/add_thorium_brass.mcfunction | 2 +- .../functions/casting/create_mould.mcfunction | 2 +- .../functions/casting/set_mould.mcfunction | 2 +- .../casting/sustain_mould.mcfunction | 8 +- .../loot_tables/aluminium_band.json | 2 +- .../loot_tables/barimium_band.json | 2 +- .../loot_tables/barium_band.json | 2 +- .../loot_tables/baryte_lump.json | 2 +- .../loot_tables/bauxite_lump.json | 2 +- .../loot_tables/bismuth_band.json | 2 +- .../loot_tables/bismutite_lump.json | 2 +- .../loot_tables/copper_band.json | 2 +- .../loot_tables/curies_bismium_band.json | 2 +- .../loot_tables/malachite_lump.json | 2 +- .../loot_tables/thorianite_lump.json | 2 +- .../loot_tables/thorium_band.json | 2 +- .../loot_tables/thorium_brass_band.json | 2 +- .../gm4_metallurgy/skins/band/aluminium.png | Bin 0 -> 1524 bytes .../gm4_metallurgy/skins/band/barimium.png | Bin 0 -> 1538 bytes .../data/gm4_metallurgy/skins/band/barium.png | Bin 0 -> 1519 bytes .../gm4_metallurgy/skins/band/bismuth.png | Bin 0 -> 1529 bytes .../skins/band/copper_RETIRED.png | Bin 0 -> 1432 bytes .../skins/band/curies_bismium.png | Bin 0 -> 1531 bytes .../gm4_metallurgy/skins/band/mundane.png | Bin 0 -> 1396 bytes .../gm4_metallurgy/skins/band/thorium.png | Bin 0 -> 1326 bytes .../skins/band/thorium_brass_RETIRED.png | Bin 0 -> 1386 bytes .../gm4_metallurgy/skins/mould/cool_empty.png | Bin 0 -> 1128 bytes .../gm4_metallurgy/skins/mould/cool_metal.png | Bin 0 -> 1109 bytes .../gm4_metallurgy/skins/mould/hot_empty.png | Bin 0 -> 1143 bytes .../gm4_metallurgy/skins/mould/hot_metal.png | Bin 0 -> 1123 bytes .../gm4_metallurgy/skins/ore/aluminium.png | Bin 0 -> 1590 bytes .../data/gm4_metallurgy/skins/ore/barium.png | Bin 0 -> 1642 bytes .../data/gm4_metallurgy/skins/ore/bismuth.png | Bin 0 -> 1241 bytes .../skins/ore/copper_RETIRED.png | Bin 0 -> 1031 bytes .../data/gm4_metallurgy/skins/ore/thorium.png | Bin 0 -> 1528 bytes .../functions/init.mcfunction | 2 +- .../functions/init.mcfunction | 2 +- .../liquid_init/fire_resistance.mcfunction | 2 +- .../functions/liquid_init/floating.mcfunction | 2 +- .../functions/liquid_init/harming.mcfunction | 2 +- .../functions/liquid_init/healing.mcfunction | 2 +- .../liquid_init/invisibility.mcfunction | 2 +- .../functions/liquid_init/leaping.mcfunction | 2 +- .../functions/liquid_init/luck.mcfunction | 2 +- .../liquid_init/night_vision.mcfunction | 2 +- .../functions/liquid_init/poison.mcfunction | 2 +- .../liquid_init/regeneration.mcfunction | 2 +- .../liquid_init/slow_falling.mcfunction | 2 +- .../functions/liquid_init/slowness.mcfunction | 2 +- .../functions/liquid_init/strength.mcfunction | 2 +- .../liquid_init/strong_harming.mcfunction | 2 +- .../liquid_init/strong_healing.mcfunction | 2 +- .../liquid_init/strong_leaping.mcfunction | 2 +- .../liquid_init/strong_poison.mcfunction | 2 +- .../strong_regeneration.mcfunction | 2 +- .../liquid_init/strong_slowness.mcfunction | 2 +- .../liquid_init/strong_strength.mcfunction | 2 +- .../liquid_init/strong_swiftness.mcfunction | 2 +- .../strong_turtle_master.mcfunction | 2 +- .../liquid_init/swiftness.mcfunction | 2 +- .../liquid_init/turtle_master.mcfunction | 2 +- .../liquid_init/water_breathing.mcfunction | 2 +- .../functions/liquid_init/weakness.mcfunction | 2 +- .../skins/liquids/fire_resistance.png | Bin 0 -> 1238 bytes .../skins/liquids/floating.png | Bin 0 -> 884 bytes .../skins/liquids/harming.png | Bin 0 -> 925 bytes .../skins/liquids/healing.png | Bin 0 -> 1025 bytes .../skins/liquids/invisibility.png | Bin 0 -> 1177 bytes .../skins/liquids/leaping.png | Bin 0 -> 1217 bytes .../gm4_potion_liquids/skins/liquids/luck.png | Bin 0 -> 1176 bytes .../skins/liquids/night_vision.png | Bin 0 -> 1133 bytes .../skins/liquids/poison.png | Bin 0 -> 1047 bytes .../skins/liquids/regeneration.png | Bin 0 -> 1109 bytes .../skins/liquids/slow_falling.png | Bin 0 -> 810 bytes .../skins/liquids/slowness.png | Bin 0 -> 999 bytes .../skins/liquids/strength.png | Bin 0 -> 957 bytes .../skins/liquids/swiftness.png | Bin 0 -> 852 bytes .../skins/liquids/turtle_master.png | Bin 0 -> 1027 bytes .../skins/liquids/water_breathing.png | Bin 0 -> 1184 bytes .../skins/liquids/weakness.png | Bin 0 -> 1036 bytes .../data/gm4/advancements/relocators.json | 2 +- .../loot_tables/items/relocator_empty.json | 2 +- .../loot_tables/items/relocator_full.json | 2 +- .../gm4_relocators/skins/relocator_empty.png | Bin 0 -> 672 bytes .../gm4_relocators/skins/relocator_full.png | Bin 0 -> 627 bytes .../data/gm4/advancements/scuba_gear.json | 2 +- .../loot_tables/items/scuba_helmet.json | 2 +- .../gm4_scuba_gear/skins/scuba_helmet.png | Bin 0 -> 2334 bytes .../loot_tables/items/smeltery.json | 2 +- .../data/gm4_smelteries/skins/smeltery.png | Bin 0 -> 578 bytes .../items/teleportation_anchor.json | 2 +- .../items/teleportation_jammer.json | 2 +- .../skins/teleportation_anchor.png | Bin 0 -> 680 bytes .../skins/teleportation_jammer.png | Bin 0 -> 456 bytes .../advancements/tinkering_compressors.json | 2 +- .../functions/relocate/place_down.mcfunction | 2 +- .../items/tinkering_compressor.json | 2 +- .../skins/tinkering_compressor.png | Bin 0 -> 482 bytes .../functions/items/disarming.mcfunction | 2 +- .../items/crafting_table_landmine.json | 2 +- .../loot_tables/items/dirt_landmine.json | 2 +- .../loot_tables/items/grass_landmine.json | 2 +- .../loot_tables/items/invisible_landmine.json | 2 +- .../items/netherrack_landmine.json | 2 +- .../items/stone_bricks_landmine.json | 2 +- .../loot_tables/items/stone_landmine.json | 2 +- .../loot_tables/items/tnt_landmine.json | 2 +- .../skins/disguised/crafting_table.png | Bin 0 -> 891 bytes .../skins/disguised/dirt.png | Bin 0 -> 754 bytes .../skins/disguised/grass.png | Bin 0 -> 858 bytes .../skins/disguised/invisible.png | Bin 0 -> 546 bytes .../skins/disguised/netherrack.png | Bin 0 -> 748 bytes .../skins/disguised/stone.png | Bin 0 -> 661 bytes .../skins/disguised/stone_bricks.png | Bin 0 -> 663 bytes .../data/gm4_tnt_landmines/skins/landmine.png | Bin 0 -> 395 bytes .../functions/init.mcfunction | 2 +- .../functions/init.mcfunction | 2 +- .../recipes/crystals/instant_damage.json | 2 +- .../recipes/crystals/instant_health.json | 2 +- .../recipes/crystals/jump_boost.json | 2 +- .../loot_tables/recipes/crystals/poison.json | 2 +- .../recipes/crystals/regeneration.json | 2 +- .../loot_tables/recipes/crystals/speed.json | 2 +- .../recipes/crystals/strength.json | 2 +- .../skins/crystal/instant_damage.png | Bin 0 -> 1777 bytes .../skins/crystal/instant_health.png | Bin 0 -> 1783 bytes .../skins/crystal/jump_boost.png | Bin 0 -> 1886 bytes .../skins/crystal/poison.png | Bin 0 -> 2068 bytes .../skins/crystal/regeneration.png | Bin 0 -> 1933 bytes .../skins/crystal/speed.png | Bin 0 -> 1682 bytes .../skins/crystal/strength.png | Bin 0 -> 1819 bytes .../functions/liquid_init/harming.mcfunction | 2 +- .../functions/liquid_init/healing.mcfunction | 2 +- .../functions/liquid_init/leaping.mcfunction | 2 +- .../functions/liquid_init/poison.mcfunction | 2 +- .../liquid_init/regeneration.mcfunction | 2 +- .../functions/liquid_init/strength.mcfunction | 2 +- .../liquid_init/swiftness.mcfunction | 2 +- .../functions/liquid_init/wormhole.mcfunction | 2 +- .../skins/liquids/wormhole.png | Bin 0 -> 624 bytes lib_custom_crafters/beet.yaml | 9 + .../loot_tables/items/custom_crafter.json | 2 +- .../skins/custom_crafter.png | Bin 0 -> 388 bytes lib_player_heads/README.md | 34 + module.yaml | 2 + poetry.lock | 517 +++++---- pyproject.toml | 3 +- 241 files changed, 1844 insertions(+), 387 deletions(-) create mode 100644 gm4/plugins/player_heads.py create mode 100644 gm4/skin_cache.json create mode 100644 gm4_auto_crafting/data/gm4_auto_crafting/skins/auto_crafter.png create mode 100644 gm4_block_compressors/data/gm4_block_compressors/skins/block_compressor.png create mode 100644 gm4_disassemblers/data/gm4_disassemblers/skins/disassembler.png create mode 100644 gm4_enchantment_extractors/data/gm4_enchantment_extractors/skins/enchantment_extractor.png create mode 100644 gm4_end_fishing/data/gm4_end_fishing/skins/enderpuff.png create mode 100644 gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper.png create mode 100644 gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display.png create mode 100644 gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display_2.png create mode 100644 gm4_forming_press/data/gm4_forming_press/skins/forming_press.png create mode 100644 gm4_heart_canisters/data/gm4_heart_canisters/skins/heart_canister_tier_1.png create mode 100644 gm4_heart_canisters/data/gm4_heart_canisters/skins/heart_canister_tier_2.png create mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/skins/lightning_liquid.png create mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/skins/texture_connector.png create mode 100644 gm4_liquid_minecarts/data/gm4_liquid_minecarts/skins/liquid_minecart_display/empty.png create mode 100644 gm4_liquid_minecarts/data/gm4_liquid_minecarts/skins/liquid_minecart_display/full.png create mode 100644 gm4_liquid_minecarts/data/gm4_liquid_minecarts/skins/liquid_minecart_display/high.png create mode 100644 gm4_liquid_minecarts/data/gm4_liquid_minecarts/skins/liquid_minecart_display/low.png create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/skins/liquid_tank.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/beetroot_soup.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/experience.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/glow_ink.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/honey.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ink.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/lava.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/milk.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/mushroom_stew.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/powder_snow.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/rabbit_stew.png create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/water.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/aluminium.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/barimium.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/barium.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/bismuth.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/copper_RETIRED.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/curies_bismium.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/mundane.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/thorium.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/band/thorium_brass_RETIRED.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/mould/cool_empty.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/mould/cool_metal.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/mould/hot_empty.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/mould/hot_metal.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/ore/aluminium.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/ore/barium.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/ore/bismuth.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/ore/copper_RETIRED.png create mode 100644 gm4_metallurgy/data/gm4_metallurgy/skins/ore/thorium.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/fire_resistance.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/floating.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/harming.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/healing.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/invisibility.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/leaping.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/luck.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/night_vision.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/poison.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/regeneration.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slow_falling.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slowness.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/strength.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/swiftness.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/turtle_master.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/water_breathing.png create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/weakness.png create mode 100644 gm4_relocators/data/gm4_relocators/skins/relocator_empty.png create mode 100644 gm4_relocators/data/gm4_relocators/skins/relocator_full.png create mode 100644 gm4_scuba_gear/data/gm4_scuba_gear/skins/scuba_helmet.png create mode 100644 gm4_smelteries/data/gm4_smelteries/skins/smeltery.png create mode 100644 gm4_teleportation_anchors/data/gm4_teleportation_anchors/skins/teleportation_anchor.png create mode 100644 gm4_teleportation_anchors/data/gm4_teleportation_anchors/skins/teleportation_jammer.png create mode 100644 gm4_tinkering_compressors/data/gm4_tinkering_compressors/skins/tinkering_compressor.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/crafting_table.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/dirt.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/grass.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/invisible.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/netherrack.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/stone.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/stone_bricks.png create mode 100644 gm4_tnt_landmines/data/gm4_tnt_landmines/skins/landmine.png create mode 100644 gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/instant_damage.png create mode 100644 gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/instant_health.png create mode 100644 gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/jump_boost.png create mode 100644 gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/poison.png create mode 100644 gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/regeneration.png create mode 100644 gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/speed.png create mode 100644 gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/strength.png create mode 100644 gm4_zauber_liquids/data/gm4_zauber_liquids/skins/liquids/wormhole.png create mode 100644 lib_custom_crafters/data/gm4_custom_crafters/skins/custom_crafter.png create mode 100644 lib_player_heads/README.md diff --git a/beet-release.yaml b/beet-release.yaml index 0484f05d37..4ef2e3cef5 100644 --- a/beet-release.yaml +++ b/beet-release.yaml @@ -6,6 +6,9 @@ pipeline: - gm4.plugins.manifest.write_meta - broadcast: 'gm4_*' extend: 'beet.yaml' + require: + - gm4.plugins.output.release + - gm4.plugins.player_heads pipeline: - gm4.plugins.manifest.write_updates - gm4.plugins.manifest.write_credits @@ -13,7 +16,11 @@ pipeline: meta: {copy_files: {data_pack: {LICENSE.md: "../LICENSE.md"}}} - gm4.plugins.readme_generator - gm4.plugins.write_mcmeta - - gm4.plugins.output.release + meta: + mecha: + formatting: + layout: preserve + nbt_compact: True meta: autosave: diff --git a/beet.yaml b/beet.yaml index dacc108d1d..bcaf3a017c 100644 --- a/beet.yaml +++ b/beet.yaml @@ -3,6 +3,13 @@ pipeline: - gm4.plugins.manifest.create - broadcast: 'gm4_*' extend: 'beet.yaml' + require: + - gm4.plugins.output + - gm4.plugins.player_heads pipeline: - gm4.plugins.write_mcmeta - - gm4.plugins.output + meta: + mecha: + layout: preserve + nbt_compact: True + cmd_compact: True diff --git a/gm4/commands.py b/gm4/commands.py index 156cde5a9c..fa7e974193 100644 --- a/gm4/commands.py +++ b/gm4/commands.py @@ -39,11 +39,24 @@ def dev(ctx: click.Context, project: Project, modules: tuple[str], watch: bool, config = { "broadcast": modules, "extend": "beet.yaml", - "require": ["beet.contrib.livereload"] if reload else [], + "require": [ + "gm4.plugins.output", + "beet.contrib.livereload", + "gm4.plugins.player_heads" + ] if reload else [ + "gm4.plugins.output", + "gm4.plugins.player_heads" + ], "pipeline": [ - "gm4.plugins.write_mcmeta", - "gm4.plugins.output" - ] + "gm4.plugins.write_mcmeta" + ], + "meta": { + "mecha" : { + "formatting":{ + "layout": "preserve", + "nbt_compact": True, + "cmd_compact": True + } } } } project.config_overrides = [ f"pipeline[] = {json.dumps(config)}", diff --git a/gm4/plugins/manifest.py b/gm4/plugins/manifest.py index 757406c875..85e5c7829c 100644 --- a/gm4/plugins/manifest.py +++ b/gm4/plugins/manifest.py @@ -1,4 +1,4 @@ -from beet import Context, TextFile +from beet import Context, TextFile, JsonFile from pathlib import Path from typing import Any from functools import cache @@ -97,6 +97,7 @@ def update_patch(ctx: Context): release_dir = Path('release') / version manifest_file = release_dir / "meta.json" logger = parent_logger.getChild("update_patch") + skin_cache = JsonFile(source_path="gm4/skin_cache.json").data modules = ctx.cache["gm4_manifest"].json["modules"] @@ -119,7 +120,16 @@ def update_patch(ctx: Context): deps = _traverse_includes(id) | {"base"} deps_dirs = [element for sublist in [[f"{d}/data", f"{d}/*py"] for d in deps] for element in sublist] - diff = run(["git", "diff", last_commit, "--shortstat", "--", f"{id}/data", f"{id}/*.py"] + deps_dirs) if last_commit else True + # add watches to skins this module uses from other modules. NOTE this could be done in a more extendable way in the future, rather than "hardcoded" + skin_dep_dirs: list[str] = [] + for skin_ref in skin_cache["nonnative_references"].get(id, []): + d = skin_cache["skins"][skin_ref]["parent_module"] + ns, path = skin_ref.split(":") + skin_dep_dirs.append(f"{d}/data/{ns}/skins/{path}.png") + + watch_dirs = deps_dirs+skin_dep_dirs + + diff = run(["git", "diff", last_commit, "--shortstat", "--", f"{id}/data", f"{id}/*.py"] + watch_dirs) if last_commit else True if not diff and released: # No changes were made, keep the same patch version diff --git a/gm4/plugins/output.py b/gm4/plugins/output.py index c7e7aabcd3..84722c5fb8 100644 --- a/gm4/plugins/output.py +++ b/gm4/plugins/output.py @@ -1,6 +1,5 @@ from beet import Context from pathlib import Path -from bolt import Module import os import json import requests @@ -18,12 +17,13 @@ USER_AGENT = "Gamemode4Dev/GM4_Datapacks/release-pipeline (gamemode4official@gmail.com)" def beet_default(ctx: Context): - """Saves the datapack to the ./out folder.""" + """Saves the datapack to the ./out folder in it's exit phase. + Should be first in pipeline to properly wrap all other plugins cleanup phases""" version = os.getenv("VERSION", "1.20") out_dir = Path("out") - ctx.data[Module].clear() # manually cleanup bolt modules - + yield # wait for exit phase, after other plugins cleanup + ctx.data.save( path=out_dir / f"{ctx.project_id}_{version.replace('.', '_')}", overwrite=True, @@ -33,6 +33,7 @@ def beet_default(ctx: Context): def release(ctx: Context): """ Saves the zipped datapack and metadata to the ./release/{version} folder. + Should be first in pipeline to properly wrap all other plugins cleanup phases If the module has the `version` and `meta.modrinth.project_id` fields, and `BEET_MODRINTH_TOKEN` environment variable is set, will try to publish a @@ -46,7 +47,7 @@ def release(ctx: Context): release_dir = Path("release") / version_dir file_name = f"{ctx.project_id}_{version_dir.replace('.', '_')}.zip" - ctx.data[Module].clear() # manually cleanup bolt modules + yield # wait for exit phase, after other plugins cleanup ctx.data.save( path=release_dir / file_name, diff --git a/gm4/plugins/player_heads.py b/gm4/plugins/player_heads.py new file mode 100644 index 0000000000..0c48f51a05 --- /dev/null +++ b/gm4/plugins/player_heads.py @@ -0,0 +1,266 @@ +import base64 +import hashlib +import json +import logging +import os +import sys +import time +from dataclasses import replace +from io import BytesIO +from typing import Any, Callable, ClassVar, Generator + +import requests +from beet import Context, FileDeserialize, JsonFile, PngFile +from mecha import CompilationUnit, Diagnostic, Mecha, MutatingReducer, rule +from mecha.ast import ( + AstChildren, + AstCommand, + AstNbtCompound, + AstNbtCompoundEntry, + AstNbtPath, + AstNbtPathKey, + AstResourceLocation, +) +from nbtlib import IntArray # type: ignore +from PIL.Image import Image +from tokenstream import set_location + +from gm4.utils import nested_get + +parent_logger = logging.getLogger("gm4.player_heads") + +USER_AGENT = "Gamemode4Dev/GM4_Datapacks/player_head_management (gamemode4official@gmail.com)" +MISSING_TEXTURE_SKIN = "eyJ0ZXh0dXJlcyIgOiB7ICJTS0lOIiA6IHsgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9kYWUyOTA0YTI4NmI5NTNmYWI4ZWNlNTFkNjJiZmNjYjMyY2IwMjc0OGY0NjdjMDBiYzMxODg1NTk4MDUwNThiIn19fQ==" + +def beet_default(ctx: Context): + ctx.data.extend_namespace.append(Skin) # register new filetype to datapack + tf = ctx.inject(SkinNbtTransformer) + ctx.inject(Mecha).transform.extend(tf) # register new ruleset to mecha + + yield + tf.cache_nonnative_references() + tf.log_unused_textures() + tf.output_skin_cache() + ctx.data[Skin].clear() # cleanup skin files from output pack + +class Skin(PngFile): + """Class representing a skin texture file.""" + scope: ClassVar[tuple[str, ...]] = ("skins",) + extension: ClassVar[str] = ".png" + image: ClassVar[FileDeserialize[Image]] = FileDeserialize() # purely here to solve type-warnings on PIL images + + +class SkinNbtTransformer(MutatingReducer): + """Reducer class defining custom mecha parsing rules for skin texture data, and storing needed data for those operations""" + def __init__(self, ctx: Context): + self.ctx: Context = ctx + self.skin_cache = JsonFile(source_path="gm4/skin_cache.json").data + self.used_textures: list[str] = [] + super().__init__() + + @rule(AstNbtCompoundEntry) + def skullowner_substitutions(self, node: AstNbtCompoundEntry, **kwargs: Any) -> Generator[Diagnostic, None, AstNbtCompoundEntry]: + if node.key.value == "SkullOwner": + match node.value.evaluate(): + case val if "$" in val: + skin_val, uuid, d = self.retrieve_texture(val, **kwargs) + if d: + yield d + node = replace(node, value=AstNbtCompound.from_value({ + "Id": IntArray(uuid), + "Properties": { + "textures":[{ + "Value": skin_val + }] + } + })) + case {"Value": str(val), **rest} if "$" in val: + skin_val, uuid, d = self.retrieve_texture(val, **kwargs) + if d: + yield d + node = replace(node, value=AstNbtCompound.from_value( + ({"Name": n} if (n:=rest.get("Name")) else {}) | + {"Id": IntArray(uuid), + "Properties": { + "textures":[ + {"Value": skin_val} | + ({"Signature": s} if (s:=rest.get("Signature")) else {})] + } + } + )) + case {"Properties": {"textures": [{"Value": str(val), **tex_rest}]}, **root_rest} if "$" in val: + skin_val, uuid, d = self.retrieve_texture(val, **kwargs) + if d: + yield d + node = replace(node, value=AstNbtCompound.from_value( + ({"Name": n} if (n:=root_rest.get("Name")) else {}) | + {"Id": IntArray(uuid), + "Properties": { + "textures":[ + {"Value": skin_val} | + ({"Signature": s} if (s:=tex_rest.get("Signature")) else {})] + } + } + )) + case _: + if "$" in node.value.evaluate().snbt(): + yield Diagnostic("warn", f"Unhandled SkullOwner substitution. Format failed to match known schemas.", + filename=kwargs.get("filename"), file=kwargs.get("file")) + return node + + @rule(AstCommand, identifier="data:modify:storage:target:targetPath:append:value:value") + def lib_player_heads_skullowner_subs(self, node: AstCommand) -> Generator[Diagnostic, None, AstCommand]: + """Captures skin texture data in lib_player_heads setup""" + ast_storage, ast_storage_path, ast_nbt = node.arguments + if isinstance(ast_storage, AstResourceLocation) and isinstance(ast_storage_path, AstNbtPath) and isinstance(ast_nbt, AstNbtCompound) and isinstance(path_key:=ast_storage_path.components[0], AstNbtPathKey): + if ast_storage.get_value() == "gm4_player_heads:register" and path_key.value == "heads": + nbt: dict[str, Any] = ast_nbt.evaluate() + match nbt: + case {"value": str(value)} if "$" in value: + skin_val, _, d = self.retrieve_texture(value) + if d: + erroring_subnode = next(i for i in ast_nbt.entries if i.key.value == "value") + yield set_location(d, erroring_subnode) + node = replace(node, arguments=AstChildren((ast_storage, ast_storage_path, AstNbtCompound.from_value(nbt|{"value": skin_val})))) + case _: + pass + return node + + def retrieve_texture(self, skin_name: str, **kwargs: Any) -> tuple[str, list[int], Diagnostic|None]: + skin_name = skin_name.lstrip("$") + if ":" not in skin_name: + skin_name = f"{self.ctx.project_id}:{skin_name}" + self.used_textures.append(skin_name) + cached_data = self.skin_cache["skins"].get(skin_name, {"hash": None, "parent_module": self.ctx.project_id}) + + if cached_data["parent_module"] == self.ctx.project_id: # if the skin belongs to another module, just trust the cache to be right. The skin.png file isn't available to check + try: + skin_file: Skin = self.ctx.data[Skin][skin_name] + except KeyError: + d = Diagnostic("error", f"Unknown skin \'{skin_name}\'", + filename=kwargs.get("filename"), + file=kwargs.get("file") + ) + return MISSING_TEXTURE_SKIN, [0,0,0,0], d + else: + skin_hash = hashlib.sha1(skin_file.image.tobytes()).hexdigest() #type: ignore + + if skin_hash != cached_data["hash"]: + # the image file contents have changed - upload the new image + value, uuid = self.mineskin_upload(skin_file, f"{skin_name.split(':')[-1]}.png") + if value is None or uuid is None: + return MISSING_TEXTURE_SKIN, [0,0,0,0], None # skin upload failed, don't cache the result and return missing texture + self.skin_cache["skins"][skin_name] = { + "uuid": uuid, + "value": value, + "hash": skin_hash, + "parent_module": self.ctx.project_id + } + return value, uuid, None + return cached_data["value"], cached_data["uuid"], None + + def mineskin_upload(self, skin: Skin, filename: str) -> tuple[str|None, list[int]|None]: + logger = parent_logger.getChild(f"mineskin_upload.{self.ctx.project_id}") + if os.getenv("GITHUB_ACTIONS"): + logger.error(f"Failed to upload {filename}. Github Actions cannot upload skins via the mineskin api") + sys.exit(1) # quit the build and mark the github action as failed + + token = self.ctx.inject(MineskinAuthManager).token + + buf = BytesIO() + skin.image.save(buf, format="PNG") + res = requests.post( + url='https://api.mineskin.org/generate/upload', + data={"name":"GM4_Skin", "visibility":0}, + files={"file":(filename, buf.getvalue(), 'text/x-spam')}, + headers={"User-Agent": USER_AGENT, "Authorization": "Bearer "+token} + ) + if res.status_code == 429: + logger.info(f"Mineskin request ratelimited! Waiting and trying again") + next_request_time = res.json()["nextRequest"] + wait_time = max(next_request_time - time.time(), 0) + time.sleep(wait_time) + return self.mineskin_upload(skin, filename) + elif res.status_code != 200: + logger.error(f"Mineskin upload failed: {res.status_code} {res.text}") + return None, None + logger.info(f"New skin texture \'{filename}\' successfully uploaded via Mineskin") + + # strip out unnecessary fields encoded within texture value + value = res.json()["data"]["texture"]["value"] + decoded_value = json.loads(base64.b64decode(value).decode('utf-8')) + trimmed_decoded_value = {"textures": {"SKIN": {"url": decoded_value["textures"]["SKIN"]["url"]}}} + trimmed_value = str(base64.b64encode(str(trimmed_decoded_value).encode('utf-8')), 'utf-8') + + # split hex uuid into 4 ints + uuid = res.json()["uuid"] + i = range(0,33,8) + segmented_uuid = [uuid[a:b] for a,b in zip(i, i[1:])] + signed_int: Callable[[str], int] = lambda s: int.from_bytes(bytes.fromhex(s), byteorder="big", signed=True) + uuid_arr = list(map(signed_int, segmented_uuid)) + return trimmed_value, uuid_arr + + def log_unused_textures(self): + logger = parent_logger.getChild(self.ctx.project_id) + cached_member_textures = [e for e in self.skin_cache["skins"].keys() if e.split(":")[0] == self.ctx.project_id] + for tex in set(cached_member_textures) - set(self.used_textures): + logger.info(f"Cached skin texture {tex} is not referenced. Consider manually cleaning up skin_cache.json") + + def cache_nonnative_references(self): + """Adds any skin references from another module into skin_cache.json, so changes can trigger patch increments""" + if (nonnative_refs := set(self.used_textures) - set(self.ctx.data[Skin])): + self.skin_cache["nonnative_references"][self.ctx.project_id] = list(nonnative_refs) + else: + self.skin_cache["nonnative_references"].pop(self.ctx.project_id, None) + + def output_skin_cache(self): + JsonFile(self.skin_cache).dump(origin="", path="gm4/skin_cache.json") + +def process_json_files(ctx: Context): + """Passes nbt contained in advancements, loot_tables ect.. through the custom Mecha AST rule for appropiate texture replacements""" + tf = ctx.inject(SkinNbtTransformer) + mc = ctx.inject(Mecha) + + def transform_snbt(snbt: str, db_entry_key: str) -> str: + escaped_snbt = snbt.replace("\n", "\\\\n") + # NOTE snbt in loot-tables reacts weird to \n characters. Both \n and \\\\n produce the same ingame output (\\n). + # gm4 only has one case of \n in loot tables, so this replacement forces \n->\\\\n for the mecha parser to read it right. + # this may need to be altered in the future, but for now this means that \\\\n, while valid in vanilla loot-tables, will not + # work after being put through the mecha parser + node = mc.parse(escaped_snbt, type=AstNbtCompound) # parse string to AST + filename = os.path.relpath(jsonfile.original.source_path, ctx.directory) if jsonfile.original.source_path else None # get relative filepath for Diagnostics + mc.database.update({db_entry_key: CompilationUnit(source=snbt)}) #type:ignore # register fake CompilationUnit for Diagnostic printing, using unique string as key instead of the File() object, to support multiple entries from the same file + return mc.serialize(tf.invoke(node, filename=filename, file=db_entry_key)) # run AST through custom rule, and serialize back to string, passing along data for Diagnostic + + for name, jsonfile in [*ctx.data.loot_tables.items(), *ctx.data.item_modifiers.items()]: + # item modifiers, annoyingly, can have a list as the root, so we wrap in a dict to use nested_get + contents = {"listroot": jsonfile.data} if type(jsonfile.data) is list else jsonfile.data + + for func_list in nested_get(contents, "functions"): + f: Callable[[Any], bool] = lambda e: e["function"].removeprefix('minecraft:')=="set_nbt" + for i, entry in enumerate(filter(f, func_list)): + entry["tag"] = transform_snbt(entry["tag"], db_entry_key=f"{name}_{i}") + + for name, jsonfile in ctx.data.advancements.items(): + for i, entry in enumerate(nested_get(jsonfile.data, "icon")): + entry["nbt"] = transform_snbt(entry["nbt"], db_entry_key=f"{name}_{i}") + + # send any raised diagnostic errors to Mecha for reporting + mc.diagnostics.extend(tf.diagnostics) + + +class MineskinAuthManager(): + """A process for managing mineskin access credentials, prompting the user if needed""" + def __init__(self, ctx: Context): + token_cache = ctx.cache.get("mineskin").json.get("token") # type: ignore , cache.get ensures cache exists + + if token_cache is None: + # request token from user + print(("\033[93mThis build has detected a changed skin file, but no Mineskin API key is available locally.\n\t" + "Visit mineskin.org/account, login or create an account with google, and create an API key.\n\t" + "Beet will cache your token locally, but save the api key and key secret in a secure location in case the cache resets.\n\t" + "You do not need to provide mineskin with your Minecraft account details unless you wish to\033[0m.")) + self.token = input("API Key >>") + ctx.cache["mineskin"].json = {"token": self.token} + return + self.token = token_cache diff --git a/gm4/plugins/versioning.py b/gm4/plugins/versioning.py index fa24fcc651..d943ee5ed4 100644 --- a/gm4/plugins/versioning.py +++ b/gm4/plugins/versioning.py @@ -216,7 +216,7 @@ def versioned_namespace(ctx: Context, version: Version): "replace": f"{versioned_namespace}:\\1" })) ctx.require(find_replace(data_pack={"match": "*"}, substitute={ - "find": f"(? str: """Run a shell command and return the stdout.""" @@ -29,4 +30,19 @@ def int_rep(self) -> int: """returns integer representation of version, for use in datapack scoreboards""" if type(None) in map(type, [self.major, self.minor, self.patch]): raise TypeError(f"Version number cannot be converted to integer when one or more fields are not set") - return 100_000*self.major + 1_000*self.minor + self.patch # type: ignore \ No newline at end of file + return 100_000*self.major + 1_000*self.minor + self.patch # type: ignore + +def nested_get(d: dict[str, Any], key: str) -> list[Any]: + """Recursively traverses a string-keyed dict (like minecraft json files) for the specified key, returning all that exist + returns empty list and throws no errors if key does not exist""" + ret_list: list[Any] = [] + for k, v in d.items(): + if k == key: + ret_list.append(d[k]) + elif isinstance(v, dict): + ret_list.extend(nested_get(d[k], key)) + elif isinstance(v, list): + for elem in d[k]: + if isinstance(elem, dict): + ret_list.extend(nested_get(elem, key)) #type: ignore ; NBT is hard to type due to its nested nature + return ret_list diff --git a/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction b/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction index fc83ff8f5f..1979d9458b 100644 --- a/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction +++ b/gm4_animi_shamir/data/gm4_animi_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ execute unless score animi_shamir gm4_earliest_version < animi_shamir gm4_module scoreboard players set animi_shamir gm4_modules 1 # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_animi_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_animi_shamir:band/v1",name:"[Drop to Fix Item] gm4_animi_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"animi",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-1332644679,659216762,2108439484,664728976],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420117,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.animi","fallback":"Animi"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_animi_shamir:band/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_animi_shamir:band/v1",name:"[Drop to Fix Item] gm4_animi_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"animi",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:3420117,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.animi","fallback":"Animi"}']}}} # guidebook execute if score gm4_guidebook load.status matches 1 run summon marker ~ 315.331110999018 ~ {CustomName:'"gm4_animi_shamir_guide"',Tags:["gm4_guide"],data:{type:"_expansion",base:"metallurgy",id:"animi_shamir",page_count:2,line_count:1,module_name:"Animi Shamir"}} diff --git a/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction b/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction index 3b7f947e66..369883ba65 100644 --- a/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction +++ b/gm4_audere_shamir/data/gm4_audere_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ scoreboard players set audere_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_audere_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_audere_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_audere_shamir:band/v1",name:"[Drop to Fix Item] gm4_audere_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"audere",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-758190455,118414880,1677653096,2076204799],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420120,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.audere","fallback":"Audere"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_audere_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_audere_shamir:band/v1",name:"[Drop to Fix Item] gm4_audere_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"audere",metal:{type:"barium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barium",CustomModelData:3420120,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F0EAD6","translate":"item.gm4.metallurgy.band","fallback":"Barium Band","with":[{"translate":"item.gm4.metallurgy.barium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.audere","fallback":"Audere"}']}}} schedule function gm4_audere_shamir:main 16t diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json b/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json index ea07db077c..ca780c6f8d 100644 --- a/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json +++ b/gm4_auto_crafting/data/gm4_auto_crafting/loot_tables/items/auto_crafter.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420140,gm4_machines:{id:\"auto_crafter\"},SkullOwner:{Name:\"gm4_auto_crafter\",Id:[I;925477182,1548502938,-926454109,-774539107],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY1NjM4MTc3MTIyMywKICAicHJvZmlsZUlkIiA6ICJjMTNkYzkxZjg1YjA0ZWM4OGU2NDk5YzdjZDc4Zjk3MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJjYXNzdGhlY3J5cHRpZCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jZjI4NWUwYjc1NGNhMDU3NDllODYzMjA0MmZkZmEyZGRkYjIyMjNhYWVmNGU3NjczOTdlNzg5Y2ZjYTYzYjFhIiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{CustomModelData:3420140,gm4_machines:{id:\"auto_crafter\"},SkullOwner:{Name:\"gm4_auto_crafter\",Signature:\"gm4_machine\",Value:\"$auto_crafter\"}}" }, { "function": "set_name", diff --git a/gm4_auto_crafting/data/gm4_auto_crafting/skins/auto_crafter.png b/gm4_auto_crafting/data/gm4_auto_crafting/skins/auto_crafter.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4c37e8957b135690c9e063eb2b9c88a6ce70bc GIT binary patch literal 452 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC?pEaSW-L^Y)sd_u&AMwuk0R zgFW9(;ww7&D5ZC@!n;1Dj@A1w9CU4Y6fYn+M@pMRPq8Fp+LueA%iUNN54M=JzMskT z-08$l%bMeh4_$rw^!c;Ona_I;Pe`4|Y`}LoKK=iy`*-hGhrYkDEOD;0qd>yq4&&^? zbB6vxIU*mw{fb(BFMTR+#4}6w_V$!at_DLkX;+ElQ?u8t`hIi4xrI8uGmjV^ljvG> zAnLS@=PAJztG-93G9ODkaq^|+zW2c*tj8o6)Cyx(-z(qhcEB?Ho{qz`)RfGqe~&`H z+O0Na`mAzL;_&Co!sjeEnH+Tsd|Nd?)a{BI+kfFkhxf@BvS)qveSJIcg21fjfArpS z9yTl5*KPaoQO5gXksoWq`5Ip4Ts$@3xZ#=Q{iE{?xN6RQ=Usdt|MBkq(icpg@4h8` zP5by^_k&+Q#;x|1*f#NV>|4&)Qy)J|4eWE2X1ieXeD@9EWt&^g=j!gceY|}A+Mn(6 ohC6yWTK>J~RKgB6Rqtb%B7O2I--q-yz}R8%boFyt=akR{03n>w;s5{u literal 0 HcmV?d00001 diff --git a/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json b/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json index ff252ed0f4..76d5ce0bcd 100644 --- a/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json +++ b/gm4_block_compressors/data/gm4_block_compressors/loot_tables/items/block_compressor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420130,gm4_machines:{id:\"block_compressor\"},SkullOwner:{Name:\"gm4_block_compressor\",Id:[I;788137431,1839549415,-1633195690,-1508391925],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0Mjg1MzYzMTM1MiwKICAicHJvZmlsZUlkIiA6ICI0ZWQ4MjMzNzFhMmU0YmI3YTVlYWJmY2ZmZGE4NDk1NyIsCiAgInByb2ZpbGVOYW1lIiA6ICJGaXJlYnlyZDg4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzZmYTkzMjMxZjZmNjVkNjc1NDI2NjgyMzE3NWIwOWFmNGNhN2E1NzQ1NDQzYjMyNjFlZGE3OGUzNTk5NTgyYmYiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==\"}]}}}" + "tag": "{CustomModelData:3420130,gm4_machines:{id:\"block_compressor\"},SkullOwner:{Name:\"gm4_block_compressor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$block_compressor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_block_compressors/data/gm4_block_compressors/skins/block_compressor.png b/gm4_block_compressors/data/gm4_block_compressors/skins/block_compressor.png new file mode 100644 index 0000000000000000000000000000000000000000..9d5b37f0a8dee77a4b7ef9095adf994bf7f6016b GIT binary patch literal 479 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU|iG})hFRWhj3Mpr#Ro;dL+==Dj+I8?$>kOTj0!xyF ziq$3saPB`}^1=GYY4y4F%1Uq!6YSZ_luU# z`@-P$es<&R-PX%qXKr41|I6*g%3U_>2hJ2^cFi=cjNbjMJaNzYWzX2}|5#gE%i3l0 zykO^%Gb>hcJ(pRnQ(fd5mv#M*p3D9Q*GUQIW~^Jj$I{|P)aU1h_2o4@4uK*wBpKRI ztJ>@7TUVZ#``P-!Nl^|(lYBWj{zWG~U$1A)TCH>V%#X@aSB^%d^M#qWPBOnU-rxIT ze@1Mx{z``j`_~@~yge^}Hh-;yaL4zG`#&eBE&YB`?!C4AC5cD2_sZ>-6yANj`DV|m wRokj${(Y^9|9Jsj0Yranvl4dj>DM3Dq_fImdKI;Vst07MtxqyPW_ literal 0 HcmV?d00001 diff --git a/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction b/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction index 51005efe57..344f8fc943 100644 --- a/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction +++ b/gm4_desire_lines/data/gm4_desire_lines/functions/init.mcfunction @@ -10,7 +10,7 @@ scoreboard players set desire_lines gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_celaro_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_celaro_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_celaro_shamir:band/v1",name:"[Drop to Fix Item] gm4_celaro_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"celaro",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;1961294324,1560605478,885901402,915511979],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc4ODAzNjY3NCwKICAicHJvZmlsZUlkIiA6ICI2MjM5ZWRhM2ExY2Y0YjJiYWMyODk2NGQ0NmNlOWVhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGYXRGYXRHb2QiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQ3MTQ5OTY0MDNlMTNhNGE4ZTc4OTQ0OWNjN2I5OGRhMmI4NDc1NTRjNDgwZGUyMDUxOTcwYjIxODIzZGJkOSIKICAgIH0KICB9Cn0="}]}},CustomModelData:3420118,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.celaro","fallback":"Celaro"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_celaro_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_celaro_shamir:band/v1",name:"[Drop to Fix Item] gm4_celaro_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"celaro",metal:{type:"aluminium",amount:[12s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/aluminium",CustomModelData:3420118,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#F47989","translate":"item.gm4.metallurgy.band","fallback":"Aluminium Band","with":[{"translate":"item.gm4.metallurgy.aluminium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.celaro","fallback":"Celaro"}']}}} schedule function gm4_desire_lines:tick 1t diff --git a/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json b/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json index 4b9edf2995..edb9631c8b 100644 --- a/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json +++ b/gm4_disassemblers/data/gm4_disassemblers/loot_tables/items/disassembler.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420135,gm4_machines:{id:\"disassembler\"},SkullOwner:{Name:\"gm4_disassembler\",Id:[I;-1561282646,-258324274,-1153094374,-693854673],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0Mjg1NDAzMTQ2MywKICAicHJvZmlsZUlkIiA6ICJjNDM5NDI3Y2U1NGQ0NDMwYTYzOGU5OTdlYzc2YTBhOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUaGVNYXN0ZXJHb2xkZW4iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODFjNzQ2NzEwZjQ3ODZiYzgxZTI1ZWVmOTM5ODI3ZjNiNDMzMjFhODQ1ZmYyNmU4N2E3MjVmZDBkMzU2Y2Y5MCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9\"}]}}}" + "tag": "{CustomModelData:3420135,gm4_machines:{id:\"disassembler\"},SkullOwner:{Name:\"gm4_disassembler\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$disassembler\"}]}}}" }, { "function": "set_name", diff --git a/gm4_disassemblers/data/gm4_disassemblers/skins/disassembler.png b/gm4_disassemblers/data/gm4_disassemblers/skins/disassembler.png new file mode 100644 index 0000000000000000000000000000000000000000..491a01008457825fb13db805f15ad917567391c1 GIT binary patch literal 465 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV4UIU;uumf=j}Da?As0!$3E_F zaeHla;%q^N{~|?a&1I2XvYXWYD*P<)yf#7AyZfci?QB7Jg-Z%wzm;??6qqo9Z_Tvl z=A82$v#86Sm%jM;_SLJeZx`P+(b?RyE0ZB2?Ph%T{nPpH-!I-*E)!&w5;$ww4V&ky zw^qErIZf5<{LNgm=1-QdZ5wuFT3A{i4i#lMCXq8Qx#wp6%Y8O2yZP1Ei$B-Rl?~oC z<@NN~3HI7@n@)s^E_ZD-Y+Ltw!?jJir~it+IPJW{B7f(}eH(sF4Y+at;J3H74XM*U zW^PT|7;&Lg_Lu~NUw2Y~oLBU58=F55K7A^_P|F_6`2O#|(@Yl63qrU4Kl=NVfYip@#CW`JHI*qItLh444$rjF6*2UngBIL+-3j( literal 0 HcmV?d00001 diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json index 015ccfe952..5ce3f41ea9 100644 --- a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json +++ b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/loot_tables/items/enchantment_extractor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420134,gm4_machines:{id:\"enchantment_extractor\"},SkullOwner:{Name:\"gm4_enchantment_extractor\",Id:[I;-395669705,959204555,-1473222203,-686353911],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0Mjg1NDA4MzE3NiwKICAicHJvZmlsZUlkIiA6ICIxYTc1ZTNiYmI1NTk0MTc2OTVjMmY4NTY1YzNlMDAzZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJUZXJvZmFyIiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIyZTRiMWM2ODExYjhkOTgyNTg3NTNmZWNkNGYyOWUzY2Y2MjJmODFhN2FlZTEyNTIwMTc1MmM0NGVkM2EyNDEiLAogICAgICAibWV0YWRhdGEiIDogewogICAgICAgICJtb2RlbCIgOiAic2xpbSIKICAgICAgfQogICAgfQogIH0KfQ==\"}]}}}" + "tag": "{CustomModelData:3420134,gm4_machines:{id:\"enchantment_extractor\"},SkullOwner:{Name:\"gm4_enchantment_extractor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$enchantment_extractor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_enchantment_extractors/data/gm4_enchantment_extractors/skins/enchantment_extractor.png b/gm4_enchantment_extractors/data/gm4_enchantment_extractors/skins/enchantment_extractor.png new file mode 100644 index 0000000000000000000000000000000000000000..dd81cc10c9d42f9ad9dc3d20dc0a88e931cf1a84 GIT binary patch literal 462 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 Z9K`TvNlg>~d;F>Z8!HFPdUM~@e*svWms$V- literal 0 HcmV?d00001 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction index 958dcd26b5..70cf88a137 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/create_cart.mcfunction @@ -4,7 +4,7 @@ # run from gm4_ender_hoppers:machine/verify_place_cart # summon new hopper minecart -summon hopper_minecart ~ ~ ~ {Tags:["gm4_ender_hopper_minecart_new","gm4_new_machine"],Passengers:[{id:"minecraft:armor_stand",CustomName:'"gm4_ender_hopper_stand"',Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],Invisible:1b,Small:1b,Pose:{Head:[180f,0f,0f],RightArm:[0f,0f,0f]},ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;986384532,2063540834,-1688310937,-1123024522],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM4ODkxMTA4NSwKICAicHJvZmlsZUlkIiA6ICJkMWY2OTc0YzE2ZmI0ZjdhYjI1NjU4NzExNjM3M2U2NSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGaW9saWVzdGEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWQ0MWJkNGZkYzgwYzczY2NlNTQ5NTY1ZDIyN2U3MjVlMjZlZDM2MzJhNmRiYjVlODExMTVhYjgwMmM1ZjI0MSIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],DisabledSlots:2039583,HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420009}},{}]}]} +summon hopper_minecart ~ ~ ~ {Tags:["gm4_ender_hopper_minecart_new","gm4_new_machine"],Passengers:[{id:"minecraft:armor_stand",CustomName:'"gm4_ender_hopper_stand"',Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],Invisible:1b,Small:1b,Pose:{Head:[180f,0f,0f],RightArm:[0f,0f,0f]},ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display"}}],DisabledSlots:2039583,HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420009}},{}]}]} particle large_smoke ~ ~0.5 ~ 0.2 0.2 0.2 0 10 playsound minecraft:block.respawn_anchor.charge block @a[distance=..5] ~ ~ ~ 0.3 0.7 scoreboard players set @e[tag=gm4_new_machine,distance=..2] gm4_entity_version 1 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction index 46be18ac1b..d8a2c1dbac 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction index 1b73be484c..215f93a3f2 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[-90.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[-90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction index 72edf7131c..7e7d32eb3e 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[180.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[180.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[180.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction index 2347837549..033b67a1c6 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/south.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction index e549fa39f0..f48e01da37 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/machine/rotate/west.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"},[{"translate":"gui.gm4.ender_hopper","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper","font":"gm4:default","color":"#404040"}]]}'} # summon display armor stand and marker entity -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[90.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420008}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[90.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[90.0f,0.0f]} diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/place_down.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/place_down.mcfunction index 2a6026507a..ebce3ad5b5 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/place_down.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/place_down.mcfunction @@ -8,6 +8,6 @@ execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ hopper[fac execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ hopper[facing=down] data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.ender_hopper","fallback":"Ender Hopper"}'} -summon armor_stand ~ ~-.5 ~ {Tags:["gm4_ender_hopper","gm4_no_edit"],Small:1b,Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738856610,-1151712444,-1271437163,677619263],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0Nzc4NTE1MDIxNDUsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzhiOWUyMTVkM2Q4NzQ3YzhkZjYxNGZkOGZlNGQxMzlkZTEyMTI0ZmZlMTlmMjkwOWQzOGNkNGE3MzI5MjVkIn0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}}}],DisabledSlots:2039583,HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}}],Pose:{RightArm:[0f, 0f, 0f]}} +summon armor_stand ~ ~-.5 ~ {Tags:["gm4_ender_hopper","gm4_no_edit"],Small:1b,Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display"}}],DisabledSlots:2039583,HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}}],Pose:{RightArm:[0f, 0f, 0f]}} particle large_smoke ~ ~0.5 ~ 0.2 0.2 0.2 0 10 playsound minecraft:block.respawn_anchor.charge block @a[distance=..5] ~ ~ ~ 0.3 0.7 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction index 62fffc8a49..c935d88c7a 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/relocate/summon_block_markers.mcfunction @@ -5,7 +5,7 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} +summon armor_stand ~ ~-0.5 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:"$ender_hopper_display_2"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420003}},{}],Pose:{RightArm:[0f, 0f, 0f]},Rotation:[0.0f,0.0f]} summon marker ~ ~ ~ {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_cart_stand.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_cart_stand.mcfunction index 7ab1da66c8..6365f0d2b2 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_cart_stand.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_cart_stand.mcfunction @@ -3,7 +3,7 @@ # located at @s # run from gm4_ender_hoppers:main -data merge entity @s {Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_cart","smithed.entity","smithed.strict"],CustomName:'"gm4_ender_hopper_stand"',Pose:{Head:[180f,0f,0f],RightArm:[0f,0f,0f]},ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;986384532,2063540834,-1688310937,-1123024522],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM4ODkxMTA4NSwKICAicHJvZmlsZUlkIiA6ICJkMWY2OTc0YzE2ZmI0ZjdhYjI1NjU4NzExNjM3M2U2NSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGaW9saWVzdGEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWQ0MWJkNGZkYzgwYzczY2NlNTQ5NTY1ZDIyN2U3MjVlMjZlZDM2MzJhNmRiYjVlODExMTVhYjgwMmM1ZjI0MSIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420009}},{}]} +data merge entity @s {Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_cart","smithed.entity","smithed.strict"],CustomName:'"gm4_ender_hopper_stand"',Pose:{Head:[180f,0f,0f],RightArm:[0f,0f,0f]},ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420002,SkullOwner:{Properties:{textures:[{Value:"$ender_hopper_display"}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420009}},{}]} scoreboard players set @e[type=hopper_minecart,tag=gm4_ender_hopper,distance=..0.2] gm4_entity_version 1 execute as @e[type=hopper_minecart,tag=gm4_ender_hopper,distance=..0.2] run data merge entity @s {CustomName:'{"translate":"%1$s%3427655$s","with":[{"translate":"%1$s%3427656$s","with":[{"text":"Minecart with Ender Hopper","font":"minecraft:default","color":"#373737"},[{"translate":"gui.gm4.ender_hopper_minecart","font":"gm4:container_gui","color":"white"},{"text":"Minecart with Ender Hopper","font":"minecraft:default","color":"#373737"}]]},{"translate":"%1$s%3427656$s","with":[{"translate":"container.gm4.ender_hopper_minecart","font":"minecraft:default","color":"#373737"},[{"translate":"gui.gm4.ender_hopper_minecart","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.ender_hopper_minecart","font":"minecraft:default","color":"#373737"}]]}]}',Tags:["gm4_ender_hopper_minecart","gm4_machine_cart"]} scoreboard players set @s gm4_entity_version 1 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_stand.mcfunction b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_stand.mcfunction index b73084423d..f0698cb48b 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_stand.mcfunction +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/functions/upgrade_machine_stand.mcfunction @@ -4,15 +4,15 @@ # run from gm4_ender_hoppers:main execute if block ~ ~ ~ hopper[facing=down] align xyz run summon marker ~0.5 ~0.5 ~0.5 {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} -execute if block ~ ~ ~ hopper[facing=down] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],Rotation:[0.0f,0.0f]} +execute if block ~ ~ ~ hopper[facing=down] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Properties:{textures:[{Value:"$ender_hopper_display_2"}]}}}}],Rotation:[0.0f,0.0f]} execute if block ~ ~ ~ hopper[facing=north] align xyz run summon marker ~0.5 ~0.5 ~0.5 {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict"],CustomName:'"gm4_ender_hopper"',Rotation:[180.0f,0.0f]} -execute if block ~ ~ ~ hopper[facing=north] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],Rotation:[180.0f,0.0f]} +execute if block ~ ~ ~ hopper[facing=north] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Properties:{textures:[{Value:"$ender_hopper_display_2"}]}}}}],Rotation:[180.0f,0.0f]} execute if block ~ ~ ~ hopper[facing=east] align xyz run summon marker ~0.5 ~0.5 ~0.5 {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict"],CustomName:'"gm4_ender_hopper"',Rotation:[-90.0f,0.0f]} -execute if block ~ ~ ~ hopper[facing=east] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],Rotation:[-90.0f,0.0f]} +execute if block ~ ~ ~ hopper[facing=east] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Properties:{textures:[{Value:"$ender_hopper_display_2"}]}}}}],Rotation:[-90.0f,0.0f]} execute if block ~ ~ ~ hopper[facing=south] align xyz run summon marker ~0.5 ~0.5 ~0.5 {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict"],CustomName:'"gm4_ender_hopper"',Rotation:[0.0f,0.0f]} -execute if block ~ ~ ~ hopper[facing=south] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],Rotation:[0.0f,0.0f]} +execute if block ~ ~ ~ hopper[facing=south] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Properties:{textures:[{Value:"$ender_hopper_display_2"}]}}}}],Rotation:[0.0f,0.0f]} execute if block ~ ~ ~ hopper[facing=west] align xyz run summon marker ~0.5 ~0.5 ~0.5 {Tags:["gm4_ender_hopper","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict"],CustomName:'"gm4_ender_hopper"',Rotation:[90.0f,0.0f]} -execute if block ~ ~ ~ hopper[facing=west] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Id:[I;-1738045610,-1151472894,-1829437163,677674665],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTIwMTExNywKICAicHJvZmlsZUlkIiA6ICI5NTE3OTkxNjljYzE0MGY1OGM2MmRjOGZmZTU3NjBiZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJPcmRpbmFsQ2FyZGluYWwiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTI4NzVlODdmNzBkODMzNjcxYTEzMWJjZjE2OGI2Y2VjYWQ4YmIwNjlhYTkwM2ZiOTFiOGVhMWYwOWRhZDQ1NyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9"}]}}}}],Rotation:[90.0f,0.0f]} +execute if block ~ ~ ~ hopper[facing=west] run data merge entity @s {Silent:1,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_ender_hopper_stand","gm4_machine_stand","smithed.entity","smithed.strict"],HasVisualFire:1,CustomName:'"gm4_ender_hopper_stand"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420002,SkullOwner:{Properties:{textures:[{Value:"$ender_hopper_display_2"}]}}}}],Rotation:[90.0f,0.0f]} execute unless block ~ ~ ~ hopper[facing=down] run data modify entity @s HandItems[0].tag.CustomModelData set value 3420008 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json b/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json index e5d15d9fce..3ec9f5b584 100644 --- a/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json +++ b/gm4_ender_hoppers/data/gm4_ender_hoppers/loot_tables/items/ender_hopper.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420131,gm4_machines:{id:\"ender_hopper\"},SkullOwner:{Name:\"gm4_ender_hopper\",Id:[I;-1638903124,-1364335607,-1999291957,-1538083823],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0NDM1MTAzMTI1MywKICAicHJvZmlsZUlkIiA6ICI5ZWEyMTQ0NGFiNjI0MWZkYjg5YjE2NDFhNDg2MGZiZiIsCiAgInByb2ZpbGVOYW1lIiA6ICI3QUJDSE9VTiIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS80MjBjOThjYTlhZjRjYTY1N2ZjN2M5MTc4Yzc5ZjQ5MDM4YmU2ODExMzllNjIwZDEzMmJhNTJmMzA3YjAxMTcyIiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{CustomModelData:3420131,gm4_machines:{id:\"ender_hopper\"},SkullOwner:{Name:\"gm4_ender_hopper\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$ender_hopper\"}]}}}" }, { "function": "set_name", diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper.png b/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper.png new file mode 100644 index 0000000000000000000000000000000000000000..a0589f4c23ac12cb047d89a9bd1c7d95f0d4cdd2 GIT binary patch literal 597 zcmV-b0;>IqP)%;rwbd1 zp%ZCP&c0KT8LCUqjf*XOR;23rO_ATr+3)>*BUE_w@JS8;bFB-{drAQS2DcLcfHkHN z7g7QM#^Z5R^^SjezQ3RMyWP^*EKTwD=%`Wuah*mkd1EX9KuUqR){8-~#z1Sk^glNU zP4v56ygocEP4eZzLEg0g$^r0`xAtO|tu;uJ1aqySlz`TDX@!LLboe4a8BDOTwS&#c zIX--O(`e?MwK|Rb zd3QPrS*9VS2=;-_#?}t*@AdKS)iG|}y%((CS}QDj0_*F8U?1n(oSftM z{S0@8&+uTn9jxEV70^=(bFGmi35>CYJTX?pExKTFfb{YO>zEO2oZ-PCwA8jW%QP*)o1E2Dc;Z^@wlf{>4D`}cWuT$ef}7vp!r|1tKhV@P)aO*1I7Bk?f9z1##k6*7xlg4 zS9ER1S7{AE;a+!p(!cWBj;~UjWg1zg(dk?sM#flV+2w4t9Va3pA|fIpA|fIpA|fIp jA|fIpA|fIpA`0m*(+yF`5pIUp00000NkvXXu0mjf@Cz4$ literal 0 HcmV?d00001 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display.png b/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display.png new file mode 100644 index 0000000000000000000000000000000000000000..5468edb0b486670f8e76caccbe5c0ca2846d254f GIT binary patch literal 458 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV4Udb;uum9_jc+=FJ?!9HsKb9 zjERTz6ennTzg}e z{-1esuGGqUM%nz}|0Oflsq^0q+xtD|(^h-AGnbD3v{`>|yXn67_Y*t)+{`UAMUQYT z4E6lh=O^Xs+VNidXhz}8wEovQpOS0xbt>zHY7DoDF1W@SaOnH&>sxAOFJIoj`_1++ z7VBSLQL)>VGN!IPZTRsPYryrXe-du}*K7LrsJJ?D?zYA6(+{rG4%p1#bxVBVR;C|~ z>EVv6>+<{Tw~H;f#W2H? zGrauwV#CZyVQXss^nYx6lM#J<@dKfcE0$aRvzx6^f8P7};(4!T7|gz9B>eJv5LkTj z)hFg}w@UU`tx`5L+v+=I{-dRj1N}=?QVO@8YHCY=oKv^H#OBq?z80PQ_)VrieXF0% pKDy(6fAz=uKz?8ZU;_v8e=>P7H|)?nIbi`v-qY33Wt~$(698I{&P@OS literal 0 HcmV?d00001 diff --git a/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display_2.png b/gm4_ender_hoppers/data/gm4_ender_hoppers/skins/ender_hopper_display_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2e8f4d644e16dc34ba5d1e342a741f8107a6445f GIT binary patch literal 467 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV4UUY;uum9_ja1Ucax()`&5S} ztBM!PIOeImd8EjpWL2@zd-;LY0r3l>xAQrDw{x#uv+ww^{KO=Qc#$V}uRf?uxKZdf z{pa@GWmeV_{An*=70ugHb@y84cipe&+h3M_nv#0;_bH{=Z#(YqclP||cTURHb%Trg z;@xXjD}-^ZE!Y7o^tsL6I{TEp zQG!>V&e);f(7SI^*!8s>QMav_UhSGB@AJFfb%Ji)dXC*{2dr`zzklDft*>EH=%sxe z?tu)x?fXBx(a5;^{Oe19ZO2=J8lsD)%`MS&&R^Th+TydqRoBX91#&;3|_PwcDO?3ae~UagqSZHC z?fGpgeRZ7mJq~Gi~EL8Ger+7!}yS1-<>74>#;s)ZD)mB<<aAEC(YxWNhT->=j_%FA}lFgH6yUWI0n!M)W+)qj^ z4aqW3f?P5Wsk-}B+66zTe9wFG@1f6ZTPo^`g4VC+em~P)u=P8`nZ+-*Z>>LV9}~-( z`(5JlmeY%F=Ct)D&x`U74PA3dMEZEm?wv2Eyx-(`yXjDMj?CjvGS6ig%=!$E1ytOh z#jkpL)2}~A5C6J)TD^2yYUywNT`x@-_0Crol(0BNPK(Ii8K*b9aKEY literal 0 HcmV?d00001 diff --git a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction index e039e564f5..25d645270a 100644 --- a/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction +++ b/gm4_fulcio_shamir/data/gm4_fulcio_shamir/functions/init.mcfunction @@ -8,7 +8,7 @@ scoreboard players set fulcio_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_fulcio_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_fulcio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_fulcio_shamir:band/v1",name:"[Drop to Fix Item] gm4_fulcio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"fulcio",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-340714413,1525011343,50560746,-1948445052],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODc5MjUwNDk5MiwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85MzU2MjZhYzgwZmZmYWFiOTkyOWMwYWViNTg5N2RkN2FlOThjOWI5NTY1NjVjZTc3YTEyNjE0MjExYWI2NTg0IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420115,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.fulcio","fallback":"Fulcio"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_fulcio_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_fulcio_shamir:band/v1",name:"[Drop to Fix Item] gm4_fulcio_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"fulcio",metal:{type:"barimium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/barimium",CustomModelData:3420115,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#D18A8A","translate":"item.gm4.metallurgy.band","fallback":"Barimium Band","with":[{"translate":"item.gm4.metallurgy.barimium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.fulcio","fallback":"Fulcio"}']}}} schedule function gm4_fulcio_shamir:main 1t schedule function gm4_fulcio_shamir:4_tick 1t diff --git a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json index b1948216aa..53d84e9064 100644 --- a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json +++ b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_max.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420006,SkullOwner:{Id:[I;-320501529,-244889622,-2022276390,-292592904],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTgyOTM1NSwKICAicHJvZmlsZUlkIiA6ICI0ZTMwZjUwZTdiYWU0M2YzYWZkMmE3NDUyY2ViZTI5YyIsCiAgInByb2ZpbGVOYW1lIiA6ICJfdG9tYXRvel8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzgxZmU0ZjA2YTM1ZWU3YzQyMzA5ZDM5M2MyNWJjMTFjZDFiNWIxNTBhMTllZGYzODllOGVjY2E0ZmNlMWRkZiIKICAgIH0KICB9Cn0=\"}]}}}" + "nbt": "{CustomModelData:3420006,SkullOwner:'$heart_canister_tier_2'}" }, "frame": "goal", "title": { diff --git a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json index b4b24b1f9e..2fcbdb567f 100644 --- a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json +++ b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_1.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420004,SkullOwner:{Id:[I;1567268555,400377645,-2090593244,-1749540666],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTc2NTU0MSwKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjkxNzBhNzY4ZGY1MDQ1OTcwM2JkYWRkYjNlZGI2OTMyNmJkY2NjY2JmNDQxODM4MDM0YTI0N2I2NDFiN2UyZiIKICAgIH0KICB9Cn0=\"}]}}}" + "nbt": "{CustomModelData:3420004,SkullOwner:'$heart_canister_tier_1'}" }, "title": { "translate": "advancement.gm4.heart_canisters.tier_1.title", diff --git a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json index 3f78e3e1c9..221ad07a82 100644 --- a/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json +++ b/gm4_heart_canisters/data/gm4/advancements/heart_canisters_tier_2.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420005,SkullOwner:{Id:[I;-320501529,-244889622,-2022276390,-292592904],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTgyOTM1NSwKICAicHJvZmlsZUlkIiA6ICI0ZTMwZjUwZTdiYWU0M2YzYWZkMmE3NDUyY2ViZTI5YyIsCiAgInByb2ZpbGVOYW1lIiA6ICJfdG9tYXRvel8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzgxZmU0ZjA2YTM1ZWU3YzQyMzA5ZDM5M2MyNWJjMTFjZDFiNWIxNTBhMTllZGYzODllOGVjY2E0ZmNlMWRkZiIKICAgIH0KICB9Cn0=\"}]}}}" + "nbt": "{CustomModelData:3420005,SkullOwner:'$heart_canister_tier_2'}" }, "title": { "translate": "advancement.gm4.heart_canisters.tier_2.title", diff --git a/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_1.json b/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_1.json index 13b490e1d7..d307effb7a 100644 --- a/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_1.json +++ b/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_1.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420060,SkullOwner:{Id:[I;1567268555,400377645,-2090593244,-1749540666],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTc2NTU0MSwKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjkxNzBhNzY4ZGY1MDQ1OTcwM2JkYWRkYjNlZGI2OTMyNmJkY2NjY2JmNDQxODM4MDM0YTI0N2I2NDFiN2UyZiIKICAgIH0KICB9Cn0=\"}]}}}" + "nbt": "{CustomModelData:3420060,SkullOwner:'$heart_canister_tier_1'}" }, "title": { "text": "Check your guidebook!", diff --git a/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_2.json b/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_2.json index 853d91a543..6c648cd827 100644 --- a/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_2.json +++ b/gm4_heart_canisters/data/gm4_guidebook/advancements/heart_canisters/page_2.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420060,SkullOwner:{Id:[I;1567268555,400377645,-2090593244,-1749540666],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTc2NTU0MSwKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjkxNzBhNzY4ZGY1MDQ1OTcwM2JkYWRkYjNlZGI2OTMyNmJkY2NjY2JmNDQxODM4MDM0YTI0N2I2NDFiN2UyZiIKICAgIH0KICB9Cn0=\"}]}}}" + "nbt": "{CustomModelData:3420060,SkullOwner:'$heart_canister_tier_1'}" }, "title": { "text": "Check your guidebook!", diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction b/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction index 10b45e9a30..d9f724c163 100644 --- a/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction +++ b/gm4_heart_canisters/data/gm4_heart_canisters/functions/init.mcfunction @@ -5,8 +5,8 @@ scoreboard objectives add gm4_heart_can dummy execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_1/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_1/v0",value:'eyJ0aW1lc3RhbXAiOjE0MjkzNDc5MDU4NzMsInByb2ZpbGVJZCI6IjYzY2JkZjhkNDg4OTQ3NWY5NDQxMjk3ZTRhM2Q1NjczIiwicHJvZmlsZU5hbWUiOiJWZWxlVCIsImlzUHVibGljIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTNjZjA2ZDViNDdiNzQ2ZDE2ZWU2MzExODdjYjg1N2Q4YzE2YmZjZDU3MGE0MGYyODZiMmMzODg2N2NmZGEifX19',item:{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["1"],"italic":false}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_2/v0"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_2/v0",value:'eyJ0aW1lc3RhbXAiOjE0MjkzNDc5OTc3ODcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzQ1NWQ5YmY4NWFjNTY1YjM1ZTFmYTE5MjQ3Y2E2NTQxZGMyZTMzNGJlYzExNWNiNDQ5ZWZiZThlOWI4MTAyMiJ9fX0=',item:{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["2"],"italic":false}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} # new texture -execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_1/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_1/v1",value:'ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTc2NTU0MSwKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjkxNzBhNzY4ZGY1MDQ1OTcwM2JkYWRkYjNlZGI2OTMyNmJkY2NjY2JmNDQxODM4MDM0YTI0N2I2NDFiN2UyZiIKICAgIH0KICB9Cn0=',item:{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["1"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} -execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_2/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_2/v1",value:'ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTgyOTM1NSwKICAicHJvZmlsZUlkIiA6ICI0ZTMwZjUwZTdiYWU0M2YzYWZkMmE3NDUyY2ViZTI5YyIsCiAgInByb2ZpbGVOYW1lIiA6ICJfdG9tYXRvel8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzgxZmU0ZjA2YTM1ZWU3YzQyMzA5ZDM5M2MyNWJjMTFjZDFiNWIxNTBhMTllZGYzODllOGVjY2E0ZmNlMWRkZiIKICAgIH0KICB9Cn0=',item:{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["2"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_1/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_1/v1",value:'$heart_canister_tier_1',item:{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["1"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_heart_canisters:heart_canister/tier_2/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_heart_canisters:heart_canister/tier_2/v1",value:'$heart_canister_tier_2',item:{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,display:{Lore:['{"translate":"item.gm4.heart_canister.lore.tier","fallback":"Tier %s","with":["2"],"italic":false,"color":"gray"}'],Name:'{"translate":"item.gm4.heart_canister","fallback":"Heart Canister","italic":false}'}}} execute unless score heart_canisters gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Heart Canisters"} execute unless score heart_canisters gm4_earliest_version < heart_canisters gm4_modules run scoreboard players operation heart_canisters gm4_earliest_version = heart_canisters gm4_modules diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json index b61ce54add..c0a9a47794 100644 --- a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json +++ b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_1_heart_canister.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,SkullOwner:{Id:[I;1567268555,400377645,-2090593244,-1749540666],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTc2NTU0MSwKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjkxNzBhNzY4ZGY1MDQ1OTcwM2JkYWRkYjNlZGI2OTMyNmJkY2NjY2JmNDQxODM4MDM0YTI0N2I2NDFiN2UyZiIKICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{CustomModelData:3420007,gm4_heart_canister:1b,gm4_heart_canister_tier:1b,SkullOwner:'$heart_canister_tier_1'}" }, { "function": "minecraft:set_name", diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json index 0647dbfca0..a73f1e7da4 100644 --- a/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json +++ b/gm4_heart_canisters/data/gm4_heart_canisters/loot_tables/items/tier_2_heart_canister.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,SkullOwner:{Id:[I;-320501529,-244889622,-2022276390,-292592904],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYxNjM4NTgyOTM1NSwKICAicHJvZmlsZUlkIiA6ICI0ZTMwZjUwZTdiYWU0M2YzYWZkMmE3NDUyY2ViZTI5YyIsCiAgInByb2ZpbGVOYW1lIiA6ICJfdG9tYXRvel8iLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzgxZmU0ZjA2YTM1ZWU3YzQyMzA5ZDM5M2MyNWJjMTFjZDFiNWIxNTBhMTllZGYzODllOGVjY2E0ZmNlMWRkZiIKICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{CustomModelData:3420008,gm4_heart_canister:1b,gm4_heart_canister_tier:2b,SkullOwner:'$heart_canister_tier_2'}" }, { "function": "minecraft:set_name", diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/skins/heart_canister_tier_1.png b/gm4_heart_canisters/data/gm4_heart_canisters/skins/heart_canister_tier_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ff6341ce896acc9e60f0cf0d9530043e4f6cefe6 GIT binary patch literal 980 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV4m&i;uumf=k0X=4BwQce?o`F-}QE$66Xnbq(_-<`oj zg>PbyOXK;+Klc8xfBl;+AyhXkeE#Owmqg#~t#H{Fm;B~TKEt2y&q|XIO3(0`xc>Ty z>)AX$OBtfXPUb6m)E@2#wyfF{xWDL2MY7SK3xDP@owHrR|5C=HV8Yd_&wC$z*n09= zVez-`k2MYKw@sutm5|NWbd4sbG`VtUqj|JVA!o$<@)cV@|smwFV$>+ zTUYS-TIgEeziu0V0r||wX~r|gEt4sPCtUK<~; z|M~pg{kH%A*S&L!u3g|-ptSqQJ!^AKvHMILzMu0|+vM%IWZ$owA-kUbXv}4vcmMRv zqhhrYRxh{z=Hy?0M;#cL9x{tQTsQsnRqCY2l$yQYeioMJ>{8#mIpJ5~qvy(UAhou_ z56a)~l6QXlBJ}++$^QnwdV9TI{F=vbYp;dP+&OCT>jO1x76(+YUHG))wd?!5Ez!(p zf0eztV<{6QpTRUoZPr=y%d7WE1I0?XH%zwsu>HV(l33cJdcy5Rn=4JDU;@8kUUf@K$LT}lYUCAKAjj2_Yx o+*lQI9i&7XwlHSWL2#CTT#Ij0+^pzlz}(8<>FVdQ&MBb@0DLRd{{R30 literal 0 HcmV?d00001 diff --git a/gm4_heart_canisters/data/gm4_heart_canisters/skins/heart_canister_tier_2.png b/gm4_heart_canisters/data/gm4_heart_canisters/skins/heart_canister_tier_2.png new file mode 100644 index 0000000000000000000000000000000000000000..2c89c2685d8b4093dba5e2a6ca5ae43c821b3757 GIT binary patch literal 1023 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU_R#Q;uumf=j}BA43Th|(kc(2C9>j5D7kjJ13pc4f9yV(hC_Gd6r)hg@+45;JT(_JxTa#8+ z2`rRzQs$V{&1EYgz+%cK8e5)z_mA$$iW_?h(>7Uu?&-9j@ZC~(^XIwmzt`TM{ax*u z1z+NuQ}0T3w4JSTFaCPT#?|`V$Hy-~@Ai$dljZAEQyFTm|Cih&!fkp%<^JvG6@SnF z{WkgiPOasiu7B-yzq>$=D?r00{p_rM4>MKI<+}Ilzt-uq+U{)jyI>Dger}G`p4{mh z-U>~dniyV||KrR#;qE9#khE1UW5Avov4-<}^9$3HO1?B&Ke(CwoH66ZJ?4;frPAN8 zqSrRGy|s<{_c@LsWZT;>ajRecFHdB;5W$#jAIa{JR?#3|=XYst_vici_jegTl&vY( z^DEbTC$>>U+wpijZ`{x2dGV#;P9hUo8FK#aVP;sZ?d|^DYr!s=`=X~`%KzkgQvG{Q zO7Ns_-_G8#uV!eNx!#ZI!;_cE@t043czdGbH5{46pbv{J_(2B*1>=Lq^$`i@xxFY-7FN^vitdJiAQ|yybQ3^}A*Y*S}ft z_hq?C+pm-J^Oh~%eDdy>k}t>e-$YM|6Z}#i-1M)@?Y-~8@>{24ZfEWLx3T-pUU3ok zysLZEedPClZ_4@Sy{YomtHT#Q%FC~J`Bh%>YwJGIfY*l~KAgrp=l8yj+SCa@_WV5i zIyh#B#dEoGt6z^!=svp@*8b`+o4}X%=X7KCtPWfH>eW>H17}~aFXy-){Oat2a)Gah zUcY#&-MsLZLDRpj9NGpi)@Q6){b7P%^pt%Tr&cCk&Hwo9ZhOP^;}45oH%k4A-@0|{ z*U&9o4X+HZRQ=#t+%Na5&r$Pl>;A0uOtE{FJ~_Xrb$@OBp!S%Ef~@#y85}Sb4q9e0E%x>9I`c+BTs?XS{bm_tHdIeKseDok1CDaEX4w{E%kYv-g1E4vo2 zykIx!amByQC$0O_%hH^CE^5i0P71!s_U-xF!e3lXKJKi`>}Q^su}A1b<;$vwpZr3? zb}9{*Pe^VHWIDd6R@ucg^|scm6|+2VluLZ?+0**l{LnT2>81_+OSi20F@;b0ihjvk zjy&z`BWLDy@v&LV{l4NhC%?<=MYr~z?%XFA#@Cn~`}O(j@i=*H);}(9Q&zq``Nek8Qnml@ykG5T?X5gt{qIuQk@9TsYR)wx z1=A1C_s+e(?7ezML-;h+r&oGH?uxR>i+?PN)MRLyIA8Z#d9>XR;DG5t}nOe zIQ&DyFXrR1Z5vmpNN`JiWnLbw?7oPq3{Mnb>R?nY#YkAqe z_shP#EjQWvVRp%YNVJs9%#VBJa3#-SVdg zCUzy~rbm_av|6b2acq9RdyemB=fGu(8OJ8hTP^o`hKBTs>3)&tdw&Eu-w!rVRlE^C zO}|~^$R9~1)BleOe_Vdn?EcVyu9L$nhLxHuOZXm%(?^>;T-PLU{6 zf1D+F`{s+UJNMo5-hBV!A^{*-au{>D+KVj2yc8x%WQYN4`(7^t0Y>_2uR_{Cfy+AUau6{1- HoD!MN z07jLUU&lwUHaLOuTc2S&mDWcC(T+G2~;e=_-a>O z#ozZeT^Vof_D?hMJ^A$T4yLx>75?>Z+vl(s3->(!@tZO2e5C>7lAn94yMc5^^K>Sz z50h7V|GfEGf%#3PDa%IgGjH!lpIf}nS)RF|=@0jtPUZ_tCVURu7c3Zb9Ue1mVd$l{ bz-Lyy+{y+~zrZ`d;AZf2^>bP0l+XkKhQ_8< literal 0 HcmV?d00001 diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/skins/liquid_minecart_display/full.png b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/skins/liquid_minecart_display/full.png new file mode 100644 index 0000000000000000000000000000000000000000..322692a7dcdde60c485c16a470e11d2bd86772c1 GIT binary patch literal 382 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 literal 0 HcmV?d00001 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ink.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ink.png new file mode 100644 index 0000000000000000000000000000000000000000..6277f7ebab9652ac952c703ba32800fec77a1537 GIT binary patch literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|?$Zba4!+nDch}%e>nL0xkQO zx}0=>BjR@NKWp?B58>;RDst)rf}Xhewru0Pdx%+L!cL=|)^lui_V8|9{Z_wso#nZ8 zx9>83{~+ohHm7lwUgg{Mi(|gc`V=KoR%>jx`x*NJ=MUoin_s9#+eZtYTD5G$)yNMF zU(f1t>;F~ypvG8M>-?o}QI*od4XPcEJ_k*1913%JzhU*+-4?&)B4#iN#F$r>NoaRy z8l-xbTRAP0`4_BnaTTADc<_T=V!ez_)syOZcC2IVeg5^qmmObva$E}nc?*`i8?bVT zq;ei)R8cZnAoV|zRY!?|WqzLU{dvbi@0%VG_;9YVAvV`>>ZW@<+v`6XG~BxD=(#uV z9kbGut6WX?`!lcZGt<}>)qi@QrO`~;xZBa8rnCPr9(l*-#q%=y!{S7Vf^)a#xS6=s zT%VKs$-4Q{j-^@G=4m$Ediyr=ga5V8{8cNy9bByzdL`S1r**BMVZ)=_ZHWa!*)Qex z?Y&WEq?)F#aJ6CPgYK+W&7kR5BnsYYKCPGE^R`)DvEhV;e#ctI=DT%Cw>aLsV{q8I zzdF=Xo;CRG`!wE#*^Z+3x4sMuWn@m;@U<<@rdBqi^WMUHOYbwjnl;5p>Hv=m=evsj z6^rg>e!J7}#;Nd?Ew|prSo31}iv@hizqI75H$R#sydYC+O4FrVb{R+6{ckQ0NYq`( z+YmHO^p&+9E8BwI|NmTC)Fu5nGT6|BH7Ft^Su4-^e?Q~yyN_ojdre)}_#pVTh-4^Z z(}~o-{x3@B7@R%1^HuEI_b>L<&y1BfNT2_x@?QD!<9lKi()stX=*(gHA0NYc;;lm- cG2|bX-p@`V``Nrjfhm*0)78&qol`;+0Q-eP!vFvP literal 0 HcmV?d00001 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/lava.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/lava.png new file mode 100644 index 0000000000000000000000000000000000000000..180aba1d127c9a20542433714f156704ee92e5f6 GIT binary patch literal 1431 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 literal 0 HcmV?d00001 diff --git a/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction b/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction index 5591bb7c81..179495056d 100644 --- a/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction +++ b/gm4_lumos_shamir/data/gm4_lumos_shamir/functions/init.mcfunction @@ -6,7 +6,7 @@ scoreboard players set lumos_shamir gm4_modules 1 data remove storage gm4_player_heads:register heads[{id:"gm4_lumos_shamir:band/v0"}] # register shamir with lib_player_heads -execute unless data storage gm4_player_heads:register heads[{id:"gm4_lumos_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_lumos_shamir:band/v1",name:"[Drop to Fix Item] gm4_lumos_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"lumos",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:{Id:[I;-1332644679,659216762,2108439484,664728976],Properties:{textures:[{Value:"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ=="}]}},CustomModelData:3420114,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.lumos","fallback":"Lumos"}']}}} +execute unless data storage gm4_player_heads:register heads[{id:"gm4_lumos_shamir:band/v1"}] run data modify storage gm4_player_heads:register heads append value {id:"gm4_lumos_shamir:band/v1",name:"[Drop to Fix Item] gm4_lumos_shamir:band/v0",item:{gm4_metallurgy:{has_shamir:1b,stored_shamir:"lumos",metal:{type:"curies_bismium",amount:[9s,3s],castable:1b},item:"obsidian_cast"},SkullOwner:"$gm4_metallurgy:band/curies_bismium",CustomModelData:3420114,display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"#467A1B","translate":"item.gm4.metallurgy.band","fallback":"Curie\'s Bismium Band","with":[{"translate":"item.gm4.metallurgy.curies_bismium"}]}','{"italic":false,"color":"aqua","translate":"item.gm4.metallurgy.shamir","fallback":"Shamir"}','{"italic":false,"color":"gray","translate":"item.gm4.shamir.lumos","fallback":"Lumos"}']}}} schedule function gm4_lumos_shamir:main 4t diff --git a/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json b/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json index 4f10bf7012..6608acce15 100644 --- a/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json +++ b/gm4_metallurgy/data/gm4/advancements/metallurgy_blast_ore.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420049,SkullOwner:{Id:[I;140191582,-1151712444,-1271445916,307298631],Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE0ODE0MDk5OTEzMzMsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdmNTRiOTc5Y2Y0YzUzM2Q5OTVjMDdiOTljMWU5OWI5MTdlYzA2ODU2ZDQ2YjBhMmU2ODhiYmQzZDE0ZSJ9LCJDQVBFIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWMzY2E3ZWUyYTQ5OGYxYjVkMjU4ZDVmYTkyN2U2M2U0MzMxNDNhZGQ1NTM4Y2Y2M2I2YTliNzhhZTczNSJ9fX0=\"}]}}}" + "nbt": "{CustomModelData:3420049,SkullOwner:\"$gm4_metallurgy:ore/aluminium\"}" }, "title": { "translate": "advancement.gm4.metallurgy.blast_ore.title", diff --git a/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json b/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json index b783521ffc..18b01144ce 100644 --- a/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json +++ b/gm4_metallurgy/data/gm4/advancements/metallurgy_cast.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "minecraft:player_head", - "nbt": "{CustomModelData:3420050,SkullOwner:{Id:[I;1961294324,1560605478,885901402,915511979],Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE0ODE2NjMyMjQ2MTUsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTc5ZWRhYmI2MjU1YzhkMjQyOWE3ZTUzM2U4MzUxOWE4NjVhNTk0ZGJmMTRhMTdjZjVhYzIxMzUzYTM5N2U3In19fQ==\"}]}}}" + "nbt": "{CustomModelData:3420050,SkullOwner:\"$gm4_metallurgy:band/aluminium\"}" }, "title": { "translate": "advancement.gm4.metallurgy.cast.title", diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction index fd25ae6c92..0ae82cb047 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_aluminium.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_al += $metal_amount gm4_ml_data execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block andesite ~.45 ~0.1 ~.65 .1 .1 .1 0 9 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction index ff760b16da..8529dac2d8 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barimium.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} # add primary metal scoreboard players operation @s gm4_ml_ore_al += $metal_amount gm4_ml_data diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction index 68980dc305..e7ee28808f 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_barium.mcfunction @@ -3,7 +3,7 @@ #add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_ba += $metal_amount gm4_ml_data execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block granite ~.45 ~0.1 ~.65 .1 .1 .1 0 9 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction index bd7152bd84..a75b015f1e 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_bismuth.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_bi += $metal_amount gm4_ml_data execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block stone ~.45 ~0.1 ~.65 .1 .1 .1 0 9 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction index 9c6db26b58..efab8c579c 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_copper.mcfunction @@ -3,7 +3,7 @@ #add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_bi += $metal_amount gm4_ml_data execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block stone ~.45 ~0.1 ~.65 .1 .1 .1 0 9 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction index 135d19dd42..7fc7e2b321 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_curies_bismium.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} # add primary metal scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction index 0baa307b11..d406d9ef75 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data execute if score $is_obsidian_cast gm4_ml_data matches 1.. run summon item ~.45 ~0.1 ~.65 {Item:{id:"minecraft:obsidian",Count:1b,tag:{CustomModelData:3420001,display:{Lore:['{"translate":"item.gm4.slightly_damaged_obsidian","fallback":"Slightly Damaged Obsidian","color":"dark_gray"}']}}}} execute unless score $is_obsidian_cast gm4_ml_data matches 1.. run particle block diorite ~.45 ~0.1 ~.65 .1 .1 .1 0 9 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction index a3a65b3d4f..2bcfd62908 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/add_metal/add_thorium_brass.mcfunction @@ -3,7 +3,7 @@ # add score to sand ring tag @s add gm4_contains_metal -data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} # add primary metal scoreboard players operation @s gm4_ml_ore_th += $metal_amount gm4_ml_data diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction index 427d951638..094a0d87e0 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/create_mould.mcfunction @@ -1,7 +1,7 @@ # @s = obsidian block with count of 1 on top of sand next to a clay ball with a count of 1 # run from check_mould_creation -summon armor_stand ~.45 ~-1.150 ~.65 {CustomName:'"gm4_sand_ring"',Tags:["gm4_sand_ring","gm4_new_sand_ring"],ArmorItems:[{id:"minecraft:stick",Count:1b},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420023,SkullOwner:{Id:[I;140191582,-1151712444,-1271441790,1896239124],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0Nzk4NTI1MDM5MzksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWZhYmExYzg3NTFjYWIzZjEyZjJlODgwMTRjZjRlYmY2N2ZjNWQ3NGNmY2U5YmUyNTI1YWQ0OWE5MjFkY2YyIn0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}}}],Silent:1,Invulnerable:1,Marker:1b,Invisible:1b,NoGravity:1b,Small:1b,HasVisualFire:1b} +summon armor_stand ~.45 ~-1.150 ~.65 {CustomName:'"gm4_sand_ring"',Tags:["gm4_sand_ring","gm4_new_sand_ring"],ArmorItems:[{id:"minecraft:stick",Count:1b},{},{},{id:"minecraft:player_head",Count:1,tag:{CustomModelData:3420023,SkullOwner:"$mould/cool_empty"}}],Silent:1,Invulnerable:1,Marker:1b,Invisible:1b,NoGravity:1b,Small:1b,HasVisualFire:1b} scoreboard players add @e[type=armor_stand,tag=gm4_new_sand_ring] gm4_ml_ore_al 0 scoreboard players add @e[type=armor_stand,tag=gm4_new_sand_ring] gm4_ml_ore_ba 0 diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction index 46f9e9d94e..93f2d8d587 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/set_mould.mcfunction @@ -15,7 +15,7 @@ execute if entity @s[scores={gm4_ml_ore_bi=6,gm4_ml_ore_al=0,gm4_ml_ore_ba=0,gm4 # apply broken band if all other bands fail -execute if score $band_applied gm4_ml_data matches 0 run summon item ~ ~ ~ {Item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Id:[I;2090045838,1070000930,-1136417339,1085846924],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE2NjMzMzg5MDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzQ4MGNjMjY3M2ZmMjhkNTEzNDY0MTMxN2FiYzUzMWU5ZTFjZWU3MTFlYWJmYWY3YzJhZDY1M2E0NmQxZmI3In19fQ=="}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}}} +execute if score $band_applied gm4_ml_data matches 0 run summon item ~ ~ ~ {Item:{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420022,SkullOwner:{Name:"[Drop to Fix Item] gm4_metallurgy:band/mundane/v0",Properties:{textures:[{Value:"$band/mundane"}]}},display:{Name:'{"italic":false,"translate":"item.gm4.metallurgy.obsidian_cast","fallback":"Obsidian Cast"}',Lore:['{"italic":false,"color":"gray","translate":"item.gm4.metallurgy.mundane_band","fallback":"Mundane Band"}']}}}} # spawn xp if band was applied execute if score $band_applied gm4_ml_data matches 1 if entity @p[distance=..4,gamemode=!spectator] run summon experience_orb ~ ~ ~ {Value:37s} diff --git a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction index e8f32805fa..6e04b77709 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction +++ b/gm4_metallurgy/data/gm4_metallurgy/functions/casting/sustain_mould.mcfunction @@ -16,16 +16,16 @@ execute if score @s gm4_ml_heat matches 50..89 align xyz positioned ~ ~1 ~ as @e execute if score @s gm4_ml_heat matches 50..89 align xyz positioned ~ ~1 ~ if entity @e[type=item,nbt={Item:{Count:1b,tag:{gm4_metallurgy:{metal:{castable:1b}}}},OnGround:1b},dx=0,dy=0,dz=0] run function gm4_metallurgy:casting/add_metal/initialize # hot ring without metal -execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420024,SkullOwner:{Id:[I;140191582,-1151712444,-1271434748,932201856],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE3MjM4MDYsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTc0NTVkNjg3MjJkOTU3ZmI1ZGVjZGNjY2NjMWI2MWU4NzlhOTY3ZjFiZGM3YzJhMmZkMTlhYTI3OWU4ODUifSwiQ0FQRSI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVjM2NhN2VlMmE0OThmMWI1ZDI1OGQ1ZmE5MjdlNjNlNDMzMTQzYWRkNTUzOGNmNjNiNmE5Yjc4YWU3MzUifX19"}]}}} +execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420024,SkullOwner:"$mould/hot_empty"} # hot ring with metal -execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:{Id:[I;140191582,-1151712444,-1271433465,-1758951935],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE2NTQxODksInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODZkMTEwNmNjZDhhY2E3NDg4N2Q1ODIwNTU0YmZiMzM5YzdhM2NmOTJjNDY1MTU2MmM2NmZiNzZkMTQ0In0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 50..51 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420026,SkullOwner:"$mould/hot_metal"} # cool (I'm way too awesome!) ring without metals -execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420023,SkullOwner:{Id:[I;140191582,-1151712444,-1271450254,-1988033943],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE0NTAzOTYsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWZhYmExYzg3NTFjYWIzZjEyZjJlODgwMTRjZjRlYmY2N2ZjNWQ3NGNmY2U5YmUyNTI1YWQ0OWE5MjFkY2YyIn0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ=="}]}}} +execute if score @s[tag=!gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420023,SkullOwner:"$mould/cool_empty"} # cool ring with metal -execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420025,SkullOwner:{Id:[I;140191582,-1151712444,-1271443335,826741136],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0ODE0MTE1NjYwMjQsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjM3ZjE2Zjc2MTk1ZWM3OWI4MzFmMzc5ZjkzYjYwYzg2MWZkNGNhYmYyZTI5ZDNmZTlkYTJmODU4OTJkY2EifSwiQ0FQRSI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVjM2NhN2VlMmE0OThmMWI1ZDI1OGQ1ZmE5MjdlNjNlNDMzMTQzYWRkNTUzOGNmNjNiNmE5Yjc4YWU3MzUifX19"}]}}} +execute if score @s[tag=gm4_contains_metal] gm4_ml_heat matches 48..49 run data modify entity @s ArmorItems[3].tag set value {CustomModelData:3420025,SkullOwner:"$mould/cool_metal"} execute if score @s gm4_ml_heat matches 56.. run particle lava ~ ~1 ~ 0 0 0 0.005 1 diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/aluminium_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/aluminium_band.json index 2a67b9c763..cf27e81bd7 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/aluminium_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/aluminium_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"aluminium\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Id:[I;1961294324,1560605478,885901402,915511979],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyODc4ODAzNjY3NCwKICAicHJvZmlsZUlkIiA6ICI2MjM5ZWRhM2ExY2Y0YjJiYWMyODk2NGQ0NmNlOWVhOSIsCiAgInByb2ZpbGVOYW1lIiA6ICJGYXRGYXRHb2QiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGQ3MTQ5OTY0MDNlMTNhNGE4ZTc4OTQ0OWNjN2I5OGRhMmI4NDc1NTRjNDgwZGUyMDUxOTcwYjIxODIzZGJkOSIKICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"aluminium\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:\"$band/aluminium\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barimium_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barimium_band.json index 979a182138..c51caa12ac 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barimium_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barimium_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"barimium\",amount:[9s,3s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Id:[I;-340714413,1525011343,50560746,-1948445052],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyODc5MjUwNDk5MiwKICAicHJvZmlsZUlkIiA6ICI5MWYwNGZlOTBmMzY0M2I1OGYyMGUzMzc1Zjg2ZDM5ZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJTdG9ybVN0b3JteSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS85MzU2MjZhYzgwZmZmYWFiOTkyOWMwYWViNTg5N2RkN2FlOThjOWI5NTY1NjVjZTc3YTEyNjE0MjExYWI2NTg0IgogICAgfQogIH0KfQ==\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"barimium\",amount:[9s,3s],castable:1b},item:\"obsidian_cast\"},SkullOwner:\"$band/barimium\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barium_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barium_band.json index 843f6ad422..2fdc894ce5 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barium_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/barium_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"barium\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Id:[I;-758190455,118414880,1677653096,2076204799],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyODg4MzkzODA4MiwKICAicHJvZmlsZUlkIiA6ICJmNThkZWJkNTlmNTA0MjIyOGY2MDIyMjExZDRjMTQwYyIsCiAgInByb2ZpbGVOYW1lIiA6ICJ1bnZlbnRpdmV0YWxlbnQiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGMxMzcwMGVlMGViYzgwOTU2N2IxYTNjOTFhYzhjMWFhMmJiNWNlYjQ4YWRlNzZlOGJkN2QzMWE5Y2EzYjdkIgogICAgfQogIH0KfQ==\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"barium\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:\"$band/barium\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json index ec5ff4adfd..02c14d1f25 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/baryte_lump.json @@ -39,7 +39,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"barium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420019,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0\",Id:[I;140191582,-1151712444,-1271442552,1879524245],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDI1Njk5MSwKICAicHJvZmlsZUlkIiA6ICJiMGQ0YjI4YmMxZDc0ODg5YWYwZTg2NjFjZWU5NmFhYiIsCiAgInByb2ZpbGVOYW1lIiA6ICJNaW5lU2tpbl9vcmciLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjg5ZjJlZjhmZTJlMzhlM2I1YzliMzU0N2M3ZTFmODUzYTlhNDQ4MjFiZDllZTI1YmQ2ODhiYTY0MzcwZTk2MyIKICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"barium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420019,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/barium/v0\",Properties:{textures:[{Value:\"$ore/barium\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json index 287adff79f..ab9494fe68 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bauxite_lump.json @@ -39,7 +39,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"aluminium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420021,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0\",Id:[I;140191582,-1151712444,-1271445916,307298631],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDMzNDA1MiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYjU1MTdhNjYyYTgzY2FhYWFjMWE3MTMzMmUzODFiYmZmYzkxYjJhNjBhODc1Y2NhZDhmZTM4ZGM3NWRlZDU0OSIKICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"aluminium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420021,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/aluminium/v0\",Properties:{textures:[{Value:\"$ore/aluminium\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json index ad71f9c654..a793cbcbb5 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismuth_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"bismuth\",amount:[12s],castable:1b},item:\"obsidian_cast\"},CustomModelData:3420053,SkullOwner:{Id:[I;-359255454,30123560,-1513962184,-616842323],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyODAxNDc0OTQ2MSwKICAicHJvZmlsZUlkIiA6ICJiMWMyNWQ0YjMwZDU0N2Y4YTk3NmZlYTllOGU1YzBjMyIsCiAgInByb2ZpbGVOYW1lIiA6ICJvd29FbmRlciIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82NmM0ODcwYmNiMDdkYWJjMjNiNTZkMzJlNzI5OWI5NTE4ZTU1N2VmMzU2YTNiZGRmNDBkNGM3MDIwYzI3MTdhIgogICAgfQogIH0KfQ==\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"bismuth\",amount:[12s],castable:1b},item:\"obsidian_cast\"},CustomModelData:3420053,SkullOwner:{Properties:{textures:[{Value:\"$band/bismuth\"}]}}}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json index 0acb6fbbb4..8a750219d4 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/bismutite_lump.json @@ -75,7 +75,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"bismuth\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420017,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/bismuth\",Id:[I;140254582,-1151718614,-1277548307,1366135037],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDM0MzA2MCwKICAicHJvZmlsZUlkIiA6ICI0OWIzODUyNDdhMWY0NTM3YjBmN2MwZTFmMTVjMTc2NCIsCiAgInByb2ZpbGVOYW1lIiA6ICJiY2QyMDMzYzYzZWM0YmY4IiwKICAic2lnbmF0dXJlUmVxdWlyZWQiIDogdHJ1ZSwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2EwODFiMmY2Nzk3ZDk2YzcxMGYyMjk1YmQ2MGJmYjc3NTE5ZDU4Yzk3NGEwYjM0YjViZDcyZmNkNzc3OTYyMWIiCiAgICB9LAogICAgIkNBUEUiIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzIzNDBjMGUwM2RkMjRhMTFiMTVhOGIzM2MyYTdlOWUzMmFiYjIwNTFiMjQ4MWQwYmE3ZGVmZDYzNWNhN2E5MzMiCiAgICB9CiAgfQp9\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"bismuth\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420017,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/bismuth\",Properties:{textures:[{Value:\"$ore/bismuth\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/copper_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/copper_band.json index f80e1a31a3..226bdb89d8 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/copper_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/copper_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"copper\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Id:[I;-359695444,30126360,-1513204284,-616246813],Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE0ODg0Njc2ODYwNDksInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjMyNjQ2OGE2N2NlZTNkYTJlYzE0MDJiZGU1MzhlNGZjOGU5ZGVmZGFmOGNlMzVjZGJiYjEzY2RjZTE1ZSJ9fX0=\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"copper\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:\"$band/copper_RETIRED\"}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/curies_bismium_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/curies_bismium_band.json index 5374b5f95e..0090800644 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/curies_bismium_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/curies_bismium_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"curies_bismium\",amount:[9s,3s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Id:[I;-1332644679,659216762,2108439484,664728976],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyODAyOTI2NzM2NiwKICAicHJvZmlsZUlkIiA6ICI3ZmIyOGQ1N2FhZmQ0MmQ1YTcwNWNlZjE4YWI1MzEzZiIsCiAgInByb2ZpbGVOYW1lIiA6ICJjaXJjdWl0MTAiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2MzMTBmZDk3YjFhN2Q3MDkwOGExODc2N2FjZmRjYzYwZDJhMTU1NTY5Zjk0YThmYjZhZWUxYTMzMWE5MjM4IgogICAgfQogIH0KfQ==\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"curies_bismium\",amount:[9s,3s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Properties:{textures:[{Value:\"$band/curies_bismium\"}]}}}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/malachite_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/malachite_lump.json index 569a1f3acc..4bb5757753 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/malachite_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/malachite_lump.json @@ -39,7 +39,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"copper\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420018,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/copper/v0\",Id:[I;140191582,-1151712444,-1271449307,1366570837],Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE0ODE0MTA4Mjk2OTAsInByb2ZpbGVJZCI6Ijk4NWIyNzVlYmI1YTQzNDRiNDM3Njg5NTI4NjNhNjNmIiwicHJvZmlsZU5hbWUiOiJTcGFya3MiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDNjMWE3ZGEyZWJkZGI0YTk3YzI3NDA0N2RlNzFkN2RjZWJjMTc2YTBlNjE3MzBmZmQzMzIzODUzNTNlIn0sIkNBUEUiOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS81YzNjYTdlZTJhNDk4ZjFiNWQyNThkNWZhOTI3ZTYzZTQzMzE0M2FkZDU1MzhjZjYzYjZhOWI3OGFlNzM1In19fQ==\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"copper\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420018,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/copper/v0\",Properties:{textures:[{Value:\"$ore/copper_RETIRED\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json index faf4d049a7..dac9f1209e 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorianite_lump.json @@ -39,7 +39,7 @@ }, { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{metal:{type:\"thorium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420020,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0\",Id:[I;140191582,-1151712444,-1271454064,-1822255261],Properties:{textures:[{Value:\"ewogICJ0aW1lc3RhbXAiIDogMTYyOTY4NDM2MzM0MywKICAicHJvZmlsZUlkIiA6ICI3NzI3ZDM1NjY5Zjk0MTUxODAyM2Q2MmM2ODE3NTkxOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJsaWJyYXJ5ZnJlYWsiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjcxYWQ1MTBhMTBjNWMxYzZkMGY3NzVjYWRkNWVmMTliZWRkODY2NTQwNmE5ZWY1NTI0ZGJmOGZiNjQ2MmViIgogICAgfQogIH0KfQ==\"}]}}}" + "tag": "{gm4_metallurgy:{metal:{type:\"thorium\",amount:[1s],castable:1b},item:\"ore\"},CustomModelData:3420020,SkullOwner:{Name:\"[Drop to Fix Item] gm4_metallurgy:ore/thorium/v0\",Properties:{textures:[{Value:\"$ore/thorium\"}]}}}" } ] } diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_band.json index f07c40b695..5dca978280 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"thorium\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Id:[I;1709100198,-881135263,-295939255,1602156123],Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE0ODE2NjM1MTAwNzIsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTYzOTJhNmQ5OWY5MzE5ZWU3YzRmNGMxYTE5NzQ5ZDY4N2NkY2M4ZWVjOGZjNjY4ZTczZDM3YTZkYWY3N2EifX19\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"thorium\",amount:[12s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Properties:{textures:[{Value:\"$band/thorium\"}]}}}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_brass_band.json b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_brass_band.json index c437a17f87..ea68369b4a 100644 --- a/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_brass_band.json +++ b/gm4_metallurgy/data/gm4_metallurgy/loot_tables/thorium_brass_band.json @@ -9,7 +9,7 @@ "functions": [ { "function": "minecraft:set_nbt", - "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"thorium_brass\",amount:[9s,3s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Id:[I;-1331314679,659659762,2101919484,662148976],Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE0ODg0NjY1NTQzODUsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDk2ZWJmMzMxZmQ1MzM3MjM0ZmU0OTM2ZWMyOTU2NTI4ZDQ3N2FiYTU4NzU5YmM2ZWIyODRiMmU5MmQxNDI4In19fQ==\"}]}}}" + "tag": "{gm4_metallurgy:{has_shamir:1b,metal:{type:\"thorium_brass\",amount:[9s,3s],castable:1b},item:\"obsidian_cast\"},SkullOwner:{Properties:{textures:[{Value:\"$band/thorium_brass_RETIRED\"}]}}}" }, { "function": "minecraft:set_name", diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/band/aluminium.png b/gm4_metallurgy/data/gm4_metallurgy/skins/band/aluminium.png new file mode 100644 index 0000000000000000000000000000000000000000..74d3beeed3e9ebd72122c800e38d1f35b34af048 GIT binary patch literal 1524 zcmc&!`9Bj39Nw5aW0-exEGt)d-3-Y!XTs!`DD8DkLU;@D4$U#QkE>;jq`9J0LwJn| zd4>0#m@8z+@kVmaUi}sC56|;`o*$myp6`?H>}Vq_cvcVq00`UJqFhd|*-!BEo-!pk zVio}4X}3d}yZ%nxC>ahXdO-1{sI4QtIk+Ph|EkgF`PJ@9v1%^&JTr?(ujYV0c=u}| z&*ob^LMH+zzzeA77v-J3&jeJ(irLS%Z#vsM$ixMgYE=4?;`-8?4i9MUM;JcL~aDZVGh&LIk zK13W!zFIRW@66@w<{xHe>IIxfvSlEaMZ@WfjBRUJc6RxVAR$(f*+xH?=Gt|-A-Ah% z`+VHo)G{)mXA}$1%e|!GDcjk0UE_V~?1N#dfxm7W`F{EK6N5y8R%?^7$O%{(Q!3sc zMyyjF!XfXV{o?wlf{+r2a^E0f4K!D1NJB0rm@R@pZL(M!`EKYopsJI*4% z7e%|ON66@uuKNW6S^DMyXDFimVXiYR7tT<4DnRBI=<4;&4QC0J2|udU8zv?;93QNI zG-&WI2SNJ`Z7?=kIv}(l@$I0$wp=6OrlkJmGuiW$UKd!QLPzG7-$jja=+;y z0-@;|?>EV&CoLrEk8Jk_4n<1ca!AtxQXW0jRvZypc$-Nfmm%^a19l{v>K}@Ss#B!w z#O`X7$ZMJm|ALek%=1#&0@x%~!Ft$K@dST+0u}~|ZttzSyzvcV6dDTJ0FNh{kUtsI z%lHj6lvyf@+0O@Mw7}yV{>(5333-M~jS4I|MN-w_MapgrQzkp+ zL?5bo1`|e?atT!Zb*Xq@s;^`Yla5cXiMr0VF z>_LSKL^OGIFRk6=!#(@b5ohj$0f;_<-$<4qoX%(26OrTpF^~i2EbXs~FXL?pGtx^1 z0r!e-f)-8ydXg*&t8>|-2pTX&Ud$7#M2GUUG(2Yt{Gew=jrZ}t)jLnnaNPx-8?5!1elb2+Bpn4tc}I&YFg z7KJvIOI8-ZrLbhXF6&w8d4kP$$9Z>myhb>?yB_K)8Q-xn${B>m6R#&{n4ghst^hUF zcX}D*`O&~wwjeTG?6_@5tcx%HT`*`LJpb4_X$#Q#e@G7C?m{>mDbW#sy5;~oD@RnL Hg+J~;+JD)X literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/band/barimium.png b/gm4_metallurgy/data/gm4_metallurgy/skins/band/barimium.png new file mode 100644 index 0000000000000000000000000000000000000000..faa79316c372927b6aca4c0832db6eafbc0d03f0 GIT binary patch literal 1538 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 literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/band/bismuth.png b/gm4_metallurgy/data/gm4_metallurgy/skins/band/bismuth.png new file mode 100644 index 0000000000000000000000000000000000000000..17c464292f042b7795131633c85f52f257391009 GIT binary patch literal 1529 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 SYW_j<)Imf-7+!*l$@v$^f!SmL literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/band/mundane.png b/gm4_metallurgy/data/gm4_metallurgy/skins/band/mundane.png new file mode 100644 index 0000000000000000000000000000000000000000..b31488541e72c963abba1dd06b85ee5b5236a147 GIT binary patch literal 1396 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 literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/band/thorium_brass_RETIRED.png b/gm4_metallurgy/data/gm4_metallurgy/skins/band/thorium_brass_RETIRED.png new file mode 100644 index 0000000000000000000000000000000000000000..f74a43b2bb2d08fbbad711ddb4d5a981a6940481 GIT binary patch literal 1386 zcmV-w1(o`VP)U*s>*A*7@G67e`}y=RiByh5fq{XrFWTT5IpMw{U}Ydq<%lO(*z%3u79r z_-%|aWLZY0bFyqf5X6Z1i1?^3$g+emY%-Y)<)&}kChz7U1tJ-7yn!)3A3uD?NB2Kr zcd*Z+yQ< zNYe#j7%x|Z$7FJHr?YV57ElE+0CZORSnB~5#+3Z(X9rA^V=k^ni1=h#&SraOIbM)E z9eVA?DYn}K&9a1FJo+7;SLf^7SAPeTqR0rtCe~IIMNSyT%U3GaR*1lKdU~hR@Bv$3 zQ;iYQG^rmDAqWK3RYVF@OY%J9>EqA%_SN6W^Ar(9)ewdu)9L#=oq!vgpyzq0LKrqt zwaYExp_&6qqY;tk2}i?2@;u?mgJ-l_EslnV%+jkLJ%Im~wA=Tz?&y$Z3+g84140-! zS&O;^LBRNOgtZmx@dmqteV)JkD?tz;(qt`KVRx|4d_L#J@z-p&_c)!trrGRJRVAtw zA_i3-krEL>)dJl5JwevjH`Q88S>`-_e1Nr<(Z%;9NkURx(OKznJ|6)}-7|e42UzZN zAVMu0`cE~_SZo>~4*QT0&;&#OB>C|Q=^`@wQtj7V~QT+Y%tNpi+k=OMFn z%pd;rN45uh42p=dEXlHr%eJAnFjQ5=WEHws9_K5T(dk>Z`a9e!WAZ#_+^jemzF~W? zM`td0o`>gooJIwmxnQlunEC`eU#VBz==7Ma{sXqFCX2;_Mw(7gZ4k%nz=ByizMiZ| zfNGA2cfDlmieI6sgkcxY%TZNSh4r|@>GU08*rKX3R1-wtasKMo8 zhNWVAu*YT=Fbq=$M4ZJXqxWxNa|eL&#Sl6JHj)PPcQ_lLKyRCYMs(&Dmcd`N6sUlT z(dk?0?{MF?D2jsjVa~hJ8vyQY?a{u31q&vtAou%E)EL7o9h0V4L{STXwW!N19b;{U zA;QWGi0HPqxYzqBp6Bu1>#wP|g+;Zld=%Bqay{-ZD}F_moi9(1_&*X^C-w8s|IE-& zIT^iSdutDXv+)U5Et?w;0NAdYOs7*?trnvoV^BmCML}7X1VO-QRB$#vp;E;Yq2Jr4 zpZXLeQngZBWB>Gb$kdw@4h zPVqcL7zVsL{wJz}D$65JQB}_8L*jT9k^DONI*=65>)@lPgE0ncD+b+1eDmTHX|C^{5 zs21dTa(#Em^OUEL4>%egGEL6#JVS4Fi#*Rc8Xn&1i<09wj^j9v<2a7vIF92uj^j9v s<2a7vIF92uj^j9v<2a7vIRAhC4H2=9el_HZ=>Px#07*qoM6N<$f{~xC6aWAK literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/mould/cool_empty.png b/gm4_metallurgy/data/gm4_metallurgy/skins/mould/cool_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..851fc0a37e8bc6877d9bee1a4531d13d293fb6a8 GIT binary patch literal 1128 zcmV-u1eg1XP)q_lmW4GDtA?Z#snL}pg^`e4!leq{{koR+)hbQmvB2NSbI=eU3o!_b$$u3!G zgDlHvFC6paxx=-041RwuNs^dJJi#(cWLbvWT&CCEqb4QSuYW9xI{wRktLO{d`=!J7 zSNBks!XMruOL7cLAaa9t`xE?8pT$~@vzIRO$K%@wWiTF{;K>@&b7pz_ztUfLfZV=F z!cS~}@hu=xD&x)d_o$ycVx@V2QWa7&=J4qQq}}8w=psapFilpg=Vv~^y!(x!4-9)h zayl3wt&1Pglr5A}q;ZOnmuM}VA&L@`Y(hy@2}cuNboY@}4=Lr$2bgz%;Q@#q za%QcK<9IwfzDsUd2w`BAEv)1baUQUKew}K$Lg&RJl6-{c)d)hLI7wzcz`Xkle**ye zg8?62-{Q&M6B-K*CZiP75I9R$5o*Xm?*( z?aI{ry!(y8Af{r}c>U75U@C<1_l~-r%XlyWp;&FL;g1J28x4$-#bT{SlEf6{gJ6ux zN7$A{mgQ`0Y*Lp?*b>q>EzHlm->6CBA3GYw5m7iMN+Z1LGPV@dZbDNH`v|vvZ4aa!R|kh7zhUKkt6=*^N(Cv(dm1CS|9J$i=If z$r8HVE{#Tmjg3uqc5d<7+8aznh>b?LI6^$(ermr}CYI?L0&$1Hd)YPA~uQI9l9 z@th{T{{Gbby!(x!9hI(Rud|DkF2msvkqeFnUGfyNEGyjMAP5LTpS9I9RNd062bd)) z6`Njvzc4@VexqndMOMMFJPgC2@Aptj{qjw7lE2 z3H&k2P^b(H3(j5G;`rG^PKHBlYce%I?|$+1H#gO^9R&!2F(>{3W!okQ0yeK~;fF_z z{1L(uQ+GIsUNQ^bqP17_@(=<)f uG)>bqP17_@(=<)fG)>bqP1CghpFaVoFoKw&$5uK300004TC?POVTu9noKckb@DvN4VLI0?$MHxTem(DWgY)zzghMNe))Bu zPe1ztAq1}L5{4n3=TQ^|o!hq=hCLQqEiPQX!e6@&5XxX2p5n%sJg%O4e&be zF&GSpq5(Iqe#}B^4W$%CQ6S`HR?eL#j#JWnN?qAZ!YMBf50JKplydF^RNY^C0OH5^ zzK@hXPmi}LOcNmt!Z5^4pO6$0>lfFt8%_3KJRvPYJg-GG8Iq*w+y|(-zx)8eU@#yE z>KMkDAjk*;6VLN-7Ox?c;Hdio$MU&$?E`GbA#j%whG4<#%>DdT_m@u8vxi@)A08=O zbDuoR@B@!YaS7YlWof};zvnUTPqCyR%QB=Z5qT43)@TU9%@04CYX+#aox(hnhkd|Lmyixs3Z$5Q^26HHPEsOd2)6yM29Uh?yML#@dG9I(F zb)RuMptG`u5~?&`b-(!X&gbg&jyg7?5U+Ri@bHj!yUoVNCR#rW5R;Sst==Kgu^Huj7WjiYJCXVT07zVvz7o`+J z6o?wQ!BXiCZ(hC5B#9Z0`kW2UuyC*~A6vR~mOG{Ss{6&gdv_E<;mai!JFD#N@8Fmo zaWNu~YnYCWDneADkhVuO88S&?nr4$>G{R{%nU!|~i)c7T848tyVZs}iuJiKG$DEEv zSmtzQzUqGQ&9`^etQ`f2qA{n#BN~=P6h&-az0PoQLO2W&rkJ_IQGCWIidb2_NZ3E2 zR;!WaQ|gU6men9hbqP17_@(=<)fG)>bqP17_@(=<)fG)>bqP17_@ b`~UeHo_J{IP)O`(uQ zp&_AUQBr~_C2et9=f!SqS+=FICC!ZH^>&d$$wsp=8m41fw3VtRvm(N#6cO`U?+0 z_72|o9$);}0bKGt<-H5n`M|!cr%^!~Xsz$H#{}-nhqH!)5mAWA^s<2>lUZd`wJ0W2S*yZ{n0I{Pg6}iQhl% z{=x&?Xq~4w2nm7#?_T(Xrfi{Asi*_c6N}CiA%uZZGBC{NM7ht|m9seI3fsGX5a%OYw~ikUh~oIf2bgw$ z@oxZ-1|z=w@C;$EgH@~G9SIuJ#w=e!D8XKLml?Uh)vFiS+TNgQxs3B6b8h>@@1J&m z;Q_*xE8O_>G-h=NvWzFjA|Dxxn9fVOZi3Z!2)u-24(UDJL)Ij5nj)+kQl4l5-$=iB z@clPx(vAvCkVYv=D9VPU+uxzR*k7!gfvPE^V9A(>e6^^N5|2aaTqX8$GFY{wiL|B1$zBMEZf2mCPr#A zfA$hdlu(rK4fasE!W-=q1_A5q4+-L9+O1`jP=)zv_lsM%zf#Rc14EdUs}3R;D5XfV zm`b&d7)hn!hHPa;BWs`#-7nc$$m&!oJRlBL#ZUTi&M)@@O**XfVCq;ZN{ zZPM-UOw3Qa-zeHqS(9vSZy;rj;c$q^1qWV-JcTUF3U}D|ef)61^3o}sTItmT%o3G~ zO}D>On4fmPQM98Xt5CIE48x#5=%SSR=dUKznhS+Hymt8-VKini^f)>`!lsI2&)~=! z?ZtLse%k%w?%mr8p_q{i%(s_b+tF-nVpSbfK0@UR>A3jefG`?Uu__GwA=OHSN%>mS z#vcSIL!mM-EO_hOH4b0?MsGO8wvvhYY4?k7zq_LXFTs|AG)<8;iO4D_%cLw`?Wpeu z^agvBZ5!YBS-X6VL3qGuFhW>@NqK*K#L)L?Ev+!}4lqrVG)pLzOW1aqC>~GDPrF~! zG)>bqP17_@(=<)fG)>bqP17_@(=<)fG)>bqP17_@)3pDezX9fGb@{{VXg&Y{002ov JPDHLkV1gBHKv@6) literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/mould/hot_metal.png b/gm4_metallurgy/data/gm4_metallurgy/skins/mould/hot_metal.png new file mode 100644 index 0000000000000000000000000000000000000000..c86e187f5f3a25cf2e2f3ddd5f24227ac122f001 GIT binary patch literal 1123 zcmV-p1f2VcP)_2oCY2i}Y&8Is1w97hV9_>);2x z@$L6s<=zG# zaGgAttgnAdspJ3({12I4|BfHk5{-HtLztAUD)p&4N-5GT=KF^aj(z?~_ZvkITx%|Y z>(KA_c=P;wG-Q)JSKvAzmS|3&W;BY4vxJhWG7J)S+S|yghm`Wz7clAm!VAFo4g3Jl zYv8LL8qEa^!vH_PF#jORL(VRqrCP4Awevf19^iQ{;jm8>$H%^aN%t4O1D^Zg{@tSw zesFaAet=oNj8KBz&JI&@mMd4zv$?fK&GH!KKBv6azdrX#^%q{iaPcxb_itm?wjs-S zXv}fhn8U0-;qc5XR=3Kam+*`O4%c^)jwDV~gykURu@>+|`o&jY-&W&xR9J#EN>M^l zHYAu&mUHltQE#${Y~}A(mwkhl*OGMA@#4%}=`D==CBhhRbUg z-T_k~jDL32@f-%d1cYL~xj=u=J9^`mEKa#DaU4;U55oZ}53ntZEX!G5USUekU`t4& zv@k#Ee#4cMvR67M(GHzI*Tm@Q*xHW?g5r@ge+SY5rxAbv)xxquR?FhA*j@%hb9)QcUhRS~&(v7_yFn|i&@^70C+tM_XeQSV3w#EHkb7 zmv%H8nOLiYOVH5TTC_|w#Ff4fG+*J;q{K}#4 zV_V7C{G|KE-7jvbK`+6Uf;3H$jznY?lx0#DM>`sZ0}lJUlx>?Z3|YB!mHu#_pdTPC z!MJ=ldWs*0H0Kuydi$8BNtz{;$|Y>OOcamC<|o~+X_}^Knx<)*rfHg{X_}^Knx<)* prfHg{X_}^Knx<)*rfJ&$&);B}RoA%&`mX>0002ovPDHLkV1lr_C=CDr literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/ore/aluminium.png b/gm4_metallurgy/data/gm4_metallurgy/skins/ore/aluminium.png new file mode 100644 index 0000000000000000000000000000000000000000..359ac5c9957621e671e0049034314a1dba8e0ed6 GIT binary patch literal 1590 zcmb_d`9Bj393ExFP%0G~)#yU$a;MBSY>t&ej&hA0IcDbErxlyCZLV^gcWtiTMY5%# zEIIcQVdNTCBE{&P$m@OohWCf(d471F&-eSw^Z7hPM})P!tcolE0FZ~-SU7L%m46`v z+~&%_@Nob@Y7=I0^;%5fV!k`d{ij5V*3&*W%Xwj8p^yJD zlhu(vq@UtK6%?{k;a<4r8dfbbmFN3tO!lDv7XBl|EZvkTt#qX(#1mIQz z93CNTZ?QKH^%f@2p3{jE zxh_dRr>)%^-cWB9;rCcwbW>t@91-E<-p-E8MY2ij=H=FFQK1)rw4QOX^@6`glz4R36;mAx_gy=c%Z*zP;|6{UdgBc(3Jf@ohKR>)KtRY6{XG9>>Mqb%eQ4 z0+ZRUC)f&@0OWF>in(u~&#P`HTdzA-J@0O8de1*6OM)GZmD8~f-nrqK43z${ZeBr7 zEQUX14Xud;!}m1S5~MfcJ>U61D{E*-O>*Fcqx7InBp_2i^^(oHBTl?8g8~~~4joce^^1-szF3vd#9%ad z9iS}HB>TYC8YdD#TJK=U!XoX^Vf1pJ^#MAA@s!P0%E{KGbTD&<-=K`Tx7fdPP7h(X zHofFF5r5fK%0BrWO*;8@k0;D(#AwAN?h6QseAyvH)(9>iWZPw>V~ zIm7C0fx~CRJ@Sr2QlaFHvz6SRhH8~_)3fv38+dQOp*rU1{(pD>7 zK_pHv*T*o;CimPpRzB1{6W=j^560))Yst2hX`MfnlRD>b>~-sPsx^mKu;?-{8+-1D z0UB*(t9kLoUO_q#|5;=NOyP^+Q9F2)BHy3S$L23{XI11fGOYR;`|!}k^5`U@Z{2Fd zB46h+BXEW-I9ZDkkxtXYS+{Ts6ozb7Bu;VK)jmY$?>w;g-9Rd*_OV&;%t-#~$ zMOVMx$u+RFY~0qQxV*VJZ}2y`o_(PVN$uwSqE}xajAsQkZ%KGz);5(k*wmf7bu?5o zaVUwt6A~731gl*dZdWeY0{SG&og@j$yEBxo)ZP`OSEQ^?+uj2J M%o1TyYwmsjAGf6o!vFvP literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/ore/barium.png b/gm4_metallurgy/data/gm4_metallurgy/skins/ore/barium.png new file mode 100644 index 0000000000000000000000000000000000000000..88ce393d30d56169d097bd1e884bcb90e3b5144c GIT binary patch literal 1642 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 B`Bwk{ literal 0 HcmV?d00001 diff --git a/gm4_metallurgy/data/gm4_metallurgy/skins/ore/thorium.png b/gm4_metallurgy/data/gm4_metallurgy/skins/ore/thorium.png new file mode 100644 index 0000000000000000000000000000000000000000..f01bbef09779b200e12fbdcb7a212396c5f660f8 GIT binary patch literal 1528 zcmb`H`#Tc~7{`ZlJtERFX>R2PO0XCXhLn5q<2XYLq(=r z4)+W<3c_$%sE;G!-_xV8G4;-Nx;)5b8rrpj)-dc)XWCj~#6o=|ChQ}>iX+)59PiS0 z#D3BMJ}YUQ`?e(B+#5nq!OWA|RxcPb_6*V=tY89hn$AHfqGK9kYfQF#W947OZyZ5wVpgB``>W&w1 zay*x3gw}8b{T@m?x+>clD-E+G`p6-?IUL{EJQ3% zz8sjZOzBBeP^wrkhRz-{Kp-ksSgcf z{G`R=63@#kPcoUP*BZ_7BoF{$(u;N=_0Z7JGpl>c1j6{xwyqB!cKJ8NYH4axvFj(I zqoeck@{S@9Y2!(H*__PLTcs2wO9{E>c;feiOU0rx>Jl-3RcTf0fM5{iGt=P(HglV+LC%x`3x%tphq7H+>V&h*Z6g_-MotPYG zyxcp&{G+(2$a|0ePx)+)TP!n!>wCL$iWt8v{-GgVp^Cw*)|mOf_Ol;rkn{eFHc*Bpcp<|69e)r;p2}*Vn6E z#J-B~s(KpfEdA(KCCJj$*5-hv3JMA#VV$1I+c+=mq%jPZnVWltE8|~$*Yxp$AGK{B zWu<^A6v~j4CK>GS4vi>&4sRdiCbvXmH)u%`C*0)SbrtEZ=t zwZAi)oi_5t;mDCAR4TbZMng)m%Tuf~k&$q9^?c%JlTO`G4%hcoaIh+yJ@|Nt*E_ce z>_BYD_ShJL*&{3E>ksalyP*XFrPItp!fnESdjg#wM?DIKe4+4d zPyS(X$4zZaZdKj9f1tJLcnhnLO&}0l$}1Sp{=QpN<2yEvqt9DfTB28Wrp>+2Nq55^ z6?Amyj1XVS zufmq*RzEQ$KW^<(RBTF4l3e#FY@_t*Cixd@N$-3fWAWp+P>H{I zbni~M962wK0H8zUy^n7GA9;SlFW)^~1BRam{Gvt2gbRXYB|TkH`h*#TWy9>~fb`@H z5l87G>p%Y!;|I4d+Pryf@#>U)OMLZb-u<0tc=+Tw^6`gn{K)|>c>J;hK(ivVfc6kQSu$}0s|PN@suIq+JN&8=N*(ndN$za4Ne?7W?bWu z;E>j1r7)gsXt#I#(Y-s}tC#ZK@LW27@cVGM2u=9;o45X3zv#`dzk``k`iPDNQ$xIC z{?;Dle8kNfqyvo!11uIKICgFyP|inG;;(@A(TDFm!2HM8e)j45e}??Gr`^cwMa#rSljS=RN#-h$h|{`(6$@vDXSWk(qc&p!Da%}Q7{m;&PQJ9DHBV35}l z&59F;DL5y{tOe&V)tdUHo(?m^g+P1r02e$Mod4ql%}TRZ*LO|J{MONw+N%NaWR0|e zW`9Q5?~q3Di+~klJU*rLkuqj*(Cp1?AZ~}D(vMgvH5k3%7wwk!SS}3zeu54O0N(|| z-u$ceHD=a-`PanqL69n_IhfP)#d0C7dL#&1 z43`w=J=iuIiq=5%f@MQvL7Gtcd5fh&*;KxoSb5VjwSGin#)%+JAf665+4gw>GsBVs z^_1jw0<+2kriN+dofq;Z;iLv2Zp$YHSNSql!7kM9YsD@o>+&GZ3#E^Q{o1po^H2(9 zlaMChd_C?mYcW-%+0FrHW93Ea$h!?o7aXWk`h>K;hGr_bCV(nV09DdzAk5oo)dLdt z7PL2(q|-BWRLUlSDzlqAU`q4)lJ@l_Wiyc1iQ#wyrLcJW089x7JNRXX4vErd@>v8` z+UpBY!!PHR9}}f7O3GOkKd#xH4es0;a~50aF(+HLeVpx`3(iC1Mv^#~jVv`2YX_07*qoM6N<$f|@UA A$p8QV literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/floating.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/floating.png new file mode 100644 index 0000000000000000000000000000000000000000..6d63f6e5ffe9284e3de762ca2450188ff93047f2 GIT binary patch literal 884 zcmV-)1B?8LP)KQx`))oXSAe;p&Q-@W5r48y?1^9>P5F`_zzgGjyIFB zOUCh!`+nlp<>mdq{{+xI_5oAkb|f|<5REthf(eamKwWPj09Eh+Rn7q-eqpp9)pJkF#ByAbu;36#Q)kf z{vNFy0L~N}O8Yw;5O9ZD0j?Ow@o*F#hqA~1LP{arVXCka#H6KqO9Ci{UY=5?sr7^a zB1LQOKOdaMBe1UrT!klF5#$8qJkxwuz%vW9rTt7kZfnaD`16ni9*cbfd_pswRhRA` zL0q-E2g%8xO%qdyK+b`Z2{sJpho$k~@$V979eeKDUmH-15!Y+v!diq)kuT43=8c!D~90>@C)O3vlV0q%ng>jzas-QW?tJ4}`i)>@b zwhZEWgcCuY4Os#^dxGjL0#@W9O*Q z$|GQk?D%u@14LQDc5kTTboYK$&Yptd9%xLp5h=FJc~uCDTwzwJ40va zHXa=wss;HAQj}Zp*`n$`}QnHqc7)o?DDLjU!63ub>A9tc&Mo$#qc@$?#QWN z-(Nt0si4KO89LMn2xKT*J7!DI@GO(G>#jZjb%wxJ!#}1!ErCrT*P50FQS9Nubd~tNdUD%u)=d07R5qDCbDPzG6MCwlkGY50> zla6Vas@)M0v`ZX(_svIFr)R(4^^RZ8&+mNyV?gD8d)BPD!!#7|AU^(_b8>w6kR;v*x2kik*cm{a54F$Wjupebk_2+ESh1A|5q@_;aB`o* zKKj={|H1d){$?t_Ui@%&F$*&M`26}YNZtqe^61FToc`G%KJv;M~x6_pO8W%+{uU0C+w`>C4PSS=Rcgp4-3^Ufy3}>0C!ZqMmhu#jcY6G z>KEiCNv(xmiL%@yLOSf0tuekHch(nG`e&Oaq}R~0oj@Wgnl+BRS{bJ6EnY05jH5X% z{M~(Ji;R#YH{o|@y4u#hA%iVXh5U>PJHD66blh z?6PZb4V@zrQCSr@0DP6=+&bsu5uXQlGUmqY%-!V8qp~x#B{Up2QWt&se2&jsLFR}h z1y+4PwTCh+#d1Agmiaf^Mwt5qU$#X{sP-v7b+;2xYk)hc3+K{7CiNMc3T8r?!rmQ( zVA>}%D_-IVw0VAxuSCrnc8lsi+xtzoWLHbb|G|ltXrF_Pu@|7V1Ff+aptS?7u@|7V z1Ff+aptS?7u@|7V1Ff+aptS?7u@|7V1Fi7}Xea3ln>KQU00000NkvXXu0mjfbHTPa literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/healing.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/healing.png new file mode 100644 index 0000000000000000000000000000000000000000..14beefcbae036653a16c33dc69db109f9842d106 GIT binary patch literal 1025 zcmV+c1pfPpP)5(#VO->VUI-QR2K6~qn_#0U3LEdTO;87o@82R8~pz!G?sJ^?qzBO;3Y`D>}ud1Iv;4cRO=tdX@Bi9O8 z8tvh`Gk6Q=2@G49IQaHgQ10J4ixHrcf?WY}E!bf;dLG-dj zDupuzq1rjzkGIa`f1;RUFIf$6>fj9M062?&2WSGU2uuVX1APZm2i^2+qabo{yA)mw z^J=qZEZ`I22|)Vp((4nuMIShE;Puj8dw^>j;H!Xn0<@F@;{as<)II@tR=`kJNc~}=un}!eIPSo(vGwmo*1q{#ath!WsYUnu z#?JA<46AboD`iT3u}ZFkky8gA7 zju$0V37myYv@cPxBvt}{hZH#nb+n^QJ&e?%b>i$^5X+7(5K?al*wE7v6QzmJ6&sQ7 zU_zdW*-_i0i)Be>IHoCreFw+hqTIov*amanJ8NqHIR2Xhz_O!_Kq5cJYQBheJhsu^ zcbI*Wvf!dGg#3RI91>xyR-XW!)*?DiqIiKSSVs?PWfHLIu%E zJE*$${{09zcwLemI4__|CGv3gN@Rej=8r;7Yks=ONo?d%K-#04Ft$4tGq!L%3AOfnSI-|v~GiJUVb z7^+4Hfm{ov6dv3^;^*^o<}}lFJ<$R~Kk(1;&BLSTr?1}kjAzfDz4!UIfqrD&hS<|u z<2`I<_$$CwUBeho1yURGipX_jY>sTad!@O2c(>Mb@rMNBh4E*m+MnfskMG{TVig)2Ty?Gmnko(Dr!bv z65gB;0ywnRNGTyA#1L8L83BT=>!lPNe|<|@Zp6oiU@{Bjk_l>PSU=Sp(>&3|4mF{a zjF};-Sd3H}7grY?><$1pd-AyZ-%Gg}ziEN%iERLa9Pfq^cW23ok~8j(_C3e`$swLo)f%P7Lh@d-;>FbjV{i06O%{6+KjucPOu)31gcJwHvitoJv_Kfe0fQ^|bx z$s=C=^pa`5qU#5`*wJ?#(=y|=5<*;i+8YX}8fHpq4X=$DBc&8dtC$F?M%Q&LIZ<=r z_-M@uSJNf^Fw(`2-7xa^FQ3Ym2Iw#hl$`nQ`|oHt{V?LSp(2d^K(zIc%=3JG1AsfI zDltYB!QGkDf_uY6aKOyCe|V3eiVOVbrnO#p4Jt^aG~4wg77m$hoYi zL4+ap0F+wRoKOpxfPn)hP>ce>b7YvpRbLd~eHp;A!<@O3tL zV_9b8dVi6EsR8T$(kdx0h#81bO2yQ0_pSA#wXLDX)VR93L_`Q7AgsMyYehsbHPSqT zU*`b8S+jsRh#6^K5Z3RCyxXq`Vn!)teWx`yBI$l$N*`7TR%Vbq`d3-90$gw^h)OB?C-8 zaQn|+ydr+o-G2WszdI!ea_VT)isBw7CC;{M|+R^bBgyw7!idei3n$}xj~zjoc0en zFOP9An2%)5xEG}QKVMvM7*F1GO+Sj)eVfB%8$=SSnQ8+NBxwO5!YI}wC{0>2m2(g! z=}xac0$kYue+sbUNXG=;XnE94RYQmrxjh= z(lGg!2q)_jL~t7+oXNH<(u)4$5B^@gaAWx%XVW7XPdWeieR5i{+J*eVbNEf8%XEm@ z$iru!;a+L-0fduKy0lN$1rSX20{4oDLKrGat4jpMBN*!i5r$|cBFNIPZr>$I0|bvZ z$Gi2LLkOppmS1*v=d2w7y_o(()&+}Z%`(4(YC}#P5yq488z$?iHUdJ|99}lW-7qxT z77GJnXGmHhl1Q4dsGJNBDLw#@(~|Cm^{bD3dGYzI#RI6Is5W%Xnk0#8{qESa4Hk7b z^`(}*_GtIEeL_i8pYSL^Afhbt0ZB4u6G<|~dWug3ppsbT-5g;yk|ZSQ4j>xhEg{KTiz3XFEK?FxIPI?e5DrSf)dY_f+ed>KRV3YL5tlE*)O#17 zpz|UTugw4dSNvrE)87`?2F#tn+*}(lcLH;BZNS_K%+0j{b0;u2*9Od;z}#FLFn0oT fb8W!f3Czv6m}E%C5Dltn00000NkvXXu0mjf868GB literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/luck.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/luck.png new file mode 100644 index 0000000000000000000000000000000000000000..2aa399e6670c586b46b49dce6d32b3f3fe5a0623 GIT binary patch literal 1176 zcmV;J1ZVq+P)1+8^O&;$l%0^g&8Ni zGxPrGt}YJmc!?C*7Avu@g!Xrwp6;%CrmN~1dGzQJZ{y*E7wI>@VlXq-^A9=X*I3Dj zCPD}#8U{a*t>^CQ$6T~uV`Ybi1tBCB@r++Qes%xJ)AQ$VyW{cW$8Wv=CeZh+r$yM{ zUb#4YNv$B7fQm|F*_;t&1{Jp7{FPcWq7Bswb6xStozLh){N=+3FVamUa~<9(z~5iq z{bDz~9={kCG_gSyRF&$5%i$G$=>dT-<8*b85F%-|psxr1vHcT$)lY9Ck?ZnK0q%da zeO4)`1{QIR5;1c`0;LS((gPLL`Cxq?T(Oc-iR9eTmOW8?`{e0)zM*{nYvQ{WU1W1- zevh_%OPlv-0Nikw@fB3(WOhdH2VU>KB*aMdg4G@kVJrog-`!9y*W#ToK;5^!?GX_) zfRzk5fq;mB8+|_S>0IJ9*i*$;+)7cKQ9-$&~!e)6+ zXP3-%0TFs@!H=(GHePK9(UsH!Y#PR&q?2O<4{I@ct0NTV;+%hk>f5zRAI0vr;0*kaJX#+qWTFjiW zYAPzqOc$dF=JcgK`h1|*0f>vZBGa=UE(k#oFAUxhLd0EY;ta#s4;M!tP^n&yKHxvSp)Gq< z!K-04kDj2yER4OOvjge?avGG!QGkxnMNq-j=3FO?fN~hxoI>#_dJ`iI>Mad=8=n_Y+ ze1PSa7$YKrnGt0UILPP*OYW}r7c0zUj#EL#{}FlEF-!AFlLydcI%Pfoh|B&J;(}RA z#W|V(0C!_O`yre8hqUDa$vx6vVqRD;&v7?a=>wK=P4NzD#>;_FaPx-e-mX@3|FV>HwzZR)DDkn3`JwrVe0gZUvY+fT_6^ qVCn#-=2n2I1DKjy0j3UMYW@xIV=y@O<+Tq000009AoC7v5D&o05*r>ZZ{Z!QEb|g13_^)u5O!>g=g;jv zr>a==*hT`|Vx&wQ;P`z@PDo8%s9iP-|s^>RTUKJGN_I@*RK35LYjGBQaNiI|1 z!FC*&TkyZrr3UhV1+yRn3`(ek_8d~*J zQu_11{rRh~{O9iYW#m=^#&)8e#E}4SQy0$W8d*`J|{dV zr64Ip1ewd|n{_gJlVYm2%3z_NvRVY?C+6(})rT{vY z4o~On#}7%8k_9v|6Lw=yR}6p}Gu|9>Nm*6si=iTTbEdg2J^>{&DMfhu))tfHls!28 z@$&yW(4;TMdw<-oSo%VFdbq$)G?h))F}oue5y^umXSh3_j;3%l4or3FctmoDMq~g> z8;7BzUM@xVDO7mr*&8-r-jJv6^ z9X5*(a9_F}PLgCKBEn|qF;UzdQ>A*P#Uh3v%W(iaUigG(Vy;Qq3?0pr^TUJ{BQ>cl zFf}rgVd(J7_%k06`N9X3Qiu!=Q$7zm6>EFf}o}}uZw38f#mu9Dofmb>A33U-dlD3EvO*W zR@rX)<%d|_^NmU=1y!NeMqi8!p8J5BOI$>7cZx0_Nw^T1w0v=YYfe{`1jr>m#Z2F= z|Ba-(P0xNDd3tdG5*H^Ew%tgQym7Q)za2T$N~Lm;iO6I>Y)O(^o1Ss#Xc0I;(?%v7 z^&668>^sJxqqd;oG#VMnpSF8EV(t2o%v?K%Re7Bi{@rsUz}g9{&5ZzSC$Kg*0<4|D z+S~}Rb^>d2Bf#1Ttj&!8YbUTaHv+7kz}ox-8jnhNTbea(00000NkvXXu0mjf*Et=C literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/poison.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/poison.png new file mode 100644 index 0000000000000000000000000000000000000000..a52290d62fb6caf6df98e0b610cba3183a161402 GIT binary patch literal 1047 zcmV+y1nB#TP)8t`5QV>)S@QnEu`DsGwq;%2OLAu>1*z-Ah%CT> zMHe~^0S+X^|958D! zE3{=vKkOG*=NJ8LXS{gv;@0!;1A2#DiY-Wj-Tp0^iHMPzD8{l`qhe$RZ!Ry$sF)QZ zouVx#o9_WmCnCQ}e3F2lPJcY@h8>w;)=;cLL@+fXoqfM!@bPj>S+H3?MzzqCmKr^; z-v0@(y@xnH8=oZLx7WX4CW)!iHcLd5hyYPMDjov>BFdxnDIi2t6vMq|s2xCmb$*dw zK9tYHT_s@a#UoUVVL0GE070gsI+ntsSyQaxYX3Kf{)!04v!Ytabbyy%K8(-DT?Eux zdqfmfJKng8P3FL3KoCqDhI#-|Y_hvMz^x7NYrtIugs4(|K-H$tmCT?Y_L#K@f=3E#cOCV8%wk)UAhw2>>frvmRf>Nvj5h8-YyGbYLs1wB4EWVlgMRK`& zIqqM^{Y?ue>!)+Z4uBr|E6fT_v!ZR5s48X+NwVuMsXpLQ0j5zX(*y_x?};3g##2CCI(#cFrjYYFXP$C==#ly!j zmx+kbG|RC8hNGgm_tYGT6H(e`0dUj_)w`pJniHjM7I@ULtE-U_V~uJdGij_PaQfl; zIQt_VRh`HwV>Z+d6(ut8^hpOKMH?cWq4uaKAV-}LF?$b0J;ttWYV^Y%Q8~`}n_xju zGlr?*{o9_5L8vIzdsO~sy~vmqQz?DW5%UW~RmM5rHmmW4j5k_+z|^L6u9&uD#_{K8 z7!H`)SQZ&$c8oiGSZ_AT=Sew|fE?EsYiA67gtpC!)ndzGxF(|F-V-Ftc1upr)nd!w z9kq5Gy7vUZW_3a`O5vs~$A1GK82m7;-;5Q{<7m_)D8qSHYR-)b) z9tfD*fw}QOz}ybZjRykec3^Hi5HPm`bK`-4xgD4r4+PBZz}$EsU~UKI#y>GTFJrXu RI5PkM002ovPDHLkV1nBd>r?;$ literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/regeneration.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/regeneration.png new file mode 100644 index 0000000000000000000000000000000000000000..666fda641b0fbed9f4bfb695979c5db616fcb9a2 GIT binary patch literal 1109 zcmV-b1giUqP)rzA5}lTkOs~_sqQW^{(8%f1k7P@XkE}+&ibfo*51eYXi-K zq(Enix8SWa`>>+@vu8MlGy`pfyqOpdz1ch1@6Nj8(W6Ia-hUC$bL^7Vm2g=7J`e_) zh44TsCGS*71!2O`L63KV)2qBoj5?Zcd#E963tuSycS5!dl_vKcI@~n2rnfsSqXEhos6z2%f~JK z^MM#-Y=uH$6Mn(0tQ<+k_5?utsD@vR-lk!OG8vhYl-1FK;mC}Cje&-z;^-X z5#Uk@wiu8aM9U|JU^s#_AKPN($mwRNioN?QsIDde9^Sck-aV5czy9U()lWCFX8GdN zFQ1M-)zwah0AD)Z1w;vSb|YaYhBS%-(Rq2U2T9KSqg)20$S$A{@7!AeFZT}i?Uazc zgMGi)aQ_ealgel>HHbQh! z>^fG%JmJg0J7;#Y=!E{TYz%Fn+Rp5J{b14+sd+QuZE*NwOAL_arMD$3=}JOsAYeE) zymv%}a3Be~mOvrQ8IFuFM!O?*qPbBcV~s6->4~8P9}YT8%s+d7%Gd$W?s<>SlxhR2 zt&CPeY9K6VpR{8J0fM}hiw>v+La-Af`cnFu^);Q42n$w^TYObEpf-@V(yRA->l}Um z^o`D41QY^ELA9MB1-1&LPS_%dp=4LGQ(vn_9T1>_w@%op4p7n+MYCdU8Hl#9@=TPf zNgHJjTI-`u@K+*gO60VWh?Ud--H(|Qy!EomJV@(Gbk1;SNEX6`7(lX=%r{C5ft{3f zi7VcX=L6DQi5`3rNMa=MR83Ak1JUR~s)RO){?LKZd4X^z1|TVtf?*LQ=(=Px%!%GW zK$2h!hjBO}QtShu#qM1RSW=AVCyDt#P*Jdjk+;gu*1GI*TL#*s;`qwYc>)V0N6`Vt zqrFN*A7xllwgWEsGRmxwAi6-Rad=Yf!%>jt)5`v$^+CqWF(`X?2<0~H_< z@9h7S3&Hd?I592>nA(AQP^OzptbxFld| b2d2h93nIV00000NkvXXu0mjfYwiNr literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slow_falling.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slow_falling.png new file mode 100644 index 0000000000000000000000000000000000000000..483ed1c8a1d8549bf36e047a678ffec11305d373 GIT binary patch literal 810 zcmV+_1J(SAP)1`l8cUMpq> z5~tr^K*HQmfP0}Ge)?$t-;J9I=zRyk+;A_LSyo;UeP={~ffb`}8)k-ACt`5=E?1NIvkBH%2xSfDfDWwu4P-J@xXooGSV4l^F)C0{fX%E|ff&%vK>lZ}? z+ruOK=>_$GVz@i*g%}-4xI2~2{rF(*V zEfB%+`8g|EQpk){ezRTO z&UrDDb7i0Fal{mlf3lwgwxzoF3T_4?f-+kaXI3n$XXKoBcT&C1_PE$J_k^i_@ZEhy zq?n$wDG_~8{PrgP(Qx-lZH>P7Wb+iYx>bv1rfYlDH#ytV69axP&0WN3PF>>!ifdBvi07*qoM6N<$f)9XwQvd(} literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slowness.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slowness.png new file mode 100644 index 0000000000000000000000000000000000000000..4aae2b682e34e193880ab5e7f523e8ac7cdbcea5 GIT binary patch literal 999 zcmV490)9XWs1Q9|%zjNaO+sBzoW@^qco1aOW5ai6BvE)NZo-j%^Mzo3=t}q#p9- zu#dD_?OHQqKc0DP%gdK9xew>hFZA@;nR_OyIx)8y4@cBcK+OnuJc9MnitTPo3rE!` zDyUZ8{Q3Iq`s(uSeP_IS_3Ga99|QW3-K;|L};0`aL9ajeRUa+5X)zw zJYb)udW8E-^M;C$nM8nLL?%HV3f&!kmO)~C2PMEDu7 z^KUO+ll*agb-CLUa(#8#9xKrMP`-chOL{n`$ER#=Hta^`iVDRl+qNYDRiz}jXcs|m zh{_-)QBy1oM@SLe8)k)*ug`w-OxDv8+ufG>#gBLUfA!t30J0Q|e)R$Oc~k&_@oj2I_Day2k3K=WU6rZS(I>!Wd-Ku$qQ>#GUMlW8l-qfSsbN;B zr4a5Q2AOQPH+VvN7s6U9?hQsYaBuAE+n$gNXIv3(xy2)gT|e4C!@0hFw_M}{D)jDd zD)mn3MV01GM2>74Q=Ncb|9c;hL?k(cuvi)E14L<=#Lxv1p_VQ;9?|;*k51;oC}m`2 zZga2m5rjJ?MhKXWu5Z{$h)5Jjk-OHng%9QIXZ&(;maHru0*RHyBH{rMQh*@xI_29h9^X4YJ$ZT6e?0rmuMXe?K(FDGOcWf-n*vsocR&T7DyV>gy&Q3i zF-8z~jM#NP&EUil z=>#7faYIC29iN_*50}!rVPgyA(s6Y689Rz7_-J@B+`$c8qSbY#NCtmB;`0#-cySOg zgD!PHZmc=K`J~uRnbL<%7?rbm^P?@CAUo-(i*!Mr;hZ zgJ=ldQ+zNa2@WBLwM#@G-3opv!y}+OeE9fRRsH$t4=3|QL7qMTeskzFfE?b(89?q% z;8l)Fu!>Xl)=#B+X zErtj03!fmDcw6z5e|f(#G}_f+5~41d)ihU@mmTRehMZP@VAcOd_<-t}Hr`+3W4N;N z5xJ=V0H88W=uGj8xa#@{SUvNA>~zRZ!g_-q>@4`SR|_^vFs;|(0eqpf$DyXdOUnYzxpjfY#U+pmhMP fu`NLB09xa33O~4d1u&#@00000NkvXXu0mjfMOwPa literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/swiftness.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/swiftness.png new file mode 100644 index 0000000000000000000000000000000000000000..c01893a79d51bc5b6995f0727a484e24376a7203 GIT binary patch literal 852 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|^Q^ba4!+nDchJcb>4LK->Oz zl{YFCJUAvz6nJC7psk~K&`_z6&Fl{2Q@t1k51ok3DXvUP=PtjWnG|^SU1z`?kCRI_ zf6$LKe)lTx`v36o(wlGJzAY5}#=q*#)!+QZMh|2n*oziyIxnM=+n`gK&GMb4`Rc@a1lojmrxKqB_3eRwQE>RP>=cfIN zP1hvu2zj&Km?gV6?eM-cbKJrLK3Q()bdzaZc{$jCU5(Fc#+!!EH@m;x*>5|I%Rplr zf1v|!&zqNlf<<3`Fkj*OcdOcCqR@+`jyd0|Bd@l7E^n+^dG)8Bdd9o;3yf z)3}+N(6-DmvDkP;`sRGAkBLc@yc2#k38_X4D#tBce&F_u1y6P#5fR)X=3$$0^t1J$ zQr7~n-br&7JGGd+$XdAA?R?;d_C-4a4+kjkuMe2IwxXW>hd%3?r0lC@b=?yst;}w7 zb~FnwPc{zeC=e}_mGz#Xe_wpx6ezId{^@19pLdJBdt5Ha^+4dp zL8WZb`le_5j;}LM5?m9oNOIOA!{tsE7ztOk?Ho z43^@HHV`n>e-@>{Cq!cTevmy3PhTH)hNp4O+jMONh2K6`X= zd&XtM-8cRv#wJx1J=z$%nM?j%q5B^7XBwR9S;yZjY-znLeC=|Cej5MED_hjt;!P}^ zr8y^Rc22c(FSc0H%x+b*Q*qYfM=f>>C)|*3vG+W;(&4O~lA%rV1D+cWvbuqb(tDpv zO8pH=*c`^hy!x4VMqT^?x-NFbp+L4?FRaLdc_Bs>APc?1v=AR(|rj5qe~Oji{bJ-fC8 zaU`ScAlP#^bGm1$&Qw>Okryvs@GhKfo|aF~UiI!yx0q8mJ#LPupsJusnBnHkPZsp6 zHP##2B~+C(D}49UlTXfP7eBu19WP(LeCPZ30euf&Qda=j{Bcc0AS#U!p)5KiB_e`1 z7c1NY$%Y4O=5DDxR9C)QWj3^yCXgK$Sx2oF+p z-|Q)uN8v#MB=nW_wJj8BUl$Nj5P_hH0;HUH52 zqJpRp;nej&$_b<$3sjLLq^yKH!+IdkTkkvDJY9bHR33-?_KmS)7l06dmgXHH;QfGC z2Mn;$p*9hKsCCx^a&8ULhKgzbRp8y}@X`0``P=i^#pPCz^V!AqK9l`BJkK?N}d%owJ&VdTB&a#f|i7gN5F=m z`Gm1KqDptXX#D`VxxBvje9ei)$H#k5_-$x^vq7_x=9$!$Hu7=;cQ#koSgpInOV{1= z0p3?)D~ia@C#Wj8v%Y+@8LYwosD~R4UG&3XIcjaFevwJ?k zM=tK}Puh4@tQxWP2_k52?dGme@P2xGkW(q(&amlGRlcQcBd#*wDr~9}(<$RjfJ@BTo~et(VaqIwI|Q z$Bz}Wt(xune+!h+)~2olKvJ9YR-KgEoHsKxCm;}|@q;xUTG{8Zc}h$C?tXVi#R|28dwxWI;rb=N+jlL^Z-3 zAKLyh?oXvO-VE>CuQL%WPmgXJ=!B4M8UJ7LJ}dm6$3cLp1DF~I0j3UMY8(WZI)JHh x5Mb&6rp7^lsRNiA2LYxIU}_u$m^y%|@h7`)8TS}8!(RXZ002ovPDHLkV1jJ{?REeF literal 0 HcmV?d00001 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/water_breathing.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/water_breathing.png new file mode 100644 index 0000000000000000000000000000000000000000..768cbf24cf7ed72d5dd0eaa971ca51129c924808 GIT binary patch literal 1184 zcmV;R1Yi4!P)g>Uzd=p}>!w(v8 z5`X^1`PBqKtBG}&NvbreRCB(4H8JcfLeNF#!*|wnDY0o9hROKjUoL_4lbaB7U4GDj zOZn-S9*{M0(l@9G)r=%CR%2I;KoC(rI@_QUj8;iW8A@e479d`nKYLtnNY8)GTT)Yw z-aqcS91GiVB5A@1jG#$^S#bBLWtg1j7guyC;}J||v`LxFA*SEojFju~mKxxfLorl@ zq>0fg0b~_K1S1$GLx5Gz47ET&Rz*Z89)SPt26SATw-v!LCuJ;^E(=MNBuX`SHBGFW zxhCwZ(PTjpnv|#(yeuQ9T?@e3gGc@UUdr|Ow(*6c$&p!L@bE1BJ{_OGgwIS!v9*;LC^*;+Bvv`I=`$~P1#_p%iRwXdM}ameNrlM*2->VnHJGfD4s$}+=Gi!N zetf#(>&uZLCfdlXa^`f^@Vh6U%8~}?NtY?^JpJnh7C|Q&CrAlSR*9~ePsz3vsu>Cd zAS(1tA}LgJw)={?lSGLKau)8Nw6s|Xf-kH$C!Sa+FyaR90X&o4%H(|muM5~r(% ztG&^SG8W_MmzT?^{vN78Bg&msLsDg|m7ImEX%-g|G%54$QAd)w#U+KkITnFOAR=t~ zmL@5a8950;DZH~XpKqP(R>YhkDjc$>AR;6YB>3n4r1Sb@^B32{{^jL^CRKLDI9)dYw1+-F zSf$MgRbgL@zD>A8mP9qUs)aVEdEhap%Q6p12<9-JWzI)J6QHDKugmgXPkBSn0se8c$w0000A;w5XFBpyZ1qTS+bE*=?DY}l15$r|5kkfb}j-0isD!wQH(2h1GRfV-or^j(Xp;_m$Q;R9wyi~)C} ziGjBl=K${}B3~uGNx;?BPwzIv7Jv{UO^m1tAt+|Xdf1Y4#@%US!^!b6Ap~NKq@20A zy#+XVfqQ&6zDdCK_3wAURP6>;Ff&AiVn)sd_ZmMtJw;#|5hdrscFX|dYIW@|aF_4G zb0ZLr7YkIC?U+cp;O>|iK?HCXeM^jy`-cbC!+^O{N+GD?ZU8s`|24iJ&k>NvoKexK zsVE|*uHbLQ>EIUn!t8MXsWY>6?@HVyZWYs{P& z0&OdlVmOfYVmFON2t*M|slu3Yrm5TDk5Y`&lOrD28!mtRnNsSy{PmaL;1k)iK)bf3 znDOV$4Q5UgTimPCw{1hv0Kk~W{RXIAP>qntqy;Hq=7=cZ1XYfYs(=Fg^YQ+R?}re$ zcyl)2%_qe5W+12%L!|3ka?U_CHxG|%N-;{Q)$ZDMYHPvVNjYOyH=Kyj#7MC+#f`g% zM{=&C5kmOl`=u0aZvUR^-g~GBsD|q5M94W4RHup>P}_UacZfjQ`G8`W8SVf=*EXou z5m2ce!Cq3sdFy?KFxh~dnqM=y)J-b)$E`u zQ+wBU<*VPzXB|;>;Z+bIqNJSZyAGHt=0-|&?p1VB?T9;{d_YS3xS8)s*;O{@GR1{b zd~$}4NbQnwOf>PUE&SrpzHK>P^lXNK;)OJ=wWGxXfTKmnQNJLiL`sRxP}kzwN&S!0 z_bpx9kV~HCdc@sX^p()I-NmaWq?B-TF3!)eSI`0S8rpD9yjqL;QaBJWcLHGD7{~GNwxc^%%akk5^vA?Q?9EFN$kN%ss}Z3G2_fnrK{ugO&@B)TbqVWGi0E|> zojQmtNL{>yh{Q_8j5yhpth2g09adX5aNeb9Q0(~}-{0`Q^S<-W`@9JhhI=Ohfc7?% zj9~)cdJd~=PTg|{p?EEjmuYhhmDj^Qd(`YMvM! z$Olc8dAv=Jwg>kBSQ~qe(PFTzT>~J_{IKr{iKqA92VeVi&bBmR=+z^^^DC@xZgW0g zz1hW?KYVueP#568zXxcp=irvk0oAPuki0vLTiPPESI6Vd4^v{ecOtlOrU-!5x_6iV zW&`l$dnW*K=9PD8mb#{xTb!x;6>{1B;6`!m_aPQnuI;}_dz(oqQ7u#3T74OeGml*7 z|3NN<5JCtcgb+dqA%qY@2qAX literal 0 HcmV?d00001 diff --git a/gm4_relocators/data/gm4_relocators/skins/relocator_full.png b/gm4_relocators/data/gm4_relocators/skins/relocator_full.png new file mode 100644 index 0000000000000000000000000000000000000000..89049fb74aedf3dfea60376ce1c53ea08e8e492b GIT binary patch literal 627 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 NgQu&X%Q~loCIB&g5d{DM literal 0 HcmV?d00001 diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json index 09f330155c..72ce864cd9 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_anchor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420139,gm4_machines:{id:\"teleportation_anchor\"},SkullOwner:{Name:\"gm4_teleportation_anchor\",Id:[I;772836475,993526495,-815540237,-2046417388],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0NDQ3MTM3OTY2MSwKICAicHJvZmlsZUlkIiA6ICI5ZDQyNWFiOGFmZjg0MGU1OWM3NzUzZjc5Mjg5YjMyZSIsCiAgInByb2ZpbGVOYW1lIiA6ICJUb21wa2luNDIiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTFiZTRkYzdkMTUyOWViYzFlYmZjMWU5MGY5NDM3MDg0NzE2NTAxNzE2ZDA1ODNjOWZjMWNhNmI3OGY5MDhmYyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9\"}]}}}" + "tag": "{CustomModelData:3420139,gm4_machines:{id:\"teleportation_anchor\"},SkullOwner:{Name:\"gm4_teleportation_anchor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$teleportation_anchor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json index 10a5e28187..c3479b940a 100644 --- a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json +++ b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/loot_tables/items/teleportation_jammer.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420138,gm4_machines:{id:\"teleportation_jammer\"},SkullOwner:{Name:\"gm4_teleportation_jammer\",Id:[I;878310477,672930541,-264551059,-1299384752],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0NDQ3MTUyNDc4NSwKICAicHJvZmlsZUlkIiA6ICIzZmM3ZmRmOTM5NjM0YzQxOTExOTliYTNmN2NjM2ZlZCIsCiAgInByb2ZpbGVOYW1lIiA6ICJZZWxlaGEiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzI4MDdlOGM2YjcwMzI2ZjU2Y2I4ZDU1NTQzNWU2MjYwMmM5YWJhYzc4NWM0ZmQ4ZjJjY2IwOGMwMDNmY2ZlZCIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9\"}]}}}" + "tag": "{CustomModelData:3420138,gm4_machines:{id:\"teleportation_jammer\"},SkullOwner:{Name:\"gm4_teleportation_jammer\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$teleportation_jammer\"}]}}}" }, { "function": "set_name", diff --git a/gm4_teleportation_anchors/data/gm4_teleportation_anchors/skins/teleportation_anchor.png b/gm4_teleportation_anchors/data/gm4_teleportation_anchors/skins/teleportation_anchor.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c84bd319355b6c0b4d3198d072ce500e40f2e9 GIT binary patch literal 680 zcmV;Z0$2TsP)Hi_x!v|(7~(M9}WRh zne>@?YyW_=^49(VsZ5&LnQMto{}HETrwXY|n$@L6wAKI^W88JIR3?>4v$?T;qCBWK zF?ltjW{0O^2LNcTDVECYZq-mqF*r2J>e3>G<532 zfj7|41eYb{DCcDHJ$Mq6#wT;Behu*^RF$mXXtdd~MUw>J^m zeb04MNo(y!-&%|3=P<^&5!PDc`MDE$dk2M~x%Z8p^S%7~@e^;LKeYRHH3I+!hel6q zc)}5Il6S5gKE#*1A0C zjC#F}J}$Q#>!Htp_B9{Y!$X&+Kw)@{VyO(^)^)3Gbc>}j#Xriz+yJALSXfv%^!%LL zxr5Oy43D|8DD(OG`B>i*lEJ#I*XvZPH2}uPM=1=Cxi$Si^0*|MjUCsx$;pcVR4QKq z7#SG>h&+!|5};bGF+DxS^70yhyVhExl!`QuThdxfHrt0%ifpzIz+DIDdX#zGl1eG^ zd7qV)3b*gx0pQ)6x8(CaaMai+^SC8~ue~po&uniu0LbV4Qy(%><@fL1iuV*~Hg?>r zYp^K=M^*bV7G*Ak5JCtcgb+dqA%qY@2qA&Ct?stNie@~PTg9Hs zthPATrdWPDb?Kh7UgimNQ)T32C#rEW9FxeANb1qNR}%T|@Y}0zZ-4$P%<%YS%jVO@ z`tf1gPc1U>oZ%{XOyZNx@u<^Uecj3d(|&)b`G4fyIlbS_%x2OLonNx`G&MY)EX>x- zSUE4bhcQ9Sb!yT4Z@+5e;^X$*+k8o|;GAf_n1XNcB^6D(kDKnae=IrlT={|b()kax z`ewQccK@6cDFSqf8Bb+J&6+8{AG|(OA6|9Ym-pIAhXr3vZ)D#3?E5)4KY)MM_doIT zgsbeT_VE@w#l~jb`e>a<}3s&&tegTe~DWM4f1*O#z literal 0 HcmV?d00001 diff --git a/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json b/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json index fbb16cdf10..1f746fe6ec 100644 --- a/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json +++ b/gm4_tinkering_compressors/data/gm4/advancements/tinkering_compressors.json @@ -2,7 +2,7 @@ "display": { "icon": { "item": "player_head", - "nbt": "{CustomModelData:3420015,SkullOwner:{Id:[I;-1331314679,659659762,2101919484,662148976],Properties:{textures:[{Value:\"eyJ0aW1lc3RhbXAiOjE0ODg0NjY1NTQzODUsInByb2ZpbGVJZCI6IjkxYTBlZmEyM2QxODQ5Y2ZiM2JkMGExNzdjZjM3Nzg4IiwicHJvZmlsZU5hbWUiOiJEdWNrSnIiLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDk2ZWJmMzMxZmQ1MzM3MjM0ZmU0OTM2ZWMyOTU2NTI4ZDQ3N2FiYTU4NzU5YmM2ZWIyODRiMmU5MmQxNDI4In19fQ==\"}]}}}" + "nbt": "{CustomModelData:3420015,SkullOwner:\"$gm4_metallurgy:band/curies_bismium\"}" }, "title": { "translate": "advancement.gm4.tinkering_compressors.title", diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction index 84c7643d95..80b5b90401 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/functions/relocate/place_down.mcfunction @@ -8,6 +8,6 @@ execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ dropper[fa execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ dropper[facing=up] data merge block ~ ~ ~ {CustomName:'{"translate":"container.gm4.tinkering_compressor","fallback":"Tinkering Compressor"}'} -summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_tinkering_compressor"],HasVisualFire:1,CustomName:'"gm4_tinkering_compressor"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420001,SkullOwner:{Id:[I;690199207,-409122254,-1436298594,1358624862],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYWQyZTU2OTkwOTI4ZWM2ZjI1NzY5YTczNjE2M2MxOWFjOTcwNmYyNTM0Y2YwM2FlOWNhMzgyOWY2MzdiYTMwMCJ9fX0="}]}}}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420002}}],Pose:{RightArm:[0f, 0f, 0f]}} +summon armor_stand ~ ~-.4 ~ {Small:1,NoGravity:1,Marker:1,Invulnerable:1,Invisible:1,DisabledSlots:2039552,Tags:["gm4_no_edit","gm4_tinkering_compressor"],HasVisualFire:1,CustomName:'"gm4_tinkering_compressor"',ArmorItems:[{},{},{},{id:"minecraft:player_head",Count:1b,tag:{CustomModelData:3420001,SkullOwner:"$tinkering_compressor"}}],HandItems:[{id:"minecraft:stone_button",Count:1b,tag:{CustomModelData:3420002}}],Pose:{RightArm:[0f, 0f, 0f]}} playsound minecraft:entity.firework_rocket.blast block @a[distance=..5] particle cloud ~ ~ ~ 0.1 0.1 0.1 0.05 10 diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json index 34aa27e518..b52802fff5 100644 --- a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json +++ b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/loot_tables/items/tinkering_compressor.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420136,gm4_machines:{id:\"tinkering_compressor\"},gm4_metallurgy:{has_shamir:1b},SkullOwner:{Name:\"gm4_tinkering_compressor\",Id:[I;1102824805,-1759752670,-1411440773,621305304],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0Mjg1NDM0MjA3MiwKICAicHJvZmlsZUlkIiA6ICI3MzgyZGRmYmU0ODU0NTVjODI1ZjkwMGY4OGZkMzJmOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJJb3lhbCIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS8xZDYwOWQzYTNiNjRiNjlmZTE0MDhjZmE0NjY3YjU1ZTU1YWE3NTI3OWQ2ZjAyOTU4MjEzOTYyYTlkZDBkMTQ4IiwKICAgICAgIm1ldGFkYXRhIiA6IHsKICAgICAgICAibW9kZWwiIDogInNsaW0iCiAgICAgIH0KICAgIH0KICB9Cn0=\"}]}}}" + "tag": "{CustomModelData:3420136,gm4_machines:{id:\"tinkering_compressor\"},gm4_metallurgy:{has_shamir:1b},SkullOwner:{Name:\"gm4_tinkering_compressor\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$tinkering_compressor\"}]}}}" }, { "function": "set_name", diff --git a/gm4_tinkering_compressors/data/gm4_tinkering_compressors/skins/tinkering_compressor.png b/gm4_tinkering_compressors/data/gm4_tinkering_compressors/skins/tinkering_compressor.png new file mode 100644 index 0000000000000000000000000000000000000000..ec08107f5e121551f2548cfa0cbf429098daede9 GIT binary patch literal 482 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU|i|x;uumf=k3*vS+^Zzj(=R= zvpnH`04G;_%!esQN_1}iW?FdnH_u%!x#iWa@WWJElZqB2zO3j&< zjVHEv{it2meE(p)-OE4T9TlZ@`*N?Ra-?K>Nis1+&U*LuZ}h*HpNu-sN?iUj!S}pg zT<}lnNoNJSQ`1LY!yk_^lcTW}X*H!Lc`z}py zn&jJGk7t+9*N=)PgttioqBBY^8F{~$-iHF z`_IvvlACY#>{@4djG&(77yK)poBcsil;h8L(-|dif3Ev^gWaUHqMv_me`Zvhz}t@tKO6cg z+1BCpEP)KZ0PbB3PN=25wNO4};nVK^=wkxlk$tVI@$7 zF&}CjY=hN}`XC6l7*q-q$tbIu6|3$JyT(@p*q}4)8H5Yfk1%%(pnM?EmnT6=v4BTudgWLaPexg-MKXGD*@oxmIBA) zr`>?8t~1u>rol1%em~XWUi^OljQsmzCaqbMo$)c}bprZJYg5|m>gufgTrm^k<1spK z4bypR7{H2|Ft0nn{@h<$OLuqoyzc?0cfiH^O7q&2DD@RZz|`WCe}VJY|0MV*y7YH| zJpy$2@~u;`)F;5Zzua0pFk|tdk=KsLU+@W7D5odjqxEhRpuS|C)%M3|gwV)qa#pQ$ z{1#Ad?kzM2j5n0$tz=;Ld%WXOZFe=G(u!k+J%;cfeBnWRsW6Jt1!246`w36}!tk z?5W(&(Subp^1I7CR$iY>pid?;Qtxt~yM|ZOhyXRJ3P25@X`1zH&)eIR{k(u%Ra5F} zrWcuvUQJ8sccJYow)(tWxN=W{D4K4VBN3gVwNvl>p1u&lM^UBbzHa{hWK_{~!whRN zhK7bXuy+?deId5`ycDj@q4VkkG~K{n|LN%;6o6p!6+YhJHZ|SAUhmR04Rw0LOixTz zRjX}wes(_~rLR5O^Y&cQ(SudiBmq=U9w*y_3V^2|*PPlIXuEhvN#+$rvGV^@Z=P%q zDnGY>NF)-*gOBgIURvWm zapkzCwfl`$w&Jr!xmw5Tagoj!S)7?9l`ELnpVKFf`fvO2#)R9*1Y=B}>;tfJTw`Ox z-SH1NU4VEzZak@GDOGAL&P;N8b^*Zn=rE~Vf%Tn3NBs}9YjC}^#`MWPE5|he5{U$v zV2tafH8bBTI(42u!0T}l3HeFx9Z{~y#=rA|XF&TP$zx_Pzo#!Pu?)^Yim&zEyO}>v56F6-eic0E~^eDOc-V z`S;-t6`*8-F}An2J3a@xQ2}0$i}BH6bN^cpMW=^gM-^a=(AWa1D*i_Wl&f`8xdH&` ze34S6#`x$kk&xeU|97r{yXsa2l&f{%W%x|DiXpX!V}A zPdFM5n2Q1JzZ0wnX0v?TEzoOUX&h#1aHnS%s69V6;_i8Vus_qjah^ZmMaYlW<083t z#Mp?NQl(~|^vS*6=Cy1#Yv{TTfY0YM2d3+~d2P*G@7r_s=j`l#`g}fi*5gFO0p7m* zqya2Mf`+wh%hfvTJBQj<{907*qoM6N<$g0m=XfB*mh literal 0 HcmV?d00001 diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/grass.png b/gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/grass.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a03223b37e39b162cc9650a410e6fae20b7dd9 GIT binary patch literal 858 zcmV-g1Eu_lP)8!chWKfsVZ0}DcmtOzk>KwXfKEETC;80efO zBSR;UQedzeks$~sZ-B7#qy8a3zk4r(W5-QIZ1oYmoX>Ln-g)=Fdymh1wlGGeQt`pJ zkFc9Nyh+?TJeG0yxXy#8OJ0m%tpy;CV{B^i-UIOBlX|B4#}0mcZ^7@ctn={bIRIOS z$2`8bF!2qt7U2CS3*H0)h~S+kh`^=LX?2Km5kGx;l4*W3?gG2H!^5NJY#km0P^nbd zUs=a)?hNzS#jH#a5E#Q-Z!chs;8JkblAFm91Yzd+C+YxTSb+0$6L&)94tTog1>x51 zIgBy9YP3m`geVLVWBB3YKX1MR_E*-goZr~k80N2wS$Xe4;H=)F{>KT;vnFvIV}gJr zNixqraR&_SudK7XyF2lFAZrJF_|0AKy{CEBBwxrQVsJJE5kw3>W_$@w)B&Rr`j5b% zD{i_2@E&U&h2kvvd>#S9C_+StqyO<8@TRhM!2PcZ-g%Fa{xm@l;=IFIhludkm#7-n$hujrioFV~X=L0JQ2|innJ-odxenx+$(L6c!_TNlFy=zj5nQI)7W{ z?&Pj)sNLw1n->Ce(H+*M!{f{IjC}-dT5*1ccB4m+gxRGW&N&Q%5kp`Mg~bSfk^K;u zaJYHv(%0t8&0jRcAU9f!%kxaV002jiQu(E9rTJHvR=rEL+>vUzBT*dk>ZAj}!FEsD zjULve!+e-CmTJA_-LJqcj0{snE%N-fy2A>DV4o6u0`a70uH5$NLsRY0p zP^;C3$D{et^MmV_fnuq2W!&2N%?5F~R=aZD*6QkTQFC{4j4sl;l;6HUpkIW-V)R=6 z=g<590%IGQ>h{G(2V)0?7&Tgym*uX=-rk-soiCX4g-vpNIsRJ?xOV*NNCBonp50&a zzczckI~OsH_~q|sQ!POF&TPnO>X=rXHgnqRFJf9zDW#NBN-3q3Qc5YMlu}A5rIb=i kDW#NBN-3q3QtH3<4-8R3l%wAZ-v9sr07*qoM6N<$f_T5BApigX literal 0 HcmV?d00001 diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/invisible.png b/gm4_tnt_landmines/data/gm4_tnt_landmines/skins/disguised/invisible.png new file mode 100644 index 0000000000000000000000000000000000000000..c4d5d709aa684d9eaf72848c595d4306ce6a7042 GIT binary patch literal 546 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV0`K6;uumf=j}Da?As0!$3E^C z-X84CDQhLNW~-c&clh-MN8=CfUbtIv_w+RJ9q|ggr}xP2S<(ExsXb+{en9exkjJ~6 zOCKrSv^p9j6Fl$!r=qI(g}X1$_2ac!q;YFbT>M74o*U|X&%4{+OS&F1xD&F|zVGp& z=hfEc`z-FCxn*m$J(!{GGwb8-&zEFZWHW7IKIwO6-JX0VzZ%&Hez%gm185U_I zU3&*K=u%DK8fTf~yyXWHCGzex{`}JPub_zMf#zOsyeW`AI9;pelP^Y3R$9@bwV&B9Q^nCx?_?DMLwSJnopm;lP~Y~_R!C})t(=ba28-;@m$_($iROq@7|`;+gZ8iBqpyezI}Yb&Og6e zPyX%tzCNyC`jJgnSwifee?KdKR`bIY`GbpUig*5EK2Ur#R`y)g ht34gq!5{m7Oe+M`DkRVZGNohP69Va+A#$<(D?gv=S*HCfs{kkG-Y zU`tbop^!ro2Q?zb8c>^l9jqcYsL5$v-fwx{_wK&C`*^^eibqdPP17`^*Zy@(^zL`sIf5sK4vn*uYmRljlV#%Du!JF&BnJF4l|(? zr`arCU1u>IMjJpcxOD~G)*ve&WEgxoKWE0{!R>NUzPhr#3uvF78R~1P#?!}Rj3R!o z8+6;}y}CZsyu;4w4T9U{!tHWVt<_q;GsVV^^m|Do4DKg_(AOeR%2od&=( z%~m3vPPdNR^X=oExz6i4bo8E+#Ve9n07e3vR1w0 zKF7z$Mg7`*KF79g0KzbA_577LpYH7xlU|?w%L@R8vnx*bb{fB+iv@5T2Y@Wga2$s$ z%g|Z_?H6EcRfpSyBla&Z7|yN$h@yx|ug~qlQ5nClZOcqJ%Q67cG-W=Yljk{}=e2%* zqYMDb1^9QZaVE6QfFKBpJkJ5JZ5yQ&T5FV20F1}u^=H7O*I&9m7!1nzeQjGxDO}gZ zb=~qG_dE}?E!t|F0mh`)=luM6m<1S(M(fXjY72`kV6x(W)Bvq@S@=xx zOVhNI=RY_D9;(Y@P-~6ndF5g#rCQej>&siW_33IO6HAh0sbBRsEcU3Gyb*?>Wd?3Ob*p`-uIfh)uOZ2qABjE7zW^1ZrWg1P=bdpYD9+^dkDmHy7~`vFf^O-UQeNu@zABgAjshHXeS5!7czD5 zY6=+=>PgOgH8#dVO0Q8&=0GQ2Zes1`Ei0)Z8(fuPYKHcB(`lSjEFV6u0jf*i(_jh7HV4W{O zN{M_v4=E)8V01l7`~osj4HmT~4lmEqxEKQfEXzW_RKcRw^z*A?Qm*3yfInze0o&Q_ zwcI~e1px40z~6JRDRb}BD?sU&D(LlkvDbm570^Cud$airuH#~KJ;Ls*T>#4|pyzZPe>hIR0)i1( zP61UFX;*-h60YN7>P!LLp8INDNaDd2@KEbm1Jr+K?f}58bs*^)pnZMw()%{~iGvr< zu!;EN?RxgTcVFZ5se!nx@|| z+qV7VU_N+0oC{wU7QUxxn&@;oaORHxMHig&iV#Ap*Xy2&;e6chgrj#yUO1mo9l39? z!H$LprP|%sR^@ElzSAyv3@rEc;OA_yP=pXd6GCW)VfX`3F`QS|3n8@bSyxke6@$+T z=GFDumvY{_n%$tNKgA~Er{VO`t9bjQ?IryV*n0hZ3zJ{Jv8k9u(!m2jW^%La#HJz< x5fKp)5fKp)5fKp)5fKp)5fKp)5fRb4{Q+mVO-*^^5*`2m002ovPDHLkV1hz0Go}Cl literal 0 HcmV?d00001 diff --git a/gm4_tnt_landmines/data/gm4_tnt_landmines/skins/landmine.png b/gm4_tnt_landmines/data/gm4_tnt_landmines/skins/landmine.png new file mode 100644 index 0000000000000000000000000000000000000000..e33b733b946735550cc9970feab37b79e328f8ce GIT binary patch literal 395 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 Z{sHbdiEZPZ&?Nu>002ovPDHLkV1h_jf4~3$ literal 0 HcmV?d00001 diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/jump_boost.png b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/jump_boost.png new file mode 100644 index 0000000000000000000000000000000000000000..33e3a69ba7f2dd46de73248bb31a21a184836a06 GIT binary patch literal 1886 zcmV-k2ch_hP)pgs64u=GTzz}eZpn!rQt*ZP{l|oG9EGQv{N|jNmLaC}stwmMlu62iKbmA2A+ z{+svSy!ripZ)V<;$YAR~>P42-iefS&BncToN=q@ANMcr0Bnc)tJ(PO<=tA)JwIEq0 zGd+noiFAUEWlu<%p7HOfJh66g@1mWqv6@fLJVK@~Il?%Hi!yIMPvlP`9FJ4^@C+1H zrO554!0sTfX}lAm6mJ1mRVCN%9IH41Sbh5WQ+pTfbUk}!P0Lu#nXv#qyPf$3 zMKtyIa^z}|J#EdbDV|O1a1;<+i-vKVESwF8nByPMWS5U~u?RE0h1gB@v5J$`r>p+7 zd)}|+*IfMSOK+6DUb5!wnsfIXx3X^SkuiHHz?L)hV#}F&(cBXf(P&g`Ia4n}0};{K z-6{69UlO&!Cb8pEqiF64iS}^soiXj08rDi{QLLouROVK7r?61 zRX-i=oEhJMDLFm>6zStnc`%(Osq5$n6j^3kwx1(cgZ%!(i);^mv@lj#CaI-I8^@?@ zc=XU#fa;P1Kl)@}<%zX_-n(!|)z+qE8{V9^>$|HPpWi;3IWzvC_5{z1Qtvq4jof09 zC!d2Im-zC;VyudSLs2=>)xn6CpwwH)h{MWcO~Ill9K3oNt1MGhGH*PJYwT!gop+e{Kc%PpFv&1P6N&vdX#0EhgAqgc5P4`3pH24&g9aNa`wo z>}Ho8XQ_$^j?5+fwF6e^%=X`HGFhsjJ@2>OyEPK7G#TR;877>-Ov`-|@`dZL-;H<56!uJ;@RJk_qyySu_B)zk$B?$=&HPP62lLfwU%yPQ980}}i#}CrS zo6s+gS2X-^>HgVU|F&}TgOY#g#EQ1fOZFGN*icdb>Eu^6RhQRh*VF|XKH0Z-;f|F6 zdmrDm^X_)(-OvqD;>fi?4acW0quo+jouW)@(w<5&BX|=6ehAnk_hGm0)a;B3l-9;clKP zDwb;M0)MG4ul>?ptGK(myms}23i0XW11GD?YZu-9@&pUZTgoYr+>dK!<< z$2X>y^0ap%r7jOA`?`rFhA_(}X1M%Z=8%lQp^-*<#0OO&EZHFC;EFBu&N|OKP91sS9L06-vjhcL=Y=O8f92Wo{p;Ec13x7YlQ8 z*?pyjT(cDo!94#2%#uuw$pXMTp=&s0g`}o2&6`W1-N{?w8+VcqJTjAu(FlDbF+w9l zlz9trsU{}dvH*Df`Uf}^iK?lk62P{)Rh!nAzxi@aePCnt;@W%m@E7YVnr$|%$!-_j z>q`!9{H$btet!A)UYK*>$FIJ(Z2h-p9om*Dc>w8fYm4Yhj4<6_KxiaJXe7oGe<2<5 zA=;u5x}$wO`^X#suE(NCk_yc;ka}*cBD4Vq&~A2UV7l zbU{yS2uTwNAu!7dc8dkC%|@2Z4w8fp45gBE4E2-JG*ViMT$>#UiMif!9J+BCgoF?p zFU)@YfBü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 Tiq=q(00000NkvXXu0mjfaDl8{ literal 0 HcmV?d00001 diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/speed.png b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/speed.png new file mode 100644 index 0000000000000000000000000000000000000000..4478d96429044e3e61f7ef0dff7eb4d3ac0af566 GIT binary patch literal 1682 zcmV;D25tF?P)h?E*S@dR59bnN%)G;(P^+*gnxH4s!YwTw6w75kea%Wt%c3)x zr8N?z?E4(bpQSCHq$|^kV_D=P@p%_BSNE0W+uJ}rB=YcF;;flAc##P0O&*5}d5#VB z1F(77YF?ij2ZZyJMY>~G^GY$#n(Sf>6bC1VSe0p`e`lT z#t9fGP4SnDXZd(*2VYpe764xYT+<}uL`hgS2l9Pf+vE{a2CcS3abyH9>|z)*57>KY zhf+J|8Z+Yrbfr8_jgDZd|NN9E8VzbeK!9Kx2HmkN`_A>gEzU6vYJOv``7F2@8&Gc4 zxUI9BKaUO(O1J!T&2Qk@VLIGa_6_!NtT@O`i#n-99hUeeVbkQe-edaPycBq{VKP&catzpjEQLmD<$5X8t2ybWfW?a_ci(Z zME3o!XUsSOy%QsdVR3YHi1tW=e6>t>wvCsHd7_~(wZP(qfzxEe5tIl@84Q#rIWjT; zynj!?2WoO?GYtA7zkF1w&&~H7^_x@2#g~AaTRNyqz^h|Jl9o^rCSLC zpQPUuhg#DoMG6u%Lg(o4A&|YYE@dC z7^_k_Zg1}frRZwP(dI~}(+I9_Zju&ZCr8(>}UCbH#qrp2yyEy@Zo-o*x~g#dZk9=fdNWgAJ)1KkI#! zpY|T*#j%S_j7^ZK`Z$(NDrEEfp>uRa68Iv-Obe$eMps}_mw+JfxiOMrLp(>?^H{AM z?#Nulo?<_7+a(uv_)}qk)u|kgX_7EQERDv=*$#3=GIuNW<;TGLq*9-~eEl0Dzup0T z&xm~Y-3s}u$hYoQ>P!3UxDP0``FW9}vuS|U2m(q$gS6*yN9HO3ij5jC*Sbj2Q$dAZnTb*#G)giz6dk%$V4w&9ZQm!^KMwwrDe5 z>_n7m;8Sb7^MAtUmD+mc+IN(?^IDNdKcmz=?^Z~UQr|r4%l&IjwdD_i9Q>G4YiH8{ zb>KpuWWo+-rYGo0dRT_R{^3DxO67R!>~V6ogOBi`Y&*6xNQJ@x9Lk?3ZkW`3pYBYK zwn&`c7W>~S{?4VVcx`f&LZw8$GDT0Ojf53qi5mmpi3=x*nu@!ZuU(Lrr2`^Q->lT8 z<05xmr__^gHDK?l<5H+rSdncdUn!BVl=x`2jlS{}rzc0bG+E%TrE37VP?|(310)~_ z0#1z#6ShoNc+I?0onT|K71uB+1wOk^|D9Ys$#lKOIgmhZ)b76>kw8I{r3wUZ}L9wlO0IA(~&@f4O}paNmI zG==g75y3W0BH=I@*CpmgKq&%Xs$QdSYK*$?Q}^rS+z1NA4Vgte*Z&5HLd55*t2Zo2 z16~$+>_(-wO^a-eD)sY)xTdCQnx<)*rfHg{X_}^Knx<)*rfHg{X_}^Knx<)*rfHg{ cY5yPp01JC+->NgdSO5S307*qoM6N<$f?zx-<^TWy literal 0 HcmV?d00001 diff --git a/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/strength.png b/gm4_zauber_cauldrons/data/gm4_zauber_cauldrons/skins/crystal/strength.png new file mode 100644 index 0000000000000000000000000000000000000000..e1abc836f589c5e840ebda4abe8784b9f64b8b3b GIT binary patch literal 1819 zcmV+$2juvPP)|8k7bI8jgbe zDvdVAP}_hlk*E#Yq$p|yiAifqn~H=hwJmx*ejePhaJRd6w|o0*cINR9n(ILiuZL9s za9)2+p65HyKA-RIJhOr^?EKryGN9|IE;mvL6eOl)GFU3(RyBlx1|!Vv;TX1*9Pa8M z;BwPjDp0DFSUcw)G1h1NFDYYJD5T0oCi;WSi6pou(LlOT;DOs(Q8kUmP>dR%pMqs^ zBzcZnBSdqg23^yL`;7lWgloxXo;fg{`Y{_2_4$}z)5x3seH=R9!M;;(v9x6tokLkb z(v?jUa(OtOPBJ@IM^i9Ldp^UANG(2>?`Cs+fLycX*zonT4SPnd+4bZBf_hFqyZ6^0 zc3o|(g6@2d?tG3#4O3~<{p{*!$C5T)RVAYPF)Jo7CeJcIR*y?4#9bcJeSJimCeV}5 ze%O7Ct;RS9AiuZmX>ujSUf%Y+^7M`+BTK|X-(Ec4Wyfqlb9I!?OdqOv|4|;SR4Cgv zHWF1)m==g}=zPaD_vwm4*{Y0pKR1@B8UPSK*tq=GE&3rIfkLIsml~&WG;@Vyxp;NV zst|R1xGPda)+}=(-NPp)HgZSvG``Z*%7e`_IndQXu3We!o0PxY^9F`nk-ylz>y|7y z!k7(ksV;iUMHa>DcrAT}MGaFq-1RO3!EY{}B5RdcTtAJVs-g@I(NoNGCO5#n^(~~{ zYuJBEeEnOq$z~Jc8!H|fIc_amzYjpJ*}exrKK7Hpj(hE~3bwcZMYeS7hmaB>6uR?SD$>HVEWUgD-5=>|P(Hl%F|l*gdH}iqcSpp1 zU;gBH?$@60d|O)5<}--~Olk8*{}uA4$>qWzB?)=U#HA|K`2tkAJ@ga{#5_8hqEVJ6 zK2^g8kP@HEO+`u!kIn>Nkdv7tKYa65*{pAsvUuH<8r#(n50Znu|@M-udwi=@gW5_*6c)o~WrPXi%nu8LEu`it!yipHWu0}Wn3GpiG{h9*$sH7M9Nuk?0P zAB-|J6h+lsM7-V`hugTJ^M-TlwyXvaPi$`k5G$6hlrJCN4W+bv>EN$Mz2`d{4i8_i zZ2SFi1FBsvP7h_N^LT00{Y>z9>DDA2!X)lB=q?Nrad|j4(8nFYFipMy|Hutsgo4bi ziW1X(97taz9F21Dd|F^V}Jph$STfRYR`|&}?g% zij8es%=1;Ft1eyvW(l2nkx4w4>SDTHMch;5)l@h0Bem$NilJys@f*b5Iwu*pc9YZV zPXmaD*M31h@%Rz3YTc~sbBG^r+B#}LKz#B3`)@Rdp&0<;@f}M?4r>+LCT~{=N27c- zG6{fmrOXS-E?kPlr@Cnl1Ub>)OGBWF-<~}Qz~rV@PG)*hZ5sjjRTTjDd*5ohua8R+ z6}Rf9#pCB_`Z9PlYE>`ppr4X$QLbF~$WE^98xFH--M9|3e@AZK+=a*8Be#8jzu36t zzL9f^X;~yoMZ!`eQz?_RE4-LW^4WMD7jgq+3R#Y)F47XL#!xkuG_|s%sg)ziF7m|! zsX`vhws9+08}MAJi(MV#ZmVE8Q{Uw`RYap%GZ#|kuDzjx0IsH#SP-Y-_I zys2M|*!TBi(iTvqdr20Chz1NYg*>0GY2@ecw&PPZbk#+jQH`c32wT#d&mk;{loGe1 z;`4Zjc)bL?J`e&M$eCr%=K3)$3)3=*dwmE5b0ZTuaPglY1yWk9nf1~BPjEOK4u`|x za5x+ehr{7;I2;a#!{Kl^91e%W;cz${4u`|xa5x+ehr{vz=U?evqS>4aDzyLr002ov JPDHLkV1f&VZ`}X@ literal 0 HcmV?d00001 diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/harming.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/harming.mcfunction index c4785a09ae..015b6a2f3c 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/harming.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/harming.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.harming","fallback":"Zauber Harming Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.harming","fallback":"Zauber Harming Potion Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;2130271109,-1138638081,-1614258018,-889714317],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0MjkzNDcxNjQyNDAsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI2MjkyYmYwNzk0N2IxNjQ3ZmFlNGJjYjc2NzVmOWNhZGJiZDY1MDczMjIzNDM0M2RiZGY2YzA0MTRkYiJ9fX0="}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_potion_liquids:liquids/harming"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_harming_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_harming_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/healing.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/healing.mcfunction index 327fa139b8..2ddad52545 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/healing.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/healing.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.healing","fallback":"Zauber Healing Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.healing","fallback":"Zauber Healing Potion Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;2130271109,-1138636289,-1614258018,-889714315],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0MjkzNDYzOTQ3MTEsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliYTZjZjQzODg0YjJjZmMyNDU0NGNmYTVmNmZjNzViY2M3OGE2YWM1NjhmYTE5OGY2NDVkZDkxNWM4Y2FlMzcifX19"}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_potion_liquids:liquids/healing"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_healing_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_healing_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/leaping.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/leaping.mcfunction index 1708c23eaf..a9c062afd7 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/leaping.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/leaping.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.leaping","fallback":"Zauber Leaping Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.leaping","fallback":"Zauber Leaping Potion Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;2130271109,-1407071745,-1614258018,-889714317],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0MjkzNDY5NDYzMjksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RjMzE2NmFkZTk1NTA2Y2VmZDhjNTdiMWVlNWY4MTNiNTNhOWZjMTliYTEzNDhjYTE2NmE2YjBjZmEwMzAifX19"}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_potion_liquids:liquids/leaping"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_leaping_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_leaping_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/poison.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/poison.mcfunction index 56c2d970de..148ef66f54 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/poison.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/poison.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.poison","fallback":"Zauber Poison Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.poison","fallback":"Zauber Poison Potion Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;1056529285,-1138636289,-1614258018,-889714317],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0MjkzNDY4ODg4NzIsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzY2MWU3NWExMWEwNzBmNTgyMWMxYmJlOTkxMTJiZGJjYWVjY2IyZDQ3Njg2OWQ3N2ExYzJkZDlmZjY0MDM3In19fQ=="}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_potion_liquids:liquids/poison"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_poison_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_poison_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/regeneration.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/regeneration.mcfunction index d564bfe681..565b467f11 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/regeneration.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/regeneration.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.regeneration","fallback":"Zauber Regeneration Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.regeneration","fallback":"Zauber Regeneration Potion Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;2130271113,-1138636289,-1614258018,-889714317],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0MjkzNDYxNzA4MTcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI2YzljOTNjNjRlZmYzMzE4MzFmNDkyY2E2Nzc1YWJjY2VkM2RjZDhmZWExOWEzMmM0OTM4NjRkYjFlMWMifX19"}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_potion_liquids:liquids/regeneration"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_regeneration_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_regeneration_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/strength.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/strength.mcfunction index 0f72804ddf..a64e01bbc8 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/strength.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/strength.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.strength","fallback":"Zauber Strength Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.strength","fallback":"Zauber Strength Potion Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;2063162245,-1138636289,-1614258018,-889714317],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0MjkzNDY3NTE4NTAsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Y5NGE3YjJmZDc5MzYxNzdjNjI2ZDllYWQwZWY0MzRmMjNmNmViNmQyYzAzNDgwZGE2MDRlZWIyMWRjZiJ9fX0="}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_potion_liquids:liquids/strength"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_strength_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_strength_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/swiftness.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/swiftness.mcfunction index b0d2dce284..1745565cf3 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/swiftness.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/swiftness.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.swiftness","fallback":"Zauber Swiftness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.swiftness","fallback":"Zauber Swiftness Potion Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;2130271221,-1138636289,-1614258018,-889714317],Properties:{textures:[{Value:"eyJ0aW1lc3RhbXAiOjE0MjkzNDc2MjgyNjQsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzU1N2FhOWExMTBmOTEwOGE3MWI2MzI5ODhhMzM4MzQ1OGY0NDVlYjJlYjBmMDM4ZjE3ZDQ5OGU0YmNiYTJhZCJ9fX0="}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_potion_liquids:liquids/swiftness"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_swiftness_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_swiftness_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/wormhole.mcfunction b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/wormhole.mcfunction index 0fec20a21e..431e93ce5f 100644 --- a/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/wormhole.mcfunction +++ b/gm4_zauber_liquids/data/gm4_zauber_liquids/functions/liquid_init/wormhole.mcfunction @@ -1,5 +1,5 @@ data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.zauber_tank.wormhole","fallback":"Wormhole Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.zauber_tank.wormhole","fallback":"Wormhole Tank","font":"gm4:default","color":"#404040"}]]}'} -summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:{Id:[I;-1903127985,893928782,-1710128554,467590157],Properties:{textures:[{Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODQ5M2Q5OTRlODBmOTc0NWNiZWFiYWMwN2VkYmE2MTk5YTgyNGM3YTJhYTJjNDI1MjhkMDNkMzAzYzVhN2M5YSJ9fX0="}]}}}}]} +summon armor_stand ~ ~-.95 ~ {CustomName:'"gm4_liquid_tank_display"',Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict"],NoGravity:1,Marker:1,Invisible:1,Invulnerable:1,Small:1,Silent:1,DisabledSlots:4144959,HasVisualFire:1,ArmorItems:[{},{},{},{id:"player_head",Count:1b,tag:{SkullOwner:"$gm4_zauber_liquids:liquids/wormhole"}}]} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_zauber_wormhole_potion" scoreboard players set @s gm4_lt_max 300 tag @s add gm4_lt_zauber_wormhole_potion diff --git a/gm4_zauber_liquids/data/gm4_zauber_liquids/skins/liquids/wormhole.png b/gm4_zauber_liquids/data/gm4_zauber_liquids/skins/liquids/wormhole.png new file mode 100644 index 0000000000000000000000000000000000000000..de8035869f744786d071fe3e1d2f3aaa1b9b7848 GIT binary patch literal 624 zcmV-$0+0QPP)AMZfDivk5k)IN}5B!BKG1jHz^|cCwlNGdM}8mw_F4f6iFe6W=Sd3Acz{0 zbkkiA>1=0rldOW81fS0-nVm`U&b%}8#-qf+%}>c&UUS(02*5E%092@P`}$o5XG6lM zowi#QY5+WoAA4oru}G$@!{_k_2JtY{)(9Q|q?5ABN++OWdW8KpaJl++#qBD)t6!nU zF-L`rSXQO!+3@!h8>nkqfNnqgycxe*>Mh{^N+%mkHK=Fa+kmHK!m23U0x${C244;8 z5M`gcf#es+%j^M@s}kVF=uM$cuox07I3vlVw4j`{%HNN#~Q`&O`@9a213{xz@R?t@olv2c-Xqdy&zh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_>%?|uRisQRQb(k1Bt0000< KMNUMnLSTab&^aRj literal 0 HcmV?d00001 diff --git a/lib_custom_crafters/beet.yaml b/lib_custom_crafters/beet.yaml index 2e267a9d60..a5819418e5 100644 --- a/lib_custom_crafters/beet.yaml +++ b/lib_custom_crafters/beet.yaml @@ -6,9 +6,14 @@ data_pack: load: data: data +require: + - gm4.plugins.player_heads + pipeline: - lib_custom_crafters.generate_item_tags - gm4.plugins.module.gm4_root_advancement + - gm4.plugins.player_heads.process_json_files + - mecha - gm4.plugins.extend.library - gm4.plugins.include.lib_machines - gm4.plugins.include.lib_forceload @@ -35,3 +40,7 @@ meta: - SpecialBuilder32 Textures by: - kyrkis + mecha: + layout: preserve + nbt_compact: True + cmd_compact: True diff --git a/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json b/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json index 3b41b9ee99..fde1b024a0 100644 --- a/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json +++ b/lib_custom_crafters/data/gm4_custom_crafters/loot_tables/items/custom_crafter.json @@ -10,7 +10,7 @@ "functions": [ { "function": "set_nbt", - "tag": "{CustomModelData:3420128,gm4_machines:{id:\"custom_crafter\"},SkullOwner:{Name:\"gm4_custom_crafter\",Id:[I;-141969460,1701595331,-2105287834,13831947],Properties:{textures:[{Signature:\"gm4_machine\",Value:\"ewogICJ0aW1lc3RhbXAiIDogMTY0Mjg1Mzk1Mjk4NiwKICAicHJvZmlsZUlkIiA6ICJhYjlkYmMzZjk4NGE0ZWI4YTVmY2RlYWMzNzEzZWFkMSIsCiAgInByb2ZpbGVOYW1lIiA6ICJDeWJvcm51dDIiLAogICJzaWduYXR1cmVSZXF1aXJlZCIgOiB0cnVlLAogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTE1ZDUwNmI2MzlhMzI1OWVlNDhkMTcyMjYzZWI2NzljY2NhNDQzNjVmY2VlMTllZDllYjI3NzU1YjAxN2IyYyIsCiAgICAgICJtZXRhZGF0YSIgOiB7CiAgICAgICAgIm1vZGVsIiA6ICJzbGltIgogICAgICB9CiAgICB9CiAgfQp9\"}]}}}" + "tag": "{CustomModelData:3420128,gm4_machines:{id:\"custom_crafter\"},SkullOwner:{Name:\"gm4_custom_crafter\",Properties:{textures:[{Signature:\"gm4_machine\",Value:\"$gm4_custom_crafters:custom_crafter\"}]}}}" }, { "function": "set_name", diff --git a/lib_custom_crafters/data/gm4_custom_crafters/skins/custom_crafter.png b/lib_custom_crafters/data/gm4_custom_crafters/skins/custom_crafter.png new file mode 100644 index 0000000000000000000000000000000000000000..13edd799115156058bb601fd0159152e27d3d865 GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVD$EMaSW-5dwca@CbOYHYvS~W zOhu>9E^oNoc<{$0X9G$$*jWQtP8u<@1A;G z=`9<-{psJgOEa!_RZ5vIe0F8R?8{5O+Q)wnlRF>nb+*3#%`<()XPH-8q%M6*slEDF zI0I<#(i-NveSFt#pJkdntlE?pBK*yN!PMiQr+vEmzK;2ocHH}{OYsic{m<9>y%r5$ zzyDLky~{h7cb>7ic6n}B#@^$bKS%hN&uWp6s_Ux$zQhQ`(>lbjFaCZ0_dkm(*DSXd zy;#+s{(R%ScP0y~jPyc;KZ%|@lWcqUYWS9Wp-ZGsfY?80t&({EFJ}E3n`_L#5JUwZ ZR>U6)3oW_ba_1;W!qe5yWt~$(696BAx}E?4 literal 0 HcmV?d00001 diff --git a/lib_player_heads/README.md b/lib_player_heads/README.md new file mode 100644 index 0000000000..78efe6aad7 --- /dev/null +++ b/lib_player_heads/README.md @@ -0,0 +1,34 @@ +[Lantern Load]: https://github.com/LanternMC/Load + +# lib_player_heads +lib_player_heads is a mcfunction library that allows other datapacks to easily register player heads to a central system, which enables `minecraft:player_head` items to keep their item NBT (the contents of `Item.tag`) even after being placed down and mined. + +## How to use +Items can be restored based on their texture or `SkullOwner.Name`. +Note that if your item currently has a `SkullOwner.Name`, this lookup method will take priority over the texture method, so you may need to manually upgrade old items to have a more unique value for `SkullOwner.Name`. +Additionally, items with the `gm4_player_head:1b` tag will be excluded from processing, so you are recommended to put this tag on all custom skulls so they are not processed unnecessarily. + +If your items do not currently have a name, your pack should register the items based on their texture. +Otherwise, it is recommended to use a unique name. +The unique name should be derived from the `id` tag, but for user readability if they pick the item up too fast, it should include a string like `[Drop to Fix Item]` before the namespaced ID. + +To register a player head, the data pack must invoke the following command at least once for each player head to be registered: + +```mcfunction +execute unless data storage gm4_player_heads:register heads[{id:"NAMESPACED_IDENTIFIER_FOR_SKULL"}] run data modify storage gm4_player_heads:register heads append value {id:"NAMESPACED_IDENTIFIER_FOR_SKULL",value:'TEXTURE_DATA',name:'UNIQUE_SKULL_OWNER_NAME',item:{}} +``` + +It is recommended to do these calls upon reload in case the data is somehow removed, but otherwise the data will generally persist forever. + +- `NAMESPACED_IDENTIFIER_FOR_SKULL` is an indentifier used internally by the library. It should be descriptive and namespaced; versioning is recommended. For an example, see the provided `example_use`. +- `TEXTURE_DATA` is the texture data of the player head. On the item this is usually located at `tag.SkullOwner.Properties.textures[0].Value`. +- `UNIQUE_SKULL_OWNER_NAME` is a unique name stored in the player head's `SkullOwner.Name` tag. When `SkullOwner.Name` is present, this lookup method takes priority over the texture method. +- `` is to be replaced with the item data the skull should regain after being placed and broken. Bear in mind that a discrepancy between the NBT provided here and the original NBT of the item (for example from a loot table) will lead to undesired stacking issues. Notably, text components such as those present in `display.Name` or `display.Lore` may have an unexpected order if generated from a loot table, so you should be careful to replicate that order when registering your item with this library. + +You may provide `value`, `name`, or both, but whenever possible it is best to provide *only* `name` so that multiple unique items may share a texture without ambiguity. + +Please note that the `example_pack` must be started by calling `#load:load`, as a [proper load implementation](Lantern Load) is not included. The provided loot table in `example_pack` is NOT required. + +## Technical Details + - All player head data is stored in storage at `gm4_player_heads:register`. + - Player heads with the `gm4_player_head:1b` tag will be excluded from processing. diff --git a/module.yaml b/module.yaml index 1c7b9e2428..eda7374193 100644 --- a/module.yaml +++ b/module.yaml @@ -3,5 +3,7 @@ pipeline: - gm4.plugins.module.gm4_root_advancement - gm4.plugins.versioning.modules - gm4.plugins.upgrade_paths + - gm4.plugins.player_heads.process_json_files + - mecha - directory: '../base' extend: 'beet.yaml' diff --git a/poetry.lock b/poetry.lock index 2cb8dfaa3d..df660198be 100644 --- a/poetry.lock +++ b/poetry.lock @@ -63,19 +63,19 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "bolt" -version = "0.31.0" +version = "0.37.0" description = "Supercharge Minecraft commands with Python" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "bolt-0.31.0-py3-none-any.whl", hash = "sha256:89b54ef0048a82f60e84e4dec5bfc118ffd13576ce9cf7600099b88408a9a41c"}, - {file = "bolt-0.31.0.tar.gz", hash = "sha256:f95d164e554bb602fbdcfafa59fbc694843a9aa5247829677b10644db624d51a"}, + {file = "bolt-0.37.0-py3-none-any.whl", hash = "sha256:dee3a5c8acdd123ef6f223690ab0b6d1ab67e485eaa95ad6c06d914964fe672e"}, + {file = "bolt-0.37.0.tar.gz", hash = "sha256:357f7e4efa3243e36f22e3b439995b2677c0ee1b7f13be7dde0406653d3d6caf"}, ] [package.dependencies] -beet = ">=0.83.1" -mecha = ">=0.67.0" +beet = ">=0.87.0" +mecha = ">=0.74.0" [[package]] name = "bolt-expressions" @@ -97,111 +97,111 @@ nbtlib = "1.12.1" [[package]] name = "certifi" -version = "2023.5.7" +version = "2023.7.22" description = "Python package for providing Mozilla's CA Bundle." category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, - {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, + {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"}, + {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"}, ] [[package]] name = "charset-normalizer" -version = "3.1.0" +version = "3.2.0" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, - {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, + {file = "charset-normalizer-3.2.0.tar.gz", hash = "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win32.whl", hash = "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96"}, + {file = "charset_normalizer-3.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win32.whl", hash = "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1"}, + {file = "charset_normalizer-3.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win32.whl", hash = "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1"}, + {file = "charset_normalizer-3.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win32.whl", hash = "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706"}, + {file = "charset_normalizer-3.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win32.whl", hash = "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9"}, + {file = "charset_normalizer-3.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80"}, + {file = "charset_normalizer-3.2.0-py3-none-any.whl", hash = "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6"}, ] [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -209,14 +209,14 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} [[package]] name = "click-help-colors" -version = "0.9.1" +version = "0.9.2" description = "Colorization of help messages in Click" category = "main" optional = false python-versions = "*" files = [ - {file = "click-help-colors-0.9.1.tar.gz", hash = "sha256:78cbcf30cfa81c5fc2a52f49220121e1a8190cd19197d9245997605d3405824d"}, - {file = "click_help_colors-0.9.1-py3-none-any.whl", hash = "sha256:25a6bd22d8abbc72c18a416a1cf21ab65b6120bee48e9637829666cbad22d51d"}, + {file = "click-help-colors-0.9.2.tar.gz", hash = "sha256:756245e542d29226bb3bc056bfa58886f212ba2b82f4e8cf5fc884176ac96d72"}, + {file = "click_help_colors-0.9.2-py3-none-any.whl", hash = "sha256:82ef028cb0a332a154fa42fd7cca2c728a019b32bcb5a26bb32367551014a16f"}, ] [package.dependencies] @@ -347,19 +347,19 @@ files = [ [[package]] name = "mecha" -version = "0.67.0" +version = "0.76.2" description = "A powerful Minecraft command library" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "mecha-0.67.0-py3-none-any.whl", hash = "sha256:89c99bdfd34c8731d0781327fc882d1b5dde6e61565fa39f9db09c01ebc9da55"}, - {file = "mecha-0.67.0.tar.gz", hash = "sha256:49a95e34be23495731fb996ff87479b0addca3729e77258be1fb2d5dcc007a9b"}, + {file = "mecha-0.76.2-py3-none-any.whl", hash = "sha256:1970cfdc72aceb982a6520e246288cc4a15a9b197328bc380724c029c8393bbc"}, + {file = "mecha-0.76.2.tar.gz", hash = "sha256:da737323c08fd7b3cd7dce8f5ca2b239c8ad5342972b01b553fb14ccfaed79b1"}, ] [package.dependencies] -beet = ">=0.83.1" -tokenstream = ">=1.5.0,<2.0.0" +beet = ">=0.86.0" +tokenstream = ">=1.7.0,<2.0.0" [[package]] name = "mypy-extensions" @@ -390,114 +390,179 @@ numpy = "*" [[package]] name = "numpy" -version = "1.24.3" +version = "1.25.2" description = "Fundamental package for array computing in Python" category = "main" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "numpy-1.24.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3c1104d3c036fb81ab923f507536daedc718d0ad5a8707c6061cdfd6d184e570"}, - {file = "numpy-1.24.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:202de8f38fc4a45a3eea4b63e2f376e5f2dc64ef0fa692838e31a808520efaf7"}, - {file = "numpy-1.24.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8535303847b89aa6b0f00aa1dc62867b5a32923e4d1681a35b5eef2d9591a463"}, - {file = "numpy-1.24.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d926b52ba1367f9acb76b0df6ed21f0b16a1ad87c6720a1121674e5cf63e2b6"}, - {file = "numpy-1.24.3-cp310-cp310-win32.whl", hash = "sha256:f21c442fdd2805e91799fbe044a7b999b8571bb0ab0f7850d0cb9641a687092b"}, - {file = "numpy-1.24.3-cp310-cp310-win_amd64.whl", hash = "sha256:ab5f23af8c16022663a652d3b25dcdc272ac3f83c3af4c02eb8b824e6b3ab9d7"}, - {file = "numpy-1.24.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9a7721ec204d3a237225db3e194c25268faf92e19338a35f3a224469cb6039a3"}, - {file = "numpy-1.24.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d6cc757de514c00b24ae8cf5c876af2a7c3df189028d68c0cb4eaa9cd5afc2bf"}, - {file = "numpy-1.24.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e3f4e85fc5d4fd311f6e9b794d0c00e7002ec122be271f2019d63376f1d385"}, - {file = "numpy-1.24.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a1d3c026f57ceaad42f8231305d4653d5f05dc6332a730ae5c0bea3513de0950"}, - {file = "numpy-1.24.3-cp311-cp311-win32.whl", hash = "sha256:c91c4afd8abc3908e00a44b2672718905b8611503f7ff87390cc0ac3423fb096"}, - {file = "numpy-1.24.3-cp311-cp311-win_amd64.whl", hash = "sha256:5342cf6aad47943286afa6f1609cad9b4266a05e7f2ec408e2cf7aea7ff69d80"}, - {file = "numpy-1.24.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7776ea65423ca6a15255ba1872d82d207bd1e09f6d0894ee4a64678dd2204078"}, - {file = "numpy-1.24.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ae8d0be48d1b6ed82588934aaaa179875e7dc4f3d84da18d7eae6eb3f06c242c"}, - {file = "numpy-1.24.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ecde0f8adef7dfdec993fd54b0f78183051b6580f606111a6d789cd14c61ea0c"}, - {file = "numpy-1.24.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4749e053a29364d3452c034827102ee100986903263e89884922ef01a0a6fd2f"}, - {file = "numpy-1.24.3-cp38-cp38-win32.whl", hash = "sha256:d933fabd8f6a319e8530d0de4fcc2e6a61917e0b0c271fded460032db42a0fe4"}, - {file = "numpy-1.24.3-cp38-cp38-win_amd64.whl", hash = "sha256:56e48aec79ae238f6e4395886b5eaed058abb7231fb3361ddd7bfdf4eed54289"}, - {file = "numpy-1.24.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4719d5aefb5189f50887773699eaf94e7d1e02bf36c1a9d353d9f46703758ca4"}, - {file = "numpy-1.24.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0ec87a7084caa559c36e0a2309e4ecb1baa03b687201d0a847c8b0ed476a7187"}, - {file = "numpy-1.24.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea8282b9bcfe2b5e7d491d0bf7f3e2da29700cec05b49e64d6246923329f2b02"}, - {file = "numpy-1.24.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:210461d87fb02a84ef243cac5e814aad2b7f4be953b32cb53327bb49fd77fbb4"}, - {file = "numpy-1.24.3-cp39-cp39-win32.whl", hash = "sha256:784c6da1a07818491b0ffd63c6bbe5a33deaa0e25a20e1b3ea20cf0e43f8046c"}, - {file = "numpy-1.24.3-cp39-cp39-win_amd64.whl", hash = "sha256:d5036197ecae68d7f491fcdb4df90082b0d4960ca6599ba2659957aafced7c17"}, - {file = "numpy-1.24.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:352ee00c7f8387b44d19f4cada524586f07379c0d49270f87233983bc5087ca0"}, - {file = "numpy-1.24.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7d6acc2e7524c9955e5c903160aa4ea083736fde7e91276b0e5d98e6332812"}, - {file = "numpy-1.24.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:35400e6a8d102fd07c71ed7dcadd9eb62ee9a6e84ec159bd48c28235bbb0f8e4"}, - {file = "numpy-1.24.3.tar.gz", hash = "sha256:ab344f1bf21f140adab8e47fdbc7c35a477dc01408791f8ba00d018dd0bc5155"}, + {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"}, + {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"}, + {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"}, + {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"}, + {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"}, + {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"}, + {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"}, + {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"}, + {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"}, + {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"}, + {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"}, + {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"}, + {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"}, + {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"}, + {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"}, + {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"}, + {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"}, + {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"}, ] [[package]] name = "pathspec" -version = "0.11.1" +version = "0.11.2" description = "Utility library for gitignore style pattern matching of file paths." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pathspec-0.11.1-py3-none-any.whl", hash = "sha256:d8af70af76652554bd134c22b3e8a1cc46ed7d91edcdd721ef1a0c51a84a5293"}, - {file = "pathspec-0.11.1.tar.gz", hash = "sha256:2798de800fa92780e33acca925945e9a19a133b715067cf165b8866c15a31687"}, + {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, + {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, +] + +[[package]] +name = "pillow" +version = "10.0.0" +description = "Python Imaging Library (Fork)" +category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "Pillow-10.0.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1f62406a884ae75fb2f818694469519fb685cc7eaff05d3451a9ebe55c646891"}, + {file = "Pillow-10.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d5db32e2a6ccbb3d34d87c87b432959e0db29755727afb37290e10f6e8e62614"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf4392b77bdc81f36e92d3a07a5cd072f90253197f4a52a55a8cec48a12483b"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:520f2a520dc040512699f20fa1c363eed506e94248d71f85412b625026f6142c"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:8c11160913e3dd06c8ffdb5f233a4f254cb449f4dfc0f8f4549eda9e542c93d1"}, + {file = "Pillow-10.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a74ba0c356aaa3bb8e3eb79606a87669e7ec6444be352870623025d75a14a2bf"}, + {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d5d0dae4cfd56969d23d94dc8e89fb6a217be461c69090768227beb8ed28c0a3"}, + {file = "Pillow-10.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22c10cc517668d44b211717fd9775799ccec4124b9a7f7b3635fc5386e584992"}, + {file = "Pillow-10.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:dffe31a7f47b603318c609f378ebcd57f1554a3a6a8effbc59c3c69f804296de"}, + {file = "Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485"}, + {file = "Pillow-10.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3ed64f9ca2f0a95411e88a4efbd7a29e5ce2cea36072c53dd9d26d9c76f753b3"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6eb5502f45a60a3f411c63187db83a3d3107887ad0d036c13ce836f8a36f1d"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd"}, + {file = "Pillow-10.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cd25d2a9d2b36fcb318882481367956d2cf91329f6892fe5d385c346c0649629"}, + {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538"}, + {file = "Pillow-10.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d"}, + {file = "Pillow-10.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f"}, + {file = "Pillow-10.0.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883"}, + {file = "Pillow-10.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce543ed15570eedbb85df19b0a1a7314a9c8141a36ce089c0a894adbfccb4568"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:685ac03cc4ed5ebc15ad5c23bc555d68a87777586d970c2c3e216619a5476223"}, + {file = "Pillow-10.0.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d72e2ecc68a942e8cf9739619b7f408cc7b272b279b56b2c83c6123fcfa5cdff"}, + {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551"}, + {file = "Pillow-10.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5"}, + {file = "Pillow-10.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199"}, + {file = "Pillow-10.0.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3"}, + {file = "Pillow-10.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f07ea8d2f827d7d2a49ecf1639ec02d75ffd1b88dcc5b3a61bbb37a8759ad8d"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:040586f7d37b34547153fa383f7f9aed68b738992380ac911447bb78f2abe530"}, + {file = "Pillow-10.0.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:f88a0b92277de8e3ca715a0d79d68dc82807457dae3ab8699c758f07c20b3c51"}, + {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c7cf14a27b0d6adfaebb3ae4153f1e516df54e47e42dcc073d7b3d76111a8d86"}, + {file = "Pillow-10.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3400aae60685b06bb96f99a21e1ada7bc7a413d5f49bce739828ecd9391bb8f7"}, + {file = "Pillow-10.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbc02381779d412145331789b40cc7b11fdf449e5d94f6bc0b080db0a56ea3f0"}, + {file = "Pillow-10.0.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:9211e7ad69d7c9401cfc0e23d49b69ca65ddd898976d660a2fa5904e3d7a9baa"}, + {file = "Pillow-10.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:faaf07ea35355b01a35cb442dd950d8f1bb5b040a7787791a535de13db15ed90"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f72a021fbb792ce98306ffb0c348b3c9cb967dce0f12a49aa4c3d3fdefa967"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f7c16705f44e0504a3a2a14197c1f0b32a95731d251777dcb060aa83022cb2d"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:76edb0a1fa2b4745fb0c99fb9fb98f8b180a1bbceb8be49b087e0b21867e77d3"}, + {file = "Pillow-10.0.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:368ab3dfb5f49e312231b6f27b8820c823652b7cd29cfbd34090565a015e99ba"}, + {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:608bfdee0d57cf297d32bcbb3c728dc1da0907519d1784962c5f0c68bb93e5a3"}, + {file = "Pillow-10.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5c6e3df6bdd396749bafd45314871b3d0af81ff935b2d188385e970052091017"}, + {file = "Pillow-10.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:7be600823e4c8631b74e4a0d38384c73f680e6105a7d3c6824fcf226c178c7e6"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:92be919bbc9f7d09f7ae343c38f5bb21c973d2576c1d45600fce4b74bafa7ac0"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8182b523b2289f7c415f589118228d30ac8c355baa2f3194ced084dac2dbba"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:38250a349b6b390ee6047a62c086d3817ac69022c127f8a5dc058c31ccef17f3"}, + {file = "Pillow-10.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:88af2003543cc40c80f6fca01411892ec52b11021b3dc22ec3bc9d5afd1c5334"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:c189af0545965fa8d3b9613cfdb0cd37f9d71349e0f7750e1fd704648d475ed2"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce7b031a6fc11365970e6a5686d7ba8c63e4c1cf1ea143811acbb524295eabed"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:db24668940f82321e746773a4bc617bfac06ec831e5c88b643f91f122a785684"}, + {file = "Pillow-10.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:efe8c0681042536e0d06c11f48cebe759707c9e9abf880ee213541c5b46c5bf3"}, + {file = "Pillow-10.0.0.tar.gz", hash = "sha256:9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396"}, ] +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-inline-tabs", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + [[package]] name = "platformdirs" -version = "3.5.3" +version = "3.10.0" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "platformdirs-3.5.3-py3-none-any.whl", hash = "sha256:0ade98a4895e87dc51d47151f7d2ec290365a585151d97b4d8d6312ed6132fed"}, - {file = "platformdirs-3.5.3.tar.gz", hash = "sha256:e48fabd87db8f3a7df7150a4a5ea22c546ee8bc39bc2473244730d4b56d2cc4e"}, + {file = "platformdirs-3.10.0-py3-none-any.whl", hash = "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"}, + {file = "platformdirs-3.10.0.tar.gz", hash = "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d"}, ] [package.extras] -docs = ["furo (>=2023.5.20)", "proselint (>=0.13)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)"] +docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] [[package]] name = "pydantic" -version = "1.10.9" +version = "1.10.12" description = "Data validation and settings management using python type hints" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-1.10.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e692dec4a40bfb40ca530e07805b1208c1de071a18d26af4a2a0d79015b352ca"}, - {file = "pydantic-1.10.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3c52eb595db83e189419bf337b59154bdcca642ee4b2a09e5d7797e41ace783f"}, - {file = "pydantic-1.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:939328fd539b8d0edf244327398a667b6b140afd3bf7e347cf9813c736211896"}, - {file = "pydantic-1.10.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b48d3d634bca23b172f47f2335c617d3fcb4b3ba18481c96b7943a4c634f5c8d"}, - {file = "pydantic-1.10.9-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:f0b7628fb8efe60fe66fd4adadd7ad2304014770cdc1f4934db41fe46cc8825f"}, - {file = "pydantic-1.10.9-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e1aa5c2410769ca28aa9a7841b80d9d9a1c5f223928ca8bec7e7c9a34d26b1d4"}, - {file = "pydantic-1.10.9-cp310-cp310-win_amd64.whl", hash = "sha256:eec39224b2b2e861259d6f3c8b6290d4e0fbdce147adb797484a42278a1a486f"}, - {file = "pydantic-1.10.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d111a21bbbfd85c17248130deac02bbd9b5e20b303338e0dbe0faa78330e37e0"}, - {file = "pydantic-1.10.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2e9aec8627a1a6823fc62fb96480abe3eb10168fd0d859ee3d3b395105ae19a7"}, - {file = "pydantic-1.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07293ab08e7b4d3c9d7de4949a0ea571f11e4557d19ea24dd3ae0c524c0c334d"}, - {file = "pydantic-1.10.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ee829b86ce984261d99ff2fd6e88f2230068d96c2a582f29583ed602ef3fc2c"}, - {file = "pydantic-1.10.9-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4b466a23009ff5cdd7076eb56aca537c745ca491293cc38e72bf1e0e00de5b91"}, - {file = "pydantic-1.10.9-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7847ca62e581e6088d9000f3c497267868ca2fa89432714e21a4fb33a04d52e8"}, - {file = "pydantic-1.10.9-cp311-cp311-win_amd64.whl", hash = "sha256:7845b31959468bc5b78d7b95ec52fe5be32b55d0d09983a877cca6aedc51068f"}, - {file = "pydantic-1.10.9-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:517a681919bf880ce1dac7e5bc0c3af1e58ba118fd774da2ffcd93c5f96eaece"}, - {file = "pydantic-1.10.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67195274fd27780f15c4c372f4ba9a5c02dad6d50647b917b6a92bf00b3d301a"}, - {file = "pydantic-1.10.9-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2196c06484da2b3fded1ab6dbe182bdabeb09f6318b7fdc412609ee2b564c49a"}, - {file = "pydantic-1.10.9-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:6257bb45ad78abacda13f15bde5886efd6bf549dd71085e64b8dcf9919c38b60"}, - {file = "pydantic-1.10.9-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3283b574b01e8dbc982080d8287c968489d25329a463b29a90d4157de4f2baaf"}, - {file = "pydantic-1.10.9-cp37-cp37m-win_amd64.whl", hash = "sha256:5f8bbaf4013b9a50e8100333cc4e3fa2f81214033e05ac5aa44fa24a98670a29"}, - {file = "pydantic-1.10.9-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9cd67fb763248cbe38f0593cd8611bfe4b8ad82acb3bdf2b0898c23415a1f82"}, - {file = "pydantic-1.10.9-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f50e1764ce9353be67267e7fd0da08349397c7db17a562ad036aa7c8f4adfdb6"}, - {file = "pydantic-1.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73ef93e5e1d3c8e83f1ff2e7fdd026d9e063c7e089394869a6e2985696693766"}, - {file = "pydantic-1.10.9-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:128d9453d92e6e81e881dd7e2484e08d8b164da5507f62d06ceecf84bf2e21d3"}, - {file = "pydantic-1.10.9-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ad428e92ab68798d9326bb3e5515bc927444a3d71a93b4a2ca02a8a5d795c572"}, - {file = "pydantic-1.10.9-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fab81a92f42d6d525dd47ced310b0c3e10c416bbfae5d59523e63ea22f82b31e"}, - {file = "pydantic-1.10.9-cp38-cp38-win_amd64.whl", hash = "sha256:963671eda0b6ba6926d8fc759e3e10335e1dc1b71ff2a43ed2efd6996634dafb"}, - {file = "pydantic-1.10.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:970b1bdc6243ef663ba5c7e36ac9ab1f2bfecb8ad297c9824b542d41a750b298"}, - {file = "pydantic-1.10.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7e1d5290044f620f80cf1c969c542a5468f3656de47b41aa78100c5baa2b8276"}, - {file = "pydantic-1.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83fcff3c7df7adff880622a98022626f4f6dbce6639a88a15a3ce0f96466cb60"}, - {file = "pydantic-1.10.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0da48717dc9495d3a8f215e0d012599db6b8092db02acac5e0d58a65248ec5bc"}, - {file = "pydantic-1.10.9-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:0a2aabdc73c2a5960e87c3ffebca6ccde88665616d1fd6d3db3178ef427b267a"}, - {file = "pydantic-1.10.9-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9863b9420d99dfa9c064042304868e8ba08e89081428a1c471858aa2af6f57c4"}, - {file = "pydantic-1.10.9-cp39-cp39-win_amd64.whl", hash = "sha256:e7c9900b43ac14110efa977be3da28931ffc74c27e96ee89fbcaaf0b0fe338e1"}, - {file = "pydantic-1.10.9-py3-none-any.whl", hash = "sha256:6cafde02f6699ce4ff643417d1a9223716ec25e228ddc3b436fe7e2d25a1f305"}, - {file = "pydantic-1.10.9.tar.gz", hash = "sha256:95c70da2cd3b6ddf3b9645ecaa8d98f3d80c606624b6d245558d202cd23ea3be"}, + {file = "pydantic-1.10.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a1fcb59f2f355ec350073af41d927bf83a63b50e640f4dbaa01053a28b7a7718"}, + {file = "pydantic-1.10.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b7ccf02d7eb340b216ec33e53a3a629856afe1c6e0ef91d84a4e6f2fb2ca70fe"}, + {file = "pydantic-1.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8fb2aa3ab3728d950bcc885a2e9eff6c8fc40bc0b7bb434e555c215491bcf48b"}, + {file = "pydantic-1.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:771735dc43cf8383959dc9b90aa281f0b6092321ca98677c5fb6125a6f56d58d"}, + {file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ca48477862372ac3770969b9d75f1bf66131d386dba79506c46d75e6b48c1e09"}, + {file = "pydantic-1.10.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a5e7add47a5b5a40c49b3036d464e3c7802f8ae0d1e66035ea16aa5b7a3923ed"}, + {file = "pydantic-1.10.12-cp310-cp310-win_amd64.whl", hash = "sha256:e4129b528c6baa99a429f97ce733fff478ec955513630e61b49804b6cf9b224a"}, + {file = "pydantic-1.10.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0d191db0f92dfcb1dec210ca244fdae5cbe918c6050b342d619c09d31eea0cc"}, + {file = "pydantic-1.10.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:795e34e6cc065f8f498c89b894a3c6da294a936ee71e644e4bd44de048af1405"}, + {file = "pydantic-1.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69328e15cfda2c392da4e713443c7dbffa1505bc9d566e71e55abe14c97ddc62"}, + {file = "pydantic-1.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2031de0967c279df0d8a1c72b4ffc411ecd06bac607a212892757db7462fc494"}, + {file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ba5b2e6fe6ca2b7e013398bc7d7b170e21cce322d266ffcd57cca313e54fb246"}, + {file = "pydantic-1.10.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2a7bac939fa326db1ab741c9d7f44c565a1d1e80908b3797f7f81a4f86bc8d33"}, + {file = "pydantic-1.10.12-cp311-cp311-win_amd64.whl", hash = "sha256:87afda5539d5140cb8ba9e8b8c8865cb5b1463924d38490d73d3ccfd80896b3f"}, + {file = "pydantic-1.10.12-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:549a8e3d81df0a85226963611950b12d2d334f214436a19537b2efed61b7639a"}, + {file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:598da88dfa127b666852bef6d0d796573a8cf5009ffd62104094a4fe39599565"}, + {file = "pydantic-1.10.12-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ba5c4a8552bff16c61882db58544116d021d0b31ee7c66958d14cf386a5b5350"}, + {file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:c79e6a11a07da7374f46970410b41d5e266f7f38f6a17a9c4823db80dadf4303"}, + {file = "pydantic-1.10.12-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab26038b8375581dc832a63c948f261ae0aa21f1d34c1293469f135fa92972a5"}, + {file = "pydantic-1.10.12-cp37-cp37m-win_amd64.whl", hash = "sha256:e0a16d274b588767602b7646fa05af2782576a6cf1022f4ba74cbb4db66f6ca8"}, + {file = "pydantic-1.10.12-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6a9dfa722316f4acf4460afdf5d41d5246a80e249c7ff475c43a3a1e9d75cf62"}, + {file = "pydantic-1.10.12-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a73f489aebd0c2121ed974054cb2759af8a9f747de120acd2c3394cf84176ccb"}, + {file = "pydantic-1.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bcb8cbfccfcf02acb8f1a261143fab622831d9c0989707e0e659f77a18e0"}, + {file = "pydantic-1.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2fcfb5296d7877af406ba1547dfde9943b1256d8928732267e2653c26938cd9c"}, + {file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:2f9a6fab5f82ada41d56b0602606a5506aab165ca54e52bc4545028382ef1c5d"}, + {file = "pydantic-1.10.12-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:dea7adcc33d5d105896401a1f37d56b47d443a2b2605ff8a969a0ed5543f7e33"}, + {file = "pydantic-1.10.12-cp38-cp38-win_amd64.whl", hash = "sha256:1eb2085c13bce1612da8537b2d90f549c8cbb05c67e8f22854e201bde5d98a47"}, + {file = "pydantic-1.10.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ef6c96b2baa2100ec91a4b428f80d8f28a3c9e53568219b6c298c1125572ebc6"}, + {file = "pydantic-1.10.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6c076be61cd0177a8433c0adcb03475baf4ee91edf5a4e550161ad57fc90f523"}, + {file = "pydantic-1.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d5a58feb9a39f481eda4d5ca220aa8b9d4f21a41274760b9bc66bfd72595b86"}, + {file = "pydantic-1.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5f805d2d5d0a41633651a73fa4ecdd0b3d7a49de4ec3fadf062fe16501ddbf1"}, + {file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1289c180abd4bd4555bb927c42ee42abc3aee02b0fb2d1223fb7c6e5bef87dbe"}, + {file = "pydantic-1.10.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5d1197e462e0364906cbc19681605cb7c036f2475c899b6f296104ad42b9f5fb"}, + {file = "pydantic-1.10.12-cp39-cp39-win_amd64.whl", hash = "sha256:fdbdd1d630195689f325c9ef1a12900524dceb503b00a987663ff4f58669b93d"}, + {file = "pydantic-1.10.12-py3-none-any.whl", hash = "sha256:b749a43aa51e32839c9d71dc67eb1e4221bb04af1033a32e3923d46f9effa942"}, + {file = "pydantic-1.10.12.tar.gz", hash = "sha256:0fe8a415cea8f340e7a9af9c54fc71a649b43e8ca3cc732986116b3cb135d303"}, ] [package.dependencies] @@ -509,52 +574,62 @@ email = ["email-validator (>=1.0.3)"] [[package]] name = "pyyaml" -version = "6.0" +version = "6.0.1" description = "YAML parser and emitter for Python" category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, - {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, - {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, - {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, - {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, - {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, - {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, - {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, - {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, - {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, - {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, - {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, - {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, - {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, - {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, - {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, - {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, - {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, - {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, - {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, - {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, - {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, - {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, - {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, - {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, - {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] [[package]] @@ -600,14 +675,14 @@ pydantic = ">=1.10.2,<2.0.0" [[package]] name = "tokenstream" -version = "1.5.0" +version = "1.7.0" description = "A versatile token stream for handwritten parsers" category = "main" optional = false python-versions = ">=3.10,<4.0" files = [ - {file = "tokenstream-1.5.0-py3-none-any.whl", hash = "sha256:adf5805f3e734c863a535c5cfc31fed4bd831647b1f51d1aab69e5a81eb63b8e"}, - {file = "tokenstream-1.5.0.tar.gz", hash = "sha256:3cb57c810f2fd1e57653c8270251a3df47656ef04f07eb3d4fc442f64f9ff0c0"}, + {file = "tokenstream-1.7.0-py3-none-any.whl", hash = "sha256:fdbb20e8a99b07e94ce88016e5f243a1582630a7459bd2e7a1c786f33543fcf9"}, + {file = "tokenstream-1.7.0.tar.gz", hash = "sha256:9f98387c7e74d224f7cca874ce77bb775ece6cb585e9ba18441960e2b35fae61"}, ] [[package]] @@ -636,26 +711,26 @@ files = [ [[package]] name = "typing-extensions" -version = "4.6.3" +version = "4.7.1" description = "Backported and Experimental Type Hints for Python 3.7+" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "typing_extensions-4.6.3-py3-none-any.whl", hash = "sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26"}, - {file = "typing_extensions-4.6.3.tar.gz", hash = "sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"}, + {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, + {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, ] [[package]] name = "urllib3" -version = "2.0.3" +version = "2.0.4" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, - {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, + {file = "urllib3-2.0.4-py3-none-any.whl", hash = "sha256:de7df1803967d2c2a98e4b11bb7d6bd9210474c46e8a0401514e3a42a75ebde4"}, + {file = "urllib3-2.0.4.tar.gz", hash = "sha256:8d22f86aae8ef5e410d4f539fde9ce6b2113a001bb4d189e0aed70642d602b11"}, ] [package.extras] @@ -667,4 +742,4 @@ zstd = ["zstandard (>=0.18.0)"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "4d193875bfbd90270e722261c24918cefa108e352944810264772bf82d87b7a0" +content-hash = "1002fbe323615f3b2088f55abb39188bf8d6bd39e0dc31306b09740d4a4f8de2" diff --git a/pyproject.toml b/pyproject.toml index ee2d0a6d4e..f9bef8cd00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,12 +7,13 @@ authors = ["Gamemode 4 Contributors"] [tool.poetry.dependencies] python = "^3.10" beet = "0.92.0" -mecha = "^0.67.0" +mecha = "^0.76.0" bolt = ">=0.20.1" PyYAML = "^6.0" pydantic = "^1.10.2" smithed-libraries = "^0.6.0" requests = "^2.28.1" +pillow = "^10.0.0" [tool.poetry.dev-dependencies] black = "^22.6.0"