From dbaf45f901c282c217d45cf983d87ba57acb1583 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 15 Nov 2022 18:56:52 -0500 Subject: [PATCH 01/76] parent 2b4c9bd0a0dc3deb888ed7f37882006501c0f86b author SpecialBuilder 1668556612 -0500 committer SpecialBuilder 1668556612 -0500 Update main.yml Rename folder to use new module id Fix typo Resources for Machine Blocks (#56) Adds font-magic needed to make machine names look fancy in the future. Fix some typos (#57) - probably fixes the warnings, hopefully doesn't break anything update script and bismutite_lump Machine blocks V1 machine changes part 2 hopper minecart items actual textures for the blocks Fix translate tags with the packager (#59) Add Container GUIs (#61) Adds Texture GUIs for Machine Blocks Machines. Textures by Hozz Fix Corrupted Image Update to 1.19 (#63) * Fix TP anchors, update beet * Update to 1.19 Auto Crafter GUI (#65) auto crafter gui should now look correct, but the CC container image is used as a placeholder Add auto crafter texture, and update optifine copy fix TP Jammer's name update phantom model Pack format and required atlases -Increments pack format to 1.19.3 version, -Adds atlas sources to properly load textures not in `items` or `blocks` directories Update pack.png (#68) Replaces old pack.png with Custom Crafter Add shrieking textures to Orb of Ankou (#67) Adds textures and a CMD path for the shrieking soul and shard Update pack_format and other versions Update GUI Font Magic for 1.19.4 (#69) - uses JP's perfect TTF font - names are now exactly center align - non-latin alphanumeric characters should work now (not tested) - simplified the GUI name requirement - no more \u00a0 for spaces in container names Update to 1.20 Move apple trees and scuba assets to module-folder Move CMD-controlling item models to base Load RPs into beet and output final to /out Model config validation Adds a model_data field to meta, which allows for nested configs to inherit properties from their parent for ease of defining similar items Each module generates minecraft-model overrides for itself Model config `item` may be a list Allows for modules which wish to use the same integer value for multiple different items: ie shamir tools Start generating model overrides with original file Add and remove configured model data to global registry Assign new CMD values Attempt to use same cmd first Allow config for custom override predicates Transition existing processes to service object Process config options late, allowin for programatic generation Functional config validation and error reporting on inherited model_data Move index retrieval/assignment to class methods Simplify filter function syntax Basics of auto-model generation (templating) textures defaults to reference Outputs registry after build NOTE: uses the wrapped output style used in PlayerheadManagement, though that has not been merged as of yet Refactor some RP files into new spec Bugfix to model validation Github action fails if new CMD needs to be issued Fix CMD assignment/reassignment Logger revamp BROKEN: Attempt fix for vanilla override merging Fix vanilla model override merging Migrate many simple textures to their parent datapack Migrate more complex module textures Last uncomplex item config (to be redone) template_options pydantic models Reconfigure for extendable transform functions Transform designed for item_display calculations "block" model template Templates are classes, and textures can be specified by name template/transform combo for the common CC-like models ... class inheritance ended up working really nicely here. Cache registry during build Disassembler model move Custom templates support transforms First attempt at LT models using the new item_display transform dev pipeline fully defined in beet-dev.yaml Rewrite of textures field for list and dict support Optional pydantic fields processed in order Fix liquid tanks block and item models Ender hoppers without minecart Auto crafting models Ench Extractors models Teleportation anchors models Update block_compressors to use display entities block_compressors model data config Update tinkering_compressors to display entities tinkering_compressors model data Migrate remaining unused directional ender_hoppers models NOTE: item_displays actually allow for the remodelling of the player head item, even when shown with the "head" model variant. This removes the need for the stone-button model used previously Forming press models Smelteries models NOTE: This uses the expandability function of the item model templates, although it would be roughly as easy to implement programmatically in a generator plugin Tnt landmines entity models Leftover model cleanup Fix custom crafters relocators with display entity change Relocator models Trapped sign models Metallurgy bands and lumps Metallurgy tool shamir models This improperly handles shared CMD registration, and is solely to get the models more-or-less working in game Support different models for items sharing a CMD value New example syntax in apple_trees, to be cleaned up in the following commit Clean up example config Metallurgy shamir textures complete Move template class to Pydantic, for configurable tempaltes Refactor TemplateOptions for multiple model creation Shamir models, but correctly this time Glob pattern support for allocations Remove old metallurgy models Remove sky dimension textures/models Start of advancement icon models Continuation of advancement icons Fix old-format scuba gear models Final advancement icons Clean up old advancement models Restore end_fishing custom tuned sword offsets Merge config cleanup Basics of Mecha Transformer rule Pass jsonfiles through Mecha manually Better Diagnostics when manually parsing jsonfiles Adds a transformer name to the unique key used when registering a fake ComplilationUnit, to avoid overwriting previous rule's results Basic nbt transformations Port spreadsheet values to registry, pt 1 Move shamir bands to the same CMD/Reference as shamir tools Port metallurgy spreadsheet values to registry, pt2 Alphabetize and correct lingering shamir indexes Remove redundant metallurgy band model config Rename shamir references to `shamir/foo` to reflect multi-texture nature Use mecha rules in source packs: animi-boots_of_ostra Add rule for substitutions into `data modify ... value` Use mecha rules in source files: calling_bell-enchant_extractors Reconfig end fishing to share tool/armor CMD between different item types Rename end fishing textures to start at 1 Ensure vanilla overrides are added in ascending CMD order Update ender_hoppers to use item displays. Use mecha rules in source files Extend jsonfile mecha rules into overlays Use mecha rules in source files: liquid_minecarts-note_block_interface Update orb_of_ankou model references - shards and essences are shared ref Use mecha rules in source files : particles_pack-ziprails (the rest) Remaining migration cleanup/bugfixes Restore texture existance checks Add beet.contrib.optifine CMD reference lookup for optifine CIT .properties Migrate simple CIT textures Remove public-server only optifine textures End fishing optifine armor Zauber cauldrons optifine textures Fix animated zauber textures Shamirs generate optifine armor config files NOTE: during this commit a significant bug with file merging was discovered. It does not currently function completely as a result Migrate metallurgy armor optifine animations Optifine custom-entity-models This is a dumb simple migration of optifine CEM models. In the future, if more than one pack wishes to use the same entity, some clever beet merge rules could be written to make it work in our monorepo item_display machines set to full brightness Font-powered custom guis Cleanup last old RP files Setup RP as a module, with its own beet.yaml instructions Use beet autoload to ensure merge policies apply during broadcast merges Remove optifine metallurgy armor .properties - they are generated by the plugin Repair optifine cit spyglass and trident item retextures Resource pack plays nice with beet-dev Update beet-release.yaml Add babelbox for translations Port existing (outdated) translations to new spreadsheets Fix `beet readme-gen` to work and also only load the metadata Allow CMD prefix to be configured Framework for "interrupted" broadcast [Broken] Hash-based update detector Completed hash-based update detector Ensures builds are fully deterministic/reproducible so zipfile hashes can reliably be used to detect changes to a module. Run libraries through new patch system Rename plugin to `update_checker` Rename plugin to `worker` and run libraries and RP through new update checking Better organize new plugins, add repro-zipfile dependancy Descriptions for libraries, prevents addition of version number to mcmeta Move folder to `resource_pack` and finish patch tracking Add missing rename Skip writing RP version to datapack init functions Use mecha.contrib.json_files to get better diagnostics from LootTable processing Move json rules to class mixin Exclude block/fluid tag predicates from `tag` processing (easy way out) Allow proper parsing of newlines (like used in Guidebook) ill-formed nbt produces pretty diagnostic Translation key linting Add missing translations to babelbox shreadsheets Add warnings for unused translations Missing potion_liquids translations OOA Translations [babelbox makes nonfunctional atm] Add extra entries to item model files to return to the vanilla model on unused CMD values `generated` template supports creating the same model for multiple items Generate trapped signs model_data via plugin. Add simple hanging sign texture Update bolt to function Patch cache-less build Clear leftover item models Update beet to fix babelbox unicode loading Update mecha to fix orb_of_ankou build Copy vanilla model data first to prevent cross-build errors Restore CMD model padding Fix metallurgy shields and texture linting Various warning cleanup Github action debug Update translations.csv Revert "Github action debug" This reverts commit b489e575a9776bd1066c3158f5db40a3d67a33d0. Remove old tunnel bores placement, and its ascioated translation Add unripe golden apple texture Texture credit: Hozz Co-Authored-By: hozz8528 <34761182+hozz8528@users.noreply.github.com> Edit RP dev pack description Save beet-dev generated config in tempfile to fix watch Fix `beet dev -w` Repair `beet readme-gen` cli command with new config method Update zauber translations Migrate zauber armor textures Migrate zauber crystal textures Migrate zauber soulution textures Migrate zauber magicol CMD Migrate new zauber advancements Zauber Cauldron custom model. Model and Textures by @kyrkis Co-Authored-By: kyrius <44133389+kyrkis@users.noreply.github.com> Fallback translations include "Lingering" and "Splash" for potions Update zauber_cauldrons_paint_biome.json Update beet-dev.yaml Begin incorporation of guidebook textures Add copies of legacy guidebook gm4 items Guidebooks have arrows Textures by @kyrkis Co-Authored-By: kyrius <44133389+kyrkis@users.noreply.github.com> New Orb of Ankou Textures Image credit: Hozz Co-Authored-By: hozz8528 <34761182+hozz8528@users.noreply.github.com> Namespace custom crafter reference - avoids error with unusual autocrafter guidebook inclusion CLI option for auto-updating babelbox translations from source fallback. Intended for auto-propagating guidebook translations Repair some config issues Load test files during `beet dev` pipeline Correct metallurgy advancement icon config Mecha logging filter to limit single line length. Allow backfilling of unset translation keys Transfer guidebook translations into translations.csv Misc translation inconsistencies 1 Misc translation inconsistencies 2 Misc translation inconsistencies 3 Fix github test action by adding RP plugins Test build does not include complex beet tooling for update detection and patch number increments. Since tests dont check the update behavior currently this is acceptable, but may need to bae changed in the future Correct guidebook translation tag format Misc translation inconsistencies 4 Fix #932 Skip mecha linting in beet-test.yaml Misc translation inconsistencies 5 Fix function tag leaks from worker-based update checker Use new pack.copy() from beet v0.104.0 config option for translation linter ignores Guidebook auto-generates advancement icons using module logos Guidebook item reference in all the places Texture gm4 root advancement Various cleanup Beet 0.104.1 fixes Unicode in beet.yaml on windows Update commands.py Prevent "worker reload" warning message on beet-release Optional `model_data.yaml` file for storing long config outside of beet.yaml Fix zauber cauldrons KeyError Fix RP worker merge Redundant `ignore` config Stably sort player heads skin cache Abstract dynamic config builder Separate RP and DP pack formats Correct ender hoppers cart display entity height --- beet-release.yaml | 4 + gm4/commands.py | 2 + gm4/modeldata_registry.json | 1220 ++++++++++++++++- gm4/skin_cache.json | 1 + gm4_auto_crafting/beet.yaml | 3 + .../block/enchantment_extractor_bottom.png | Bin 0 -> 3184 bytes .../block/enchantment_extractor_front.png | Bin 0 -> 3225 bytes .../block/enchantment_extractor_side.png | Bin 0 -> 3232 bytes .../enchantment_extractor_side_front.png | Bin 0 -> 572 bytes .../block/enchantment_extractor_top.png | Bin 0 -> 2984 bytes .../block/enchantment_extractor_top_out.png | Bin 0 -> 3021 bytes .../gui/container/enchantment_extractor.png | Bin 0 -> 4657 bytes gm4_ender_hoppers/beet.yaml | 3 + gm4_liquid_minecarts/beet.yaml | 3 + gm4_tunnel_bores/beet.yaml | 3 + lib_custom_crafters/beet.yaml | 3 + 16 files changed, 1218 insertions(+), 24 deletions(-) create mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_bottom.png create mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_front.png create mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_side.png create mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_side_front.png create mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_top.png create mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_top_out.png create mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/gui/container/enchantment_extractor.png diff --git a/beet-release.yaml b/beet-release.yaml index 2507679f31..ac6e16863c 100644 --- a/beet-release.yaml +++ b/beet-release.yaml @@ -74,6 +74,8 @@ pipeline: - gm4.plugins.write_mcmeta - gm4.plugins.worker.store_project + - gm4.plugins.worker.store_project + - extend: beet.yaml directory: resource_pack require: @@ -87,6 +89,8 @@ pipeline: - gm4.plugins.manifest.write_meta + - gm4.plugins.manifest.write_meta + meta: autosave: link: false diff --git a/gm4/commands.py b/gm4/commands.py index 82599217b9..b607bb57ec 100644 --- a/gm4/commands.py +++ b/gm4/commands.py @@ -59,6 +59,8 @@ def dev(ctx: click.Context, project: Project, modules: tuple[str, ...], watch: b build_dynamic_config(config, ctx, project, watch, link) # start the project build + os.remove(f.name) # delete tempfile + @beet.command() def clean(): diff --git a/gm4/modeldata_registry.json b/gm4/modeldata_registry.json index d41d3bd0d4..80acc67404 100644 --- a/gm4/modeldata_registry.json +++ b/gm4/modeldata_registry.json @@ -47,6 +47,12 @@ "gm4_particles_pack:guidebook_icon/particles_pack": 3, "gm4_poses_pack:guidebook_icon/poses_pack": 4 }, + "armor_stand": { + "gm4_better_armour_stands:gui/advancement/better_armour_stands": 1, + "gm4_poses_pack:gui/advancement/poses_pack": 2, + "gm4_particles_pack:guidebook_icon/particles_pack": 3, + "gm4_poses_pack:guidebook_icon/poses_pack": 4 + }, "axolotl_bucket": { "gm4_metallurgy:shamir/infinitas": 100 }, @@ -229,6 +235,171 @@ "command_block": { "gm4:gui/advancement/root": 1 }, + "bamboo_sign": { + "gm4_trapped_signs:item/trapped_bamboo_sign": 1, + "gm4_trapped_signs:item/secret_trapped_bamboo_sign": 2 + }, + "birch_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_birch_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_birch_hanging_sign": 2 + }, + "birch_sign": { + "gm4_trapped_signs:item/trapped_birch_sign": 1, + "gm4_trapped_signs:item/secret_trapped_birch_sign": 2 + }, + "birch_stairs": { + "gm4_chairs:gui/advancement/chairs_creation": 1 + }, + "black_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/black": 300 + }, + "black_dye": { + "gm4_orb_of_ankou:gui/advancement/orb_of_ankou_soul_essence": 1, + "gm4_orb_of_ankou:pneuma/aggressive": 200, + "gm4_orb_of_ankou:pneuma/agile": 201, + "gm4_orb_of_ankou:pneuma/anchoring": 202, + "gm4_orb_of_ankou:pneuma/bargaining": 203, + "gm4_orb_of_ankou:pneuma/bashing": 204, + "gm4_orb_of_ankou:pneuma/blasting": 205, + "gm4_orb_of_ankou:pneuma/blinding": 206, + "gm4_orb_of_ankou:pneuma/bounding": 207, + "gm4_orb_of_ankou:pneuma/bubbly": 208, + "gm4_orb_of_ankou:pneuma/conjuring": 209, + "gm4_orb_of_ankou:pneuma/depriving": 210, + "gm4_orb_of_ankou:pneuma/draining": 211, + "gm4_orb_of_ankou:pneuma/enduring": 212, + "gm4_orb_of_ankou:pneuma/expeditious": 213, + "gm4_orb_of_ankou:pneuma/feathery": 214, + "gm4_orb_of_ankou:pneuma/gazing": 215, + "gm4_orb_of_ankou:pneuma/gliding": 216, + "gm4_orb_of_ankou:pneuma/hawkeye": 217, + "gm4_orb_of_ankou:pneuma/incombustible": 218, + "gm4_orb_of_ankou:pneuma/lifeless": 219, + "gm4_orb_of_ankou:pneuma/neutralizing": 220, + "gm4_orb_of_ankou:pneuma/phasing": 221, + "gm4_orb_of_ankou:pneuma/pricking": 222, + "gm4_orb_of_ankou:pneuma/retreating": 223, + "gm4_orb_of_ankou:pneuma/rushing": 224, + "gm4_orb_of_ankou:pneuma/scaling": 225, + "gm4_orb_of_ankou:pneuma/soaring": 226, + "gm4_orb_of_ankou:pneuma/synergetic": 227, + "gm4_orb_of_ankou:pneuma/vanishing": 228, + "gm4_orb_of_ankou:pneuma/venomous": 229, + "gm4_orb_of_ankou:pneuma/volatile": 230, + "gm4_orb_of_ankou:pneuma/withering": 231, + "gm4_orb_of_ankou:pneuma/striding": 232, + "gm4_orb_of_ankou:pneuma/freezing": 233, + "gm4_orb_of_ankou:pneuma/feigning": 234, + "gm4_orb_of_ankou:pneuma/shrieking": 235, + "gm4_orb_of_ankou:pneuma/dashing": 236, + "gm4_orb_of_ankou:pneuma/sniffing": 237 + }, + "blaze_powder": { + "gm4_mysterious_midnights:guidebook_icon/nightmare_nights": 1 + }, + "blue_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/blue": 300 + }, + "bone": { + "gm4_mysterious_midnights:guidebook_icon/resurrecting_skeletons": 1 + }, + "bow": { + "gm4_better_fire:gui/advancement/better_fire": 1, + "gm4_tower_structures:item/pirate_bow": 4, + "gm4_animi_shamir:shamir/animi": 124 + }, + "brown_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/brown": 300 + }, + "brown_stained_glass": { + "gm4_soul_glass:gui/advancement/soul_glass": 1, + "gm4_soul_glass:item/soul_glass": 2, + "gm4_soul_glass:guidebook_icon/soul_glass": 3 + }, + "bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "campfire": { + "gm4_cozy_campfires:guidebook_icon/cozy_campfires": 1 + }, + "carrot_on_a_stick": { + "gm4_animi_shamir:shamir/animi": 124 + }, + "carved_pumpkin": { + "gm4_midnight_menaces:guidebook_icon/menacing_goblins": 1 + }, + "cauldron": { + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_create": 1, + "gm4_zauber_cauldrons:guidebook_icon/zauber_cauldrons": 300 + }, + "chainmail_boots": { + "gm4_mountaineering:item/crampons": 1, + "gm4_mountaineering:guidebook_icon/mountaineering": 2, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_desire_lines:shamir/celaro": 118, + "gm4_vecto_shamir:shamir/vecto": 121, + "gm4_metallurgy:shamir/vibro": 123, + "gm4_animi_shamir:shamir/animi": 124 + }, + "chainmail_chestplate": { + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_iacio_shamir:shamir/iacio": 122, + "gm4_animi_shamir:shamir/animi": 124 + }, + "chainmail_helmet": { + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "chainmail_leggings": { + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "cherry_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_cherry_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_cherry_hanging_sign": 2 + }, + "cherry_sign": { + "gm4_trapped_signs:item/trapped_cherry_sign": 1, + "gm4_trapped_signs:item/secret_trapped_cherry_sign": 2 + }, + "chest": { + "gm4_sunken_treasure:item/treasure_chest": 1, + "gm4_sunken_treasure:item/shipwreck_treasure": 3, + "gm4_sunken_treasure:item/shipwreck_supply": 4 + }, + "chiseled_bookshelf": { + "gm4_bookshelf_inspector:guidebook_icon/bookshelf_inspector": 1 + }, + "chorus_flower": { + "gm4_smelteries:block/ore_display/chorus_fruit": 1 + }, + "chorus_fruit": { + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_wormhole": 1 + }, + "clock": { + "gm4_combat_expanded:gui/advancement/combat_expanded_survive": 1, + "gm4_combat_expanded:gui/advancement/combat_expanded_challenger": 2, + "gm4_mysterious_midnights:guidebook_icon/mysterious_midnights": 3, + "gm4_animi_shamir:shamir/animi": 124, + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_make_magicol": 300 + }, + "coal_block": { + "gm4_forming_press:item/charcoal_block": 1 + }, + "coarse_dirt": { + "gm4_desire_lines:gui/advancement/desire_lines_10000": 1, + "gm4_desire_lines:guidebook_icon/desire_lines": 2 + }, + "cod": { + "gm4_live_catch:guidebook_icon/live_catch": 1 + }, + "cod_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, "compass": { "gm4_metallurgy:shamir/sensus": 101, "gm4_fulcio_shamir:shamir/fulcio": 115, @@ -240,6 +411,9 @@ "copper_ore": { "gm4_smelteries:block/ore_display/copper_ore": 2 }, + "copper_ore": { + "gm4_smelteries:block/ore_display/copper_ore": 2 + }, "crafting_table": { "gm4_custom_crafters:block/custom_crafter": 1, "gm4_standard_crafting:guidebook_icon/standard_crafting": 2, @@ -276,6 +450,27 @@ "gm4_trapped_signs:item/trapped_dark_oak_sign": 1, "gm4_trapped_signs:item/secret_trapped_dark_oak_sign": 2 }, + "crimson_sign": { + "gm4_trapped_signs:item/trapped_crimson_sign": 1, + "gm4_trapped_signs:item/secret_trapped_crimson_sign": 2 + }, + "crossbow": { + "gm4_animi_shamir:shamir/animi": 124 + }, + "crying_obsidian": { + "gm4_shapeless_portals:guidebook_icon/shapeless_portals": 1 + }, + "cyan_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/cyan": 300 + }, + "dark_oak_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_dark_oak_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_dark_oak_hanging_sign": 2 + }, + "dark_oak_sign": { + "gm4_trapped_signs:item/trapped_dark_oak_sign": 1, + "gm4_trapped_signs:item/secret_trapped_dark_oak_sign": 2 + }, "deepslate_copper_ore": { "gm4_smelteries:block/ore_display/deepslate_copper_ore": 1 }, @@ -285,6 +480,7 @@ "deepslate_iron_ore": { "gm4_smelteries:block/ore_display/deepslate_iron_ore": 1 }, + "compass": {}, "diamond": { "gm4_end_fishing:item/end_city_ore_1": 10, "gm4_end_fishing:item/end_city_ore_2": 11, @@ -302,6 +498,14 @@ "gm4_audere_shamir:shamir/audere": 120, "gm4_animi_shamir:shamir/animi": 124 }, + "diamond_axe": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/arborenda": 112, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, "diamond_boots": { "gm4_mountaineering:gui/advancement/ski_fast": 1, "gm4_end_fishing:item/end_city_armor_1": 10, @@ -455,6 +659,9 @@ "dirt_path": { "gm4_speed_paths:guidebook_icon/speed_paths": 1 }, + "dirt": { + "gm4_tnt_landmines:entity/tnt_landmine_dirt": 42 + }, "elytra": { "gm4_end_fishing:gui/advancement/end_fishing_phantom": 1, "gm4_end_fishing:item/captains_wings": 10, @@ -720,6 +927,12 @@ "green_concrete_powder": { "gm4_zauber_cauldrons:block/liquid_magicol/green": 300 }, + "gray_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/gray": 300 + }, + "green_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/green": 300 + }, "gunpowder": { "gm4_bat_grenades:gui/advancement/bat_grenades": 1, "gm4_tnt_landmines:item/soft_defuser": 2, @@ -1036,6 +1249,12 @@ "mycelium": { "gm4_shroomites:guidebook_icon/shroomites": 1 }, + "music_disc_13": { + "gm4_record_crafting:gui/advancement/record_crafting": 1 + }, + "mycelium": { + "gm4_shroomites:guidebook_icon/shroomites": 1 + }, "name_tag": { "gm4_holographic_tags:gui/advancement/holographic_tags": 1, "gm4_holographic_tags:guidebook_icon/holographic_tags": 2 @@ -1206,45 +1425,754 @@ "oak_planks": { "gm4_desire_lines:gui/advancement/desire_lines_8000": 1 }, - "oak_sapling": { - "gm4_apple_trees:item/apple_tree_sapling": 4 - }, - "oak_sign": { - "gm4_trapped_signs:item/trapped_oak_sign": 1, - "gm4_trapped_signs:item/secret_trapped_oak_sign": 2, - "gm4_trapped_signs:guidebook_icon/trapped_signs": 3 + "emerald": { + "gm4_apple_trees:block/apple_unripe": 0, + "gm4_calling_bell:gui/advancement/calling_bell": 1, + "gm4_end_fishing:item/ores/emerald_10": 2, + "gm4_end_fishing:item/ores/emerald_11": 3, + "gm4_end_fishing:item/ores/emerald_12": 4, + "gm4_end_fishing:item/ores/emerald_13": 5, + "gm4_end_fishing:item/ores/emerald_14": 6 }, - "obsidian": { - "gm4_metallurgy:item/slightly_damaged_obsidian": 1 + "enchanted_book": { + "gm4_enchantment_extractors:gui/advancement/enchantment_extractors_mending": 1, + "gm4_book_binders:gui/advancement/book_binders_bind": 2 }, - "orange_concrete_powder": { - "gm4_zauber_cauldrons:block/liquid_magicol/orange": 300 + "enchanting_table": { + "gm4_enchantment_extractors:block/enchantment_extractor": 1, + "gm4_enchantment_extractors:gui/advancement/enchantment_extractors": 2, + "gm4_enchantment_extractors:block/enchantment_extractor_side": 4, + "gm4_enchantment_extractors:block/enchantment_extractor_down": 5 }, - "oxidized_cut_copper": { - "gm4_tinkering_compressors:block/tinkering_compressor_plate": 1 + "end_portal_frame": { + "gm4_teleportation_anchors:block/teleportation_anchor": 1 }, - "paper": { - "gm4_book_binders:item/enchanted_page": 1, - "gm4_book_binders:gui/advancement/book_binders_debind": 2 + "end_rod": { + "gm4_teleportation_anchors:gui/advancement/teleportation_jammer": 1 }, - "phantom_membrane": { - "gm4_midnight_menaces:guidebook_icon/enlarging_phantoms": 1 + "experience_bottle": { + "standard_liquids:gui/advancement/standard_liquids": 1 }, - "pink_concrete_powder": { - "gm4_zauber_cauldrons:block/liquid_magicol/pink": 300 + "firework_rocket": { + "gm4_phantom_scarecrows:gui/advancement/phantom_scarecrows": 1 + }, + "firework_star": { + "gm4_orb_of_ankou:item/orb_of_ankou": 1, + "gm4_everstone:item/everstone": 2, + "gm4_everstone:gui/advancement/everstones": 3, + "gm4_orb_of_ankou:gui/advancement/orb_of_ankou_max_orb": 200 + }, + "fishing_rod": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_animi_shamir:shamir/animi": 124 + }, + "flint": { + "gm4_orb_of_ankou:gui/advancement/orb_of_ankou_soul_shard": 1, + "gm4_better_fire:item/charred_arrowhead": 2, + "gm4_orb_of_ankou:item/shards/aggressive": 200, + "gm4_orb_of_ankou:item/shards/agile": 201, + "gm4_orb_of_ankou:item/shards/anchoring": 202, + "gm4_orb_of_ankou:item/shards/bargaining": 203, + "gm4_orb_of_ankou:item/shards/bashing": 204, + "gm4_orb_of_ankou:item/shards/blasting": 205, + "gm4_orb_of_ankou:item/shards/blinding": 206, + "gm4_orb_of_ankou:item/shards/bounding": 207, + "gm4_orb_of_ankou:item/shards/bubbly": 208, + "gm4_orb_of_ankou:item/shards/conjuring": 209, + "gm4_orb_of_ankou:item/shards/depriving": 210, + "gm4_orb_of_ankou:item/shards/draining": 211, + "gm4_orb_of_ankou:item/shards/enduring": 212, + "gm4_orb_of_ankou:item/shards/expeditious": 213, + "gm4_orb_of_ankou:item/shards/feathery": 214, + "gm4_orb_of_ankou:item/shards/gazing": 215, + "gm4_orb_of_ankou:item/shards/gliding": 216, + "gm4_orb_of_ankou:item/shards/hawkeye": 217, + "gm4_orb_of_ankou:item/shards/incombustible": 218, + "gm4_orb_of_ankou:item/shards/lifeless": 219, + "gm4_orb_of_ankou:item/shards/neutralizing": 220, + "gm4_orb_of_ankou:item/shards/phasing": 221, + "gm4_orb_of_ankou:item/shards/pricking": 222, + "gm4_orb_of_ankou:item/shards/retreating": 223, + "gm4_orb_of_ankou:item/shards/rushing": 224, + "gm4_orb_of_ankou:item/shards/scaling": 225, + "gm4_orb_of_ankou:item/shards/soaring": 226, + "gm4_orb_of_ankou:item/shards/synergetic": 227, + "gm4_orb_of_ankou:item/shards/vanishing": 228, + "gm4_orb_of_ankou:item/shards/venomous": 229, + "gm4_orb_of_ankou:item/shards/volatile": 230, + "gm4_orb_of_ankou:item/shards/withering": 231, + "gm4_orb_of_ankou:item/shards/striding": 232, + "gm4_orb_of_ankou:item/shards/freezing": 233, + "gm4_orb_of_ankou:item/shards/feigning": 234, + "gm4_orb_of_ankou:item/shards/shrieking": 235 + }, + "flint_and_steel": { + "gm4_orb_of_ankou:gui/advancement/orb_of_ankou_soul_forge": 1, + "gm4_animi_shamir:shamir/animi": 124 + }, + "furnace": { + "gm4_smelteries:gui/advancement/smelteries": 1 + }, + "furnace_minecart": { + "gm4_tunnel_bores:item/piston_minecart": 1 + }, + "glass": { + "gm4_liquid_tanks:block/liquid_tank": 1 + }, + "glass_bottle": { + "gm4_sunken_treasure:item/message_in_a_bottle": 1, + "gm4_sunken_treasure:gui/advancement/sunken_treasure": 2, + "gm4_zauber_cauldrons:item/magic_in_a_bottle": 3, + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldron_drink_multi_use_bottle": 4 + }, + "glow_ink_sac": { + "gm4_ink_spitting_squid:gui/advancement/glow_ink_spitting_squid": 1 + }, + "gold_ingot": { + "gm4_end_fishing:item/ores/gold_ingot_10": 10, + "gm4_end_fishing:item/ores/gold_ingot_11": 11, + "gm4_end_fishing:item/ores/gold_ingot_12": 12, + "gm4_end_fishing:item/ores/gold_ingot_13": 13, + "gm4_end_fishing:item/ores/gold_ingot_14": 14 + }, + "gold_ore": { + "gm4_smelteries:block/ore_display/gold_ore": 1 + }, + "golden_apple": { + "gm4_apple_trees:block/golden_apple_unripe": 1 + }, + "golden_axe": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/arborenda": 112, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_boots": { + "gm4_sunken_treasure:item/waders": 1, + "gm4_zauber_cauldrons:item/zauber_armor/health/boots": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack/boots": 3, + "gm4_zauber_cauldrons:item/zauber_armor/speed/boots": 4, + "gm4_zauber_cauldrons:item/zauber_armor/armor/boots": 5, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_desire_lines:shamir/celaro": 118, + "gm4_vecto_shamir:shamir/vecto": 121, + "gm4_metallurgy:shamir/vibro": 123, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_chestplate": { + "gm4_scuba_gear:item/scuba_tank": 1, + "gm4_zauber_cauldrons:item/zauber_armor/health/chestplate": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack/chestplate": 3, + "gm4_zauber_cauldrons:item/zauber_armor/armor/chestplate": 4, + "gm4_zauber_cauldrons:item/zauber_armor/speed/chestplate": 4, + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_full_armor": 6, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_iacio_shamir:shamir/iacio": 122, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_helmet": { + "gm4_zauber_cauldrons:item/zauber_armor/health/helmet": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack/helmet": 3, + "gm4_zauber_cauldrons:item/zauber_armor/speed/helmet": 4, + "gm4_zauber_cauldrons:item/zauber_armor/armor/helmet": 5, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_hoe": { + "gm4_metallurgy:shamir/gemini": 109, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_horse_armor": { + "gm4_end_fishing:item/horse_armor/golden_horse_armor_10": 10, + "gm4_end_fishing:item/horse_armor/golden_horse_armor_11": 11, + "gm4_end_fishing:item/horse_armor/golden_horse_armor_12": 12, + "gm4_end_fishing:item/horse_armor/golden_horse_armor_13": 13, + "gm4_end_fishing:item/horse_armor/golden_horse_armor_14": 14 + }, + "golden_leggings": { + "gm4_zauber_cauldrons:item/zauber_armor/health/leggings": 2, + "gm4_zauber_cauldrons:item/zauber_armor/attack/leggings": 3, + "gm4_zauber_cauldrons:item/zauber_armor/speed/leggings": 4, + "gm4_zauber_cauldrons:item/zauber_armor/armor/leggings": 5, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_pickaxe": { + "gm4_metallurgy:shamir/forterra": 107, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_shovel": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "golden_sword": { + "gm4_metallurgy:shamir/ender_bolt": 105, + "gm4_metallurgy:shamir/gemini": 106, + "gm4_metallurgy:shamir/musical": 108, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_orb_of_ankou:shamir/corripio": 116, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_animi_shamir:shamir/animi": 124 + }, + "grass_block": { + "gm4_tnt_landmines:entity/tnt_landmine_grass": 41 + }, + "gunpowder": { + "gm4_bat_grenades:gui/advancement/bat_grenades": 1, + "gm4_tnt_landmines:item/soft_defuser": 2 + }, + "honey_block": { + "gm4_liquid_tanks:block/cast_honey_block": 1 + }, + "hopper": { + "gm4_liquid_tanks:gui/advancement/liquid_tanks_create": 1 + }, + "hopper_minecart": { + "gm4_ender_hoppers:item/ender_hopper_minecart": 2, + "gm4_liquid_minecarts:item/liquid_minecart": 3 + }, + "ink_sac": { + "gm4_ink_spitting_squid:gui/advancement/ink_spitting_squid": 1 + }, + "iron_axe": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/arborenda": 112, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_block": { + "gm4_smelteries:block/smeltery_unlit": 2, + "gm4_smelteries:block/smeltery_lit": 3 + }, + "iron_boots": { + "gm4_end_fishing:item/armor/iron_boots_10": 10, + "gm4_end_fishing:item/armor/iron_boots_11": 11, + "gm4_end_fishing:item/armor/iron_boots_12": 12, + "gm4_end_fishing:item/armor/iron_boots_13": 13, + "gm4_end_fishing:item/armor/iron_boots_14": 14, + "gm4_end_fishing:item/armor/iron_boots_15": 15, + "gm4_end_fishing:item/armor/iron_boots_16": 16, + "gm4_end_fishing:item/armor/iron_boots_17": 17, + "gm4_end_fishing:item/armor/iron_boots_18": 18, + "gm4_end_fishing:item/armor/iron_boots_19": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_desire_lines:shamir/celaro": 118, + "gm4_vecto_shamir:shamir/vecto": 121, + "gm4_metallurgy:shamir/vibro": 123, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_chestplate": { + "gm4_combat_expanded:gui/advancement/combat_expanded_full_set": 2, + "gm4_end_fishing:item/armor/iron_chestplate_10": 10, + "gm4_end_fishing:item/armor/iron_chestplate_11": 11, + "gm4_end_fishing:item/armor/iron_chestplate_12": 12, + "gm4_end_fishing:item/armor/iron_chestplate_13": 13, + "gm4_end_fishing:item/armor/iron_chestplate_14": 14, + "gm4_end_fishing:item/armor/iron_chestplate_15": 15, + "gm4_end_fishing:item/armor/iron_chestplate_16": 16, + "gm4_end_fishing:item/armor/iron_chestplate_17": 17, + "gm4_end_fishing:item/armor/iron_chestplate_18": 18, + "gm4_end_fishing:item/armor/iron_chestplate_19": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_iacio_shamir:shamir/iacio": 122, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_helmet": { + "gm4_end_fishing:item/armor/iron_helmet_10": 10, + "gm4_end_fishing:item/armor/iron_helmet_11": 11, + "gm4_end_fishing:item/armor/iron_helmet_12": 12, + "gm4_end_fishing:item/armor/iron_helmet_13": 13, + "gm4_end_fishing:item/armor/iron_helmet_14": 14, + "gm4_end_fishing:item/armor/iron_helmet_15": 15, + "gm4_end_fishing:item/armor/iron_helmet_16": 16, + "gm4_end_fishing:item/armor/iron_helmet_17": 17, + "gm4_end_fishing:item/armor/iron_helmet_18": 18, + "gm4_end_fishing:item/armor/iron_helmet_19": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_hoe": { + "gm4_metallurgy:shamir/gemini": 109, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_horse_armor": { + "gm4_end_fishing:item/horse_armor/iron_horse_armor_10": 10, + "gm4_end_fishing:item/horse_armor/iron_horse_armor_11": 11, + "gm4_end_fishing:item/horse_armor/iron_horse_armor_12": 12, + "gm4_end_fishing:item/horse_armor/iron_horse_armor_13": 13, + "gm4_end_fishing:item/horse_armor/iron_horse_armor_14": 14 + }, + "iron_ingot": { + "gm4_end_fishing:item/ores/iron_ingot_10": 10, + "gm4_end_fishing:item/ores/iron_ingot_11": 11, + "gm4_end_fishing:item/ores/iron_ingot_12": 12, + "gm4_end_fishing:item/ores/iron_ingot_13": 13, + "gm4_end_fishing:item/ores/iron_ingot_14": 14 + }, + "iron_leggings": { + "gm4_end_fishing:item/armor/iron_leggings_10": 10, + "gm4_end_fishing:item/armor/iron_leggings_11": 11, + "gm4_end_fishing:item/armor/iron_leggings_12": 12, + "gm4_end_fishing:item/armor/iron_leggings_13": 13, + "gm4_end_fishing:item/armor/iron_leggings_14": 14, + "gm4_end_fishing:item/armor/iron_leggings_15": 15, + "gm4_end_fishing:item/armor/iron_leggings_16": 16, + "gm4_end_fishing:item/armor/iron_leggings_17": 17, + "gm4_end_fishing:item/armor/iron_leggings_18": 18, + "gm4_end_fishing:item/armor/iron_leggings_19": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_ore": { + "gm4_smelteries:block/ore_display/iron_ore": 2 + }, + "iron_pickaxe": { + "gm4_end_fishing:item/end_city_tools_1": 10, + "gm4_end_fishing:item/end_city_tools_2": 11, + "gm4_end_fishing:item/end_city_tools_3": 12, + "gm4_end_fishing:item/end_city_tools_4": 13, + "gm4_end_fishing:item/end_city_tools_5": 14, + "gm4_end_fishing:item/end_city_tools_6": 15, + "gm4_end_fishing:item/end_city_tools_7": 16, + "gm4_end_fishing:item/end_city_tools_8": 17, + "gm4_end_fishing:item/end_city_tools_9": 18, + "gm4_end_fishing:item/end_city_tools_10": 19, + "gm4_metallurgy:shamir/forterra": 107, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_shovel": { + "gm4_end_fishing:item/end_city_tools_1": 10, + "gm4_end_fishing:item/end_city_tools_2": 11, + "gm4_end_fishing:item/end_city_tools_3": 12, + "gm4_end_fishing:item/end_city_tools_4": 13, + "gm4_end_fishing:item/end_city_tools_5": 14, + "gm4_end_fishing:item/end_city_tools_6": 15, + "gm4_end_fishing:item/end_city_tools_7": 16, + "gm4_end_fishing:item/end_city_tools_8": 17, + "gm4_end_fishing:item/end_city_tools_9": 18, + "gm4_end_fishing:item/end_city_tools_10": 19, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "iron_sword": { + "gm4_end_fishing:item/end_city_swords_1": 10, + "gm4_end_fishing:item/end_city_swords_2": 11, + "gm4_end_fishing:item/end_city_swords_3": 12, + "gm4_end_fishing:item/end_city_swords_4": 13, + "gm4_end_fishing:item/end_city_swords_5": 14, + "gm4_end_fishing:item/end_city_swords_6": 15, + "gm4_end_fishing:item/end_city_swords_7": 16, + "gm4_end_fishing:item/end_city_swords_8": 17, + "gm4_end_fishing:item/end_city_swords_9": 18, + "gm4_end_fishing:item/end_city_swords_10": 19, + "gm4_end_fishing:item/end_city_swords_11": 20, + "gm4_end_fishing:item/end_city_swords_12": 21, + "gm4_end_fishing:item/end_city_swords_13": 22, + "gm4_end_fishing:item/end_city_swords_14": 23, + "gm4_end_fishing:item/end_city_swords_15": 24, + "gm4_end_fishing:item/end_city_swords_16": 25, + "gm4_end_fishing:item/end_city_swords_17": 26, + "gm4_end_fishing:item/end_city_swords_18": 27, + "gm4_end_fishing:item/end_city_swords_19": 28, + "gm4_end_fishing:item/end_city_swords_20": 29, + "gm4_metallurgy:shamir/ender_bolt": 105, + "gm4_metallurgy:shamir/gemini": 106, + "gm4_metallurgy:shamir/musical": 108, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_orb_of_ankou:shamir/corripio": 116, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_animi_shamir:shamir/animi": 124 + }, + "jungle_sign": { + "gm4_trapped_signs:item/trapped_jungle_sign": 1, + "gm4_trapped_signs:item/secret_trapped_jungle_sign": 2 + }, + "ladder": { + "gm4_vertical_rails:gui/advancement/vertical_rails": 1 + }, + "lava_bucket": { + "gm4_metallurgy:gui/advancement/metallurgy_overheat_cast": 1, + "gm4_metallurgy:shamir/infinatas": 100 + }, + "leather_boots": { + "gm4_boots_of_ostara:item/boots_of_ostara": 1, + "gm4_scuba_gear:item/flippers": 2, + "gm4_boots_of_ostara:gui/advancement/boots_of_ostara": 3, + "gm4_boots_of_ostara:item/flippers_of_ostara": 4, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_desire_lines:shamir/celaro": 118, + "gm4_vecto_shamir:shamir/vecto": 121, + "gm4_metallurgy:shamir/vibro": 123, + "gm4_animi_shamir:shamir/animi": 124 + }, + "leather_chestplate": { + "gm4_combat_expanded:gui/advancement/combat_expanded_identify": 1, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_iacio_shamir:shamir/iacio": 122, + "gm4_animi_shamir:shamir/animi": 124 + }, + "leather_helmet": { + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "leather_leggings": { + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "lectern": { + "gm4_book_binders:gui/advancement/book_binders": 0 + }, + "lingering_potion": { + "gm4_lightning_in_a_bottle:item/lingering_lightning_in_a_bottle": 4 + }, + "lodestone": { + "gm4_teleportation_anchors:gui/advancement/teleportation_anchor": 1 + }, + "mangrove_sign": { + "gm4_trapped_signs:item/trapped_mangrove_sign": 1, + "gm4_trapped_signs:item/secret_trapped_mangrove_sign": 2 + }, + "milk_bucket": { + "gm4_metallurgy:shamir/infinatas": 100 + }, + "minecart": { + "gm4_ziprails:gui/advancement/ziprails": 1 + }, + "name_tag": { + "gm4_holographic_tags:gui/advancement/holographic_tags": 1 + }, + "nether_gold_ore": { + "gm4_smelteries:block/ore_display/nether_gold_ore": 1 + }, + "nether_star": { + "gm4_orb_of_ankou:gui/advancement/orb_of_ankou_all_pneumas": 200 + }, + "netherite_axe": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/arborenda": 112, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_boots": { + "gm4_end_fishing:item/end_city_armor_1": 10, + "gm4_end_fishing:item/end_city_armor_2": 11, + "gm4_end_fishing:item/end_city_armor_3": 12, + "gm4_end_fishing:item/end_city_armor_4": 13, + "gm4_end_fishing:item/end_city_armor_5": 14, + "gm4_end_fishing:item/end_city_armor_6": 15, + "gm4_end_fishing:item/end_city_armor_7": 16, + "gm4_end_fishing:item/end_city_armor_8": 17, + "gm4_end_fishing:item/end_city_armor_9": 18, + "gm4_end_fishing:item/end_city_armor_10": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_desire_lines:shamir/celaro": 118, + "gm4_vecto_shamir:shamir/vecto": 121, + "gm4_metallurgy:shamir/vibro": 123, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_chestplate": { + "gm4_end_fishing:item/end_city_armor_1": 10, + "gm4_end_fishing:item/end_city_armor_2": 11, + "gm4_end_fishing:item/end_city_armor_3": 12, + "gm4_end_fishing:item/end_city_armor_4": 13, + "gm4_end_fishing:item/end_city_armor_5": 14, + "gm4_end_fishing:item/end_city_armor_6": 15, + "gm4_end_fishing:item/end_city_armor_7": 16, + "gm4_end_fishing:item/end_city_armor_8": 17, + "gm4_end_fishing:item/end_city_armor_9": 18, + "gm4_end_fishing:item/end_city_armor_10": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_iacio_shamir:shamir/iacio": 122, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_helmet": { + "gm4_end_fishing:item/end_city_armor_1": 10, + "gm4_end_fishing:item/end_city_armor_2": 11, + "gm4_end_fishing:item/end_city_armor_3": 12, + "gm4_end_fishing:item/end_city_armor_4": 13, + "gm4_end_fishing:item/end_city_armor_5": 14, + "gm4_end_fishing:item/end_city_armor_6": 15, + "gm4_end_fishing:item/end_city_armor_7": 16, + "gm4_end_fishing:item/end_city_armor_8": 17, + "gm4_end_fishing:item/end_city_armor_9": 18, + "gm4_end_fishing:item/end_city_armor_10": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_hoe": { + "gm4_metallurgy:shamir/gemini": 109, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_leggings": { + "gm4_end_fishing:item/end_city_armor_1": 10, + "gm4_end_fishing:item/end_city_armor_2": 11, + "gm4_end_fishing:item/end_city_armor_3": 12, + "gm4_end_fishing:item/end_city_armor_4": 13, + "gm4_end_fishing:item/end_city_armor_5": 14, + "gm4_end_fishing:item/end_city_armor_6": 15, + "gm4_end_fishing:item/end_city_armor_7": 16, + "gm4_end_fishing:item/end_city_armor_8": 17, + "gm4_end_fishing:item/end_city_armor_9": 18, + "gm4_end_fishing:item/end_city_armor_10": 19, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_pickaxe": { + "gm4_end_fishing:item/end_city_tools_1": 10, + "gm4_end_fishing:item/end_city_tools_2": 11, + "gm4_end_fishing:item/end_city_tools_3": 12, + "gm4_end_fishing:item/end_city_tools_4": 13, + "gm4_end_fishing:item/end_city_tools_5": 14, + "gm4_end_fishing:item/end_city_tools_6": 15, + "gm4_end_fishing:item/end_city_tools_7": 16, + "gm4_end_fishing:item/end_city_tools_8": 17, + "gm4_end_fishing:item/end_city_tools_9": 18, + "gm4_end_fishing:item/end_city_tools_10": 19, + "gm4_metallurgy:shamir/forterra": 107, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_shovel": { + "gm4_end_fishing:item/end_city_tools_1": 10, + "gm4_end_fishing:item/end_city_tools_2": 11, + "gm4_end_fishing:item/end_city_tools_3": 12, + "gm4_end_fishing:item/end_city_tools_4": 13, + "gm4_end_fishing:item/end_city_tools_5": 14, + "gm4_end_fishing:item/end_city_tools_6": 15, + "gm4_end_fishing:item/end_city_tools_7": 16, + "gm4_end_fishing:item/end_city_tools_8": 17, + "gm4_end_fishing:item/end_city_tools_9": 18, + "gm4_end_fishing:item/end_city_tools_10": 19, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherite_sword": { + "gm4_end_fishing:item/end_city_swords_1": 10, + "gm4_end_fishing:item/end_city_swords_2": 11, + "gm4_end_fishing:item/end_city_swords_3": 12, + "gm4_end_fishing:item/end_city_swords_4": 13, + "gm4_end_fishing:item/end_city_swords_5": 14, + "gm4_end_fishing:item/end_city_swords_6": 15, + "gm4_end_fishing:item/end_city_swords_7": 16, + "gm4_end_fishing:item/end_city_swords_8": 17, + "gm4_end_fishing:item/end_city_swords_9": 18, + "gm4_end_fishing:item/end_city_swords_10": 19, + "gm4_end_fishing:item/end_city_swords_11": 20, + "gm4_end_fishing:item/end_city_swords_12": 21, + "gm4_end_fishing:item/end_city_swords_13": 22, + "gm4_end_fishing:item/end_city_swords_14": 23, + "gm4_end_fishing:item/end_city_swords_15": 24, + "gm4_end_fishing:item/end_city_swords_16": 25, + "gm4_end_fishing:item/end_city_swords_17": 26, + "gm4_end_fishing:item/end_city_swords_18": 27, + "gm4_end_fishing:item/end_city_swords_19": 28, + "gm4_end_fishing:item/end_city_swords_20": 29, + "gm4_metallurgy:shamir/ender_bolt": 105, + "gm4_metallurgy:shamir/gemini": 106, + "gm4_metallurgy:shamir/musical": 108, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_orb_of_ankou:shamir/corripio": 116, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_animi_shamir:shamir/animi": 124 + }, + "netherrack": { + "gm4_tnt_landmines:entity/tnt_landmine_netherrack": 46 + }, + "oak_planks": { + "gm4_desire_lines:gui/advancement/desire_lines_8000": 1 + }, + "oak_sapling": { + "gm4_apple_trees:item/apple_tree_sapling": 4 + }, + "oak_sign": { + "gm4_trapped_signs:item/trapped_oak_sign": 1, + "gm4_trapped_signs:item/secret_trapped_oak_sign": 2, + "gm4_trapped_signs:guidebook_icon/trapped_signs": 3 + }, + "obsidian": { + "gm4_metallurgy:item/slightly_damaged_obsidian": 1 + }, + "orange_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/orange": 300 + }, + "oxidized_cut_copper": { + "gm4_tinkering_compressors:block/tinkering_compressor_plate": 1 + }, + "paper": { + "gm4_book_binders:item/enchanted_page": 1, + "gm4_book_binders:gui/advancement/book_binders_debind": 2 + }, + "phantom_membrane": { + "gm4_midnight_menaces:guidebook_icon/enlarging_phantoms": 1 + }, + "pink_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/pink": 300 + }, + "piston": { + "gm4_forming_press:block/forming_press": 1, + "gm4_tunnel_bores:gui/advancement/tunnel_bores": 2, + "gm4_block_compressors:gui/advancement/block_compressors": 3, + "gm4_block_compressors:guidebook_icon/block_compressors": 4, + "gm4_tunnel_bores:guidebook_icon/tunnel_bores": 5, + "gm4_forming_press:block/forming_press_side": 6, + "gm4_forming_press:block/forming_press_down": 7 + }, + "player_head": { + "gm4_ender_hoppers:block/ender_hopper": 1, + "gm4_enderman_support_class:guidebook_icon/enderman_support_class": 2, + "gm4_enderman_support_class:gui/advancement/enderman_support_class": 3, + "gm4_heart_canisters:gui/advancement/heart_canisters_tier_1": 4, + "gm4_heart_canisters:gui/advancement/heart_canisters_tier_2": 5, + "gm4_heart_canisters:gui/advancement/heart_canisters_max": 6, + "gm4_heart_canisters:item/heart_canister_tier_1": 7, + "gm4_heart_canisters:item/heart_canister_tier_2": 8, + "gm4_scuba_gear:item/scuba_helmet": 9, + "gm4_heart_canisters:guidebook_icon/heart_canisters": 10, + "gm4_zauber_cauldrons:item/crystal/speed": 12, + "gm4_zauber_cauldrons:item/crystal/regeneration": 13, + "gm4_end_fishing:item/enderpuff": 14, + "gm4_tinkering_compressors:gui/advancement/tinkering_compressors": 15, + "gm4_metallurgy:item/lump/bismutite": 17, + "gm4_metallurgy:item/lump/baryte": 19, + "gm4_metallurgy:item/lump/thorianite": 20, + "gm4_metallurgy:item/lump/bauxite": 21, + "gm4_metallurgy:item/mundane_band": 22, + "gm4_metallurgy:block/mould/cool_empty": 23, + "gm4_metallurgy:block/mould/hot_empty": 24, + "gm4_metallurgy:block/mould/cool_metal": 25, + "gm4_metallurgy:block/mould/hot_metal": 26, + "gm4_relocators:item/relocator_empty": 27, + "gm4_ender_hoppers:block/ender_hopper_side": 28, + "gm4_ender_hoppers:block/ender_hopper_minecart": 29, + "gm4_tnt_landmines:item/tnt_landmine": 40, + "gm4_tnt_landmines:item/tnt_landmine_grass": 41, + "gm4_tnt_landmines:item/tnt_landmine_dirt": 42, + "gm4_tnt_landmines:item/tnt_landmine_stone": 43, + "gm4_tnt_landmines:item/tnt_landmine_stone_bricks": 44, + "gm4_tnt_landmines:item/tnt_landmine_crafting_table": 45, + "gm4_tnt_landmines:item/tnt_landmine_netherrack": 46, + "gm4_tnt_landmines:item/tnt_landmine_invisible": 47, + "gm4_scuba_gear:gui/advancement/scuba_gear": 48, + "gm4_metallurgy:gui/advancement/metallurgy_blast_ore": 49, + "gm4_metallurgy:gui/advancement/metallurgy_cast": 50, + "gm4_relocators:gui/advancement/relocators": 51, + "gm4_zauber_cauldrons:item/crystal/instant_damage": 54, + "gm4_zauber_cauldrons:item/crystal/instant_health": 55, + "gm4_zauber_cauldrons:item/crystal/jump_boost": 56, + "gm4_zauber_cauldrons:item/crystal/poison": 57, + "gm4_zauber_cauldrons:item/crystal/strength": 58, + "gm4_relocators:item/relocator_full": 61, + "gm4_metallurgy:shamir/infinitas": 100, + "gm4_metallurgy:shamir/sensus": 101, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/ender_bolt": 105, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_metallurgy:shamir/forterra": 107, + "gm4_metallurgy:shamir/musical": 108, + "gm4_metallurgy:shamir/gemini": 109, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/arborenda": 112, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_fulcio_shamir:shamir/fulcio": 115, + "gm4_orb_of_ankou:shamir/corripio": 116, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_desire_lines:shamir/celaro": 118, + "gm4_vigere_shamir:shamir/vigere": 119, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_vecto_shamir:shamir/vecto": 121, + "gm4_iacio_shamir:shamir/iacio": 122, + "gm4_metallurgy:shamir/vibro": 123, + "gm4_animi_shamir:shamir/animi": 124, + "gm4_custom_crafters:item/custom_crafter": 128, + "gm4_forming_press:item/forming_press": 129, + "gm4_block_compressors:block/block_compressor_full": 130, + "gm4_ender_hoppers:item/ender_hopper": 131, + "gm4_liquid_tanks:item/liquid_tank": 132, + "gm4_smelteries:item/smeltery": 133, + "gm4_enchantment_extractors:item/enchantment_extractor": 134, + "gm4_disassemblers:item/disassembler": 135, + "gm4_tinkering_compressors:item/tinkering_compressor": 136, + "gm4_teleportation_anchors:item/teleportation_jammer": 138, + "gm4_teleportation_anchors:item/teleportation_anchor": 139, + "gm4_auto_crafting:item/auto_crafter": 140 + }, + "poisonous_potato": { + "gm4_chairs:gui/advancement/chairs_sit": 1 + }, + "poppy": { + "gm4_sweethearts:gui/advancement/sweethearts": 1, + "gm4_sweethearts:guidebook_icon/sweethearts": 2 }, "piston": { "gm4_forming_press:block/forming_press": 1, "gm4_tunnel_bores:gui/advancement/tunnel_bores": 2, "gm4_block_compressors:gui/advancement/block_compressors": 3, - "gm4_block_compressors:guidebook_icon/block_compressors": 4, - "gm4_tunnel_bores:guidebook_icon/tunnel_bores": 5, "gm4_forming_press:block/forming_press_side": 6, "gm4_forming_press:block/forming_press_down": 7 }, "player_head": { - "gm4_ender_hoppers:block/ender_hopper": 1, - "gm4_enderman_support_class:guidebook_icon/enderman_support_class": 2, "gm4_enderman_support_class:gui/advancement/enderman_support_class": 3, "gm4_heart_canisters:gui/advancement/heart_canisters_tier_1": 4, "gm4_heart_canisters:gui/advancement/heart_canisters_tier_2": 5, @@ -1358,6 +2286,9 @@ "powder_snow_bucket": { "gm4_metallurgy:shamir/infinitas": 100 }, + "powder_snow_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, "prismarine_shard": { "gm4_zauber_cauldrons:item/enchanted_prismarine_shard": 1 }, @@ -1380,6 +2311,19 @@ "rabbit_foot": { "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_rabbit": 1 }, + "pufferfish_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "purpur_block": { + "gm4_lightning_in_a_bottle:gui/advancement/lightning_in_a_bottle_shulker": 1, + "gm4_block_compressors:block/block_compressor_plate": 2 + }, + "purpur_pillar": { + "gm4_teleportation_anchors:block/teleportation_jammer": 1 + }, + "rabbit_foot": { + "gm4_zauber_cauldrons:gui/advancement/zauber_cauldrons_rabbit": 1 + }, "rabbit_hide": { "gm4_bat_grenades:item/bat_leather": 1 }, @@ -1450,6 +2394,66 @@ "slime_ball": { "gm4_midnight_menaces:guidebook_icon/slime_fests": 1 }, + "raw_copper": { + "gm4_smelteries:block/ore_display/raw_copper": 1 + }, + "raw_copper_block": { + "gm4_smelteries:block/ore_display/raw_copper": 1 + }, + "raw_gold": { + "gm4_smelteries:block/ore_display/raw_gold": 1 + }, + "raw_gold_block": { + "gm4_smelteries:block/ore_display/raw_gold": 1 + }, + "raw_iron": { + "gm4_smelteries:block/ore_display/raw_iron": 1 + }, + "raw_iron_block": { + "gm4_smelteries:block/ore_display/raw_iron": 1 + }, + "recovery_compass": { + "gm4_animi_shamir:item/animi_shamir": 124 + }, + "red_mushroom": { + "gm4_shroomites:gui/advancement/shroomites": 1 + }, + "red_sand": { + "gm4_smelteries:block/ore_display/red_sand": 1 + }, + "saddle": { + "gm4_pig_tractors:gui/advancement/pig_tractors": 1, + "gm4_chairs:guidebook_icon/chairs": 2 + }, + "salmon_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "sand": { + "gm4_smelteries:block/ore_display/sand": 1, + "gm4_midnight_menaces:guidebook_icon/sandy_husks": 2 + }, + "sandstone": { + "gm4_cooler_caves:guidebook_icon/cooler_caves": 1 + }, + "shears": { + "gm4_tnt_landmines:gui/advancement/tnt_landmines": 1, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_animi_shamir:shamir/animi": 124 + }, + "shield": { + "gm4_combat_expanded:gui/advancement/combat_expanded_guardian": 3, + "gm4_vigere_shamir:shamir/vigere": 119, + "gm4_animi_shamir:shamir/animi": 124 + }, + "shulker_box": { + "gm4_relocators:guidebook_icon/relocators": 1 + }, + "skeleton_skull": { + "gm4_phantom_scarecrows:guidebook_icon/phantom_scarecrows": 1 + }, + "slime_ball": { + "gm4_midnight_menaces:guidebook_icon/slime_fests": 1 + }, "snowball": {}, "spawner": { "gm4_spawner_minecarts:gui/advancement/spawner_minecarts": 1, @@ -1645,6 +2649,174 @@ "writable_book": { "gm4_better_armour_stands:guidebook_icon/better_armour_stands": 1 }, + "spruce_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_spruce_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_spruce_hanging_sign": 2 + }, + "spruce_sign": { + "gm4_trapped_signs:item/trapped_spruce_sign": 1, + "gm4_trapped_signs:item/secret_trapped_spruce_sign": 2 + }, + "spyglass": { + "gm4_animi_shamir:shamir/animi": 124 + }, + "stick": { + "gm4_mountaineering:item/poles": 1 + }, + "stone": { + "gm4_tinkering_compressors:block/tinkering_compressor": 0, + "gm4_block_compressors:block/block_compressor": 1, + "gm4_tnt_landmines:entity/tnt_landmine_stone": 43 + }, + "stone_axe": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/arborenda": 112, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "stone_bricks": { + "gm4_tnt_landmines:entity/tnt_landmine_stone_bricks": 44 + }, + "stone_hoe": { + "gm4_metallurgy:shamir/gemini": 109, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "stone_pickaxe": { + "gm4_metallurgy:shamir/forterra": 107, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "stone_shovel": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "stone_sword": { + "gm4_tower_structures:item/pirate_sword": 2, + "gm4_metallurgy:shamir/ender_bolt": 105, + "gm4_metallurgy:shamir/gemini": 106, + "gm4_metallurgy:shamir/musical": 108, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_orb_of_ankou:shamir/corripio": 116, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_animi_shamir:shamir/animi": 124 + }, + "structure_void": { + "gm4_zauber_cauldrons:block/zauber_cauldron": 0 + }, + "tadpole_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "tipped_arrow": { + "gm4_mysterious_midnights:guidebook_icon/tipped_skeletons": 1 + }, + "tnt": { + "gm4_disassemblers:block/disassembler": 1, + "gm4_disassemblers:gui/advancement/disassemblers": 2, + "gm4_disassemblers:guidebook_icon/disassemblers": 3, + "gm4_tnt_landmines:guidebook_icon/tnt_landmines": 4, + "gm4_disassemblers:block/disassembler_side": 5, + "gm4_disassemblers:block/disassembler_down": 6, + "gm4_tnt_landmines:entity/tnt_landmine": 40 + }, + "trident": { + "gm4_metallurgy:shamir/ender_bolt": 105, + "gm4_metallurgy:shamir/gemini": 106, + "gm4_metallurgy:shamir/musical": 108, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_animi_shamir:shamir/animi": 124 + }, + "tripwire_hook": { + "gm4_crossbow_cartridges:gui/advancement/crossbow_cartridges_string": 1 + }, + "tropical_fish_bucket": { + "gm4_crossbow_cartridges:gui/advancement/crossbow_cartridges_bucket": 1, + "gm4_metallurgy:shamir/infinitas": 100 + }, + "turtle_helmet": { + "gm4_tower_structures:item/pirate_turtle_helmet": 1, + "gm4_weighted_armour:shamir/helious": 103, + "gm4_metallurgy:shamir/defuse": 106, + "gm4_animi_shamir:shamir/animi": 124 + }, + "warped_fungus_on_a_stick": { + "gm4_animi_shamir:shamir/animi": 124 + }, + "warped_hanging_sign": { + "gm4_trapped_signs:item/secret_trapped_warped_hanging_sign": 1, + "gm4_trapped_signs:item/trapped_warped_hanging_sign": 2 + }, + "warped_sign": { + "gm4_trapped_signs:item/trapped_warped_sign": 1, + "gm4_trapped_signs:item/secret_trapped_warped_sign": 2 + }, + "water_bucket": { + "gm4_metallurgy:shamir/infinitas": 100 + }, + "wheat": { + "gm4_mysterious_midnights:guidebook_icon/harvest_moons": 1 + }, + "white_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/white": 300 + }, + "wooden_axe": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/arborenda": 112, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "wooden_hoe": { + "gm4_metallurgy:shamir/gemini": 109, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "wooden_pickaxe": { + "gm4_metallurgy:shamir/forterra": 107, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "wooden_shovel": { + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_metallurgy:shamir/moneo": 113, + "gm4_lumos_shamir:shamir/lumos": 114, + "gm4_audere_shamir:shamir/audere": 120, + "gm4_animi_shamir:shamir/animi": 124 + }, + "wooden_sword": { + "gm4_metallurgy:shamir/ender_bolt": 105, + "gm4_metallurgy:shamir/gemini": 106, + "gm4_metallurgy:shamir/musical": 108, + "gm4_metallurgy:shamir/hypexperia": 110, + "gm4_metallurgy:shamir/tinker": 111, + "gm4_orb_of_ankou:shamir/corripio": 116, + "gm4_percurro_shamir:shamir/percurro": 117, + "gm4_animi_shamir:shamir/animi": 124 + }, + "writable_book": { + "gm4_better_armour_stands:guidebook_icon/better_armour_stands": 1 + }, "written_book": { "gm4_guidebook:item/guidebook": 1 }, diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index 6fbcd289e4..736d3e72b6 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -993,6 +993,7 @@ "gm4_potion_liquids:liquids/harming", "gm4_potion_liquids:liquids/healing", "gm4_potion_liquids:liquids/leaping", + "gm4_potion_liquids:liquids/harming", "gm4_potion_liquids:liquids/poison", "gm4_potion_liquids:liquids/regeneration", "gm4_potion_liquids:liquids/strength", diff --git a/gm4_auto_crafting/beet.yaml b/gm4_auto_crafting/beet.yaml index 8fdef2e530..905a9295a7 100644 --- a/gm4_auto_crafting/beet.yaml +++ b/gm4_auto_crafting/beet.yaml @@ -15,6 +15,9 @@ data_pack: resource_pack: load: . +resource_pack: + load: . + pipeline: - gm4_auto_crafting.generate - gm4.plugins.extend.module diff --git a/gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_bottom.png b/gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..869e547308fb55d855b1c91c0a17a1afc11b5831 GIT binary patch literal 3184 zcmV-$43G1PP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0004-Nkl8<$5QM)N>THSvpfB4(A-JP+dw%(=_o?Yt7L2)OAfW7d6Hpr9?`Jsw#kcfwd6id5-rUr4;+F zV{$Hny!Wxt(DwkCnMsz?3t($4Yat>i&+~W}MxC7FI*w%5apVQiT9b|wK%raEB<&9H z^m;gaKPwgI_ulh)KJ!!T+Lp~`1HkY1cbs!GgQmfI55VX7%<1io+wHb^ToeWSu8TNT zRs1@g?iz#$6w}8=Q9LjSxNTXIrKZXA9IA@r@rd_6(hcVzFc7zq{WR<4a#?J~T8q{? ziW*k`_v?$*bsRCqJSeP`S}?2Yntj(rF{PCE5dvuFdzg(gIma*z3l9VqyS81de3fc2 z^gWYv?AkWYsI|sg8<_>BA+ppkYayaxc5VCMhg5@b&H&t;IOq8D@$uj9oPOgF{{{f4 W?Dd&m5Ft?j0000pPPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005RNklO0bWyRXA;SxYY5EpDz3=y(z9-4~c>i;nrk~!Q z9GPoOx%N{^PE0NI>W@hTh;(f)6@YR5{~f} zz^mHw@N_*)+@ted^J{F;Gh7qq_>DGz+}!$&?cCgwZL`jBO%edVvF%w}ZS4a1ihH^R zQ2qJM>#f&YA2$6Cb6--&>n(yd<<+`kF6Z@@oqKz|HvpuRve^Wn%hJ;SOtjVjJODfG zb~lQ`Ff_&#MWMA`WSO1JX0t_>k$*gycv4F1re=|4fl>hG^SL!s!x-}b^y2vP;sOAj z#5rGN*+W@YRmC~)Mv)MLR4L`tr?sBTtE)WE?Ha!C4+aBc40)b*D2hS|5h(RgmX`K? z-`Z#~3hdE^BKG1q-ruLy!!QJ3j2Vqal&2d-pPPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0005YNklR1)F~KoLg$ykSc}VD*C2NL^9WwR7i%KJt4b-?+;y08tn+fD!QlZvecq z^3(HTj3n_L#cj-XsrR50Cv0G zf#Y;Koh-}JG}T%saav>do;5elYK-;!SO(y`O-|x3tEz7djMUlkupT%Nb6pS$` zWlf0RQB)Hm&-3|wzI=R~Cy7aYQ;V+W2_e2-T>%KjgJ55t5C9SorLP2JFE;bwv0jyRl&N)FZKP;6X>S+KK1?CWf Ss~Xq<0000=ES4 zz|hXkz|h0X!0>l514E-414G>k28P#>3=Gz73=HDWm45vW0jj;7>FgZf>Flf!P?VpR znUl)Epm9DqA))2~1B;KtoY~<)B2V5e5fGGIdZ4bcQIO-Hg5k~`2h4BiwlJ#yDC1r9 zZId4J%ZAN+mMmcLsAou;xM+ex`hwXJ4LSQtIHFmO_%&?^b$Fw+fVnY8c*3s|j@!&2 zp=5_QPnwh#%n}Rjt6Z4L(^PLamrHNQikBJIlE9F+6Y{<;4Xm_aR z4;LF-w=)mV8C8yrPm0*uWT#6?9GNAMbn1M=xpPSgH(o|giVAFcQ`vF*K!fgn28mxh zS6Fy>7<$i`Wvz(jp9%D)Zh%jStFp4Prka|miHWU^jhmB`i;GKeU|@N9c}7Ntsj2D2 zi4$8}TlMwz6%`c)1O(d8Giw4hau#?*7BevL9RguSQ4OyKpx`7=7sn8Z%c5Ned7BI* z-0aOZXm64JQ`Wr6X*FkhR%g}HmWn*j9(P{}7l)Y#I4xeXSv7y)d;dx9fW!@@bFA?U z>WUT<8777_U1Rd{oO&vR>7}sP)pPPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002fNkl9T9+11yhR!0ek@9h{OSF zPFGcxkX_fsjq_t4luT%?b)G$HOfBF;G2PD5T5Dcb=JYTOoSxQLr%3W~IzN69{EYt# z5~Fh8BzKy7l6-w?U%|VRdy>!qWFHj#r`h~rZZyQIy#d&7kITd7{CIs_07zr4BZ_sF e#~XmL_B{YrM`Nhq4KfY@0000pPPiaF#P*7-ZbZ>KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0002^Nkl;aYbl!e)86|M-zFpcRhT60H8{1Ys^%qzTNmka>FbKzkj>+yRDetqON760Ar@7jXjrbvT?K>%Rd07$0;KvyyVfQJEKj=HewRX#p&4~Y$z2!((TF1rEK zNV9-vaEXL}0n%K6V8bOqM4C4yr;xmDHZJ%e1HgZQMfjy5F|G1!Tt4uY9GHUN3G8wF zB0gdGMLb*YL1I*dP$Ffh7R6+!n!;rGGAZ6d2$rh|%`yOB(wPj9!2p>&3Y`bCahZol z`rec=AMHh?@wpbcjQJ}mdS*=ih;Z!4x33N<<4$bV`K^19bsjRtpf92{p}&Vl~mG z26)8^BPqeC2BENh{e09 zRxWu8j2Ib(S(n0Sh4^?(LLnHg!nBYIM#4h`xWZR17lSMjM=XK3FcqeAAgUk7pG$?r z95I!}Vsm*SE|JSu8CnCkEN0+J?g>m|^Y=bO+e>z9v&!jRTmWT@b z`5{z@&SFrxJjkCX7IFQ>Y>C~G1KA`;>ojtyTm>l{Y=~IIxHBGyjWFqKh{_c)8B{-! zpNJ}gIet_w#Fan@-CxY%G3+j!&`fd_Cdag>Cd(m@cs8wjD+)<_QfnVj$gO)s4QVih zSg!$I_60k(smAsUfw8W85JM%}Oh|(SN%0H{{#DoF)10BkXFuk^#-1rdR05(sQ5g&> zlNU|5wI?br(CKzItJTv<c1`BZ`<|%e(5kM<3B9iXgQzUSN6R+c^~q} z`${mXKs7>Cj0jkKnltryb{$aR!NHLlR3cX(0&M;2S1943!5jvU!=W;L@fI;o<6!5& zgEt&7m{_H#CK^Q*zhTEtL`)zP;)l8z(n2Bl!hd3`PN+9Q^Mvh09#kxsWIc_=nokhV zmEC3n+8Pov32kc^qi6>k2ecRlC8$OTX$5j6Bt>Xym6T5#S2|b{ry3Y3*CC475IKHe zV8o7Ra5;RM(-Ei0I0q!>38cfwM5J|{M5!Sd5#SZJI&)AtSQ7^*h#wDlD~7E72sfXk zn`lpTc||&5{+ddz6)@OPBO(2X+X>SKK?L)Qf@^UyWz z%xRJA!!&5`P}mh3>(G(BBjPh1@zSLaYG<5R#ksveS(yuvT&DakLg#GPc4dCl{O0P0 zbN4FHhQ5fHrkjG{-tXgH?B{)+{i5rIpJ(3Y)em-lw*9oqaPZH;r-suif4ts<^qkpr zv1`+!LCyBcIU_$Gs_FPi+Ew-_?~+fKnK=-jdUr$r`LjJn)#Heb>yDl{viZu*EqMzA z&3?`Pm7WzduhA~gxL_<_sW%V)s#(#1qWP;k0;_JA6^58A2~i1CmDidwW~Ag8vTsyG zRhY6yZk9C+mYEx?ecw3Jy~(3UpX+n$FJG5-=tpR2o@)lKK8kNGPj-jbrWh1&4oW*t zXKdKp^-v$UAQO_9TN}uJuPl&JMR=?Z!ye?T!5-->o~! zzkBrDw1TbfYaeepkgbdiu1hExkgY8+NB!y0-ILjtHGPNU6elZ61r0rU3#%^-yKe6J z2lKYE0GpXq>#6oodh}nvReXQj(emtH%epI9mmS=ZVQA_eHdnJ%9|PYmsb5qx|0Jib zoMCFhE|BlFCRrMPmL-fBk>!C(J+FJ3@J{44$uGeybU{JX+XvrE3^Y{-VS4!dvifs| z`lu@d2jPyTyfx5XkF>qF1$UbTX;{ya*8Sd{XKx9M;GHdc=$jhjY;)!1s$BtTQiE~X z)b#d9Qu9#jJGxWq?hElg=SODNJziXDK2>$Gu<-f#TK130;)jNJxFc^Gm3MB`kZY>v z9o<*^VK*(kqh(t4t!1T)@;2r-Ce$Ru2Rym0jj77M4|B1CglW`HiZ;_yqG@YbyIYWd zxGHqP$qetbGD~6p;j)E25BGdk+aGQ=dI?s2ud3czQ96{B@B`S=ESp}fGHwA=4FNH& zhJ2SZ$4ndQcz*Yz^X0_{lG;*fUdKs_Kn1wb!ib zo+I71e2>rZoEr084ZlplzSG&feBUv0)u7bS5pglYa)FJWUt)Sxe)wfn8L|H=DD7gG zZ?v3fc%Ji2bL}jJOL6(iPc1&%ud3M{-9OAXnz;?oF#sj`kSxZuAkcXx9gj8D*tLI9DHro{qk4qWeNIY^XH8mlP)9u z+7Q>+_=D2>RbEpdDs1)0e9Zpt1JR0t*pwwFk{_GC1KxN$pkE(#^W-izOI@>3nCtHH zNsGH>M{kwA(ZnqOI(w+(LEqL5d%Vvro~|%2IsJ0y?#1tZrksBH4;8whdp|)Iwz2RU zcxdIz>b~}is;PtIYhT7D73R8ZO8j!h!-4MRLuY2b5z roNk}m@6rQ*zwY`!VcweMVj;b?tCM_kepoK?*F<<|M9Aq^lDGX6px-3; literal 0 HcmV?d00001 diff --git a/gm4_ender_hoppers/beet.yaml b/gm4_ender_hoppers/beet.yaml index 385770e2d2..3649d82149 100644 --- a/gm4_ender_hoppers/beet.yaml +++ b/gm4_ender_hoppers/beet.yaml @@ -13,6 +13,9 @@ data_pack: resource_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines diff --git a/gm4_liquid_minecarts/beet.yaml b/gm4_liquid_minecarts/beet.yaml index 1c1bbbcca5..19ed31e7d2 100644 --- a/gm4_liquid_minecarts/beet.yaml +++ b/gm4_liquid_minecarts/beet.yaml @@ -13,6 +13,9 @@ data_pack: resource_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines diff --git a/gm4_tunnel_bores/beet.yaml b/gm4_tunnel_bores/beet.yaml index 6c16c9ffe2..246350fc64 100644 --- a/gm4_tunnel_bores/beet.yaml +++ b/gm4_tunnel_bores/beet.yaml @@ -13,6 +13,9 @@ data_pack: resource_pack: load: . +resource_pack: + load: . + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines diff --git a/lib_custom_crafters/beet.yaml b/lib_custom_crafters/beet.yaml index ce60474c5d..7cbcf0736e 100644 --- a/lib_custom_crafters/beet.yaml +++ b/lib_custom_crafters/beet.yaml @@ -19,6 +19,9 @@ require: - beet.contrib.model_merging - beet.contrib.babelbox +require: + - gm4.plugins.resource_pack + pipeline: - lib_custom_crafters.generate_item_tags - gm4.plugins.module.gm4_root_advancement From d9d18065562f7806a03b8d2056fda041cd245c3c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 6 Mar 2024 16:18:14 -0500 Subject: [PATCH 02/76] Replace machine block Armor Stands with Display Entities --- gm4_liquid_tanks/beet.yaml | 3 +++ .../functions/machine/create.mcfunction | 2 +- .../functions/machine/destroy.mcfunction | 4 ++++ .../functions/machine/rotate/down.mcfunction | 4 ++-- .../functions/machine/rotate/east.mcfunction | 4 ++-- .../functions/machine/rotate/north.mcfunction | 4 ++-- .../functions/machine/rotate/south.mcfunction | 5 +++-- .../functions/machine/rotate/west.mcfunction | 5 +++-- .../functions/upgrade_paths/2.5.mcfunction | 1 + .../2.5/entity_replacement.mcfunction | 18 ++++++++++++++++++ 10 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index cfacc3e4ea..e3b98a606c 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -8,6 +8,9 @@ data_pack: resource_pack: load: . +require: + - bolt + pipeline: - gm4.plugins.extend.module - gm4.plugins.include.lib_machines diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/create.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/create.mcfunction index 4aa815a6c3..b20a0a979a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/create.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/create.mcfunction @@ -16,5 +16,5 @@ execute as @e[type=marker,tag=gm4_new_machine,limit=1] run function gm4_liquid_t # mark block as placed playsound block.end_portal_frame.fill block @a[distance=..30] ~ ~ ~ 1 0.5 scoreboard players set $placed_block gm4_machine_data 1 -scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 1 +scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 tag @e[distance=..2] remove gm4_new_machine diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/destroy.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/destroy.mcfunction index d11009958b..642560470a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/destroy.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/destroy.mcfunction @@ -6,6 +6,10 @@ # kill entities related to machine block execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,distance=..0.01] execute positioned ~ ~-0.75 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.3,limit=1] + +execute positioned ~ ~0.4 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,limit=1,distance=..0.01] +execute positioned ~ ~-0.75 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.3,limit=1] + execute positioned ~ ~0.5 ~ run kill @e[type=area_effect_cloud,distance=..0.5,tag=gm4_lt_util_block] execute store result score $dropped_item gm4_machine_data run kill @e[type=item,distance=..1,nbt={Age:0s,Item:{id:"minecraft:hopper",Count:1b,tag:{display:{}}}},limit=1,sort=nearest] kill @s diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction index 282d998a17..bd1460439a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction @@ -6,6 +6,6 @@ # place hopper setblock ~ ~ ~ hopper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","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_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}}],Rotation:[0.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction index d40490dbf2..ea8da2d675 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction @@ -6,6 +6,6 @@ # place hopper setblock ~ ~ ~ hopper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","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_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[-90.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[-90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction index ed47b6258e..6c359b9def 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction @@ -6,6 +6,6 @@ # place hopper setblock ~ ~ ~ hopper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","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_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[180.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[180.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction index fef4f2f962..089899cc2a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction @@ -6,6 +6,7 @@ # place hopper setblock ~ ~ ~ hopper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","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_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[0.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} + summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction index adeb55f6da..ace1db46e0 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction @@ -6,6 +6,7 @@ # place hopper setblock ~ ~ ~ hopper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","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_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1,CustomName:'"gm4_liquid_tank_stand"',ArmorItems:[{},{},{},{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank_side"}}],Rotation:[90.0f,0.0f]} +# summon display entity and marker entity +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} + summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5.mcfunction new file mode 100644 index 0000000000..ed2d478012 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5.mcfunction @@ -0,0 +1 @@ +execute as @e[type=marker,tag=gm4_liquid_tank,scores={gm4_entity_version=1}] at @s run function gm4_liquid_tanks:upgrade_paths/2.5/entity_replacement diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction new file mode 100644 index 0000000000..248fa11cda --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction @@ -0,0 +1,18 @@ +# @s = gm4_liquid_tank marker +# at center of block +# run by upgrade_paths/2.5 + +# replace primary armor stand with item display +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +data modify entity @e[type=item_display,limit=1,distance=..1,tag=gm4_new_machine] Rotation set from entity @e[type=armor_stand,limit=1,distance=..1,tag=gm4_liquid_tank_stand] Rotation +kill @e[type=armor_stand,limit=1,distance=..1,tag=gm4_liquid_tank_stand] +scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 +tag @e[tag=gm4_new_machine,distance=..1] remove gm4_new_machine + +# replace liquid armor stand with item display +execute at @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] positioned ~ ~1.15 ~ run summon item_display ~ ~ ~ {CustomName:'"gm4_liquid_tank_liquid_display"',Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_new_liquid"],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.83,0.83,0.83]},item_display:'head'} +data modify entity @e[type=item_display,tag=gm4_new_liquid,limit=1,distance=..1] item set from entity @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] ArmorItems[3] +kill @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] + + +scoreboard players set @s gm4_entity_version 2 From 8b0aa099928d607863c1a331fa16b938a5084080 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 6 Mar 2024 16:46:09 -0500 Subject: [PATCH 03/76] Item display offsets --- gm4_liquid_tanks/beet.yaml | 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 +- .../upgrade_paths/2.5/entity_replacement.mcfunction | 5 +++-- 7 files changed, 9 insertions(+), 8 deletions(-) diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index e3b98a606c..44839536e6 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -1,6 +1,6 @@ id: gm4_liquid_tanks name: Liquid Tanks -version: 2.4.X +version: 2.5.X data_pack: load: . diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction index bd1460439a..ddd400e3cf 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/down.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=down]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display entity and marker entity -summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction index ea8da2d675..42693f216e 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/east.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=east]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display entity and marker entity -summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[-90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[-90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[-90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction index 6c359b9def..c460c6b587 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/north.mcfunction @@ -7,5 +7,5 @@ setblock ~ ~ ~ hopper[facing=north]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display entity and marker entity -summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[180.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[180.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction index 089899cc2a..cff15767f7 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/south.mcfunction @@ -7,6 +7,6 @@ setblock ~ ~ ~ hopper[facing=south]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display entity and marker entity -summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[0.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction index ace1db46e0..cc167ae012 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/machine/rotate/west.mcfunction @@ -7,6 +7,6 @@ setblock ~ ~ ~ hopper[facing=west]{CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} # summon display entity and marker entity -summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[90.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:'head'} summon marker ~ ~ ~ {Tags:["gm4_liquid_tank","gm4_machine_marker","smithed.block","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank"',Rotation:[90.0f,0.0f]} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction index 248fa11cda..8bf0d21584 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/upgrade_paths/2.5/entity_replacement.mcfunction @@ -3,15 +3,16 @@ # run by upgrade_paths/2.5 # replace primary armor stand with item display -summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]}} +summon item_display ~ ~0.4 ~ {Tags:["gm4_liquid_tank_display","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],CustomName:'"gm4_liquid_tank_display"',item:{id:"glass",Count:1,tag:{CustomModelData:"block/liquid_tank"}},Rotation:[0.0f,0.0f],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.438,0.438,0.438]},item_display:head} data modify entity @e[type=item_display,limit=1,distance=..1,tag=gm4_new_machine] Rotation set from entity @e[type=armor_stand,limit=1,distance=..1,tag=gm4_liquid_tank_stand] Rotation kill @e[type=armor_stand,limit=1,distance=..1,tag=gm4_liquid_tank_stand] scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 tag @e[tag=gm4_new_machine,distance=..1] remove gm4_new_machine # replace liquid armor stand with item display -execute at @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] positioned ~ ~1.15 ~ run summon item_display ~ ~ ~ {CustomName:'"gm4_liquid_tank_liquid_display"',Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_new_liquid"],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.001f,0f],scale:[0.83,0.83,0.83]},item_display:'head'} +execute at @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] positioned ~ ~0.95 ~ run summon item_display ~ ~ ~ {CustomName:'"gm4_liquid_tank_liquid_display"',Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_new_liquid"],transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0f,0.2185f,0f],scale:[0.83,0.83,0.83]},item_display:head} data modify entity @e[type=item_display,tag=gm4_new_liquid,limit=1,distance=..1] item set from entity @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] ArmorItems[3] +tag @e[type=item_display,tag=gm4_new_liquid] remove gm4_new_liquid kill @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] From 8f8318d2dd45c5a3d430d1ba564bf5b9fe26beb0 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 6 Mar 2024 23:45:28 -0500 Subject: [PATCH 04/76] Adjust liquid display teleports --- .../data/gm4_liquid_tanks/functions/empty.mcfunction | 2 +- .../gm4_liquid_tanks/functions/liquid_value_update.mcfunction | 4 ++-- .../functions/teleport_display_down.mcfunction | 4 ++-- .../gm4_liquid_tanks/functions/teleport_display_up.mcfunction | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction index d498869d9a..d17b32eb2a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction @@ -2,7 +2,7 @@ #run from liquid_tanks:liquid_value_update scoreboard players set @s gm4_lt_value 0 -execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.5] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.5] data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "empty" function #gm4_liquid_tanks:remove_liquid_tags diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/liquid_value_update.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/liquid_value_update.mcfunction index eea442f7b6..f052dec812 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/liquid_value_update.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/liquid_value_update.mcfunction @@ -20,5 +20,5 @@ scoreboard players operation @s gm4_lt_disp_val = liquid_height_calc gm4_lt_disp scoreboard players operation liquid_height_calc gm4_lt_disp_val -= last_liquid_height gm4_lt_disp_val #teleport proper number of times. -execute if score liquid_height_calc gm4_lt_disp_val matches 1.. at @s positioned ~ ~-.5 ~ run function gm4_liquid_tanks:teleport_display_up -execute if score liquid_height_calc gm4_lt_disp_val matches ..-1 at @s positioned ~ ~-.5 ~ run function gm4_liquid_tanks:teleport_display_down +execute if score liquid_height_calc gm4_lt_disp_val matches 1.. at @s run function gm4_liquid_tanks:teleport_display_up +execute if score liquid_height_calc gm4_lt_disp_val matches ..-1 at @s run function gm4_liquid_tanks:teleport_display_down diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_down.mcfunction index 1d62becdb5..69e14560ab 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_down.mcfunction @@ -1,8 +1,8 @@ #@s = liquid tank #run from liquid_value_update -#teleport stand down -execute as @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~-.04 ~ +#teleport display down +execute as @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~-.04 ~ scoreboard players add liquid_height_calc gm4_lt_disp_val 1 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_up.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_up.mcfunction index 0d301d60bd..ff8a3b6d0a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_up.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/teleport_display_up.mcfunction @@ -1,8 +1,8 @@ #@s = liquid tank #run from liquid_value_update -#teleport stand up -execute as @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~.04 ~ +#teleport display up +execute as @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.5,limit=1] at @s run teleport @s ~ ~.04 ~ scoreboard players remove liquid_height_calc gm4_lt_disp_val 1 From db01379522de7a76b715f1e84c353e50fa700109 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 01:52:18 -0400 Subject: [PATCH 05/76] Check in API outline plans and first steps --- .../modules/liquid_wrappers.bolt | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt new file mode 100644 index 0000000000..2dd3bb0f0e --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -0,0 +1,133 @@ +from functools import wraps + +from beet import Context + + +# We're trying out a class-definition approach, rather than a class-instantiation one. + # it might wind up feeling more natural within bolt +def liquid(cls): + print("defining new basic liquid") + @wraps(cls) + class ThisLiquid(cls): + pass + + return ThisLiquid + +def item_fill(input: str, output: str, value: int, reversable: bool = True): + def dec_outer(fn): + @wraps(fn) + @staticmethod + def dec_inner(): + pass + return dec_inner + return dec_outer + +class Liquid: + """Base class providing decorators and infrastructure for adding Liquid Tanks liquids""" + id: str = None + capacity: int = None + skullowner: str = None + _fields = ['id', 'capacity', 'skullowner'] + + def __init__(self, *args, **kwargs): + # create instance attributes (named defined by _fields) based on constructor + input_args = dict(zip(self._fields, args)) | kwargs + for field in self._fields: + if v:=input_args.get(field, None): + setattr(self, field, v) + + def __call__(self, cls): + """instance acts as decorator for defining new class-structures""" + @wraps(cls, updated=()) + class DecoratedLiquid(cls, Liquid): + pass + + # set unbound DecoratedLiquid class attributes + for field in self._fields: + if v:=getattr(self, field, None): + setattr(DecoratedLiquid, field, v) + + return DecoratedLiquid + +liquid = Liquid() # common instance for most cases + +if __name__ == "__main__": + + ## Defining a class + + # by decorated class + @liquid + class Milk: + id = 'milk' + capacity = 300 + skullowner = 'skins/milk' + + print(Milk.id) + print(Milk.capacity) + + # or by extended base decorator with partial bindings + bucketable = Liquid(None, 300, None) + + print(bucketable.id) + print(bucketable.capacity) + + @bucketable + class PowderSnow: + id = 'powder_snow' + capacity = 400 + skullowner = 'skins/snow' + + print(PowderSnow.capacity) + + + # @standard_unit('bucket', 3) + # def bucket(): + # #summon bat{CustomName:'Whoops there goes your bucket'} + # pass + + # bottle = standard_unit('bottle', 1) + + # @liquid + # class Lava: + # id = 'lava' + # capacity = 100 + # skullowner = 'skins/lava' + + # @liquid_init + # def lava_init(): + # #advancement grant @p gm4_standard_liquids:mini_volcano + # pass + + # @item_fill('bucket', 'lava_bucket', 3, reversible=True) + # def lava_bucket(): + # #advancement grant @p gm4_standard_liquids:shouldnt_that_iron_melt + # pass + + # # reversible would automatically create the item_drain direction. + # # what about additional commands in that direction? Do I dare use yield and generators? + # # we generally assume anything that can be filled can also be drained, exceptions are usually for items destroyed by the drain + # # like enchanted pages, beetroot and honey_blocks. + + # lava_bucket = item_drain('magma_block', 'air', 2, reversible=False) + # # maybe like this if there are no additional commands to run? + + # @bottle('potion{gm4_standard_liquids:{id:"lava_bottle"}}') # acts as an `item_fill` decorator? + # def lava_bottle(): + # #loot insert container.0 gm4_standard_liquids:lava_bottle + # pass + + # yea dealing with non-standard items is a real pain in the ass even with this system... + + + # @Liquid() + # class Test2: + # def my_2method(self): + # print("my_2method") + + # print(Lava) + + +# "overloading" the decorator in this way seems... difficult to say the least. Maybe rx has some thoughts about how to do this better + # I *think* that it can be acomplished, but it would require like... delaying the mcfunction creation until we're sure the decorator isn't + # going to be called to wrap a method. Is there like an exit phase? Or maybe at the end of the @liquid class wrapper we can run through all + # its liquid processors? From c090154b9ccb4382503d5fe7ac13f35ee420bc36 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 10:59:53 -0400 Subject: [PATCH 06/76] liquid init API plans --- .../modules/liquid_wrappers.bolt | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 2dd3bb0f0e..867efb33da 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -22,6 +22,10 @@ def item_fill(input: str, output: str, value: int, reversable: bool = True): return dec_inner return dec_outer +# function that generates no mcfunction +def emptyfunc(): + pass + class Liquid: """Base class providing decorators and infrastructure for adding Liquid Tanks liquids""" id: str = None @@ -35,6 +39,7 @@ class Liquid: for field in self._fields: if v:=input_args.get(field, None): setattr(self, field, v) + self.generators = [] # functions that create mcfunction using bolt def __call__(self, cls): """instance acts as decorator for defining new class-structures""" @@ -47,8 +52,25 @@ class Liquid: if v:=getattr(self, field, None): setattr(DecoratedLiquid, field, v) + print(self.generators) + self.generators.clear() + return DecoratedLiquid + def init(self, fcn=emptyfunc): + @wraps(fcn) + def wrapped_fcn(): + # function tank_init/milk: + # summon item_display ~ ~ ~ + fcn() + pass + + # give nicer info about this wrapped function if not used as decorator + wrapped_fcn.__qualname__ = "Liquid.init" if fcn is emptyfunc else fcn.__qualname__ + + self.generators.append(wrapped_fcn) + return wrapped_fcn + liquid = Liquid() # common instance for most cases if __name__ == "__main__": @@ -79,6 +101,27 @@ if __name__ == "__main__": print(PowderSnow.capacity) + ## Using methods to define behavior + @liquid + class MushroomSoup: + id = 'mushroom_soup' + capacity = 300 + skullowner = 'skins/snow' + + @liquid.init + def liquid_init(): + # particle block ~ ~ ~ red_mushroom 1 0 force + pass + + # or with no additional code + @liquid + class BeetrootSoup: + id = 'beetroot_soup' + capacity = 300 + skullowner = 'skins/beetboi' + + liquid_init = liquid.init() + # @standard_unit('bucket', 3) # def bucket(): From 267fe8311db8dc996afb000a1b315e8c4a1ce515 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 11:12:04 -0400 Subject: [PATCH 07/76] Potential post-definition method setup? --- .../modules/liquid_wrappers.bolt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 867efb33da..b6a77f4d76 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -122,6 +122,23 @@ if __name__ == "__main__": liquid_init = liquid.init() + # or even programatically? + @liquid + class RabbitStew: + id = 'rabbit_stew' + capacity = 300 + skullowner = 'skins/bunnyface' + + # @RabbitStew.init # I don't know if this is desirable or useful yet, so I'll leave it here for the time being + # def stew_init(): + # # summon killer_bunny + # pass + + ## using methods to define arbitrary item fills + # @liquid + # class Experience: + # id = + # @standard_unit('bucket', 3) # def bucket(): From 695b2837301f5d7fdc37ad85cfb5d304c2db7bf0 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 14:20:16 -0400 Subject: [PATCH 08/76] item_fill decorator setup --- .../modules/liquid_wrappers.bolt | 76 +++++++++++++++---- 1 file changed, 62 insertions(+), 14 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index b6a77f4d76..b6b7f64b7d 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -1,4 +1,4 @@ -from functools import wraps +from functools import wraps, partial from beet import Context @@ -13,15 +13,6 @@ def liquid(cls): return ThisLiquid -def item_fill(input: str, output: str, value: int, reversable: bool = True): - def dec_outer(fn): - @wraps(fn) - @staticmethod - def dec_inner(): - pass - return dec_inner - return dec_outer - # function that generates no mcfunction def emptyfunc(): pass @@ -71,6 +62,37 @@ class Liquid: self.generators.append(wrapped_fcn) return wrapped_fcn + + def _default_item_fill(id:str): + # data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} + pass + + + def item_fill(self, input: str, output: str, value: int, reversable: bool = True): + def dec_with_args(fcn, fcn_to_replace): + @wraps(fcn) + def wrapped_fcn(): + # execute if item input run function output: + # scoreboard players set $item_value gm4_lt_value -1 + # fcn() + # data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} + # function gm4_liquid_tanks:smart_item_fill + # tag @s add gm4_lt_fill + pass + + # give nicer info about this wrapped function if not used as decorator + wrapped_fcn.__qualname__ = "Liquid.item_fill" if isinstance(fcn, partial) else fcn.__qualname__ + + if fcn_to_replace in self.generators: + self.generators.remove(fcn_to_replace) + self.generators.append(wrapped_fcn) + return wrapped_fcn + + default_dec = dec_with_args(partial(self._default_item_fill, id=output), None) + + return_dec = partial(dec_with_args, fcn_to_replace=default_dec) + return return_dec + liquid = Liquid() # common instance for most cases if __name__ == "__main__": @@ -134,10 +156,35 @@ if __name__ == "__main__": # # summon killer_bunny # pass - ## using methods to define arbitrary item fills - # @liquid - # class Experience: - # id = + # using methods to define arbitrary item fills + @liquid + class Experience: + id = 'xp' + capacity = 1365 + skullowner = 'skins/magic' + + @liquid.item_fill('bottle', 'xp_bottle', 6) + def experience_bottle(): + pass + + magic_book = liquid.item_fill('book', 'enchanted_book', 3) + + liquid.item_fill('paper', 'explorer_map', 100) + + # or defining common units for shared use using partial + bottle = partial(liquid.item_fill, input='bottle', value=1) + + @liquid + class Honey: + id = 'honey', + capacity = 400 + skullowner = 'skins/beesbeesallthebees' + + @bottle(output='honey_bottle') + def honey_bottle(): + pass + + bottle(output='dragons_breath') # @standard_unit('bucket', 3) @@ -146,6 +193,7 @@ if __name__ == "__main__": # pass # bottle = standard_unit('bottle', 1) + # bottle = partial(liquid.item_fill, input='bottle', value=3) # @liquid # class Lava: From e1453de06093e5f576c14888ed73be76f3f2cb66 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 15:01:28 -0400 Subject: [PATCH 09/76] Blind attempt at auto-gen item drain --- .../modules/liquid_wrappers.bolt | 50 +++++++++++++++++-- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index b6b7f64b7d..3d726c0b2c 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -44,6 +44,8 @@ class Liquid: setattr(DecoratedLiquid, field, v) print(self.generators) + for fcn in self.generators: + fcn() # create the mcfunction resources self.generators.clear() return DecoratedLiquid @@ -51,6 +53,7 @@ class Liquid: def init(self, fcn=emptyfunc): @wraps(fcn) def wrapped_fcn(): + print(f"\ttank init {self.id}") # FIXME this pulls the instance variables that dont exist on @liquid. Need the clas attributes # function tank_init/milk: # summon item_display ~ ~ ~ fcn() @@ -63,7 +66,7 @@ class Liquid: return wrapped_fcn - def _default_item_fill(id:str): + def _default_set_output(id:str): # data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} pass @@ -72,6 +75,7 @@ class Liquid: def dec_with_args(fcn, fcn_to_replace): @wraps(fcn) def wrapped_fcn(): + print(f"\tItem Fill {input}->{output}") # execute if item input run function output: # scoreboard players set $item_value gm4_lt_value -1 # fcn() @@ -88,11 +92,45 @@ class Liquid: self.generators.append(wrapped_fcn) return wrapped_fcn - default_dec = dec_with_args(partial(self._default_item_fill, id=output), None) + # create reverse + if reversable: + self.item_drain(output, input, -value) + + default_dec = dec_with_args(partial(self._default_set_output, id=output), None) return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec + + ## NOTE yea this is where it gets weird cause we want to overlap things *here*, not in fill + def item_drain(self, input: str, output: str, value: int): + def dec_with_args(fcn, fcn_to_replace): + @wraps(fcn) + def wrapped_fcn(): + print(f"\tItem Drain {input}->{output}") + # execute if item input run function output: + # scoreboard players set $item_value gm4_lt_value -1 + # fcn() + # data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} + # function gm4_liquid_tanks:smart_item_drain + # tag @s add gm4_lt_fill + pass + + # give nicer info about this wrapped function if not used as decorator + wrapped_fcn.__qualname__ = "Liquid.item_drain" if isinstance(fcn, partial) else fcn.__qualname__ + + if fcn_to_replace in self.generators: + self.generators.remove(fcn_to_replace) + self.generators.append(wrapped_fcn) + return wrapped_fcn + + default_dec = dec_with_args(partial(self._default_set_output, id=output), None) + + return_dec = partial(dec_with_args, fcn_to_replace=default_dec) + return return_dec + + + liquid = Liquid() # common instance for most cases if __name__ == "__main__": @@ -167,9 +205,9 @@ if __name__ == "__main__": def experience_bottle(): pass - magic_book = liquid.item_fill('book', 'enchanted_book', 3) + magic_book = liquid.item_fill('book', 'enchanted_book', 3, False) - liquid.item_fill('paper', 'explorer_map', 100) + liquid.item_fill('paper', 'explorer_map', 100, False) # or defining common units for shared use using partial bottle = partial(liquid.item_fill, input='bottle', value=1) @@ -186,6 +224,10 @@ if __name__ == "__main__": bottle(output='dragons_breath') + @liquid.item_drain(input='honey_block', output='air', value=4) + def honey_block(): + pass + # @standard_unit('bucket', 3) # def bucket(): From 71fdc50275f0f843e6e18db7b31df32fdec6d140 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 18:22:37 -0400 Subject: [PATCH 10/76] Start of bolt integration --- .../modules/liquid_wrappers.bolt | 70 ++++++++++++------- .../gm4_standard_liquids2/modules/main.bolt | 11 +++ 2 files changed, 56 insertions(+), 25 deletions(-) create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 3d726c0b2c..52d00e2f85 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -2,6 +2,8 @@ from functools import wraps, partial from beet import Context +from gm4.utils import add_namespace + # We're trying out a class-definition approach, rather than a class-instantiation one. # it might wind up feeling more natural within bolt @@ -24,13 +26,15 @@ class Liquid: skullowner: str = None _fields = ['id', 'capacity', 'skullowner'] + def __init__(self, *args, **kwargs): # create instance attributes (named defined by _fields) based on constructor input_args = dict(zip(self._fields, args)) | kwargs for field in self._fields: - if v:=input_args.get(field, None): - setattr(self, field, v) + if input_args.get(field, None): + setattr(self, field, input_args.get(field, None)) self.generators = [] # functions that create mcfunction using bolt + self.struc = Liquid def __call__(self, cls): """instance acts as decorator for defining new class-structures""" @@ -40,10 +44,11 @@ class Liquid: # set unbound DecoratedLiquid class attributes for field in self._fields: - if v:=getattr(self, field, None): - setattr(DecoratedLiquid, field, v) + if getattr(self, field, None): + setattr(DecoratedLiquid, field, getattr(self, field, None)) print(self.generators) + self.struc = DecoratedLiquid # link access to class variables through `self` for fcn in self.generators: fcn() # create the mcfunction resources self.generators.clear() @@ -54,20 +59,28 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): print(f"\ttank init {self.id}") # FIXME this pulls the instance variables that dont exist on @liquid. Need the clas attributes - # function tank_init/milk: - # summon item_display ~ ~ ~ - fcn() + function f'{~/../}/liquid_init/{self.struc.id}': + data merge block ~ ~ ~ {CustomName:f'{{"translate":"gm4.second","fallback":"%1$s","with":[{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"Lava Tank"}},[{{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"}},{{"translate":"container.gm4.liquid_tank.lava","fallback":"Lava 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:"$gm4_standard_liquids:liquids/lava"}}]} + data modify entity @s data.gm4_liquid_tanks.liquid_tag set value f"gm4_lt_{self.struc.id}" + scoreboard players set @s gm4_lt_max 300 + tag @s add f'gm4_lt_{self.struc.id}' + tag @s remove gm4_lt_empty + fcn() pass # give nicer info about this wrapped function if not used as decorator - wrapped_fcn.__qualname__ = "Liquid.init" if fcn is emptyfunc else fcn.__qualname__ + if fcn: + wrapped_fcn.__qualname__ = "Liquid.init" + else: + wrapped_fcn.__qualname__ = fcn.__qualname__ self.generators.append(wrapped_fcn) return wrapped_fcn - + @staticmethod def _default_set_output(id:str): - # data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} + data merge storage gm4_liquid_tanks:temp/tank {output:{id:id}} pass @@ -76,16 +89,20 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): print(f"\tItem Fill {input}->{output}") - # execute if item input run function output: - # scoreboard players set $item_value gm4_lt_value -1 - # fcn() - # data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} - # function gm4_liquid_tanks:smart_item_fill - # tag @s add gm4_lt_fill + print(fcn) + append function ~/../item_fill: + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{output}': + scoreboard players set $item_value gm4_lt_value value + fcn() + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill pass # give nicer info about this wrapped function if not used as decorator - wrapped_fcn.__qualname__ = "Liquid.item_fill" if isinstance(fcn, partial) else fcn.__qualname__ + if isinstance(fcn, partial): + wrapped_fcn.__qualname__ = "Liquid.item_fill" + else: + wrapped_fcn.__qualname__ = fcn.__qualname__ if fcn_to_replace in self.generators: self.generators.remove(fcn_to_replace) @@ -108,16 +125,19 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): print(f"\tItem Drain {input}->{output}") - # execute if item input run function output: - # scoreboard players set $item_value gm4_lt_value -1 - # fcn() - # data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} - # function gm4_liquid_tanks:smart_item_drain - # tag @s add gm4_lt_fill + append function ~/../item_drain: + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{output}': + scoreboard players set $item_value gm4_lt_value value + fcn() + function gm4_liquid_tanks:smart_item_drain + tag @s add gm4_lt_fill pass # give nicer info about this wrapped function if not used as decorator - wrapped_fcn.__qualname__ = "Liquid.item_drain" if isinstance(fcn, partial) else fcn.__qualname__ + if isinstance(fcn, partial): + wrapped_fcn.__qualname__ = "Liquid.item_fill" + else: + wrapped_fcn.__qualname__ = fcn.__qualname__ if fcn_to_replace in self.generators: self.generators.remove(fcn_to_replace) @@ -214,7 +234,7 @@ if __name__ == "__main__": @liquid class Honey: - id = 'honey', + id = 'honey' capacity = 400 skullowner = 'skins/beesbeesallthebees' diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt new file mode 100644 index 0000000000..369dcd057b --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -0,0 +1,11 @@ +from gm4_liquid_tanks:liquid_wrappers import liquid + +@liquid +class Lava: + id = 'lava' + capacity = 300 + skullowner = 'liquids/lava' + + liquid.init() + + liquid.item_fill('bucket', 'lava_bucket', 3) From 626541f8375bd36e1f34bee3cf31e4daa57fca12 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 7 Jul 2024 02:04:44 -0400 Subject: [PATCH 11/76] Override bolt formatting back to dense --- gm4_liquid_tanks/beet.yaml | 1 + gm4_liquid_tanks/override_formatting.py | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 gm4_liquid_tanks/override_formatting.py diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index 89035cc230..526fc32a0a 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -12,6 +12,7 @@ require: - bolt pipeline: + - override_formatting - gm4.plugins.extend.module - gm4.plugins.include.lib_machines - gm4.plugins.include.lib_custom_crafters diff --git a/gm4_liquid_tanks/override_formatting.py b/gm4_liquid_tanks/override_formatting.py new file mode 100644 index 0000000000..4a55fef441 --- /dev/null +++ b/gm4_liquid_tanks/override_formatting.py @@ -0,0 +1,5 @@ +from beet import Context +from mecha import Mecha + +def beet_default(ctx: Context): + ctx.inject(Mecha).serialize.formatting.layout = 'dense' \ No newline at end of file From aad53b6e3472c2e6bb3e89079446a4ccf92dadc0 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 7 Jul 2024 02:07:39 -0400 Subject: [PATCH 12/76] Framework for componentized items --- gm4_liquid_tanks/beet.yaml | 3 +++ .../gm4_liquid_tanks/modules/liquid_wrappers.bolt | 9 +++++++-- .../data/gm4_standard_liquids2/modules/main.bolt | 11 +++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index 526fc32a0a..d39536df3d 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -18,6 +18,9 @@ pipeline: - gm4.plugins.include.lib_custom_crafters meta: + bolt: + entrypoint: + - gm4_standard_liquids2:main gm4: versioning: required: diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 52d00e2f85..e9362e78c5 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -1,6 +1,7 @@ from functools import wraps, partial from beet import Context +from mecha import Mecha, AstItemStack from gm4.utils import add_namespace @@ -35,6 +36,7 @@ class Liquid: setattr(self, field, input_args.get(field, None)) self.generators = [] # functions that create mcfunction using bolt self.struc = Liquid + self.mc = ctx.inject(Mecha) def __call__(self, cls): """instance acts as decorator for defining new class-structures""" @@ -88,10 +90,13 @@ class Liquid: def dec_with_args(fcn, fcn_to_replace): @wraps(fcn) def wrapped_fcn(): - print(f"\tItem Fill {input}->{output}") + # item = self.mc.parse(output, type=AstItemStack) # FIXME no parser asscioated? + item_stack = self.mc.parse(output, using='item_stack') + item_id = self.mc.serialize(item_stack.identifier) + print(f"\tItem Fill {input}->{item_id}") print(fcn) append function ~/../item_fill: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{output}': + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{item_id}': scoreboard players set $item_value gm4_lt_value value fcn() function gm4_liquid_tanks:smart_item_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index 369dcd057b..04e09419e9 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -9,3 +9,14 @@ class Lava: liquid.init() liquid.item_fill('bucket', 'lava_bucket', 3) + +@liquid +class Water: + id = 'water' + capacity = 300 + skullowner = 'liquids/water' + + liquid.init() + + liquid.item_fill('bucket', 'water_bucket', 3) + liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"},name="Test"]', 1) \ No newline at end of file From 427a1452e093e4e622dbeb477887a95cf46b40e1 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 8 Jul 2024 18:28:07 -0400 Subject: [PATCH 13/76] Retire storage api for new `if items` design --- .../functions/apply_output.mcfunction | 13 +++++++++++-- .../functions/item_process.mcfunction | 3 +-- .../gm4_liquid_tanks/functions/process.mcfunction | 8 ++++---- .../functions/item_drain.mcfunction | 4 ++-- .../functions/item_drain/bucket.mcfunction | 2 +- .../functions/item_fill.mcfunction | 3 ++- .../functions/item_fill/water_bucket.mcfunction | 2 +- .../functions/tank_init.mcfunction | 4 ++-- 8 files changed, 24 insertions(+), 15 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/apply_output.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/apply_output.mcfunction index dfe1185077..4091d364de 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/apply_output.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/apply_output.mcfunction @@ -2,8 +2,17 @@ # @s = processing tank # merge count from input and set to tank -data modify storage gm4_liquid_tanks:temp/tank output.count set from storage gm4_liquid_tanks:temp/tank input_slot.count -data modify block ~ ~ ~ Items[{Slot:0b}] set from storage gm4_liquid_tanks:temp/tank output +item_modifier gm4_liquid_tanks:apply_output_count: + function: "minecraft:set_count" + count: + type: "minecraft:score" + target: + type: "minecraft:fixed" + name: "$stack_size" + score: "gm4_lt_value" + +item replace block ~ ~ ~ container.0 from entity 344d47-4-4-4-f04ce104d weapon.mainhand gm4_liquid_tanks:apply_output_count +item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with air # apply value delta scoreboard players operation @s gm4_lt_value += $stack_value gm4_lt_value diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction index d351fa520e..9a6462203f 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction @@ -2,7 +2,7 @@ #run from liquid_tanks:process # get stack count for smart interface -execute store result score $stack_size gm4_lt_value run data get storage gm4_liquid_tanks:temp/tank input_slot.count 1.0 +execute store result score $stack_size gm4_lt_value run data get block ~ ~ ~ Items[{Slot:0b}].count 1.0 #tank init execute if score @s[tag=gm4_lt_empty] gm4_lt_value matches 0 unless entity @s[tag=gm4_lt_fill] run function #gm4_liquid_tanks:tank_init @@ -14,5 +14,4 @@ execute unless entity @s[tag=gm4_lt_fill] run function #gm4_liquid_tanks:item_dr execute unless entity @s[tag=gm4_lt_drain] run function #gm4_liquid_tanks:item_fill #storage cleanup -data remove storage gm4_liquid_tanks:temp/tank input_slot data remove storage gm4_liquid_tanks:temp/tank output diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/process.mcfunction index 7f42f2955d..a94ac08b11 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/process.mcfunction @@ -2,12 +2,12 @@ #run from main #item processing -data modify storage gm4_liquid_tanks:temp/tank input_slot merge from block ~ ~ ~ Items[{Slot:0b}] -execute if data storage gm4_liquid_tanks:temp/tank input_slot run function gm4_liquid_tanks:item_process +# data modify storage gm4_liquid_tanks:temp/tank input_slot merge from block ~ ~ ~ Items[{Slot:0b}] +execute if items block ~ ~ ~ container.0 * run function gm4_liquid_tanks:item_process #last item action resetting (requires updated tank data, so no refrence to storage) -execute unless block ~ ~ ~ hopper{Items:[{Slot:0b}]} run tag @s remove gm4_lt_drain -execute unless block ~ ~ ~ hopper{Items:[{Slot:0b}]} run tag @s remove gm4_lt_fill +execute unless items block ~ ~ ~ container.0 * run tag @s remove gm4_lt_drain +execute unless items block ~ ~ ~ container.0 * run tag @s remove gm4_lt_fill #entity processing execute if block ~ ~ ~ hopper[enabled=true] align xyz positioned ~ ~1 ~ if entity @e[type=!armor_stand,dx=0] run function #gm4_liquid_tanks:util_above diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction index 49d7deac55..0596d2f131 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction @@ -2,8 +2,8 @@ #run from liquid_tanks:item_process #water -execute if entity @s[tag=gm4_lt_water] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:water_bucket"}} run function gm4_standard_liquids:item_drain/bucket -execute if entity @s[tag=gm4_lt_water] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water"}}}} run function gm4_standard_liquids:item_drain/bottle +execute if entity @s[tag=gm4_lt_water] if items block ~ ~ ~ container.0 minecraft:water_bucket run function gm4_standard_liquids:item_drain/bucket +execute if entity @s[tag=gm4_lt_water] if items block ~ ~ ~ container.0 minecraft:potion[minecraft:potion_contents={potion:"minecraft:water"}] run function gm4_standard_liquids:item_drain/bottle #lava execute if entity @s[tag=gm4_lt_lava] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:item_drain/bucket diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction index 63e230cd32..c82344a402 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction @@ -2,6 +2,6 @@ # @s = tank being processed scoreboard players set $item_value gm4_lt_value 3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"bucket"}} +item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with bucket function gm4_liquid_tanks:smart_item_drain tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction index e2b258cef6..aff1d0919d 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction @@ -2,7 +2,8 @@ #run from liquid_tanks:item_process #buckets -execute if entity @s[tag=gm4_lt_water] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/water_bucket +execute if entity @s[tag=gm4_lt_water] if score $stack_size gm4_lt_value matches 1 if items block ~ ~ ~ container.0 bucket run function gm4_standard_liquids:item_fill/water_bucket + execute if entity @s[tag=gm4_lt_lava] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/lava_bucket execute if entity @s[tag=gm4_lt_milk] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/milk_bucket execute if entity @s[tag=gm4_lt_powder_snow] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/powder_snow_bucket diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction index f08c44825c..aba53f72ef 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction @@ -2,6 +2,6 @@ # @s = tank being processed scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"water_bucket"}} +item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with water_bucket 1 function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction index 64f90d70b7..dd0b9e46f1 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction @@ -2,8 +2,8 @@ #run from liquid_tanks:item_process #water -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:water_bucket"}} run function gm4_standard_liquids:liquid_init/water -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water"}}}} run function gm4_standard_liquids:liquid_init/water +execute if items block ~ ~ ~ container.0 minecraft:water_bucket run function gm4_standard_liquids:liquid_init/water +execute if items block ~ ~ ~ container.0 minecraft:potion[minecraft:potion_contents={potion:"minecraft:water"}] run function gm4_standard_liquids:liquid_init/water #lava execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:liquid_init/lava From 79e830e78fc0f2d854e685fb99d68060858d0416 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 26 Mar 2024 01:43:50 -0400 Subject: [PATCH 14/76] Incorporate max allowable input stack size --- .../modules/liquid_wrappers.bolt | 44 +++++++++++++++---- .../gm4_standard_liquids2/modules/main.bolt | 3 +- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index e9362e78c5..b54e117a86 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -5,6 +5,8 @@ from mecha import Mecha, AstItemStack from gm4.utils import add_namespace +from gm4_auto_crafting.generate import unstackables, stackable_16 # NOTE future versions can pull the default component from 1.20.5 item.json + # We're trying out a class-definition approach, rather than a class-instantiation one. # it might wind up feeling more natural within bolt @@ -24,8 +26,8 @@ class Liquid: """Base class providing decorators and infrastructure for adding Liquid Tanks liquids""" id: str = None capacity: int = None - skullowner: str = None - _fields = ['id', 'capacity', 'skullowner'] + name: str = None + _fields = ['id', 'capacity', 'name'] def __init__(self, *args, **kwargs): @@ -60,15 +62,30 @@ class Liquid: def init(self, fcn=emptyfunc): @wraps(fcn) def wrapped_fcn(): - print(f"\ttank init {self.id}") # FIXME this pulls the instance variables that dont exist on @liquid. Need the clas attributes function f'{~/../}/liquid_init/{self.struc.id}': - data merge block ~ ~ ~ {CustomName:f'{{"translate":"gm4.second","fallback":"%1$s","with":[{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"Lava Tank"}},[{{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"}},{{"translate":"container.gm4.liquid_tank.lava","fallback":"Lava 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:"$gm4_standard_liquids:liquids/lava"}}]} + append function_tag gm4_liquid_tanks:tank_init {"values": [(~/)]} + data merge block ~ ~ ~ {CustomName:f'{{"translate":"gm4.second","fallback":"%1$s","with":[{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank"}},[{{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"}},{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} 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:"$gm4_standard_liquids:liquids/lava"}}] data modify entity @s data.gm4_liquid_tanks.liquid_tag set value f"gm4_lt_{self.struc.id}" - scoreboard players set @s gm4_lt_max 300 + scoreboard players set @s gm4_lt_max self.struc.capacity tag @s add f'gm4_lt_{self.struc.id}' tag @s remove gm4_lt_empty fcn() + + append function ~/../remove_liquid_tags: + append function_tag gm4_liquid_tanks:remove_liquid_tags {"values": [(~/)]} + tag @s remove f'gm4_lt_{self.struc.id}' pass # give nicer info about this wrapped function if not used as decorator @@ -94,14 +111,20 @@ class Liquid: item_stack = self.mc.parse(output, using='item_stack') item_id = self.mc.serialize(item_stack.identifier) print(f"\tItem Fill {input}->{item_id}") - print(fcn) + ns_item_id = add_namespace(item_id, "minecraft") + if ns_item_id in unstackables: + stack_limit = "1" + elif ns_item_id in stackable_16: + stack_limit = "..16" + else: + stack_limit = "..64" # FIXME this should remove that execute subcommand from the chain.. somehow + append function ~/../item_fill: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{item_id}': + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{item_id}': scoreboard players set $item_value gm4_lt_value value fcn() function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill - pass # give nicer info about this wrapped function if not used as decorator if isinstance(fcn, partial): @@ -136,6 +159,9 @@ class Liquid: fcn() function gm4_liquid_tanks:smart_item_drain tag @s add gm4_lt_fill + + append function ~/../tank_init: + execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/../}/liquid_init/{self.struc.id}' pass # give nicer info about this wrapped function if not used as decorator diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index 04e09419e9..ed9b2a9b1e 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -1,10 +1,11 @@ from gm4_liquid_tanks:liquid_wrappers import liquid + @liquid class Lava: id = 'lava' + name = 'Lava' capacity = 300 - skullowner = 'liquids/lava' liquid.init() From c1076a2c2db0805ae28f0cfa99182410c925e327 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 26 Mar 2024 08:32:41 -0400 Subject: [PATCH 15/76] Reusable standard units --- .../gm4_liquid_tanks/modules/liquid_wrappers.bolt | 13 ++++++++++++- .../data/gm4_standard_liquids2/modules/main.bolt | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index b54e117a86..135355786e 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -37,6 +37,7 @@ class Liquid: if input_args.get(field, None): setattr(self, field, input_args.get(field, None)) self.generators = [] # functions that create mcfunction using bolt + self.units = {} # reusable quantities shared amongst liquids self.struc = Liquid self.mc = ctx.inject(Mecha) @@ -146,6 +147,12 @@ class Liquid: return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec + def standard_unit(self, input: str, value: int, f_name: str = None): + if not f_name: + f_name = input + self.units.update({(input, value): f_name}) + return partial(self.item_fill, input=input,value=value) + ## NOTE yea this is where it gets weird cause we want to overlap things *here*, not in fill def item_drain(self, input: str, output: str, value: int): @@ -153,8 +160,12 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): print(f"\tItem Drain {input}->{output}") + if isinstance(fcn, partial) and fcn.func is self._default_set_output: # there aren't extra commands to consider + f_name = self.units.get((output, -value), input) + f_name = input + append function ~/../item_drain: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{output}': + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{f_name}': scoreboard players set $item_value gm4_lt_value value fcn() function gm4_liquid_tanks:smart_item_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index ed9b2a9b1e..ba43883762 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -1,5 +1,6 @@ from gm4_liquid_tanks:liquid_wrappers import liquid +bucket = liquid.standard_unit('bucket', 3) @liquid class Lava: @@ -14,10 +15,18 @@ class Lava: @liquid class Water: id = 'water' + name = 'Water' capacity = 300 - skullowner = 'liquids/water' liquid.init() - liquid.item_fill('bucket', 'water_bucket', 3) - liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"},name="Test"]', 1) \ No newline at end of file + liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"},name="Test"]', 1, reversable=False) + +@liquid +class Milk: + id = 'milk' + name = 'Milk' + capacity = 300 + + liquid.init() + liquid.item_fill('bucket', 'milk_bucket', 4) From aa353bf6654397b493335a8b896fd0dd1a437724 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 9 Jul 2024 23:21:39 -0400 Subject: [PATCH 16/76] Corrected standard-unit paths --- .../modules/liquid_wrappers.bolt | 41 ++++++++++--------- .../gm4_standard_liquids2/modules/main.bolt | 4 +- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 135355786e..0e77185b61 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -63,7 +63,7 @@ class Liquid: def init(self, fcn=emptyfunc): @wraps(fcn) def wrapped_fcn(): - function f'{~/../}/liquid_init/{self.struc.id}': + function ~/../liquid_init/{self.struc.id}: append function_tag gm4_liquid_tanks:tank_init {"values": [(~/)]} data merge block ~ ~ ~ {CustomName:f'{{"translate":"gm4.second","fallback":"%1$s","with":[{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank"}},[{{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"}},{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank","font":"gm4:default","color":"#404040"}}]]}}'} summon armor_stand ~ ~-.95 ~: @@ -104,24 +104,24 @@ class Liquid: pass - def item_fill(self, input: str, output: str, value: int, reversable: bool = True): + def item_fill(self, input: str, output: str, value: int, reversable: bool = True, ignore_standard_units: bool = False): def dec_with_args(fcn, fcn_to_replace): @wraps(fcn) def wrapped_fcn(): # item = self.mc.parse(output, type=AstItemStack) # FIXME no parser asscioated? - item_stack = self.mc.parse(output, using='item_stack') - item_id = self.mc.serialize(item_stack.identifier) - print(f"\tItem Fill {input}->{item_id}") - ns_item_id = add_namespace(item_id, "minecraft") - if ns_item_id in unstackables: + output_ast = self.mc.parse(output, using='item_stack') + output_id = self.mc.serialize(output_ast.identifier).removeprefix('minecraft:') + print(f"\tItem Fill {input}->{output_id}") + ns_output = add_namespace(output_id, "minecraft") + if ns_output in unstackables: stack_limit = "1" - elif ns_item_id in stackable_16: + elif ns_output in stackable_16: stack_limit = "..16" else: stack_limit = "..64" # FIXME this should remove that execute subcommand from the chain.. somehow append function ~/../item_fill: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{item_id}': + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function ~/{output_id}: scoreboard players set $item_value gm4_lt_value value fcn() function gm4_liquid_tanks:smart_item_fill @@ -147,22 +147,25 @@ class Liquid: return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec - def standard_unit(self, input: str, value: int, f_name: str = None): - if not f_name: - f_name = input - self.units.update({(input, value): f_name}) - return partial(self.item_fill, input=input,value=value) + def standard_unit(self, item: str, value: int, f_name: str = None): + if not f_name: # mcfunction name + f_name = item + self.units.update({(item, value): f_name}) + # let unit act as an 'item_fill' decorator with input already set + def dispatch(output: str): + return partial(self.item_fill, input=item, value=value)(output=output) + return dispatch - ## NOTE yea this is where it gets weird cause we want to overlap things *here*, not in fill def item_drain(self, input: str, output: str, value: int): def dec_with_args(fcn, fcn_to_replace): @wraps(fcn) def wrapped_fcn(): print(f"\tItem Drain {input}->{output}") - if isinstance(fcn, partial) and fcn.func is self._default_set_output: # there aren't extra commands to consider - f_name = self.units.get((output, -value), input) - f_name = input + # if isinstance(fcn, partial) and fcn.func is self._default_set_output: # there aren't extra commands to consider + f_name = self.units.get((output, -value), input) + # f_name = input + print(f"reusing {f_name}") append function ~/../item_drain: execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{f_name}': @@ -172,7 +175,7 @@ class Liquid: tag @s add gm4_lt_fill append function ~/../tank_init: - execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/../}/liquid_init/{self.struc.id}' + execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function ~/../liquid_init/{self.struc.id} pass # give nicer info about this wrapped function if not used as decorator diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index ba43883762..271d5b7d26 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -10,7 +10,7 @@ class Lava: liquid.init() - liquid.item_fill('bucket', 'lava_bucket', 3) + bucket('lava_bucket') # item_fill on a standard unit @liquid class Water: @@ -19,7 +19,7 @@ class Water: capacity = 300 liquid.init() - liquid.item_fill('bucket', 'water_bucket', 3) + bucket('water_bucket') liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"},name="Test"]', 1, reversable=False) @liquid From 30907428618ce1f02785605e1d95ced4e3b89605 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 10 Jul 2024 23:42:43 -0400 Subject: [PATCH 17/76] Test new `if items` design api --- .../data/gm4_liquid_tanks/functions/empty.mcfunction | 2 +- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 2 +- .../data/gm4_standard_liquids/functions/item_drain.mcfunction | 1 + .../data/gm4_standard_liquids/functions/item_fill.mcfunction | 1 + .../data/gm4_standard_liquids/functions/tank_init.mcfunction | 2 +- 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction index d17b32eb2a..be67504b93 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction @@ -2,7 +2,7 @@ #run from liquid_tanks:liquid_value_update scoreboard players set @s gm4_lt_value 0 -execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.5] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid,distance=..0.5] data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "empty" function #gm4_liquid_tanks:remove_liquid_tags diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 0e77185b61..97aa40d6b6 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -64,7 +64,7 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): function ~/../liquid_init/{self.struc.id}: - append function_tag gm4_liquid_tanks:tank_init {"values": [(~/)]} + # append function_tag gm4_liquid_tanks:tank_init {"values": [(~/)]} # FIXME this line is for... what? data merge block ~ ~ ~ {CustomName:f'{{"translate":"gm4.second","fallback":"%1$s","with":[{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank"}},[{{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"}},{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank","font":"gm4:default","color":"#404040"}}]]}}'} summon armor_stand ~ ~-.95 ~: CustomName: '"gm4_liquid_tank_display"' diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction index 0596d2f131..5988c52eb0 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction @@ -4,6 +4,7 @@ #water execute if entity @s[tag=gm4_lt_water] if items block ~ ~ ~ container.0 minecraft:water_bucket run function gm4_standard_liquids:item_drain/bucket execute if entity @s[tag=gm4_lt_water] if items block ~ ~ ~ container.0 minecraft:potion[minecraft:potion_contents={potion:"minecraft:water"}] run function gm4_standard_liquids:item_drain/bottle +return fail #lava execute if entity @s[tag=gm4_lt_lava] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:item_drain/bucket diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction index aff1d0919d..03da85dc62 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction @@ -3,6 +3,7 @@ #buckets execute if entity @s[tag=gm4_lt_water] if score $stack_size gm4_lt_value matches 1 if items block ~ ~ ~ container.0 bucket run function gm4_standard_liquids:item_fill/water_bucket +return fail execute if entity @s[tag=gm4_lt_lava] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/lava_bucket execute if entity @s[tag=gm4_lt_milk] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/milk_bucket diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction index dd0b9e46f1..a169751d7b 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction @@ -4,7 +4,7 @@ #water execute if items block ~ ~ ~ container.0 minecraft:water_bucket run function gm4_standard_liquids:liquid_init/water execute if items block ~ ~ ~ container.0 minecraft:potion[minecraft:potion_contents={potion:"minecraft:water"}] run function gm4_standard_liquids:liquid_init/water - +return fail #lava execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:liquid_init/lava From eeb74687532ff01048a7f54ec86669297c83438c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 11 Jul 2024 00:00:10 -0400 Subject: [PATCH 18/76] Update bolt wrappers to `if items` api --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 97aa40d6b6..4e8baffeb5 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -121,8 +121,9 @@ class Liquid: stack_limit = "..64" # FIXME this should remove that execute subcommand from the chain.. somehow append function ~/../item_fill: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function ~/{output_id}: + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{output_id}: scoreboard players set $item_value gm4_lt_value value + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with output fcn() function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill @@ -168,14 +169,15 @@ class Liquid: print(f"reusing {f_name}") append function ~/../item_drain: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function f'{~/}/{f_name}': + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if items block ~ ~ ~ container.0 input run function f'{~/}/{f_name}': scoreboard players set $item_value gm4_lt_value value + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with input fcn() function gm4_liquid_tanks:smart_item_drain tag @s add gm4_lt_fill append function ~/../tank_init: - execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:add_namespace(input, "minecraft")}} run function ~/../liquid_init/{self.struc.id} + execute if items block ~ ~ ~ container.0 input run function ~/../liquid_init/{self.struc.id} pass # give nicer info about this wrapped function if not used as decorator From 8c30c4bd728d8ee5cf5f8d20e127ab72fd16f7d1 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 12 Jul 2024 10:39:31 -0400 Subject: [PATCH 19/76] Restore decorator-based command insertion for item definitions --- .../gm4_liquid_tanks/modules/liquid_wrappers.bolt | 14 ++++++-------- .../data/gm4_standard_liquids2/modules/main.bolt | 8 +++++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 4e8baffeb5..594a28c396 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -99,8 +99,8 @@ class Liquid: return wrapped_fcn @staticmethod - def _default_set_output(id:str): - data merge storage gm4_liquid_tanks:temp/tank {output:{id:id}} + def _default_set_output(item:str): + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with item pass @@ -123,8 +123,7 @@ class Liquid: append function ~/../item_fill: execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{output_id}: scoreboard players set $item_value gm4_lt_value value - item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with output - fcn() + fcn() # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill @@ -143,7 +142,7 @@ class Liquid: if reversable: self.item_drain(output, input, -value) - default_dec = dec_with_args(partial(self._default_set_output, id=output), None) + default_dec = dec_with_args(partial(self._default_set_output, item=output), None) return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec @@ -171,8 +170,7 @@ class Liquid: append function ~/../item_drain: execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if items block ~ ~ ~ container.0 input run function f'{~/}/{f_name}': scoreboard players set $item_value gm4_lt_value value - item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with input - fcn() + fcn() # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_drain tag @s add gm4_lt_fill @@ -191,7 +189,7 @@ class Liquid: self.generators.append(wrapped_fcn) return wrapped_fcn - default_dec = dec_with_args(partial(self._default_set_output, id=output), None) + default_dec = dec_with_args(partial(self._default_set_output, item=output), None) return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index 271d5b7d26..efee57e4d6 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -22,11 +22,13 @@ class Water: bucket('water_bucket') liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"},name="Test"]', 1, reversable=False) -@liquid -class Milk: +# @liquid +# class Milk: id = 'milk' name = 'Milk' capacity = 300 liquid.init() - liquid.item_fill('bucket', 'milk_bucket', 4) + @liquid.item_fill('bucket', 'milk_bucket', 4) + def special_milk(): + loot replace entity gm4_forceload weapon.mainhand loot gm4:items/blue_milk From 2f9c97a42b0d34c611b08c7018d1f4adb2a11899 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 16 Jul 2024 13:48:46 -0400 Subject: [PATCH 20/76] Custom function naming providers - Makes potions cleaner --- .../modules/liquid_wrappers.bolt | 65 +++++++++++++++++-- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 594a28c396..0db59dfd20 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -1,4 +1,5 @@ from functools import wraps, partial +import re from beet import Context from mecha import Mecha, AstItemStack @@ -38,6 +39,7 @@ class Liquid: setattr(self, field, input_args.get(field, None)) self.generators = [] # functions that create mcfunction using bolt self.units = {} # reusable quantities shared amongst liquids + self.naming_schemes = NamingSchemes() # stores which function names are taken and generates new ones self.struc = Liquid self.mc = ctx.inject(Mecha) @@ -113,6 +115,8 @@ class Liquid: output_id = self.mc.serialize(output_ast.identifier).removeprefix('minecraft:') print(f"\tItem Fill {input}->{output_id}") ns_output = add_namespace(output_id, "minecraft") + + # retrieve max allowable stack size if ns_output in unstackables: stack_limit = "1" elif ns_output in stackable_16: @@ -120,8 +124,11 @@ class Liquid: else: stack_limit = "..64" # FIXME this should remove that execute subcommand from the chain.. somehow + # retrieve name for generated function + func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_fill) + append function ~/../item_fill: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{output_id}: + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{func_name}: scoreboard players set $item_value gm4_lt_value value fcn() # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_fill @@ -163,12 +170,18 @@ class Liquid: def wrapped_fcn(): print(f"\tItem Drain {input}->{output}") # if isinstance(fcn, partial) and fcn.func is self._default_set_output: # there aren't extra commands to consider - f_name = self.units.get((output, -value), input) - # f_name = input - print(f"reusing {f_name}") + + # see if we can reuse a standard unit + func_name = self.units.get((output, -value), None) + if func_name: + self.naming_schemes.register(func_name, ~/../item_drain) + + # if not, retrive the name for the generated function + if not func_name: + func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_drain) append function ~/../item_drain: - execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if items block ~ ~ ~ container.0 input run function f'{~/}/{f_name}': + execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if items block ~ ~ ~ container.0 input run function ~/{func_name}: scoreboard players set $item_value gm4_lt_value value fcn() # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_drain @@ -194,7 +207,49 @@ class Liquid: return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec +class NamingSchemes(): + """Helper class for controlling how item_drain/ and item_fill/ functions are named""" + used_names: dict[str, set[str]] = {} + + def __init__(self): + self.schemes = [ + self.potion, + self.output_name, + self.input_name, + self.combined_name + ] + + def retrieve_and_register(self, input: str, output: str, location: str) -> str: + local_used_names = self.used_names.setdefault(location, set()) + for scheme in self.schemes: + func_name = scheme(input, output) + if func_name and func_name not in local_used_names: + local_used_names.add(func_name) + return func_name + return "NULL" # FIXME error logging from bolt? How to + + def register(self, func_name: str, location: str): + local_used_names = self.used_names.setdefault(location, set()) + local_used_names.add(func_name) + + @staticmethod + def output_name(input_name: str, output_name: str) -> str: + return output_name.split('[', 1)[0].removeprefix('minecraft:') + + @staticmethod + def input_name(input_name: str, output_name: str) -> str: + return input_name.split('[', 1)[0].removeprefix('minecraft:') + @staticmethod + def combined_name(input_name: str, output_name: str) -> str: + return f"{input_name.split('[', 1)[0].removeprefix('minecraft:')}_{output_name.split('[', 1)[0].removeprefix('minecraft:')}" + + @staticmethod + def potion(input_name: str, output_name: str) -> str | bool: + m = re.match(r'.+?potion_contents=\{potion:\"(.+)\"\}', output_name) + if m: + return f"{m.group(1)}_potion" + return False liquid = Liquid() # common instance for most cases From ffa252f65802f2ab435c8ac9945df0cad98dca11 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 16 Jul 2024 23:06:56 -0400 Subject: [PATCH 21/76] Test progress in game --- .../gm4_liquid_tanks/functions/item_process.mcfunction | 3 --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 9 +++++++-- .../gm4_liquid_tanks/tags/functions/item_drain.json | 6 ------ .../gm4_liquid_tanks/tags/functions/item_fill.json | 6 ------ .../gm4_liquid_tanks/tags/functions/tank_init.json | 6 ------ .../data/gm4_standard_liquids2/modules/main.bolt | 10 ++++++---- 6 files changed, 13 insertions(+), 27 deletions(-) delete mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_drain.json delete mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_fill.json delete mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/tank_init.json diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction index 9a6462203f..7c701773ca 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/item_process.mcfunction @@ -12,6 +12,3 @@ execute unless entity @s[tag=gm4_lt_fill] run function #gm4_liquid_tanks:item_dr #item fill execute unless entity @s[tag=gm4_lt_drain] run function #gm4_liquid_tanks:item_fill - -#storage cleanup -data remove storage gm4_liquid_tanks:temp/tank output diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 0db59dfd20..9a4c948bcc 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -89,6 +89,11 @@ class Liquid: append function ~/../remove_liquid_tags: append function_tag gm4_liquid_tanks:remove_liquid_tags {"values": [(~/)]} tag @s remove f'gm4_lt_{self.struc.id}' + + # add function-tag hooks + append function_tag gm4_liquid_tanks:tank_init {"values": [(~/../tank_init)]} + append function_tag gm4_liquid_tanks:item_fill {"values": [(~/../item_fill)]} + append function_tag gm4_liquid_tanks:item_drain {"values": [(~/../item_drain)]} pass # give nicer info about this wrapped function if not used as decorator @@ -129,7 +134,7 @@ class Liquid: append function ~/../item_fill: execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{func_name}: - scoreboard players set $item_value gm4_lt_value value + scoreboard players set $item_value gm4_lt_value (-value) fcn() # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill @@ -147,7 +152,7 @@ class Liquid: # create reverse if reversable: - self.item_drain(output, input, -value) + self.item_drain(output, input, value) default_dec = dec_with_args(partial(self._default_set_output, item=output), None) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_drain.json b/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_drain.json deleted file mode 100644 index a36749d28c..0000000000 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_drain.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_standard_liquids:item_drain" - ] - -} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_fill.json b/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_fill.json deleted file mode 100644 index 181c1fbb47..0000000000 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/item_fill.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_standard_liquids:item_fill" - ] - -} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/tank_init.json b/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/tank_init.json deleted file mode 100644 index a9eeb458ae..0000000000 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/tags/functions/tank_init.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_standard_liquids:tank_init" - ] - -} diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index efee57e4d6..ae1c9d18fa 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -19,11 +19,13 @@ class Water: capacity = 300 liquid.init() + bucket('water_bucket') - liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"},name="Test"]', 1, reversable=False) -# @liquid -# class Milk: + liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"}]', 1, reversable=False) + +@liquid +class Milk: id = 'milk' name = 'Milk' capacity = 300 @@ -31,4 +33,4 @@ class Water: liquid.init() @liquid.item_fill('bucket', 'milk_bucket', 4) def special_milk(): - loot replace entity gm4_forceload weapon.mainhand loot gm4:items/blue_milk + loot replace entity gm4_forceload weapon.mainhand loot minecraft:blocks/azure_bluet From 81ba8c8fa5bcea882ff10f09029d60d81346600d Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 18 Jul 2024 23:38:17 -0400 Subject: [PATCH 22/76] Update bolt liquid_init to use new item_displays --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 1 - 1 file changed, 1 deletion(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 9a4c948bcc..128a664a6b 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -190,7 +190,6 @@ class Liquid: scoreboard players set $item_value gm4_lt_value value fcn() # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_drain - tag @s add gm4_lt_fill append function ~/../tank_init: execute if items block ~ ~ ~ container.0 input run function ~/../liquid_init/{self.struc.id} From 9f43cfb18487104f83b2a022d653400e83f13f57 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 19 Jul 2024 10:24:54 -0400 Subject: [PATCH 23/76] Transfer standard_liquid item interactions to bolt --- .../modules/liquid_wrappers.bolt | 8 +- .../gm4_standard_liquids2/modules/main.bolt | 96 +++++++++++++++++-- 2 files changed, 94 insertions(+), 10 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 128a664a6b..fe18ce9a63 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -116,9 +116,11 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): # item = self.mc.parse(output, type=AstItemStack) # FIXME no parser asscioated? - output_ast = self.mc.parse(output, using='item_stack') - output_id = self.mc.serialize(output_ast.identifier).removeprefix('minecraft:') - print(f"\tItem Fill {input}->{output_id}") + # output_ast = self.mc.parse(output, using='item_stack') + # output_id = self.mc.serialize(output_ast.identifier).removeprefix('minecraft:') + # print(f"\tItem Fill {input}->{output_id}") + # ns_output = add_namespace(output_id, "minecraft") + output_id = output.split('[', 1)[0].removeprefix('minecraft:') ns_output = add_namespace(output_id, "minecraft") # retrieve max allowable stack size diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index ae1c9d18fa..877e9406af 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -1,6 +1,8 @@ from gm4_liquid_tanks:liquid_wrappers import liquid bucket = liquid.standard_unit('bucket', 3) +bowl = liquid.standard_unit('bowl', 1) +bottle = liquid.standard_unit('glass_bottle', 1) @liquid class Lava: @@ -9,7 +11,6 @@ class Lava: capacity = 300 liquid.init() - bucket('lava_bucket') # item_fill on a standard unit @liquid @@ -19,10 +20,8 @@ class Water: capacity = 300 liquid.init() - bucket('water_bucket') - - liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"}]', 1, reversable=False) + bottle('minecraft:potion[potion_contents={potion:"water"}]') @liquid class Milk: @@ -31,6 +30,89 @@ class Milk: capacity = 300 liquid.init() - @liquid.item_fill('bucket', 'milk_bucket', 4) - def special_milk(): - loot replace entity gm4_forceload weapon.mainhand loot minecraft:blocks/azure_bluet + bucket('milk_bucket') + +@liquid +class PowderSnow: + id = 'powder_snow' + name = 'Powder Snow' + capacity = 300 + + liquid.init() + bucket('powder_snow_bucket') + +@liquid +class MushroomStew: + id = 'mushroom_stew' + name = 'Mushroom Stew' + capacity = 300 + + liquid.init() + bowl('mushroom_stew') + +@liquid +class RabbitStew: + id = 'rabbit_stew' + name = 'Rabbit Stew' + capacity = 300 + + liquid.init() + bowl('rabbit_stew') + +@liquid +class BeetrootSoup: + id = 'beetroot_soup' + name = 'Beetroot Soup' + capacity = 300 + + liquid.init() + bowl('beetroot_soup') + liquid.item_drain('beetroot', 'air', 1) + +@liquid +class Honey: + id = 'honey' + name = 'Honey' + capacity = 400 + + liquid.init() + bottle('honey_bottle') + liquid.item_drain('honey_block', 'air', 4) + +@liquid +class Experience: + id = 'experience' + name = 'Experience' + capacity = 1395 + + liquid.init() + liquid.item_fill('glass_bottle', 'experience_bottle', 9) + liquid.item_drain('enchanted_book', 'book', 7) + liquid.item_drain('paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]', 'paper', 5) + +@liquid +class Ink: + id = 'ink' + name = 'Ink' + capacity = 300 + + liquid.init() + liquid.item_drain('ink_sac', 'air', 1) + @bottle('minecraft:potion[custom_data~{gm4_standard_liquids:{potion:"blindness"}}]') + def ink_bottle(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:ink_bottle + +@liquid +class GlowInk: + id = 'glow_ink' + name = 'Glow Ink' + capacity = 300 + + liquid.init() + liquid.item_drain('glow_ink_sac', 'air', 1) + @bottle('minecraft:potion[custom_data~{gm4_standard_liquids:{potion:"glowing"}}]') + def glow_ink_bottle(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:glow_ink_bottle + + liquid.item_fill('item_frame', 'glow_item_frame', 1, reversable=False) + From ec6895c5f8c0b1d46fd49dacad1a649b991e28df Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 19 Jul 2024 11:13:28 -0400 Subject: [PATCH 24/76] Cleanup item_drain naming logic --- .../modules/liquid_wrappers.bolt | 17 +++++++++++++++-- .../gm4_standard_liquids2/modules/main.bolt | 2 ++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index fe18ce9a63..0fae37579a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -122,6 +122,7 @@ class Liquid: # ns_output = add_namespace(output_id, "minecraft") output_id = output.split('[', 1)[0].removeprefix('minecraft:') ns_output = add_namespace(output_id, "minecraft") + print(f"\tItem Fill {input}->{output_id}") # retrieve max allowable stack size if ns_output in unstackables: @@ -132,7 +133,11 @@ class Liquid: stack_limit = "..64" # FIXME this should remove that execute subcommand from the chain.. somehow # retrieve name for generated function - func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_fill) + if not isinstance(fcn, partial): # not Liquid._default_set_output: + func_name = fcn.__name__ + self.naming_schemes.register(func_name, ~/../item_fill) + else: + func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_fill) append function ~/../item_fill: execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{func_name}: @@ -179,8 +184,9 @@ class Liquid: # if isinstance(fcn, partial) and fcn.func is self._default_set_output: # there aren't extra commands to consider # see if we can reuse a standard unit - func_name = self.units.get((output, -value), None) + func_name = self.units.get((output, value), None) if func_name: + print(f"registering funcname {func_name}") self.naming_schemes.register(func_name, ~/../item_drain) # if not, retrive the name for the generated function @@ -220,6 +226,7 @@ class NamingSchemes(): def __init__(self): self.schemes = [ self.potion, + self.not_air, self.output_name, self.input_name, self.combined_name @@ -257,6 +264,12 @@ class NamingSchemes(): return f"{m.group(1)}_potion" return False + @staticmethod + def not_air(input_name: str, output_name: str) -> str | bool: + if output_name == "air": + return input_name # always name a clear item operation after what is being cleared + return False + liquid = Liquid() # common instance for most cases if __name__ == "__main__": diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index 877e9406af..9005522e34 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -90,6 +90,8 @@ class Experience: liquid.item_drain('enchanted_book', 'book', 7) liquid.item_drain('paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]', 'paper', 5) + #TODO I could add a custom naming rule here - more as an example than necessary - for enchanted_page + @liquid class Ink: id = 'ink' From 71a9cacc528102650957502c7b9d574dcd25fbd8 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 15:57:28 -0400 Subject: [PATCH 25/76] Switch to item_displays for visible liquid --- .../modules/liquid_wrappers.bolt | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 0fae37579a..75613d5b8c 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -68,18 +68,21 @@ class Liquid: function ~/../liquid_init/{self.struc.id}: # append function_tag gm4_liquid_tanks:tank_init {"values": [(~/)]} # FIXME this line is for... what? data merge block ~ ~ ~ {CustomName:f'{{"translate":"gm4.second","fallback":"%1$s","with":[{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank"}},[{{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"}},{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} 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:"$gm4_standard_liquids:liquids/lava"}}] + summon item_display ~ ~ ~: + CustomName: '"gm4_liquid_tank_liquid_display"' + Tags: ["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict"] + item: + id: player_head + count:1b + components:{ + "minecraft:profile": f"$gm4_standard_liquids:liquids/{self.struc.id}" + } + transformation: + left_rotation: [0f,0f,0f,1f] + right_rotation: [0f,0f,0f,1f] + translation: [0f,0.2185f,0f] + scale: [0.83, 0.83, 0.83] + item_display: head data modify entity @s data.gm4_liquid_tanks.liquid_tag set value f"gm4_lt_{self.struc.id}" scoreboard players set @s gm4_lt_max self.struc.capacity tag @s add f'gm4_lt_{self.struc.id}' @@ -198,6 +201,7 @@ class Liquid: scoreboard players set $item_value gm4_lt_value value fcn() # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_drain + tag @s add gm4_lt_drain append function ~/../tank_init: execute if items block ~ ~ ~ container.0 input run function ~/../liquid_init/{self.struc.id} From d7858e09809dbaf75e44d99a523cd2335dd6685a Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 16:11:35 -0400 Subject: [PATCH 26/76] Switch to new "item_name" name format for ink bottles --- .../data/gm4_liquid_tanks/functions/empty.mcfunction | 2 +- .../data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json | 3 ++- .../data/gm4_standard_liquids/loot_tables/ink_bottle.json | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction index be67504b93..bd2936c58e 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/functions/empty.mcfunction @@ -2,7 +2,7 @@ #run from liquid_tanks:liquid_value_update scoreboard players set @s gm4_lt_value 0 -execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid,distance=..0.5] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.5] data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank","font":"gm4:default","color":"#404040"}]]}'} data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "empty" function #gm4_liquid_tanks:remove_liquid_tags diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json index a0336936c9..943d0f496c 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/glow_ink_bottle.json @@ -39,7 +39,8 @@ "translate": "item.gm4.glow_ink_bottle", "fallback": "Glow Ink Bottle", "italic": false - } + }, + "target": "item_name" } ] } diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json index 55b057295e..a213675c11 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_tables/ink_bottle.json @@ -34,7 +34,8 @@ "translate": "item.gm4.ink_bottle", "fallback": "Ink Bottle", "italic": false - } + }, + "target": "item_name" } ] } From c715bf49b6e3058ca8026217d4166c59cad3f5fd Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 22:26:21 -0400 Subject: [PATCH 27/76] Support yield for mcfunction decoration --- .../modules/liquid_wrappers.bolt | 23 ++++++++++++++++++- .../gm4_standard_liquids2/modules/main.bolt | 5 +++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 75613d5b8c..53fb8b55cd 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -1,5 +1,6 @@ from functools import wraps, partial import re +from inspect import isgeneratorfunction from beet import Context from mecha import Mecha, AstItemStack @@ -142,12 +143,16 @@ class Liquid: else: func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_fill) + # transform any supplied mcfunction into generator + genfcn = self._multiple_mcfunction(fcn) + append function ~/../item_fill: execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if score $stack_size gm4_lt_value matches stack_limit if items block ~ ~ ~ container.0 input run function ~/{func_name}: scoreboard players set $item_value gm4_lt_value (-value) - fcn() # runs _default_set_output unless alternative is supplied + next(genfcn) # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill + next(genfcn) # give nicer info about this wrapped function if not used as decorator if isinstance(fcn, partial): @@ -223,6 +228,22 @@ class Liquid: return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec + @staticmethod + def _multiple_mcfunction(fcn): + """Ensures the given function operates as a generator, allowing for multiple chunks of returned mcfunction""" + if isgeneratorfunction(fcn): + def accept_stopiteration(): + fcninst = fcn() + while True: + yield next(fcninst, None) + return accept_stopiteration() + else: + def genfunc(): + yield fcn() + while True: + yield None + return genfunc() + class NamingSchemes(): """Helper class for controlling how item_drain/ and item_fill/ functions are named""" used_names: dict[str, set[str]] = {} diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt index 9005522e34..474b4cfec2 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt @@ -86,7 +86,10 @@ class Experience: capacity = 1395 liquid.init() - liquid.item_fill('glass_bottle', 'experience_bottle', 9) + @liquid.item_fill('glass_bottle', 'experience_bottle', 9) + def experience_bottle(): + yield + execute if score $smart_success gm4_lt_value matches 1 run advancement grant @a[distance=..4,gamemode=!spectator] only gm4:standard_liquids liquid.item_drain('enchanted_book', 'book', 7) liquid.item_drain('paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]', 'paper', 5) From 54002d5f7f8355e159df05c4f700a17c07d89743 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 22:29:01 -0400 Subject: [PATCH 28/76] Unused yield syntax support for item_drain --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 53fb8b55cd..72c15a04c3 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -201,10 +201,13 @@ class Liquid: if not func_name: func_name = self.naming_schemes.retrieve_and_register(input, output, ~/../item_drain) + # transform any supplied mcfunction into generator + genfcn = self._multiple_mcfunction(fcn) + append function ~/../item_drain: execute if entity @s[tag=f'gm4_lt_{self.struc.id}'] if items block ~ ~ ~ container.0 input run function ~/{func_name}: scoreboard players set $item_value gm4_lt_value value - fcn() # runs _default_set_output unless alternative is supplied + next(genfcn) # runs _default_set_output unless alternative is supplied function gm4_liquid_tanks:smart_item_drain tag @s add gm4_lt_drain @@ -232,7 +235,7 @@ class Liquid: def _multiple_mcfunction(fcn): """Ensures the given function operates as a generator, allowing for multiple chunks of returned mcfunction""" if isgeneratorfunction(fcn): - def accept_stopiteration(): + def accept_stopiteration(): # bolt does not have try/except yet, so this is an alternate implementation fcninst = fcn() while True: yield next(fcninst, None) From acf65c637b41934eda6337a4ba6a8079bb1aaf89 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 22:58:31 -0400 Subject: [PATCH 29/76] Cleanup development notes --- .../modules/liquid_wrappers.bolt | 170 ------------------ 1 file changed, 170 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 72c15a04c3..9a92ede355 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -10,16 +10,6 @@ from gm4.utils import add_namespace from gm4_auto_crafting.generate import unstackables, stackable_16 # NOTE future versions can pull the default component from 1.20.5 item.json -# We're trying out a class-definition approach, rather than a class-instantiation one. - # it might wind up feeling more natural within bolt -def liquid(cls): - print("defining new basic liquid") - @wraps(cls) - class ThisLiquid(cls): - pass - - return ThisLiquid - # function that generates no mcfunction def emptyfunc(): pass @@ -55,7 +45,6 @@ class Liquid: if getattr(self, field, None): setattr(DecoratedLiquid, field, getattr(self, field, None)) - print(self.generators) self.struc = DecoratedLiquid # link access to class variables through `self` for fcn in self.generators: fcn() # create the mcfunction resources @@ -119,14 +108,8 @@ class Liquid: def dec_with_args(fcn, fcn_to_replace): @wraps(fcn) def wrapped_fcn(): - # item = self.mc.parse(output, type=AstItemStack) # FIXME no parser asscioated? - # output_ast = self.mc.parse(output, using='item_stack') - # output_id = self.mc.serialize(output_ast.identifier).removeprefix('minecraft:') - # print(f"\tItem Fill {input}->{output_id}") - # ns_output = add_namespace(output_id, "minecraft") output_id = output.split('[', 1)[0].removeprefix('minecraft:') ns_output = add_namespace(output_id, "minecraft") - print(f"\tItem Fill {input}->{output_id}") # retrieve max allowable stack size if ns_output in unstackables: @@ -188,13 +171,9 @@ class Liquid: def dec_with_args(fcn, fcn_to_replace): @wraps(fcn) def wrapped_fcn(): - print(f"\tItem Drain {input}->{output}") - # if isinstance(fcn, partial) and fcn.func is self._default_set_output: # there aren't extra commands to consider - # see if we can reuse a standard unit func_name = self.units.get((output, value), None) if func_name: - print(f"registering funcname {func_name}") self.naming_schemes.register(func_name, ~/../item_drain) # if not, retrive the name for the generated function @@ -299,152 +278,3 @@ class NamingSchemes(): return False liquid = Liquid() # common instance for most cases - -if __name__ == "__main__": - - ## Defining a class - - # by decorated class - @liquid - class Milk: - id = 'milk' - capacity = 300 - skullowner = 'skins/milk' - - print(Milk.id) - print(Milk.capacity) - - # or by extended base decorator with partial bindings - bucketable = Liquid(None, 300, None) - - print(bucketable.id) - print(bucketable.capacity) - - @bucketable - class PowderSnow: - id = 'powder_snow' - capacity = 400 - skullowner = 'skins/snow' - - print(PowderSnow.capacity) - - ## Using methods to define behavior - @liquid - class MushroomSoup: - id = 'mushroom_soup' - capacity = 300 - skullowner = 'skins/snow' - - @liquid.init - def liquid_init(): - # particle block ~ ~ ~ red_mushroom 1 0 force - pass - - # or with no additional code - @liquid - class BeetrootSoup: - id = 'beetroot_soup' - capacity = 300 - skullowner = 'skins/beetboi' - - liquid_init = liquid.init() - - # or even programatically? - @liquid - class RabbitStew: - id = 'rabbit_stew' - capacity = 300 - skullowner = 'skins/bunnyface' - - # @RabbitStew.init # I don't know if this is desirable or useful yet, so I'll leave it here for the time being - # def stew_init(): - # # summon killer_bunny - # pass - - # using methods to define arbitrary item fills - @liquid - class Experience: - id = 'xp' - capacity = 1365 - skullowner = 'skins/magic' - - @liquid.item_fill('bottle', 'xp_bottle', 6) - def experience_bottle(): - pass - - magic_book = liquid.item_fill('book', 'enchanted_book', 3, False) - - liquid.item_fill('paper', 'explorer_map', 100, False) - - # or defining common units for shared use using partial - bottle = partial(liquid.item_fill, input='bottle', value=1) - - @liquid - class Honey: - id = 'honey' - capacity = 400 - skullowner = 'skins/beesbeesallthebees' - - @bottle(output='honey_bottle') - def honey_bottle(): - pass - - bottle(output='dragons_breath') - - @liquid.item_drain(input='honey_block', output='air', value=4) - def honey_block(): - pass - - - # @standard_unit('bucket', 3) - # def bucket(): - # #summon bat{CustomName:'Whoops there goes your bucket'} - # pass - - # bottle = standard_unit('bottle', 1) - # bottle = partial(liquid.item_fill, input='bottle', value=3) - - # @liquid - # class Lava: - # id = 'lava' - # capacity = 100 - # skullowner = 'skins/lava' - - # @liquid_init - # def lava_init(): - # #advancement grant @p gm4_standard_liquids:mini_volcano - # pass - - # @item_fill('bucket', 'lava_bucket', 3, reversible=True) - # def lava_bucket(): - # #advancement grant @p gm4_standard_liquids:shouldnt_that_iron_melt - # pass - - # # reversible would automatically create the item_drain direction. - # # what about additional commands in that direction? Do I dare use yield and generators? - # # we generally assume anything that can be filled can also be drained, exceptions are usually for items destroyed by the drain - # # like enchanted pages, beetroot and honey_blocks. - - # lava_bucket = item_drain('magma_block', 'air', 2, reversible=False) - # # maybe like this if there are no additional commands to run? - - # @bottle('potion{gm4_standard_liquids:{id:"lava_bottle"}}') # acts as an `item_fill` decorator? - # def lava_bottle(): - # #loot insert container.0 gm4_standard_liquids:lava_bottle - # pass - - # yea dealing with non-standard items is a real pain in the ass even with this system... - - - # @Liquid() - # class Test2: - # def my_2method(self): - # print("my_2method") - - # print(Lava) - - -# "overloading" the decorator in this way seems... difficult to say the least. Maybe rx has some thoughts about how to do this better - # I *think* that it can be acomplished, but it would require like... delaying the mcfunction creation until we're sure the decorator isn't - # going to be called to wrap a method. Is there like an exit phase? Or maybe at the end of the @liquid class wrapper we can run through all - # its liquid processors? From 24e166b0b4430a07184dae90de06856d6ead3d4c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 24 Jul 2024 22:54:41 -0400 Subject: [PATCH 30/76] Trial fix for build action --- beet-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/beet-release.yaml b/beet-release.yaml index 2507679f31..ce94cefd66 100644 --- a/beet-release.yaml +++ b/beet-release.yaml @@ -10,9 +10,9 @@ pipeline: - gm4.plugins.annotations.add_module_dir_to_diagnostics - gm4.plugins.output.release - gm4.plugins.manifest.update_patch + - gm4.plugins.versioning.isolated_library pipeline: - beet.contrib.lantern_load.base_data_pack - - gm4.plugins.versioning.isolated_library - gm4.plugins.manifest.write_credits - gm4.plugins.test.strip_tests - require: [beet.contrib.copy_files] From a75e5c409d5f29f26640bd584dcc6caca3bf60d1 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 25 Jul 2024 18:28:12 -0400 Subject: [PATCH 31/76] Apply bolt approach to standard_liquids for real --- gm4_liquid_tanks/beet.yaml | 2 +- .../functions/item_drain.mcfunction | 43 ------------------- .../functions/item_drain/beetroot.mcfunction | 7 --- .../functions/item_drain/bottle.mcfunction | 8 ---- .../functions/item_drain/bowl.mcfunction | 7 --- .../functions/item_drain/bucket.mcfunction | 7 --- .../item_drain/enchanted_book.mcfunction | 7 --- .../item_drain/enchanted_page.mcfunction | 7 --- .../item_drain/experience_bottle.mcfunction | 7 --- .../item_drain/honey_block.mcfunction | 7 --- .../functions/item_drain/ink_sac.mcfunction | 7 --- .../functions/item_fill.mcfunction | 25 ----------- .../item_fill/beetroot_soup.mcfunction | 7 --- .../item_fill/experience_bottle.mcfunction | 9 ---- .../item_fill/glow_ink_bottle.mcfunction | 9 ---- .../item_fill/glow_item_frame.mcfunction | 7 --- .../item_fill/honey_bottle.mcfunction | 7 --- .../functions/item_fill/ink_bottle.mcfunction | 9 ---- .../item_fill/lava_bucket.mcfunction | 7 --- .../item_fill/milk_bucket.mcfunction | 7 --- .../item_fill/mushroom_stew.mcfunction | 7 --- .../item_fill/powder_snow_bucket.mcfunction | 7 --- .../item_fill/rabbit_stew.mcfunction | 7 --- .../item_fill/water_bottle.mcfunction | 7 --- .../item_fill/water_bucket.mcfunction | 7 --- .../liquid_init/beetroot_soup.mcfunction | 6 --- .../liquid_init/experience.mcfunction | 6 --- .../functions/liquid_init/glow_ink.mcfunction | 6 --- .../functions/liquid_init/honey.mcfunction | 6 --- .../functions/liquid_init/ink.mcfunction | 6 --- .../functions/liquid_init/lava.mcfunction | 6 --- .../functions/liquid_init/milk.mcfunction | 6 --- .../liquid_init/mushroom_stew.mcfunction | 6 --- .../liquid_init/powder_snow.mcfunction | 6 --- .../liquid_init/rabbit_stew.mcfunction | 6 --- .../functions/liquid_init/water.mcfunction | 6 --- .../functions/remove_liquid_tags.mcfunction | 14 ------ .../functions/tank_init.mcfunction | 42 ------------------ .../modules/main.bolt | 0 39 files changed, 1 insertion(+), 352 deletions(-) delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/beetroot.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bowl.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_book.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_page.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/experience_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/honey_block.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/ink_sac.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/beetroot_soup.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/experience_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_ink_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_item_frame.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/honey_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/ink_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/lava_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/milk_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/mushroom_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/powder_snow_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/rabbit_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/beetroot_soup.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/experience.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/glow_ink.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/honey.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/ink.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/lava.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/milk.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/mushroom_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/powder_snow.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/rabbit_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/water.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/remove_liquid_tags.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction rename gm4_liquid_tanks/data/{gm4_standard_liquids2 => gm4_standard_liquids}/modules/main.bolt (100%) diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index d39536df3d..fd1166384c 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -20,7 +20,7 @@ pipeline: meta: bolt: entrypoint: - - gm4_standard_liquids2:main + - gm4_standard_liquids:main gm4: versioning: required: diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction deleted file mode 100644 index 5988c52eb0..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain.mcfunction +++ /dev/null @@ -1,43 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#water -execute if entity @s[tag=gm4_lt_water] if items block ~ ~ ~ container.0 minecraft:water_bucket run function gm4_standard_liquids:item_drain/bucket -execute if entity @s[tag=gm4_lt_water] if items block ~ ~ ~ container.0 minecraft:potion[minecraft:potion_contents={potion:"minecraft:water"}] run function gm4_standard_liquids:item_drain/bottle -return fail - -#lava -execute if entity @s[tag=gm4_lt_lava] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:item_drain/bucket - -#milk -execute if entity @s[tag=gm4_lt_milk] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:milk_bucket"}} run function gm4_standard_liquids:item_drain/bucket - -#mushroom stew -execute if entity @s[tag=gm4_lt_mushroom_stew] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:mushroom_stew"}} run function gm4_standard_liquids:item_drain/bowl - -#rabbit stew -execute if entity @s[tag=gm4_lt_rabbit_stew] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:rabbit_stew"}} run function gm4_standard_liquids:item_drain/bowl - -#beetroot soup -execute if entity @s[tag=gm4_lt_beetroot_soup] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot_soup"}} run function gm4_standard_liquids:item_drain/bowl -execute if entity @s[tag=gm4_lt_beetroot_soup] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot"}} run function gm4_standard_liquids:item_drain/beetroot - -#experience -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:experience_bottle"}} run function gm4_standard_liquids:item_drain/experience_bottle -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:enchanted_book"}} run function gm4_standard_liquids:item_drain/enchanted_book -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:paper",components:{"minecraft:custom_data":{gm4_book_binders:{item:"enchanted_page"}}}}} run function gm4_standard_liquids:item_drain/enchanted_page - -#honey -execute if entity @s[tag=gm4_lt_honey] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_bottle"}} run function gm4_standard_liquids:item_drain/bottle -execute if entity @s[tag=gm4_lt_honey] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_block"}} run function gm4_standard_liquids:item_drain/honey_block - -#powder snow -execute if entity @s[tag=gm4_lt_powder_snow] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:powder_snow_bucket"}} run function gm4_standard_liquids:item_drain/bucket - -#ink -execute if entity @s[tag=gm4_lt_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:ink_sac"}} run function gm4_standard_liquids:item_drain/ink_sac -execute if entity @s[tag=gm4_lt_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"blindness"}}}}} run function gm4_standard_liquids:item_drain/bottle - -#glow ink -execute if entity @s[tag=gm4_lt_glow_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glow_ink_sac"}} run function gm4_standard_liquids:item_drain/ink_sac -execute if entity @s[tag=gm4_lt_glow_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"glowing"}}}}} run function gm4_standard_liquids:item_drain/bottle diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/beetroot.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/beetroot.mcfunction deleted file mode 100644 index e0ebf8e3c1..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/beetroot.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"air"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bottle.mcfunction deleted file mode 100644 index 1c893fe96e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bottle.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain - diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bowl.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bowl.mcfunction deleted file mode 100644 index f460f24b46..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bowl.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"bowl"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction deleted file mode 100644 index c82344a402..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 3 -item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with bucket -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_book.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_book.mcfunction deleted file mode 100644 index c841460e7d..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_book.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 7 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"book"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_page.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_page.mcfunction deleted file mode 100644 index 2fd2b5def5..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/enchanted_page.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 5 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"paper"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/experience_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/experience_bottle.mcfunction deleted file mode 100644 index 9a2ae56114..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/experience_bottle.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 9 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/honey_block.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/honey_block.mcfunction deleted file mode 100644 index 1f37c8a6c8..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/honey_block.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 4 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"air"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/ink_sac.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/ink_sac.mcfunction deleted file mode 100644 index e0ebf8e3c1..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_drain/ink_sac.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"air"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction deleted file mode 100644 index 03da85dc62..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill.mcfunction +++ /dev/null @@ -1,25 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#buckets -execute if entity @s[tag=gm4_lt_water] if score $stack_size gm4_lt_value matches 1 if items block ~ ~ ~ container.0 bucket run function gm4_standard_liquids:item_fill/water_bucket -return fail - -execute if entity @s[tag=gm4_lt_lava] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/lava_bucket -execute if entity @s[tag=gm4_lt_milk] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/milk_bucket -execute if entity @s[tag=gm4_lt_powder_snow] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bucket"}} run function gm4_standard_liquids:item_fill/powder_snow_bucket - -#bottles -execute if entity @s[tag=gm4_lt_water] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/water_bottle -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/experience_bottle -execute if entity @s[tag=gm4_lt_honey] if score $stack_size gm4_lt_value matches ..16 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/honey_bottle -execute if entity @s[tag=gm4_lt_ink] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/ink_bottle -execute if entity @s[tag=gm4_lt_glow_ink] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_standard_liquids:item_fill/glow_ink_bottle - -#bowls -execute if entity @s[tag=gm4_lt_mushroom_stew] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bowl"}} run function gm4_standard_liquids:item_fill/mushroom_stew -execute if entity @s[tag=gm4_lt_rabbit_stew] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bowl"}} run function gm4_standard_liquids:item_fill/rabbit_stew -execute if entity @s[tag=gm4_lt_beetroot_soup] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:bowl"}} run function gm4_standard_liquids:item_fill/beetroot_soup - -#item frame -execute if entity @s[tag=gm4_lt_glow_ink] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:item_frame"}} run function gm4_standard_liquids:item_fill/glow_item_frame diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/beetroot_soup.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/beetroot_soup.mcfunction deleted file mode 100644 index 65ade0d437..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/beetroot_soup.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"beetroot_soup"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/experience_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/experience_bottle.mcfunction deleted file mode 100644 index b90d5227b9..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/experience_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -9 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"experience_bottle"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill - -execute if score $smart_success gm4_lt_value matches 1 run advancement grant @a[distance=..4,gamemode=!spectator] only gm4:standard_liquids diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_ink_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_ink_bottle.mcfunction deleted file mode 100644 index f6b74571c4..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_ink_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_standard_liquids:glow_ink_bottle -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] HandItems[0] -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_item_frame.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_item_frame.mcfunction deleted file mode 100644 index a5bf654abd..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/glow_item_frame.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glow_item_frame"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/honey_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/honey_bottle.mcfunction deleted file mode 100644 index ebeddc6d71..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/honey_bottle.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"honey_bottle"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/ink_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/ink_bottle.mcfunction deleted file mode 100644 index ea23e4aaca..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/ink_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_standard_liquids:ink_bottle -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] HandItems[0] -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/lava_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/lava_bucket.mcfunction deleted file mode 100644 index 5f2b34d94b..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/lava_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"lava_bucket"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/milk_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/milk_bucket.mcfunction deleted file mode 100644 index e15ab15d8e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/milk_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"milk_bucket"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/mushroom_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/mushroom_stew.mcfunction deleted file mode 100644 index fd456515c6..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/mushroom_stew.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"mushroom_stew"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/powder_snow_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/powder_snow_bucket.mcfunction deleted file mode 100644 index 7180be3b72..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/powder_snow_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"powder_snow_bucket"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/rabbit_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/rabbit_stew.mcfunction deleted file mode 100644 index 3e6fd9dbab..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/rabbit_stew.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"rabbit_stew"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bottle.mcfunction deleted file mode 100644 index dd8ff5c751..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bottle.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:water"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction deleted file mode 100644 index aba53f72ef..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/item_fill/water_bucket.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_standard_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -3 -item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with water_bucket 1 -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/beetroot_soup.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/beetroot_soup.mcfunction deleted file mode 100644 index f910df177a..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/beetroot_soup.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.beetroot_soup","fallback":"Beetroot Soup Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.beetroot_soup","fallback":"Beetroot Soup 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/beetroot_soup"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_beetroot_soup" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_beetroot_soup -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/experience.mcfunction deleted file mode 100644 index 788ae503b4..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/experience.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.experience","fallback":"Experience Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.experience","fallback":"Experience 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/experience"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_experience" -scoreboard players set @s gm4_lt_max 1395 -tag @s add gm4_lt_experience -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/glow_ink.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/glow_ink.mcfunction deleted file mode 100644 index 8e51921c02..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/glow_ink.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.glow_ink","fallback":"Glow Ink Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.glow_ink","fallback":"Glow Ink 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/glow_ink"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_glow_ink" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_glow_ink -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/honey.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/honey.mcfunction deleted file mode 100644 index 431f3762a0..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/honey.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.honey","fallback":"Honey Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.honey","fallback":"Honey 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/honey"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_honey" -scoreboard players set @s gm4_lt_max 400 -tag @s add gm4_lt_honey -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/ink.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/ink.mcfunction deleted file mode 100644 index 2e0e632769..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/ink.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.ink","fallback":"Ink Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.ink","fallback":"Ink 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/ink"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_ink" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_ink -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/lava.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/lava.mcfunction deleted file mode 100644 index 782246a8c5..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/lava.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.lava","fallback":"Lava Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.lava","fallback":"Lava 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/lava"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_lava" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_lava -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/milk.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/milk.mcfunction deleted file mode 100644 index 7f04e68bcc..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/milk.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.milk","fallback":"Milk Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.milk","fallback":"Milk 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/milk"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_milk" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_milk -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/mushroom_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/mushroom_stew.mcfunction deleted file mode 100644 index 90649f1775..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/mushroom_stew.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.mushroom_stew","fallback":"Mushroom Stew Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.mushroom_stew","fallback":"Mushroom Stew 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/mushroom_stew"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_mushroom_stew" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_mushroom_stew -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/powder_snow.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/powder_snow.mcfunction deleted file mode 100644 index 28f9e77bb8..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/powder_snow.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.powder_snow","fallback":"Powder Snow Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.powder_snow","fallback":"Powder Snow 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/powder_snow"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_powder_snow" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_powder_snow -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/rabbit_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/rabbit_stew.mcfunction deleted file mode 100644 index 2a3da2babd..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/rabbit_stew.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.rabbit_stew","fallback":"Rabbit Stew Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.rabbit_stew","fallback":"Rabbit Stew 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/rabbit_stew"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_rabbit_stew" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_rabbit_stew -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/water.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/water.mcfunction deleted file mode 100644 index 79e96af38f..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/liquid_init/water.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.water","fallback":"Water Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.water","fallback":"Water 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:1,components:{"minecraft:profile":"$gm4_standard_liquids:liquids/water"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_water" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_water -tag @s remove gm4_lt_empty diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/remove_liquid_tags.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/remove_liquid_tags.mcfunction deleted file mode 100644 index 3f835f0154..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/remove_liquid_tags.mcfunction +++ /dev/null @@ -1,14 +0,0 @@ -#@s = liquid tank stand -# removes all liquid tags from the stand. Used for emptying tank and reassigning liquid type - -tag @s remove gm4_lt_beetroot_soup -tag @s remove gm4_lt_experience -tag @s remove gm4_lt_lava -tag @s remove gm4_lt_milk -tag @s remove gm4_lt_mushroom_stew -tag @s remove gm4_lt_rabbit_stew -tag @s remove gm4_lt_water -tag @s remove gm4_lt_honey -tag @s remove gm4_lt_powder_snow -tag @s remove gm4_lt_ink -tag @s remove gm4_lt_glow_ink diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction deleted file mode 100644 index a169751d7b..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/functions/tank_init.mcfunction +++ /dev/null @@ -1,42 +0,0 @@ -#@s = empty liquid tank with item in first slot or entity on top -#run from liquid_tanks:item_process - -#water -execute if items block ~ ~ ~ container.0 minecraft:water_bucket run function gm4_standard_liquids:liquid_init/water -execute if items block ~ ~ ~ container.0 minecraft:potion[minecraft:potion_contents={potion:"minecraft:water"}] run function gm4_standard_liquids:liquid_init/water -return fail -#lava -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lava_bucket"}} run function gm4_standard_liquids:liquid_init/lava - -#milk -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:milk_bucket"}} run function gm4_standard_liquids:liquid_init/milk - -#mushroom stew -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:mushroom_stew"}} run function gm4_standard_liquids:liquid_init/mushroom_stew - -#rabbit stew -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:rabbit_stew"}} run function gm4_standard_liquids:liquid_init/rabbit_stew - -#beetroot soup -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot_soup"}} run function gm4_standard_liquids:liquid_init/beetroot_soup -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:beetroot"}} run function gm4_standard_liquids:liquid_init/beetroot_soup - -#experience -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:experience_bottle"}} run function gm4_standard_liquids:liquid_init/experience -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:enchanted_book"}} run function gm4_standard_liquids:liquid_init/experience - -#honey -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_bottle"}} run function gm4_standard_liquids:liquid_init/honey -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:honey_block"}} run function gm4_standard_liquids:liquid_init/honey - -#powder snow -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:powder_snow_bucket"}} run function gm4_standard_liquids:liquid_init/powder_snow - -#ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:ink_sac"}} run function gm4_standard_liquids:liquid_init/ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"blindness"}}}}} run function gm4_standard_liquids:liquid_init/ink - - -#glow ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glow_ink_sac"}} run function gm4_standard_liquids:liquid_init/glow_ink -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_standard_liquids:{potion:"glowing"}}}}} run function gm4_standard_liquids:liquid_init/glow_ink diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt similarity index 100% rename from gm4_liquid_tanks/data/gm4_standard_liquids2/modules/main.bolt rename to gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt From 1882f5ebc5b450494c91f0f9024abf02a0b27966 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 25 Jul 2024 22:58:52 -0400 Subject: [PATCH 32/76] Increase experience-tank capacity to 50 levels --- .../level_report/experience.mcfunction | 45 +++++-------------- .../function/level_report_check.mcfunction | 4 +- .../gm4_standard_liquids/modules/main.bolt | 3 +- 3 files changed, 15 insertions(+), 37 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction index 8d06efdd6d..5d4a342b6d 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report/experience.mcfunction @@ -5,40 +5,17 @@ scoreboard players operation gm4_lt_report_calc gm4_lt_value = @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_value #values hardcoded -execute if score gm4_lt_report_calc gm4_lt_value matches 0..6 run title @s actionbar [{"text":"0 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 7..15 run title @s actionbar [{"text":"1 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 16..26 run title @s actionbar [{"text":"2 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 27..39 run title @s actionbar [{"text":"3 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 40..54 run title @s actionbar [{"text":"4 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 55..71 run title @s actionbar [{"text":"5 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 72..90 run title @s actionbar [{"text":"6 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 91..111 run title @s actionbar [{"text":"7 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 112..134 run title @s actionbar [{"text":"8 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 135..159 run title @s actionbar [{"text":"9 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 160..186 run title @s actionbar [{"text":"10 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] - -execute if score gm4_lt_report_calc gm4_lt_value matches 187..215 run title @s actionbar [{"text":"11 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 216..246 run title @s actionbar [{"text":"12 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 247..279 run title @s actionbar [{"text":"13 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 280..314 run title @s actionbar [{"text":"14 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 315..351 run title @s actionbar [{"text":"15 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 352..393 run title @s actionbar [{"text":"16 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 394..440 run title @s actionbar [{"text":"17 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 441..492 run title @s actionbar [{"text":"18 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 493..549 run title @s actionbar [{"text":"19 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 550..611 run title @s actionbar [{"text":"20 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] - -execute if score gm4_lt_report_calc gm4_lt_value matches 612..678 run title @s actionbar [{"text":"21 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 679..750 run title @s actionbar [{"text":"22 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 751..827 run title @s actionbar [{"text":"23 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 828..909 run title @s actionbar [{"text":"24 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 910..996 run title @s actionbar [{"text":"25 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 997..1088 run title @s actionbar [{"text":"26 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1089..1185 run title @s actionbar [{"text":"27 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1186..1287 run title @s actionbar [{"text":"28 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1288..1394 run title @s actionbar [{"text":"29 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] -execute if score gm4_lt_report_calc gm4_lt_value matches 1395.. run title @s actionbar [{"text":"30 / 30 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] - +# 0-15 formula +prior_points = 0 +for lvl in range(1,52): + if lvl <= 16: + current_points = lvl**2 + 6*lvl + elif lvl <= 31: + current_points = 2.5*lvl**2 - 40.5*lvl + 360 + else: + current_points = 4.5*lvl**2 - 162.5*lvl + 2220 + execute if score gm4_lt_report_calc gm4_lt_value matches (int(prior_points), int(current_points-1)) run title @s actionbar [{"text":f"{lvl-1} / 50 ","color":"dark_green"},{"translate":"text.gm4.liquid_tanks.level_report.levels","fallback":"Levels","color":"dark_green"}] + prior_points = current_points scoreboard players reset gm4_lt_report_calc gm4_lt_value tag @s add gm4_lt_found_tank diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction index d1934ade9b..bd4214705d 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/level_report_check.mcfunction @@ -10,8 +10,8 @@ execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_ #actual max of 400 execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_max matches 400 run function gm4_standard_liquids:level_report/400 -#max 1395 (xp) -execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_max matches 1395 run function gm4_standard_liquids:level_report/experience +#max 5345 (xp) +execute if score @e[type=marker,tag=gm4_liquid_tank,distance=..0.1,limit=1] gm4_lt_max matches 5345 run function gm4_standard_liquids:level_report/experience #linking of util tanks to adjacent blocks diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt index 474b4cfec2..95e3b5a15c 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt @@ -83,11 +83,12 @@ class Honey: class Experience: id = 'experience' name = 'Experience' - capacity = 1395 + capacity = 5345 liquid.init() @liquid.item_fill('glass_bottle', 'experience_bottle', 9) def experience_bottle(): + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with minecraft:experience_bottle yield execute if score $smart_success gm4_lt_value matches 1 run advancement grant @a[distance=..4,gamemode=!spectator] only gm4:standard_liquids liquid.item_drain('enchanted_book', 'book', 7) From f431b9c9fa5f6f54317d12924e7c86c06b7673ec Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sat, 3 Aug 2024 23:49:35 -0400 Subject: [PATCH 33/76] Math-based full level deposits when sneaking --- .../gm4_liquid_tanks/function/init.mcfunction | 2 +- .../util/deposit_experience.mcfunction | 16 -------- .../util/experience/deposit_levels.mcfunction | 8 ++++ .../experience/deposit_one_level.mcfunction | 41 +++++++++++++++++++ .../util/experience/deposit_points.mcfunction | 16 ++++++++ .../experience/macro_experience.mcfunction | 2 + .../experience/scheduled_deposit.mcfunction | 13 ++++++ .../util/scheduled_deposit_exp.mcfunction | 7 ---- .../function/util_above.mcfunction | 6 +-- .../predicate/sneaking.json | 9 ++++ 10 files changed, 93 insertions(+), 27 deletions(-) delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/deposit_experience.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_levels.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_points.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/macro_experience.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_deposit_exp.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/predicate/sneaking.json diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction index ddd78fffc7..b79ff5dab2 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/init.mcfunction @@ -3,7 +3,7 @@ scoreboard objectives add gm4_lt_max dummy scoreboard objectives add gm4_lt_prior_val dummy scoreboard objectives add gm4_lt_disp_val dummy scoreboard objectives add gm4_lt_util dummy -#declare storage gm4_liquid_tanks:temp/tank +#declare storage gm4_liquid_tanks:temp execute unless score liquid_tanks gm4_modules matches 1 run data modify storage gm4:log queue append value {type:"install",module:"Liquid Tanks"} execute unless score liquid_tanks gm4_earliest_version < liquid_tanks gm4_modules run scoreboard players operation liquid_tanks gm4_earliest_version = liquid_tanks gm4_modules diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/deposit_experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/deposit_experience.mcfunction deleted file mode 100644 index 171d9f86af..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/deposit_experience.mcfunction +++ /dev/null @@ -1,16 +0,0 @@ -#@s = player above experience tank at center of tank -#run from standard_liquids:tick - -#dumps experience from player into tank -execute store result score @s gm4_lt_util run experience query @s points -execute if score @s gm4_lt_util matches 0 if entity @s[level=1..] run scoreboard players set @s gm4_lt_util 5 - -execute if score @s gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..1390 run experience add @s -4 points -execute if score @s gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..1390 run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 4 - -execute if score @s gm4_lt_util matches 1.. run experience add @s -1 points -execute if score @s gm4_lt_util matches 1.. run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 1 - -function #gm4_liquid_tanks:level_report_check - -execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_levels.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_levels.mcfunction new file mode 100644 index 0000000000..fea22791a6 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_levels.mcfunction @@ -0,0 +1,8 @@ +#@s = player above experience tank at center of tank +#run from standard_liquids:util/experience/scheduled_deposit + +execute unless score @s gm4_lt_util matches 0.. run scoreboard players set @s gm4_lt_util 16 + +scoreboard players remove @s gm4_lt_util 1 + +execute if score @s gm4_lt_util matches ..0 run function gm4_standard_liquids:util/experience/deposit_one_level diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction new file mode 100644 index 0000000000..e2fd369ffc --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction @@ -0,0 +1,41 @@ +#@s = player above experience tank at center of tank +#run from standard_liquids:util/experience/deposit_one_level + +# calculate points to remove one level +execute store result score $points gm4_lt_util run experience query @s points +execute store result score $levels gm4_lt_util run experience query @s levels + +scoreboard players set #2 gm4_lt_util 2 +scoreboard players set #5 gm4_lt_util 5 +scoreboard players set #9 gm4_lt_util 9 + +scoreboard players operation $level_calc gm4_lt_util = $levels gm4_lt_util +scoreboard players remove $level_calc gm4_lt_util 1 +execute if score $points gm4_lt_util matches 1.. run scoreboard players operation $level_calc gm4_lt_util = $points gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 1..15 run scoreboard players operation $level_calc gm4_lt_util *= #2 gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 1..15 run scoreboard players add $level_calc gm4_lt_util 7 +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 16..30 run scoreboard players operation $level_calc gm4_lt_util *= #5 gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 16..30 run scoreboard players remove $level_calc gm4_lt_util 38 +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 31.. run scoreboard players operation $level_calc gm4_lt_util *= #9 gm4_lt_util +execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 31.. run scoreboard players remove $level_calc gm4_lt_util 158 + +# decrease points to whatever will fit into the tank +scoreboard players set $overflow_calc gm4_lt_util 5345 +scoreboard players operation $overflow_calc gm4_lt_util -= @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value +scoreboard players operation $level_calc gm4_lt_util < $overflow_calc gm4_lt_util + +# add points to tank and remove from player +scoreboard players operation @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value += $level_calc gm4_lt_util +scoreboard players set #-1 gm4_lt_util -1 +scoreboard players operation $level_calc gm4_lt_util *= #-1 gm4_lt_util +execute store result storage gm4_liquid_tanks:temp exp.points int 1.0 run scoreboard players get $level_calc gm4_lt_util +function gm4_standard_liquids:util/experience/macro_experience with storage gm4_liquid_tanks:temp exp +execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update + +# vfx +playsound minecraft:entity.experience_orb.pickup block @s +function #gm4_liquid_tanks:level_report_check + +# reset accelerating clock +scoreboard players set @s gm4_lt_util 16 +# TODO accelerate diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_points.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_points.mcfunction new file mode 100644 index 0000000000..a96acfdbdf --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_points.mcfunction @@ -0,0 +1,16 @@ +#@s = player above experience tank at center of tank +#run from standard_liquids:tick + +#dumps 5 (or 1) points of experience from player into tank +execute store result score $available_points gm4_lt_util run experience query @s points +execute if score $available_points gm4_lt_util matches 0 if entity @s[level=1..] run scoreboard players set $available_points gm4_lt_util 5 + +execute if score $available_points gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..5340 run experience add @s -4 points +execute if score $available_points gm4_lt_util matches 4.. if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value matches ..5340 run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 4 + +execute if score $available_points gm4_lt_util matches 1.. run experience add @s -1 points +execute if score $available_points gm4_lt_util matches 1.. run scoreboard players add @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value 1 + +function #gm4_liquid_tanks:level_report_check + +execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/macro_experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/macro_experience.mcfunction new file mode 100644 index 0000000000..35ad5ee282 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/macro_experience.mcfunction @@ -0,0 +1,2 @@ +# macro-function to add/remove a dynamic number of experience points +$experience add @s $(points) points diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction new file mode 100644 index 0000000000..274204703c --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction @@ -0,0 +1,13 @@ +# scheduled from standard_liquids:util_above + +# initialize empty tanks +execute as @a[gamemode=!spectator,level=1..] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_empty] run function gm4_standard_liquids:liquid_init/experience + +# non-sneaking deposits points +execute as @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..5344 run function gm4_standard_liquids:util/experience/deposit_points + +# sneaking deposits levels +execute as @a[gamemode=!spectator,predicate=gm4_standard_liquids:sneaking] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..5344 run function gm4_standard_liquids:util/experience/deposit_levels + +scoreboard players set $schedule_deposit_exp gm4_lt_util 2 +schedule function gm4_standard_liquids:util/experience/scheduled_deposit 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_deposit_exp.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_deposit_exp.mcfunction deleted file mode 100644 index 2b55498ff2..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_deposit_exp.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# scheduled from standard_liquids:util_above - -execute as @a[gamemode=!spectator,level=1..] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_empty] run function gm4_standard_liquids:liquid_init/experience -execute as @a[gamemode=!spectator] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..1394 run function gm4_standard_liquids:util/deposit_experience -scoreboard players set $schedule_deposit_exp gm4_lt_util 2 - -schedule function gm4_standard_liquids:util/scheduled_deposit_exp 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction index f7cda9b8ef..d0b307a164 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_above.mcfunction @@ -18,12 +18,12 @@ execute as @e[dx=0,type=glow_squid,tag=!smithed.entity] run function gm4_standar #experience orb execute positioned ~0.5 ~ ~0.5 if entity @e[distance=..0.5,type=experience_orb] if score @s[tag=gm4_lt_empty] gm4_lt_value matches 0 at @s run function gm4_standard_liquids:liquid_init/experience -execute positioned ~0.5 ~ ~0.5 if score @s[tag=gm4_lt_experience] gm4_lt_value matches ..1394 as @e[distance=..0.5,type=experience_orb] run function gm4_standard_liquids:util/experience_orb +execute positioned ~0.5 ~ ~0.5 if score @s[tag=gm4_lt_experience] gm4_lt_value matches ..5344 as @e[distance=..0.5,type=experience_orb] run function gm4_standard_liquids:util/experience_orb #player depositing experience -execute if score $schedule_deposit_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/scheduled_deposit_exp +execute if score $schedule_deposit_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/experience/scheduled_deposit execute positioned ~0.5 ~ ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run scoreboard players set $schedule_deposit_exp gm4_lt_util 1 -execute positioned ~0.5 ~ ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/scheduled_deposit_exp 1t +execute positioned ~0.5 ~ ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/experience/scheduled_deposit 1t #dripstone cauldron execute if entity @e[dx=0,type=area_effect_cloud,tag=gm4_ltu_dripstone_cauldron] run function gm4_standard_liquids:util/drain_cauldron diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/predicate/sneaking.json b/gm4_liquid_tanks/data/gm4_standard_liquids/predicate/sneaking.json new file mode 100644 index 0000000000..3c8a7e1e95 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/predicate/sneaking.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sneaking": true + } + } +} From 51bcf498c5e32aa222ab78e0b9ded99c8e202a49 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 4 Aug 2024 13:55:12 -0400 Subject: [PATCH 34/76] Accelerating level deposit --- .../function/machine/destroy.mcfunction | 5 +---- .../util/experience/deposit_one_level.mcfunction | 10 +++++++--- .../util/experience/scheduled_deposit.mcfunction | 3 +++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction index f0038b00b7..1b7ce88e4e 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/destroy.mcfunction @@ -4,11 +4,8 @@ # run from gm4_liquid_tanks:machine/verify_destroy # kill entities related to machine block -execute positioned ~ ~-0.5 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,distance=..0.01] -execute positioned ~ ~-0.75 ~ run kill @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.3,limit=1] - execute positioned ~ ~0.4 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,limit=1,distance=..0.01] -execute positioned ~ ~-0.75 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.3,limit=1] +execute positioned ~ ~0.1 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.3,limit=1] execute positioned ~ ~0.5 ~ run kill @e[type=area_effect_cloud,distance=..0.5,tag=gm4_lt_util_block] execute store result score $dropped_item gm4_machine_data run kill @e[type=item,distance=..1,nbt={Age:0s,Item:{id:"minecraft:hopper",count:1,components:{}}},limit=1,sort=nearest] diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction index e2fd369ffc..62d10b1157 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction @@ -10,7 +10,7 @@ scoreboard players set #5 gm4_lt_util 5 scoreboard players set #9 gm4_lt_util 9 scoreboard players operation $level_calc gm4_lt_util = $levels gm4_lt_util -scoreboard players remove $level_calc gm4_lt_util 1 +execute unless score $levels gm4_lt_util matches 0 run scoreboard players remove $level_calc gm4_lt_util 1 execute if score $points gm4_lt_util matches 1.. run scoreboard players operation $level_calc gm4_lt_util = $points gm4_lt_util execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 1..15 run scoreboard players operation $level_calc gm4_lt_util *= #2 gm4_lt_util execute if score $points gm4_lt_util matches 0 if score $levels gm4_lt_util matches 1..15 run scoreboard players add $level_calc gm4_lt_util 7 @@ -33,9 +33,13 @@ function gm4_standard_liquids:util/experience/macro_experience with storage gm4_ execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update # vfx -playsound minecraft:entity.experience_orb.pickup block @s +execute unless score $level_calc gm4_lt_util matches 0 playsound minecraft:entity.experience_orb.pickup block @s function #gm4_liquid_tanks:level_report_check # reset accelerating clock -scoreboard players set @s gm4_lt_util 16 +scoreboard players add @s gm4_lt_value 1 +execute if score @s gm4_lt_value matches 1..4 run scoreboard players set @s gm4_lt_util 16 +execute if score @s gm4_lt_value matches 5..10 run scoreboard players set @s gm4_lt_util 12 +execute if score @s gm4_lt_value matches 11..18 run scoreboard players set @s gm4_lt_util 8 +execute if score @s gm4_lt_value matches 19.. run scoreboard players set @s gm4_lt_util 4 # TODO accelerate diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction index 274204703c..30ce6e97d4 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_deposit.mcfunction @@ -7,7 +7,10 @@ execute as @a[gamemode=!spectator,level=1..] at @s if block ~ ~-0.4 ~ hopper[ena execute as @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..5344 run function gm4_standard_liquids:util/experience/deposit_points # sneaking deposits levels +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_value +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_util execute as @a[gamemode=!spectator,predicate=gm4_standard_liquids:sneaking] at @s if block ~ ~-0.4 ~ hopper[enabled=true] positioned ~ ~-0.4 ~ align xyz positioned ~0.5 ~0.5 ~0.5 if score @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5,tag=gm4_lt_experience] gm4_lt_value matches ..5344 run function gm4_standard_liquids:util/experience/deposit_levels + scoreboard players set $schedule_deposit_exp gm4_lt_util 2 schedule function gm4_standard_liquids:util/experience/scheduled_deposit 1t From 14c4344fb29f13fa9fb4e0c994a4130c095a8d23 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 4 Aug 2024 18:12:16 -0400 Subject: [PATCH 35/76] Accelerating math-based level withdraw when sneaking --- .../experience/deposit_one_level.mcfunction | 3 +- .../experience/scheduled_withdraw.mcfunction | 12 ++++++ .../experience/withdraw_levels.mcfunction | 8 ++++ .../experience/withdraw_one_level.mcfunction | 39 +++++++++++++++++++ .../withdraw_points.mcfunction} | 8 ++-- .../util/scheduled_withdraw_exp.mcfunction | 6 --- .../function/util_below.mcfunction | 4 +- 7 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_withdraw.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_levels.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction rename gm4_liquid_tanks/data/gm4_standard_liquids/function/util/{withdraw_experience.mcfunction => experience/withdraw_points.mcfunction} (65%) delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_withdraw_exp.mcfunction diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction index 62d10b1157..7159a2ed74 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/deposit_one_level.mcfunction @@ -1,5 +1,5 @@ #@s = player above experience tank at center of tank -#run from standard_liquids:util/experience/deposit_one_level +#run from standard_liquids:util/experience/deposit_levels # calculate points to remove one level execute store result score $points gm4_lt_util run experience query @s points @@ -42,4 +42,3 @@ execute if score @s gm4_lt_value matches 1..4 run scoreboard players set @s gm4_ execute if score @s gm4_lt_value matches 5..10 run scoreboard players set @s gm4_lt_util 12 execute if score @s gm4_lt_value matches 11..18 run scoreboard players set @s gm4_lt_util 8 execute if score @s gm4_lt_value matches 19.. run scoreboard players set @s gm4_lt_util 4 -# TODO accelerate diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_withdraw.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_withdraw.mcfunction new file mode 100644 index 0000000000..f469457228 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/scheduled_withdraw.mcfunction @@ -0,0 +1,12 @@ +# scheduled from standard_liquids:util_below + +# non-sneaking retrieves points +execute as @e[type=marker,tag=gm4_liquid_tank,tag=gm4_lt_experience] at @s if block ~ ~ ~ hopper[enabled=true] positioned ~ ~-2.5 ~ if entity @a[distance=..0.5,gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] if score @s gm4_lt_value matches 1.. run function gm4_standard_liquids:util/experience/withdraw_points + +# sneaking retrieves levels +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_value +scoreboard players reset @a[gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] gm4_lt_util +execute as @e[type=marker,tag=gm4_liquid_tank,tag=gm4_lt_experience] at @s if block ~ ~ ~ hopper[enabled=true] positioned ~ ~-2.5 ~ if score @s gm4_lt_value matches 1.. as @a[distance=..0.5,gamemode=!spectator,predicate=gm4_standard_liquids:sneaking,limit=1] positioned ~ ~2.5 ~ run function gm4_standard_liquids:util/experience/withdraw_levels + +scoreboard players set $schedule_withdraw_exp gm4_lt_util 2 +schedule function gm4_standard_liquids:util/experience/scheduled_withdraw 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_levels.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_levels.mcfunction new file mode 100644 index 0000000000..b4ac5a8d53 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_levels.mcfunction @@ -0,0 +1,8 @@ +#@s = player below experience tank at center of tank +#run from standard_liquids:util/experience/scheduled_withdraw + +execute unless score @s gm4_lt_util matches 0.. run scoreboard players set @s gm4_lt_util 16 + +scoreboard players remove @s gm4_lt_util 1 + +execute if score @s gm4_lt_util matches ..0 run function gm4_standard_liquids:util/experience/withdraw_one_level diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction new file mode 100644 index 0000000000..41699050c0 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction @@ -0,0 +1,39 @@ +#@s = player above experience tank at center of tank +#run from standard_liquids:util/experience/deposit_levels + +# calculate points to add one level +execute store result score $points gm4_lt_util run experience query @s points +execute store result score $levels gm4_lt_util run experience query @s levels + +scoreboard players set #2 gm4_lt_util 2 +scoreboard players set #5 gm4_lt_util 5 +scoreboard players set #9 gm4_lt_util 9 + +scoreboard players operation $level_calc gm4_lt_util = $levels gm4_lt_util +execute if score $levels gm4_lt_util matches 0..15 run scoreboard players operation $level_calc gm4_lt_util *= #2 gm4_lt_util +execute if score $levels gm4_lt_util matches 0..15 run scoreboard players add $level_calc gm4_lt_util 7 +execute if score $levels gm4_lt_util matches 16..30 run scoreboard players operation $level_calc gm4_lt_util *= #5 gm4_lt_util +execute if score $levels gm4_lt_util matches 16..30 run scoreboard players remove $level_calc gm4_lt_util 38 +execute if score $levels gm4_lt_util matches 31.. run scoreboard players operation $level_calc gm4_lt_util *= #9 gm4_lt_util +execute if score $levels gm4_lt_util matches 31.. run scoreboard players remove $level_calc gm4_lt_util 158 +scoreboard players operation $level_calc gm4_lt_util -= $points gm4_lt_util + +# decrease points to not take more than tank has +scoreboard players operation $level_calc gm4_lt_util < @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value + +# remove points from tank and add to player +scoreboard players operation @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] gm4_lt_value -= $level_calc gm4_lt_util +execute store result storage gm4_liquid_tanks:temp exp.points int 1.0 run scoreboard players get $level_calc gm4_lt_util +function gm4_standard_liquids:util/experience/macro_experience with storage gm4_liquid_tanks:temp exp +execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update + +# vfx +execute unless score $level_calc gm4_lt_util matches 0 playsound minecraft:entity.experience_orb.pickup block @s +function #gm4_liquid_tanks:level_report_check + +# reset accelerating clock +scoreboard players add @s gm4_lt_value 1 +execute if score @s gm4_lt_value matches 1..4 run scoreboard players set @s gm4_lt_util 16 +execute if score @s gm4_lt_value matches 5..10 run scoreboard players set @s gm4_lt_util 12 +execute if score @s gm4_lt_value matches 11..18 run scoreboard players set @s gm4_lt_util 8 +execute if score @s gm4_lt_value matches 19.. run scoreboard players set @s gm4_lt_util 4 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/withdraw_experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_points.mcfunction similarity index 65% rename from gm4_liquid_tanks/data/gm4_standard_liquids/function/util/withdraw_experience.mcfunction rename to gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_points.mcfunction index 08adde3543..31c446b48f 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/withdraw_experience.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_points.mcfunction @@ -1,14 +1,14 @@ -#@s = tank with player below it positioned ~ ~-2 ~ +#@s = tank with player below it positioned ~ ~-2.5 ~ #run from standard_liquids:tick -execute if score @s gm4_lt_value matches 4.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator] 4 +execute if score @s gm4_lt_value matches 4.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] 4 execute if score @s gm4_lt_value matches 4.. run scoreboard players remove @s gm4_lt_value 4 -execute if score @s gm4_lt_value matches 1.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator] 1 +execute if score @s gm4_lt_value matches 1.. run experience add @a[distance=..0.5,limit=1,gamemode=!spectator,predicate=!gm4_standard_liquids:sneaking] 1 execute if score @s gm4_lt_value matches 1.. run scoreboard players remove @s gm4_lt_value 1 execute if score @s gm4_lt_value matches 1.. run summon experience_orb ~ ~1.8 ~ {Age:5995,Value:0} -execute as @a[distance=..0.5,limit=1,gamemode=!spectator] positioned ~ ~2 ~ run function #gm4_liquid_tanks:level_report_check +execute as @a[distance=..0.5,limit=1,gamemode=!spectator] positioned ~ ~2.5 ~ align xyz positioned ~0.5 ~0.5 ~0.5 run function #gm4_liquid_tanks:level_report_check execute unless score @s gm4_lt_prior_val = @s gm4_lt_value run function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_withdraw_exp.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_withdraw_exp.mcfunction deleted file mode 100644 index d920f9f506..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/scheduled_withdraw_exp.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -# scheduled from standard_liquids:util_below - -execute as @e[type=marker,tag=gm4_liquid_tank,tag=gm4_lt_experience] at @s if block ~ ~ ~ hopper[enabled=true] positioned ~ ~-2.5 ~ if entity @a[distance=..0.5,gamemode=!spectator] if score @s gm4_lt_value matches 1.. run function gm4_standard_liquids:util/withdraw_experience -scoreboard players set $schedule_withdraw_exp gm4_lt_util 2 - -schedule function gm4_standard_liquids:util/scheduled_withdraw_exp 1t diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction index 5b9d85561f..635d209571 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction @@ -24,8 +24,8 @@ execute if score @s[tag=gm4_lt_ink] gm4_lt_value matches 1.. as @e[team=!invalid execute if score @s[tag=gm4_lt_glow_ink] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:glowing'}]}] run function gm4_standard_liquids:util/liquid_dispensing/glow_ink #player withdrawing experience -execute if score $schedule_withdraw_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/scheduled_withdraw_exp +execute if score $schedule_withdraw_exp gm4_lt_util matches 2.. run schedule clear gm4_standard_liquids:util/experience/scheduled_withdraw execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run scoreboard players set $schedule_withdraw_exp gm4_lt_util 1 -execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/scheduled_withdraw_exp 1t +execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/experience/scheduled_withdraw 1t tag @s remove gm4_processing_tank From 616a7283d7e6b425227756c42b8d7b18117a5222 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 4 Aug 2024 18:37:48 -0400 Subject: [PATCH 36/76] Honey block cauldron casting uses display entities --- .../util/honey_casting/honey_cauldron.mcfunction | 15 ++++++++++++++- .../util/honey_casting/honey_rise.mcfunction | 4 ++-- .../util/honey_casting/honey_stop.mcfunction | 4 ++-- .../util/honey_casting/honey_tank.mcfunction | 2 +- .../honey_casting/scheduled_honey_rise.mcfunction | 2 +- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction index cc6fb4a98b..c51a91aafe 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_cauldron.mcfunction @@ -2,7 +2,20 @@ #run from standard_liquids:util_above execute if score @s gm4_lt_util matches 4.. run scoreboard players remove @s gm4_lt_value 4 -execute if score @s gm4_lt_util matches 4.. run summon armor_stand ~0.5 ~ ~0.5 {Marker:1b,Invisible:1b,Invulnerable:1b,NoGravity:1b,Silent:1b,Fire:4000s,Tags:["gm4_lt_honey_display","gm4_no_edit"],CustomName:'"gm4_lt_honey_display"',Pose:{Head:[180.0f,0.0f,0.0f]},ArmorItems:[{},{},{},{id:"minecraft:honey_block",count:1,components:{"minecraft:custom_model_data":"block/cast_honey_block"}}],DisabledSlots:4144959} +execute if score @s gm4_lt_util matches 4.. run summon item_display ~0.5 ~ ~0.5 : + Tags:["gm4_lt_honey_display","gm4_no_edit"] + CustomName:'"gm4_lt_honey_display"' + item: + id: "minecraft:honey_block" + count: 1 + components: {"minecraft:custom_model_data":"block/cast_honey_block"} + transformation: + left_rotation: [0,0,0,1] + right_rotation: [0,0,0,1] + scale: [0.9,0.01,0.9] + translation: [0.0,0.2,0.0] + teleport_duration: 4 + execute if score @s gm4_lt_util matches 4.. run playsound block.honey_block.slide block @a[distance=..10] ~ ~ ~ 1 0.5 execute if score @s gm4_lt_util matches 4.. run scoreboard players remove @s gm4_lt_util 4 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction index 69c3956258..1e50524698 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction @@ -1,9 +1,9 @@ #@s = gm4_honey_display #run from standard_liquids:util/honey_casting/scheduled_honey_rise -teleport @s ~ ~0.0375 ~ scoreboard players add @s gm4_lt_util 1 +execute if score @s gm4_lt_util matches ..12 teleport @s ~ ~0.060 ~ -execute unless block ~ ~1.2 ~ #minecraft:cauldrons run kill @s +execute unless block ~ ~ ~ #minecraft:cauldrons run kill @s execute if score @s gm4_lt_util matches 16.. run function gm4_standard_liquids:util/honey_casting/honey_stop diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction index 29dfe44f6b..cc25cd7ce1 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_stop.mcfunction @@ -1,8 +1,8 @@ #@s = gm4_lt_honey_display #run from standard_liquids:util/honey_casting/honey_rise -summon item ~ ~1 ~ {Item:{id:"honey_block",count:1}} +summon item ~ ~ ~ {Item:{id:"honey_block",count:1}} playsound block.honey_block.place block @a[distance=..10] kill @s -execute unless entity @e[type=armor_stand,tag=gm4_lt_honey_display,limit=1] run schedule clear gm4_standard_liquids:util/honey_casting/honey_rise +execute unless entity @e[type=item_display,tag=gm4_lt_honey_display,limit=1] run schedule clear gm4_standard_liquids:util/honey_casting/honey_rise diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction index 0dba2d3226..1fabce01a1 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_tank.mcfunction @@ -3,4 +3,4 @@ execute at @e[type=area_effect_cloud,tag=gm4_lt_util_block,tag=gm4_ltu_cauldron,dx=0] run scoreboard players add @s gm4_lt_util 4 scoreboard players operation @s gm4_lt_util < @s gm4_lt_value -execute at @e[type=area_effect_cloud,tag=gm4_lt_util_block,tag=gm4_ltu_cauldron,dx=0,limit=4] positioned ^ ^-1 ^1 if block ~ ~ ~ minecraft:cauldron align xz positioned ~ ~-1.1 ~ unless entity @e[type=armor_stand,tag=gm4_lt_honey_display,dx=0] run function gm4_standard_liquids:util/honey_casting/honey_cauldron +execute at @e[type=area_effect_cloud,tag=gm4_lt_util_block,tag=gm4_ltu_cauldron,dx=0,limit=4] positioned ^ ^-1 ^1 if block ~ ~ ~ minecraft:cauldron align xz unless entity @e[type=item_display,tag=gm4_lt_honey_display,dx=0] run function gm4_standard_liquids:util/honey_casting/honey_cauldron diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction index 70dcad5a36..fcd266a3aa 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/scheduled_honey_rise.mcfunction @@ -1,6 +1,6 @@ #@s = server #scheduled from standard_liquids:util/honey_casting/honey_cauldron and self -execute as @e[type=armor_stand,tag=gm4_lt_honey_display] at @s run function gm4_standard_liquids:util/honey_casting/honey_rise +execute as @e[type=item_display,tag=gm4_lt_honey_display] at @s run function gm4_standard_liquids:util/honey_casting/honey_rise schedule function gm4_standard_liquids:util/honey_casting/scheduled_honey_rise 4t From 7aba84239cc94fe28ec3f0e6441f9e70e43a6585 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 5 Aug 2024 22:17:09 -0400 Subject: [PATCH 37/76] Fancier en-masse xp withdraw effects --- .../util/experience/withdraw_one_level.mcfunction | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction index 41699050c0..7348d752c9 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/experience/withdraw_one_level.mcfunction @@ -1,4 +1,4 @@ -#@s = player above experience tank at center of tank +#@s = player below experience tank at center of tank #run from standard_liquids:util/experience/deposit_levels # calculate points to add one level @@ -29,6 +29,13 @@ execute as @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.5] unless sco # vfx execute unless score $level_calc gm4_lt_util matches 0 playsound minecraft:entity.experience_orb.pickup block @s +from itertools import product, count +c = count(0) +for offset in product([0, -0.05, 0.05], repeat=2): + if 0 not in offset: + continue + dx, dz = offset + execute unless score $level_calc gm4_lt_util matches 0 run summon experience_orb ~dx ~-0.6 ~dz {Age:(5994-next(c)),Value:0} function #gm4_liquid_tanks:level_report_check # reset accelerating clock From 95bc21ca49fa854d597fd910858408dd1659e6df Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 5 Aug 2024 23:20:50 -0400 Subject: [PATCH 38/76] Move mending tanks smart-logic bypass to new if-items api --- .../data/gm4_mending_tanks/function/check_item.mcfunction | 2 +- .../data/gm4_mending_tanks/function/item_fill.mcfunction | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction b/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction index 04660e8d2f..ebcea8940e 100644 --- a/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction +++ b/gm4_mending_tanks/data/gm4_mending_tanks/function/check_item.mcfunction @@ -1,7 +1,7 @@ #@s = experience liquid tank with item in first slot #run from mending_tanks:item_fill -execute store result score $damage gm4_lt_util run data get storage gm4_liquid_tanks:temp/tank input_slot.components."minecraft:damage" +execute store result score $damage gm4_lt_util run data get block ~ ~ ~ Items[0].components."minecraft:damage" execute if score $damage gm4_lt_util matches 1.. run function gm4_mending_tanks:repair # smart storage is bypassed within repair, which merges the data back to the tool itself. diff --git a/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction b/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction index a7308b1ada..e69e07023c 100644 --- a/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction +++ b/gm4_mending_tanks/data/gm4_mending_tanks/function/item_fill.mcfunction @@ -2,4 +2,4 @@ #run from liquid_tanks:item_process #experience tank -execute if entity @s[tag=gm4_lt_experience] if data storage gm4_liquid_tanks:temp/tank {input_slot:{components:{"minecraft:enchantments":{levels:{"minecraft:mending":1}}}}} run function gm4_mending_tanks:check_item +execute if entity @s[tag=gm4_lt_experience] if items block ~ ~ ~ container.0 *[minecraft:enchantments~[{enchantments:["minecraft:mending"]}]] run function gm4_mending_tanks:check_item From d2dec67415622b751a4da3ad69b7323572c5cf46 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 8 Aug 2024 14:52:44 -0400 Subject: [PATCH 39/76] Begin support for util_below wrappers --- .../modules/liquid_wrappers.bolt | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 9a92ede355..ae4c3a90ee 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -56,7 +56,6 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): function ~/../liquid_init/{self.struc.id}: - # append function_tag gm4_liquid_tanks:tank_init {"values": [(~/)]} # FIXME this line is for... what? data merge block ~ ~ ~ {CustomName:f'{{"translate":"gm4.second","fallback":"%1$s","with":[{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank"}},[{{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"}},{{"translate":"container.gm4.liquid_tank.{self.struc.id}","fallback":"{self.struc.name} Tank","font":"gm4:default","color":"#404040"}}]]}}'} summon item_display ~ ~ ~: CustomName: '"gm4_liquid_tank_liquid_display"' @@ -65,7 +64,7 @@ class Liquid: id: player_head count:1b components:{ - "minecraft:profile": f"$gm4_standard_liquids:liquids/{self.struc.id}" + "minecraft:profile": f"${(~/).split(':')[0]}:liquids/{self.struc.id}" } transformation: left_rotation: [0f,0f,0f,1f] @@ -87,7 +86,8 @@ class Liquid: append function_tag gm4_liquid_tanks:tank_init {"values": [(~/../tank_init)]} append function_tag gm4_liquid_tanks:item_fill {"values": [(~/../item_fill)]} append function_tag gm4_liquid_tanks:item_drain {"values": [(~/../item_drain)]} - pass + append function_tag gm4_liquid_tanks:util_below {"values": [(~/../util_below)]} + # append function_tag gm4_liquid_tanks:util_above {"values": [(~/../util_above)]} # give nicer info about this wrapped function if not used as decorator if fcn: @@ -192,7 +192,6 @@ class Liquid: append function ~/../tank_init: execute if items block ~ ~ ~ container.0 input run function ~/../liquid_init/{self.struc.id} - pass # give nicer info about this wrapped function if not used as decorator if isinstance(fcn, partial): @@ -210,6 +209,31 @@ class Liquid: return_dec = partial(dec_with_args, fcn_to_replace=default_dec) return return_dec + def util_below(self, fcn=emptyfunc): + # util below must always be used as a decorator - there is no "standard" interface + # util is designed to work alongside existing functions (and not entirely in bolt) + @wraps(fcn) + def wrapped_fcn(): + # function header if needed + if "tag @s add gm4_processing_tank" not in ctx.data.function[~/../util_below].lines: + prepend function ~/../util_below: + tag @s add gm4_processing_tank + if "tag @s remove gm4_processing_tank" in ctx.data.function[~/../util_below].lines: + ctx.data.function[~/../util_below].lines.remove("tag @s remove gm4_processing_tank") + # TODO FIXME removal of this tag at the end? + # TODO cache this check? + # NOTE could move the entire existance of this tag to the base module + + # add commands + append function ~/../util_below: + execute if score @s[tag=f'gm4_lt_{self.struc.id}'] gm4_lt_value matches 1.. expand: + fcn() + tag @s remove gm4_processing_tank + + self.generators.append(wrapped_fcn) + return wrapped_fcn + + @staticmethod def _multiple_mcfunction(fcn): """Ensures the given function operates as a generator, allowing for multiple chunks of returned mcfunction""" From 13fce81d0cbffac54cedda9278535edb8ffd267f Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 8 Aug 2024 15:05:48 -0400 Subject: [PATCH 40/76] Start of potion_liquids bolt migration --- gm4_liquid_tanks/bolt_liquid_wrappers.py | 9 +++++++ gm4_potion_liquids/beet.yaml | 8 ++++++ .../long_potion.mcfunction | 0 .../potion.mcfunction | 0 .../fire_resistance_potion.mcfunction | 0 .../floating_potion.mcfunction | 0 .../harming_potion.mcfunction | 0 .../healing_potion.mcfunction | 0 .../invisibility_potion.mcfunction | 0 .../leaping_potion.mcfunction | 0 .../luck_potion.mcfunction | 0 .../night_vision_potion.mcfunction | 0 .../poison_potion.mcfunction | 0 .../regeneration_potion.mcfunction | 0 .../slow_falling_potion.mcfunction | 0 .../slowness_potion.mcfunction | 0 .../strength_potion.mcfunction | 0 .../strong_harming_potion.mcfunction | 0 .../strong_healing_potion.mcfunction | 0 .../strong_leaping_potion.mcfunction | 0 .../strong_poison_potion.mcfunction | 0 .../strong_regeneration_potion.mcfunction | 0 .../strong_slowness_potion.mcfunction | 0 .../strong_strength_potion.mcfunction | 0 .../strong_swiftness_potion.mcfunction | 0 .../strong_turtle_master_potion.mcfunction | 0 .../swiftness_potion.mcfunction | 0 .../turtle_master_potion.mcfunction | 0 .../water_breathing_potion.mcfunction | 0 .../weakness_potion.mcfunction | 0 .../fire_resistance.mcfunction | 0 .../floating.mcfunction | 0 .../harming.mcfunction | 0 .../healing.mcfunction | 0 .../invisibility.mcfunction | 0 .../leaping.mcfunction | 0 .../luck.mcfunction | 0 .../night_vision.mcfunction | 0 .../poison.mcfunction | 0 .../regeneration.mcfunction | 0 .../slow_falling.mcfunction | 0 .../slowness.mcfunction | 0 .../strength.mcfunction | 0 .../strong_harming.mcfunction | 0 .../strong_healing.mcfunction | 0 .../strong_leaping.mcfunction | 0 .../strong_poison.mcfunction | 0 .../strong_regeneration.mcfunction | 0 .../strong_slowness.mcfunction | 0 .../strong_strength.mcfunction | 0 .../strong_swiftness.mcfunction | 0 .../strong_turtle_master.mcfunction | 0 .../swiftness.mcfunction | 0 .../turtle_master.mcfunction | 0 .../water_breathing.mcfunction | 0 .../weakness.mcfunction | 0 .../fire_resistance.mcfunction | 0 .../{util => util_old}/floating.mcfunction | 0 .../{util => util_old}/harming.mcfunction | 0 .../{util => util_old}/healing.mcfunction | 0 .../invisibility.mcfunction | 0 .../{util => util_old}/leaping.mcfunction | 0 .../{util => util_old}/luck.mcfunction | 0 .../night_vision.mcfunction | 0 .../{util => util_old}/poison.mcfunction | 0 .../random_witch_init.mcfunction | 0 .../regeneration.mcfunction | 0 .../{util => util_old}/shulker.mcfunction | 0 .../slow_falling.mcfunction | 0 .../{util => util_old}/slowness.mcfunction | 0 .../{util => util_old}/strength.mcfunction | 0 .../strong_harming.mcfunction | 0 .../strong_healing.mcfunction | 0 .../strong_leaping.mcfunction | 0 .../strong_poison.mcfunction | 0 .../strong_regeneration.mcfunction | 0 .../strong_slowness.mcfunction | 0 .../strong_strength.mcfunction | 0 .../strong_swiftness.mcfunction | 0 .../strong_turtle_master.mcfunction | 0 .../{util => util_old}/swiftness.mcfunction | 0 .../turtle_master.mcfunction | 0 .../water_breathing.mcfunction | 0 .../{util => util_old}/weakness.mcfunction | 0 .../{util => util_old}/witch.mcfunction | 0 .../data/gm4_potion_liquids/modules/main.bolt | 25 +++++++++++++++++++ 86 files changed, 42 insertions(+) create mode 100644 gm4_liquid_tanks/bolt_liquid_wrappers.py rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_drain => item_drain_old}/long_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_drain => item_drain_old}/potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/fire_resistance_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/floating_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/harming_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/healing_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/invisibility_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/leaping_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/luck_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/night_vision_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/poison_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/regeneration_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/slow_falling_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/slowness_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strength_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_harming_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_healing_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_leaping_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_poison_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_regeneration_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_slowness_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_strength_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_swiftness_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/strong_turtle_master_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/swiftness_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/turtle_master_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/water_breathing_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill => item_fill_old}/weakness_potion.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/fire_resistance.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/floating.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/harming.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/healing.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/invisibility.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/leaping.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/luck.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/night_vision.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/poison.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/regeneration.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/slow_falling.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/slowness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strength.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_harming.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_healing.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_leaping.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_poison.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_regeneration.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_slowness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_strength.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_swiftness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/strong_turtle_master.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/swiftness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/turtle_master.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/water_breathing.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{liquid_init => liquid_init_old}/weakness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/fire_resistance.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/floating.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/harming.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/healing.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/invisibility.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/leaping.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/luck.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/night_vision.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/poison.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/random_witch_init.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/regeneration.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/shulker.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/slow_falling.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/slowness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strength.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_harming.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_healing.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_leaping.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_poison.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_regeneration.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_slowness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_strength.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_swiftness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/strong_turtle_master.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/swiftness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/turtle_master.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/water_breathing.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/weakness.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util => util_old}/witch.mcfunction (100%) create mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt diff --git a/gm4_liquid_tanks/bolt_liquid_wrappers.py b/gm4_liquid_tanks/bolt_liquid_wrappers.py new file mode 100644 index 0000000000..ac41265cbb --- /dev/null +++ b/gm4_liquid_tanks/bolt_liquid_wrappers.py @@ -0,0 +1,9 @@ +# beet plugin to add the liquid_wrappers.bolt module to other gm4 datapacks more easily +from beet import Context +from bolt import Module +from pathlib import Path + + +def beet_default(ctx: Context): + print(Path.cwd()) + ctx.data[Module]['gm4_liquid_tanks:liquid_wrappers'] = Module(source_path=Path("gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt")) diff --git a/gm4_potion_liquids/beet.yaml b/gm4_potion_liquids/beet.yaml index 168b552e09..d13a78a668 100644 --- a/gm4_potion_liquids/beet.yaml +++ b/gm4_potion_liquids/beet.yaml @@ -5,11 +5,19 @@ version: 1.7.X data_pack: load: . +require: + - bolt + pipeline: + - gm4_liquid_tanks.override_formatting + - gm4_liquid_tanks.bolt_liquid_wrappers - gm4.plugins.extend.module - gm4.plugins.include.lib_brewing meta: + bolt: + entrypoint: + - gm4_potion_liquids:main gm4: versioning: required: diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/long_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/long_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/long_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/long_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain/potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/fire_resistance_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/fire_resistance_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/fire_resistance_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/fire_resistance_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/floating_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/floating_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/floating_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/floating_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/harming_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/harming_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/harming_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/harming_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/healing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/healing_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/healing_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/healing_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/invisibility_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/invisibility_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/invisibility_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/invisibility_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/leaping_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/leaping_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/leaping_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/leaping_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/luck_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/luck_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/luck_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/luck_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/night_vision_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/night_vision_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/night_vision_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/night_vision_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/poison_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/poison_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/poison_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/poison_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/regeneration_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/regeneration_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/regeneration_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/regeneration_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slow_falling_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slow_falling_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slow_falling_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slow_falling_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slowness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slowness_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/slowness_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slowness_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strength_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strength_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strength_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strength_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_harming_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_harming_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_harming_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_harming_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_healing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_healing_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_healing_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_healing_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_leaping_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_leaping_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_leaping_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_leaping_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_poison_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_poison_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_poison_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_poison_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_regeneration_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_regeneration_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_regeneration_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_regeneration_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_slowness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_slowness_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_slowness_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_slowness_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_strength_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_strength_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_strength_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_strength_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_swiftness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_swiftness_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_swiftness_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_swiftness_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_turtle_master_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_turtle_master_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/strong_turtle_master_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_turtle_master_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/swiftness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/swiftness_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/swiftness_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/swiftness_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/turtle_master_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/turtle_master_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/turtle_master_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/turtle_master_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/water_breathing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/water_breathing_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/water_breathing_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/water_breathing_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/weakness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/weakness_potion.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill/weakness_potion.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/weakness_potion.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/fire_resistance.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/fire_resistance.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/fire_resistance.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/fire_resistance.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/floating.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/floating.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/floating.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/floating.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/harming.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/harming.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/harming.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/healing.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/healing.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/healing.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/invisibility.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/invisibility.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/invisibility.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/invisibility.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/leaping.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/leaping.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/leaping.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/luck.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/luck.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/luck.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/luck.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/night_vision.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/night_vision.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/night_vision.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/night_vision.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/poison.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/poison.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/poison.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/regeneration.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/regeneration.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/regeneration.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slow_falling.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slow_falling.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slow_falling.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slow_falling.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slowness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/slowness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slowness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strength.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strength.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strength.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_harming.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_harming.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_harming.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_healing.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_healing.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_healing.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_leaping.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_leaping.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_leaping.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_poison.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_poison.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_poison.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_regeneration.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_regeneration.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_regeneration.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_slowness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_slowness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_slowness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_strength.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_strength.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_strength.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_swiftness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_swiftness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_swiftness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_turtle_master.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/strong_turtle_master.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_turtle_master.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/swiftness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/swiftness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/swiftness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/turtle_master.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/turtle_master.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/turtle_master.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/water_breathing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/water_breathing.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/water_breathing.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/water_breathing.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/weakness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/weakness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init/weakness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/weakness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/fire_resistance.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/fire_resistance.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/fire_resistance.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/fire_resistance.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/floating.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/floating.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/floating.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/floating.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/harming.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/harming.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/harming.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/healing.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/healing.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/healing.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/invisibility.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/invisibility.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/invisibility.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/invisibility.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/leaping.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/leaping.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/leaping.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/luck.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/luck.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/luck.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/luck.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/night_vision.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/night_vision.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/night_vision.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/night_vision.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/poison.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/poison.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/poison.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/random_witch_init.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/random_witch_init.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/regeneration.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/regeneration.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/regeneration.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/shulker.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/shulker.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/shulker.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/shulker.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slow_falling.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slow_falling.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/slow_falling.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slow_falling.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slowness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/slowness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slowness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strength.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strength.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strength.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_harming.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_harming.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_harming.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_healing.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_healing.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_healing.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_leaping.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_leaping.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_leaping.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_poison.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_poison.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_poison.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_regeneration.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_regeneration.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_regeneration.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_slowness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_slowness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_slowness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_strength.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_strength.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_strength.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_swiftness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_swiftness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_swiftness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_turtle_master.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/strong_turtle_master.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_turtle_master.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/swiftness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/swiftness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/swiftness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/turtle_master.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/turtle_master.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/turtle_master.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/water_breathing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/water_breathing.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/water_breathing.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/water_breathing.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/weakness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/weakness.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/weakness.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/weakness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/witch.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/witch.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util/witch.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/witch.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt new file mode 100644 index 0000000000..aff0d2c74f --- /dev/null +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -0,0 +1,25 @@ +from gm4_liquid_tanks:liquid_wrappers import Liquid + +potion_liquid = Liquid(capacity=300) +bottle = potion_liquid.standard_unit('glass_bottle', 1) + +@potion_liquid +class HealthPotion: + id = "healing" + name = "Healing" + + potion_liquid.init() + bottle('minecraft:potion[potion_contents={potion:"healing"}]') + potion_liquid.item_drain('minecraft:potion[potion_contents={potion:"healing"}]', "bottle", 3) + + @potion_liquid.util_below + def dispense_potion(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + if entity @s[nbt=!{active_effects:[{id:'minecraft:instant_health'}]}] + run function gm4_potion_liquids:util/healing: + effect give @s night_vision 180 0 + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 + +# print(ctx.data.function["gm4_potion_liquids:util_below"].text.splitlines()) From 6c092aea5fa9cf223c048b54cfca1954804644aa Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sat, 10 Aug 2024 20:41:41 -0400 Subject: [PATCH 41/76] Vanilla potion effect & color data --- gm4_potion_liquids/effect_colors.json | 42 ++++++++++++++++++++ gm4_potion_liquids/potion_definitions.csv | 47 +++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 gm4_potion_liquids/effect_colors.json create mode 100644 gm4_potion_liquids/potion_definitions.csv diff --git a/gm4_potion_liquids/effect_colors.json b/gm4_potion_liquids/effect_colors.json new file mode 100644 index 0000000000..105bf37983 --- /dev/null +++ b/gm4_potion_liquids/effect_colors.json @@ -0,0 +1,42 @@ +{ + "absorption": ["#2552A5", 2445989], + "bad_omen": ["#0B6138", 745784], + "blindness": ["#1F1F23", 2039587], + "conduit_power": ["#1DC2D1", 1950417], + "darkness": ["#292721", 2696993], + "dolphins_grace": ["#88A3BE", 8954814], + "fire_resistance": ["#FF9900", 16750848], + "glowing": ["#94A061", 9740385], + "haste": ["#D9C043", 14270531], + "health_boost": ["#F87D23", 16284963], + "hero_of_the_village": ["#44FF44", 4521796], + "hunger": ["#587653", 5797459], + "infested": ["#8C9B8C", 9214860], + "instant_damage": ["#A9656A", 11101546], + "instant_health": ["#F82423", 16262179], + "invisibility": ["#F6F6F6", 16185078], + "jump_boost": ["#FDFF84", 16646020], + "levitation": ["#CEFFFF", 13565951], + "luck": ["#59C106", 5882118], + "mining_fatigue": ["#4A4217", 4866583], + "nausea": ["#551D4A", 5578058], + "night_vision": ["#C2FF66", 12779366], + "oozing": ["#99FFA3", 10092451], + "poison": ["#87A363" ,8889187], + "raid_omen": ["#DE4058", 14565464], + "regeneration": ["#CD5CAB", 13458603], + "resistance": ["#9146F0", 9520880], + "saturation": ["#F82423", 16262179], + "slow_falling": ["#F3CFB9", 15978425], + "slowness": ["#8BAFE0", 9154528], + "speed": ["#33EBFF", 3402751], + "strength": ["#FFC700", 16762624], + "trial_omen": ["#16A6A6", 1484454], + "unluck": ["#C0A44D", 12624973], + "water_breathing": ["#98DAC0", 10017472], + "weakness": ["#484D48", 4738376], + "weaving": ["#78695A", 7891290], + "wind_charged": ["#BDC9FF", 12438015], + "wither": ["#736156", 7561558] +} + diff --git a/gm4_potion_liquids/potion_definitions.csv b/gm4_potion_liquids/potion_definitions.csv new file mode 100644 index 0000000000..c85edfa873 --- /dev/null +++ b/gm4_potion_liquids/potion_definitions.csv @@ -0,0 +1,47 @@ +potion_id, effect_id, effect_amplifier, effect_duration +awkward,,,, +fire_resistance, fire_resistance,1,3:00 +harming,instant_damage,1,0:00 +healing,instant_health,1,0:00 +infested,infested,1,3:00 +invisibility,invisibility,1,3:00 +leaping,jump_boost,1,3:00 +long_fire_resistance,fire_resistance,1,8:00 +long_invisibility,invisibility,1,8:00 +long_leaping,jump_boost,1,8:00 +long_night_vision,night_vision,1,8:00 +long_poison,poison,1,1:30 +long_regeneration,regeneration,1,1:30 +long_slow_falling,slow_falling,1,4:00 +long_slowness,slowness,1,4:00 +long_strength,strength,1,8:00 +long_swiftness,speed,1,8:00 +long_turtle_master,OVERRIDE,,, +long_water_breathing,water_breathing,1,8:00 +long_weakness,weakness,1,4:00 +luck,luck,1,5:00 +mundane,,,, +night_vision,night_vision,1,3:00 +oozing,oozing,1,3:00 +poison,poison,1,0:45 +regeneration,regeneration, +slow_falling,slow_falling,1,1:30 +slowness,slowness,1,1:30 +strength,strength,1,3:00 +strong_harming,instant_damage,2,0:00 +strong_healing,instant_health,2,0:00 +strong_leaping,jump_boost,2,1:30 +strong_poison,poison,2,0:21.6 +strong_regeneration,regeneration,2,0:22.5 +strong_slowness,slowness,4,0:20 +strong_strength,strength,2,1:30 +strong_swiftness,speed,2,1:30 +strong_turtle_master,OVERRIDE,,, +swiftness,speed,1,3:00 +thick,,,, +turtle_master,OVERRIDE,, +water,,,, +water_breathing,water_breathing,1,3:00 +weakness,weakness,1,1:30 +weaving,weaving,1,1:30 +wind_charged,wind_charged,1,1:20 From fd9d460ac0d58fb4103f784ee8390251dcf67143 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 11 Aug 2024 17:49:11 -0400 Subject: [PATCH 42/76] Load in potion definitions to main.bolt --- .../data/gm4_potion_liquids/modules/main.bolt | 14 ++++++++++++++ gm4_potion_liquids/effect_colors.json | 1 + gm4_potion_liquids/potion_definitions.csv | 18 +++++++++--------- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index aff0d2c74f..0d3d6cc411 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -3,6 +3,20 @@ from gm4_liquid_tanks:liquid_wrappers import Liquid potion_liquid = Liquid(capacity=300) bottle = potion_liquid.standard_unit('glass_bottle', 1) +# load in vanilla potion definitions +from csv import DictReader +with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: + potion_def_reader = DictReader(csvfile) + +from beet import JsonFile +effect_colors = JsonFile(source_path="gm4_potion_liquids/effect_colors.json").data + +# TODO loop through potion definitions, creating and modifying classes as needed +# then pass them through the liquid decorator (which generates resources) as the final step + +class_defs = [] + + @potion_liquid class HealthPotion: id = "healing" diff --git a/gm4_potion_liquids/effect_colors.json b/gm4_potion_liquids/effect_colors.json index 105bf37983..cc50ecf633 100644 --- a/gm4_potion_liquids/effect_colors.json +++ b/gm4_potion_liquids/effect_colors.json @@ -1,4 +1,5 @@ { + "": ["#385DC6", 3694022], "absorption": ["#2552A5", 2445989], "bad_omen": ["#0B6138", 745784], "blindness": ["#1F1F23", 2039587], diff --git a/gm4_potion_liquids/potion_definitions.csv b/gm4_potion_liquids/potion_definitions.csv index c85edfa873..9662b513aa 100644 --- a/gm4_potion_liquids/potion_definitions.csv +++ b/gm4_potion_liquids/potion_definitions.csv @@ -1,6 +1,6 @@ -potion_id, effect_id, effect_amplifier, effect_duration -awkward,,,, -fire_resistance, fire_resistance,1,3:00 +potion_id,"effect_id","effect_amplifier","effect_duration" +awkward,,, +fire_resistance,fire_resistance,1,3:00 harming,instant_damage,1,0:00 healing,instant_health,1,0:00 infested,infested,1,3:00 @@ -16,15 +16,15 @@ long_slow_falling,slow_falling,1,4:00 long_slowness,slowness,1,4:00 long_strength,strength,1,8:00 long_swiftness,speed,1,8:00 -long_turtle_master,OVERRIDE,,, +long_turtle_master,OVERRIDE,, long_water_breathing,water_breathing,1,8:00 long_weakness,weakness,1,4:00 luck,luck,1,5:00 -mundane,,,, +mundane,,, night_vision,night_vision,1,3:00 oozing,oozing,1,3:00 poison,poison,1,0:45 -regeneration,regeneration, +regeneration,regeneration,1,0:45 slow_falling,slow_falling,1,1:30 slowness,slowness,1,1:30 strength,strength,1,3:00 @@ -36,11 +36,11 @@ strong_regeneration,regeneration,2,0:22.5 strong_slowness,slowness,4,0:20 strong_strength,strength,2,1:30 strong_swiftness,speed,2,1:30 -strong_turtle_master,OVERRIDE,,, +strong_turtle_master,OVERRIDE,, swiftness,speed,1,3:00 -thick,,,, +thick,,, turtle_master,OVERRIDE,, -water,,,, +water,,, water_breathing,water_breathing,1,3:00 weakness,weakness,1,1:30 weaving,weaving,1,1:30 From f2ca573a19f24dbbe817f4bbd235031ea83aa4ad Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 14 Aug 2024 20:15:19 -0400 Subject: [PATCH 43/76] Correct beet function attribute to real 1.21 syntax --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index ae4c3a90ee..9494ab3b75 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -215,11 +215,11 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): # function header if needed - if "tag @s add gm4_processing_tank" not in ctx.data.function[~/../util_below].lines: + if "tag @s add gm4_processing_tank" not in ctx.data.functions[~/../util_below].lines: prepend function ~/../util_below: tag @s add gm4_processing_tank - if "tag @s remove gm4_processing_tank" in ctx.data.function[~/../util_below].lines: - ctx.data.function[~/../util_below].lines.remove("tag @s remove gm4_processing_tank") + if "tag @s remove gm4_processing_tank" in ctx.data.functions[~/../util_below].lines: + ctx.data.functions[~/../util_below].lines.remove("tag @s remove gm4_processing_tank") # TODO FIXME removal of this tag at the end? # TODO cache this check? # NOTE could move the entire existance of this tag to the base module From 2f31b8a164cfa2f7b3b786b70a23250898845d13 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 14 Aug 2024 23:31:50 -0400 Subject: [PATCH 44/76] [incomplete] start to generated potion-liquids content --- ...n.mcfunction => item_drain_old.mcfunction} | 0 ...ll.mcfunction => item_fill_old.mcfunction} | 0 ...tion => remove_liquid_tags_old.mcfunction} | 0 ...it.mcfunction => tank_init_old.mcfunction} | 0 ...e.mcfunction => util_above_old.mcfunction} | 0 ...w.mcfunction => util_below_old.mcfunction} | 0 .../data/gm4_potion_liquids/modules/main.bolt | 91 ++++++++++++++----- 7 files changed, 68 insertions(+), 23 deletions(-) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_drain.mcfunction => item_drain_old.mcfunction} (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{item_fill.mcfunction => item_fill_old.mcfunction} (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{remove_liquid_tags.mcfunction => remove_liquid_tags_old.mcfunction} (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{tank_init.mcfunction => tank_init_old.mcfunction} (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util_above.mcfunction => util_above_old.mcfunction} (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util_below.mcfunction => util_below_old.mcfunction} (100%) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags_old.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags_old.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init_old.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init_old.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_above.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_above_old.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util_above.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_above_old.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below_old.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util_below.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_below_old.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 0d3d6cc411..77fbb14d1a 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -1,39 +1,84 @@ from gm4_liquid_tanks:liquid_wrappers import Liquid potion_liquid = Liquid(capacity=300) -bottle = potion_liquid.standard_unit('glass_bottle', 1) +base_potion = potion_liquid.standard_unit('glass_bottle', 1) +long_potion = potion_liquid.standard_unit('glass_bottle', 3) + + +from beet import JsonFile +effect_colors = JsonFile(source_path="gm4_potion_liquids/effect_colors.json").data + +class_defs = {} -# load in vanilla potion definitions from csv import DictReader with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: potion_def_reader = DictReader(csvfile) + for row in potion_def_reader: + if row["potion_id"] in ("awkward", "mundane", "thick", "water"): + continue # skip this potion type for now # FIXME + + class_key = (row["effect_id"], row["effect_amplifier"]) + # setup new liquid type if necessary and add to the dict + if class_key not in class_defs: + # @potion_liquid # we execute the class decorator later after setting up all the bolt stuff + class PotionLiquidClass: + id = row["potion_id"].removeprefix("long_") + name = "TODO NAME LOOKUP" # TODO -from beet import JsonFile -effect_colors = JsonFile(source_path="gm4_potion_liquids/effect_colors.json").data + potion_liquid.init() + + class_defs[class_key] = PotionLiquidClass + this_potion_class = class_defs[class_key] + + # add this potion to the liquid type + if row["potion_id"].startswith("long"): + this_potion_unit = long_potion + else: + this_potion_unit = base_potion + setattr(this_potion_class, row["potion_id"], this_potion_unit(f"minecraft:potion[potion_contents={{potion:\"{row['potion_id']}\"}}]")) -# TODO loop through potion definitions, creating and modifying classes as needed -# then pass them through the liquid decorator (which generates resources) as the final step + # add this potion's util_below feature + if not row["potion_id"].startswith("long"): + def dispense_potion(): + inline_predicate = { + "condition":"minecraft:entity_properties", + "entity":"this", + "predicate":{ + "effects":{ + row["effect_id"]:{} + } + } + } + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + if predicate inline_predicate + run function gm4_potion_liquids:util/healing: + effect give @s night_vision 180 0 + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 -class_defs = [] +# apply the liquid tanks decorator wrapper +for liquid_class in class_defs.values(): + potion_liquid(liquid_class) -@potion_liquid -class HealthPotion: - id = "healing" - name = "Healing" +# @potion_liquid +# class HealthPotion: +# id = "healing" +# name = "Healing" - potion_liquid.init() - bottle('minecraft:potion[potion_contents={potion:"healing"}]') - potion_liquid.item_drain('minecraft:potion[potion_contents={potion:"healing"}]', "bottle", 3) +# potion_liquid.init() +# bottle('minecraft:potion[potion_contents={potion:"healing"}]') +# potion_liquid.item_drain('minecraft:potion[potion_contents={potion:"healing"}]', "bottle", 3) - @potion_liquid.util_below - def dispense_potion(): - execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] - unless entity @s[gamemode=spectator] - if entity @s[nbt=!{active_effects:[{id:'minecraft:instant_health'}]}] - run function gm4_potion_liquids:util/healing: - effect give @s night_vision 180 0 - scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 - playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 +# @potion_liquid.util_below +# def dispense_potion(): +# execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] +# unless entity @s[gamemode=spectator] +# if entity @s[nbt=!{active_effects:[{id:'minecraft:instant_health'}]}] +# run function gm4_potion_liquids:util/healing: +# effect give @s night_vision 180 0 +# scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 +# playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 # print(ctx.data.function["gm4_potion_liquids:util_below"].text.splitlines()) From 82323ac182a73d66a97a4a2525dc537dfc7ff5c0 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 15 Aug 2024 15:10:47 -0400 Subject: [PATCH 45/76] Fix conflicting glass_bottle standard unit function names --- gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 77fbb14d1a..6dea168b8a 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -1,9 +1,8 @@ from gm4_liquid_tanks:liquid_wrappers import Liquid potion_liquid = Liquid(capacity=300) -base_potion = potion_liquid.standard_unit('glass_bottle', 1) -long_potion = potion_liquid.standard_unit('glass_bottle', 3) - +base_potion = potion_liquid.standard_unit('glass_bottle', 1, f_name="base_potion") +long_potion = potion_liquid.standard_unit('glass_bottle', 3, f_name="long_potion") from beet import JsonFile effect_colors = JsonFile(source_path="gm4_potion_liquids/effect_colors.json").data From 4b401c7aed7038b0ae564a3887672584143df52c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 16 Aug 2024 15:20:09 -0400 Subject: [PATCH 46/76] Slight refactor to mcfunction generator storage for dynamic class creation --- .../modules/liquid_wrappers.bolt | 24 +++++++++---------- .../data/gm4_potion_liquids/modules/main.bolt | 9 +++++-- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 9494ab3b75..e96d1a26e8 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -20,6 +20,7 @@ class Liquid: capacity: int = None name: str = None _fields = ['id', 'capacity', 'name'] + _generators = [] # functions that create mcfunction using bolt def __init__(self, *args, **kwargs): @@ -28,7 +29,6 @@ class Liquid: for field in self._fields: if input_args.get(field, None): setattr(self, field, input_args.get(field, None)) - self.generators = [] # functions that create mcfunction using bolt self.units = {} # reusable quantities shared amongst liquids self.naming_schemes = NamingSchemes() # stores which function names are taken and generates new ones self.struc = Liquid @@ -46,9 +46,9 @@ class Liquid: setattr(DecoratedLiquid, field, getattr(self, field, None)) self.struc = DecoratedLiquid # link access to class variables through `self` - for fcn in self.generators: - fcn() # create the mcfunction resources - self.generators.clear() + for fcn in DecoratedLiquid._generators: + fcn() # create the mcfunction + DecoratedLiquid._generators.clear() return DecoratedLiquid @@ -95,7 +95,7 @@ class Liquid: else: wrapped_fcn.__qualname__ = fcn.__qualname__ - self.generators.append(wrapped_fcn) + self.struc._generators.append(wrapped_fcn) return wrapped_fcn @staticmethod @@ -143,9 +143,9 @@ class Liquid: else: wrapped_fcn.__qualname__ = fcn.__qualname__ - if fcn_to_replace in self.generators: - self.generators.remove(fcn_to_replace) - self.generators.append(wrapped_fcn) + if fcn_to_replace in self.struc._generators: + self.struc._generators.remove(fcn_to_replace) + self.struc._generators.append(wrapped_fcn) return wrapped_fcn # create reverse @@ -199,9 +199,9 @@ class Liquid: else: wrapped_fcn.__qualname__ = fcn.__qualname__ - if fcn_to_replace in self.generators: - self.generators.remove(fcn_to_replace) - self.generators.append(wrapped_fcn) + if fcn_to_replace in self.struc._generators: + self.struc._generators.remove(fcn_to_replace) + self.struc._generators.append(wrapped_fcn) return wrapped_fcn default_dec = dec_with_args(partial(self._default_set_output, item=output), None) @@ -230,7 +230,7 @@ class Liquid: fcn() tag @s remove gm4_processing_tank - self.generators.append(wrapped_fcn) + self.struc._generators.append(wrapped_fcn) return wrapped_fcn diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 6dea168b8a..4689850444 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -24,17 +24,22 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: id = row["potion_id"].removeprefix("long_") name = "TODO NAME LOOKUP" # TODO - potion_liquid.init() + _generators = [] + potion_liquid.struc = PotionLiquidClass # programatically going around the decorators is odd, + # so we manually set this here so the handler + # knows the right classdef to put mcfunction into + potion_liquid.init() class_defs[class_key] = PotionLiquidClass this_potion_class = class_defs[class_key] + potion_liquid.struc = this_potion_class # add this potion to the liquid type if row["potion_id"].startswith("long"): this_potion_unit = long_potion else: this_potion_unit = base_potion - setattr(this_potion_class, row["potion_id"], this_potion_unit(f"minecraft:potion[potion_contents={{potion:\"{row['potion_id']}\"}}]")) + this_potion_unit(f"minecraft:potion[potion_contents={{potion:\"{row['potion_id']}\"}}]") # add this potion's util_below feature if not row["potion_id"].startswith("long"): From 8716ed84ea089739ab5dadf7325e63888bb9c245 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 18 Aug 2024 23:16:29 -0400 Subject: [PATCH 47/76] Skin assignment for strong potions uses base potions --- .../modules/liquid_wrappers.bolt | 7 ++++++- .../data/gm4_potion_liquids/modules/main.bolt | 17 ++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index e96d1a26e8..8da772a981 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -19,6 +19,7 @@ class Liquid: id: str = None capacity: int = None name: str = None + skin: str = None # defaults to value of `id` if not otherwise set _fields = ['id', 'capacity', 'name'] _generators = [] # functions that create mcfunction using bolt @@ -45,6 +46,10 @@ class Liquid: if getattr(self, field, None): setattr(DecoratedLiquid, field, getattr(self, field, None)) + # use the skin file of "id" if not otherwise specified. + if not DecoratedLiquid.skin: + DecoratedLiquid.skin = DecoratedLiquid.id + self.struc = DecoratedLiquid # link access to class variables through `self` for fcn in DecoratedLiquid._generators: fcn() # create the mcfunction @@ -64,7 +69,7 @@ class Liquid: id: player_head count:1b components:{ - "minecraft:profile": f"${(~/).split(':')[0]}:liquids/{self.struc.id}" + "minecraft:profile": f"${(~/).split(':')[0]}:liquids/{self.struc.skin}" } transformation: left_rotation: [0f,0f,0f,1f] diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 4689850444..bcc940b56a 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -13,8 +13,9 @@ from csv import DictReader with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: potion_def_reader = DictReader(csvfile) for row in potion_def_reader: - if row["potion_id"] in ("awkward", "mundane", "thick", "water"): + if row["potion_id"] in ("awkward", "mundane", "thick", "water")+("weaving", "wind_charged", "oozing", "infested"): continue # skip this potion type for now # FIXME + # FIXME reapply the new effect that dont have skins class_key = (row["effect_id"], row["effect_amplifier"]) # setup new liquid type if necessary and add to the dict @@ -25,6 +26,9 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: name = "TODO NAME LOOKUP" # TODO _generators = [] + if row["potion_id"].startswith("strong"): + PotionLiquidClass.skin = row["potion_id"].removeprefix("strong_") + potion_liquid.struc = PotionLiquidClass # programatically going around the decorators is odd, # so we manually set this here so the handler # knows the right classdef to put mcfunction into @@ -53,13 +57,16 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: } } } + m, s = row["effect_duration"].split(":") + duration = int(m)*60 + int(s) execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if predicate inline_predicate - run function gm4_potion_liquids:util/healing: - effect give @s night_vision 180 0 - scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 - playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 + run function f"gm4_potion_liquids:util/dispense/{row["effect_id"]}": + effect give @s night_vision duration (int(row["effect_amplifier"])-1) + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 + # potion_liquid.util_below(dispense_potion) # FIXME #NEXT this breaks the util_below wrapper somehow? # apply the liquid tanks decorator wrapper for liquid_class in class_defs.values(): From cdfc2fefc4b822f282643601690a77913ed0bd47 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 22 Aug 2024 06:51:47 -0400 Subject: [PATCH 48/76] [broken] progress toward fixed bolt util below --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 9 ++++++++- .../data/gm4_standard_liquids/modules/main.bolt | 4 ++++ .../data/gm4_potion_liquids/modules/main.bolt | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 8da772a981..c984962979 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -220,9 +220,16 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): # function header if needed - if "tag @s add gm4_processing_tank" not in ctx.data.functions[~/../util_below].lines: + print("wrapping util below") + if ~/../util_below not in ctx.data.functions or "tag @s add gm4_processing_tank" not in ctx.data.functions[~/../util_below].lines: + print("prepending tag add") prepend function ~/../util_below: tag @s add gm4_processing_tank + # print(ctx.data.functions[~/../util_below].content) + print(ctx.data.functions[~/../util_below].lines) + ctx.data.functions[~/../util_below].lines.remove("tag @s remove gm4_processing_tank") + print(ctx.data.functions[~/../util_below].lines) + # print(ctx.data.functions[~/../util_below].text) if "tag @s remove gm4_processing_tank" in ctx.data.functions[~/../util_below].lines: ctx.data.functions[~/../util_below].lines.remove("tag @s remove gm4_processing_tank") # TODO FIXME removal of this tag at the end? diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt index 95e3b5a15c..165de0fa2e 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt @@ -107,6 +107,10 @@ class Ink: @bottle('minecraft:potion[custom_data~{gm4_standard_liquids:{potion:"blindness"}}]') def ink_bottle(): loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:ink_bottle + + @liquid.util_below + def dispense_ink(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:blindness'}]}] run function gm4_standard_liquids:util/liquid_dispensing/ink @liquid class GlowInk: diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index bcc940b56a..98e53078f5 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -66,7 +66,7 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: effect give @s night_vision duration (int(row["effect_amplifier"])-1) scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 - # potion_liquid.util_below(dispense_potion) # FIXME #NEXT this breaks the util_below wrapper somehow? + potion_liquid.util_below(dispense_potion) # FIXME #NEXT this breaks the util_below wrapper somehow? # apply the liquid tanks decorator wrapper for liquid_class in class_defs.values(): From ff669bf9c8cc357aefea4dbdc8bc9c88e05590f7 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 22 Aug 2024 13:47:31 -0400 Subject: [PATCH 49/76] [failed] attempt at defer post-gen --- .../modules/liquid_wrappers.bolt | 25 +++++++++---------- .../function/util_below.mcfunction | 2 +- .../gm4_standard_liquids/modules/main.bolt | 5 ++++ 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index c984962979..1eac28bfd7 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -4,6 +4,7 @@ from inspect import isgeneratorfunction from beet import Context from mecha import Mecha, AstItemStack +from bolt.contrib.defer import Defer from gm4.utils import add_namespace @@ -34,6 +35,8 @@ class Liquid: self.naming_schemes = NamingSchemes() # stores which function names are taken and generates new ones self.struc = Liquid self.mc = ctx.inject(Mecha) + self.defer = ctx.inject(Defer) + self.completed_generation = {} def __call__(self, cls): """instance acts as decorator for defining new class-structures""" @@ -220,30 +223,26 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): # function header if needed - print("wrapping util below") if ~/../util_below not in ctx.data.functions or "tag @s add gm4_processing_tank" not in ctx.data.functions[~/../util_below].lines: - print("prepending tag add") prepend function ~/../util_below: tag @s add gm4_processing_tank - # print(ctx.data.functions[~/../util_below].content) - print(ctx.data.functions[~/../util_below].lines) - ctx.data.functions[~/../util_below].lines.remove("tag @s remove gm4_processing_tank") - print(ctx.data.functions[~/../util_below].lines) - # print(ctx.data.functions[~/../util_below].text) - if "tag @s remove gm4_processing_tank" in ctx.data.functions[~/../util_below].lines: - ctx.data.functions[~/../util_below].lines.remove("tag @s remove gm4_processing_tank") - # TODO FIXME removal of this tag at the end? - # TODO cache this check? - # NOTE could move the entire existance of this tag to the base module + + # NOTE the function tail (tag remove processing_tank) cannot be removed easily by bolt, + # so modules using both these wrappers and normal files will need to leave that line omitted # add commands append function ~/../util_below: execute if score @s[tag=f'gm4_lt_{self.struc.id}'] gm4_lt_value matches 1.. expand: fcn() - tag @s remove gm4_processing_tank self.struc._generators.append(wrapped_fcn) + self.defer(self._end_util_below) return wrapped_fcn + + @staticmethod + def _end_util_below(): + append function ~/../util_below: + tag @s remove gm4_processing_tank @staticmethod diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction index 635d209571..2f1e09b2fb 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util_below.mcfunction @@ -28,4 +28,4 @@ execute if score $schedule_withdraw_exp gm4_lt_util matches 2.. run schedule cle execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run scoreboard players set $schedule_withdraw_exp gm4_lt_util 1 execute if entity @s[tag=gm4_lt_experience] positioned ~0.5 ~-1 ~0.5 if entity @a[distance=..0.5,gamemode=!spectator] run schedule function gm4_standard_liquids:util/experience/scheduled_withdraw 1t -tag @s remove gm4_processing_tank +# tag @s remove gm4_processing_tank # this line is now added by main.bolt diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt index 165de0fa2e..572075045c 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt @@ -125,4 +125,9 @@ class GlowInk: loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:glow_ink_bottle liquid.item_fill('item_frame', 'glow_item_frame', 1, reversable=False) + + @liquid.util_below + def dispense_ink(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:glowing'}]}] run function gm4_standard_liquids:util/liquid_dispensing/glow_ink + From a4f0e8db892290e0e9920d576c70f398ff2600c9 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 28 Aug 2024 09:39:43 -0400 Subject: [PATCH 50/76] [working] using defer to selectively emit cleanup commands --- .../gm4_liquid_tanks/modules/liquid_wrappers.bolt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 1eac28bfd7..2f50c6ca32 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -23,6 +23,7 @@ class Liquid: skin: str = None # defaults to value of `id` if not otherwise set _fields = ['id', 'capacity', 'name'] _generators = [] # functions that create mcfunction using bolt + _singleton_util_below = 0 # classvar for util_below cleanup defers def __init__(self, *args, **kwargs): @@ -36,7 +37,6 @@ class Liquid: self.struc = Liquid self.mc = ctx.inject(Mecha) self.defer = ctx.inject(Defer) - self.completed_generation = {} def __call__(self, cls): """instance acts as decorator for defining new class-structures""" @@ -234,15 +234,18 @@ class Liquid: append function ~/../util_below: execute if score @s[tag=f'gm4_lt_{self.struc.id}'] gm4_lt_value matches 1.. expand: fcn() + self.defer(self._end_util_below) # tag @s remove gm4_processing_tank - on last run self.struc._generators.append(wrapped_fcn) - self.defer(self._end_util_below) + Liquid._singleton_util_below += 1 return wrapped_fcn @staticmethod def _end_util_below(): - append function ~/../util_below: - tag @s remove gm4_processing_tank + Liquid._singleton_util_below -= 1 + if Liquid._singleton_util_below <= 0: # only emit the commands if this is the last section of util_below + append function ~/../util_below: + tag @s remove gm4_processing_tank @staticmethod From 8c4c626d4a8f9f5f6207dd0c95ca28acc694944e Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 28 Aug 2024 10:29:03 -0400 Subject: [PATCH 51/76] Use defer for util_below setup also --- .../modules/liquid_wrappers.bolt | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index 2f50c6ca32..a1f43df613 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -23,7 +23,11 @@ class Liquid: skin: str = None # defaults to value of `id` if not otherwise set _fields = ['id', 'capacity', 'name'] _generators = [] # functions that create mcfunction using bolt - _singleton_util_below = 0 # classvar for util_below cleanup defers + _defer_counters = { + '_singleton_util_below_tail': 0, + '_singleton_util_below_head': 0 + } # classvar for util_below cleanup defers + def __init__(self, *args, **kwargs): @@ -224,8 +228,13 @@ class Liquid: def wrapped_fcn(): # function header if needed if ~/../util_below not in ctx.data.functions or "tag @s add gm4_processing_tank" not in ctx.data.functions[~/../util_below].lines: - prepend function ~/../util_below: - tag @s add gm4_processing_tank + Liquid._defer_counters['_singleton_util_below_head'] += 1 + @self.defer + def _end_util_below(): + Liquid._defer_counters['_singleton_util_below_head'] -= 1 + if Liquid._defer_counters['_singleton_util_below_head'] <= 0: # only emit the commands if this is the last section of util_below + prepend function ~/../util_below: + tag @s add gm4_processing_tank # NOTE the function tail (tag remove processing_tank) cannot be removed easily by bolt, # so modules using both these wrappers and normal files will need to leave that line omitted @@ -234,19 +243,16 @@ class Liquid: append function ~/../util_below: execute if score @s[tag=f'gm4_lt_{self.struc.id}'] gm4_lt_value matches 1.. expand: fcn() - self.defer(self._end_util_below) # tag @s remove gm4_processing_tank - on last run + @self.defer + def _end_util_below(): + Liquid._defer_counters['_singleton_util_below_tail'] -= 1 + if Liquid._defer_counters['_singleton_util_below_tail'] <= 0: # only emit the commands if this is the last section of util_below + append function ~/../util_below: + tag @s remove gm4_processing_tank self.struc._generators.append(wrapped_fcn) - Liquid._singleton_util_below += 1 - return wrapped_fcn - - @staticmethod - def _end_util_below(): - Liquid._singleton_util_below -= 1 - if Liquid._singleton_util_below <= 0: # only emit the commands if this is the last section of util_below - append function ~/../util_below: - tag @s remove gm4_processing_tank - + Liquid._defer_counters['_singleton_util_below_tail'] += 1 + return wrapped_fcn @staticmethod def _multiple_mcfunction(fcn): From 3b4fe927aba4dc7d2104000c9049c2abaa827cb3 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 28 Aug 2024 12:28:42 -0400 Subject: [PATCH 52/76] Properly bind csv row data to util_below generation --- .../data/gm4_potion_liquids/modules/main.bolt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 98e53078f5..ee3ef89c3d 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -1,4 +1,5 @@ from gm4_liquid_tanks:liquid_wrappers import Liquid +from functools import partial potion_liquid = Liquid(capacity=300) base_potion = potion_liquid.standard_unit('glass_bottle', 1, f_name="base_potion") @@ -13,7 +14,7 @@ from csv import DictReader with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: potion_def_reader = DictReader(csvfile) for row in potion_def_reader: - if row["potion_id"] in ("awkward", "mundane", "thick", "water")+("weaving", "wind_charged", "oozing", "infested"): + if row["potion_id"] in ("awkward", "mundane", "thick", "water")+("weaving", "wind_charged", "oozing", "infested")+("turtle_master", "strong_turtle_master"): continue # skip this potion type for now # FIXME # FIXME reapply the new effect that dont have skins @@ -47,7 +48,7 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: # add this potion's util_below feature if not row["potion_id"].startswith("long"): - def dispense_potion(): + def dispense_potion(row): inline_predicate = { "condition":"minecraft:entity_properties", "entity":"this", @@ -58,15 +59,15 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: } } m, s = row["effect_duration"].split(":") - duration = int(m)*60 + int(s) + duration = int(m)*60 + round(float(s)) execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if predicate inline_predicate - run function f"gm4_potion_liquids:util/dispense/{row["effect_id"]}": - effect give @s night_vision duration (int(row["effect_amplifier"])-1) + run function f"gm4_potion_liquids:util/dispense/{row["potion_id"]}": + effect give @s row["effect_id"] duration (int(row["effect_amplifier"])-1) scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 - potion_liquid.util_below(dispense_potion) # FIXME #NEXT this breaks the util_below wrapper somehow? + potion_liquid.util_below(partial(dispense_potion, row)) # FIXME #NEXT this breaks the util_below wrapper somehow? # apply the liquid tanks decorator wrapper for liquid_class in class_defs.values(): From e69fd2dcfd806ddfe298aa50dd332982c9cd8760 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 30 Aug 2024 13:56:22 -0400 Subject: [PATCH 53/76] Long potions cannot be filled back into a bottle --- gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index ee3ef89c3d..ec9795e1f6 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -3,7 +3,8 @@ from functools import partial potion_liquid = Liquid(capacity=300) base_potion = potion_liquid.standard_unit('glass_bottle', 1, f_name="base_potion") -long_potion = potion_liquid.standard_unit('glass_bottle', 3, f_name="long_potion") +potion_liquid.standard_unit('glass_bottle', 3, f_name="long_potion") # register standard unit +long_potion = partial(potion_liquid.item_drain, output='glass_bottle', value=3) # long potions cannot be filled from beet import JsonFile effect_colors = JsonFile(source_path="gm4_potion_liquids/effect_colors.json").data From 931896bb8f94dcb991691170fe77410a327dfdfe Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 30 Aug 2024 14:36:15 -0400 Subject: [PATCH 54/76] Add multiple-effect potions (turtle master) --- .../data/gm4_potion_liquids/modules/main.bolt | 17 +++++++++++------ gm4_potion_liquids/potion_definitions.csv | 6 +++--- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index ec9795e1f6..05073c485e 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -15,7 +15,7 @@ from csv import DictReader with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: potion_def_reader = DictReader(csvfile) for row in potion_def_reader: - if row["potion_id"] in ("awkward", "mundane", "thick", "water")+("weaving", "wind_charged", "oozing", "infested")+("turtle_master", "strong_turtle_master"): + if row["potion_id"] in ("awkward", "mundane", "thick", "water")+("weaving", "wind_charged", "oozing", "infested"): continue # skip this potion type for now # FIXME # FIXME reapply the new effect that dont have skins @@ -50,25 +50,30 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: # add this potion's util_below feature if not row["potion_id"].startswith("long"): def dispense_potion(row): + effects = row["effect_id"].split("+") + amplifiers = map(int, row["effect_amplifier"].split("+")) inline_predicate = { "condition":"minecraft:entity_properties", "entity":"this", "predicate":{ - "effects":{ - row["effect_id"]:{} - } + "effects":{} + # { e:{} for e in effects } # dict comprehension not supported by bolt } } + for e in effects: + inline_predicate["predicate"]["effects"][e] = {} + m, s = row["effect_duration"].split(":") duration = int(m)*60 + round(float(s)) execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if predicate inline_predicate run function f"gm4_potion_liquids:util/dispense/{row["potion_id"]}": - effect give @s row["effect_id"] duration (int(row["effect_amplifier"])-1) + for e, a in zip(effects, amplifiers): + effect give @s e duration (a-1) scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 - potion_liquid.util_below(partial(dispense_potion, row)) # FIXME #NEXT this breaks the util_below wrapper somehow? + potion_liquid.util_below(partial(dispense_potion, row)) # apply the liquid tanks decorator wrapper for liquid_class in class_defs.values(): diff --git a/gm4_potion_liquids/potion_definitions.csv b/gm4_potion_liquids/potion_definitions.csv index 9662b513aa..eb922e4cc2 100644 --- a/gm4_potion_liquids/potion_definitions.csv +++ b/gm4_potion_liquids/potion_definitions.csv @@ -16,7 +16,7 @@ long_slow_falling,slow_falling,1,4:00 long_slowness,slowness,1,4:00 long_strength,strength,1,8:00 long_swiftness,speed,1,8:00 -long_turtle_master,OVERRIDE,, +long_turtle_master,slowness+resistance,4+3,0:40 long_water_breathing,water_breathing,1,8:00 long_weakness,weakness,1,4:00 luck,luck,1,5:00 @@ -36,10 +36,10 @@ strong_regeneration,regeneration,2,0:22.5 strong_slowness,slowness,4,0:20 strong_strength,strength,2,1:30 strong_swiftness,speed,2,1:30 -strong_turtle_master,OVERRIDE,, +strong_turtle_master,slowness+resistance,5+4,0:20 swiftness,speed,1,3:00 thick,,, -turtle_master,OVERRIDE,, +turtle_master,slowness+resistance,4+3,0:20 water,,, water_breathing,water_breathing,1,3:00 weakness,weakness,1,1:30 From 6022247f81ce024f3d19c440f101fe255827b55e Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 30 Aug 2024 14:43:01 -0400 Subject: [PATCH 55/76] Potion tank naming --- gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 05073c485e..e2130b6236 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -25,7 +25,7 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: # @potion_liquid # we execute the class decorator later after setting up all the bolt stuff class PotionLiquidClass: id = row["potion_id"].removeprefix("long_") - name = "TODO NAME LOOKUP" # TODO + name = row["potion_id"].removeprefix("long_").replace("_"," ").title()+" Potion" _generators = [] if row["potion_id"].startswith("strong"): From 575d2e2b9afa4edd3dbb994fab9c885f22471446 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 4 Sep 2024 13:45:28 -0400 Subject: [PATCH 56/76] Boltify concrete mixers and update to new api --- gm4_cement_mixers/beet.yaml | 3 ++ .../item_fill/black_concrete.mcfunction | 7 --- .../item_fill/blue_concrete.mcfunction | 7 --- .../item_fill/brown_concrete.mcfunction | 7 --- .../item_fill/cyan_concrete.mcfunction | 7 --- .../item_fill/gray_concrete.mcfunction | 7 --- .../item_fill/green_concrete.mcfunction | 7 --- .../item_fill/light_blue_concrete.mcfunction | 7 --- .../item_fill/light_gray_concrete.mcfunction | 7 --- .../item_fill/lime_concrete.mcfunction | 7 --- .../item_fill/magenta_concrete.mcfunction | 7 --- .../function/item_fill/mud.mcfunction | 7 --- .../item_fill/orange_concrete.mcfunction | 7 --- .../item_fill/pink_concrete.mcfunction | 7 --- .../item_fill/purple_concrete.mcfunction | 7 --- .../item_fill/red_concrete.mcfunction | 7 --- .../item_fill/white_concrete.mcfunction | 7 --- .../item_fill/yellow_concrete.mcfunction | 7 --- .../function/water_concrete.mcfunction | 50 ++++++++++++------- 19 files changed, 34 insertions(+), 138 deletions(-) delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/black_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/blue_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/brown_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/cyan_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/gray_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/green_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_blue_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_gray_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/lime_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/magenta_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/mud.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/orange_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/pink_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/purple_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/red_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/white_concrete.mcfunction delete mode 100644 gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/yellow_concrete.mcfunction diff --git a/gm4_cement_mixers/beet.yaml b/gm4_cement_mixers/beet.yaml index be443fd3d0..f66f19d528 100644 --- a/gm4_cement_mixers/beet.yaml +++ b/gm4_cement_mixers/beet.yaml @@ -5,6 +5,9 @@ version: 1.4.X data_pack: load: . +require: + - bolt + pipeline: - gm4.plugins.extend.module diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/black_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/black_concrete.mcfunction deleted file mode 100644 index 16ba1cb1b8..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/black_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"black_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/blue_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/blue_concrete.mcfunction deleted file mode 100644 index 8fbe13feaa..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/blue_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"blue_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/brown_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/brown_concrete.mcfunction deleted file mode 100644 index 55c8ad45dd..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/brown_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"brown_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/cyan_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/cyan_concrete.mcfunction deleted file mode 100644 index ce10ff0a2b..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/cyan_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"cyan_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/gray_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/gray_concrete.mcfunction deleted file mode 100644 index 9dc5b179d2..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/gray_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"gray_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/green_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/green_concrete.mcfunction deleted file mode 100644 index 13c7d419b0..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/green_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"green_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_blue_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_blue_concrete.mcfunction deleted file mode 100644 index ce54a6b7b2..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_blue_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"light_blue_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_gray_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_gray_concrete.mcfunction deleted file mode 100644 index 31e2459e68..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/light_gray_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"light_gray_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/lime_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/lime_concrete.mcfunction deleted file mode 100644 index 30209e25ef..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/lime_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"lime_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/magenta_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/magenta_concrete.mcfunction deleted file mode 100644 index 437c712ee9..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/magenta_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"magenta_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/mud.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/mud.mcfunction deleted file mode 100644 index 556ad9747f..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/mud.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"mud"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/orange_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/orange_concrete.mcfunction deleted file mode 100644 index 4a9dbcf267..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/orange_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"orange_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/pink_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/pink_concrete.mcfunction deleted file mode 100644 index ed5e5cc74a..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/pink_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"pink_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/purple_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/purple_concrete.mcfunction deleted file mode 100644 index 4a1376e06c..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/purple_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"purple_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/red_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/red_concrete.mcfunction deleted file mode 100644 index 2c032bf007..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/red_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"red_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/white_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/white_concrete.mcfunction deleted file mode 100644 index 5a998a031f..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/white_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"white_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/yellow_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/yellow_concrete.mcfunction deleted file mode 100644 index 386192bfd3..0000000000 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/item_fill/yellow_concrete.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_cement_mixers:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"yellow_concrete"}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction index 606991fdba..15cb2d3844 100644 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction +++ b/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction @@ -1,22 +1,34 @@ # run from item_fill # @s = liquid tank at @s -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:black_concrete_powder"}} run function gm4_cement_mixers:item_fill/black_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:blue_concrete_powder"}} run function gm4_cement_mixers:item_fill/blue_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:brown_concrete_powder"}} run function gm4_cement_mixers:item_fill/brown_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:cyan_concrete_powder"}} run function gm4_cement_mixers:item_fill/cyan_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:gray_concrete_powder"}} run function gm4_cement_mixers:item_fill/gray_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:green_concrete_powder"}} run function gm4_cement_mixers:item_fill/green_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:light_blue_concrete_powder"}} run function gm4_cement_mixers:item_fill/light_blue_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:light_gray_concrete_powder"}} run function gm4_cement_mixers:item_fill/light_gray_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:lime_concrete_powder"}} run function gm4_cement_mixers:item_fill/lime_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:magenta_concrete_powder"}} run function gm4_cement_mixers:item_fill/magenta_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:orange_concrete_powder"}} run function gm4_cement_mixers:item_fill/orange_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:pink_concrete_powder"}} run function gm4_cement_mixers:item_fill/pink_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:purple_concrete_powder"}} run function gm4_cement_mixers:item_fill/purple_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:red_concrete_powder"}} run function gm4_cement_mixers:item_fill/red_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:white_concrete_powder"}} run function gm4_cement_mixers:item_fill/white_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:yellow_concrete_powder"}} run function gm4_cement_mixers:item_fill/yellow_concrete -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:dirt"}} run function gm4_cement_mixers:item_fill/mud -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:coarse_dirt"}} run function gm4_cement_mixers:item_fill/mud -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:rooted_dirt"}} run function gm4_cement_mixers:item_fill/mud +concretes_colors = ( + "black", + "blue", + "brown", + "cyan", + "gray", + "green", + "light_blue", + "light_gray", + "lime", + "magenta", + "orange", + "pink", + "purple", + "red", + "white", + "yellow" +) +for color in concretes_colors: + execute if items block ~ ~ ~ container.0 f"minecraft:{color}_concrete_powder" run function f"gm4_cement_mixers:item_fill/{color}_concrete": + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand with f"minecraft:{color}_concrete" + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill + +for variant in ("", "coarse_", "rooted_"): + execute if items block ~ ~ ~ container.0 f"minecraft:{variant}dirt" run function gm4_cement_mixers:item_fill/mud: + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand with minecraft:mud + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill From 80cfdeb6da6a70c5a0e9c7db4f2e1350d8d07218 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 5 Sep 2024 13:06:23 -0400 Subject: [PATCH 57/76] LIAB to new bolt bindings --- gm4_lightning_in_a_bottle/beet.yaml | 7 ++++++ .../liquid_tanks/item_drain.mcfunction | 5 ----- .../liquid_tanks/item_fill.mcfunction | 5 ----- .../item_fill/lightning_bottle.mcfunction | 9 -------- .../liquid_init/lightning.mcfunction | 6 ----- .../remove_liquid_tags.mcfunction | 5 ----- .../liquid_tanks/tank_init.mcfunction | 3 --- .../liquid_tanks/util/lightning.mcfunction | 8 ------- .../liquid_tanks/util_below.mcfunction | 9 -------- .../modules/liquid_tanks/liquid_features.bolt | 22 +++++++++++++++++++ .../modules/liquid_wrappers.bolt | 6 ++--- 11 files changed, 32 insertions(+), 53 deletions(-) delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_drain.mcfunction delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill.mcfunction delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill/lightning_bottle.mcfunction delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/liquid_init/lightning.mcfunction delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/remove_liquid_tags.mcfunction delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/tank_init.mcfunction delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util/lightning.mcfunction delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util_below.mcfunction create mode 100644 gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt diff --git a/gm4_lightning_in_a_bottle/beet.yaml b/gm4_lightning_in_a_bottle/beet.yaml index feab3518ba..8ccf4c8e6a 100644 --- a/gm4_lightning_in_a_bottle/beet.yaml +++ b/gm4_lightning_in_a_bottle/beet.yaml @@ -8,12 +8,19 @@ data_pack: resource_pack: load: . +require: + - bolt + pipeline: + - gm4_liquid_tanks.bolt_liquid_wrappers - gm4.plugins.extend.module - gm4.plugins.include.lib_brewing - gm4.plugins.include.lib_potion_tracking meta: + bolt: + entrypoint: + gm4_lightning_in_a_bottle:liquid_tanks/liquid_features gm4: versioning: required: diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_drain.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_drain.mcfunction deleted file mode 100644 index d219819f8b..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_drain.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = liquid tank with item in first slot -# run from #gm4_liquid_tanks:item_drain - -# lightning from lightning in a bottle -execute if entity @s[tag=gm4_lt_liab_lightning] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_lightning_in_a_bottle:1b}}}} run function gm4_standard_liquids:item_drain/bottle diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill.mcfunction deleted file mode 100644 index 381d8b9756..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = liquid tank with item in first slot -# run from #gm4_liquid_tanks:item_fill - -# lightning from lightning in a bottle -execute if entity @s[tag=gm4_lt_liab_lightning] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_lightning_in_a_bottle:liquid_tanks/item_fill/lightning_bottle diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill/lightning_bottle.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill/lightning_bottle.mcfunction deleted file mode 100644 index 8a18b2d19f..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/item_fill/lightning_bottle.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from #liquid_tanks:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_lightning_in_a_bottle:items/bottle_of_lightning -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] HandItems[0] -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/liquid_init/lightning.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/liquid_init/lightning.mcfunction deleted file mode 100644 index ddb518d340..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/liquid_init/lightning.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.lightning","fallback":"Lightning Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.lightning","fallback":"Lightning 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:1b,Marker:1b,Silent:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$lightning_liquid"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_liab_lightning" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_liab_lightning -tag @s remove gm4_lt_empty diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/remove_liquid_tags.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/remove_liquid_tags.mcfunction deleted file mode 100644 index 3f92f7210e..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/remove_liquid_tags.mcfunction +++ /dev/null @@ -1,5 +0,0 @@ -# @s = liquid tank stand -# removes all liquid tags from the stand. Used for emptying tank and reassigning liquid type -# run from #gm4_liquid_tanks:tank_init - -tag @s remove gm4_lt_liab_lightning diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/tank_init.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/tank_init.mcfunction deleted file mode 100644 index 090b32bdf5..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/tank_init.mcfunction +++ /dev/null @@ -1,3 +0,0 @@ - -# lightning from lightning in a bottle -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_lightning_in_a_bottle:1b}}}} run function gm4_lightning_in_a_bottle:liquid_tanks/liquid_init/lightning diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util/lightning.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util/lightning.mcfunction deleted file mode 100644 index c210eda2a5..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util/lightning.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# @s = living-base entity below ink tank -# run from gm4_lightning_in_a_bottle:liquid_tanks/util_below - -execute at @s run summon lightning_bolt ~ ~ ~ -scoreboard players remove @e[type=armor_stand,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.firework_rocket.twinkle block @a[distance=..8] ~ ~ ~ 2 1.5 - -advancement grant @s only gm4:lightning_in_a_bottle_drink diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util_below.mcfunction b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util_below.mcfunction deleted file mode 100644 index 0810bc5bd7..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/function/liquid_tanks/util_below.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -#@s = tank with entity below it positioned ~ ~-1 ~ -#run from liquid_tanks:process via #gm4_liquid_tanks:util_below - -tag @s add gm4_processing_tank - -# lightning -execute if score @s[tag=gm4_lt_liab_lightning] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,limit=1,dx=0] unless entity @s[gamemode=spectator] unless entity @s[predicate=gm4_lightning_in_a_bottle:on_fire] run function gm4_lightning_in_a_bottle:liquid_tanks/util/lightning - -tag @s remove gm4_processing_tank diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt new file mode 100644 index 0000000000..a22f052876 --- /dev/null +++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt @@ -0,0 +1,22 @@ +from gm4_liquid_tanks:liquid_wrappers import liquid + +@liquid +class BottledLightning: + id = 'liab_lightning' + name = "Lightning" + capacity = 300 + skin = 'lightning_liquid' + + liquid.init() + + @liquid.item_fill("glass_bottle", "potion[custom_data~{gm4_lightning_in_a_bottle:1b}]", 1) + def fill_bottle(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_lightning_in_a_bottle:items/bottle_of_lightning + + @liquid.util_below + def lightning_strike(): + execute unless entity @s[predicate=gm4_lightning_in_a_bottle:on_fire] run function gm4_lightning_in_a_bottle:liquid_tanks/util/lightning: + execute at @s run summon lightning_bolt ~ ~ ~ + scoreboard players remove @e[type=armor_stand,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.firework_rocket.twinkle block @a[distance=..8] ~ ~ ~ 2 1.5 + advancement grant @s only gm4:lightning_in_a_bottle_drink diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index a1f43df613..c45f3bc593 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -20,7 +20,7 @@ class Liquid: id: str = None capacity: int = None name: str = None - skin: str = None # defaults to value of `id` if not otherwise set + skin: str = None # defaults to value of `liquids/id` if not otherwise set _fields = ['id', 'capacity', 'name'] _generators = [] # functions that create mcfunction using bolt _defer_counters = { @@ -55,7 +55,7 @@ class Liquid: # use the skin file of "id" if not otherwise specified. if not DecoratedLiquid.skin: - DecoratedLiquid.skin = DecoratedLiquid.id + DecoratedLiquid.skin = "liquids/"+DecoratedLiquid.id self.struc = DecoratedLiquid # link access to class variables through `self` for fcn in DecoratedLiquid._generators: @@ -76,7 +76,7 @@ class Liquid: id: player_head count:1b components:{ - "minecraft:profile": f"${(~/).split(':')[0]}:liquids/{self.struc.skin}" + "minecraft:profile": f"${(~/).split(':')[0]}:{self.struc.skin}" } transformation: left_rotation: [0f,0f,0f,1f] From c7b2e29f74a7c1e5ea038d299f9491089ca2dfa0 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 5 Sep 2024 13:31:30 -0400 Subject: [PATCH 58/76] Washing tanks to new LT api --- gm4_washing_tanks/beet.yaml | 3 ++ .../function/item_fill.mcfunction | 2 +- .../function/wash.mcfunction | 33 +++++++++++-------- .../washing_recipes/armour.mcfunction | 11 ------- .../function/washing_recipes/bed.mcfunction | 8 ----- .../washing_recipes/carpet.mcfunction | 8 ----- .../function/washing_recipes/glass.mcfunction | 8 ----- .../washing_recipes/glass_pane.mcfunction | 8 ----- .../washing_recipes/shulker_box.mcfunction | 8 ----- .../washing_recipes/terracotta.mcfunction | 8 ----- .../function/washing_recipes/wool.mcfunction | 8 ----- .../gm4_washing_tanks/predicate/armour.json | 11 ------- .../data/gm4_washing_tanks/predicate/bed.json | 11 ------- .../gm4_washing_tanks/predicate/carpet.json | 11 ------- .../gm4_washing_tanks/predicate/glass.json | 11 ------- .../predicate/glass_pane.json | 11 ------- .../predicate/shulker_box.json | 11 ------- .../predicate/terracotta.json | 11 ------- .../gm4_washing_tanks/predicate/wool.json | 11 ------- 19 files changed, 24 insertions(+), 169 deletions(-) delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/armour.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/bed.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/carpet.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass_pane.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/shulker_box.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/terracotta.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/wool.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/armour.json delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/bed.json delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/carpet.json delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass.json delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass_pane.json delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/shulker_box.json delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/terracotta.json delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/wool.json diff --git a/gm4_washing_tanks/beet.yaml b/gm4_washing_tanks/beet.yaml index 889a657412..9fde0d822e 100644 --- a/gm4_washing_tanks/beet.yaml +++ b/gm4_washing_tanks/beet.yaml @@ -5,6 +5,9 @@ version: 1.4.X data_pack: load: . +require: + - bolt + pipeline: - gm4.plugins.extend.module diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction index c425bcb7e5..c3633e84fa 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction +++ b/gm4_washing_tanks/data/gm4_washing_tanks/function/item_fill.mcfunction @@ -1,4 +1,4 @@ #@s = liquid tank with item in first slot #run from liquid_tanks:item_process -execute if entity @s[tag=gm4_lt_water] as @e[type=armor_stand,tag=gm4_liquid_tank_stand,distance=..0.6,limit=1] run function gm4_washing_tanks:wash +execute if entity @s[tag=gm4_lt_water] run function gm4_washing_tanks:wash diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction index 43735f4602..1edb910e33 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction +++ b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction @@ -1,18 +1,25 @@ #@s = water tank liquid_tank_stand with item in first slot #run from item_fill -# Copy item to armor stand offhand -data modify entity @s HandItems[1] merge value {id:"minecraft:stick",count:1} -data modify entity @s HandItems[1].id set from storage gm4_liquid_tanks:temp/tank input_slot.id +conversions = { + "glass": "glass", + "glass_pane": "glass_pane", + "terracotta": "terracotta", + "wool": "white_wool", + "bed": "white_bed", + "carpet": "white_carpet", + "shulker_box": "shulker_box" +} -execute if predicate gm4_washing_tanks:glass as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/glass -execute if predicate gm4_washing_tanks:glass_pane as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/glass_pane -execute if predicate gm4_washing_tanks:terracotta as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/terracotta -execute if predicate gm4_washing_tanks:wool as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/wool -execute if predicate gm4_washing_tanks:bed as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/bed -execute if predicate gm4_washing_tanks:carpet as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/carpet -execute if predicate gm4_washing_tanks:armour if data storage gm4_liquid_tanks:temp/tank input_slot.components."minecraft:dyed_color" as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/armour -execute if predicate gm4_washing_tanks:shulker_box as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/shulker_box +for from_id, to_id in conversions.items(): + execute if items block ~ ~ ~ container.0 f"#gm4_washing_tanks:{from_id}" run function f"gm4_washing_tanks:washing_recipes/{from_id}": + scoreboard players set $item_value gm4_lt_value -1 + item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_item", "item":f"minecraft:{to_id}"} + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill -# Clear armor stand offhand -data modify entity @s HandItems[1] set value {} +execute if items block ~ ~ ~ container.0 #gm4_washing_tanks:armour[dyed_color] run function gm4_washing_tanks:washing_recipes/armour: + scoreboard players set $item_value gm4_lt_value -1 + item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_components", "components":{"!minecraft:dyed_color":{}}} + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/armour.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/armour.mcfunction deleted file mode 100644 index b90ce8014d..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/armour.mcfunction +++ /dev/null @@ -1,11 +0,0 @@ -#@s = water tank with one leather armour in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 - -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot - -data remove storage gm4_liquid_tanks:temp/tank output.components."minecraft:dyed_color" - -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/bed.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/bed.mcfunction deleted file mode 100644 index c0f240ba91..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/bed.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured bed in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value white_bed -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/carpet.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/carpet.mcfunction deleted file mode 100644 index b54749b1d9..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/carpet.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured carpet in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value white_carpet -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass.mcfunction deleted file mode 100644 index 5e75d03749..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one stained glass in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value glass -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass_pane.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass_pane.mcfunction deleted file mode 100644 index d0eb013cd0..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/glass_pane.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one stained glass pane in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value glass_pane -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/shulker_box.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/shulker_box.mcfunction deleted file mode 100644 index be606d088e..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/shulker_box.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured shulker box in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value shulker_box -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/terracotta.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/terracotta.mcfunction deleted file mode 100644 index 28680d4c50..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/terracotta.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured terracotta in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value terracotta -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/wool.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/wool.mcfunction deleted file mode 100644 index f2fe49cc93..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/wool.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one coloured wool in the first slot -#run from wash - -scoreboard players set $item_value gm4_lt_value -1 -data modify storage gm4_liquid_tanks:temp/tank output set from storage gm4_liquid_tanks:temp/tank input_slot -data modify storage gm4_liquid_tanks:temp/tank output.id set value white_wool -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/armour.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/armour.json deleted file mode 100644 index ef34c2d59d..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/armour.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:armour" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/bed.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/bed.json deleted file mode 100644 index 944059c92a..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/bed.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:bed" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/carpet.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/carpet.json deleted file mode 100644 index 18f9926ab9..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/carpet.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:carpet" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass.json deleted file mode 100644 index 853b049d97..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:glass" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass_pane.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass_pane.json deleted file mode 100644 index 08705b7145..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/glass_pane.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:glass_pane" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/shulker_box.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/shulker_box.json deleted file mode 100644 index 97b7f37176..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/shulker_box.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:shulker_box" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/terracotta.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/terracotta.json deleted file mode 100644 index c7cf2b6ee2..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/terracotta.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:terracotta" - } - } - } -} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/wool.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/wool.json deleted file mode 100644 index be3e5966e2..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/wool.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:wool" - } - } - } -} From aa63288b936557a9c5de7d677b3b6182a6b6d712 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 5 Sep 2024 13:35:18 -0400 Subject: [PATCH 59/76] Update LT version number --- gm4_cement_mixers/beet.yaml | 2 +- gm4_liquid_tanks/beet.yaml | 2 +- gm4_mending_tanks/beet.yaml | 2 +- gm4_potion_liquids/beet.yaml | 2 +- gm4_washing_tanks/beet.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gm4_cement_mixers/beet.yaml b/gm4_cement_mixers/beet.yaml index f66f19d528..b0159e65a9 100644 --- a/gm4_cement_mixers/beet.yaml +++ b/gm4_cement_mixers/beet.yaml @@ -15,7 +15,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.3.0 + gm4_liquid_tanks: 2.7.0 website: description: Allows Liquid Tanks to convert Concrete Powder items into Concrete, at the cost of â…“ of a Bucket of Water per Concrete Powder. recommended: [] diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index 3246eac663..f1d52dea2f 100644 --- a/gm4_liquid_tanks/beet.yaml +++ b/gm4_liquid_tanks/beet.yaml @@ -1,6 +1,6 @@ id: gm4_liquid_tanks name: Liquid Tanks -version: 2.6.X +version: 2.7.X data_pack: load: . diff --git a/gm4_mending_tanks/beet.yaml b/gm4_mending_tanks/beet.yaml index 4977ddd762..07d466087a 100644 --- a/gm4_mending_tanks/beet.yaml +++ b/gm4_mending_tanks/beet.yaml @@ -12,7 +12,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.3.0 + gm4_liquid_tanks: 2.7.0 website: description: Enables Liquid Tanks filled with Experience to repair tools with the mending enchant on them. recommended: [] diff --git a/gm4_potion_liquids/beet.yaml b/gm4_potion_liquids/beet.yaml index d13a78a668..9adb58b699 100644 --- a/gm4_potion_liquids/beet.yaml +++ b/gm4_potion_liquids/beet.yaml @@ -21,7 +21,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.3.0 + gm4_liquid_tanks: 2.7.0 lib_brewing: 1.2.0 model_data: - item: potion diff --git a/gm4_washing_tanks/beet.yaml b/gm4_washing_tanks/beet.yaml index 9fde0d822e..8cbc6b611d 100644 --- a/gm4_washing_tanks/beet.yaml +++ b/gm4_washing_tanks/beet.yaml @@ -15,7 +15,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.3.0 + gm4_liquid_tanks: 2.7.0 website: description: Die! Dye! Remove die from items in a Liquid Tank filled with Water, at the cost of â…“ of a bucket. recommended: [] From 7e2604cfd4ca5b88e1856fe2fc14410a0e3b8a35 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 11:15:57 -0400 Subject: [PATCH 60/76] Potion liquids creates missing skins based upon potion effect colors --- .../data/gm4_potion_liquids/modules/main.bolt | 22 +++++++++++++++++- gm4_potion_liquids/untint_skin.png | Bin 0 -> 769 bytes 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 gm4_potion_liquids/untint_skin.png diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index e2130b6236..a530eb1f4d 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -1,5 +1,8 @@ from gm4_liquid_tanks:liquid_wrappers import Liquid from functools import partial +from gm4.plugins.player_heads import Skin +import numpy as np +from PIL import Image, ImageChops, ImageColor potion_liquid = Liquid(capacity=300) base_potion = potion_liquid.standard_unit('glass_bottle', 1, f_name="base_potion") @@ -11,6 +14,8 @@ effect_colors = JsonFile(source_path="gm4_potion_liquids/effect_colors.json").da class_defs = {} +untinted_skin = Skin(source_path="gm4_potion_liquids/untint_skin.png") + from csv import DictReader with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: potion_def_reader = DictReader(csvfile) @@ -29,7 +34,7 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: _generators = [] if row["potion_id"].startswith("strong"): - PotionLiquidClass.skin = row["potion_id"].removeprefix("strong_") + PotionLiquidClass.skin = "liquids/"+row["potion_id"].removeprefix("strong_") potion_liquid.struc = PotionLiquidClass # programatically going around the decorators is odd, # so we manually set this here so the handler @@ -74,6 +79,21 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 potion_liquid.util_below(partial(dispense_potion, row)) + + # create this potion's skin texture if needed + skin_id = this_potion_class.id.removeprefix("strong_").removeprefix("long_") + if skin_id not in ctx.data["gm4_potion_liquids"][Skin].generate_tree()["liquids"]: + # compute the potion color for any mixed potions (a weighted average of their colors) + tint_colors = np.empty(shape=(3,0)) + for effect_id in row["effect_id"].split("+"): + rgb = np.array(ImageColor.getrgb(effect_colors[effect_id][0])).reshape((-1,1)) + tint_colors = np.append(tint_colors, rgb, axis=1) + tint_weights = list(map(int, row["effect_amplifier"].split("+"))) + tint_color = tuple(map(int, np.average(tint_colors, weights=tint_weights, axis=1))) + # print('#%02x%02x%02x' % tint_color) + + tint_image = Image.new("RGBA", untinted_skin.image.size, tint_color) + ctx.data[f"gm4_potion_liquids:liquids/{skin_id}"] = Skin(ImageChops.multiply(tint_image, untinted_skin.image)) # apply the liquid tanks decorator wrapper for liquid_class in class_defs.values(): diff --git a/gm4_potion_liquids/untint_skin.png b/gm4_potion_liquids/untint_skin.png new file mode 100644 index 0000000000000000000000000000000000000000..542da907ebd0a2256ad62e8ebf1581fd2b75b7a8 GIT binary patch literal 769 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-HD>U|Q(u;uumf z=k1L3`Hu}m8uq_43T>X&C6u{fS+nBhB^weB|Fteps6UhNFr(nYk^?8^L0+1y~DCp#5Hijb4!NY+iY{MNm)qmzyH3nzMg+q#J;piJ2}r;?ph~Z z8Jq1pEj1)mw1@phj+ydJ_rs>f(u|e!g0Gu8aQxIc9kKqp;ve(bybcEU9$$ViYi4i5 zu652*KRi~f(t7cDPrrH6F3Ibswr3xx+MBlfZjcBoLuzDFkL1z=Q|c9&(##naytZO! zO9Ya0iXHtffAK#5yZZXM?Oh4Cx1~gi1u2~W94K|*X2ScAncjQS!V2gAU-h8!=40!| z>B)QLkDot3S8y8Yk6DqqJBK$ zh@K_y@9%FfFE8&osbyKF$0U~LGPU>Fe?ET9oUPk_xN+b6!gGb?<;M>ncAimeBe(MP ztiulve5`o#@1NXS)7tx&P0k+u@$H*fwr+lY{{Crq8d%Q#d|AD%SntF=?>Zaa=Qq0R z{O Date: Fri, 6 Sep 2024 11:21:13 -0400 Subject: [PATCH 61/76] Automated mineskin creation of new potion skins (weaving, oozing ect) --- gm4/skin_cache.json | 44 +++++++++++++++++++ .../data/gm4_potion_liquids/modules/main.bolt | 2 +- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index 505748697a..5958e73ff1 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -956,6 +956,50 @@ "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzA1YTY0N2YzYmY2YzMzZGQwNWI5M2JkZTJiNzRlYzViOWE5YTMxODQxM2FlZWRkZGE3ZDFhYjk3NDVkZmE5OCd9fX0=", "hash": "b1173eacf6e07f062e2301d25669acc1a3a0ac20", "parent_module": "gm4_metallurgy" + }, + "gm4_potion_liquids:liquids/infested": { + "uuid": [ + -1996504295, + 1552826831, + -2054795441, + -1569665209 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTM1ZGFiNjQzOGFmZjA1M2VmZDI0NjMzOWZkMjAxNjJmMzViZmJmMjg4MGFiNGVkNmI4NmFmMDllNTQwOTZiMyd9fX0=", + "hash": "50aa38faf483a78bd9a33a437d30713901459ec9", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/oozing": { + "uuid": [ + -783904090, + 1232292212, + -1545737453, + -1152375565 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjEyYTBkN2E5YmMzYzczZjQwNTZhYWY3N2FmMmFhNzBmNmRjMjk2MGY2NjRmMjdlZWNjMzVkM2Y2NzMyMDcyOCd9fX0=", + "hash": "a8e2a88fb261b67b80278dade5546dc13a789f64", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/weaving": { + "uuid": [ + 842038238, + 472862371, + -1885580302, + 123777373 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjNlZDM4MWU0MWVmOWJlOWE4OGY5ZGYzOTAzMmJhOGY3OTliYjBiYmM1ODU2ZTk5YzI0YTU3MGFjMjI1OWY1Yyd9fX0=", + "hash": "fb4b712349e985159d1b5dbf20c2ed56f6a47262", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/wind_charged": { + "uuid": [ + -1085379822, + 1256014354, + -2139157479, + -487046405 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODJiYTI0NDYzY2FjYTc5MjAzNGVkMGNhNzc4YTUwM2M1OWU1ZTg4YjU2ODBhMTIxM2UxNmIwZmFhZWE5YzMwOSd9fX0=", + "hash": "8d5ed9cbae9e0fc0191d9c140e33adfdd2905ace", + "parent_module": "gm4_potion_liquids" } }, "nonnative_references": { diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index a530eb1f4d..6a551e380b 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -20,7 +20,7 @@ from csv import DictReader with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: potion_def_reader = DictReader(csvfile) for row in potion_def_reader: - if row["potion_id"] in ("awkward", "mundane", "thick", "water")+("weaving", "wind_charged", "oozing", "infested"): + if row["potion_id"] in ("awkward", "mundane", "thick", "water"): continue # skip this potion type for now # FIXME # FIXME reapply the new effect that dont have skins From 175240fbdaf23245b57fcc0e7b75e70c3ee15268 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 11:37:18 -0400 Subject: [PATCH 62/76] Add tanks for thick, mundane and awkward potion types --- gm4/skin_cache.json | 33 +++++++++++++++++++ .../data/gm4_potion_liquids/modules/main.bolt | 9 ++--- gm4_potion_liquids/potion_definitions.csv | 8 ++--- 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index 5958e73ff1..864cf723a2 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -1000,6 +1000,39 @@ "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODJiYTI0NDYzY2FjYTc5MjAzNGVkMGNhNzc4YTUwM2M1OWU1ZTg4YjU2ODBhMTIxM2UxNmIwZmFhZWE5YzMwOSd9fX0=", "hash": "8d5ed9cbae9e0fc0191d9c140e33adfdd2905ace", "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/awkward": { + "uuid": [ + 594379978, + -2079439988, + -2142727791, + 2046532997 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjc2ZTI2ZmRmZGU4YmY5ZjY0MWM0YjdlZDViNmY3NjNhZmFiZDM5OGIzZjc5MjRhOTViYzA4YjM4N2FhM2MxJ319fQ==", + "hash": "4a3fbe092f343e239311835b44cadd819686e558", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/mundane": { + "uuid": [ + 594379978, + -2079439988, + -2142727791, + 2046532997 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjc2ZTI2ZmRmZGU4YmY5ZjY0MWM0YjdlZDViNmY3NjNhZmFiZDM5OGIzZjc5MjRhOTViYzA4YjM4N2FhM2MxJ319fQ==", + "hash": "4a3fbe092f343e239311835b44cadd819686e558", + "parent_module": "gm4_potion_liquids" + }, + "gm4_potion_liquids:liquids/thick": { + "uuid": [ + 594379978, + -2079439988, + -2142727791, + 2046532997 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjc2ZTI2ZmRmZGU4YmY5ZjY0MWM0YjdlZDViNmY3NjNhZmFiZDM5OGIzZjc5MjRhOTViYzA4YjM4N2FhM2MxJ319fQ==", + "hash": "4a3fbe092f343e239311835b44cadd819686e558", + "parent_module": "gm4_potion_liquids" } }, "nonnative_references": { diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 6a551e380b..b544c5ff45 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -20,11 +20,12 @@ from csv import DictReader with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: potion_def_reader = DictReader(csvfile) for row in potion_def_reader: - if row["potion_id"] in ("awkward", "mundane", "thick", "water"): - continue # skip this potion type for now # FIXME - # FIXME reapply the new effect that dont have skins + if row["potion_id"] in ("water"): + continue # skip this potion type class_key = (row["effect_id"], row["effect_amplifier"]) + if row["effect_id"]=="": # effect-less potions each get their own tank type + class_key = (row["potion_id"]) # setup new liquid type if necessary and add to the dict if class_key not in class_defs: # @potion_liquid # we execute the class decorator later after setting up all the bolt stuff @@ -53,7 +54,7 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: this_potion_unit(f"minecraft:potion[potion_contents={{potion:\"{row['potion_id']}\"}}]") # add this potion's util_below feature - if not row["potion_id"].startswith("long"): + if not row["potion_id"].startswith("long") and not row["effect_id"]=="": def dispense_potion(row): effects = row["effect_id"].split("+") amplifiers = map(int, row["effect_amplifier"].split("+")) diff --git a/gm4_potion_liquids/potion_definitions.csv b/gm4_potion_liquids/potion_definitions.csv index eb922e4cc2..6c0b2c758e 100644 --- a/gm4_potion_liquids/potion_definitions.csv +++ b/gm4_potion_liquids/potion_definitions.csv @@ -1,5 +1,5 @@ potion_id,"effect_id","effect_amplifier","effect_duration" -awkward,,, +awkward,,1, fire_resistance,fire_resistance,1,3:00 harming,instant_damage,1,0:00 healing,instant_health,1,0:00 @@ -20,7 +20,7 @@ long_turtle_master,slowness+resistance,4+3,0:40 long_water_breathing,water_breathing,1,8:00 long_weakness,weakness,1,4:00 luck,luck,1,5:00 -mundane,,, +mundane,,1, night_vision,night_vision,1,3:00 oozing,oozing,1,3:00 poison,poison,1,0:45 @@ -38,9 +38,9 @@ strong_strength,strength,2,1:30 strong_swiftness,speed,2,1:30 strong_turtle_master,slowness+resistance,5+4,0:20 swiftness,speed,1,3:00 -thick,,, +thick,,1, turtle_master,slowness+resistance,4+3,0:20 -water,,, +water,,1, water_breathing,water_breathing,1,3:00 weakness,weakness,1,1:30 weaving,weaving,1,1:30 From 07790925ba9c13437875295a0eef50f4de47488a Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:14:12 -0400 Subject: [PATCH 63/76] Add Floating potion --- .../data/gm4_potion_liquids/modules/main.bolt | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index b544c5ff45..430d377db7 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -73,7 +73,7 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: duration = int(m)*60 + round(float(s)) execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] - if predicate inline_predicate + unless predicate inline_predicate run function f"gm4_potion_liquids:util/dispense/{row["potion_id"]}": for e, a in zip(effects, amplifiers): effect give @s e duration (a-1) @@ -101,23 +101,28 @@ for liquid_class in class_defs.values(): potion_liquid(liquid_class) -# @potion_liquid -# class HealthPotion: -# id = "healing" -# name = "Healing" +# Potions added by this module +potion_liquid.struc = Liquid # return decorator to normal operation +@potion_liquid +class FloatingPotion: + id = "floating" + name = "Floating Potion" -# potion_liquid.init() -# bottle('minecraft:potion[potion_contents={potion:"healing"}]') -# potion_liquid.item_drain('minecraft:potion[potion_contents={potion:"healing"}]', "bottle", 3) + potion_liquid.init() + @base_potion("minecraft:potion[custom_data~{gm4_potion_liquids:{potion:'floating'}}]") + def floating_potion(): + loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_potion_liquids:floating_potion -# @potion_liquid.util_below -# def dispense_potion(): -# execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] -# unless entity @s[gamemode=spectator] -# if entity @s[nbt=!{active_effects:[{id:'minecraft:instant_health'}]}] -# run function gm4_potion_liquids:util/healing: -# effect give @s night_vision 180 0 -# scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -# playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 - -# print(ctx.data.function["gm4_potion_liquids:util_below"].text.splitlines()) + @potion_liquid.util_below + def dispense_float_potion(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + unless predicate { + "condition":"minecraft:entity_properties", + "entity":"this", + "predicate":{"effects":{"levitation":{}}} + } + run function gm4_potion_liquids:util/dispense/floating: + effect give @s levitation 45 2 + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 From 924deb5521ea55d19dd6ff44f587b9340aa9073d Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:24:43 -0400 Subject: [PATCH 64/76] Cleanup old potion liquids files --- .../tags/function/item_drain.json | 6 -- .../tags/function/item_fill.json | 6 -- .../tags/function/remove_liquid_tags.json | 6 -- .../tags/function/tank_init.json | 6 -- .../tags/function/util_below.json | 6 -- .../function/item_drain_old.mcfunction | 93 ------------------- .../item_drain_old/long_potion.mcfunction | 8 -- .../function/item_drain_old/potion.mcfunction | 8 -- .../function/item_fill_old.mcfunction | 80 ---------------- .../fire_resistance_potion.mcfunction | 7 -- .../item_fill_old/floating_potion.mcfunction | 9 -- .../item_fill_old/harming_potion.mcfunction | 7 -- .../item_fill_old/healing_potion.mcfunction | 7 -- .../invisibility_potion.mcfunction | 7 -- .../item_fill_old/leaping_potion.mcfunction | 7 -- .../item_fill_old/luck_potion.mcfunction | 7 -- .../night_vision_potion.mcfunction | 7 -- .../item_fill_old/poison_potion.mcfunction | 7 -- .../regeneration_potion.mcfunction | 7 -- .../slow_falling_potion.mcfunction | 7 -- .../item_fill_old/slowness_potion.mcfunction | 7 -- .../item_fill_old/strength_potion.mcfunction | 7 -- .../strong_harming_potion.mcfunction | 7 -- .../strong_healing_potion.mcfunction | 7 -- .../strong_leaping_potion.mcfunction | 7 -- .../strong_poison_potion.mcfunction | 7 -- .../strong_regeneration_potion.mcfunction | 7 -- .../strong_slowness_potion.mcfunction | 7 -- .../strong_strength_potion.mcfunction | 7 -- .../strong_swiftness_potion.mcfunction | 7 -- .../strong_turtle_master_potion.mcfunction | 7 -- .../item_fill_old/swiftness_potion.mcfunction | 7 -- .../turtle_master_potion.mcfunction | 7 -- .../water_breathing_potion.mcfunction | 7 -- .../item_fill_old/weakness_potion.mcfunction | 7 -- .../fire_resistance.mcfunction | 6 -- .../liquid_init_old/floating.mcfunction | 6 -- .../liquid_init_old/harming.mcfunction | 6 -- .../liquid_init_old/healing.mcfunction | 6 -- .../liquid_init_old/invisibility.mcfunction | 6 -- .../liquid_init_old/leaping.mcfunction | 6 -- .../function/liquid_init_old/luck.mcfunction | 6 -- .../liquid_init_old/night_vision.mcfunction | 6 -- .../liquid_init_old/poison.mcfunction | 6 -- .../liquid_init_old/regeneration.mcfunction | 6 -- .../liquid_init_old/slow_falling.mcfunction | 6 -- .../liquid_init_old/slowness.mcfunction | 6 -- .../liquid_init_old/strength.mcfunction | 6 -- .../liquid_init_old/strong_harming.mcfunction | 6 -- .../liquid_init_old/strong_healing.mcfunction | 6 -- .../liquid_init_old/strong_leaping.mcfunction | 6 -- .../liquid_init_old/strong_poison.mcfunction | 6 -- .../strong_regeneration.mcfunction | 6 -- .../strong_slowness.mcfunction | 6 -- .../strong_strength.mcfunction | 6 -- .../strong_swiftness.mcfunction | 6 -- .../strong_turtle_master.mcfunction | 9 -- .../liquid_init_old/swiftness.mcfunction | 6 -- .../liquid_init_old/turtle_master.mcfunction | 6 -- .../water_breathing.mcfunction | 6 -- .../liquid_init_old/weakness.mcfunction | 6 -- .../remove_liquid_tags_old.mcfunction | 29 ------ .../function/tank_init_old.mcfunction | 93 ------------------- .../random_witch_init.mcfunction | 0 .../{util_old => util}/shulker.mcfunction | 0 .../{util_old => util}/witch.mcfunction | 0 ...e_old.mcfunction => util_above.mcfunction} | 0 .../function/util_below_old.mcfunction | 84 ----------------- .../util_old/fire_resistance.mcfunction | 6 -- .../function/util_old/floating.mcfunction | 6 -- .../function/util_old/harming.mcfunction | 6 -- .../function/util_old/healing.mcfunction | 6 -- .../function/util_old/invisibility.mcfunction | 6 -- .../function/util_old/leaping.mcfunction | 6 -- .../function/util_old/luck.mcfunction | 6 -- .../function/util_old/night_vision.mcfunction | 6 -- .../function/util_old/poison.mcfunction | 6 -- .../function/util_old/regeneration.mcfunction | 6 -- .../function/util_old/slow_falling.mcfunction | 6 -- .../function/util_old/slowness.mcfunction | 6 -- .../function/util_old/strength.mcfunction | 6 -- .../util_old/strong_harming.mcfunction | 6 -- .../util_old/strong_healing.mcfunction | 6 -- .../util_old/strong_leaping.mcfunction | 6 -- .../util_old/strong_poison.mcfunction | 6 -- .../util_old/strong_regeneration.mcfunction | 6 -- .../util_old/strong_slowness.mcfunction | 6 -- .../util_old/strong_strength.mcfunction | 6 -- .../util_old/strong_swiftness.mcfunction | 6 -- .../util_old/strong_turtle_master.mcfunction | 7 -- .../function/util_old/swiftness.mcfunction | 6 -- .../util_old/turtle_master.mcfunction | 7 -- .../util_old/water_breathing.mcfunction | 6 -- .../function/util_old/weakness.mcfunction | 6 -- 94 files changed, 926 deletions(-) delete mode 100644 gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_drain.json delete mode 100644 gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_fill.json delete mode 100644 gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json delete mode 100644 gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/tank_init.json delete mode 100644 gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/util_below.json delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/long_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/fire_resistance_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/floating_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/harming_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/healing_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/invisibility_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/leaping_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/luck_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/night_vision_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/poison_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/regeneration_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slow_falling_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slowness_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strength_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_harming_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_healing_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_leaping_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_poison_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_regeneration_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_slowness_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_strength_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_swiftness_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_turtle_master_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/swiftness_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/turtle_master_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/water_breathing_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/weakness_potion.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/fire_resistance.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/floating.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/harming.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/healing.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/invisibility.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/leaping.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/luck.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/night_vision.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/poison.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/regeneration.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slow_falling.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slowness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strength.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_harming.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_healing.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_leaping.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_poison.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_regeneration.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_slowness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_strength.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_swiftness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_turtle_master.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/swiftness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/turtle_master.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/water_breathing.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/weakness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags_old.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init_old.mcfunction rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util_old => util}/random_witch_init.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util_old => util}/shulker.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util_old => util}/witch.mcfunction (100%) rename gm4_potion_liquids/data/gm4_potion_liquids/function/{util_above_old.mcfunction => util_above.mcfunction} (100%) delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_below_old.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/fire_resistance.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/floating.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/harming.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/healing.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/invisibility.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/leaping.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/luck.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/night_vision.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/poison.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/regeneration.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slow_falling.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slowness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strength.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_harming.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_healing.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_leaping.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_poison.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_regeneration.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_slowness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_strength.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_swiftness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_turtle_master.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/swiftness.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/turtle_master.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/water_breathing.mcfunction delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/weakness.mcfunction diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_drain.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_drain.json deleted file mode 100644 index ea8e4638b4..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_drain.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:item_drain" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_fill.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_fill.json deleted file mode 100644 index 59f9ab2296..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/item_fill.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:item_fill" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json deleted file mode 100644 index 8bc03cd31b..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:remove_liquid_tags" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/tank_init.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/tank_init.json deleted file mode 100644 index 42a671fa08..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/tank_init.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:tank_init" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/util_below.json b/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/util_below.json deleted file mode 100644 index b593637464..0000000000 --- a/gm4_potion_liquids/data/gm4_liquid_tanks/tags/function/util_below.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "values":[ - "gm4_potion_liquids:util_below" - ] - -} diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old.mcfunction deleted file mode 100644 index 78eb793aac..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old.mcfunction +++ /dev/null @@ -1,93 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#night_vision -execute if entity @s[tag=gm4_lt_night_vision] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:night_vision"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_night_vision] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_night_vision"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#invisibility -execute if entity @s[tag=gm4_lt_invisibility] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:invisibility"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_invisibility] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_invisibility"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#leaping -execute if entity @s[tag=gm4_lt_leaping] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:leaping"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_leaping] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_leaping"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong leaping -execute if entity @s[tag=gm4_lt_strong_leaping] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_leaping"}}}} run function gm4_potion_liquids:item_drain/potion - -#fire resistance -execute if entity @s[tag=gm4_lt_fire_resistance] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:fire_resistance"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_fire_resistance] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_fire_resistance"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#swiftness -execute if entity @s[tag=gm4_lt_swiftness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:swiftness"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_swiftness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_swiftness"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong swiftness -execute if entity @s[tag=gm4_lt_strong_swiftness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_swiftness"}}}} run function gm4_potion_liquids:item_drain/potion - -#slowness -execute if entity @s[tag=gm4_lt_slowness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slowness"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_slowness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slowness"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong slowness -execute if entity @s[tag=gm4_lt_strong_slowness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_slowness"}}}} run function gm4_potion_liquids:item_drain/potion - -#turtle master -execute if entity @s[tag=gm4_lt_turtle_master] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:turtle_master"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_turtle_master] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_turtle_master"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong turtle master -execute if entity @s[tag=gm4_lt_strong_turtle_master] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_turtle_master"}}}} run function gm4_potion_liquids:item_drain/potion - -#water breathing -execute if entity @s[tag=gm4_lt_water_breathing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water_breathing"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_water_breathing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_water_breathing"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#healing -execute if entity @s[tag=gm4_lt_healing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:healing"}}}} run function gm4_potion_liquids:item_drain/potion - -#strong healing -execute if entity @s[tag=gm4_lt_strong_healing] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_healing"}}}} run function gm4_potion_liquids:item_drain/potion - -#harming -execute if entity @s[tag=gm4_lt_harming] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:harming"}}}} run function gm4_potion_liquids:item_drain/potion - -#strong harming -execute if entity @s[tag=gm4_lt_strong_harming] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_harming"}}}} run function gm4_potion_liquids:item_drain/potion - -#poison -execute if entity @s[tag=gm4_lt_poison] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:poison"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_poison] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_poison"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong poison -execute if entity @s[tag=gm4_lt_strong_poison] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_poison"}}}} run function gm4_potion_liquids:item_drain/potion - -#regeneration -execute if entity @s[tag=gm4_lt_regeneration] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:regeneration"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_regeneration] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_regeneration"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong regeneration -execute if entity @s[tag=gm4_lt_strong_regeneration] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_regeneration"}}}} run function gm4_potion_liquids:item_drain/potion - -#strength -execute if entity @s[tag=gm4_lt_strength] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strength"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_strength] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_strength"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#strong strength -execute if entity @s[tag=gm4_lt_strong_strength] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_strength"}}}} run function gm4_potion_liquids:item_drain/potion - -#weakness -execute if entity @s[tag=gm4_lt_weakness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:weakness"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_weakness] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_weakness"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#luck -execute if entity @s[tag=gm4_lt_luck] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:luck"}}}} run function gm4_potion_liquids:item_drain/potion - -#slow falling -execute if entity @s[tag=gm4_lt_slow_falling] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slow_falling"}}}} run function gm4_potion_liquids:item_drain/potion -execute if entity @s[tag=gm4_lt_slow_falling] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slow_falling"}}}} run function gm4_potion_liquids:item_drain/long_potion - -#floating - added by module -execute if entity @s[tag=gm4_lt_floating] if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_potion_liquids:{potion:"floating"}}}}} run function gm4_potion_liquids:item_drain/potion diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/long_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/long_potion.mcfunction deleted file mode 100644 index 4e30019591..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/long_potion.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# run from gm4_potion_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 3 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain - diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/potion.mcfunction deleted file mode 100644 index e098f77aad..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_drain_old/potion.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -# run from gm4_potion_liquids:item_drain -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value 1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"glass_bottle"}} -function gm4_liquid_tanks:smart_item_drain -tag @s add gm4_lt_drain - diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old.mcfunction deleted file mode 100644 index c0518a60cb..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old.mcfunction +++ /dev/null @@ -1,80 +0,0 @@ -#@s = liquid tank with item in first slot -#run from liquid_tanks:item_process - -#night_vision -execute if entity @s[tag=gm4_lt_night_vision] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/night_vision_potion - -#invisibility -execute if entity @s[tag=gm4_lt_invisibility] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/invisibility_potion - -#leaping -execute if entity @s[tag=gm4_lt_leaping] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/leaping_potion - -#strong leaping -execute if entity @s[tag=gm4_lt_strong_leaping] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_leaping_potion - -#fire resistance -execute if entity @s[tag=gm4_lt_fire_resistance] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/fire_resistance_potion - -#swiftness -execute if entity @s[tag=gm4_lt_swiftness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/swiftness_potion - -#strong swiftness -execute if entity @s[tag=gm4_lt_strong_swiftness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_swiftness_potion - -#slowness -execute if entity @s[tag=gm4_lt_slowness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/slowness_potion - -#strong slowness -execute if entity @s[tag=gm4_lt_strong_slowness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_slowness_potion - -#turtle master -execute if entity @s[tag=gm4_lt_turtle_master] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/turtle_master_potion - -#strong turtle master -execute if entity @s[tag=gm4_lt_strong_turtle_master] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_turtle_master_potion - -#water breathing -execute if entity @s[tag=gm4_lt_water_breathing] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/water_breathing_potion - -#healing -execute if entity @s[tag=gm4_lt_healing] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/healing_potion - -#strong healing -execute if entity @s[tag=gm4_lt_strong_healing] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_healing_potion - -#harming -execute if entity @s[tag=gm4_lt_harming] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/harming_potion - -#strong harming -execute if entity @s[tag=gm4_lt_strong_harming] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_harming_potion - -#poison -execute if entity @s[tag=gm4_lt_poison] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/poison_potion - -#strong poison -execute if entity @s[tag=gm4_lt_strong_poison] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_poison_potion - -#regeneration -execute if entity @s[tag=gm4_lt_regeneration] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/regeneration_potion - -#strong regeneration -execute if entity @s[tag=gm4_lt_strong_regeneration] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_regeneration_potion - -#strength -execute if entity @s[tag=gm4_lt_strength] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strength_potion - -#strong strength -execute if entity @s[tag=gm4_lt_strong_strength] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/strong_strength_potion - -#weakness -execute if entity @s[tag=gm4_lt_weakness] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/weakness_potion - -#luck -execute if entity @s[tag=gm4_lt_luck] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/luck_potion - -#slow falling -execute if entity @s[tag=gm4_lt_slow_falling] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/slow_falling_potion - -#floating -execute if entity @s[tag=gm4_lt_floating] if score $stack_size gm4_lt_value matches 1 if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:glass_bottle"}} run function gm4_potion_liquids:item_fill/floating_potion diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/fire_resistance_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/fire_resistance_potion.mcfunction deleted file mode 100644 index 0be2ea28e3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/fire_resistance_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:fire_resistance"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/floating_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/floating_potion.mcfunction deleted file mode 100644 index 119624afc5..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/floating_potion.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -loot replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand loot gm4_potion_liquids:floating_potion -data modify storage gm4_liquid_tanks:temp/tank output set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] HandItems[0] -item replace entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,limit=1,sort=nearest,distance=..1] weapon.mainhand with air -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/harming_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/harming_potion.mcfunction deleted file mode 100644 index 3a168405d8..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/harming_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:harming"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/healing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/healing_potion.mcfunction deleted file mode 100644 index de5f72a60d..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/healing_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:healing"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/invisibility_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/invisibility_potion.mcfunction deleted file mode 100644 index c2689b52f3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/invisibility_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:invisibility"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/leaping_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/leaping_potion.mcfunction deleted file mode 100644 index 5dc6036929..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/leaping_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:leaping"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/luck_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/luck_potion.mcfunction deleted file mode 100644 index b9ff59b317..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/luck_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:luck"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/night_vision_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/night_vision_potion.mcfunction deleted file mode 100644 index 2b1915080a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/night_vision_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:night_vision"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/poison_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/poison_potion.mcfunction deleted file mode 100644 index cc9721c945..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/poison_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:poison"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/regeneration_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/regeneration_potion.mcfunction deleted file mode 100644 index 0eaab90a29..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/regeneration_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:regeneration"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slow_falling_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slow_falling_potion.mcfunction deleted file mode 100644 index 6e3a565f46..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slow_falling_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:slow_falling"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slowness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slowness_potion.mcfunction deleted file mode 100644 index 522c011620..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/slowness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:slowness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strength_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strength_potion.mcfunction deleted file mode 100644 index a6abf38a90..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strength_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strength"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_harming_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_harming_potion.mcfunction deleted file mode 100644 index 72af668a25..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_harming_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_harming"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_healing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_healing_potion.mcfunction deleted file mode 100644 index 9fb7d7b7d3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_healing_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_healing"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_leaping_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_leaping_potion.mcfunction deleted file mode 100644 index 41e35d5770..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_leaping_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_leaping"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_poison_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_poison_potion.mcfunction deleted file mode 100644 index ed4b4b82d1..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_poison_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_poison"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_regeneration_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_regeneration_potion.mcfunction deleted file mode 100644 index 140e117e56..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_regeneration_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_regeneration"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_slowness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_slowness_potion.mcfunction deleted file mode 100644 index 1b7e728f52..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_slowness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_slowness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_strength_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_strength_potion.mcfunction deleted file mode 100644 index 6dc5c3ac18..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_strength_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_strength"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_swiftness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_swiftness_potion.mcfunction deleted file mode 100644 index fe8981d569..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_swiftness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_swiftness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_turtle_master_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_turtle_master_potion.mcfunction deleted file mode 100644 index 2c7c32a8d4..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/strong_turtle_master_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_turtle_master"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/swiftness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/swiftness_potion.mcfunction deleted file mode 100644 index 2353203986..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/swiftness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:swiftness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/turtle_master_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/turtle_master_potion.mcfunction deleted file mode 100644 index 719120e8eb..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/turtle_master_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:turtle_master"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/water_breathing_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/water_breathing_potion.mcfunction deleted file mode 100644 index de6c625117..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/water_breathing_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:water_breathing"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/weakness_potion.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/weakness_potion.mcfunction deleted file mode 100644 index 8cd7c64d4c..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/item_fill_old/weakness_potion.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# run from gm4_potion_liquids:item_fill -# @s = tank being processed - -scoreboard players set $item_value gm4_lt_value -1 -data merge storage gm4_liquid_tanks:temp/tank {output:{id:"potion",components:{"minecraft:potion_contents":{potion:"minecraft:weakness"}}}} -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/fire_resistance.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/fire_resistance.mcfunction deleted file mode 100644 index 08891d7982..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/fire_resistance.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.fire_resistance","fallback":"Fire Resistance Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.fire_resistance","fallback":"Fire Resistance 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/fire_resistance"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_fire_resistance" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_fire_resistance -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/floating.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/floating.mcfunction deleted file mode 100644 index 531c02d7ff..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/floating.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.floating","fallback":"Floating Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.floating","fallback":"Floating 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/floating"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_floating" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_floating -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/harming.mcfunction deleted file mode 100644 index 8681e5a0e8..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.harming","fallback":"Harming Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.harming","fallback":"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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/harming"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_harming" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_harming -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/healing.mcfunction deleted file mode 100644 index 2ca55bb340..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.healing","fallback":"Healing Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.healing","fallback":"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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/healing"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_healing" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_healing -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/invisibility.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/invisibility.mcfunction deleted file mode 100644 index afababa7a3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/invisibility.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.invisibility","fallback":"Invisibility Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.invisibility","fallback":"Invisibility 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/invisibility"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_invisibility" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_invisibility -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/leaping.mcfunction deleted file mode 100644 index a3d6a5619d..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.leaping","fallback":"Leaping Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.leaping","fallback":"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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/leaping"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_leaping" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_leaping -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/luck.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/luck.mcfunction deleted file mode 100644 index ba3b601529..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/luck.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.luck","fallback":"Luck Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.luck","fallback":"Luck 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/luck"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_luck" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_luck -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/night_vision.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/night_vision.mcfunction deleted file mode 100644 index 347de6c088..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/night_vision.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.night_vision","fallback":"Night Vision Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.night_vision","fallback":"Night Vision 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/night_vision"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_night_vision" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_night_vision -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/poison.mcfunction deleted file mode 100644 index 492272cb5d..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.poison","fallback":"Poison Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.poison","fallback":"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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/poison"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_poison" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_poison -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/regeneration.mcfunction deleted file mode 100644 index ee33739139..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.regeneration","fallback":"Regeneration Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.regeneration","fallback":"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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/regeneration"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_regeneration" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_regeneration -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slow_falling.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slow_falling.mcfunction deleted file mode 100644 index 5ceb8573a2..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slow_falling.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.slow_falling","fallback":"Slow Falling Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.slow_falling","fallback":"Slow Falling 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/slow_falling"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_slow_falling" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_slow_falling -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slowness.mcfunction deleted file mode 100644 index 23debe97b5..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.slowness","fallback":"Slowness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.slowness","fallback":"Slowness 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/slowness"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_slowness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_slowness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strength.mcfunction deleted file mode 100644 index acb0db948a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strength","fallback":"Strength Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strength","fallback":"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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/strength"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strength" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strength -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_harming.mcfunction deleted file mode 100644 index d897daf85f..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_harming","fallback":"Strong Harming Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_harming","fallback":"Strong 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/strength"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_harming" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_harming -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_healing.mcfunction deleted file mode 100644 index f9868d74f6..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_healing","fallback":"Strong Healing Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_healing","fallback":"Strong 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/healing"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_healing" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_healing -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_leaping.mcfunction deleted file mode 100644 index e38608fe9f..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_leaping","fallback":"Strong Leaping Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_leaping","fallback":"Strong 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/leaping"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_leaping" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_leaping -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_poison.mcfunction deleted file mode 100644 index d97c4d766d..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_poison","fallback":"Strong Poison Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_poison","fallback":"Strong 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/poison"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_poison" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_poison -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_regeneration.mcfunction deleted file mode 100644 index a41f389bcd..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_regeneration","fallback":"Strong Regeneration Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_regeneration","fallback":"Strong 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/regeneration"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_regeneration" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_regeneration -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_slowness.mcfunction deleted file mode 100644 index 68d09f079c..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_slowness","fallback":"Strong Slowness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_slowness","fallback":"Strong Slowness 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/slowness"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_slowness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_slowness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_strength.mcfunction deleted file mode 100644 index a23cfa6abd..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_strength","fallback":"Strong Strength Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_strength","fallback":"Strong 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/strength"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_strength" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_strength -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_swiftness.mcfunction deleted file mode 100644 index 451d1add31..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_swiftness","fallback":"Strong Swiftness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_swiftness","fallback":"Strong 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/swiftness"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_swiftness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_swiftness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_turtle_master.mcfunction deleted file mode 100644 index 2d4efb5f20..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/strong_turtle_master.mcfunction +++ /dev/null @@ -1,9 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.strong_turtle_master","fallback":"Strong Turtle Master Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.strong_turtle_master","fallback":"Strong Turtle Master 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/turtle_master"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_strong_turtle_master" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_strong_turtle_master -tag @s remove gm4_lt_empty - - -#TEXTURE NOT COMPLETE diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/swiftness.mcfunction deleted file mode 100644 index 53920f82db..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.swiftness","fallback":"Swiftness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.swiftness","fallback":"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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/swiftness"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_swiftness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_swiftness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/turtle_master.mcfunction deleted file mode 100644 index c2693fdcdf..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/turtle_master.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.turtle_master","fallback":"Turtle Master Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.turtle_master","fallback":"Turtle Master 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/turtle_master"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_turtle_master" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_turtle_master -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/water_breathing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/water_breathing.mcfunction deleted file mode 100644 index 46cabce540..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/water_breathing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.water_breathing","fallback":"Water Breathing Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.water_breathing","fallback":"Water Breathing 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/water_breathing"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_water_breathing" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_water_breathing -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/weakness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/weakness.mcfunction deleted file mode 100644 index f44c53f578..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/liquid_init_old/weakness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -data merge block ~ ~ ~ {CustomName:'{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":"container.gm4.liquid_tank.weakness","fallback":"Weakness Potion Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":"container.gm4.liquid_tank.weakness","fallback":"Weakness 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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,ArmorItems:[{},{},{},{id:"player_head",count:1,components:{"minecraft:profile":"$liquids/weakness"}}]} -data modify entity @s data.gm4_liquid_tanks.liquid_tag set value "gm4_lt_weakness" -scoreboard players set @s gm4_lt_max 300 -tag @s add gm4_lt_weakness -tag @s remove gm4_lt_empty diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags_old.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags_old.mcfunction deleted file mode 100644 index 3c1ac4cf93..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/remove_liquid_tags_old.mcfunction +++ /dev/null @@ -1,29 +0,0 @@ -#@s = liquid tank stand -# removes all liquid tags from the stand. Used for emptying tank and reassigning liquid type - -tag @s remove gm4_lt_night_vision -tag @s remove gm4_lt_invisibility -tag @s remove gm4_lt_leaping -tag @s remove gm4_lt_strong_leaping -tag @s remove gm4_lt_fire_resistance -tag @s remove gm4_lt_swiftness -tag @s remove gm4_lt_strong_swiftness -tag @s remove gm4_lt_slowness -tag @s remove gm4_lt_strong_slowness -tag @s remove gm4_lt_turtle_master -tag @s remove gm4_lt_strong_turtle_master -tag @s remove gm4_lt_water_breathing -tag @s remove gm4_lt_healing -tag @s remove gm4_lt_strong_healing -tag @s remove gm4_lt_harming -tag @s remove gm4_lt_strong_harming -tag @s remove gm4_lt_poison -tag @s remove gm4_lt_strong_poison -tag @s remove gm4_lt_regeneration -tag @s remove gm4_lt_strong_regeneration -tag @s remove gm4_lt_strength -tag @s remove gm4_lt_strong_strength -tag @s remove gm4_lt_weakness -tag @s remove gm4_lt_luck -tag @s remove gm4_lt_slow_falling -tag @s remove gm4_lt_floating diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init_old.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init_old.mcfunction deleted file mode 100644 index ae58fa0484..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/tank_init_old.mcfunction +++ /dev/null @@ -1,93 +0,0 @@ -#@s = empty liquid tank with item in first slot or entity on top -#run from liquid_tanks:item_process - -#night vision -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:night_vision"}}}} run function gm4_potion_liquids:liquid_init/night_vision -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_night_vision"}}}} run function gm4_potion_liquids:liquid_init/night_vision - -#invisibility -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:invisibility"}}}} run function gm4_potion_liquids:liquid_init/invisibility -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_invisibility"}}}} run function gm4_potion_liquids:liquid_init/invisibility - -#leaping -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:leaping"}}}} run function gm4_potion_liquids:liquid_init/leaping -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_leaping"}}}} run function gm4_potion_liquids:liquid_init/leaping - -#strong leaping -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_leaping"}}}} run function gm4_potion_liquids:liquid_init/strong_leaping - -#fire resistance -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:fire_resistance"}}}} run function gm4_potion_liquids:liquid_init/fire_resistance -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_fire_resistance"}}}} run function gm4_potion_liquids:liquid_init/fire_resistance - -#swiftness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:swiftness"}}}} run function gm4_potion_liquids:liquid_init/swiftness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_swiftness"}}}} run function gm4_potion_liquids:liquid_init/swiftness - -#strong swiftness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_swiftness"}}}} run function gm4_potion_liquids:liquid_init/strong_swiftness - -#slowness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slowness"}}}} run function gm4_potion_liquids:liquid_init/slowness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slowness"}}}} run function gm4_potion_liquids:liquid_init/slowness - -#strong slowness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_slowness"}}}} run function gm4_potion_liquids:liquid_init/strong_slowness - -#turtle master -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:turtle_master"}}}} run function gm4_potion_liquids:liquid_init/turtle_master -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_turtle_master"}}}} run function gm4_potion_liquids:liquid_init/turtle_master - -#strong turtle master -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_turtle_master"}}}} run function gm4_potion_liquids:liquid_init/strong_turtle_master - -#water breathing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:water_breathing"}}}} run function gm4_potion_liquids:liquid_init/water_breathing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_water_breathing"}}}} run function gm4_potion_liquids:liquid_init/water_breathing - -#healing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:healing"}}}} run function gm4_potion_liquids:liquid_init/healing - -#strong healing -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_healing"}}}} run function gm4_potion_liquids:liquid_init/strong_healing - -#harming -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:harming"}}}} run function gm4_potion_liquids:liquid_init/harming - -#strong harming -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_harming"}}}} run function gm4_potion_liquids:liquid_init/strong_harming - -#poison -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:poison"}}}} run function gm4_potion_liquids:liquid_init/poison -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_poison"}}}} run function gm4_potion_liquids:liquid_init/poison - -#strong poison -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_poison"}}}} run function gm4_potion_liquids:liquid_init/strong_poison - -#regeneration -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:regeneration"}}}} run function gm4_potion_liquids:liquid_init/regeneration -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_regeneration"}}}} run function gm4_potion_liquids:liquid_init/regeneration - -#strong regeneration -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_regeneration"}}}} run function gm4_potion_liquids:liquid_init/strong_regeneration - -#strength -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strength"}}}} run function gm4_potion_liquids:liquid_init/strength -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_strength"}}}} run function gm4_potion_liquids:liquid_init/strength - -#strong strength -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:strong_strength"}}}} run function gm4_potion_liquids:liquid_init/strong_strength - -#weakness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:weakness"}}}} run function gm4_potion_liquids:liquid_init/weakness -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_weakness"}}}} run function gm4_potion_liquids:liquid_init/weakness - -#luck -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:luck"}}}} run function gm4_potion_liquids:liquid_init/luck - -#slow falling -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:slow_falling"}}}} run function gm4_potion_liquids:liquid_init/slow_falling -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:potion_contents":{potion:"minecraft:long_slow_falling"}}}} run function gm4_potion_liquids:liquid_init/slow_falling - -#floating - added by module -execute if data storage gm4_liquid_tanks:temp/tank {input_slot:{id:"minecraft:potion",components:{"minecraft:custom_data":{gm4_potion_liquids:{potion:"floating"}}}}} run function gm4_potion_liquids:liquid_init/floating diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/random_witch_init.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/random_witch_init.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/shulker.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/shulker.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/shulker.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util/shulker.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/witch.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/witch.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/witch.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util/witch.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_above_old.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_above.mcfunction similarity index 100% rename from gm4_potion_liquids/data/gm4_potion_liquids/function/util_above_old.mcfunction rename to gm4_potion_liquids/data/gm4_potion_liquids/function/util_above.mcfunction diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below_old.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below_old.mcfunction deleted file mode 100644 index 414c54435a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_below_old.mcfunction +++ /dev/null @@ -1,84 +0,0 @@ -#@s = tank with entity above it positioned ~ ~-1 ~ -#run from liquid_tanks:process via #gm4_liquid_tanks:util_below - -tag @s add gm4_processing_tank - -#night_vision -execute if score @s[tag=gm4_lt_night_vision] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:night_vision'}]}] run function gm4_potion_liquids:util/night_vision - -#invisibility -execute if score @s[tag=gm4_lt_invisibility] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:invisibility'}]}] run function gm4_potion_liquids:util/invisibility - -#leaping -execute if score @s[tag=gm4_lt_leaping] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:jump_boost'}]}] run function gm4_potion_liquids:util/leaping - -#strong_leaping -execute if score @s[tag=gm4_lt_strong_leaping] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:jump_boost',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_leaping - -#fire_resistance -execute if score @s[tag=gm4_lt_fire_resistance] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:fire_resistance'}]}] run function gm4_potion_liquids:util/fire_resistance - -#swiftness -execute if score @s[tag=gm4_lt_swiftness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:speed'}]}] run function gm4_potion_liquids:util/swiftness - -#strong_swiftness -execute if score @s[tag=gm4_lt_strong_swiftness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:speed',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_swiftness - -#slowness -execute if score @s[tag=gm4_lt_slowness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness'}]}] run function gm4_potion_liquids:util/slowness - -#strong_slowness -execute if score @s[tag=gm4_lt_strong_slowness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_slowness - -#turtle_master -execute if score @s[tag=gm4_lt_turtle_master] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness',amplifier:3b},{id:'minecraft:resistance',amplifier:2b}]}] run function gm4_potion_liquids:util/turtle_master - -#strong_turtle_master -execute if score @s[tag=gm4_lt_strong_turtle_master] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slowness',amplifier:5b},{id:'minecraft:resistance',amplifier:3b}]}] run function gm4_potion_liquids:util/strong_turtle_master - -#water_breathing -execute if score @s[tag=gm4_lt_water_breathing] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:water_breathing'}]}] run function gm4_potion_liquids:util/water_breathing - -#healing -execute if score @s[tag=gm4_lt_healing] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/healing - -#strong healing -execute if score @s[tag=gm4_lt_strong_healing] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/strong_healing - -#harming -execute if score @s[tag=gm4_lt_harming] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/harming - -#strong harming -execute if score @s[tag=gm4_lt_strong_harming] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] run function gm4_potion_liquids:util/strong_harming - -#poison -execute if score @s[tag=gm4_lt_poison] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:poison'}]}] run function gm4_potion_liquids:util/poison - -#strong poison -execute if score @s[tag=gm4_lt_strong_poison] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:poison',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_poison - -#regeneration -execute if score @s[tag=gm4_lt_regeneration] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:regeneration'}]}] run function gm4_potion_liquids:util/regeneration - -#strong regeneration -execute if score @s[tag=gm4_lt_strong_regeneration] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:regeneration',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_regeneration - -#strength -execute if score @s[tag=gm4_lt_strength] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:strength'}]}] run function gm4_potion_liquids:util/strength - -#strong strength -execute if score @s[tag=gm4_lt_strong_strength] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:strength',amplifier:1b}]}] run function gm4_potion_liquids:util/strong_strength - -#weakness -execute if score @s[tag=gm4_lt_weakness] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:weakness'}]}] run function gm4_potion_liquids:util/weakness - -#luck -execute if score @s[tag=gm4_lt_luck] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:luck'}]}] run function gm4_potion_liquids:util/luck - -#slow falling -execute if score @s[tag=gm4_lt_slow_falling] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:slow_falling'}]}] run function gm4_potion_liquids:util/slow_falling - -#floating -execute if score @s[tag=gm4_lt_floating] gm4_lt_value matches 1.. as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:levitation'}]}] run function gm4_potion_liquids:util/floating - -tag @s remove gm4_processing_tank diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/fire_resistance.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/fire_resistance.mcfunction deleted file mode 100644 index 90bd4d3d34..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/fire_resistance.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below fire_resistance potion tank -#run from potion_liquids:util_below - -effect give @s fire_resistance 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/floating.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/floating.mcfunction deleted file mode 100644 index d6185b7859..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/floating.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below floating potion tank -#run from potion_liquids:util_below - -effect give @s levitation 45 2 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/harming.mcfunction deleted file mode 100644 index 37898c67f2..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below harming potion tank -#run from potion_liquids:util_below - -effect give @s instant_damage 1 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/healing.mcfunction deleted file mode 100644 index 8708c8021a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below healing potion tank -#run from potion_liquids:util_below - -effect give @s instant_health 1 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/invisibility.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/invisibility.mcfunction deleted file mode 100644 index c038ba1488..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/invisibility.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below invisibility potion tank -#run from potion_liquids:util_below - -effect give @s invisibility 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/leaping.mcfunction deleted file mode 100644 index 7e2feb6d65..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below leaping potion tank -#run from potion_liquids:util_below - -effect give @s jump_boost 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/luck.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/luck.mcfunction deleted file mode 100644 index 6e3c4fb9c1..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/luck.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below luck potion tank -#run from potion_liquids:util_below - -effect give @s luck 300 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/night_vision.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/night_vision.mcfunction deleted file mode 100644 index 7b591ae592..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/night_vision.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below night_vision potion tank -#run from potion_liquids:util_below - -effect give @s night_vision 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/poison.mcfunction deleted file mode 100644 index 7fc4db1562..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below poison potion tank -#run from potion_liquids:util_below - -effect give @s poison 45 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/regeneration.mcfunction deleted file mode 100644 index b1a025bb22..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below regeneration potion tank -#run from potion_liquids:util_below - -effect give @s regeneration 45 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slow_falling.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slow_falling.mcfunction deleted file mode 100644 index eaf667a98f..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slow_falling.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below slow_falling potion tank -#run from potion_liquids:util_below - -effect give @s slow_falling 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slowness.mcfunction deleted file mode 100644 index 91bf1b7527..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below slowness potion tank -#run from potion_liquids:util_below - -effect give @s slowness 90 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strength.mcfunction deleted file mode 100644 index ed0235617d..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strength potion tank -#run from potion_liquids:util_below - -effect give @s strength 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_harming.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_harming.mcfunction deleted file mode 100644 index 458df4ec27..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_harming.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_harming potion tank -#run from potion_liquids:util_below - -effect give @s instant_damage 1 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_healing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_healing.mcfunction deleted file mode 100644 index 94bc572b94..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_healing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_healing potion tank -#run from potion_liquids:util_below - -effect give @s instant_health 1 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_leaping.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_leaping.mcfunction deleted file mode 100644 index 5eaadd51d4..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_leaping.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_leaping potion tank -#run from potion_liquids:util_below - -effect give @s jump_boost 90 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_poison.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_poison.mcfunction deleted file mode 100644 index 9bfbb24821..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_poison.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong poison potion tank -#run from potion_liquids:util_below - -effect give @s poison 21 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_regeneration.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_regeneration.mcfunction deleted file mode 100644 index 1b45618d79..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_regeneration.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong regeneration potion tank -#run from potion_liquids:util_below - -effect give @s regeneration 22 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_slowness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_slowness.mcfunction deleted file mode 100644 index 62e15cffe3..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_slowness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_slowness potion tank -#run from potion_liquids:util_below - -effect give @s slowness 20 3 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_strength.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_strength.mcfunction deleted file mode 100644 index aa8d4670d8..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_strength.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_strength potion tank -#run from potion_liquids:util_below - -effect give @s strength 90 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_swiftness.mcfunction deleted file mode 100644 index ea89d99a5a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below strong_swiftness potion tank -#run from potion_liquids:util_below - -effect give @s speed 90 1 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_turtle_master.mcfunction deleted file mode 100644 index fac311d66f..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/strong_turtle_master.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -#@s = living-base entity below strong_turtle_master potion tank -#run from potion_liquids:util_below - -effect give @s slowness 20 5 -effect give @s resistance 20 3 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/swiftness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/swiftness.mcfunction deleted file mode 100644 index c27a6b610c..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/swiftness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below swiftness potion tank -#run from potion_liquids:util_below - -effect give @s speed 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/turtle_master.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/turtle_master.mcfunction deleted file mode 100644 index 025db9d383..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/turtle_master.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -#@s = living-base entity below turtle_master potion tank -#run from potion_liquids:util_below - -effect give @s slowness 20 3 -effect give @s resistance 20 2 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/water_breathing.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/water_breathing.mcfunction deleted file mode 100644 index 11b2b3a145..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/water_breathing.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below water_breathing potion tank -#run from potion_liquids:util_below - -effect give @s water_breathing 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/weakness.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/weakness.mcfunction deleted file mode 100644 index a9d4cd354a..0000000000 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util_old/weakness.mcfunction +++ /dev/null @@ -1,6 +0,0 @@ -#@s = living-base entity below weakness potion tank -#run from potion_liquids:util_below - -effect give @s weakness 180 0 -scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 -playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 From 6ece8bd3a1ad54e21a1cf7b11275abf857871571 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:25:49 -0400 Subject: [PATCH 65/76] Modernize witch potion randomization method --- .../function/util/random_witch_init.mcfunction | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction index 01cc1dbc3e..1fc400488b 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction +++ b/gm4_potion_liquids/data/gm4_potion_liquids/function/util/random_witch_init.mcfunction @@ -1,16 +1,9 @@ #@s = liquid tank to be initialized to random potion #run from potion_liquids:util/witch -summon area_effect_cloud ~ ~ ~ {CustomName:"\"gm4_pl_random_witch_init\"",Tags:["gm4_pl_random_witch_init","gm4_lt_random_regeneration"]} -summon area_effect_cloud ~ ~ ~ {CustomName:"\"gm4_pl_random_witch_init\"",Tags:["gm4_pl_random_witch_init","gm4_lt_random_swiftness"]} -summon area_effect_cloud ~ ~ ~ {CustomName:"\"gm4_pl_random_witch_init\"",Tags:["gm4_pl_random_witch_init","gm4_lt_random_fire_resistance"]} -summon area_effect_cloud ~ ~ ~ {CustomName:"\"gm4_pl_random_witch_init\"",Tags:["gm4_pl_random_witch_init","gm4_lt_random_harming"]} +execute store result score $random_witch_init gm4_lt_util run random value 0..3 -kill @e[type=area_effect_cloud,limit=3,distance=..1,tag=gm4_pl_random_witch_init,sort=random] - -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_regeneration] run function gm4_potion_liquids:liquid_init/regeneration -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_swiftness] run function gm4_potion_liquids:liquid_init/swiftness -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_fire_resistance] run function gm4_potion_liquids:liquid_init/fire_resistance -execute if entity @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init,tag=gm4_lt_random_harming] run function gm4_potion_liquids:liquid_init/harming - -kill @e[type=area_effect_cloud,tag=gm4_pl_random_witch_init] +execute if score $random_witch_init gm4_lt_util matches 0 run function gm4_potion_liquids:liquid_init/regeneration +execute if score $random_witch_init gm4_lt_util matches 1 run function gm4_potion_liquids:liquid_init/swiftness +execute if score $random_witch_init gm4_lt_util matches 2 run function gm4_potion_liquids:liquid_init/fire_resistance +execute if score $random_witch_init gm4_lt_util matches 3 run function gm4_potion_liquids:liquid_init/harming From 70ec696763c627966fc1ea64c7baf196082e25f9 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:38:25 -0400 Subject: [PATCH 66/76] Kyrius's new liquid skin textures Co-Authored-By: Kyrius <44133389+kyrkis@users.noreply.github.com> --- gm4/skin_cache.json | 312 +++++++++--------- .../skins/liquids/beetroot_soup.png | Bin 899 -> 502 bytes .../skins/liquids/experience.png | Bin 578 -> 645 bytes .../skins/liquids/honey.png | Bin 1061 -> 605 bytes .../skins/liquids/lava.png | Bin 1431 -> 538 bytes .../skins/liquids/milk.png | Bin 308 -> 545 bytes .../skins/liquids/mushroom_stew.png | Bin 815 -> 594 bytes .../skins/liquids/powder_snow.png | Bin 326 -> 434 bytes .../skins/liquids/rabbit_stew.png | Bin 933 -> 716 bytes .../skins/liquids/water.png | Bin 447 -> 576 bytes .../skins/liquids/fire_resistance.png | Bin 1238 -> 801 bytes .../skins/liquids/floating.png | Bin 884 -> 709 bytes .../skins/liquids/harming.png | Bin 925 -> 796 bytes .../skins/liquids/healing.png | Bin 1025 -> 757 bytes .../skins/liquids/invisibility.png | Bin 1177 -> 765 bytes .../skins/liquids/leaping.png | Bin 1217 -> 750 bytes .../gm4_potion_liquids/skins/liquids/luck.png | Bin 1176 -> 0 bytes .../skins/liquids/night_vision.png | Bin 1133 -> 748 bytes .../skins/liquids/poison.png | Bin 1047 -> 759 bytes .../skins/liquids/regeneration.png | Bin 1109 -> 758 bytes .../skins/liquids/slow_falling.png | Bin 810 -> 0 bytes .../skins/liquids/slowness.png | Bin 999 -> 743 bytes .../skins/liquids/strength.png | Bin 957 -> 697 bytes .../skins/liquids/swiftness.png | Bin 852 -> 827 bytes .../skins/liquids/turtle_master.png | Bin 1027 -> 0 bytes .../skins/liquids/water_breathing.png | Bin 1184 -> 751 bytes .../skins/liquids/weakness.png | Bin 1036 -> 728 bytes 27 files changed, 156 insertions(+), 156 deletions(-) delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/luck.png delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/slow_falling.png delete mode 100644 gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/turtle_master.png diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index 864cf723a2..2c7e900093 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -222,24 +222,24 @@ }, "gm4_standard_liquids:liquids/beetroot_soup": { "uuid": [ - 2130271109, - -1138636291, - -1614258018, - -889714317 + 76960881, + 2041792394, + -1393666914, + 2103407100 ], - "value": "eyJ0aW1lc3RhbXAiOjE0OTgxODE5OTY3NDIsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzRkOTM0ZWRiMzRjM2IxNmRlZWNmMjRkZjhmMTc1NTQyZDAxZWMwNTJmZWZkOTEzNjI4MWJiNmE2Y2E3ZDdkIn19fQ==", - "hash": "0b525ed39dd0d1843e12571b0a61afaa8c1dd61d", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTI0MjRjYjQxNDY2ZmFlNjk5ZjgyNjk2NTJkOGQxYjBjZjgzZjBkMmFkZDBkNjUzZjA5ZTlkMzFiMmY5YTk0OCd9fX0=", + "hash": "3bbbd041e4ddc003e7f6447fad8f2a2b9391a0ef", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/experience": { "uuid": [ - -1627825275, - -1138636289, - -1614258018, - -889714317 + -745806368, + -1045543603, + -1458236618, + 515537139 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc3NzA2NjksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzNlYTI4YzJkYzZjOWQyMjdhNWNmNDM1MTI5ZDgwNjVkMzJiYjY0NDk5N2QzNTllNzQ4YTRjYzE0NWEzNjlhIn19fQ==", - "hash": "f134750e86467a561efbf6596eac6ef6c2250e9e", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGNiMGNmY2FjMDJiM2E3ZjZkZWI4N2E4YWZjZDgxYTUyMzdlMWNlNWVlMWI5NWMzNWVhM2U3NDkxMDNiNjc0ZCd9fX0=", + "hash": "d3d8dcc50faf62ea44e33377f860f2fb923be0bb", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/glow_ink": { @@ -255,13 +255,13 @@ }, "gm4_standard_liquids:liquids/honey": { "uuid": [ - -782351782, - 542655898, - -1075183804, - 1293758076 + 1093018679, + -1629534446, + -2052300824, + -1187268546 ], - "value": "eyJ0aW1lc3RhbXAiOjE1ODYwNDAzNDcxNzIsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2QyZDBlZDU3ZGQwNWYxMGExNTk5ZDFkNWY2Mzg0ZGMxYzgzNWM5ZWVmYWQ5MDFjNTdkZDkxZDg1YWM5MWFjZWIifX19", - "hash": "bf4bf3d81779e1730e814155fea4ceb2e2890f4b", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjhhYzUxZTBjNWM5MWNmOGNlN2RiMjAyYmY5MWIxNmFkOTQ3NDkwODU0YWM3MjUyMjNmMGIwNDU0MGE1NWYyMCd9fX0=", + "hash": "ea675cd17ceb3e5913936bd1fb39b9a239ee7f22", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/ink": { @@ -277,68 +277,68 @@ }, "gm4_standard_liquids:liquids/lava": { "uuid": [ - 2130271109, - -1138636289, - -1614258018, - -889714317 + 2084309355, + 294864792, + -1353120517, + -2139917050 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDM2NDg0MTcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2YyNWJmOTlmYjdlMmQwZTFhZDQ1MDgyNGUyMmQzNDllNjc3Zjk2YzNkOWFmZjcyMTVlNDdiNjU3N2EzMmI4YyJ9fX0=", - "hash": "588d85e79b4830887785c6e1aa2f8973c1d6d61a", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2M5OTkzMzI2M2ZjYmNhOGJlYTI1Yjc1MjU1Y2Y4M2E3NTc4MWZiOTkxY2RlYTBmODA0M2RhZjQzMTgxODE1MSd9fX0=", + "hash": "2faed9fa93d0cfd9286096e7965571c1adf9d4d6", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/milk": { "uuid": [ - 2130271365, - -1138636289, - -1614258018, - -889714317 + -1652105090, + -613725561, + -1717347128, + 1926135093 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDQxMzEyNjcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2ExYTk2M2I1ZjYwM2IxODYyY2VhZjg1MGYxN2QzNWFhMjcxMzBiODQ2NjY0ZDJkYTlmZWRkYTMzMDQwIn19fQ==", - "hash": "eafb08939b532be53f9c352c67ad83c78eaeaac5", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDMyODNiOTRjYzhiYWM3YTVkNDQ4ZDUyMTQ0MmFkNDY1MjY1MjM1NzYzYTNmYTJhMGIyODdiMGRiOTIyOWQ4Yyd9fX0=", + "hash": "70a5421e48597699dd6284381b07e81e978ff42a", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/mushroom_stew": { "uuid": [ - 2130271109, - -1138636289, - -1614258018, - -889714316 + -851826350, + -819969624, + -1341610165, + -2102026501 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYwMDU2MjksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2VmZTg5ZjEyZjA2N2ViMzlmYTlkZGY4N2U3ZmZiYmRlZmZjZDAyZjVjMThjYjIyNjFkMGY0NDk4YjgxYjQxNyJ9fX0=", - "hash": "141b57ceeec8fde8aed9b3768cd36fde5fc9afed", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmVlMmMwMjBiYzg2NTBhYWFlN2NkYzhjY2VmYjRhYWI3ZGRkOGNlMjhlYTlmOWJkMDQ0OGIxMWY0Y2M1OGRiZCd9fX0=", + "hash": "ab5933443964922f4cfcaf186ba2a62981a243cf", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/powder_snow": { "uuid": [ - 2130271365, - -1134446289, - -1614258018, - -889714317 + 793744989, + -1949546447, + -1499784649, + 2041283293 ], - "value": "ewogICJ0aW1lc3RhbXAiIDogMTYyNzMyNzg2NzMwNSwKICAicHJvZmlsZUlkIiA6ICIyMjg0NDBlODcyYzg0ZGM3ODM0OGIyNzc1ODUwMzRjOCIsCiAgInByb2ZpbGVOYW1lIiA6ICJTcGVjaWFsQnVpbGRlcjMyIiwKICAidGV4dHVyZXMiIDogewogICAgIlNLSU4iIDogewogICAgICAidXJsIiA6ICJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2I0YTVhMDQxZTI0YWQ5NWY5ZmFkYTVhZTZiNjc1ZjBhYmU4NWI3OGIxZDhmNGUxNTI5Mzg1NDJjZDE2ZWY5YzUiCiAgICB9CiAgfQp9", - "hash": "8b62fad2106a97540a63ef6a3a727606e2d98050", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDBiYWVkOWYwYjJhOGM3NTM0YTk0MTY1MjAzYThkZjJlY2JmY2Q2ZDNmZmM2ZjY3ZmVkZTNkYTQ2YzZlMzA2ZSd9fX0=", + "hash": "e01a0deac23275e98e459e5d8b721c4819574d88", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/rabbit_stew": { "uuid": [ - 2130271365, - -1138636289, - -1614258019, - -889714317 + -898957329, + 1308640890, + -1080612430, + 1170134979 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYwNjgzODksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2UwNTJkZWRmN2ZmNDk1MDQ3MjNmMDRhZGViMzRmNjlkYTI4OTJhMmI3YzM3NTRmZWZhYjBkNzgxODg1NzVjIn19fQ==", - "hash": "910753ae085f1790cb1f2695d2cd6e683663bdf5", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTA1OWJlZWJmOTVlZTQzYzc1NDcyOWZlNmYzYWU5OWUxYzYwZTQ2ODJjNGUyZDZjZDJiYTQwNzBjZTlhZjBlOCd9fX0=", + "hash": "f3b45e34be5a61311f53ec938b90cb8956d522de", "parent_module": "gm4_liquid_tanks" }, "gm4_standard_liquids:liquids/water": { "uuid": [ - 2130271109, - -1138570753, - -1614258018, - -889714317 + -1941625481, + -1189919143, + -1856028413, + 292031945 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDQ4ODY3MTgsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzYzMWY5MjQwYjE2NmJhOGViMWY2YmU0MzVjZGI3NDg2YTM5YzQzYTdjMWQzZDM2ZTQ5NzgzYWU0NTI2ZDNiNDMifX19", - "hash": "1694f345f7b9d5a71e35c6eb93e7719eaa6ca0e1", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjlmNmE1YzkwYTBjNzQ5ODIzMDJhYTAzZTA1ZjY2YzU1MjU0Njg2Njc0ZWQ2YzYxM2ExNGU5YTc4YjUyODU3Mid9fX0=", + "hash": "c369923e91875ec06c1e738a4e5f493ac4a4e39f", "parent_module": "gm4_liquid_tanks" }, "gm4_liquid_tanks:liquid_tank": { @@ -497,189 +497,189 @@ }, "gm4_potion_liquids:liquids/fire_resistance": { "uuid": [ - 2130271109, - -1138636321, - -1614258018, - -889714317 + 2130832668, + -69843189, + -1628986667, + -1615730322 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY4MTUxNTgsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2M2NjE2NmM2MzA3NTE5NTEyMzVjNDRmNjNlYWViZTgzNDYyMWU1MWNhOWI3NmEyODc2ODA4YThjMzAyMGE0In19fQ==", - "hash": "6732c502a669d62686b0431dcda4d1f9c9f50ad3", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDI5ZmE3YjFmNDZhMjgzNjgwOTlmMjA4ZmU5NGQ3NzY2NzdkZTUyZWNkMjY0YjhmOTI4MzdjODQ5ZDZmN2NjNCd9fX0=", + "hash": "2398626d300f895b4d62aabfefae73e77370be52", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/floating": { "uuid": [ - 2117688197, - -1138636289, - -1614258018, - -889714317 + 32752701, + 1442140104, + -2121835220, + 212039422 ], - "value": "eyJ0aW1lc3RhbXAiOjE0OTkwMjE1NzczMzQsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwic2lnbmF0dXJlUmVxdWlyZWQiOnRydWUsInRleHR1cmVzIjp7IlNLSU4iOnsidXJsIjoiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS82YzNiYjZjMjM2YzdjZTZiMzA1YWQ4M2QwMzBmOGJlNmVmOGExMzFkNjVhMTBiZmIxZWQ3OTk0OGY0NWZkMCJ9fX0=", - "hash": "ada74ae3cffd6b22ee31b6408ddfa150c7d9259b", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmZiNjAxOGVjNzM4NWU4YTE5MTE3OWRjOWE1M2Y4MGY5NGQ4MjIzZWQ5YWEwNDgwMDcyNzdiNzUzMGNlZjgwZCd9fX0=", + "hash": "c54b1eb1be2154c9ae542ee87bfd1efa101457c6", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/harming": { "uuid": [ - 2130271109, - -1138638081, - -1614258018, - -889714317 + -1211340845, + -910802362, + -2144368484, + -211827793 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDcxNjQyNDAsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI2MjkyYmYwNzk0N2IxNjQ3ZmFlNGJjYjc2NzVmOWNhZGJiZDY1MDczMjIzNDM0M2RiZGY2YzA0MTRkYiJ9fX0=", - "hash": "05c15f4de45fbb21d7955ee586aaeb12d49c85ba", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2Y4MGUyMjc1N2UxZTUzM2RkMGI3ZTRlZTU2YTE3OWJlYmJlN2RmODE4NzRkMzVmNTkyZDQ1YmM1YWZiNjRhMyd9fX0=", + "hash": "c2f87b8817311d26cbd31b1e064105ba98ccf71a", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/healing": { "uuid": [ - 2130271109, - -1138636289, - -1614258018, - -889714315 + -575407116, + -2057942971, + -1081937529, + 601872280 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYzOTQ3MTEsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzliYTZjZjQzODg0YjJjZmMyNDU0NGNmYTVmNmZjNzViY2M3OGE2YWM1NjhmYTE5OGY2NDVkZDkxNWM4Y2FlMzcifX19", - "hash": "f220279aa6f99f65812f6a902bcba8960c5c972f", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWVkZDU2OWQ1MTM2YThlNzRjM2IyZTliYjdjZTI4NDk4OTFlNTc2ZGFkNjkyNjQwNWNhY2I4ODdhNjk5NWJmNCd9fX0=", + "hash": "73a0fdf1bfec33b5ab2fe0621ba35a08b988c749", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/invisibility": { "uuid": [ - 2130271109, - -1138636289, - -1614258029, - -889714317 + -332185350, + 1698318266, + -1646469451, + 1142033314 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDcwODQ2MTQsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2YxOWUyNGI1N2UxN2I1NGYzZmFhOTcxMGM4ZGZjNTUxMTRhNzE5YjE0YWYwOWE0ZDFjMDRiMTY2MTQ0ZWY2YiJ9fX0=", - "hash": "db79e0e780d1c4bbcba5139a277d4d48e91864f8", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjk5OTU0NTAxOTY5MDQ3ZjE4NjQ3NjFhN2Q4ZWFiNzJmMjIwM2JiYzBmZGFiY2FiNjJjOWUxZDU3M2YxN2ZlOSd9fX0=", + "hash": "684edcc54546a42d94e7775ceec3ce2ea37f6ac6", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/leaping": { "uuid": [ - 2130271109, - -1407071745, - -1614258018, - -889714317 + 822748764, + -913751735, + -2104548355, + 1076203816 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY5NDYzMjksInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2RjMzE2NmFkZTk1NTA2Y2VmZDhjNTdiMWVlNWY4MTNiNTNhOWZjMTliYTEzNDhjYTE2NmE2YjBjZmEwMzAifX19", - "hash": "1bc7967fa145ed25195c8741146123eb13da1cf4", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjJmZTE2ZWFjMDFhNjIyZmE0YTg0ZTYwMDM5MzBiY2E1ZjBiZmZhOThhYTMxOWJmMGRlN2U4YmQ4ZjMwYjAwZid9fX0=", + "hash": "58419073ee28986d29008da1d7bd8d342c34f8e8", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/luck": { "uuid": [ - 579092712, - -1832366649, - -2142784905, - 1481188552 + 1998983973, + 799228293, + -1480289059, + -30160010 ], - "value": "eyJ0aW1lc3RhbXAiOjE1NTE4MjQwMTMxMzAsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzg5NGY2ZTRkZmU4Y2E2ZjVjOTg5YjZlNjAyMWM4YTgzMjQzYjgzYTdkYzI1OWI4NmI2ZGNiZmE0OGMxOTQ3ZGEifX19", - "hash": "9ceb508d017553e5ef1fd90251c1b7dc38efd589", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTg4ODJmMmQzNzM2YmM5YWYxMTMxMDQxYTg3OTc4ZDg1NGUxNTk1MjE1ODU5YjEwM2Q3ZjY0M2U1ZTZiMTk5OCd9fX0=", + "hash": "be8cd5206b554f01bb1ddbe3a3296f1e076bf81a", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/night_vision": { "uuid": [ - 2130271117, - -1138636289, - -1614258018, - -889714317 + -204117879, + -2079899123, + -2081002561, + -548998159 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDczMzU2MDIsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2I2NmY2MmE3ZWEyNjcwMjBhNjYyYWI1ZTI1ZWFlMzdjNTM2Yzc2N2QwNDYyZWE1MDIyZTVhZmQ1ODQzODYxIn19fQ==", - "hash": "c1119145018d5828566343e08f72fb7ae7755c0d", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwZmIwNDRkZTBiZTI1MGYxYjMyZWFiM2MyMmQzZjcyNTI4MmE1ODdlNjE3YTkwMWRhYzA2MTg0MDM5NzExMyd9fX0=", + "hash": "a99241e69f731f2194de8e41bea2f094d7c6b5a1", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/poison": { "uuid": [ - 1056529285, - -1138636289, - -1614258018, - -889714317 + 809108775, + -1144238335, + -1966668314, + 1676984478 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY4ODg4NzIsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzY2MWU3NWExMWEwNzBmNTgyMWMxYmJlOTkxMTJiZGJjYWVjY2IyZDQ3Njg2OWQ3N2ExYzJkZDlmZjY0MDM3In19fQ==", - "hash": "1dfb6eb69659931881db3720790033684d94537b", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTY2OWViYmU5NTk3NzQzZmI3ODUzODA1YTk3MTU3ZWVmMTlhZTEwOGI5NWFhZGM0MjI2ZTQ4ZjQyN2FjMmFiNSd9fX0=", + "hash": "3f8a4881a694f447f79fff06d4afd42b6ab71626", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/regeneration": { "uuid": [ - 2130271113, - -1138636289, - -1614258018, - -889714317 + 175112486, + -350270963, + -1804632664, + -1472362007 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDYxNzA4MTcsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI2YzljOTNjNjRlZmYzMzE4MzFmNDkyY2E2Nzc1YWJjY2VkM2RjZDhmZWExOWEzMmM0OTM4NjRkYjFlMWMifX19", - "hash": "931c9059971edb2f2aada7c0c048e4ad59fb9086", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTM2OTEzNmNlMGU5MjZhZjg5MTUzNGNlNGI1OGY4NDVmODFlNWRiYTNhZGNlMzA4NzE0YzdjZmZjNmUxZTgyZSd9fX0=", + "hash": "af5e903c6b94e36e3a38feb99e6edf9be9640408", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/slow_falling": { "uuid": [ - 579092712, - 1925725639, - -2092432809, - 408565448 + 1401295760, + -1001370020, + -1237459354, + -1996662618 ], - "value": "eyJ0aW1lc3RhbXAiOjE1NTE4MjI2MTE5MDQsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2UzNmJhMjRkZWQ5ODYxYzM2OWFlOGEzMGUzMTE5NWFjYTFkOGI4MDgzZjQzNTFkYjdjYWM4OTg5NDBhMDNlZWUifX19", - "hash": "b7f50e36e9f6b12d18ff317c34dbf4d5157b4ebc", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGIwNmUxYjgwOGJiZGE1ZjYxYzc5MjdiYTA2N2ViMDQ4ZDFmY2I3MmEyY2E4OThiOWY3YWQxMDY4YzY0MGM2Yyd9fX0=", + "hash": "12881ca86bfcfd8a67c0b09f8233c7625aae5990", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/slowness": { "uuid": [ - 2115591045, - -1138636289, - -1614258018, - -889714317 + 2073042102, + -128102461, + -1871962475, + 708373893 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc1NzI0MDgsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzI4NTdjZWZhOTYzZmI5NWYyNTg4ZDU5ZTNlMGI5YjM5ZmE3YjYxMGVkODNjMTU0NmZmYTk3MjlmN2Q3ZWNiIn19fQ==", - "hash": "accf99584a50e5038d5b2fb0749a32f8286a3f5f", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWNiM2E4ZTUwNTkxZGE4NTk3NWI3NDU0NjcxMmZmMzc2YTZiMWNjZmI5M2EyNDQ0ZjEwZDdkZTA4MTc2NmFkZid9fX0=", + "hash": "5a88aa4ac65d59cc33d81f9d8e35856f6b2305cb", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/strength": { "uuid": [ - 2063162245, - -1138636289, - -1614258018, - -889714317 + -1380259552, + 1048462685, + -2136230086, + -2011000224 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDY3NTE4NTAsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2Y5NGE3YjJmZDc5MzYxNzdjNjI2ZDllYWQwZWY0MzRmMjNmNmViNmQyYzAzNDgwZGE2MDRlZWIyMWRjZiJ9fX0=", - "hash": "28876ce65f42a0af76d70f581ee069e04d97fe34", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNmFkOWJlMjY2Y2JlM2RmYTFlMWMwNzdjNjRlZDA3MjllZjEwNDFkZDZkZTFmYzViOTcwMTBiZDdmM2RjMzkyOSd9fX0=", + "hash": "72b5105c05c916ea7b8e57fa07dc19b4edfb84a3", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/swiftness": { "uuid": [ - 2130271221, - -1138636289, - -1614258018, - -889714317 + 628694958, + -4831928, + -1207352243, + 134819399 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc2MjgyNjQsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzU1N2FhOWExMTBmOTEwOGE3MWI2MzI5ODhhMzM4MzQ1OGY0NDVlYjJlYjBmMDM4ZjE3ZDQ5OGU0YmNiYTJhZCJ9fX0=", - "hash": "c6ea288e229fb974fab0b23ce175e8839b4139ba", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODE3MGJhYWJhYjg3YzhmM2YyMjkzYjQyZjY4ZmI2M2RiZGQ1ODhjNzhjMDllNzcyNTI1YjVjODUxYjJiNDEzNSd9fX0=", + "hash": "c81b184c72db50cb84ccc27a6e9ea758a9886167", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/turtle_master": { "uuid": [ - 579092712, - 1923632407, - -2041990537, - 944780488 + 363269321, + 1718175205, + -1985643155, + 497739307 ], - "value": "eyJ0aW1lc3RhbXAiOjE1NTE3MTgxMDc4NjMsInByb2ZpbGVJZCI6IjIyODQ0MGU4NzJjODRkYzc4MzQ4YjI3NzU4NTAzNGM4IiwicHJvZmlsZU5hbWUiOiJTcGVjaWFsQnVpbGRlcjMyIiwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlLzVhODlmM2Q3MGNhYmYyYTEwM2Y3MDYwZDU0NTA0NDhjMDM3YjZjMWM3MjBkM2U5OGViOTViZmY0NzAwNjdhNTIifX19", - "hash": "99c8b4b191e5ce116a1c9f08a24f1fd635ebc7b0", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTc0Zjk5NzNhZDhmZjQ0MThhNWFmNjI4MWM3NDEyYTRjYmNhNmQzMGYzMGMxYWY5M2M2Mzc3Zjc4YzNhZTczJ319fQ==", + "hash": "69f1773d5c561a8616901a3d62bc00c62b3bdea0", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/water_breathing": { "uuid": [ - 2130271109, - -1138624001, - -1614258018, - -889714317 + 2087529956, + -762951532, + -2088462039, + 585618953 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc2OTI3OTMsInByb2ZpbGVJZCI6IjYzY2JkZjhkNDg4OTQ3NWY5NDQxMjk3ZTRhM2Q1NjczIiwicHJvZmlsZU5hbWUiOiJWZWxlVCIsImlzUHVibGljIjp0cnVlLCJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDc3YTdjMjEzNjc3NWE0ZWI0ZGUzMWU3MTViZWM2Y2M2NTdhN2Q2NmI0OGEzYmE1MjczMzI5MmM2ZTMyMmZhZSJ9fX0=", - "hash": "961dba309a6e645023d3d38d15d8e7c99ad4b2eb", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGFkZmFlNTE0OWNkMDViN2RkODYwOWYwMDIzMWQyODhiZTAyOWRlZmFmMTc3YzNiY2M3NTNhNjM2YzFiMGI1OSd9fX0=", + "hash": "965aaf4a242305a774eded7eea9a831d396ac107", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/weakness": { "uuid": [ - 2130271109, - -1138644481, - -1614258018, - -889714317 + 1194584133, + 959795039, + -2040976206, + 1339213576 ], - "value": "eyJ0aW1lc3RhbXAiOjE0MjkzNDc0MTQ0NjEsInByb2ZpbGVJZCI6IjZjZjU0M2E2MGVlOTQzN2NiNjE0YzdiOTRkZTVjNWI3IiwicHJvZmlsZU5hbWUiOiJNcnNNYWtpc3RlaW4iLCJpc1B1YmxpYyI6dHJ1ZSwidGV4dHVyZXMiOnsiU0tJTiI6eyJ1cmwiOiJodHRwOi8vdGV4dHVyZXMubWluZWNyYWZ0Lm5ldC90ZXh0dXJlL2NjYWM2NzI4NGNhNjM5MGY4ZDI4NDYwNjI3ZmZjNTg3YmI5ODk1MmQ3NDk4MzE2OWMwMWY5YjkwZmQ3MjVjIn19fQ==", - "hash": "c1aaf2d7ab03cdb274583cc5ca1eada5bed7c38c", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYTQ1YjZhYzVmZjU4MzVjNzc3ZjAxMzdlZGY1ZDBlMjg4OGVkNjg2MTE5NTMxNmQ3MjhlNDRkZWVkOGM2NDJmMCd9fX0=", + "hash": "ff283cb7ab9bd87333fc675a7791bde5180a7f79", "parent_module": "gm4_potion_liquids" }, "gm4_relocators:relocator_empty": { diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/beetroot_soup.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/beetroot_soup.png index ed3e7d10b22778587b8346d30d62ef87f22a574a..ed5318dea21053a6d2e3a6deb6710ebfa0ce05e4 100644 GIT binary patch delta 477 zcmZo>|HeE)xt@WsILO_JVcj{ImkbPy8$4YcLn`LHy}mK;wt>L0kM@!`+1@J3?aJ`k zCZfUhWa}@9$lc$za*1fXI=kA2rO`&iWzmdN2PSNbW{%Q2!MX2#QgFIMxlPw1UfX@~ zwJ+yvp0bTK;cm=?W1%xPRNi3x@Iz$A`J8`z2J<7|neF$zZ+k4H{>$G7RU4VhLJ~ij z3@Zr6#TTVdfvXFMbZ9Y8CPYd|tOVmB?;2|7lgC&TStf_($$``k{&$Sobm$huo z`^RcO$~V4W`kUd|@#pJh-&oJxHEZ7Iloda=+wXU?RTpu%_t5*coT^-Wec6Q{H@Mz2 zPwnP>d;hJW;d345r+rI5*GlnA%13YfS{S^mBuuUR z$tB50Uk_aPxG}PWlhN|#m&mIdgMnH@j%@z@??KSj-HYqXoR7P@Uq@& literal 899 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVD|EKaSW-L^LB=HpNhGFOT0_i zYm3+KJX!7r?&?r*o~Ea4V(iRTeeI6mh66*c{ zz&LYWYp#cfL-;`!qc1I0BK!aSUB2&ke3JQWUJXVqQeCLv`NV0Oyj z{7=s4ABKPKHMu<5$?L&xA|UJ(Hlc0iLg5J;*x70%KmL93i(^kVgJ_JagwqRklh?P^ zsvY#o)O1YJM5ZKM_rGzd|6?7OPuYp-l57$>i;dQ_3QO#eW!1PG=l}AKkRd`kQ{D6~F8o9a? z4wi~;{#Lu-&^qqTuTMNPWn_tQVvIVnd3EQZkdGB}-V1%}*r2}MF~+F--do-b{zyeF zy~6_6q$;@I3LWOlx7Rb`mHgAy^_-`|y?e`bFNVWkep((}b=^(m*G${X>}gf)s}8I)6ia=~H8)%?Rs4X@MTeAS?VDzDhO%mR80oguWo-SLle1$>eoyJ!`x>)NK4?_6wP(jKwm-0B#rJ>wKiPx%KS@MERCt{2*1?L} zKp4RBf3_khcqxR1SP@+4**z4&Ltj9o_zu#;K1KTiJ@(`~EJcK}*M-1dcI{O#AgKY# zt-BadN_t3UGP~|Jg(7j6?*}rI`6e+l^JNl?9Ob1Q51lHbV1KRK&YdQMU;)5!+|}*A z7tv@{bP3?U`DW$)N0E;5It-mEJ#2$c}0cXd<-0Q9f{=+NZ~ zH)*?kopqkYS^aH#>Gu~eBLe^i!GZ}PSGY_F83YTR>dfM7&}pe-2P}62df0U6>c>Fs z1*-JDC|h|o34dlL9Jo?mhY2Cz>P_$5X{K#Sc6^X_kr9A7zJx^Lj5Ro z=mIV{A){cecl~?mpH4=jRl(o$0RC6*1Smc1oorAZzWQiApSQqKd1=RIaWht>s;gtw zQ4Lz9KO~R9%5v$~r<6}_=+~$8>r+;itB?Qn`bDwM;(unWR#$Co=4Pi-e_!!UJuLJ! z`Rd2V@~2vDyK}>}+Lr6v-*R_X5T^w4;-nlyz#QlW`4@hsWM)+Sy?Var-~W(y=W)iuTTGaz8N>qhx?z? zMJbJ!ZE`kVgil2IH9*^pU4Qz;<0mJ}`SjzT-r=0v zW#Qn+8eN&FLsVLBtlprUrPL9TwV;ONgFDpei1_Ygwor{svj;l^5MN%L=^_OjUzH~7 zj4@JSlODq6B$uzK(;>Ru$RvBRGXQsV_8RA?BE@ESi%9k9Zr7BuODA8UO-ikfTP^2P z+t56JP0i61{eQeWMw^u0 ze)$BhZtSb)a%7TYOcWF6=ST-#Ygwy`&(}}UCdKqlcYo@L_#O~X9zJ`EvoDwPY4#(K z<$RhqIqdHc58e-*PtW`6Pe&g_$N;2o&wK9)fswvF@4qL6MSAzV_nr_I<=gYVdT69? z&-?EQfdlaE`G2t|1P#C>$EPx%7fD1xRCt{2);(|9 zP!z`TzX^&}RjPQ2Kq6Cyn5{~Nj126IeH-!>x^(MMsTta#Ll?e6m!uiHbn3v=GLUA2 z40Hj>h!@hHn)X>QiV_gHbik)~|i1^(k_*poi?^#$}?aLVClT)?+4K$vu7uQWI7 z)k18l*aFy-J`CDs$Nl1gDaN$pnPd--=FEoc9T3Jgy9k-sEAA#g>6_#WuTD*}v*Ge9 z`ASl^d;elPV1IhvrEr{sK^q%j&<5b)yEicDn+{kVgPW`E8G+ai$X5WT%<3N@P8oaB zU#?juyH}cXc(nP6M`8sQuYL2|MDld1v0k*V%A8b|3y@1cFue*yId#hqUy89)1QeU@ecGSnMbwdz_s2CXjBju*~p((#mK zqIrzY@k-I$jz?L7R+q%%Da-c0{=s2+kcn>2yuV5|E+Qf#A|fIpA|fIpA|fIpA|fIp fA|fIpa^L;|WP#)7@HPXt00000NkvXXu0mjfz+fRs delta 1053 zcmV+&1mgSM1f>X&7k?lK1^@s6qMd$(000B*NklNU2Gn%m1!oCw-kgv3r^keo^)*tz8tfDxdGZOm96xt>3XD-Bdr#yTZDu#o7dt* zgY*-mm!IDSHyyioK&a4p0PArdcEAhbT4-2;0-;2=5nPHpNWmE-$^R40!zBbLCv##n z_>Ye$d-sWEj-UOCPU{O!HG(nt!vo5}6JqrWKm7?EuYazc{8eD*5s0HL(y^Gt5@mVz zD`-U8DLN~V#9*8yRxcqIKvgfkpI;;OtARQ5d1GoH7T-b31!emo_Qm(;xWL}+gZE$( zq?MqXDP{Ko_W5_{$r^Wm2rUoBB1wvF7nH-#u+N^>^}nrO6^rwnkbd#)rE>_f+>IaD(ZF$3ZkB{n1KN;BH{&?<)|nCQbodMQ`ZBCjktqDw3ycp zQ3+vH9}}IINGHMd`)J(M>ql3w59qi+_LJs!fPWSxki_EpIno)R>oH;yir3?doRC}Goi38K(Q1j%qBuFdsJ9*NULV;TG}$`|c2ha#xE~Ec>Ozlf3NI=PrAqWc2xYWpHnn#^X&BnKc~&kVQz?i zbGZCWs>rZt1<}3skDe+%UO$?es%C zv(7LyJPK~x$b9WGQ@z5JgL(Uy_*U~TSAR6e)UV__JaG|b*ZNXyn}u#T>4Z0E`-VM>GbgHif_w5Up*<*;4C)dG)J25mtS&U|5)Ca z=l2YfKKJ8ag+$iAvp-h%+gt5bKN4_t=W~4vhIIuqCT5!6+j>G&Z_S0OsQL{j^PDgA z@Z=ufT{eZ${ASzo$?l1%htf}f)H|9QS9++NZ^4<^h`HMy$94;4YZSXD`9=u-e{=hG zPr0sM@%Qf>tF2!CzpHw!|s+8J?Z5ucw3^6y5*FkhcHoOEF7@YG8ab Oc(S|txvX8gV delta 1426 zcmV;D1#SA81eXht7k?lK1^@s6qMd$(000GENklDE{6~%vZXWrW{F1brf zwn@uKA|P-Ks4yTvg{mY4k;;Wj{sTdfB2|zkRgxwMT%<^mDxJy%&_58R3P3>c2UG}2 zWY`WOF|ouYm)wu{X68_90;o5)*3XCF%c&o#9&(mepq7!WX5Y10FE@k=K=E)pi)@k#A6x`V-3a{2ob+K z#kLEKRpXcbAC5Nl|? zzDzu*Fn`Sg0krZYAk`6ZhR)?)_5fop0&?Tp{V_1y+**&16SBFruIDB6D44(fXf4G_ zP5aF?rXM||9#ps`mwWkAi?BB#MMWBpg^%bPDRnp@m;UYl#Rh|>9A*F;V9OYUMQ&>na`o}{wD8+J)ZyF`7Z?7*>drm<8p97@f zD0&TCuZa|bZ97s-R1XHkaZRiO7${a+*$`*LP#jmJ5VJ8_`Fu_&vJXr@eS}Ut0JiCH zy?@q|_*w-HKKNw8@JvH*NLhd?wo{UP%)Apc zCX82%vyf)q5HuU26;eoO9g)&yzFm^)NPiq<9%G*HN#mmRBU%TH6{K|3gDFO4eO@4? zluy~@DhUT3Qp!A#G?8NFjTOS!VOEOmXo8q8Ka0agFQco-Iua zAreO(DII23?$Rnrsz@=L1BTTTKKY25nWb?Cq7ug*DQz~*I$}x(su%&H;`gSwc7M58 z^?G%7`ZfJFN^?%s-hxhmMcfQYqy%B3G9UknB_|toTf2O(OxgAl@ z3om>E{`d6PRyxo8`xia|Ulr!?oqGH2r|;;^n}cTxI2a5V3Nrv})z>|8>mN-}`m_`?a<@Q-f0rL=`zVVi9_yA^X$%P)4m7^J^VR` z?VjM|@_XfJmlhtn`{`c-zwWVb9rr@}Yvw;bF8#=aQQ>4+T7BMz-Vci>Y%K15ZpBbj z`+aHfS9#x8VZIyM#Te@LFec>m&!}8~@@=xxq@4Dv@*85-eq21Ee|!FhU(63|EOSF= zHY7c5+E9M__;c4=d&}MWPzHzh^{dKt{?_JcF`n9I{yF~F{*2~rt9=d}u5#SS=@iMzP&f-{ z+~=1qPqS)!+!x;D)^mKyx3{LsX3jh2)|&auACf;#PLMX7@5kWd%}}wf_~&wmIci5< z-e0}Ig3I>0q5i+;hBwOQt}2#WaPG(RpY3kiOR9Hm>OYvj;Kq+raqF$`Ejd>Y3>b!| ztI_BSm*VYzGE4EOx<7|-~wm$)vOA7y^B%x8Um!{eFt zRrUJEfQqhc{ly&iP&lkUAx!mT*)wJK6}CV_x5wY-_qB7lt?#9T9TZj0V|3`5c=X?0 TzU)e1yfb*Z`njxgN@xNAZb
    =+vvfYL?kNI#csv=hf1Zw|_6(S~;)bqMiNaIRT~#Th5<1 zQU8!Je}1iB#A&;@v}bdc=D*gc01Dfw|B#uG@Amu8nqsC%PL|f`3|0&#dDsbgs7!tS a0q&Fo`$VI|e@zAk1cRrmpUXO@geCw#(t~UO diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/mushroom_stew.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/mushroom_stew.png index 5ff6fc8d2b28ac63d428d0fe4c99892799c872b6..51122ff13e5b29b131a3064eeacc4069b088f3de 100644 GIT binary patch delta 582 zcmV-M0=fOK2GRtO7k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px%3`s;mRCt{2*RgKX zKpe;MZ=y6NI7v%PmZ+*iRU|4ks6*5xZ0tM%FMwEh2u21L#Cvq%1?YgpQj{T5rKSm` z5=4e1jhi?f%n;c)&EPJ^weGK4*yV?&Wh2;D5S(!A|3Vo_CJ9Zc?=j z2DZzO)1LrLE~gYrh2S?pu~gvgr!SeP|433cszZId!jpTC$d?WJy<@K17dRsafU0E# z{feamlgsJS;L{)%)nQ<}48I!P;Jp z`PgNraX@F*rGLI%0l-{0f#uZ>S3!7U?yATNI6M8l7-;J;z0qR-pB%QymkqovYo+AV zwgn<90N~;H0mGvc%ykoI)sXqs+A2By?a&g7qfBtr-KbJ*BL_|bHL_|bHL_|bHL_|bHL_|bHL?nIw0^cOP Ul|LHSWB>pF07*qoM6N<$g5#YP=Kufz delta 805 zcmV+=1KRx31g{2=7k?lK1^@s6qMd$(0008^NklpX&LA#I*1WtzNK)ao(P1aN@BmPP9BcK#GcN};2WFaqb8fL}%Ozg^DE&d$u~`udtf z{P^8lTYCB~gfS&WASN{q=|BAZi(cAy$KBoC!TbF?0s+^b_Y`0B&w>-Vi{-kY;c&Mvxc>U~{oaOwdh6X`0N0$pHJ`apIqFFaWo= zx4-tI2#c2Ruzuv-$HqE?ND&RzG^R{OH#9bAfP$JqKOM~elb{}ZAO#pc4voIRRWX;P zVjCp1s!UTt8h=~V0?0HaF8_l7Om)uVZ@wzeKU$1{fKp@rFg8k8us{|r&`!Su94~@T zX!a9?`U}$VFf?QnHHga&l>md%pS$~F9L)eVLx|F5_g%y=JTf%Xg=UA%la3$^IYHCu zr$9a0=V{n5#eAw^<1}G2CR|qbbRniPudgor^!>LUHh=5C-Je}zEkw2E+?GYR8Bwid zfrgpNT-XRu3Y>Priu;~UrfGXhhHjkjdZg7#TMxJ|XxPw)kVUaDklVCQo7Y`ni>p##o|>QZ zQ<)R$uFq40i|!JpMp^Y(o{L*C7-|bz-xE%TmVflMqc|xQP|)<8&&of|0WaM1J$+&J z+F+@HOU!q;@>HK?Gsttfu&I4FYo8pTJa+`;_FW-9PhW!iX`g?ok4umxFiAfKrIh_X ze`NhpeL>{^!YkVsW-)<=qE`nS@Y3>vF_j>pBz)eGOxKeFXxY=HRB(9dan z5mM~ao}Ilht1`dg=9Z{>f5r_aHTu2U^|Kf@2O69C8UJ#NQszG(8Lj5D`eZwqK)Nz$vVN561 zafSW9@biY*@8;b*fd07d)pG8*+ODug*^Pe{FE3|}+4nJ2C&g}??|qNhIa(fXcZVsJ z*qH@}c`rQhbjg|bzkpg>e%^a0y|UZv`h-d)bRY*2SoHrJv)+-Nh1-peodL!JgQu&X J%Q~loCIIt&#g700 delta 312 zcmV-80muHb1I7Z77k?lK1^@s6qMd$(0003ENklT&LS|l&a;j&X7_IQdv?92pHdR*833TFCCd&cSPMQi zx856LH1*ms4Ye`D}p!Y zTb~nxH|JZQ6U3YI2k6{a0PyF0%X2~i{5jw9oRE&ld5_NC5y6}DtTgZUDOgHr)Vr0c^Sf>;l+y1K0(y=?1V1VDkX5Vh<^6v!a3k0000< KMNUMnLSTX~`jJQg diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/rabbit_stew.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/rabbit_stew.png index 835bc7529d5f30570a93a552d4bf8b1eb1ea4283..5ccc5a143eb003ebe2518162b8861c74194210b5 100644 GIT binary patch delta 705 zcmV;y0zUnv2h0VK7k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px%hDk(0RCt{2*H2H= zU>v~l@9MIZY~3hzGY(BK9*mrfK@wv;dGR%v_zpi?PuU>QT}T=EeJ*SJd!F_A|2)l+;@yjfCx1n&h*L2DxF1ck-tXd6 z3|v3r&z=WBFgV046_RTJvsB>Y#_wF(JF;Y?C1}h}Q4iyayM9E=?Q-1e@uPN>Gz!F( z4F-oJm7fIpv;?jnaqRX0c;d`(&^W-Iud?LWEU&kL(;f##M!_UBLh1-`DhBS$D#ta0 z^?sL~R>b2@o`01s#oJePV6?Y~N5OEzTvw?L@ciySmK+<`k8mmmPoLRL*N<@hh~<@b zQem@H7-@*J_t#bG6!3a3pPRRsYZ$0LSauD|u2Ho+>^41=7XX}_`!{9^d~MfpDhA&+ z4rmVyb~m=!`?&>xRgTjP5A_?j2tr)ZJGB}1J6-CfX@4y8eBbU7st`C|*-7brfZY4n z^Cv*ErRiQ({dfn^t}6cF%VwtMgglTOYMhEOQt(iP=tIy&afr_fRvDVjzbG%js+!3Q z#>tH+$T^S53{IHA5F7RAJKN!_U&<$_uc{ zu(rC-!hfR8+Uh=58LX-~R{pFRx?su+k{;FPdwqXd+^U+We!LLww4!A38%}>&{;cKo zKCXLAU+d>%#b>8@G;d>-VXhHR0XQ8Ym*vk|9!M4~y@2V$by_}Vsc>Oj|28+{Z-roR zNUc#x{yZ&zr{!OH1=Hl-JgA+(`4imPbNp4sKRW&DTCVxA6{zP{_egl{Lzt~Tj27pCVvwG%XF59q!LljD5~y-ym?Ou-$k{Y7O@ShiL2M&cj-RTI|BS5!0GPmm$D6k->z3uR zCBOLt4^Bx&On-2GYz#c}V(K`?+d<)B&{C3pf)YLq&(46H3J$dM2g)2ubY$vUz{Ns^ zA78^Pv@GUO2cr>8En!>7-)`Vp0t85_ClHHpzyRb3Ai}K=h=^&4jLh-KYB20J-Xq}Z z>x*-MZ@>HH)%u;Rt6naK0cO*{>pRB`EEv9GCaikJfq#(&%%OzcZvp*VotHsnaB@&k zRq^}16A9#CTYbQDKH;11f9kbS!dmBXbsFw)lBP(3BHQ=?mnaI%mk`voK)Z_TV1f_E zo9|-@IM9T`yZZ+djf@95a>(@W6VgWK0R;7Zrc7F9X+Z06%OlZ*x;|j(iQD^3t|AqX z3_?uQ3V%#a&somr#QaFiOT2B?2adcud`Hx=#Y@-;pOA(*(gw%WP4~e;V!l{%G){OF zpT{vSaq1&p)_0WP6p31e)JBp8JSO7e9=mBMO{N-8poS_(v@%DtF@X5>Av5-XED-yz zznfj)L=)hs5+s<<8)#axwK&eJ$3Hn-8Wx<1M}J<_6=Mr%I3x{56yW&q6aeKKN~R>k zfa!rK*{Bx{Bf)_p7HubdLdvP@L%s7u`bgY8)a1bdvB_jxkYeKgkWLE`L}TrPxR zA$0}EC#RIArmYuvClA!Ehz@ho%15yA5q%@A>%k#-M}r&=Pe(Ml#S09E5fcQoxxG1b zjengR^388xu)M!z@Y#%LPG0?47U97=eN=dw2WubEH_}??pLAR#7sZ{Bx^`gY@8#OW zO)H%@-uphkxg)u#6rX&+KkUCNK0$ro$NR>!m!bbV_5}2uK;PIC(02lTV^2We3G|IU y0evUXH}(Ydoj~8%6VP`8ePd5R-wE`MzZC$NKh|qI<+s%U0000Px$`bk7VRCt{2*1c-m zP#DJXzk^cAxW=y4LO@Um?hq)24uNjzJ#^^U8|mB|=p}UP1@s286+9Ta7=kba4tSA2 zu!VIRXgkP9mb)lJgdBK&li-!HectE1=d`Hs>GRLOouN+{wSPGu_)O=P#B51p3xHi` z#k-kF*en-3?LQ-kLIA#hec!73jwX3kFLZ`J0EyX>m@Q${=JHLSX_PO79cTF6fYrpX zSuS|~`W1dR01g-DSXC~7>wNg+52M)~iP>^{y`(erNn=Z95{N>27ZJfaBr^#a6bU$X zl?#xVEdbNf^M8krFGzl$FpVrX>#X?Go8_YToZAY=?p_H1I3M_2o}Dt9-4#iI{l0hH z{&(Bp*i|loi#r^q03eMm!7l!*i2?G?yIJrU+-nHBIRJ2ZcACe3ZV96{H$P^qCWhWc z1hAh2CV3QdpmG7y*pkMUWVaCI6u6@>h(hdc7W{t<9)G)5)j1D`DR}7mw=eG+y(f6? z#{rCfErI>ubLy@)$#W5RgRZ>aU8m}-H?2rOIhN(;y6a6lNn^|Hbso)^SABqkj@4an znrGJ;gSR~(Kl6+Gd%VBP*IjRt=XV3<;}w24$h)%pVRoGrx4F9OP4Zk9>^j4a4?9xs zP~CMA5iJoB5fKp)5fKp)5fKp)5fKp)5fKrQhw={*7s7}}uA z08Y}=^(5?j1Wtg8REbjBCh@SC(5#4&qG(bn-!6Vp^5*$x>{hE4U6hMgkqQKG4sd`# zb_e&*@U??3{qpwWy1u{NZae=!G(Po$)F2UjrUm*8W(C9uhky69K6W|-Sg+TMScA(z z1aMkx^$oEEBBb=O(;2{Kv)LC*UCszN-xizCA%B9DK6a8@AXZI5kGjOA((&>H~ zosfFrvzGRShM&P^Yefpud-taa~- zG^hA)AFp+4VjNbtCKOBEtMx@^2d5`^KG$a-hSja{ef#{a-xEULK7Z@?1hvq&&)@Jp zA@uI^eRX4;h**0tWdys>mMH*h1J+CdSR1fr3c%WcH7ip9)&{JZ0Px%+et)0RCt{2m%nb) zKpe+E=T^lHFyUlyhEzuC;2>2QS@Hx7&6tNl0`UYq1atEY9mvAMP)F)eHA1ySeHBC1 zG)2V6;M~K0Y&kd`PZO`G0wtxcjL#?8R-)lM?{O zSx&3&G0t)TT6GVA_JN6@H>5?Zf`+kv#w~?it_D zj~^epd&_-mA9Z`~zAd1(^_m9@FORytzb>!}FAUU*xLlvY-7Qe^{=Dcx;pu5ISn#;D zx3$4O)7m}s%;n>B9TYWSzA(Tont7;3-5%3q;1+Ac*YEU+?rxbT16LpHI6zcBF|gkg z#h0Vs>3_p~?z-7_f|-k(dn^nTVW2oWJ_2w#9L4*E{e08PHK9DdJa3_JmZE9hcy^(~ z(abH@wl*#H;icP3p zk!nNDXguXHyUF-AzATQkiKb>WsWv>XDPHWg34d!>%x*HSC-61-4inAw1mc#*P9vsf zG{ezs<$6mM{|cYJ{CdC64cLYvKkb=qe{jGfBq?3rhqJwJTfo`epZ(s#_;57iH3`Gf zj8@$v3>4$+A1W0DK@bE%5ClOG1VIo4K@bE%5ClOG1VIo4K@bE%5ClOG1mVBoH?8;3 VtPt0+IAs6;002ovPDHLkV1mLieggmi delta 1231 zcmV;=1Tg!d2G$9X7k?lK1^@s6qMd$(000D?Nkl#FY@_t*Cixd@N$-3fA|g=h37{H)HYRw@`_{cy#YhxEwhzj{u-U z{vUaM!Y|)FU4H|Hp9lP+MaP5-f@LK=T~Ydk8H8oS?C5~>*3hj0AJ0WNs_vI9V~BC~+@8CM*bA&sLux{j$)hC*1* z$mLnmApjTxRao!<8D18P4*LrYZ#VA7p=kQ%aT1A|I zYRBT;q}8kk(_RFrI8^w|D%} zy*u5jmw)oz@LW27@cVGM2u=9;o45X3zv#`dzk``k`iPDNQ$xIC{?;Dle8kNfqyvo! z11uIKICgFyP|inG;;(@A(TDFm!2HM8e)j45e}??s!PW!`_11zyA9RI`ON8_+>{K3(r3J9L-8tHkbn9@jG**4PcPh5zUGdhbcHG$gBnD zFx8s+rJfEm!-YV5^8gn-7@Ys(1kFmbSJ!t<%ly{Sl-jES@nns(fo6Y3*zb@=@QZ*I zV}Cq8rSy?9W^mB#&1)cThoRDsSSd9az2Fz^miJgL4F7(D4haC?1;XC^tMxTz)_?ie z#PUIqDyTV_8BQlEW7V*(84 zg|M9?%DCk>k+K=5RS$%)+o3U$p7luM(SKyp zYcW-%+0FrHW93Ea$h!?o7aXWk`h>K;hGr_bCV(nV09DdzAk5oo)dLdt7PL2(q|-BW zRLUlSDzlqAU`q4)lJ@l_Wiyc1iQ#wyrLcJW089x7JNRXX4vErd@>v8`+UpBY!!PHR z9}}f7H?<5l>t*1Fg30Wn7V+e@g-sxTE`sC-1z_i002ovPDHLkV1f(4Y?uH5 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 index 6d63f6e5ffe9284e3de762ca2450188ff93047f2..f3f70e3d1cd7180c7240bcc5cdb453f77df3a70f 100644 GIT binary patch delta 698 zcmV;r0!97w2E_%C7k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px%e@R3^RCt{2moaM_ zF%-vtE}pYJI08NgE@PmJ3kq&NL2z;XA^Igc_e*r^)+r6i-o*(K#7m|w4mb`NgSLDD zcW|C8D=9Y>AL0EL=_H*_|M&EsbS-N5esi-ragKQiJlx;M_J6Pp^!kp;wFh7^ow0v- zz+yTBVE^y{fUloFwd%gHOWxHD2+I(~hh+euTUCsPgJ_V&bVisza`$^2-%IOFrq%$d zm!%NGGEj=J$J#h59ze$8KBxZDt>v>q8^|0}-COuetdhGp{$Df`{og{T#KZHL+~B*U^=GwO<>LMo=iRD`_ka`U0Jg-Z{rP)o z?5F=0Uw@8|cbfyw&MyJDySj~w)l%cP*LP7+dK=VBP`9dH^e?8fXv{qEr8{ibv=`GE zz5d#pcUQLnFBUer_AI6|CTwT-Uf=OhNc<_f`0+Cyh3`Lppj%aO-u$^K$7CBe0%7xm zqomKeGqgP|bxbZw`_;HAUJ7Z10Sv=148t%C!!s}p!!QiPFbu;m48t%C!!QiPFbu;m g48t%C!+3lA1#gwJqfkBqVgLXD07*qoM6N<$f{9^Ds{jB1 delta 874 zcmV-w1C{*61@s1x7k?lK1^@s6qMd$(0009!NklKQx`))oXSAe;p&Q z-@W5r48y?1^9>P5F`_zzgGjyIFBOMk}kkNbY&)#c^=zyAc# zJ@x@p;&vo9BM^-^0D=jPY(QOaAOKbH09DQbB7S5Th68eV6do3!)>ljwc~KfsGeGhc zR1c^Xf4c@%tXLDs6x{jHZu#!eBp!o@1u*+<8+9|{dc^3iAuoA?irFu&OD2861Qm3i)ga9H%YwtfFoW&!suLoR( zCtDHZ1mrx^d{)3S3$&&EOg?UF%M$qWkOUr!eFA(!Go4kJ?jJ#1wYmq%$)HUWQ;0y$ zfszR}4CjZX@!#?95@;QJ?%H1)P>T`QYvjUOgiVnz&wp~{3AlpSmj0e&@MP8O5kCPd zhT#qH3*&gR6=WPgJ`K(LA+N_VaAzomah~I+R&3c5@_tq22UU5%zk@?1=k~bXv`ZyR_kVs>&Yptd9%xLp5h=FJc~uC};XL~rYcH(w=N{$agXUA1DVj{$+N`3ROi9$BI!M1iH z7a$env!OlbdHeP(N24$2ckJ@4pkJLdv31`Xa(JkzAjR-G`tHc7VBcRrfT^IxvKczm z31bLkC|f&bOV98uleFuuJ^yuvz*fUQrb-`3{12SyiT*j*8AkznJJ1_P0eU;o8%F_p zJJ1_P0eU;o8%F_pJJ1_P0eU;o8%F_pJJ1_{16)#no8tu>Qvd(}07*qoM6N<$f}5+D Am;e9( diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/harming.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/harming.png index 9efe21946f64364d058179401f09d77e500a75bc..1b4c378fa2722da0c0cdabd069db2753e7892d5b 100644 GIT binary patch delta 786 zcmV+t1MU2s2b>0w7k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px%)=5M`RCt{2mraY> zKp4k=zC=^RG!zjlC|%gHmr#1>VWCBO(J#|a&|CW<`epWB@X(|5P;%M@Yeh>oA!Rh~ zZV&Fvj@d#^MTO^gnMr0c&i{Fvu|xqM-@U&(KkYDGBwR+Rd4C_PjG*H)nMDB1Q$@Ss zGEWr%?S>1$mv3K7MZd96%0&}ml^OA|$^hv54MsuF7-XI*qScxozhm>A-9Kas4PblO za~)!p(QP$pc3Z?MGvWdKdW~qcCR(lW>opS%hfK9-!ekcVxej(3jKdj(Gc(5)ZllxS zkSUA+Exy@paewyeg!9u50K-ARDCq5o^y@YJdJTYRwLXdnC^P`Tbddm%OczWS39-sd z-%f!%#}EO9DG;lS%P6ILFZeP_2|E5Z4R{clPXQeXhfbjZG#8UAJlCP`H_VCPxsDn4 z>osGH{E>Lbls>$9d#9`Wzbd}&Yi!~9as6z6Z?}2l#eXW>`#r(b0MB(y#UBMdhJ#>7 z_;3(#e%dkb@_jvj6!gq{T|jkv_UdHk$45c$zY8p)>bVZXK|nHHn7p1Y61w*jv>09V zVC(5|INR}fGFebD22 zO?_g(_J2O1Z;p9`?~|$)47;B7TnEo}xR_i4m>ll5nvBDlF`8Wy?D70}cJABJv~S9K zqv0|!o7Jt(-=O0gPwI_pk@Hm1_ZyGK=czJNY@+G=7v~h)TA7J8^UGs=($=hGfx%Y7e7Dm(*RZ2=BGZh^&cF-cu7C!!`b$to@1Z=_IS8VOxtd_ zc&>94_XI%@1VIo4K@bE%5ClOG1VIo4K@bE%5ClOG1VIo4K@bE%5RQ+(i6Zw73;z`o Q01E&B07*qoM6N<$f^4F1)Bpeg delta 916 zcmV;F18e-82Av0x7k?lK1^@s6qMd$(000AINkl!ErCrT* zP50FQS9Nubd~tNdUD%u)=d07R5qDCbDPzG6MCwlkGY50>lYfqBn5x|o5wuGjeD}>q zSEpyc-}R1P&d=|B|6@SqetXuexWhCQ@E|^4XrB=g9N1n?i``w2tn^14bo8$_C&&2_ zxV#fGfSdD2(p$#QUW}h#ZVOPOniMw&1b3$l6K)oEb<#mc*-of{PsZ@q1y9{Sg}2L` z`t(4w{ymn+e1Ed(883$&5hdK`}}kOV7+xPx$hb$T{E z7NP%&+hJcpkf-S&gMbys%y9>gB!~sNgd|~ny`>Dna}mkGvi`JQ)5^mTc~{&kfD5l| zGDHLfBH$ADgb-drjX5iTUAyq|0sVh(+$#WZ9mEV#sejeoad)hM))MOG3+c5ze=*Z2S{@EepC4PSS=Rcgp4-3^Ufy3}>0C!ZqMmhu#jcY6G>KEiCNv(xmiL%@y zLOSf0tuekHch(nG`e&Oaq}R~0oj@Wgnl+BRS{bJ6EnY05jH5X%{M~(Ji;R#YH{o|@ zy4u#hA%#et3H6HI34DKXy&ypMAm3+ zwA_4I--^*1S!;J^QZ(d zH~@T=;@mpt;}M?+cQWS2?9AQd&7-n2wIwthH&PdU`FxJgTS4ZCB?VS}K(&W5EX8s? zUw@YQH`_*-`vhOMMN6pmDL!?#6Hse_JE;rj(m^Km8Jh}bLYcze9fV-oCp0Tw;s~^P zevYq1%^G%#>Ob52O}AuMOUVDhiI!-egN?BlptS?7u@|7V1Ff+aptS?7u@|7V1Ff+a qptS?7u@|7V1Ff+aptS?7@djuo=?j}Sat(w40000Px%uSrBfRCt{2mp^MF zK^TXhm7Sc$vI#`ULP9Joj%bl4DJ^0X$S06|!h8ZtEvyc5g@t;@k-{RNppY!f5uD&& zp)-z~z&3ZR9PiWYx-+xBzxUtFdgSoq`Z_(iyW#bD%G+RUpMNKDN~Kw6-X8%l(Tb|l zOtb=^sx$ysKOeok|0t4D-h?Dht@tEP0VrQyP;0lWLnc}=)g`|D{$kg;_xnt)1KcPF zp+^#@9G*s~qXUvSwc-IHwPLDEOm&G!t!y^zGk)HLd4EI@dYCd`FlN^2?aXn7yO=WA zXL222#H*tNDt|}k=+lTO%>bY}j{l9bkBR=n{k;<;x4ZBLv}ghl|w8 zMm)PE?la!w*Q?ZY_s=@Mxi`4Nv*YHsyWYKKotMOE;eY1@o3laa*^Xapw>Z1M-4T9v zf6K|;jeVBAH}h-lmVIs-sJT`e=R1F1Yq$Qnz&!jQ^tK&+Q`fK0Qx1uMZFEi3gH5D6 zy`6~bmnDGh4d$J*&Ajp_@62weMc~8Mcvwes*6G<)t+iXsIz4NwNncl>=?`YyywmI$ zus%<`g@5alqr0|fd?OfkBO8PsLFn=H&;_tHe6l$Q7^k^C!5z=8b8FwtrlKhsLx&6B z8f(RF>bKIY+ejM2jmU{slrJwnj8C+(jV{~x+zcz4k`d52erLGwtzmD2u@y7#kC~DUIWI>&&ckhhq!hen%8d3DyFKi}jJf80JRK80v~} z$K5#-tv;*=taFD8pQ_S3JB%O*f*=TjAP9mW2!bF8f*=TjAP9mW2!bF8f*=TjAP9mW c2*Tgw4^zkC&JVWa*Z=?k07*qoM6N<$f`b%mlmGw# delta 1016 zcmV5(#VO-> zVUI-QR2K6~qn_#0U3LEdTvY0w^N%B1{XI02=|G zI5_pt3orogDN?N6-8tMJU$@8J-rlwQzYMs!_F)7Bekq{E$hT_O)e=gD;NVdorWpC) zVW9BoCaAu#^lYOba&Ws8UJUbUvt}&d6X6L!`tH)} z6T3wpIC0?h(q4OjYa8IJfO!J6lmg=bWdPJZ0eDuxP=Abk4U}RhLlMpX)WeEp{_gtL zyiCi6D~^4nKd$v$>AqO|>?qy3!+HS(I0qVmh>?7=g$fu55H0lqS_e%F?_hS-hk)N* z+d4-0W9M*xb|J{l;ePv4Sl$3R{P=U_9Qd#Yk0$V}gux635njX2^+v6`w?Lhaz(T>d z5K9xKr++Y&WKY>JNc~}=un}!eIPSo(vGwmo*1q{#ath!WsYUnu#?JA<46AboD`iT3 zu}ZFkky8gA7Qoxt2uob9KUMhd_Z*zBz(KTg zep&2VVbQA`%z!q6Z(v2isinA!*8PLGB?@QdQh2j_Y!0XuG-b__+Kv|`R0*7gOtddi zuq0Lje}@z~2X(ZgOg)U$qIKfzUJ%QUE)Y_02-wim5fi0}&=nhz?_ffniP=%xql;xp zW`8)QDS~|m$KImc!J^m(bKW~^YX3O?n*+eIqm4i!KgMdlh;}@-(cX8MeUh@^qA!H} ze-RuKVXRi40G-w%I!>Z^fht%>4{Bu+u<5X$#A_rqO9upqsf2oBf=+=FOqFQ%6Awep zLi%|)mVpNfM-iqTCZ&zIZ$wam4G#|l&T%4C9r&|=S%A&P?8^a0*wj}$sJiz4{RlXC zU6LI*FQ7^#@^JP_WPqsVk3vr54?$)u1jy|`ZY%`I?LclU1jy|`ZY%`I?LclU1jy|` mZY%`I?LclU1jy|`Zu|?DMQS*{nlcOk0000Px%w@E}nRCt{2m%nS< zKorM6NflGvvtZPr+a<@Ks1V| z@70M$5dihQIshM!f~}%wtdi}b3$%`{@mj|KG(3+^(6$bVMiG))+#m{))}Yhg6{bRO1aoHU`RL2o^IOkG$sw! znZgJ##sjGGu7B&(`-A1C)l z-T$Tdrf*0ao?kcP^!{|4cb?Yq%D)q=1}NoP#qR`d{C{REW4PaJW#;mIGwuX!J8uNk zw#)Kq=mhQmZeS5kTIEe%>tt?UHgoz*G1NMy8}>3MZZP*q-_v|do$J2Kdd^ zqa$=oCuq|Rdzrbs(~Lftbwj#hnCLRkFnd>xlQ-C$m{KlExg4LI0@xf@&E3q4r!^tH zp5K=j&VO`iT_xM*MZ^B!(a2?M^Y>ssQ~TlZ&38B@hwIsl z#o~^$vtQiY&RHz(c=Pr(4bLN4B!vCJlkv_@iEC&S@%`(U&#QER0}uIWYPR{o0k~qA z8QXAP&YKpn*Q9HIdOhq9Y+K)}qm;W5-wA>s2!bF8f*=TjAP9mW2!bF8f*=TjAP9mW k2!bF8f*=TjAZ#9g0o+r+E{Ut!2mk;807*qoM6N<$f;{PKg8%>k delta 1170 zcmV;D1a15M1(^wu7k?lK1^@s6qMd$(000DFNklYks=ONo?d z%K-#04Ft$4tGq!L%3AOfnSI-|v~GiJUVb7=Nlp2!UJ+r4%0AKjP=} zbLKSDbv@AnLqG7(^3B7e=cljU_l#%Hp1t?^w}F0S-G7>d2F{K<|cg5fRk^hFD@=GaDmu$bX|{#VrJCZ zxVXF^i06O%{6+KjucPOu)31gcJwHvitoJv_Kfe0fQ^|bx$s=C=^pa`5qU#5` z*wJ?#(=y|=5<*;i+8YX}8fHpq4X=$DBc&8dtC$F?M%Q&LIZ<=r_-M@uSJNf^Fw(`2 z-7xa^FQ3Ym2Iw#hl$`nQ`|oHt{V?LSp(2d^K!3FLkj(RZeFK0ys46i=6v5q@(}H`$ zL~y{&xPN$$po$Cp=cku6oMGIphMDo{$;p=50nj&>7X%B8yB%XUV4`$gN2`sq^Pfp+ zA(w)vFb*RkiiY(zSe8Vs6$Dh|ZBF?0ws>{+ikve5F-CU%yWh{baQfoMjpc)?2o{W8 zKYwCDN!J5yNei`BoOP=2cY6e(wu-t?T3yBC2r%>mrnShV*q!$*imccYQ93vsI8$=Q3UXHHh5!MX5@N*k%FlK z>;BRzDKCf_h)_z!)NuE$^`o_|p~lp>x_`PvL>Mk!@|sI0ed<9A?ys*qA*H;%yCtJNDREtncAN~wh|#`Psg*Bme} z^SZ7|Yn7k|0v3!WPRi-+daZ?^_I9{7ai(RWkK4xs-HkgA_lI0uUQ$b8Nef;ZhkyHf zxI2gYJ%Px%s7XXYRCt{2mobmp zFcioCREXhNP?RA-x*MWwr3*^U!oY+&Q7Ic^KSMu9KSRfENXIP|69Y?A%2IVh3`D{V zC}Lr`;phoIEx7e{AC;#X7p6v<>_%{D|RP7$J{eK$E)r#AtMUf;56=lM<3f=#^M3MZ`PqV2k6ZKezVTrP-dz{17^t_p6h_Z005H3 z^kR%D+=RlQ%zqSm0Ex$=59g+n*8!;35QBbvA<}Qw;Wz650KGZ92oESU003Tj)HJgF zI?n~Cx)}mCFTn!}Lx2*WYTt1(?5c>vAQ!2hg#dX%*(o#tF`kUzxemf0;2ptp9q#v= zbzX6MODr>$`>!94l->W7@u^Oj!tH)~Hs3c(+j!euc7OGA0_OnFbvWY>`Y}{%cp+T1 zhEVMux7l?XKj_EYP6?Ds=caS<@j*ZS=K_nUdaeW28Ui)Vah>hga2ojlHo__C0r^TN zi|NIRqn5in&0)?-hbenbdpo@bc@C(ZV^y_#ryt8*b zI#1*$M}OPk*Q9cMdN|tR{ubw95Ws2NAz4iMJYb49`|bD4*f;MMo#@kbbHI2q0swsf z`HO#+N{ZjEidc|&8XQkXNVP^71kd_Yt=X7%;!76Oi@U`&sis<^t0Dlo5rFfmhe1AQ zmdufA%}J8PbXA1qYQ>kLFZU0;6~2A*8etIdyj=EkS+>b4a25!FFF1txOrAmQW=Ugg zQPfYyCGno?l)?alAP9mW2!bF8f*=TjAP9mW2!bF8f*=TjAP9mW2!bF8f*|~V{01?v Vvzp5Fg@gbA002ovPDHLkV1j(_UUdKf delta 1210 zcmV;r1V#Jq1;GiB7k?lK1^@s6qMd$(000DtNklwHe@d zUtDk)Pu_G*KZ@6Vo5N%qL=vi*Y6B1?X#pX^DApq=OrlF&~L=L=%VI9Y)*G$PyHaj}TxnA(~n5eZXiNQ2j83)P4G|QzE_^ezTsQ z8}j?3`W9>bUNXG=;XnE94RYQmrxjh=(lGg!2q)_jL~t7+ zoXNH<(u)4$5B^@gaAWx%XVW7XPdWeieR5i{+JA-o!E^Xcqsw%N*~r6ZpW$9<@&SaC zP`b2F)&&qu^#b>bh(Z`DN~=o*#UmK&1rdg5CL+kvux{TaNdp9rH^;m6n?nevm6l(2 zcjv4f0KJ(0L)Hb0X3a9cgK9%g9TCQp@f#-VsWt*a*Bo9p#N9A7+7=4~VrNKNA(BX% zv45zX3=b(j0Fcv??uGTMk9>LY`K-kQsGz7ebj_M1iE91s*s~25bvN~;mc909_qKgP zNmQTkC_o^hEb;+KGG-G=GR1m|PXwTnSmxavVK$N^Guf8WwzC!wke7L%;v;=|M$$}p zq543h4UW^M6&8iQJViAVUUAvY0S;ts@qeg{wn0USsF+V=ZE%8CJ1izf+oGZfJl8Ge zpO3Wqgi0c7!!SMFo#WC1N<`pM5CqkRQa1!#>JZ_0*iILv)E*H{y>lT$PyJjhpaesCL zQql$y#iEd<#R-svV+`etHg~fY51_034hQXR&dVw8BgHm2!QSFFPH@oN;-J07U>iz3 zXFEK?FxIPI?e5DrSf)dY_f+ed>KRV3YL5tlE*)O#17pz|UTugw4d zSNvrE)87`?2F#tn+*}(lcLH;BZ8N~!3Czv40dprXH`fNtoxt2&8!&eQb8~IL+zHIh Yx0qx|#t;pvX#fBK07*qoM6N<$g0yi;DgXcg 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 deleted file mode 100644 index 2aa399e6670c586b46b49dce6d32b3f3fe5a0623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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<+Tq00000Px%rb$FWRCt{2mpyCS zKp4k=IfT$)iY#!*5I0)`#o#$4YX%SAy%qco3jGKj`z87rGK4POjOS2OaJSeQgaeA` z6ok2S(B1hY7c>0YG&bI;4^hz8=1pI^eu3-oHuc7Ofgp6e_p91bY%7Ug}q zL7g0<(+vRXzT(T`8)$EUJwyrInmO#_O%1uBVgVE`1fImK-5#`wa0 zY#6keMh~#!!+-NLqU$Td%L@QH(+SadR1v9qT~x0NP#WYFctE280Q71NK(V|>uh!@+ z-?hCE*jxM+ctB$a=qxYY-U!~VAIiL7Lcofwhk*5jw$o?;%k#}GDv1gDr>-KXBzFC( z*WDSTRubFH(VGvSUTk*%TgJC-i!Z$1Z}0v2{53DjPr>#NGkqw(mU3v41#Nla%tp;+F#xYnyRg&APQ*c<@m zP8YLzWyg!^>gK-7IEvFs>SnN0qv7-Padr^MmcTYubtd z<~(6ej(>H7ACkZcrn<8#iBU<+^UW=Qi(zHPTci0o!SAon^JCxlrbDCbhi-rV+KDt* z7r(=S+evpOFd}ujA?Tm(_3L!w5?wv<6|;He-{O!2I^7Ts2S8~A*wubpBa6EQI^9sP zsATnUIAEJRxSyiuZ{J-h4Bo#hciya9zi&&KELwAb5eT>+9Dr@@-nlb7Be|Wo^F2|1 zzcsEEuadYG1`q^65ClOG1VIo4K@bE%5ClOG1VIo4K@bE%5ClOG1VIo4;s4_g&EM9k Tuwi%#00000NkvXXu0mjf{=H%b delta 1125 zcmV-r1e*Ko1?>os7k?lK1^@s6qMd$(000CuNkl9AoC7v5D&o05*r>ZZ{Z!QEb|g13_^)u5O!>g=g;jvr>a==*hT`|Vx&w9VT zFg3P)$AiEAm4aJnq;Jeeu z1c9XzI74T=f9FlK>L;gn?{wEv%@ug10OR*hK0G^20F*R_p+ikkRU(rg&JIjdg#=6E z&Fv0Tqtl+bIe%Y#^AHL7;94rVBCizS;+_51DWIZk`VIlSIfBrA0C7BB06K9DjhK9W^RsVycJ;PLh(}TuUWa zN2}x!jY3PjuET$DuV!5hMkZf=6)h0~;FvIK6x4=>K2J)%e8`xZKzs zfTX;8YtxgNOts-SDbR(mAGS=bF%$y|b9K1f0g^rYVaL=OTJ=*>`t!g2`Kz$}=kECA z$umKA$A2g1*IMnbP(nV->W#m=^#&)8e#E}4SQy0$W8d*`J|{dVr64Ip1ewd|n{_gJlVYm2%3z_NvRVY?C+6(})rT{vY4o~On#}7%8k_9v| z6Lw=yR}6p}Gu|9>Nm*6si=iTTbEdg2J^>{&DSt(H`_>kd<&-@*{qgeuJJ6&r#(RI< zuUPs*d3w0OP&AcI*D<>z7!k>XCug`jo{pw)G!9I4>3BqPh(=@pOB;uwqh2mW_vE|B zPnTCEU}B7Y&(s=%QQi6Xw+~k-`sXMKiZb>+rb_c=q0Oxlxs1E1u^l#x4{%?)9!`>E zB!42pX6P|d+#OS;dZoo8h9Jvv06bp!glA%|N!bh?&6D%PgcTz-sVy)yGLm8F@XPo! z9}xM%2b5BX3=UI8O-TtnV(|nX^nIauFwG4$h2(kMFQ;Wq)Gs?&N@0q5v9%@$LT2Kg zh=5t4WnCu1mc5mkWF~^3rZlgMXAptp`G5T?OWb|wxa#HJTXp>{s36o<*>3vfhgjb8 zjY=s6RiV~KUyKZ%`+%BDTtskpiY^~XxDc7Nd~ttkPFIu!$R$3-Oy8~ljikFx&wdd2 rBf#1Ttj&!8YbUTaHv+7kz}ox-8jnhNTbea(00000NkvXXu0mjfs{A2N 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 index a52290d62fb6caf6df98e0b610cba3183a161402..2e1801c38b9551decb99fe6984ca0de7a4c1df97 100644 GIT binary patch delta 748 zcmbQv@tt*oc)bG$8v_Hws?5TBK#H+A$lZxy-8q?;3=B*gJzX3_D(1YM?w@zdL8N`Z zi^d^Ar7|UsH%cL15e*5f*5@wd_FvFWxvRY8`U^>=t=(&aHZo4)Sg9=(&ezwYh~!SAUzyo$opRx%%_J8`dcW-=01$-d)&L|Np?-_w_Sh&Tsdg^;K%|YfXkm z`N9xAp&x<_?oX8%;?M7Uo3b}~@|!f@8SUQ6b#i))E2gaCsftaWaG*cJMZ50qk7t&< z_nu9WI$)Q2z7(kDR6F~d_fKa670WFMIJ3DUOlOg3Ytp@n!)B9D&obCG@6k>^AvS|# z3rY27HxA{h@NApu!(T7(@ppBlpVsj$(#sjXM9Z@6&2vgwIAeLh8RiWgVflxcjd&UM z%(1btTl?X?JkXBI+ng27Mt^8HBhVpyzvt7#M$fjhRcBioJAB$3Dh_R%oXPO;&m*Dp zr9h`HQ>s{(e2n|(9z(ZXDtX4%^X=*@roH*My+=Rypx8XQ>D9k0f6uBnyJr)V_s9C+ z6NdApKF8$0?D`Ttx8+0KYUkaBS-&pj&a{6~>bqYhVCTG$K4E>J^#7OyG0XF%FSc6& z-Q*MV`#b*>{>Pk3ZjdBiU3*(~~JYkodZo0HS$>EP};cp}L+z-B!gbz-zi9BEWA*TIvw>N|E;kU;a z51+gtarPYNw~Aku*57jTZ<*}gbaD1->&-W}-ms{f{dJb5=gl1*Jbya8R{qMe`Jg=c z#ih>k-!}M8=Kj->wwLXQTSMtvakuNiO!i4fOeS8P{Z(rFyEA`8YX5({JmpaN`~H=w zQ&t`5nZ0^<`1jjEYQ-DGIA+MtnGyLY&c^xI_3$%umaO=?Ln8c0^}5ZXYyl#!fdtUg b|Bv~PtUb@*D9GUtOwJ6Ru6{1-oD!M<`Ltuz delta 1039 zcmV+q1n~R!1(yhr7k?lK1^@s6qMd$(000BtNkl8t`5QV>)S@QnEu`DsGwq;%2OLAu>1*z-Ah%CT>MHe~^0S+X^|958D!D}S_QNk8ltSLYY~ZD+iA z@#5C=?*n>=U5YJ8g5CZtnTd#znJC7xS)*cP25&Ae$f%eVBAucwC!6m9PA4M2N_>)l zpH6=~?S>thVAfEqK}0Y$BAtD|WAO2EOIfg4K1Q|Bl$IJjuipO&u)T*kJ{zAT;J4Sm zUnYsE(l$#(lz)f-Q9LRh0{|k*qxC5uL{t>Ry=SN$K!0_9kzYQP&%<3MVC%&rRE%Lb z;64CBrlUHR!lGGItl?_^H;4X;2*_wSNeLM;+~=s2Gt!*X>xeYXG*- z&+a;BHk6NFOdb2CYq!g045E5ZWF;dJRo2VLRPPXLD1b*rfJjGBHtQ#&9eE1q_W9X0 zaCvop;Wva_onOSgMEMDn?Js9pec)vC9q;z9>4qJ}7MQg(*0MXiBQh{86l)0y$i$;Z zrQqI^B!4Ca3?lq!FV^BdTzEK})nl%^OPZg*!J}f<^5oYa-~-vSKpR`)UU~WU4>E#c zOCV8%wk)UAhw2>>frvmRf>Nvj5h8-YyGbYLs1wB4EWVlgMRK`&IqqM^{Y?ue>!)+Z z4uBr|E6fT_v!ZR5s48X+NwVuMsXpLQ0j5zX(|-gA2JeX+vsjRibV6{oe?y%br)fjm ztd9FfR9?ORYqr2|pdhH&=$zQt@WdFrBhtxCOpQgeMNlFf5yivDF_(#m&@{`j0fwWZ zxcAf?i4#%UW&v>23Dvu!h?*0nZ5DXcv8$_*5o3*NAv0;LC2;!T`Z)U|9aWvkDPuO& z4u2ITGVt_C2P8!sBAuc3s3;&uoe(j54@5o2u5D`c!yZvN&iR{QK~OV>sp0+Go{T}L zDAjvZ{%5_&m=#kgeb5o}3q)1MIo~#`@r8^xT7AIOrgW~Dwq(Zf=VurWnA%tt8Dn;g zJA7DgHp%BnIg)@J*B5JN41I*Q&5G4x%YR|GCZgir6C}%aOHR+#V$0wiwRRl3_XNRa zbwV;q;ifFde*+&F{4lNGj3rbS|FPF;|3}+zr|g;+k~x1G&WW#9qTUxC2$D% JPDHLkV1n**?s)(J 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 index 666fda641b0fbed9f4bfb695979c5db616fcb9a2..e8f51ca9db8c61162706e1cf62250cccd14d83c7 100644 GIT binary patch delta 747 zcmVPx%ut`KgRCt{2m%ne? zKorM6iAe%hBwH9Hir5lD7BVO zcN}gcPc5i@pT+k5@_paC_wMe10=~Te^m2A}&iwI#cof@mlYgW%dl9pnIRI0$qUE13 zH7fvG{s{o@1|JTJ{;^9AiyD|Dwc<^Z0uZ)Cy8Vtd$keR3Uo81PPi#N;eV-{bfa_&H z@GwbARIPDzyu>7_6%SCal(}ClxnC@)SITxZ>@%gJ2D6(ve&8Wtz$j)i9B;L8g}X=? z>@$T15b;OHOMe=TQ=)2($#Bf&b&KbxG7Rplr|Xq6z^lgCR|-P_$UF}`Kb4t3K46m6 zzPlli=bu;sCP`rw6IE+A88&;74FeIG_qwcxeW%a>!tLM=Kkx|Kq1_Suz_a!BO4%AC zza{Q72cP>NUnIM~mht6XaE0gV<=gG=KJ&&iNxJiMf`82ce&E@R-|cs}yl!m?zr1d7 zc6Dyc^6%2V+wa(NNucs7PF9w$D^T)-)XSK%V?cJE zh=c6pn146;E-8s%*!HX+c=&bAnr+@8`z8yP9^*p-lA0Ph%%* z#jfMG*^8_vW#S@oYF32p@VEM@S=mIFPkfW%cr zzA5}lTkOs~_sqQW^{(8%f1k7P@XkE}+&ibfo*51eYXi-Kq<=tXinrjcGyAZj{j+B{ zhBO0hguIy;4!zks*zeA|XWoAi&~xmP)|GHr{XP%|nuYK{Dkbk!NCjcS(Ls-Q zf!09`LYgPm?|uMqZ6xxY#2X3t>bDj4)SI~RPf$G9B&=(1SsvW_Hhj=SX-*Y7KWWT zK(}|W9~TnMTj0DFNX>g0Z4!3u_$ml5B`;YCbE=(;t|`mME&cO>7-VdPRLFv77ZAr= z<2(WeTR4&g$%3sM5VTgHkYP(hR7h)y;W$9zUwbD2XMYaBcLC=S;8F>;7?2u7%O{3l zID#}E+hXO&>1L>kz56Sut|kB;-nn<)J(D57{^j%4PdBn=`QpD()lP;0Upn3e zLQVzd3mk}NzVMETn41bE}#$Z+*<%I_YU^$l#soHeZSan{}1`&!M9;c zWBvAw<$td&!%HE}18pF0WQLbcSfGs(z2kk9me4>lgel>HHbQh!>^fG%JmJg0J7;#Y z=!E{TYz%Fn+Rp5J{b14+sd+QuZE*NwOAL_arMD$3=}JOsAYeE)ymv%}a3Be~mOvrQ z8IFuFM!O?*qPbBcV~s6->4~8P9}YT8%s+d7%754a(C&GU&Xj5cs;!JxLTVr^XrHuW z1_6S+m5UCj1VXSABl=SMn)NlEkO&J_k6V0IHlQ|;x6-Tkd+Qv1|MZQ{T?7;YNkO%p zAqBPyq)yl(h@oUxvQuBHMja5KfwxZBsSZ%m6-BdRZ5fERu<}fls!1DV4qEG@PViSE zYJW=Pw2_FF)BoL%nG?MAvdTP2>q>OaaA-&t!h{$=vXsm>N(_OWly!+K-i_x2(p-ri zd=W@uB=J;DPCf(C=s~K4Hi`bwfzf$^a3=;JDUyO=5hdulWHZc(-atT-U<-$FI3iN) z1E9t3T?trHjOQnb`9Dxmu!WJg%Ffoh?0<1v2HK?J_{z|E0t+NZ(E-P!y-GwMWmr0bE9}@97O;A5 zcyFxT%HTn@t>n#wuL5fWJ1OU@s|pBtGZ%a7cqnA(AQP^OzptbxFld|2d2h93nIV00000NkvXXu0mjfRP6?M 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 deleted file mode 100644 index 483ed1c8a1d8549bf36e047a678ffec11305d373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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(} 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 index 4aae2b682e34e193880ab5e7f523e8ac7cdbcea5..b7ab57d3696a43793c24097cd974ce18fd5d82b7 100644 GIT binary patch delta 732 zcmV<20wewB2j>Nl7k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px%p-DtRRCt{2mp^OU zKp2Og6c1T0gJT&JLBR$?))LSZXR(*yv4c0e^hFN?lAfON= z+k>@aO9%75J}U)H#ZGyjMbh2rbieoCo%Sf<)0ZDF(fKJ4(|<>v?(eic&l1{EhuioD zfaN^p;IPheo&s=iSO?(h``5j)Z)}ryWdrgoQSo_}0MKZ*=ne;JkmWojpDjp!PxU?j zewQgVfbV4&gydPm`{N^m`aXGX@3NW_@KVe$ytl&{1kxxs7H4=*bwPzRa~tKKt5Z%i3lh)0HB`F(q|r~ zkK|dR_kIc#c?%IxngUYzvg0EyhV7`MX&@qtDIk%s>y#QmxW2f=1tE=QOLqhpgxc?F zRW(L&OWbAlK7Ri8BGvtG6<_WJUwE-!p8fazYteXlmVa#hoS-$p1))~_?r=bV)Y}l= zAN7dNPqnRhFXOwzfwoHlmFvk_YvbeH;ozSOETiIrkp8GgmOg7}< z9#1wro~6&gdW-bul*3eU&f<2u4Jxo+JgmGKk0%71x*)^_A=ej|0Gh)xUX13~1i!!do}c@EG;N!Ave0DuOBd^l zbwNlw>Zm9E)8O^RCChnAquF}ZznrI9=!%8UkFaf1StMZf0oFQcK<44ilU@nj4R?@ z5blHl48t%C!!QiPFbu;m48t%C!!QiPFbu;m48t%C!!QiPFbu=^|M&y%`pDT*xFrq% O0000490)9XWs1Q9|%zj zNaO+sBzoW@^qco1aOW5ai6BvE)NZo-j%^Mzo3=t}q#p9-u#dD_?OHQqKc0DP%gdK9 zxew>hFZA@;nR_OyIx)8y4@cBcK+OnuJc9MnitTPo3rE!`Du1X}-u(Ic?E32R?R{sw zdiCnw^B)8Hkln061~<1G0uVJa6H%dvAu2#}{q7BsiHbr7s)e)lF(UkQ{`}&ha~8uV z9sB0X;~#eO4gj%&jm(<}8OajEWHa9nzDv?2WV4`>gnf(4Jk$ff|dYiYA4Mb59JRHcb1LPp1ktn9h>@$)d z*uw$t6~L!}hX`mYMhxXgw0|;atx-fkgvdZtQBlMyWPh-ox0HGW!1?owhi=+p_@84# zvG>HB7BSM2a3?b$0=LR)wZ^@nqL>Eh{h6oFq*YGVr?@vn_!+SCZ!cbx{BeDCx!V(R zeRbI$E71E;zJKvcdN`-Yr)+LE>_+B_3dJhhwj}^nr6jm$7eQ}`${;3DQ!ETeND#gBLUfA!t30J0Q|e)R$Oc~k&_ z@oj2I_Day2k3K=WU6rZS(I>!Wd-Ku$qQ>#GUMlW8l-qfSsbN;Br4a5Q2AOQPH+VvN z7s6U9?hQsYaBuAE+n$gNXIv3(xy2)gT|e4C!+*KHeYafX11j|HZYuRo=|z?1PDGAu z8dIHsUjKU^kVGUogs@l{>jOk-nZ(cq5uuhYHy+XZ1dmSU!YE~AWo~n?^AUtQCPoOD zj;?RmNr*@kNRhkNw}lVo?B!3TYr%efbH7v8^yv1*!hR3U_P)-~-avJ{`=0%bL^6AJ zM}Nllxv3wqh;eFCUTSGEt=)3e{#%UHfV1&S#i&QxpvV`S7v77@kilV6VCWH9@D zXWtJ=(BFC{c=jxd2rkmakuIK@(84KZiv_-i7OhNWV!PXomUkvInWhy0lND+`!ds&? zXE&z8lhsMLmqN8dc*C1B&s%Z~M*#KC?pK5d-Wr~8vO0beH$a|(6HDUB&gqYZ0|84r zurv+?EbYM3I1sS3154vTz|syZjROHoJFqkk1T5{q(l`*Xv;#}yKY<()wM^w|Qvd(} M07*qoM6N<$f`+2uod5s; diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/strength.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/strength.png index d415ecb93a95ea6a512de38f33d14222950fa872..4e15f439cf2f034475403e252167ba64f250605e 100644 GIT binary patch delta 686 zcmV;f0#W_F2e}217k@wq1^@s6s%dfF00001b5ch_0Itp)=>Px%b4f%&RCt{2m%pmp zFcikWTxYl$F9wyAh75PeVn{Oh4Z7dG;CIQp82S*Udxy|E0dFNkxFMGcJSRgpRvtl1Av@=V#oac?Mic)Vi?kl?GI@hJP-l?Q{m-y_FJ>Ism-+ zfKk^w`sA+5pwh77D=lr2T0^Cob;#)qJih>6zPfRKeaLh=!2imzY8*02fcr;O+KC5% z*;MM!FH$$FVaSZT40Kr_R)7hE7zOHM-m>w9`t-4SBt`e#$;jBraFGNT_KaWmQdj~O3rp}z32-~9K-`(^07O80+G zusI-BF5{~-L$uhmghz`FqIqW9!n(0nscSb0)F#r0r+?PVRhs=%aeu=&Rw54917bAW zn@M``zJ8PR0FxK;))&Y1001^Om}k~Uu~X{zXNKEpAB^l#7c!w}p4o|2TE3D$QM;T2 zfngY^RL%`1qyT5*j~&17Hv~qv@7c{4?8mHW16&Mal2}IpE;$12{&1Wh`~KacZwK7z zt%%?6+<#Fk^tCcgTZx9%2wa%TiASKm!fZ<3g}Y$mn-MY(7F2^>^-7y#()zDv?ms$X#Y1Nns!qH&c+wz z_wRSWa#dizlQTlBhT#B02qAXZ&(;maHru0*RHyBH{rMQh*@x2FCO1J zK0SGP)qgzu&94sN13<6glS~vG%9{dKlXpM`pDL(;fxR4Yi{#ybPT|fc3}yKGX#XJH zd@BDB8Gr$PO1u9czw`4)HaEn91Y`lLJ7x~&1xBw4M;G{fL;&v%`TY#LXAig{eVJTW z|C>i%eE90tfPcU4H^?V4dwvYKf_4$Cn@2H55O<8&bw17D#1ZKP9~^N*L|z@Ao|F%l z(z{_}3*^#qboUuMiYWMKcro0;4P2ttb*4xLe?8*!5ej&55HN!-bw6&bIluX&-Ua{J zgCg>l(c|Dt>@I+$`t0DN<4BzSev_wwi2QlOIlLFHJAZ_|h(K{rMTopGhrYHxEcsA| z;C&7<6#$O*4<gU_aP>6`rU1%SKXVU`g_Yz(=BXb9a?d@v*l4k3rN zOGF^u3VtZVBcMBc`1n^<{rTw+C-X%?o<0A5bLcdH9NxznK<-Z9Rgd*m!!u|X+Aj{S zwdV^l6Muv%fuRDDszMZ^P1byZ8|ZHJ3Fjb_SYJBj_?IFr3!qFCcd!?I=y(is5WyxX z^uC_;82MERMUWh^i-QjYO@fbrY9wdX z)n(8f4gD`f>z9y2rM{oT6?)};A%_66GCfOv@R%!&kr%t_7d0DO4K#5e3t}F89Ro4- zbT%9`;HdSNLE0>FXGFkj>D>@h3Jk2Pc4QA?+c$Gmv~$8 zlz)GDzcDo0)nO8%E}7LdSC*F@=`@C%R(@dB|3>(L>X|m)U*luAvhoqRsQ>_=GEL}A z@r$_X`UqG(^MLGh$WFp~gC6WG__S9GHcK$A*Wv+usP9j!$Le&&k8Awx{86-k_(u># zOSHd_HpaF9tpjL{Z2?*b&>GtUv<{#(wk-u{9YAYr3(z`%*4P%HbpWlgEkNr4TH|jD WKe&1YFr;$;0000Px%^+`lQRCt{2m%mFJ zQ5?WO(c~hDrAxFv0yh{)OOXtv;9x+s9ZL5s9i8$&xU~O;Q^qciErCMO!DPtLp^`!g zO@@=>kO(4CAs00r;(K0B;ii&UzMtj&yu0u3_bx^RE45$4t$)=8S|=CO+LvbDcRV&X za_sH50q8e7Bv+Q{H#-0%SC#>2eRvy-`o<)giQ3>ho>AU+JOGNh6y;LE7^L6qFmPSY zza5z8g8gYG(f~m(TeiY?Jo1?|DjvgkJfl27BAaF4x(r;GL^f-pVVa3YZP?pyW7!Im z1}G|x?%1B7;(tMO8cZ{h2GGi@cnq~PPd<~T(&)0iwura7zz!HsC$d?92aPeUM5X{h z>*N9e?`lZvGVFC74bx7f0W>?ihgi0v zm`j-x!LpTEPh_*k7~vyvnu+B5$Gxi|fT<1UosI6u)49~WcZQGCNf3uS;bG*>N~3E+wOlGt zX>^USI)8liF<5DIO?}Yo0N(ArL67(L+thCN1dTIk;#y%C_pD_rEL*X&dkA21IKMhF zh&EcVCIr{R&joWo7)_IAMhn`j){U^b)%m-*ku#puf@>xF%?`y}>fU<4*)fGKT=;?! zHfd((pBF#AdG~_jjG|YqbDS9o>E6tdo&)D}z<-~g4*h0_qf2ma=I|Yl*{4rffAx&x zjKVn`aD8^p@2@{Nx`gYqb5gHgQp}}rZ|3M#>-Wa7WP*OP!`Z=?Pm?r297g%6&usmJ z15iVajZHY;&g&NLuEW8zKe*nj)~UT;qgSnyTv^7l)uXs42!bF8f*=TjAP9mW2!bF8 vf+`>gf*=TjAP9mW2!bF8f*=Tj@c8%(5cJuS4$br^00000NkvXXu0mjfAdrsr delta 842 zcmV-Q1GW6S2Gj6LyBY*h$<@3{iFFU&GH+FY- zul)V{fWO9`F|k=&0uCh}oE+=U2uc5@eeQGonhA7!>V1}kaVRJL6XR~iQ@nK?l z4UqbR5+z#^BVM7Wz}uLhi*7AU^{ zseegT{pk0yQ4plx%cd>!yB6-_cM%HU5ZJ*YYZZTj=Dx?SH)0X2P@)-{;xkl)OtdIg zHdfl4W3*3b?mvQ0@6r|s&j^j$OS|VMjz#64pu|C=9mqRk-iKPywei};KH=2XJK!0Y z_n$*~a(^!zm%{T1>)Kqr>ZT~E$7lp|(b*$n^gU4&Y`obgWWWN1FPm2Xnu#k#T~m%&W-4}X_r`Ae!I|ZB!v@^)IKD| z14Af7X|WO@wF9ZK5+Jn$sj(6uwF9ZK5+Jn$sj(6uwF9ZK5+Jn$sj(6uwF9Z~5B5?H Uz7rK>sQ>@~07*qoM6N<$f=d^R{{R30 diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/turtle_master.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/turtle_master.png deleted file mode 100644 index 06db257b8012dabef08b167d592427b1002c4ebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1027 zcmV+e1pNDnP)?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 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 index 768cbf24cf7ed72d5dd0eaa971ca51129c924808..3ad30a05bfb6173c82390b1f62e7c09990a20c3a 100644 GIT binary patch delta 740 zcmVPx%sYygZRCt{2m%nb> zKpe+ENf@%686XfvwU7$QMkIzzFtPxTkr(LFr|1iG$rE%>hOUk}RO&#M3WZ9D4o(b% z?IlZ;4({(byOlgukm~nYe7-v$_x;`P&#^}d?>>Ee84S*uEq@<)Ts+wRG)ZZ9JIwFy z0f@th>hTeA7y(c{J_6wC^8H@fZ)}tOvI%LDTJdR;0?=qR8IAkaAaNM6TCSOY{cgW= z+q+Du0o+qIo*_+A&ip3T!voSJwc-KlevQ>~&1$)(?$@k0>@tX1d6-{4=4?RG)Z9rvEQ`Gu-)z0Fc6W&5D-t;bxI8&++5#cJVT?^v=za4 z#*Wwhnl(nTBp=1x3*dImNn(p^(7Q^hrl<#ZcVV6%D1PBRFm)>TL2K0z?Gn-%wU1xkL9 zaamI;27hGt3As5I4Zck(A{g=~YdnMT3^&)e05*mPel}l>=H>)r=_n|;~n z&)E;VSu6H;{IfZqAMmo*Tc3=B@QFn-42i$0XDT?nBUzK zhY@q~*}dKE@aP%q+TT8Zv8C|M*;^W|CM>dbi(T)#QYI^~5eV2nH~=j2@8TKKZ=Yc2 z z%H5-eHVYoXpDtcd+{q}_jdiDddVd4b{_5<(qkI!$uEP%+a1ww1#rf3)K&y#$mr1HL zs#J5neKj%cD}O@JMdrhI)^sVcX&Q#f_~TzLf%KD`5OQ69(11(%>6admHF456s0h`J zBrsNESByXqQ9e4`pc0H$Nl6(>WjhuiUYtLBTyIFvf6ZG`Q;yz0?ztQb+i@ak!U&9@ zNrG8$_o!u+zNv;D47xF;s-4iP0(nWEDgNBN!$_ zfK|>6wLm~tMMNkbfdB0VbX=Ra6~QqlWh|903rUnDN;P;jO{|-_ChV)xWI+*{l&BWG zEF-5~3&7cfNB#d^%JulSBXFqLhwFOp&N>m%GVCkGjQ|qD2b(q9z0o%UZDyPd2#Oh5 zln;+KY=8F#(*6c$&p!L@bE1BJ{_OGgwIS!v9*;LC^*;+ zBvv`I=`$~P1#_p%iRwXdM}ameNrlM*2->VnHJGfD4s$}+=Gi!Netf#(>&uZLCfdlX za^`f^@Vh6U%8~}?NtY?^JpJnh7C|Q&CrAlSR)2}EnNP{K6sj2t1RyH(O(H2&bGG}6 zxsybR2yzzgpR}}D34$-a+s@CY!3p|S`Q-hhCA9;P|9&;nsF1Yfw9i~kPA`gi@YTi0 zWX@!Us&KOI81{2Va}TcemFfXN5?FVceQ^M)16e$w zsDJ(*sz4*komE3pWvrE)g{x^67ZEfm^X^eclDWktg}pfzfkz-BZ2FcaDU%sF2}7yu zi$OpV;kcX2%Km$E!fP{^ByakLQk@sWL{15pU|*dsEAGL%%a{c(hItNf0*imm0k3Pr zb}S@SES!3%8D_z%OH6gnmZXXRrP{o&`hU{;(PEB>(B{OpPKQ1|x3q|$T7b+cyt6W& zZ=LH_#GD~29I~e%A|w$c_~-tl^ZI1-7uUo7<>iAWRd&TVT{i%JWzI)J6QHDKugmgXPkBN9b?rhLQs00000NkvXXu0mjf#ZW;J diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/weakness.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/weakness.png index 46223dc9264877e66b40a8b40f5c2ec326b8e686..a4ad39a4cc3aad7a276135ffe7c8fa8c9b1fc890 100644 GIT binary patch delta 717 zcmeC-xWPI>yxxI>je&t-Rc7HmAjMc5-(UAJbN%@B_H?m8$0!d z40`+H8r=zKLvhTgQf{}!b43ay`(Gs*P(_V3@Ux5uV&@jj@!X)c#J zsqovvlbM_SW~GGLI9$DQLnYhnk7m@n~j1c z7?u8QiF|JJLWm`n!L9zW;$O#n_mrzwR?L!On4R)hPiesghK8?ylD9l~r>Nv>bh|8A z;e2&R!y%Cght!+qFJgV`cY4{ulNSvQ_jodPwrmQ{U`Q-7J!&r3n|5~|$G(qmDz08x zbNsV=(oD-8KWaYeT>YCb8h@)v+s0n+{k!k)jPv)Hocvbjzrpl?`MkA1{?P}ImNszxb$macTW8TDX`rGL$y+v5>bmmB?bSAA*fx*v z@XfyC^6`4Eo7#3Si&^$5`&s|x+JMIEXAfVSooKOn;Vt9vm^O83{Fyee|w*@iRXi+7qHls#Yn{MkNf-`~#y%zpj; zb}sLl=xgczvgN6^FYmFbhX(_r>e%V6H)Q+6y`x`zYCYe(p*FZP+#48^8%&u#q$OYf zJp1iLv-@k`z4ha^|CE#Q|If$Ma;@|2=3UIV_IB6L@0(;Mix#jn{cTp>@m@&s(tEp9 vKexCkJ>7+_d-C@LNjLOfrL delta 1027 zcmV+e1pNEh1&j!g7k?lK1^@s6qMd$(000BiNklA;w5XFBpyZ1qTS+bE* z=?DY}l15$r|5kkfb}j-0isD!w3Y)quOBs`Oops^aea_2C0%MvMV>qltmH7v}))CL&)YzDdB< z)lcs>!xn%LB2A2_3Lz+F#(LP2bH?3iW5dbuF(CwEjHH~oxxEEAd4YR;H@->0_4V&} zz*Ox9RWLI|gnwd2&IR`xKRZ1|U>Xr6=fZZ(0OM+P?Jsbb@4|B<5RMlMRF&EF?a29<_jFJ0?2iC)Yxl>9ZsN!w_H~;@Nz8}vKkjI=+(W$Dn-Gc@kaCcHJ2to*f zF(pLU$4e;yPYU2`z;gsxP$id4(13^{qL>@wI1*z(M1ROr#Z?5AfVr_52KufCV7a_{ z?wr{W|NCH4?44@2eb)j`N_ncNqf!Mgqntqy;Hq=7=cZ1XYfYs(=Fg^YQ+R?}re$cyl)2%_qe5W+12% zL!|3ka?U_CHxG|%N-;{Q)$ZDMYHPvVNjYOyH-DUn(8NfwGR2L%hevX*qY*;*;`^l( zZf^gc>)v~)2&jhY>O{yn6I7>)8c^GN(RYYI+4+ECm>KQ>Lf1B^))7#tK47N{A~g&C4jvyfMeC{pej>)*LUTs-^*tm zQFY-}5FnzYoaws`m@4K*N_Fm4bW-hzJD+?&O8dB(?@8HJHs>l5tEl z@vANT;?TZrIbQT^hJoURG_AFx#R7n%MSRCmzaXVVN{P)-*W%ep{g2c4EnVA?OP=O> z#NAo+mC&}`#j7TylyGw{&d;z{&;jxq+Hg+1T8sKpI1n&*0(0X)z}yMUjROI5Cone- x1k9bl+&B<0cLH Date: Fri, 6 Sep 2024 12:40:44 -0400 Subject: [PATCH 67/76] Translations for new potion tank types --- gm4_potion_liquids/translations.csv | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gm4_potion_liquids/translations.csv b/gm4_potion_liquids/translations.csv index d4fa763656..156a63cf5e 100644 --- a/gm4_potion_liquids/translations.csv +++ b/gm4_potion_liquids/translations.csv @@ -34,3 +34,10 @@ text.gm4.guidebook.module_desc.potion_liquids,Adds the ability to store potions text.gm4.guidebook.potion_liquids.description,"Potions can be stored in liquid tanks; extended potions count as a three potions.\n\nPotions can be taken out by putting a bottle in the tank, but tanks will not output extended potions." text.gm4.guidebook.potion_liquids.mob_effects_and_shulkers,Mobs under a potion tank will gain the potion effect from that tank.\n\nShulkers on an empty or levitation potion tank will fill it with Levitation potion liquid. text.gm4.guidebook.potion_liquids.witches,"Witches on an empty tank will fill it with Regeneration, Fire Resistance, Speed, or Instant Damage potion liquid.\n\nThey will also fill pre-existing potion tanks with those four potions." +container.gm4.liquid_tank.awkward,Awkward Potion Tank +container.gm4.liquid_tank.infested,Infested Potion Tank +container.gm4.liquid_tank.mundane,Mundane Potion Tank +container.gm4.liquid_tank.oozing,Oozing Potion Tank +container.gm4.liquid_tank.thick,Thick Potion Tank +container.gm4.liquid_tank.weaving,Weaving Potion Tank +container.gm4.liquid_tank.wind_charged,Wind Charged Potion Tank From cb181e3b6d6e7039c675ade7785b9c7d3bbcaea6 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 13:11:58 -0400 Subject: [PATCH 68/76] Fix '0' duration instant potions --- gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt index 430d377db7..36fe7e74d5 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt +++ b/gm4_potion_liquids/data/gm4_potion_liquids/modules/main.bolt @@ -70,7 +70,7 @@ with open("gm4_potion_liquids/potion_definitions.csv", "r") as csvfile: inline_predicate["predicate"]["effects"][e] = {} m, s = row["effect_duration"].split(":") - duration = int(m)*60 + round(float(s)) + duration = max(int(m)*60 + round(float(s)), 1) execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] unless predicate inline_predicate From df5967e5afc51462506e2235c7254e8e7cd081ff Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 13:25:46 -0400 Subject: [PATCH 69/76] Translation tag for lightning tanks --- gm4_lightning_in_a_bottle/assets/translations.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gm4_lightning_in_a_bottle/assets/translations.csv b/gm4_lightning_in_a_bottle/assets/translations.csv index 82e721b98d..9d725929d0 100644 --- a/gm4_lightning_in_a_bottle/assets/translations.csv +++ b/gm4_lightning_in_a_bottle/assets/translations.csv @@ -3,7 +3,7 @@ advancement.gm4.lightning_in_a_bottle.lightning_drink.description,Drink a Bottle advancement.gm4.lightning_in_a_bottle.lightning_drink.title,Shocking! advancement.gm4.lightning_in_a_bottle.lightning_shulker.description,Strike a Purpur Block with lightning to create a Shulker advancement.gm4.lightning_in_a_bottle.lightning_shulker.title,It's Alive! -container.gm4.liquid_tank.lightning,Lightning Tank +container.gm4.liquid_tank.liab_lightning,Lightning Tank effect.gm4.lightning_in_a_bottle.lightning,Lightning item.gm4.bottle.effect.lightning,Bottle of Lightning item.gm4.lingering_bottle.effect.lightning,Lingering Bottle of Lightning From c540b3904ef323da6bab86ae2a597fcf28bc1719 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sat, 7 Sep 2024 23:11:19 -0400 Subject: [PATCH 70/76] Cleanup and bug fixes --- .../modules/liquid_tanks/liquid_features.bolt | 13 ++++++++----- .../gm4_liquid_tanks/tags/function/item_drain.json | 5 ----- .../gm4_liquid_tanks/tags/function/item_fill.json | 5 ----- .../tags/function/remove_liquid_tags.json | 5 ----- .../gm4_liquid_tanks/tags/function/tank_init.json | 5 ----- .../gm4_liquid_tanks/tags/function/util_below.json | 5 ----- .../gm4_liquid_tanks/modules/liquid_wrappers.bolt | 1 - .../loot_table/floating_potion.json | 6 +++--- .../loot_table/lingering_floating_potion.json | 6 +++--- .../loot_table/splash_floating_potion.json | 6 +++--- .../data/gm4_washing_tanks/function/wash.mcfunction | 2 ++ .../data/gm4_washing_tanks/tags/item/armour.json | 1 + 12 files changed, 20 insertions(+), 40 deletions(-) delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_drain.json delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_fill.json delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/tank_init.json delete mode 100644 gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/util_below.json diff --git a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt index a22f052876..99007f40b2 100644 --- a/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt +++ b/gm4_lightning_in_a_bottle/data/gm4_lightning_in_a_bottle/modules/liquid_tanks/liquid_features.bolt @@ -15,8 +15,11 @@ class BottledLightning: @liquid.util_below def lightning_strike(): - execute unless entity @s[predicate=gm4_lightning_in_a_bottle:on_fire] run function gm4_lightning_in_a_bottle:liquid_tanks/util/lightning: - execute at @s run summon lightning_bolt ~ ~ ~ - scoreboard players remove @e[type=armor_stand,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 - playsound entity.firework_rocket.twinkle block @a[distance=..8] ~ ~ ~ 2 1.5 - advancement grant @s only gm4:lightning_in_a_bottle_drink + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + unless entity @s[predicate=gm4_lightning_in_a_bottle:on_fire] + run function gm4_lightning_in_a_bottle:liquid_tanks/util/lightning: + execute at @s run summon lightning_bolt ~ ~ ~ + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.firework_rocket.twinkle block @a[distance=..8] ~ ~ ~ 2 1.5 + advancement grant @s only gm4:lightning_in_a_bottle_drink diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_drain.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_drain.json deleted file mode 100644 index 426040887e..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_drain.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/item_drain" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_fill.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_fill.json deleted file mode 100644 index a4f3df6a97..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/item_fill.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/item_fill" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json deleted file mode 100644 index 66814f37b2..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/remove_liquid_tags.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/remove_liquid_tags" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/tank_init.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/tank_init.json deleted file mode 100644 index a16cbd3e3a..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/tank_init.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/tank_init" - ] -} diff --git a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/util_below.json b/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/util_below.json deleted file mode 100644 index cfc90890f7..0000000000 --- a/gm4_lightning_in_a_bottle/data/gm4_liquid_tanks/tags/function/util_below.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "values": [ - "gm4_lightning_in_a_bottle:liquid_tanks/util_below" - ] -} diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt index c45f3bc593..04fb5c504f 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/modules/liquid_wrappers.bolt @@ -113,7 +113,6 @@ class Liquid: @staticmethod def _default_set_output(item:str): item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with item - pass def item_fill(self, input: str, output: str, value: int, reversable: bool = True, ignore_standard_units: bool = False): diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json index b4a03ca63b..3912309868 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json +++ b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/floating_potion.json @@ -31,9 +31,9 @@ "function": "set_name", "name": { "translate": "item.gm4.floating_potion", - "fallback": "Potion of Floating", - "italic": false - } + "fallback": "Potion of Floating" + }, + "target": "item_name" } ] } diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json index 84dd67c2f0..2e51c92e86 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json +++ b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/lingering_floating_potion.json @@ -32,9 +32,9 @@ "function": "set_name", "name": { "translate": "item.gm4.lingering_floating_potion", - "fallback": "Lingering Potion of Floating", - "italic": false - } + "fallback": "Lingering Potion of Floating" + }, + "target": "item_name" }, { "function": "minecraft:set_lore", diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json index d75f170881..2a8a31cb9d 100644 --- a/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json +++ b/gm4_potion_liquids/data/gm4_potion_liquids/loot_table/splash_floating_potion.json @@ -31,9 +31,9 @@ "function": "set_name", "name": { "translate": "item.gm4.splash_floating_potion", - "fallback": "Splash Potion of Floating", - "italic": false - } + "fallback": "Splash Potion of Floating" + }, + "target": "item_name" } ] } diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction index 1edb910e33..4663b8de68 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction +++ b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction @@ -14,12 +14,14 @@ conversions = { for from_id, to_id in conversions.items(): execute if items block ~ ~ ~ container.0 f"#gm4_washing_tanks:{from_id}" run function f"gm4_washing_tanks:washing_recipes/{from_id}": scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand from block ~ ~ ~ container.0 item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_item", "item":f"minecraft:{to_id}"} function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill execute if items block ~ ~ ~ container.0 #gm4_washing_tanks:armour[dyed_color] run function gm4_washing_tanks:washing_recipes/armour: scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand from block ~ ~ ~ container.0 item modify entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand {"function":"minecraft:set_components", "components":{"!minecraft:dyed_color":{}}} function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json index b4d980c6b8..8b0e6a0e1f 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json +++ b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/armour.json @@ -4,6 +4,7 @@ "minecraft:leather_leggings", "minecraft:leather_chestplate", "minecraft:leather_helmet", + "minecraft:leather_horse_armor", "minecraft:wolf_armor" ] } From 5ac40c6cc70bfaa22fa03df7b0364e44d50f554a Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 23 Sep 2024 22:20:51 -0400 Subject: [PATCH 71/76] Create bolt-docs.md --- gm4_liquid_tanks/bolt-docs.md | 91 +++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 gm4_liquid_tanks/bolt-docs.md diff --git a/gm4_liquid_tanks/bolt-docs.md b/gm4_liquid_tanks/bolt-docs.md new file mode 100644 index 0000000000..a56eb67c1b --- /dev/null +++ b/gm4_liquid_tanks/bolt-docs.md @@ -0,0 +1,91 @@ +# Liquid Tanks Bolt Wrappers +Liquid tanks has a bolt-powered interface to define the myriad of liquid types and items that interact with them, without needing to create lots of redundant function files directly. + +This interface is an *experimental* design, and so maybe not recommended to be replicated for other modules without careful thought. + +# Prereqs +- Add `bolt` to the beet.yaml requirements +- Add `gm4_liquid_tanks.bolt_liquid_wrappers` to the beet.yaml pipeline +- Configure a beet entrypoint; typically: +``` +meta: + bolt: + entrypoint: + - gm4_potion_liquids:main +``` + +# Basic Usage +Liquids are defined through a class definitions, typically done in a `main.bolt` file, located in `data/gm4_module_namespace/modules/main.bolt`. At the start of the file, import the wrapper with `from gm4_liquid_tanks:liquid_wrappers import liquid` + +Each liquid type is a class, defined with the `@liquid` decorator, with 4 class attributes. + - `id`: internal id of the liquid + - `name`: display name in the hopper ie "Water" becomes "Water Tank" + - `capacity`: maximum fluid units the tank holds + - `skin`: (optional) resource location for the liquid's skin texture. If omitted, defaults to `liquids/id` + +Additional behavior is added by calling or defining methods within the class. + +## Tank Init +The default tank init function is created by calling `liquid.init()`. Additional commands can be appended to the end of the init function by decorating a method: +```py +@liquid.init() +def arbitrary_fcn_name(): + say additional commands done here! + advancement grant @a[distance=..2] gm4:blood_tank +``` + +## Item Fill/Drain +Each item that a tank fills or drains is registered by calling `liquid.item_fill` or `liquid.item_drain`. Most items that can be both filled or drained (like a bucket or bottle) only need to call `item_fill`, which also in turn defines its `item_drain` reverse direction. + +An item that only is fillable (like adding water to concrete powder) can be created with `item_fill(reversible=False)`. +Similarly, an item that is only drainable (like enchanted pages) can be created with `item_drain` directly. + +The arguments of the method define the two items and the amount of liquid imparted to/from the tank by that item. These items are defined by their item stack component test. e.g. `paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]` + +```py +liquid.item_fill('bucket', 'water_bucket', 3) +liquid.item_fill('glass_bottle', 'minecraft:potion[potion_contents={potion:"water"}]', 1) +liquid.item_drain('paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]', 'paper', 5) +``` + +If the output item requires additional data to be set after being processed by the liquid tank, or if any additional commands are present at the end of the item process file (for advancements for example), then the decorator approach is required. The first set of commands placed before a `yield` is called at the step where the final item data is applied to the `weapon.mainhand` of the forceload armorstand (UUID=`344d47-4-4-4-f04ce104d`), generally following the form: +`loot replace entity 344d47-4-4-4-f04ce104d weapon.mainhand loot gm4_standard_liquids:ink_bottle`. The second set of commands after a `yield` generates at the end of the function. + +```py +@liquid.item_fill('glass_bottle', 'experience_bottle', 9) + def experience_bottle(): + item replace entity 344d47-4-4-4-f04ce104d weapon.mainhand with minecraft:experience_bottle + yield + execute if score $smart_success gm4_lt_value matches 1 run advancement grant @a[distance=..4,gamemode=!spectator] only gm4:standard_liquids +``` + +## Util Below +Some basic util-below functionality is available for liquids that have a "dispense" function. Other util-below functionality should be added directly through the creation of the usual function files. + +This set of commands is called on tanks of the matching type, and run as provided by a decorated method. +```py +@liquid.util_below + def dispense_ink(): + execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:blindness'}]}] run function gm4_standard_liquids:util/liquid_dispensing/ink +``` + +# Advanced Usage +## Standard Units +Liquid containers that are commonly used by many items can easily be defined as a "Standard Unit", which will reuse function files wherever possible. Glass bottles and buckets are examples of this. + +A defined standard unit acts in place of the normal `liquid.item_fill` method, with all set arguments already bound. + +```py +bottle = liquid.standard_unit('glass_bottle', 1) + +liquid.item_fill('glass_bottle', 'honey_bottle', 1) # then becomes +bottle('honey_bottle') +``` + +Standard units take an optional `f_name` string parameter that allows the actual function name to be defined, which may prevent collisions when more than one standard unit uses the same item type. + +## Naming Schemes +By default, function files are names according to a preset number of schemes, usually by the item name or potion type if available. Additioinal schemes can be registered to the wrapper via its `schemes` attribute. This functionality is not used yet in the codebase, so please refer to the source code for mode details. + +## Partially Bound Liquid Defaults +Liquids with commonly repeated properties (mainly liquid value) can be made with a new instance of the "Liquid" object, replacing the usage of the included `liquid` instance. From 213aa304163f7a847282d405587cd28991703a29 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 30 Sep 2024 13:52:06 -0400 Subject: [PATCH 72/76] Add ominous bottles to standard liquids --- gm4/skin_cache.json | 11 ++++++ .../gm4_standard_liquids/modules/main.bolt | 34 +++++++++++++++++- .../skins/liquids/ominous_bottle.png | Bin 0 -> 308 bytes 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ominous_bottle.png diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index 2c7e900093..5402274966 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -1033,6 +1033,17 @@ "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjc2ZTI2ZmRmZGU4YmY5ZjY0MWM0YjdlZDViNmY3NjNhZmFiZDM5OGIzZjc5MjRhOTViYzA4YjM4N2FhM2MxJ319fQ==", "hash": "4a3fbe092f343e239311835b44cadd819686e558", "parent_module": "gm4_potion_liquids" + }, + "gm4_standard_liquids:liquids/ominous_bottle": { + "uuid": [ + -1607256772, + -1802877405, + -1710626675, + 1156078594 + ], + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2FmMGRkOGVmZmZjZjRhNWQ5ZGQ0NWFkYjkwYmZhYmE4MWIxODg0ZjEyNGNmNTIxODFiMzJmNTc0MTU4MWYzMyd9fX0=", + "hash": "723eccaa1ce2eef198fe21d2765e1a5c6ccc7695", + "parent_module": "gm4_liquid_tanks" } }, "nonnative_references": { diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt index 572075045c..d94e1f0967 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt @@ -1,3 +1,4 @@ +import re from gm4_liquid_tanks:liquid_wrappers import liquid bucket = liquid.standard_unit('bucket', 3) @@ -129,5 +130,36 @@ class GlowInk: @liquid.util_below def dispense_ink(): execute as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:glowing'}]}] run function gm4_standard_liquids:util/liquid_dispensing/glow_ink - + +# tell bolt how to name different ominous bottles - they have the same item id so this is a special case +def omnious_naming_scheme(input_name: str, output_name: str) -> str | bool: + m = re.match(r'ominous_bottle\[ominous_bottle_amplifier=(\d+)\]', output_name) + if m: + return f"ominous_bottle_{m.group(1)}" + return False +liquid.naming_schemes.schemes.insert(0, omnious_naming_scheme) + +for lvl, numeral_lvl in zip((0,1,2,3,4), ("I", "II", "III", "IV", "V")): + @liquid + class OminousBottle: + id = f'ominous_bottle_{lvl}' + name = 'Ominous' + capacity = 300 + skin = 'liquids/ominous_bottle' + + liquid.init() + bottle(f"ominous_bottle[ominous_bottle_amplifier={lvl}]") + + @liquid.util_below + def dispense_omen(): + execute + as @e[team=!invalid_team,type=!armor_stand,tag=!smithed.strict,limit=1,dx=0] + unless entity @s[gamemode=spectator] + if entity @s[nbt=!{active_effects:[{id:'minecraft:bad_omen'}]}] + run function f"gm4_standard_liquids:util/liquid_dispensing/ominous_bottle_{lvl}": + effect give @s bad_omen 120000 (0+lvl) + scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 + playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 + + diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ominous_bottle.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/ominous_bottle.png new file mode 100644 index 0000000000000000000000000000000000000000..1746e8dee2c88a3a73964cf5bf2ca96438527ff2 GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85qP=L734qNaX`i@T8}UV@O5Z+i8wmhYT1FtlIyX|CiO@=JUb) zH+{oh+LDAMUZyVPUi>z%r?A>a-%?($XI}9xIZ4~}Z~qSE%v*aSS(o)d6j#I6oI0*E z5zqc#)7((4lVEzFXFs1o^p#upKd$Aknr`N}W+_92H{%Ae+J=|D1-)CV4;)&5pWTk@ x1OFEG1gHTb4B46t*Mb8zWFYJi?%@O1TaS?83{1OTtKY})_; literal 0 HcmV?d00001 From 6eabf6ad5beae718f9295ecaf6915060fe982668 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 7 Oct 2024 21:29:27 -0400 Subject: [PATCH 73/76] complete ominous bottle tanks --- gm4_liquid_tanks/assets/translations.csv | 5 +++++ gm4_liquid_tanks/bolt-docs.md | 2 +- gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gm4_liquid_tanks/assets/translations.csv b/gm4_liquid_tanks/assets/translations.csv index ef0eec7990..717c7f0f89 100644 --- a/gm4_liquid_tanks/assets/translations.csv +++ b/gm4_liquid_tanks/assets/translations.csv @@ -30,3 +30,8 @@ text.gm4.guidebook.standard_liquids.rabbit_stew_and_beetroot_soup,"Rabbit Stew T text.gm4.guidebook.standard_liquids.mushroom_stew_and_milk,Mushroom Stew Tank\n- Drains mushroom stew\n- Fills bowls\n- Milks mooshrooms\n- Feeds drinkers\n\nMilk Tank\n- Drains milk buckets\n- Fills buckets\n- Milks cows\n- Clear mob effects text.gm4.guidebook.standard_liquids.honey,"Honey Tanks\n- Drains honey bottles, honey blocks\n- Fills bottles\n- Casts honey blocks into cauldrons\n- Clears mob poison\n- Feeds drinkers" text.gm4.guidebook.standard_liquids.experience,"Experience Tanks\n- Drains bottles o' enchanting, enchanted books\n- Fills bottles\n- Absorbs experience orbs, experience points\n- Fills experience points" +container.gm4.liquid_tank.ominous_bottle_0,Ominous I Tank +container.gm4.liquid_tank.ominous_bottle_1,Ominous II Tank +container.gm4.liquid_tank.ominous_bottle_2,Ominous III Tank +container.gm4.liquid_tank.ominous_bottle_3,Ominous IV Tank +container.gm4.liquid_tank.ominous_bottle_4,Ominous V Tank diff --git a/gm4_liquid_tanks/bolt-docs.md b/gm4_liquid_tanks/bolt-docs.md index a56eb67c1b..292974b3ec 100644 --- a/gm4_liquid_tanks/bolt-docs.md +++ b/gm4_liquid_tanks/bolt-docs.md @@ -85,7 +85,7 @@ bottle('honey_bottle') Standard units take an optional `f_name` string parameter that allows the actual function name to be defined, which may prevent collisions when more than one standard unit uses the same item type. ## Naming Schemes -By default, function files are names according to a preset number of schemes, usually by the item name or potion type if available. Additioinal schemes can be registered to the wrapper via its `schemes` attribute. This functionality is not used yet in the codebase, so please refer to the source code for mode details. +By default, function files are names according to a preset number of schemes, usually by the item name or potion type if available. Additioinal schemes can be registered to the wrapper via its `schemes` attribute. This functionality is not used yet in the codebase, so please refer to the source code for more details. ## Partially Bound Liquid Defaults Liquids with commonly repeated properties (mainly liquid value) can be made with a new instance of the "Liquid" object, replacing the usage of the included `liquid` instance. diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt index d94e1f0967..e062a9fee7 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt @@ -143,7 +143,7 @@ for lvl, numeral_lvl in zip((0,1,2,3,4), ("I", "II", "III", "IV", "V")): @liquid class OminousBottle: id = f'ominous_bottle_{lvl}' - name = 'Ominous' + name = f'Ominous {numeral_lvl}' capacity = 300 skin = 'liquids/ominous_bottle' @@ -157,7 +157,7 @@ for lvl, numeral_lvl in zip((0,1,2,3,4), ("I", "II", "III", "IV", "V")): unless entity @s[gamemode=spectator] if entity @s[nbt=!{active_effects:[{id:'minecraft:bad_omen'}]}] run function f"gm4_standard_liquids:util/liquid_dispensing/ominous_bottle_{lvl}": - effect give @s bad_omen 120000 (0+lvl) + effect give @s bad_omen 6000 (0+lvl) scoreboard players remove @e[type=marker,tag=gm4_liquid_tank,tag=gm4_processing_tank,distance=..8] gm4_lt_value 1 playsound entity.player.swim block @a[distance=..8] ~ ~ ~ .5 1.5 From 0c5423fc85340c409e4579826a9e178f3040e937 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 23 Oct 2024 22:39:41 -0400 Subject: [PATCH 74/76] Add honey casting packtest --- .../test/honey_cast.mcfunction | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction new file mode 100644 index 0000000000..e23fd1f9cd --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction @@ -0,0 +1,21 @@ +# @template gm4_liquid_tanks:test_setup +# @dummy ~ ~1 ~ + +# create honey tank +item replace block ~1 ~3 ~1 container.0 with minecraft:honey_block +await not items block ~1 ~3 ~1 container.0 minecraft:honey_block + +# place cauldron +setblock ~2 ~3 ~1 cauldron + +# link cauldron (dummy faces cauldron) +execute at @s run tp @s ~ ~ ~ -45 -45 +await delay 1s +assert entity @e[tag=gm4_lt_util_block,type=area_effect_cloud] inside + +# check casting success +await entity @e[type=item_display,tag=gm4_lt_honey_display] inside +say started casting! +await delay 30s +say done casting +assert entity @e[type=item,nbt={Item:{id:"minecraft:honey_block"}}] inside From 92ff9d6dae4a5eb93a40c2b7324ffffb833bb4a9 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 23 Oct 2024 22:51:23 -0400 Subject: [PATCH 75/76] Use function tag for mud --- .../function/water_concrete.mcfunction | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction b/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction index 15cb2d3844..758af8cced 100644 --- a/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction +++ b/gm4_cement_mixers/data/gm4_cement_mixers/function/water_concrete.mcfunction @@ -26,9 +26,15 @@ for color in concretes_colors: function gm4_liquid_tanks:smart_item_fill tag @s add gm4_lt_fill -for variant in ("", "coarse_", "rooted_"): - execute if items block ~ ~ ~ container.0 f"minecraft:{variant}dirt" run function gm4_cement_mixers:item_fill/mud: - scoreboard players set $item_value gm4_lt_value -1 - item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand with minecraft:mud - function gm4_liquid_tanks:smart_item_fill - tag @s add gm4_lt_fill +item_tag gm4_cement_mixers:dirt { + "values": [ + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:rooted_dirt" + ] +} +execute if items block ~ ~ ~ container.0 #gm4_cement_mixers:dirt run function gm4_cement_mixers:item_fill/mud: + scoreboard players set $item_value gm4_lt_value -1 + item replace entity 00344d47-0004-0004-0004-000f04ce104d weapon.mainhand with minecraft:mud + function gm4_liquid_tanks:smart_item_fill + tag @s add gm4_lt_fill From c8a6adc8ce465141f3f9fcf23f3d5bfb63b8fd7d Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 23 Oct 2024 22:54:51 -0400 Subject: [PATCH 76/76] Resolve some PR comments --- .../data/gm4_liquid_tanks/function/item_process.mcfunction | 2 +- .../function/util/honey_casting/honey_rise.mcfunction | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction index 7c701773ca..a3aa5f4be0 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction @@ -2,7 +2,7 @@ #run from liquid_tanks:process # get stack count for smart interface -execute store result score $stack_size gm4_lt_value run data get block ~ ~ ~ Items[{Slot:0b}].count 1.0 +execute store result score $stack_size gm4_lt_value if items block ~ ~ ~ container.0 * #tank init execute if score @s[tag=gm4_lt_empty] gm4_lt_value matches 0 unless entity @s[tag=gm4_lt_fill] run function #gm4_liquid_tanks:tank_init diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction index 1e50524698..e6abe69947 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/util/honey_casting/honey_rise.mcfunction @@ -2,7 +2,7 @@ #run from standard_liquids:util/honey_casting/scheduled_honey_rise scoreboard players add @s gm4_lt_util 1 -execute if score @s gm4_lt_util matches ..12 teleport @s ~ ~0.060 ~ +execute if score @s gm4_lt_util matches ..12 run teleport @s ~ ~0.060 ~ execute unless block ~ ~ ~ #minecraft:cauldrons run kill @s