From d617f737e8af5fd866a36da14294949463b277f8 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 15 Nov 2022 18:56:52 -0500 Subject: [PATCH 01/94] 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 | 1219 ++++++++++++++++- gm4/skin_cache.json | 19 + .../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 + 15 files changed, 1231 insertions(+), 25 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 0db1332e24..24efa75d0b 100644 --- a/beet-release.yaml +++ b/beet-release.yaml @@ -75,6 +75,8 @@ pipeline: - gm4.plugins.write_mcmeta - gm4.plugins.worker.store_project + - gm4.plugins.worker.store_project + - extend: beet.yaml directory: resource_pack require: @@ -88,6 +90,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 64b18aeb80..733823f576 100644 --- a/gm4/commands.py +++ b/gm4/commands.py @@ -87,6 +87,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 3d0cd6842e..153f0b6cae 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 }, @@ -228,6 +234,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, @@ -239,6 +410,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, @@ -275,8 +449,26 @@ "gm4_trapped_signs:item/trapped_dark_oak_sign": 1, "gm4_trapped_signs:item/secret_trapped_dark_oak_sign": 2 }, - "decorated_pot": { - "gm4_blossoming_pots:guidebook_icon/blossoming_pots": 1 + "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 @@ -287,6 +479,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, @@ -304,6 +497,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, @@ -457,6 +658,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, @@ -723,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, @@ -1042,6 +1252,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 @@ -1212,45 +1428,754 @@ "oak_planks": { "gm4_desire_lines:gui/advancement/desire_lines_8000": 1 }, - "oak_sapling": { - "gm4_apple_trees:item/apple_tree_sapling": 4 + "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 }, - "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 + "enchanted_book": { + "gm4_enchantment_extractors:gui/advancement/enchantment_extractors_mending": 1, + "gm4_book_binders:gui/advancement/book_binders_bind": 2 }, - "obsidian": { - "gm4_metallurgy:item/slightly_damaged_obsidian": 1 + "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 }, - "orange_concrete_powder": { - "gm4_zauber_cauldrons:block/liquid_magicol/orange": 300 + "end_portal_frame": { + "gm4_teleportation_anchors:block/teleportation_anchor": 1 }, - "oxidized_cut_copper": { - "gm4_tinkering_compressors:block/tinkering_compressor_plate": 1 + "end_rod": { + "gm4_teleportation_anchors:gui/advancement/teleportation_jammer": 1 }, - "paper": { - "gm4_book_binders:item/enchanted_page": 1, - "gm4_book_binders:gui/advancement/book_binders_debind": 2 + "experience_bottle": { + "standard_liquids:gui/advancement/standard_liquids": 1 }, - "phantom_membrane": { - "gm4_midnight_menaces:guidebook_icon/enlarging_phantoms": 1 + "firework_rocket": { + "gm4_phantom_scarecrows:gui/advancement/phantom_scarecrows": 1 }, - "pink_concrete_powder": { - "gm4_zauber_cauldrons:block/liquid_magicol/pink": 300 + "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, @@ -1370,6 +2295,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 }, @@ -1392,6 +2320,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 }, @@ -1461,6 +2402,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, @@ -1656,6 +2657,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 505748697a..4fef7d4f0b 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -962,6 +962,25 @@ "gm4_tinkering_compressors": [ "gm4_metallurgy:band/curies_bismium" ], + "gm4_vecto_shamir": [ + "gm4_metallurgy:band/bismuth" + ], + "gm4_weighted_armour": [ + "gm4_metallurgy:band/aluminium" + ], + "gm4_zauber_liquids": [ + "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", + "gm4_potion_liquids:liquids/swiftness" + ], + "gm4_audere_shamir": [ + "gm4_metallurgy:band/barium" + ], "gm4_auto_crafting": [ "gm4_custom_crafters:custom_crafter" ] 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 007a9f506e..281c40de44 100644 --- a/gm4_ender_hoppers/beet.yaml +++ b/gm4_ender_hoppers/beet.yaml @@ -8,6 +8,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 26e44ce33a..e6d8c5f398 100644 --- a/gm4_liquid_minecarts/beet.yaml +++ b/gm4_liquid_minecarts/beet.yaml @@ -8,6 +8,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 58ab81a068..673f822681 100644 --- a/gm4_tunnel_bores/beet.yaml +++ b/gm4_tunnel_bores/beet.yaml @@ -8,6 +8,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 30a52d3475..dd366092d1 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 41abc2249cc031cf7e4603679569fc8460818f04 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 6 Mar 2024 16:18:14 -0500 Subject: [PATCH 02/94] Replace machine block Armor Stands with Display Entities --- gm4_liquid_tanks/beet.yaml | 3 +++ .../function/machine/create.mcfunction | 2 +- .../function/upgrade_paths/2.5.mcfunction | 1 + .../2.5/entity_replacement.mcfunction | 18 ++++++++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5.mcfunction create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index bc48ac0ffb..f668bbab26 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/function/machine/create.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/create.mcfunction index 4aa815a6c3..b20a0a979a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/create.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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/function/upgrade_paths/2.5.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5.mcfunction new file mode 100644 index 0000000000..ed2d478012 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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/function/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction new file mode 100644 index 0000000000..248fa11cda --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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 e0e8f6afd705899c1e0a2b1cb5e1a3acd4ae844c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 6 Mar 2024 16:46:09 -0500 Subject: [PATCH 03/94] Item display offsets --- .../function/upgrade_paths/2.5/entity_replacement.mcfunction | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction index 248fa11cda..8bf0d21584 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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 abd686cd60181329fb625eb31bcaea15920078f0 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 6 Mar 2024 23:45:28 -0500 Subject: [PATCH 04/94] Adjust liquid display teleports --- .../gm4_liquid_tanks/function/liquid_value_update.mcfunction | 4 ++-- .../function/teleport_display_down.mcfunction | 4 ++-- .../gm4_liquid_tanks/function/teleport_display_up.mcfunction | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/liquid_value_update.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/liquid_value_update.mcfunction index eea442f7b6..f052dec812 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/liquid_value_update.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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/function/teleport_display_down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_down.mcfunction index 1d62becdb5..69e14560ab 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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/function/teleport_display_up.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_up.mcfunction index 0d301d60bd..ff8a3b6d0a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/teleport_display_up.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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 c6e79d2ba78f29e512416bd4a5674c8e9242699e Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 01:52:18 -0400 Subject: [PATCH 05/94] 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 df8225f693f7839a4ff02f69bf835fe9bef083bd Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 10:59:53 -0400 Subject: [PATCH 06/94] 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 9c444afad85de600d9f9c1330e8606b96aaea758 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 11:12:04 -0400 Subject: [PATCH 07/94] 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 25fd8554bebc05624e7cad67852622c280c20b48 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 14:20:16 -0400 Subject: [PATCH 08/94] 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 50fe505a73944654318af97ae2dd33c370461d00 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 15:01:28 -0400 Subject: [PATCH 09/94] 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 a26932b0ffb5400fb4b2e25daa72d96a275599e8 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Mar 2024 18:22:37 -0400 Subject: [PATCH 10/94] 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 f0657a97e5d35d7da3ab3c6440cfd7866fea71ae Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 7 Jul 2024 02:04:44 -0400 Subject: [PATCH 11/94] 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 f668bbab26..c0ac006796 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 b556c7c10c65436fa2962db1846c249e354d88dc Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 7 Jul 2024 02:07:39 -0400 Subject: [PATCH 12/94] 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 c0ac006796..9df01e3b60 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 a10a69e9eb21db68daf44eec779ddea64b5b6da5 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 8 Jul 2024 18:28:07 -0400 Subject: [PATCH 13/94] Retire storage api for new `if items` design --- .../function/apply_output.mcfunction | 13 +++++++++++-- .../function/item_process.mcfunction | 3 +-- .../gm4_liquid_tanks/function/process.mcfunction | 8 ++++---- .../function/item_drain.mcfunction | 4 ++-- .../function/item_drain/bucket.mcfunction | 2 +- .../function/item_fill.mcfunction | 3 ++- .../function/item_fill/water_bucket.mcfunction | 2 +- .../function/tank_init.mcfunction | 4 ++-- 8 files changed, 24 insertions(+), 15 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/apply_output.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/apply_output.mcfunction index dfe1185077..4091d364de 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/apply_output.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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/function/item_process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/item_process.mcfunction index d351fa520e..9a6462203f 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 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/function/process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction index 7f42f2955d..a94ac08b11 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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/function/item_drain.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction index 49d7deac55..0596d2f131 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bucket.mcfunction index 63e230cd32..c82344a402 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bucket.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction index e2b258cef6..aff1d0919d 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/water_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bucket.mcfunction index f08c44825c..aba53f72ef 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bucket.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/tank_init.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction index 64f90d70b7..dd0b9e46f1 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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 27b40708e9c5d6f61e0207c827b55a4c2b450cf8 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 26 Mar 2024 01:43:50 -0400 Subject: [PATCH 14/94] 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 59d24b3abab258a1f4134d64387e5f025c2ad776 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 26 Mar 2024 08:32:41 -0400 Subject: [PATCH 15/94] 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 26f778e1ff444e4c36dca263839babb39e0041da Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 9 Jul 2024 23:21:39 -0400 Subject: [PATCH 16/94] 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 4b2c8f7df28919a6948c94ded6c1308e7e7dbad2 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 10 Jul 2024 23:42:43 -0400 Subject: [PATCH 17/94] Test new `if items` design api --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 2 +- .../data/gm4_standard_liquids/function/item_drain.mcfunction | 1 + .../data/gm4_standard_liquids/function/item_fill.mcfunction | 1 + .../data/gm4_standard_liquids/function/tank_init.mcfunction | 2 +- 4 files changed, 4 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 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/function/item_drain.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction index 0596d2f131..5988c52eb0 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction index aff1d0919d..03da85dc62 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/tank_init.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction index dd0b9e46f1..a169751d7b 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/function/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 59f9440c215e83ff4763f66245379d028b9ee691 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 11 Jul 2024 00:00:10 -0400 Subject: [PATCH 18/94] 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 bb28fe3700b090517795fc36a436ea833dd16ad6 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 12 Jul 2024 10:39:31 -0400 Subject: [PATCH 19/94] 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 129a6a6adf7701dcf4906ddad5b63c2fb9af6463 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 16 Jul 2024 13:48:46 -0400 Subject: [PATCH 20/94] 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 c3b4ff21a66e9dcfaad08d6db46c6e4fb4ae3c5f Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Tue, 16 Jul 2024 23:06:56 -0400 Subject: [PATCH 21/94] Test progress in game --- .../gm4_liquid_tanks/function/item_process.mcfunction | 3 --- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 9 +++++++-- .../data/gm4_standard_liquids2/modules/main.bolt | 10 ++++++---- 3 files changed, 13 insertions(+), 9 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 9a6462203f..7c701773ca 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 @@ -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_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 6c4e042d03defea7f9fb3d07c72f61228c91ba30 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 18 Jul 2024 23:38:17 -0400 Subject: [PATCH 22/94] 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 9b280a0d0a04052011a288150c09db0e0db0be19 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 19 Jul 2024 10:24:54 -0400 Subject: [PATCH 23/94] 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 023c168531f0b2e2d693dd6274e5ae46089f05dd Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 19 Jul 2024 11:13:28 -0400 Subject: [PATCH 24/94] 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 72ded30af81dce17519ca0334d46301a83dece76 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 15:57:28 -0400 Subject: [PATCH 25/94] 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 25d3984988b6d7b6117dab8a4178fb2cd0f5eeea Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 16:11:35 -0400 Subject: [PATCH 26/94] Switch to new "item_name" name format for ink bottles --- .../data/gm4_standard_liquids/loot_table/glow_ink_bottle.json | 3 ++- .../data/gm4_standard_liquids/loot_table/ink_bottle.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json index a0336936c9..943d0f496c 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/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_table/ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json index 55b057295e..a213675c11 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json @@ -34,7 +34,8 @@ "translate": "item.gm4.ink_bottle", "fallback": "Ink Bottle", "italic": false - } + }, + "target": "item_name" } ] } From 587393ecf5823c2e7e3731b7ecdc40309c750a32 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 22:26:21 -0400 Subject: [PATCH 27/94] 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 387d55aa2fd22b9de94438928f5747ae33543e67 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 22:29:01 -0400 Subject: [PATCH 28/94] 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 5cb74c3a2c94c00c31bf9ed0f11ea0a1c210fa78 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 22 Jul 2024 22:58:31 -0400 Subject: [PATCH 29/94] 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 2c0a9379a55dc1bedb4b08c508e004f20c30cbf1 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 25 Jul 2024 18:28:12 -0400 Subject: [PATCH 30/94] Apply bolt approach to standard_liquids for real --- gm4_liquid_tanks/beet.yaml | 2 +- .../function/item_drain.mcfunction | 43 ------------------- .../function/item_drain/beetroot.mcfunction | 7 --- .../function/item_drain/bottle.mcfunction | 8 ---- .../function/item_drain/bowl.mcfunction | 7 --- .../function/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 --- .../function/item_drain/ink_sac.mcfunction | 7 --- .../function/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 --- .../function/item_fill/ink_bottle.mcfunction | 9 ---- .../function/item_fill/lava_bucket.mcfunction | 7 --- .../function/item_fill/milk_bucket.mcfunction | 7 --- .../item_fill/mushroom_stew.mcfunction | 7 --- .../item_fill/powder_snow_bucket.mcfunction | 7 --- .../function/item_fill/rabbit_stew.mcfunction | 7 --- .../item_fill/water_bottle.mcfunction | 7 --- .../item_fill/water_bucket.mcfunction | 7 --- .../function/remove_liquid_tags.mcfunction | 14 ------ .../function/tank_init.mcfunction | 42 ------------------ .../modules/main.bolt | 0 28 files changed, 1 insertion(+), 286 deletions(-) delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/beetroot.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bowl.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_book.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_page.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/experience_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/honey_block.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/ink_sac.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/beetroot_soup.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/experience_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_ink_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_item_frame.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/honey_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/ink_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/lava_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/milk_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/mushroom_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/powder_snow_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/rabbit_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bottle.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bucket.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/remove_liquid_tags.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/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 9df01e3b60..f40fe81097 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/function/item_drain.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain.mcfunction deleted file mode 100644 index 5988c52eb0..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/beetroot.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/beetroot.mcfunction deleted file mode 100644 index e0ebf8e3c1..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bottle.mcfunction deleted file mode 100644 index 1c893fe96e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/bowl.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bowl.mcfunction deleted file mode 100644 index f460f24b46..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/bucket.mcfunction deleted file mode 100644 index c82344a402..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/enchanted_book.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_book.mcfunction deleted file mode 100644 index c841460e7d..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/enchanted_page.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/enchanted_page.mcfunction deleted file mode 100644 index 2fd2b5def5..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/experience_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/experience_bottle.mcfunction deleted file mode 100644 index 9a2ae56114..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/honey_block.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/honey_block.mcfunction deleted file mode 100644 index 1f37c8a6c8..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_drain/ink_sac.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_drain/ink_sac.mcfunction deleted file mode 100644 index e0ebf8e3c1..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill.mcfunction deleted file mode 100644 index 03da85dc62..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/beetroot_soup.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/beetroot_soup.mcfunction deleted file mode 100644 index 65ade0d437..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/experience_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/experience_bottle.mcfunction deleted file mode 100644 index b90d5227b9..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/glow_ink_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_ink_bottle.mcfunction deleted file mode 100644 index 7f45fe3a89..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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] equipment.mainhand -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/function/item_fill/glow_item_frame.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/glow_item_frame.mcfunction deleted file mode 100644 index a5bf654abd..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/honey_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/honey_bottle.mcfunction deleted file mode 100644 index ebeddc6d71..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/ink_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/ink_bottle.mcfunction deleted file mode 100644 index 0b6c3c6487..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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] equipment.mainhand -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/function/item_fill/lava_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/lava_bucket.mcfunction deleted file mode 100644 index 5f2b34d94b..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/milk_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/milk_bucket.mcfunction deleted file mode 100644 index e15ab15d8e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/mushroom_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/mushroom_stew.mcfunction deleted file mode 100644 index fd456515c6..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/powder_snow_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/powder_snow_bucket.mcfunction deleted file mode 100644 index 7180be3b72..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/rabbit_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/rabbit_stew.mcfunction deleted file mode 100644 index 3e6fd9dbab..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/water_bottle.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bottle.mcfunction deleted file mode 100644 index dd8ff5c751..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/item_fill/water_bucket.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/item_fill/water_bucket.mcfunction deleted file mode 100644 index aba53f72ef..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/remove_liquid_tags.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/remove_liquid_tags.mcfunction deleted file mode 100644 index 3f835f0154..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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/function/tank_init.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/tank_init.mcfunction deleted file mode 100644 index a169751d7b..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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 beda1883b55484a1adf0da16b89d6b252ff99e0c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 25 Jul 2024 22:58:52 -0400 Subject: [PATCH 31/94] 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 9f696856e28910772f91e3ab451d6edf3e1e0886 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sat, 3 Aug 2024 23:49:35 -0400 Subject: [PATCH 32/94] 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 f3b1e33f67..ee6be514b0 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 da3b8747c435d16c5055a594544bcda57f2e97c5 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 4 Aug 2024 13:55:12 -0400 Subject: [PATCH 33/94] Accelerating level deposit --- .../function/machine/destroy.mcfunction | 5 +++-- .../util/experience/deposit_one_level.mcfunction | 10 +++++++--- .../util/experience/scheduled_deposit.mcfunction | 3 +++ 3 files changed, 13 insertions(+), 5 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 2682c46f32..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,8 +4,9 @@ # 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.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] kill @s 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 a9a8764ea87c3d20c52d4a3f7ff2f4511f34cc5f Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 4 Aug 2024 18:12:16 -0400 Subject: [PATCH 34/94] 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 a268bf29397492b700a3c1fe9ca1824c9dd545c8 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 4 Aug 2024 18:37:48 -0400 Subject: [PATCH 35/94] 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 b66ad24aa8..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]},equipment:{head:{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 c76ebc311d4c4b36863ecec665c9721b9e5a5c81 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 5 Aug 2024 22:17:09 -0400 Subject: [PATCH 36/94] 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 9718b5a63082d064f065b8a7b1987350cb09552d Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 5 Aug 2024 23:20:50 -0400 Subject: [PATCH 37/94] 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 fa28967f9f..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":{"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 67b9e9353e096ef62e8fe0b043486af319ac8df1 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 8 Aug 2024 14:52:44 -0400 Subject: [PATCH 38/94] 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 3d4463e2f456a29c595c98698055893559ff0ec0 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 8 Aug 2024 15:05:48 -0400 Subject: [PATCH 39/94] 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 f0b752a1ae..0e27bd8ad8 100644 --- a/gm4_potion_liquids/beet.yaml +++ b/gm4_potion_liquids/beet.yaml @@ -5,11 +5,19 @@ version: 1.8.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 a3d8d8fd00d8ba326f4cec333c7666751b58b5e1 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sat, 10 Aug 2024 20:41:41 -0400 Subject: [PATCH 40/94] 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 cb2c3a7b22c165ab3216822860928cf397800d88 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 11 Aug 2024 17:49:11 -0400 Subject: [PATCH 41/94] 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 13182d647b0a07a7d09559110738f40033e2e55a Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 14 Aug 2024 20:15:19 -0400 Subject: [PATCH 42/94] 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 0de84bc651f29912f2035151bc66dc0a66d5ea3d Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 14 Aug 2024 23:31:50 -0400 Subject: [PATCH 43/94] [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 f2cfec39998a117373a9685695f343cc10331a16 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 15 Aug 2024 15:10:47 -0400 Subject: [PATCH 44/94] 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 804e4d5c7271b55c3189e8f7bdbc05784fd8f739 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 16 Aug 2024 15:20:09 -0400 Subject: [PATCH 45/94] 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 dee8a6ae77dba390758f25c50d2ccc266b6e2fac Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 18 Aug 2024 23:16:29 -0400 Subject: [PATCH 46/94] 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 a4057ad9b994d0a3d64d5273c9e7724126eb5bb4 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 22 Aug 2024 06:51:47 -0400 Subject: [PATCH 47/94] [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 24abcb6083a1ce9cadb244f3a80970884ccc9871 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 22 Aug 2024 13:47:31 -0400 Subject: [PATCH 48/94] [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 af714cfbe295bfabeaff1fc05d81e9dfbda51ff2 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 28 Aug 2024 09:39:43 -0400 Subject: [PATCH 49/94] [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 e500fedc41023cb5e61834e75e9321af7e4b5962 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 28 Aug 2024 10:29:03 -0400 Subject: [PATCH 50/94] 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 ae0d8fd56a604e7d662ffc35cfb520226346307e Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 28 Aug 2024 12:28:42 -0400 Subject: [PATCH 51/94] 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 930d163e6aab095795099805f8f466df94b73294 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 30 Aug 2024 13:56:22 -0400 Subject: [PATCH 52/94] 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 d782a3f2cf050e46747a3c9f9018f6e30d836212 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 30 Aug 2024 14:36:15 -0400 Subject: [PATCH 53/94] 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 7af5a11cf50d563e6b8385f07aba090490c0bd20 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 30 Aug 2024 14:43:01 -0400 Subject: [PATCH 54/94] 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 c8dea32b18859af4856c65c5b19c576ca2e53c55 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 4 Sep 2024 13:45:28 -0400 Subject: [PATCH 55/94] 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 ba86815e2f..76f6dd1cc8 100644 --- a/gm4_cement_mixers/beet.yaml +++ b/gm4_cement_mixers/beet.yaml @@ -5,6 +5,9 @@ version: 1.5.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 80013775c9227c7f56156dfefa0e23a8dd5557bf Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 5 Sep 2024 13:06:23 -0400 Subject: [PATCH 56/94] 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 d453e4129b..1d066c9a04 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 21341ffc02..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] equipment.mainhand -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 df67666c5a..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,equipment:{head:{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 07b4febb6dd5a057fde86f7f469476472ca9707b Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Thu, 5 Sep 2024 13:31:30 -0400 Subject: [PATCH 57/94] Washing tanks to new LT api --- gm4_washing_tanks/beet.yaml | 3 ++ .../function/item_fill.mcfunction | 2 +- .../function/wash.mcfunction | 34 +++++++++++-------- .../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(+), 170 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 9b6ec6335d..b9d31b853c 100644 --- a/gm4_washing_tanks/beet.yaml +++ b/gm4_washing_tanks/beet.yaml @@ -5,6 +5,9 @@ version: 1.5.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 ef3446d6bf..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,19 +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 equipment.offhand merge value {id:"minecraft:stick",count:1} -data modify entity @s equipment.offhand.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:harness as @e[type=marker,tag=gm4_liquid_tank,distance=..0.6,limit=1] run function gm4_washing_tanks:washing_recipes/harness -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 remove entity @s equipment.offhand +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 83c5a3201eccc5aa0b9fb4b31d41ad174545b825 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 11:15:57 -0400 Subject: [PATCH 58/94] 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 59/94] 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 4fef7d4f0b..c5af664918 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 9d756378670397828f68a994eb843e654462c259 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 11:37:18 -0400 Subject: [PATCH 60/94] 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 c5af664918..f56d545ce8 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 0df5b11e9fbbaebfea1f2212f0a19dfc481b504f Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:14:12 -0400 Subject: [PATCH 61/94] 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 6da74357c9b117d87a4f018381dd3915ae10d1b8 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:24:43 -0400 Subject: [PATCH 62/94] 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 54f2d32773..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] equipment.mainhand -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 ddb7b790c9..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,equipment:{head:{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 57c317529c..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,equipment:{head:{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 206418dbed..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,equipment:{head:{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 94902013dd..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,equipment:{head:{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 5de9eedef9..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,equipment:{head:{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 1020cfd2a1..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,equipment:{head:{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 135de042e6..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,equipment:{head:{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 169890f9b3..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,equipment:{head:{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 4f99429767..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,equipment:{head:{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 be30cd9288..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,equipment:{head:{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 d182fe38eb..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,equipment:{head:{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 dbafc2f081..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,equipment:{head:{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 449ac43b8b..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,equipment:{head:{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 4147d3f69b..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,equipment:{head:{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 f03be675f3..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,equipment:{head:{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 30f72ae990..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,equipment:{head:{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 851f205884..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,equipment:{head:{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 a96a98b874..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,equipment:{head:{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 56c1994117..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,equipment:{head:{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 7722a8619b..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,equipment:{head:{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 9c4663eb71..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,equipment:{head:{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 4b25789c18..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,equipment:{head:{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 729e818d3e..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,equipment:{head:{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 aab3abe139..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,equipment:{head:{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 f299052c61..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,equipment:{head:{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 5c08172b06..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,equipment:{head:{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 1a2bcf3dd5b32c2a7f1a4e7a6222496a83128fdf Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:25:49 -0400 Subject: [PATCH 63/94] 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 30dae4fc04..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 ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},CustomName:"gm4_pl_random_witch_init",Tags:["gm4_pl_random_witch_init","gm4_lt_random_regeneration"]} -summon area_effect_cloud ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},CustomName:"gm4_pl_random_witch_init",Tags:["gm4_pl_random_witch_init","gm4_lt_random_swiftness"]} -summon area_effect_cloud ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},CustomName:"gm4_pl_random_witch_init",Tags:["gm4_pl_random_witch_init","gm4_lt_random_fire_resistance"]} -summon area_effect_cloud ~ ~ ~ {Radius:0.0f,custom_particle:{type:"minecraft:block",block_state:"minecraft:air"},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 e134a2cf7db36eeb815d9c1126f52615ca902e84 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 12:38:25 -0400 Subject: [PATCH 64/94] 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 f56d545ce8..038f63ff83 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 65/94] 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 f76b0d281d1636fa0070278216af7815eceacf1b Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 13:11:58 -0400 Subject: [PATCH 66/94] 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 44759c4e82c2dd18f1aff3558942d77d6b23e60e Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 6 Sep 2024 13:25:46 -0400 Subject: [PATCH 67/94] 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 652c76965e3d7dfa252b34b27c895a9e846d8f99 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sat, 7 Sep 2024 23:11:19 -0400 Subject: [PATCH 68/94] 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 351b4385e6..e3757ba24d 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 @@ -36,9 +36,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 a39fa2f0cfc815d2153cdc6fa2308b2482382760 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 23 Sep 2024 22:20:51 -0400 Subject: [PATCH 69/94] 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 20a07c13b27ebb1957036fce99f00a60e4927869 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 30 Sep 2024 13:52:06 -0400 Subject: [PATCH 70/94] 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 038f63ff83..a05879a171 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 669b9c5ef12298a1154cb4db9c58793eea55c462 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 7 Oct 2024 21:29:27 -0400 Subject: [PATCH 71/94] 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 50d500b6a0ff8b0d0f0ccc87c4debc9a8e02605a Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 23 Oct 2024 22:39:41 -0400 Subject: [PATCH 72/94] 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 3f916fbac5731331819315f074216cff5ad9d45e Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 23 Oct 2024 22:51:23 -0400 Subject: [PATCH 73/94] 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 b9d3e626b49f3f66b0d5702ae7fdfa86fecae748 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 23 Oct 2024 22:54:51 -0400 Subject: [PATCH 74/94] 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 From dc8e2b70c40a50634f4a1a1f3f79cadaf2143891 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 30 Jul 2025 08:01:02 -0400 Subject: [PATCH 75/94] Cleanup rebase errors --- beet-release.yaml | 4 ---- gm4/commands.py | 2 -- .../block/enchantment_extractor_bottom.png | Bin 3184 -> 0 bytes .../block/enchantment_extractor_front.png | Bin 3225 -> 0 bytes .../block/enchantment_extractor_side.png | Bin 3232 -> 0 bytes .../block/enchantment_extractor_side_front.png | Bin 572 -> 0 bytes .../textures/block/enchantment_extractor_top.png | Bin 2984 -> 0 bytes .../block/enchantment_extractor_top_out.png | Bin 3021 -> 0 bytes .../gui/container/enchantment_extractor.png | Bin 4657 -> 0 bytes 9 files changed, 6 deletions(-) delete mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_bottom.png delete mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_front.png delete mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_side.png delete mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_side_front.png delete mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_top.png delete mode 100644 gm4_book_binders/assets/gm4_book_binders/textures/block/enchantment_extractor_top_out.png delete 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 24efa75d0b..0db1332e24 100644 --- a/beet-release.yaml +++ b/beet-release.yaml @@ -75,8 +75,6 @@ pipeline: - gm4.plugins.write_mcmeta - gm4.plugins.worker.store_project - - gm4.plugins.worker.store_project - - extend: beet.yaml directory: resource_pack require: @@ -90,8 +88,6 @@ 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 733823f576..64b18aeb80 100644 --- a/gm4/commands.py +++ b/gm4/commands.py @@ -87,8 +87,6 @@ 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_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 deleted file mode 100644 index 869e547308fb55d855b1c91c0a17a1afc11b5831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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; From f00793100304f82f707468d44a560a3b857bb66c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 17 Aug 2025 16:19:50 -0400 Subject: [PATCH 76/94] Cleanup rebase errors 2 --- .../function/liquid_init/beetroot_soup.mcfunction | 6 ------ .../function/liquid_init/experience.mcfunction | 6 ------ .../function/liquid_init/glow_ink.mcfunction | 6 ------ .../function/liquid_init/honey.mcfunction | 6 ------ .../function/liquid_init/ink.mcfunction | 6 ------ .../function/liquid_init/lava.mcfunction | 6 ------ .../function/liquid_init/milk.mcfunction | 6 ------ .../function/liquid_init/mushroom_stew.mcfunction | 6 ------ .../function/liquid_init/powder_snow.mcfunction | 6 ------ .../function/liquid_init/rabbit_stew.mcfunction | 6 ------ .../function/liquid_init/water.mcfunction | 6 ------ 11 files changed, 66 deletions(-) delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/beetroot_soup.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/experience.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/glow_ink.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/honey.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/ink.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/lava.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/milk.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/mushroom_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/powder_snow.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/rabbit_stew.mcfunction delete mode 100644 gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/water.mcfunction diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/beetroot_soup.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/beetroot_soup.mcfunction deleted file mode 100644 index 451cf81476..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/experience.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/experience.mcfunction deleted file mode 100644 index 30b5c758df..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/glow_ink.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/glow_ink.mcfunction deleted file mode 100644 index 0db200893e..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/honey.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/honey.mcfunction deleted file mode 100644 index 0f20035460..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/ink.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/ink.mcfunction deleted file mode 100644 index 375ac63752..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/lava.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/lava.mcfunction deleted file mode 100644 index 32710e966b..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/milk.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/milk.mcfunction deleted file mode 100644 index 4fa78ee487..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/mushroom_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/mushroom_stew.mcfunction deleted file mode 100644 index 258e3de03d..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/powder_snow.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/powder_snow.mcfunction deleted file mode 100644 index 94a21f64a4..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/rabbit_stew.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/rabbit_stew.mcfunction deleted file mode 100644 index 8bf5afe15a..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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/function/liquid_init/water.mcfunction b/gm4_liquid_tanks/data/gm4_standard_liquids/function/liquid_init/water.mcfunction deleted file mode 100644 index 341586d6ee..0000000000 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/function/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:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{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 From ed089754e61d95a2288c94e75a7b58a09e93ee59 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 17 Aug 2025 16:21:26 -0400 Subject: [PATCH 77/94] Retrieve lists of unstackable items from mcmeta --- .../modules/liquid_wrappers.bolt | 4 +-- gm4_liquid_tanks/mcmeta_stacksize.py | 30 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 gm4_liquid_tanks/mcmeta_stacksize.py 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 04fb5c504f..5fd86898e9 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 @@ -8,8 +8,8 @@ from bolt.contrib.defer import Defer 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 - +from gm4_liquid_tanks.mcmeta_stacksize import retrieve_stacksizes +unstackables, stackable_16, _ = retrieve_stacksizes(ctx.cache, "1.21.8") # function that generates no mcfunction def emptyfunc(): diff --git a/gm4_liquid_tanks/mcmeta_stacksize.py b/gm4_liquid_tanks/mcmeta_stacksize.py new file mode 100644 index 0000000000..4a6b5b3efb --- /dev/null +++ b/gm4_liquid_tanks/mcmeta_stacksize.py @@ -0,0 +1,30 @@ +# beet plugin to generate lists of items of each stack size, using misodes mcmeta git repo + +import json +from beet import ProjectCache +from gm4.utils import add_namespace + +def retrieve_stacksizes(cache: ProjectCache, version: str) -> tuple[list[str], list[str], list[str]]: + # retrieve item_components.json + url = f"https://raw.githubusercontent.com/misode/mcmeta/refs/tags/{version}-summary/item_components/data.json" + path = cache["mcmeta_stacksize"].download(url) + with open(path) as f: + default_components = json.load(f) + + # parse components into stack size lists + unstackables: list[str] = [] + stackable_16: list[str] = [] + stackable_64: list[str] = [] + + for item_id, components in default_components.items(): + match components["minecraft:max_stack_size"]: + case 1: + unstackables.append(add_namespace(item_id, "minecraft")) + case 16: + stackable_16.append(add_namespace(item_id, "minecraft")) + case 64: + stackable_64.append(add_namespace(item_id, "minecraft")) + case _: + pass + + return unstackables, stackable_16, stackable_64 From 8d0c04d00ec4e8faba61d73baee6f6f123c4207c Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 17 Aug 2025 16:29:29 -0400 Subject: [PATCH 78/94] Update modeldata_registry from master --- gm4/modeldata_registry.json | 1235 +--------------------- gm4_liquid_tanks/bolt_liquid_wrappers.py | 1 - 2 files changed, 43 insertions(+), 1193 deletions(-) diff --git a/gm4/modeldata_registry.json b/gm4/modeldata_registry.json index 153f0b6cae..2910528ada 100644 --- a/gm4/modeldata_registry.json +++ b/gm4/modeldata_registry.json @@ -47,15 +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 }, + "azalea_leaves": { + "gm4_monsters_unbound:item/spore/default": 1 + }, "bamboo_hanging_sign": { "gm4_trapped_signs:item/secret_trapped_bamboo_hanging_sign": 1, "gm4_trapped_signs:item/trapped_bamboo_hanging_sign": 2 @@ -176,6 +173,7 @@ "gm4_animi_shamir:shamir/animi": 124 }, "chainmail_chestplate": { + "gm4_monsters_unbound:guidebook_icon/monsters_unbound": 1, "gm4_weighted_armour:shamir/helious": 103, "gm4_metallurgy:shamir/defuse": 106, "gm4_iacio_shamir:shamir/iacio": 122, @@ -195,6 +193,9 @@ "gm4_trapped_signs:item/secret_trapped_cherry_hanging_sign": 1, "gm4_trapped_signs:item/trapped_cherry_hanging_sign": 2 }, + "cherry_leaves": { + "gm4_monsters_unbound:item/spore/cherry": 1 + }, "cherry_sign": { "gm4_trapped_signs:item/trapped_cherry_sign": 1, "gm4_trapped_signs:item/secret_trapped_cherry_sign": 2 @@ -234,171 +235,6 @@ "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, @@ -410,9 +246,6 @@ "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, @@ -449,26 +282,8 @@ "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 + "decorated_pot": { + "gm4_blossoming_pots:guidebook_icon/blossoming_pots": 1 }, "deepslate_copper_ore": { "gm4_smelteries:block/ore_display/deepslate_copper_ore": 1 @@ -479,7 +294,6 @@ "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, @@ -497,14 +311,6 @@ "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, @@ -658,9 +464,6 @@ "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, @@ -783,6 +586,9 @@ "gm4_animi_shamir:shamir/animi": 124, "gm4_orb_of_ankou:guidebook_icon/orb_of_ankou": 200 }, + "flowering_azalea_leaves": { + "gm4_monsters_unbound:item/spore/flowering": 1 + }, "furnace": { "gm4_smelteries:gui/advancement/smelteries": 1, "gm4_forming_press:guidebook_icon/forming_press": 2, @@ -927,12 +733,6 @@ "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, @@ -1172,6 +972,7 @@ }, "leather_chestplate": { "gm4_combat_expanded:gui/advancement/combat_expanded_identify": 1, + "gm4_survival_refightalized:guidebook_icon/survival_refightalized": 2, "gm4_weighted_armour:shamir/helious": 103, "gm4_metallurgy:shamir/defuse": 106, "gm4_iacio_shamir:shamir/iacio": 122, @@ -1205,6 +1006,9 @@ "lime_concrete_powder": { "gm4_zauber_cauldrons:block/liquid_magicol/lime": 300 }, + "lime_glazed_terracotta": { + "gm4_monsters_unbound:item/elite_headwear/mending": 1 + }, "lingering_potion": { "gm4_midnight_menaces:guidebook_icon/illusioner_nights": 1, "gm4_lightning_in_a_bottle:item/lingering_lightning_in_a_bottle": 4, @@ -1252,12 +1056,6 @@ "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 @@ -1428,754 +1226,51 @@ "oak_planks": { "gm4_desire_lines:gui/advancement/desire_lines_8000": 1 }, - "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 + "oak_sapling": { + "gm4_apple_trees:item/apple_tree_sapling": 4 }, - "enchanted_book": { - "gm4_enchantment_extractors:gui/advancement/enchantment_extractors_mending": 1, - "gm4_book_binders:gui/advancement/book_binders_bind": 2 + "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 }, - "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 + "obsidian": { + "gm4_metallurgy:item/slightly_damaged_obsidian": 1 }, - "end_portal_frame": { - "gm4_teleportation_anchors:block/teleportation_anchor": 1 + "orange_concrete_powder": { + "gm4_zauber_cauldrons:block/liquid_magicol/orange": 300 }, - "end_rod": { - "gm4_teleportation_anchors:gui/advancement/teleportation_jammer": 1 + "oxidized_cut_copper": { + "gm4_tinkering_compressors:block/tinkering_compressor_plate": 1 }, - "experience_bottle": { - "standard_liquids:gui/advancement/standard_liquids": 1 + "packed_ice": { + "gm4_monsters_unbound:item/elite_headwear/glacial": 1 }, - "firework_rocket": { - "gm4_phantom_scarecrows:gui/advancement/phantom_scarecrows": 1 + "paper": { + "gm4_book_binders:item/enchanted_page": 1, + "gm4_book_binders:gui/advancement/book_binders_debind": 2 }, - "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 + "pearlescent_froglight": { + "gm4_monsters_unbound:item/elite_headwear/pearlescent": 1 }, - "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 + "phantom_membrane": { + "gm4_midnight_menaces:guidebook_icon/enlarging_phantoms": 1 }, - "poppy": { - "gm4_sweethearts:gui/advancement/sweethearts": 1, - "gm4_sweethearts:guidebook_icon/sweethearts": 2 + "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, @@ -2295,9 +1390,6 @@ "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 }, @@ -2320,19 +1412,6 @@ "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 }, @@ -2402,66 +1481,6 @@ "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, @@ -2657,174 +1676,6 @@ "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_liquid_tanks/bolt_liquid_wrappers.py b/gm4_liquid_tanks/bolt_liquid_wrappers.py index ac41265cbb..b16f796599 100644 --- a/gm4_liquid_tanks/bolt_liquid_wrappers.py +++ b/gm4_liquid_tanks/bolt_liquid_wrappers.py @@ -5,5 +5,4 @@ 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")) From 52791aa3b5feea9e84e775c5e532c339621969e6 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 17 Aug 2025 23:57:40 -0400 Subject: [PATCH 79/94] Cleanup rebase errors 3 --- gm4_ender_hoppers/beet.yaml | 3 --- gm4_liquid_minecarts/beet.yaml | 3 --- gm4_tunnel_bores/beet.yaml | 3 --- lib_custom_crafters/beet.yaml | 3 --- 4 files changed, 12 deletions(-) diff --git a/gm4_ender_hoppers/beet.yaml b/gm4_ender_hoppers/beet.yaml index 281c40de44..007a9f506e 100644 --- a/gm4_ender_hoppers/beet.yaml +++ b/gm4_ender_hoppers/beet.yaml @@ -8,9 +8,6 @@ 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 e6d8c5f398..26e44ce33a 100644 --- a/gm4_liquid_minecarts/beet.yaml +++ b/gm4_liquid_minecarts/beet.yaml @@ -8,9 +8,6 @@ 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 673f822681..58ab81a068 100644 --- a/gm4_tunnel_bores/beet.yaml +++ b/gm4_tunnel_bores/beet.yaml @@ -8,9 +8,6 @@ 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 dd366092d1..30a52d3475 100644 --- a/lib_custom_crafters/beet.yaml +++ b/lib_custom_crafters/beet.yaml @@ -19,9 +19,6 @@ 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 62254cd109fee5f718e0aa0bf06440c7c64aa853 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Wed, 6 Mar 2024 16:18:14 -0500 Subject: [PATCH 80/94] Replace machine block Armor Stands with Display Entities --- .../data/gm4_liquid_tanks/function/empty.mcfunction | 2 +- .../function/machine/rotate/down.mcfunction | 8 ++++---- .../function/machine/rotate/east.mcfunction | 8 ++++---- .../function/machine/rotate/north.mcfunction | 8 ++++---- .../function/machine/rotate/south.mcfunction | 9 +++++---- .../function/machine/rotate/west.mcfunction | 9 +++++---- .../upgrade_paths/2.5/entity_replacement.mcfunction | 5 ++--- 7 files changed, 25 insertions(+), 24 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction index ec6932e52a..2ab789d0b6 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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/function/machine/rotate/down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction index 967a2dfd1a..ddd400e3cf 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction @@ -4,8 +4,8 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}} +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:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}}},Rotation:[0.0f,0.0f]} -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]} +# 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]},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/function/machine/rotate/east.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction index cc5f24a308..42693f216e 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction @@ -4,8 +4,8 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}} +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:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[-90.0f,0.0f]} -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]} +# 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]},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/function/machine/rotate/north.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction index a8d02b4ac2..c460c6b587 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction @@ -4,8 +4,8 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}} +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:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[180.0f,0.0f]} -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]} +# 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]},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/function/machine/rotate/south.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction index b45d7d55c7..cff15767f7 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction @@ -4,8 +4,9 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}} +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:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[0.0f,0.0f]} -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]} +# 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]},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/function/machine/rotate/west.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction index 95736eeaf2..cc167ae012 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction @@ -4,8 +4,9 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}} +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:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}}},Rotation:[90.0f,0.0f]} -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]} +# 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]},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/function/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction index 8bf0d21584..248fa11cda 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction @@ -3,16 +3,15 @@ # 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]},item_display:head} +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 ~ ~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} +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] -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 7b64a4e54862779781268171b5e3725199065550 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 18 Aug 2025 18:46:20 -0400 Subject: [PATCH 81/94] Unencapsulate json text --- .../data/gm4_liquid_tanks/function/empty.mcfunction | 2 +- .../function/machine/rotate/down.mcfunction | 6 +++--- .../function/machine/rotate/east.mcfunction | 6 +++--- .../function/machine/rotate/north.mcfunction | 6 +++--- .../function/machine/rotate/south.mcfunction | 6 +++--- .../function/machine/rotate/west.mcfunction | 6 +++--- .../upgrade_paths/2.5/entity_replacement.mcfunction | 4 ++-- .../data/gm4_liquid_tanks/modules/liquid_wrappers.bolt | 4 ++-- .../function/util/honey_casting/honey_cauldron.mcfunction | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction index 2ab789d0b6..9b14d84013 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/empty.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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_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/function/machine/rotate/down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction index ddd400e3cf..a008bbcced 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction @@ -4,8 +4,8 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}'} +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]},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]} +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/function/machine/rotate/east.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction index 42693f216e..db381c8556 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction @@ -4,8 +4,8 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}'} +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]},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]} +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/function/machine/rotate/north.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction index c460c6b587..f04f78513a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction @@ -4,8 +4,8 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}'} +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]},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]} +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/function/machine/rotate/south.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction index cff15767f7..843701e00d 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction @@ -4,9 +4,9 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}'} +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]},item_display:'head'} +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]} +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/function/machine/rotate/west.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction index cc167ae012..09b859f2c0 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction @@ -4,9 +4,9 @@ # run from gm4_liquid_tanks:machine/create # 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"}]]}'} +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]},item_display:'head'} +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]} +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/function/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction index 248fa11cda..90b4d688ca 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction @@ -3,14 +3,14 @@ # 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]}} 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 ~ ~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] 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 5fd86898e9..c18b80ff92 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,9 +68,9 @@ class Liquid: @wraps(fcn) def wrapped_fcn(): function ~/../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":"{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"}}]]}}'} + data merge block ~ ~ ~ {CustomName:{"translate":"gm4.second","fallback":"%1$s","with":[{"translate":f"container.gm4.liquid_tank.{self.struc.id}","fallback":f"{self.struc.name} Tank"},[{"translate":"gui.gm4.liquid_tank","fallback":"","font":"gm4:container_gui","color":"white"},{"translate":f"container.gm4.liquid_tank.{self.struc.id}","fallback":f"{self.struc.name} Tank","font":"gm4:default","color":"#404040"}]]}} summon item_display ~ ~ ~: - CustomName: '"gm4_liquid_tank_liquid_display"' + CustomName: "gm4_liquid_tank_liquid_display" Tags: ["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict"] item: id: player_head 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 c51a91aafe..954a3b5f37 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 @@ -4,7 +4,7 @@ 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 item_display ~0.5 ~ ~0.5 : Tags:["gm4_lt_honey_display","gm4_no_edit"] - CustomName:'"gm4_lt_honey_display"' + CustomName:"gm4_lt_honey_display" item: id: "minecraft:honey_block" count: 1 From 0ffd8fc1986d52ce04a8ab1fcd2ba01066622dc1 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 18 Aug 2025 19:05:33 -0400 Subject: [PATCH 82/94] Migrate CustomModelData format --- .../gm4_liquid_tanks/function/machine/rotate/down.mcfunction | 2 +- .../gm4_liquid_tanks/function/machine/rotate/east.mcfunction | 2 +- .../gm4_liquid_tanks/function/machine/rotate/north.mcfunction | 2 +- .../gm4_liquid_tanks/function/machine/rotate/south.mcfunction | 2 +- .../gm4_liquid_tanks/function/machine/rotate/west.mcfunction | 2 +- .../function/upgrade_paths/2.5/entity_replacement.mcfunction | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction index a008bbcced..3d45a10f95 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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]},item_display:'head'} +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,components:{"minecraft:custom_model_data":"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/function/machine/rotate/east.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction index db381c8556..c8cefda9b3 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/east.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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]},item_display:'head'} +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,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},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/function/machine/rotate/north.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction index f04f78513a..a3df587b2d 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/north.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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]},item_display:'head'} +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,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},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/function/machine/rotate/south.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction index 843701e00d..665fb75c5d 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/south.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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]},item_display:'head'} +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,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},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/function/machine/rotate/west.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction index 09b859f2c0..3fd1b4e774 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/machine/rotate/west.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/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]},item_display:'head'} +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,components:{"minecraft:custom_model_data":"block/liquid_tank_side"}},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/function/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction index 90b4d688ca..b69fdd6932 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction @@ -3,7 +3,7 @@ # 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,components:{"minecraft:custom_model_data":"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 From 224654919c177d24891d3996f028a1a13122a066 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 24 Aug 2025 18:48:30 -0400 Subject: [PATCH 83/94] standard liquids packtest tests --- .../test/honey_cast.mcfunction | 7 ++-- .../test/lava_fuel.mcfunction | 40 +++++++++++++++++++ .../loot_table/glow_ink_bottle.json | 6 +-- .../loot_table/ink_bottle.json | 6 +-- 4 files changed, 49 insertions(+), 10 deletions(-) create mode 100644 gm4_liquid_tanks/data/gm4_liquid_tanks/test/lava_fuel.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 index e23fd1f9cd..2a8b2dac86 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/honey_cast.mcfunction @@ -1,5 +1,6 @@ # @template gm4_liquid_tanks:test_setup # @dummy ~ ~1 ~ +# @timeout 800 # create honey tank item replace block ~1 ~3 ~1 container.0 with minecraft:honey_block @@ -8,14 +9,12 @@ await not items block ~1 ~3 ~1 container.0 minecraft:honey_block # place cauldron setblock ~2 ~3 ~1 cauldron -# link cauldron (dummy faces cauldron) +# link cauldron (dummy faces tank) 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 +await delay 5s assert entity @e[type=item,nbt={Item:{id:"minecraft:honey_block"}}] inside diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/test/lava_fuel.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/lava_fuel.mcfunction new file mode 100644 index 0000000000..6c11f9e7f4 --- /dev/null +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/test/lava_fuel.mcfunction @@ -0,0 +1,40 @@ +# @template gm4_liquid_tanks:test_setup +# @dummy ~ ~1 ~ + +# create lava tank +item replace block ~1 ~3 ~1 container.0 with minecraft:lava_bucket +await not items block ~1 ~3 ~1 container.0 minecraft:lava_bucket + +# place furnace +setblock ~2 ~3 ~1 furnace + +# link furnace (dummy faces tank) +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 furnace fueling +item replace block ~2 ~3 ~1 container.0 with minecraft:raw_iron +await delay 1s +assert block ~2 ~3 ~1 minecraft:furnace[lit=true] +assert score @n[tag=gm4_liquid_tank] gm4_lt_value matches 2 + +# check we don't duplicate fuel +setblock ~2 ~3 ~1 stone +setblock ~1 ~3 ~ blast_furnace +setblock ~1 ~3 ~2 furnace +setblock ~ ~3 ~1 furnace +await entity @e[tag=gm4_lt_util_block,type=area_effect_cloud,y_rotation=90] inside +item replace block ~1 ~3 ~ container.0 with minecraft:raw_iron +item replace block ~1 ~3 ~2 container.0 with minecraft:raw_iron +item replace block ~ ~3 ~1 container.0 with minecraft:raw_iron +await delay 1s + +scoreboard objectives add gm4_test dummy +scoreboard players set $fueled gm4_test 0 +execute if block ~1 ~3 ~ minecraft:blast_furnace[lit=true] run scoreboard players add $fueled gm4_test 1 +execute if block ~1 ~3 ~2 minecraft:furnace[lit=true] run scoreboard players add $fueled gm4_test 1 +execute if block ~ ~3 ~1 minecraft:furnace[lit=true] run scoreboard players add $fueled gm4_test 1 + +assert score $fueled gm4_test matches 2 +assert score @n[tag=gm4_liquid_tank] gm4_lt_value matches 0 diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json index 943d0f496c..43738f06c7 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/glow_ink_bottle.json @@ -9,7 +9,7 @@ "name": "potion", "functions": [ { - "function": "set_components", + "function": "minecraft:set_components", "components": { "minecraft:custom_model_data": "gm4_standard_liquids:item/glow_ink_bottle", "minecraft:potion_contents": { @@ -30,11 +30,11 @@ } }, { - "function": "set_custom_data", + "function": "minecraft:set_custom_data", "tag": "{gm4_standard_liquids:{potion:'glowing'}}" }, { - "function": "set_name", + "function": "minecraft:set_name", "name": { "translate": "item.gm4.glow_ink_bottle", "fallback": "Glow Ink Bottle", diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json index a213675c11..273d925bcb 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/loot_table/ink_bottle.json @@ -9,7 +9,7 @@ "name": "potion", "functions": [ { - "function": "set_components", + "function": "minecraft:set_components", "components": { "minecraft:custom_model_data": "gm4_standard_liquids:item/ink_bottle", "minecraft:potion_contents": { @@ -25,11 +25,11 @@ } }, { - "function": "set_custom_data", + "function": "minecraft:set_custom_data", "tag": "{gm4_standard_liquids:{potion:'blindness'}}" }, { - "function": "set_name", + "function": "minecraft:set_name", "name": { "translate": "item.gm4.ink_bottle", "fallback": "Ink Bottle", From 07594f447019da9471f5084e878617979c29e7b6 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Sun, 24 Aug 2025 20:27:55 -0400 Subject: [PATCH 84/94] Update relocators code with item displays --- .../function/relocate/place_down.mcfunction | 5 +++-- .../function/relocate/restore_liquid.mcfunction | 4 ++-- .../function/relocate/set_pick_up_data.mcfunction | 13 +++++++------ .../relocate/summon_block_markers.mcfunction | 6 +++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction index 69fe4221ae..9028428a90 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/place_down.mcfunction @@ -7,7 +7,8 @@ execute if block ~ ~ ~ command_block[facing=south] run setblock ~ ~ ~ hopper[fac execute if block ~ ~ ~ command_block[facing=north] run setblock ~ ~ ~ hopper[facing=north] execute if block ~ ~ ~ command_block[facing=down] run setblock ~ ~ ~ hopper[facing=down] -data merge block ~ ~ ~ {CustomName:{"translate":"container.gm4.liquid_tank.empty","fallback":"Empty Tank"}} -summon armor_stand ~ ~-.5 ~ {CustomName:"gm4_liquid_tank",Tags:["gm4_no_edit","gm4_liquid_tank"],NoGravity:1b,Marker:1b,Silent:1b,Invisible:1b,Invulnerable:1b,Small:1b,DisabledSlots:2039552,equipment:{head:{id:"minecraft:glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}}}} +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"}]]}} +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,components:{"minecraft:custom_model_data":"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]} execute as @e[tag=gm4_liquid_tank,limit=1,distance=..0.3] run function gm4_liquid_tanks:init_tank_scores playsound block.end_portal_frame.fill block @a[distance=..30] ~ ~ ~ 1 0.5 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction index 9d8677549c..1f68a980b2 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/restore_liquid.mcfunction @@ -9,6 +9,6 @@ execute store result score @s gm4_lt_max run data get storage gm4_relocators:tem scoreboard players set @s gm4_lt_disp_val 0 function #gm4_liquid_tanks:relocate/restore_liquid -execute unless entity @s[tag=gm4_lt_empty] run summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","smithed.entity","smithed.strict","gm4_new_display"],NoGravity:1b,Marker:1b,Silent:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b,equipment:{head:{id:"player_head",count:1}}} -data modify entity @e[type=armor_stand,tag=gm4_new_display,distance=..1,limit=1] {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.display +summon item_display ~ ~ ~ {CustomName: "gm4_liquid_tank_liquid_display",Tags: ["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_new_display"],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_display,distance=..1,limit=1] {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.liquid_display function gm4_liquid_tanks:liquid_value_update diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction index 091dd588fe..ab7e21dd49 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/set_pick_up_data.mcfunction @@ -11,11 +11,11 @@ data modify storage gm4_relocators:temp merge_data.entity_data.marker.Tags set f tag @s add gm4_relocating_block data modify storage gm4_relocators:temp merge_data.entity_data.marker.data set from entity @s data -data modify storage gm4_relocators:temp merge_data.entity_data.stand.equipment set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,distance=..0.5,limit=1] equipment -data modify storage gm4_relocators:temp merge_data.entity_data.stand.Tags set from entity @e[type=armor_stand,tag=gm4_liquid_tank_stand,distance=..0.5,limit=1] Tags +data modify storage gm4_relocators:temp merge_data.entity_data.display.item set from entity @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] item +data modify storage gm4_relocators:temp merge_data.entity_data.display.Tags set from entity @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.5,limit=1] Tags -execute positioned ~ ~-0.75 ~ run data modify storage gm4_relocators:temp merge_data.entity_data.display set from entity @e[type=armor_stand,tag=gm4_liquid_tank_display,distance=..0.3,limit=1] {} -data remove storage gm4_relocators:temp merge_data.entity_data.display.Pos +execute positioned ~ ~ ~ run data modify storage gm4_relocators:temp merge_data.entity_data.liquid_display set from entity @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.8,limit=1] {} +data remove storage gm4_relocators:temp merge_data.entity_data.liquid_display.Pos execute store result storage gm4_relocators:temp merge_data.entity_data.lt_value int 1 run scoreboard players get @s gm4_lt_value execute store result storage gm4_relocators:temp merge_data.entity_data.lt_max int 1 run scoreboard players get @s gm4_lt_max @@ -23,8 +23,9 @@ execute store result storage gm4_relocators:temp merge_data.entity_data.lt_prior function #gm4_liquid_tanks:relocate/set_data -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 ~ ~ ~ run kill @e[type=marker,tag=gm4_liquid_tank,limit=1,distance=..0.01] +execute positioned ~ ~0.4 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,distance=..0.1,limit=1] +execute positioned ~ ~ ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.8,limit=1] execute positioned ~ ~0.5 ~ run kill @e[type=area_effect_cloud,distance=..0.5,tag=gm4_lt_util_block] kill @s scoreboard players set $found_marker gm4_rl_data 1 diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction index 0dc0dedcae..11b6f43763 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/relocate/summon_block_markers.mcfunction @@ -5,13 +5,13 @@ scoreboard players set $placed_block gm4_rl_data 1 -summon armor_stand ~ ~-0.5 ~ {Small:1b,NoGravity:1b,Marker:1b,Invulnerable:1b,Invisible:1b,Silent:1b,DisabledSlots:4144959,Tags:["gm4_no_edit","gm4_liquid_tank_stand","gm4_machine_stand","smithed.entity","smithed.strict","gm4_new_machine"],HasVisualFire:1b,CustomName:"gm4_liquid_tank_stand",equipment:{head:{id:"glass",count:1,components:{"minecraft:custom_model_data":"block/liquid_tank"}}},Rotation:[0.0f,0.0f]} +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,components:{"minecraft:custom_model_data":"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]} execute as @e[type=marker,tag=gm4_new_machine,limit=1,distance=..0.1] run function gm4_liquid_tanks:relocate/restore_liquid execute as @e[tag=gm4_new_machine,distance=..2] run data modify entity @s Rotation set from storage gm4_relocators:temp gm4_relocation.entity_data.Rotation execute as @e[tag=gm4_new_machine,distance=..2] at @s rotated as @e[type=marker,tag=gm4_new_machine,distance=..2,limit=1] run tp ~ ~ ~ -execute as @e[type=armor_stand,tag=gm4_new_machine,distance=..2] run data modify entity @s {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.stand -scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 1 +execute as @e[type=item_display,tag=gm4_new_machine,distance=..2] run data modify entity @s {} merge from storage gm4_relocators:temp gm4_relocation.entity_data.display +scoreboard players set @e[distance=..2,tag=gm4_new_machine] gm4_entity_version 2 tag @e[distance=..2] remove gm4_new_machine From 4717845dfbf2454b99dacf64add163eff1ef4df4 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Aug 2025 20:54:59 -0400 Subject: [PATCH 85/94] Upgrade paths for new entity types --- gm4_liquid_tanks/beet.yaml | 2 +- .../data/gm4_liquid_tanks/function/machine/destroy.mcfunction | 2 +- .../function/upgrade_paths/{2.5.mcfunction => 2.8.mcfunction} | 2 +- .../upgrade_paths/{2.5 => 2.8}/entity_replacement.mcfunction | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) rename gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/{2.5.mcfunction => 2.8.mcfunction} (85%) rename gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/{2.5 => 2.8}/entity_replacement.mcfunction (93%) diff --git a/gm4_liquid_tanks/beet.yaml b/gm4_liquid_tanks/beet.yaml index f40fe81097..ced33b781f 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.7.X +version: 2.8.X data_pack: load: . 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 1b7ce88e4e..c682cfbb78 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 @@ -5,7 +5,7 @@ # kill entities related to machine block execute positioned ~ ~0.4 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_display,limit=1,distance=..0.01] -execute positioned ~ ~0.1 ~ run kill @e[type=item_display,tag=gm4_liquid_tank_liquid_display,distance=..0.3,limit=1] +execute positioned ~ ~0.15 ~ 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_liquid_tanks/function/upgrade_paths/2.5.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8.mcfunction similarity index 85% rename from gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5.mcfunction rename to gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8.mcfunction index ed2d478012..0b60790349 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8.mcfunction @@ -1 +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 +execute as @e[type=marker,tag=gm4_liquid_tank,scores={gm4_entity_version=1}] at @s run function gm4_liquid_tanks:upgrade_paths/2.8/entity_replacement diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8/entity_replacement.mcfunction similarity index 93% rename from gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction rename to gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8/entity_replacement.mcfunction index b69fdd6932..6c8be4b09a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.5/entity_replacement.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/upgrade_paths/2.8/entity_replacement.mcfunction @@ -11,8 +11,9 @@ 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] +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] equipment.head kill @e[type=armor_stand,limit=1,tag=gm4_liquid_tank_display,distance=..1] +tag @e[tag=gm4_new_liquid,distance=..1] remove gm4_new_liquid scoreboard players set @s gm4_entity_version 2 From a93d1244ed3d739df4e08f8a3cd32761f7b2c066 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Aug 2025 21:09:52 -0400 Subject: [PATCH 86/94] Washing Tanks and Potion Liquids new items support --- gm4_potion_liquids/beet.yaml | 4 ++-- gm4_potion_liquids/potion_definitions.csv | 4 ++-- gm4_washing_tanks/beet.yaml | 2 +- .../data/gm4_washing_tanks/function/wash.mcfunction | 3 ++- .../function/washing_recipes/harness.mcfunction | 8 -------- .../data/gm4_washing_tanks/predicate/harness.json | 11 ----------- 6 files changed, 7 insertions(+), 25 deletions(-) delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction delete mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/predicate/harness.json diff --git a/gm4_potion_liquids/beet.yaml b/gm4_potion_liquids/beet.yaml index 0e27bd8ad8..d5ef332338 100644 --- a/gm4_potion_liquids/beet.yaml +++ b/gm4_potion_liquids/beet.yaml @@ -1,6 +1,6 @@ id: gm4_potion_liquids name: Potion Liquids -version: 1.8.X +version: 1.9.X data_pack: load: . @@ -21,7 +21,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.7.0 + gm4_liquid_tanks: 2.8.0 lib_brewing: 1.4.0 model_data: - item: potion diff --git a/gm4_potion_liquids/potion_definitions.csv b/gm4_potion_liquids/potion_definitions.csv index 6c0b2c758e..4ebe98c39b 100644 --- a/gm4_potion_liquids/potion_definitions.csv +++ b/gm4_potion_liquids/potion_definitions.csv @@ -43,5 +43,5 @@ turtle_master,slowness+resistance,4+3,0:20 water,,1, water_breathing,water_breathing,1,3:00 weakness,weakness,1,1:30 -weaving,weaving,1,1:30 -wind_charged,wind_charged,1,1:20 +weaving,weaving,1,3:00 +wind_charged,wind_charged,1,3:00 diff --git a/gm4_washing_tanks/beet.yaml b/gm4_washing_tanks/beet.yaml index b9d31b853c..d0f861e8c4 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.7.0 + gm4_liquid_tanks: 2.8.0 website: description: Die! Dye! Remove die from items in a Liquid Tank filled with Water, at the cost of ⅓ of a bucket. recommended: [] 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 4663b8de68..d8896c73ff 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction +++ b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction @@ -8,7 +8,8 @@ conversions = { "wool": "white_wool", "bed": "white_bed", "carpet": "white_carpet", - "shulker_box": "shulker_box" + "shulker_box": "shulker_box", + "harness": "white_harness" } for from_id, to_id in conversions.items(): diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction b/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction deleted file mode 100644 index 4d59c93241..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction +++ /dev/null @@ -1,8 +0,0 @@ -#@s = water tank with one colored harness 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_harness -function gm4_liquid_tanks:smart_item_fill -tag @s add gm4_lt_fill diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/harness.json b/gm4_washing_tanks/data/gm4_washing_tanks/predicate/harness.json deleted file mode 100644 index 57cffcf3cd..0000000000 --- a/gm4_washing_tanks/data/gm4_washing_tanks/predicate/harness.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "equipment": { - "offhand": { - "items": "#gm4_washing_tanks:harness" - } - } - } -} From d8f64b1b4600494739fd08290ce738e2915b45d2 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Aug 2025 21:23:00 -0400 Subject: [PATCH 87/94] New water and Ominous bottle liquid textures --- gm4/skin_cache.json | 36 +++++++++--------- .../skins/liquids/ominous_bottle.png | Bin 308 -> 621 bytes .../skins/liquids/water.png | Bin 576 -> 560 bytes .../skins/liquids/night_vision.png | Bin 748 -> 761 bytes 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/gm4/skin_cache.json b/gm4/skin_cache.json index a05879a171..7ed6f442a2 100644 --- a/gm4/skin_cache.json +++ b/gm4/skin_cache.json @@ -332,13 +332,13 @@ }, "gm4_standard_liquids:liquids/water": { "uuid": [ - -1941625481, - -1189919143, - -1856028413, - 292031945 + -2087209360, + 1395149785, + -1312941628, + -799708652 ], - "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjlmNmE1YzkwYTBjNzQ5ODIzMDJhYTAzZTA1ZjY2YzU1MjU0Njg2Njc0ZWQ2YzYxM2ExNGU5YTc4YjUyODU3Mid9fX0=", - "hash": "c369923e91875ec06c1e738a4e5f493ac4a4e39f", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTllNDg5MGZkZjNiMTZlYjE2NjZlMDA5NmE2YjA0MDhiNTY2YzE4MzRiZjMyNTcwYjFkZWIxNjU4MzczOWUxZSd9fX0=", + "hash": "04b5cd8c45121fe3d18037c26863f84b10967124", "parent_module": "gm4_liquid_tanks" }, "gm4_liquid_tanks:liquid_tank": { @@ -574,13 +574,13 @@ }, "gm4_potion_liquids:liquids/night_vision": { "uuid": [ - -204117879, - -2079899123, - -2081002561, - -548998159 + 1591024166, + -1403895054, + -1150690056, + -208826299 ], - "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWIwZmIwNDRkZTBiZTI1MGYxYjMyZWFiM2MyMmQzZjcyNTI4MmE1ODdlNjE3YTkwMWRhYzA2MTg0MDM5NzExMyd9fX0=", - "hash": "a99241e69f731f2194de8e41bea2f094d7c6b5a1", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODQ3ZTUxOWU3ODMxMTNkNzY0MWVhZGQ5NzFjYzZkNDE2Y2E2M2Q4MmY3MDdhNzE5NjBmYjQ5YzMzNzQ1ODJjNSd9fX0=", + "hash": "2710022ddb4c3944ea4a20d579867f8b49ec041e", "parent_module": "gm4_potion_liquids" }, "gm4_potion_liquids:liquids/poison": { @@ -1036,13 +1036,13 @@ }, "gm4_standard_liquids:liquids/ominous_bottle": { "uuid": [ - -1607256772, - -1802877405, - -1710626675, - 1156078594 + -421500789, + -352567252, + -1207743241, + -1662338326 ], - "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvM2FmMGRkOGVmZmZjZjRhNWQ5ZGQ0NWFkYjkwYmZhYmE4MWIxODg0ZjEyNGNmNTIxODFiMzJmNTc0MTU4MWYzMyd9fX0=", - "hash": "723eccaa1ce2eef198fe21d2765e1a5c6ccc7695", + "value": "eyd0ZXh0dXJlcyc6IHsnU0tJTic6IHsndXJsJzogJ2h0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGNkOGI2YzYzMjE2ZTViYjYxYzg4ZGQwNTUwNjg3YmMxNDZmODY3NjdkMTA5YzVmMjk0MjY2NmY1MTI4MDQxMyd9fX0=", + "hash": "73367ae720fb1df246057aaccb4ff07e298e1869", "parent_module": "gm4_liquid_tanks" } }, 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 index 1746e8dee2c88a3a73964cf5bf2ca96438527ff2..e8b8e54e536b5e8aecc51efcbcb8ed7560bd1451 100644 GIT binary patch delta 584 zcmV-O0=NCN0__BlFn?MBKFEQFj8WhhzFA)GNzh_g5j)$g+;cJA!w zo_p>t1yU59^)Y}k6#)FY2SB^q0U!+fbNdfRmxZ)<){QU$@c?)p9Wu{n`Kzblez@_ zx<{>8=12H5TK9i~1_%CrR2@&*LVG~d>`ayb@a>|-7cPPO4e=>UO~Cc=Ci-rx;m93j z8q_kS9#PHBH-BS*TCp76Tl5Ho)jtN;9y{mbGoNP9-vuU#u}RtXHV6hi43%;Gxyj_^ zouKFxh-R}s`3MF*!my7q6~eF|4bryV_BN*e2e_pwZmCKz=n)Kh4}N=f@|V|y96EhI zjh=JN79XA884YW3g%|G2G2AD>m`XG-d(OWfZQTWbb$=JU;rr%o^pLa8`GbD7VwqO^ zbn0dCDr>b*F{Z*r@GI8}m`cDbHgH=BHh3%9H{RY}+iFVQ&piP}XMJpE_{bgcA#gax z%q`DZ1DSU{Pu_b#!ES=U)T}->kmUVYOC*^TF0000z%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})_; diff --git a/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/water.png b/gm4_liquid_tanks/data/gm4_standard_liquids/skins/liquids/water.png index fed596106bda2b4fcb9607f58f54ece19b754fea..afae9e1ddee75374373e010b19a03e6bb3a443dd 100644 GIT binary patch delta 522 zcmX@WvVmoSVf_V97srr_Id8A;%{mky!S=xX(V_*8F?>n6>fJBy=*4o~b8NrY5PsqH zOWu+fcaBQ0C|M&i$BS1{)+vkW?PTTRn=A}9cJb1c{{xr(s?Q5MbtGlM`RCmAwOedzr#w*ouxiEA zy9%cIrg~G19{xJ$_@FmUI8Z`vOH1(d+f3h>%jfVi81Izh|6TF<&6$SPK^!|-4dlKV zN-}&ts;0^Fk_$)~U(hOTzQYu;PRF9}9ozTIb_}vR9>2Jzc<`OLi%8p4&6dT-7?%2I zY|Z|4N$8k!tb)*nKPqdv>ieXaW9)D6wLP0(!Z6b@d?~BM;+s~}qQv?(TT1-tI`hB6 zM!R%w!24~{Gva1e{C6@s{{Fg2!=cZoLyG@0_!nneAARf5D>^sc?D4aQ>S3pRW~Ej= zR6e_X#h*>P9nOAb)(IDDxVvKBzY9vAPlxr}NdNup%}{l2`q|#@xT3g{x|u!o7jtCY z=k>ZRZ_nGk^!oSP{MjW{3}5=zgA8aWEc`CD{Q3JYUV3{kpWZd?`M3L%>+D|3-q+u* zzBg7)2`gCi>L)9gZTi{2PdjHZFfj0?MtG+A`Z8z%*&IL&0+)g(gD6i|KbLjPP6Gkw377bsA_p$VZmDC_{uCcz%=Mm9c%^=e*~% zsPO6Y&%d3aPZ+g1ANWk?mc(pHV+(*?XT`gjN!TnGJncUth<`!=zJGn+s``#5c~viT zhCTp^*^-zoVbtdGO`mC$FN7Uu_}zfj#IRW|c>ekoem4LP7w1@2E`aNN_~Z|x*&T`5 za(lg`GxSMgOJ)*?LV6bw!8#-}2^ka#IChl_keDq1)6(;Yk1t4mpD>LqH|wnU)0^d@ z_?+7c$L?MU0Dm|i_*|ZyGMe2LNr3&ncijGW+u+z$E`W~0qPe+(YGR@FHVhbegI`nNCd8oeiY?#BU)el3Ch;D2-Kt~beZ5qE>Gyx(1?>Z~`d zNI*H3<>$KVO*=_r%k6a@&6ihwfP;?JU2mFa*BOJiJs>~xi~D=LzsuKMZ<6PC1Loru zemBUwvio6nofWsay6a8yTo>#*!;TL-QtnXQbrBH}5fKp)5fKp)5fKp)5fKp)5fKp) ck%#gR5fc}}h(@sP>Hq)$07*qoM6N<$f<&bMQ2+n{ diff --git a/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/night_vision.png b/gm4_potion_liquids/data/gm4_potion_liquids/skins/liquids/night_vision.png index 26edc7bc78193541fdb175737b089dcefb9d1bc6..ec537f091423ae67183ea1646dc1b878d02872c5 100644 GIT binary patch delta 724 zcmaFE`jd5nVf{=`7srr_Id7*M_RV$>X{(PmQC{!JB(=P2d(_FipjmqlculKe*H-VC zlKh10r0zGaWj=yBJB_3@jm|c)n9X9#3_i0j@xVk6;e&4PvlH4FpVfbUR&U_MK7Svp z{^_eMCxbgpR{rkxN!lmS@m+|a;G}AvOr!U@TjqTX3^jlM)LyCo+Gi(O&Z}Xx@~HSs zq335C65hUUh$-s)67%r+`px^!+sGTuWi$xCS;pGslk}~w>9#eutJ>BIh7ZfcE)}2%6u7)y5^ax(3=I8ls~o6!UTC)+Z}nCVJN97ScZ!of3$hy4q zQ>#XZW1!O0t6~d$B&_OfPv3oPoD+UvwqrQU?c8PdYb$oE@Xfqm^8{Pa}-t>*(w&<;o&0G7=Ud!aTpEH#)DE{}HW9-@S-zPWLU;6m( zVCEj1h~NKX62zyy<;vN{*Vpbf-7K~0)LT!UN`?ht23)hX>ugs1^}iQjzq#h`j6+wA zGjrzmG**3Th&pT1IL~70UJV`Tm)@xt%2><#&qw)8Jn1%dfx^-1n;d+$+w<2v&AK$h zX6>4{T)KP>_YR+)+OMHgdcnuvVEy*@#?AHVX~Fk2+!&kpl*Y~c=tw}Tc+FN>Z>ThN}ze2VHSGURsBt6>u>skMI-}3qTESFqf%wHtG z+h_Wr@?!COJPa&;g=JUeyk>4`h*Dtq+q_ty*DRIo>vi`RhQ5JcOS$wqx8F@L_t(|ob8uAYui8=$A3A5&|r!zaL5ohTLZ=5IV5Wa58k~M z{0$2I2p#(+`WZ5WF5QghP*ZTX*cpTais%%CxpdIo`6L%K6)WZWEjsC5r2liz%jt*) z;*XzS!pjTvYRz{2;GXL&Cmaqa?iS^JxBqtgul>f{)J-+y1f95ub;kf^2sI?J7S zo#g-o{Zpdx$QeYZ8}#E7+aF6e&u_PxMg#b}tdba=<*2uP!t=AzI7U2x>UGhNPw2;| zvTeMf%>+#Yin|3WiE&{76tg+SZ0^SR!hLKQw3$W^u;Rn>GotG&!pjQ)I@1Z!cvKOo zdRD&J+}$eUZd-)%FCni z=${L0B2Y<8XF8!+-n+Qgt2KogV8z%R0Od{>vw3C5i{*WJHEZ~5+QZb|nqDbA6anl$ z9?IP;W^*vE8jVMlx^Lar7ijZ??YC>%iUH<4VNQ;9gCCN>38uQUDv41^%=67HfQw;e z##^KLIe)?Lug~*i-}k0NqwI%nfBxEuG*=hD!-3mLcP20*b-E$wpYHYRbmJ0TJ@FN@ zdF9{YkOVs25Do`GX$08Sep@4py9GMkP_U?E^>8>~n>@ImqUUelT`3ISzbkj%tXsct zOPMTlfDs6|9~^*f?cTXFJ0rQBxAQ$we!n%Y6+o|&xD^Hv1VIo4K@bE%5ClOG1VIo4 tK@bE%5ClOG1VIo4K@bE%5Cq}>;}6Z>)~T>zcnSaj002ovPDHLkV1m@+Ta5q! From 593d1518b6a140d175a903aabafef785ed2187d3 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Aug 2025 21:24:42 -0400 Subject: [PATCH 88/94] Checkout proper modeldata_registry --- gm4/modeldata_registry.json | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/gm4/modeldata_registry.json b/gm4/modeldata_registry.json index 2910528ada..3d0cd6842e 100644 --- a/gm4/modeldata_registry.json +++ b/gm4/modeldata_registry.json @@ -50,9 +50,6 @@ "axolotl_bucket": { "gm4_metallurgy:shamir/infinitas": 100 }, - "azalea_leaves": { - "gm4_monsters_unbound:item/spore/default": 1 - }, "bamboo_hanging_sign": { "gm4_trapped_signs:item/secret_trapped_bamboo_hanging_sign": 1, "gm4_trapped_signs:item/trapped_bamboo_hanging_sign": 2 @@ -173,7 +170,6 @@ "gm4_animi_shamir:shamir/animi": 124 }, "chainmail_chestplate": { - "gm4_monsters_unbound:guidebook_icon/monsters_unbound": 1, "gm4_weighted_armour:shamir/helious": 103, "gm4_metallurgy:shamir/defuse": 106, "gm4_iacio_shamir:shamir/iacio": 122, @@ -193,9 +189,6 @@ "gm4_trapped_signs:item/secret_trapped_cherry_hanging_sign": 1, "gm4_trapped_signs:item/trapped_cherry_hanging_sign": 2 }, - "cherry_leaves": { - "gm4_monsters_unbound:item/spore/cherry": 1 - }, "cherry_sign": { "gm4_trapped_signs:item/trapped_cherry_sign": 1, "gm4_trapped_signs:item/secret_trapped_cherry_sign": 2 @@ -586,9 +579,6 @@ "gm4_animi_shamir:shamir/animi": 124, "gm4_orb_of_ankou:guidebook_icon/orb_of_ankou": 200 }, - "flowering_azalea_leaves": { - "gm4_monsters_unbound:item/spore/flowering": 1 - }, "furnace": { "gm4_smelteries:gui/advancement/smelteries": 1, "gm4_forming_press:guidebook_icon/forming_press": 2, @@ -972,7 +962,6 @@ }, "leather_chestplate": { "gm4_combat_expanded:gui/advancement/combat_expanded_identify": 1, - "gm4_survival_refightalized:guidebook_icon/survival_refightalized": 2, "gm4_weighted_armour:shamir/helious": 103, "gm4_metallurgy:shamir/defuse": 106, "gm4_iacio_shamir:shamir/iacio": 122, @@ -1006,9 +995,6 @@ "lime_concrete_powder": { "gm4_zauber_cauldrons:block/liquid_magicol/lime": 300 }, - "lime_glazed_terracotta": { - "gm4_monsters_unbound:item/elite_headwear/mending": 1 - }, "lingering_potion": { "gm4_midnight_menaces:guidebook_icon/illusioner_nights": 1, "gm4_lightning_in_a_bottle:item/lingering_lightning_in_a_bottle": 4, @@ -1243,16 +1229,10 @@ "oxidized_cut_copper": { "gm4_tinkering_compressors:block/tinkering_compressor_plate": 1 }, - "packed_ice": { - "gm4_monsters_unbound:item/elite_headwear/glacial": 1 - }, "paper": { "gm4_book_binders:item/enchanted_page": 1, "gm4_book_binders:gui/advancement/book_binders_debind": 2 }, - "pearlescent_froglight": { - "gm4_monsters_unbound:item/elite_headwear/pearlescent": 1 - }, "phantom_membrane": { "gm4_midnight_menaces:guidebook_icon/enlarging_phantoms": 1 }, From fa454407113fad365b143d76be6578e49ef91580 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Mon, 25 Aug 2025 23:21:42 -0400 Subject: [PATCH 89/94] Add overlay for washing tanks harness If more sufficient bolt syntax exists for this task, duplicating the function may be avoidable. For now this is the approach I will use --- .../function/wash.mcfunction | 28 +++++++++++++++++++ gm4_washing_tanks/beet.yaml | 5 ++++ 2 files changed, 33 insertions(+) create mode 100644 gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction diff --git a/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction new file mode 100644 index 0000000000..4540a8aedd --- /dev/null +++ b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction @@ -0,0 +1,28 @@ +#@s = water tank liquid_tank_stand with item in first slot +#run from item_fill + +conversions = { + "glass": "glass", + "glass_pane": "glass_pane", + "terracotta": "terracotta", + "wool": "white_wool", + "bed": "white_bed", + "carpet": "white_carpet", + "shulker_box": "shulker_box", + # "harness": "white_harness" # Added in 1.21.6 +} + +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/beet.yaml b/gm4_washing_tanks/beet.yaml index d0f861e8c4..2db5d48ee6 100644 --- a/gm4_washing_tanks/beet.yaml +++ b/gm4_washing_tanks/beet.yaml @@ -4,6 +4,11 @@ version: 1.5.X data_pack: load: . + overlays: + - formats: + min_inclusive: 0 + max_inclusive: 71 + directory: backport_71 require: - bolt From efec57f4a42dab99d87c0d727bacb7e660b39f69 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 17 Oct 2025 12:50:19 -0400 Subject: [PATCH 90/94] Add bundles and candles to washing tanks --- .../function/wash.mcfunction | 4 +++- .../function/wash.mcfunction | 4 +++- .../gm4_washing_tanks/tags/item/bundle.json | 20 +++++++++++++++++++ .../gm4_washing_tanks/tags/item/candle.json | 20 +++++++++++++++++++ 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/tags/item/bundle.json create mode 100644 gm4_washing_tanks/data/gm4_washing_tanks/tags/item/candle.json diff --git a/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction index 4540a8aedd..f5980c97e0 100644 --- a/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction +++ b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/wash.mcfunction @@ -9,7 +9,9 @@ conversions = { "bed": "white_bed", "carpet": "white_carpet", "shulker_box": "shulker_box", - # "harness": "white_harness" # Added in 1.21.6 + # "harness": "white_harness" # Added in 1.21.6, + "bundle": "bundle", + "candle": "candle" } for from_id, to_id in conversions.items(): 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 d8896c73ff..8b94ad5487 100644 --- a/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction +++ b/gm4_washing_tanks/data/gm4_washing_tanks/function/wash.mcfunction @@ -9,7 +9,9 @@ conversions = { "bed": "white_bed", "carpet": "white_carpet", "shulker_box": "shulker_box", - "harness": "white_harness" + "harness": "white_harness", + "bundle": "bundle", + "candle": "candle" } for from_id, to_id in conversions.items(): diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/bundle.json b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/bundle.json new file mode 100644 index 0000000000..23084143d0 --- /dev/null +++ b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/bundle.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:black_bundle", + "minecraft:blue_bundle", + "minecraft:brown_bundle", + "minecraft:cyan_bundle", + "minecraft:gray_bundle", + "minecraft:green_bundle", + "minecraft:light_blue_bundle", + "minecraft:light_gray_bundle", + "minecraft:lime_bundle", + "minecraft:magenta_bundle", + "minecraft:orange_bundle", + "minecraft:pink_bundle", + "minecraft:purple_bundle", + "minecraft:red_bundle", + "minecraft:yellow_bundle", + "minecraft:white_bundle" + ] +} diff --git a/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/candle.json b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/candle.json new file mode 100644 index 0000000000..0c3fbcc8cf --- /dev/null +++ b/gm4_washing_tanks/data/gm4_washing_tanks/tags/item/candle.json @@ -0,0 +1,20 @@ +{ + "values": [ + "minecraft:white_candle", + "minecraft:orange_candle", + "minecraft:magenta_candle", + "minecraft:light_blue_candle", + "minecraft:yellow_candle", + "minecraft:lime_candle", + "minecraft:pink_candle", + "minecraft:gray_candle", + "minecraft:light_gray_candle", + "minecraft:cyan_candle", + "minecraft:purple_candle", + "minecraft:blue_candle", + "minecraft:brown_candle", + "minecraft:green_candle", + "minecraft:red_candle", + "minecraft:black_candle" + ] +} From cfdd1f23a7b9a7e0eb4693e1f22486b9f5a3ec4d Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 17 Oct 2025 15:14:35 -0400 Subject: [PATCH 91/94] Update liquid minecarts to use display entities --- gm4_liquid_minecarts/beet.yaml | 4 ++-- .../function/compare_load_liquid.mcfunction | 2 +- .../function/compare_unload_liquid.mcfunction | 2 +- .../function/copy_tank_data.mcfunction | 8 ++++---- .../function/drain_minecart.mcfunction | 2 +- .../function/init_liquid.mcfunction | 2 +- .../function/init_tank.mcfunction | 14 +++++++------- .../function/liquid_value_update.mcfunction | 8 ++++---- .../function/machine/create_cart.mcfunction | 4 ++-- .../machine/verify_destroy_cart.mcfunction | 2 +- .../function/set_empty_data.mcfunction | 4 ++-- .../function/unload_liquid.mcfunction | 2 +- .../function/upgrade_paths/1.8.mcfunction | 1 + .../1.8/entity_replacement.mcfunction | 15 +++++++++++++++ 14 files changed, 43 insertions(+), 27 deletions(-) create mode 100644 gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8.mcfunction create mode 100644 gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8/entity_replacement.mcfunction diff --git a/gm4_liquid_minecarts/beet.yaml b/gm4_liquid_minecarts/beet.yaml index 26e44ce33a..48aa22adf4 100644 --- a/gm4_liquid_minecarts/beet.yaml +++ b/gm4_liquid_minecarts/beet.yaml @@ -1,6 +1,6 @@ id: gm4_liquid_minecarts name: Liquid Minecarts -version: 1.7.X +version: 1.8.X data_pack: load: . @@ -16,7 +16,7 @@ meta: gm4: versioning: required: - gm4_liquid_tanks: 2.7.0 + gm4_liquid_tanks: 2.8.0 lib_machines: 1.4.0 schedule_loops: [main] model_data: diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction index dbf825a117..9eccb0ed7f 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_load_liquid.mcfunction @@ -2,6 +2,6 @@ #run from try_to_load data modify storage gm4_liquid_minecarts:compare liquid set from entity @e[type=marker,limit=1,sort=nearest,distance=..1,tag=gm4_liquid_tank] data.gm4_liquid_tanks.liquid_tag -execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag execute if score @s gm4_lm_data matches 0 run function gm4_liquid_minecarts:load_liquid diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction index c73f615e06..0ff7529d5c 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/compare_unload_liquid.mcfunction @@ -2,6 +2,6 @@ #run from try_to_unload data modify storage gm4_liquid_minecarts:compare liquid set from entity @e[type=marker,limit=1,sort=nearest,distance=..0.1,tag=gm4_liquid_tank] data.gm4_liquid_tanks.liquid_tag -execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +execute store success score @s gm4_lm_data run data modify storage gm4_liquid_minecarts:compare liquid set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag execute if score @s gm4_lm_data matches 0 run function gm4_liquid_minecarts:unload_liquid diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction index 90ee36ae55..6df5c93ee5 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/copy_tank_data.mcfunction @@ -1,6 +1,6 @@ -#@s = gm4_liquid_minecart_stand copying tank data to it's armor items, at location of tank +#@s = gm4_liquid_minecart_display copying tank data to it's item, at location of tank #run from init_liquid -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set from entity @e[type=marker,limit=1,tag=gm4_liquid_tank,sort=nearest] data.gm4_liquid_tanks.liquid_tag -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture set from entity @e[type=armor_stand,tag=gm4_liquid_tank_display,limit=1,sort=nearest] equipment.head -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName set from block ~ ~ ~ CustomName +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set from entity @e[type=marker,limit=1,tag=gm4_liquid_tank,sort=nearest,distance=..2] data.gm4_liquid_tanks.liquid_tag +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture set from entity @e[type=item_display,tag=gm4_liquid_tank_liquid_display,limit=1,sort=nearest,distance=..2] item +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName set from block ~ ~ ~ CustomName diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction index 1a444c704e..152c2bd6f1 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/drain_minecart.mcfunction @@ -3,6 +3,6 @@ scoreboard players set @s gm4_lt_value 0 tag @s add gm4_liquid_minecart_empty -execute as @e[type=armor_stand,limit=1,sort=nearest,tag=gm4_liquid_minecart_stand] run function gm4_liquid_minecarts:set_empty_data +execute as @e[type=item_display,limit=1,sort=nearest,tag=gm4_liquid_minecart_display] run function gm4_liquid_minecarts:set_empty_data function gm4_liquid_minecarts:liquid_value_update playsound minecraft:block.brewing_stand.brew block @a ~ ~ ~ 1.0 0.0 diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction index c23a614cb1..91f51ee924 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_liquid.mcfunction @@ -1,7 +1,7 @@ #@s = empty liquid minecart next to a liquid tank pointed at it containing liquid, at tank location #run from liquid_minecarts:try_to_load -execute anchored feet facing entity @s feet positioned ^ ^ ^1 as @e[type=armor_stand,limit=1,sort=nearest,distance=..1,tag=gm4_liquid_minecart_stand] positioned ^ ^ ^-1 run function gm4_liquid_minecarts:copy_tank_data +execute anchored feet facing entity @s feet positioned ^ ^ ^1 as @e[type=item_display,limit=1,sort=nearest,distance=..1,tag=gm4_liquid_minecart_display] positioned ^ ^ ^-1 run function gm4_liquid_minecarts:copy_tank_data tag @s remove gm4_liquid_minecart_empty #set tank max based on 40% of hopper max diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction index b06b4b7507..238e489a0b 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction @@ -1,21 +1,21 @@ #@s = liquid minecart #run from try_to_unload -#summon display stand -summon armor_stand ~ ~-.95 ~ {CustomName:"gm4_liquid_tank_display",Tags:["gm4_no_edit","gm4_liquid_tank_display","gm4_lm_needs_texture","smithed.entity","smithed.strict"],NoGravity:1b,Marker:1b,Invisible:1b,Invulnerable:1b,Small:1b,Silent:1b,DisabledSlots:4144959,HasVisualFire:1b} -data modify entity @e[type=armor_stand,tag=gm4_lm_needs_texture,limit=1,sort=nearest] equipment.head set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture -data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] data.gm4_liquid_tanks.liquid_tag set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag -tag @e[type=armor_stand] remove gm4_lm_needs_texture +#summon item_display +summon item_display ~ ~-0.5 ~ {CustomName:"gm4_liquid_tank_liquid_display",Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_lm_needs_texture"],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_lm_needs_texture,limit=1,sort=nearest] item set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture +data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] data.gm4_liquid_tanks.liquid_tag set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +tag @e[type=item_display] remove gm4_lm_needs_texture #setup tank data -data modify block ~ ~ ~ CustomName set from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName +data modify block ~ ~ ~ CustomName set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.CustomName scoreboard players operation @s gm4_lm_data = @s gm4_lt_max scoreboard players operation @s gm4_lm_data *= #5 gm4_lm_data scoreboard players operation @s gm4_lm_data /= #2 gm4_lm_data scoreboard players operation @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] gm4_lt_max = @s gm4_lm_data #apply liquid tag -data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] Tags append from entity @s Passengers[0].equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag +data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] Tags append from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag tag @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] remove gm4_lt_empty #load all cart liquid into tank diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction index 352c0a81f7..79067d8994 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/liquid_value_update.mcfunction @@ -7,10 +7,10 @@ scoreboard players operation @s gm4_lm_data *= #100 gm4_lm_data scoreboard players operation @s gm4_lm_data /= @s gm4_lt_max #1%-50% -execute if score @s gm4_lt_value matches 1.. if score @s gm4_lm_data matches 0..50 run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/low"}} +execute if score @s gm4_lt_value matches 1.. if score @s gm4_lm_data matches 0..50 on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/low"}} #51%-99% -execute unless score @s gm4_lt_value = @s gm4_lt_max if score @s gm4_lm_data matches 51..100 run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/high"}} +execute unless score @s gm4_lt_value = @s gm4_lt_max if score @s gm4_lm_data matches 51..100 on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/high"}} #100% -execute if score @s gm4_lt_value = @s gm4_lt_max run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/full"}} +execute if score @s gm4_lt_value = @s gm4_lt_max on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/full"}} #0% -execute if score @s gm4_lt_value matches 0 run data modify entity @e[type=armor_stand,tag=gm4_liquid_minecart_stand,limit=1,sort=nearest] equipment.head merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty"}} +execute if score @s gm4_lt_value matches 0 on passengers run data modify entity @s[type=item_display,tag=gm4_liquid_minecart_display] item merge value {id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty"}} diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction index 0b9982ef98..7fde25a071 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/create_cart.mcfunction @@ -6,9 +6,9 @@ scoreboard players set $placed_block gm4_machine_data 1 # summon new command block minecart -summon command_block_minecart ~ ~ ~ {Command:"execute if score @s gm4_lt_value matches 1.. run function gm4_liquid_minecarts:drain_minecart",CustomName:{"text":"Liquid Minecart","italic":false},Tags:["gm4_liquid_minecart","gm4_liquid_minecart_empty","gm4_machine_cart","gm4_new_machine"],DisplayState:{"Name":"minecraft:hopper"},Passengers:[{id:"minecraft:armor_stand",Tags:["gm4_no_edit","gm4_liquid_minecart_stand","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],Invisible:1b,DisabledSlots:2039583,Small:1b,equipment:{feet:{id:"minecraft:stick",count:1,components:{"minecraft:custom_data":{gm4_liquid_minecarts:{liquid_tag:"null"}}}}},Pose:{Head:[180.0f,0.0f,0.0f],RightArm:[0.0f,-90.0f,0.0f]}}]} +summon command_block_minecart ~ ~ ~ {Command:"execute if score @s gm4_lt_value matches 1.. run function gm4_liquid_minecarts:drain_minecart",CustomName:{"text":"Liquid Minecart","italic":false},Tags:["gm4_liquid_minecart","gm4_liquid_minecart_empty","gm4_machine_cart","gm4_new_machine"],DisplayState:{"Name":"minecraft:hopper"},DisplayOffset:1,Passengers:[{id:"minecraft:item_display",Tags:["gm4_liquid_minecart_display","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],item:{id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty","minecraft:custom_data":{gm4_liquid_minecarts:{liquid_tag:"null"}}}},transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0.0,0.7275,0.0],scale:[0.83,0.83,0.83]},item_display:"head"}]} tp @e[type=command_block_minecart,distance=..0.1,tag=gm4_new_machine] @s -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 execute as @e[type=command_block_minecart,distance=..0.1,tag=gm4_new_machine,limit=1] run function gm4_liquid_minecarts:liquid_value_update # clean up diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction index d55b538201..ae10121d76 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/machine/verify_destroy_cart.mcfunction @@ -3,4 +3,4 @@ # located at @s # run from #gm4_machines:destroy -execute if entity @s[tag=gm4_liquid_minecart_stand] run function gm4_liquid_minecarts:machine/destroy_cart +execute if entity @s[tag=gm4_liquid_minecart_display] run function gm4_liquid_minecarts:machine/destroy_cart diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction index fafd0eaf72..03f7f357a7 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/set_empty_data.mcfunction @@ -1,5 +1,5 @@ #@s liquid minecart display of a minecart that has 0 liquid in it #run from unload_liquid or init_tank or drain_minecart -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set value "empty" -data modify entity @s equipment.feet.components."minecraft:custom_data".gm4_liquid_minecarts.tank set value {texture:"null",CustomName:"null"} +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag set value "empty" +data modify entity @s item.components."minecraft:custom_data".gm4_liquid_minecarts.tank set value {texture:"null",CustomName:"null"} diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction index a01a1c52c5..4e97d94a8c 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/unload_liquid.mcfunction @@ -19,4 +19,4 @@ playsound minecraft:block.brewing_stand.brew block @a ~ ~ ~ 1.0 1.5 #if cart is empty, reset cart execute if score @s gm4_lt_value matches 0 run tag @s add gm4_liquid_minecart_empty -execute if score @s gm4_lt_value matches 0 as @e[type=armor_stand,limit=1,sort=nearest,tag=gm4_liquid_minecart_stand] run function gm4_liquid_minecarts:set_empty_data +execute if score @s gm4_lt_value matches 0 as @e[type=item_display,limit=1,sort=nearest,tag=gm4_liquid_minecart_display] run function gm4_liquid_minecarts:set_empty_data diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8.mcfunction new file mode 100644 index 0000000000..e77ae4a18f --- /dev/null +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8.mcfunction @@ -0,0 +1 @@ +execute as @e[type=command_block_minecart,tag=gm4_liquid_minecart,scores={gm4_entity_version=1}] at @s run function gm4_liquid_minecarts:upgrade_paths/1.8/entity_replacement diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8/entity_replacement.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8/entity_replacement.mcfunction new file mode 100644 index 0000000000..3b9462f472 --- /dev/null +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/upgrade_paths/1.8/entity_replacement.mcfunction @@ -0,0 +1,15 @@ +# @s = gm4_liquid_minecart cart +# at self +# run by upgrade_paths/1.8 + +# add new block offset data +data merge entity @s {DisplayOffset:1} + +# replace armor stand with item display +summon item_display ~ ~ ~ {Tags:["gm4_liquid_minecart_display","gm4_machine_cart","smithed.entity","smithed.strict","gm4_new_machine"],item:{id:"minecraft:player_head",count:1,components:{"minecraft:profile":"$liquid_minecart_display/empty","minecraft:custom_data":{gm4_liquid_minecarts:{liquid_tag:"null"}}}},transformation:{left_rotation:[0f,0f,0f,1f],right_rotation:[0f,0f,0f,1f],translation:[0.0,0.7275,0.0],scale:[0.83,0.83,0.83]},item_display:"head"} +data modify entity @e[tag=gm4_new_machine,distance=..2,limit=1] item.components."minecraft:custom_data".gm4_liquid_minecarts set from entity @e[type=armor_stand,limit=1,distance=..1,sort=nearest,tag=gm4_liquid_minecart_stand] equipment.feet +ride @e[tag=gm4_new_machine,tag=gm4_liquid_minecart_display,limit=1] mount @s +execute on passengers run kill @s[type=armor_stand,tag=gm4_liquid_minecart_stand] +tag @e[tag=gm4_new_machine,distance=..1] remove gm4_new_machine + +scoreboard players set @s gm4_entity_version 2 From 56cfb8d65b199f208cdaa1f9e375722e7fd26862 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 17 Oct 2025 15:33:54 -0400 Subject: [PATCH 92/94] Liquid minecarts cleanup --- .../gm4_liquid_minecarts/function/glass_block.mcfunction | 7 ------- .../gm4_liquid_minecarts/function/init_tank.mcfunction | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/glass_block.mcfunction diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/glass_block.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/glass_block.mcfunction deleted file mode 100644 index f5bc619608..0000000000 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/glass_block.mcfunction +++ /dev/null @@ -1,7 +0,0 @@ -# @s = glass block on the ground -# run from main - -tag @s add gm4_liquid_minecarts_checking_glass -execute as @e[type=hopper_minecart,tag=!gm4_machine,nbt={Items:[{id:"minecraft:hopper",count:1},{id:"minecraft:iron_trapdoor",count:1},{id:"minecraft:comparator",count:1},{id:"minecraft:dispenser",count:1},{id:"minecraft:bucket",count:1}]}] at @s run function gm4_liquid_minecarts:create -tag @s add gm4_liquid_minecarts_checked -tag @s remove gm4_liquid_minecarts_checking_glass diff --git a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction index 238e489a0b..157ff89d3a 100644 --- a/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction +++ b/gm4_liquid_minecarts/data/gm4_liquid_minecarts/function/init_tank.mcfunction @@ -2,7 +2,7 @@ #run from try_to_unload #summon item_display -summon item_display ~ ~-0.5 ~ {CustomName:"gm4_liquid_tank_liquid_display",Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_lm_needs_texture"],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} +summon item_display ~ ~ ~ {CustomName:"gm4_liquid_tank_liquid_display",Tags:["gm4_liquid_tank_liquid_display","smithed.entity","smithed.strict","gm4_lm_needs_texture"],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_lm_needs_texture,limit=1,sort=nearest] item set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.tank.texture data modify entity @e[type=marker,tag=gm4_liquid_tank,limit=1,sort=nearest,distance=..0.1] data.gm4_liquid_tanks.liquid_tag set from entity @s Passengers[0].item.components."minecraft:custom_data".gm4_liquid_minecarts.liquid_tag tag @e[type=item_display] remove gm4_lm_needs_texture From ded931bb28cdf6f6b8d550e1424996506b162302 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 17 Oct 2025 15:41:01 -0400 Subject: [PATCH 93/94] Fix harness overlay load issues --- .../function/washing_recipes/harness.mcfunction | 1 + 1 file changed, 1 insertion(+) create mode 100644 gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction diff --git a/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction new file mode 100644 index 0000000000..47401df8b2 --- /dev/null +++ b/gm4_washing_tanks/backport_71/data/gm4_washing_tanks/function/washing_recipes/harness.mcfunction @@ -0,0 +1 @@ +# empty function - overrides future 1.21.6+ function supporting the harness item, which fails to load in 1.21.5 From 3bb738ee995d10cdb22d887656d07209cff68cb5 Mon Sep 17 00:00:00 2001 From: SpecialBuilder Date: Fri, 17 Oct 2025 15:50:30 -0400 Subject: [PATCH 94/94] Address lingering Misode comments --- .../data/gm4_liquid_tanks/function/process.mcfunction | 1 - .../function/util/experience/macro_experience.mcfunction | 1 + .../function/util/experience/withdraw_one_level.mcfunction | 1 + gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt | 4 ++++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction index a94ac08b11..8e7467335a 100644 --- a/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction +++ b/gm4_liquid_tanks/data/gm4_liquid_tanks/function/process.mcfunction @@ -2,7 +2,6 @@ #run from main #item processing -# 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) 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 index 35ad5ee282..9649043a4f 100644 --- 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 @@ -1,2 +1,3 @@ # macro-function to add/remove a dynamic number of experience points +# run from util/experience/deposit_one_level, util/experience/withdraw_one_level $experience add @s $(points) points 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 7348d752c9..325a81a2f9 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 @@ -32,6 +32,7 @@ execute unless score $level_calc gm4_lt_util matches 0 playsound minecraft:entit from itertools import product, count c = count(0) for offset in product([0, -0.05, 0.05], repeat=2): +# summons 5 xp orbs at different locations, for a "bigger" looking withdrawl if 0 not in offset: continue dx, dz = offset 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 e062a9fee7..5382b251da 100644 --- a/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt +++ b/gm4_liquid_tanks/data/gm4_standard_liquids/modules/main.bolt @@ -87,11 +87,13 @@ class Experience: 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) liquid.item_drain('paper[custom_data~{gm4_book_binders:{item:"enchanted_page"}}]', 'paper', 5) @@ -105,6 +107,7 @@ class Ink: 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 @@ -121,6 +124,7 @@ class GlowInk: 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